2097 lines
232 KiB
HTML
2097 lines
232 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Interactive BOM for KiCAD</title>
|
|
<style type="text/css">
|
|
:root {
|
|
--pcb-edge-color: black;
|
|
--pad-color: #878787;
|
|
--pad-color-highlight: #D04040;
|
|
--pin1-outline-color: #ffb629;
|
|
--pin1-outline-color-highlight: #b4ff03;
|
|
}
|
|
|
|
html, body {
|
|
margin: 0px;
|
|
height: 100%;
|
|
font-family: Verdana, sans-serif;
|
|
}
|
|
|
|
.dark {
|
|
--pcb-edge-color: #eee;
|
|
--pad-color: #808080;
|
|
--pin1-outline-color: #ffa800;
|
|
--pin1-outline-color-highlight: #ccff00;
|
|
background-color: #252c30;
|
|
color: #eee;
|
|
}
|
|
|
|
button {
|
|
background-color: #eee;
|
|
border: 1px solid #888;
|
|
color: black;
|
|
height: 44px;
|
|
width: 44px;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
font-size: 14px;
|
|
font-weight: bolder;
|
|
}
|
|
|
|
.dark button {
|
|
/* This will be inverted */
|
|
background-color: #c3b7b5;
|
|
}
|
|
|
|
button.depressed {
|
|
background-color: #0a0;
|
|
color: white;
|
|
}
|
|
|
|
.dark button.depressed {
|
|
/* This will be inverted */
|
|
background-color: #b3b;
|
|
}
|
|
|
|
button:focus {
|
|
outline: 0;
|
|
}
|
|
|
|
button#tb-btn {
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAABQUFCAgICQkJCgoKEBAQFhYWFxcXGxsbHBwcISEhIyMjJCQkKSkpLS0tLi4uMTExNzc3PDw8QEBAQkJCRERERkZGSEhIT09PWlpaW1tbXFxcYGBgaWlpd3d3eXl5enp6f39/gICAgYGBgoKCi4uLjIyMkpKSk5OTlJSUlpaWl5eXmZmZnJycn5+foqKipqamr6+vtLS0uLi4v7+/w8PDyMjIy8vLz8/P1dXV19fX3Nzc5ubm6urq7+/v8fHx9fX1+Pj4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdkhsDgAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTnU1rJkAAAA/klEQVQ4T9WT21bCMBBFB0UQRAWrVEmtDYgtXlC03m8l//9PwyQZSRfSLF/dLzmr2WtyHjqAKIJKBCJgI80rSRsIIlUeUgFBTud0LS9K5YEVorXMnFDJnwWeuULpCW61QqlkJf+mQ8wDLdmYgyUmIeRKloMOB0v464lpxMHCHYozy5yF1yRJ5O23Ez5hb6ApWJhBf3BUb32UhKGep2GBPt7DtV94hgePcPN01T6ltBQ2tohHJ+zub3ZpgBMi/ZN/OSFXxTlc+DuoXssvzDs7HuHw5Hi7drcUCqlHGozwJqUcXb5TIkFMzMUPRnBMBGAzM3vKxCEHQ9ak7fauP+ICTGDKoEYZFYYAAAAASUVORK5CYII=');
|
|
background-position: 5px 5px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
button#lr-btn {
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAABYWFhcXFzIyMjc3Nzw8PD09PUBAQE9PT1ZWVldXV1paWlxcXGFhYWNjY2dnZ2xsbG5ubnFxcXNzc3V1dXZ2dnl5eYCAgIaGhpKSkpOTk5SUlJycnKKioqampqysrLGxsbe3t7+/v8XFxcnJydTU1NbW1tnZ2ebm5u/v7/z8/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTAHzkAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjE51NayZAAAAO5JREFUOE+tk9kSgjAMRatRcakbrogL4q7//30xobFUpOiD56XJ9ExzpzNRiDrwohEV1qLUAeQ0RDVUOno4JJBIZYi0ClKpM4pCGpQKYY/h3giJRYRB90jkAlheQsiXjGfEd6FJEbbcV2W45YIEIP6XoSBIAMIjSABChJySEaE8ZigRCnxmKHtBZOKXDCyEw9k8vnDvEeirz2vYU2UEmUe8BP6HxcgKEoBwhf7GCg4itMZzmHDvz3A6wI6qqgwpWEECEK5whrt/BAnXaYcqnwDQaC/pARZ0nN0IRsiJtcL6SjY14315V3Xa7sr1R3wC/SGCp4FJdscAAAAASUVORK5CYII=');
|
|
background-position: 5px 5px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
button#bom-btn {
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAAFhYWFxcXQEBAXFxcYGBgkpKSk5OTlJSUn5+fr6+vv7+/z8/P////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQtWgtgAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTnU1rJkAAAAaElEQVQ4T+3T0QqAIAwF0JlrWub/f+5NcpCIk16Fzosv4+6CjAD2JgYITpJJHIglTwiTT+U9hq6ck68D+9D5Dpg+D2hmp1mhrTpNSdNSHTSz8/9FtVAHjk+WITJhC3qpA2Er1z09f+AGC2MyfYdXtvQAAAAASUVORK5CYII=');
|
|
background-position: 5px 5px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.left-most-button {
|
|
border-right: 0;
|
|
border-top-left-radius: 6px;
|
|
border-bottom-left-radius: 6px;
|
|
}
|
|
|
|
.middle-button {
|
|
border-right: 0;
|
|
}
|
|
|
|
.right-most-button {
|
|
border-top-right-radius: 6px;
|
|
border-bottom-right-radius: 6px;
|
|
}
|
|
|
|
.button-container {
|
|
font-size: 0;
|
|
}
|
|
|
|
.dark .button-container {
|
|
filter: invert(1);
|
|
}
|
|
|
|
@media print {
|
|
.hideonprint {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
canvas {
|
|
cursor: crosshair;
|
|
}
|
|
|
|
canvas:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.fileinfo {
|
|
width: 100%;
|
|
max-width: 1000px;
|
|
border: none;
|
|
padding: 5px;
|
|
}
|
|
|
|
.fileinfo .title {
|
|
font-size: 20pt;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.fileinfo td {
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
max-width: 1px;
|
|
width: 50%;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.bom {
|
|
border-collapse: collapse;
|
|
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
|
|
font-size: 10pt;
|
|
table-layout: fixed;
|
|
width: 100%;
|
|
margin-top: 1px;
|
|
}
|
|
|
|
.bom th, .bom td {
|
|
border: 1px solid black;
|
|
padding: 5px;
|
|
word-wrap: break-word;
|
|
text-align: center;
|
|
position: relative;
|
|
}
|
|
|
|
.dark .bom th, .dark .bom td {
|
|
border: 1px solid #777;
|
|
}
|
|
|
|
.bom th {
|
|
background-color: #CCCCCC;
|
|
background-clip: padding-box;
|
|
}
|
|
|
|
.dark .bom th {
|
|
background-color: #3b4749;
|
|
}
|
|
|
|
.bom tr.highlighted:nth-child(n) {
|
|
background-color: #cfc;
|
|
}
|
|
|
|
.dark .bom tr.highlighted:nth-child(n) {
|
|
background-color: #226022;
|
|
}
|
|
|
|
.bom tr:nth-child(even) {
|
|
background-color: #f2f2f2;
|
|
}
|
|
|
|
.dark .bom tr:nth-child(even) {
|
|
background-color: #313b40;
|
|
}
|
|
|
|
.bom tr {
|
|
transition: background-color 0.2s;
|
|
}
|
|
|
|
.bom .numCol {
|
|
width: 25px;
|
|
}
|
|
|
|
.bom .Description {
|
|
width: 10%;
|
|
}
|
|
|
|
.bom .Part {
|
|
width: 10%;
|
|
}
|
|
|
|
.bom .Value {
|
|
width: 15%;
|
|
}
|
|
|
|
.bom .Quantity {
|
|
width: 65px;
|
|
}
|
|
|
|
.bom th .sortmark {
|
|
position: absolute;
|
|
right: 1px;
|
|
top: 1px;
|
|
margin-top: -5px;
|
|
border-width: 5px;
|
|
border-style: solid;
|
|
border-color: transparent transparent #221 transparent;
|
|
transform-origin: 50% 85%;
|
|
transition: opacity 0.2s, transform 0.4s;
|
|
}
|
|
|
|
.dark .bom th .sortmark {
|
|
filter: invert(1);
|
|
}
|
|
|
|
.bom th .sortmark.none {
|
|
opacity: 0;
|
|
}
|
|
|
|
.bom th .sortmark.desc {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.bom th:hover .sortmark.none {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.bom .bom-checkbox {
|
|
width: 30px;
|
|
position: relative;
|
|
user-select: none;
|
|
-moz-user-select: none;
|
|
}
|
|
|
|
.bom .bom-checkbox:before {
|
|
content: "";
|
|
position: absolute;
|
|
border-width: 15px;
|
|
border-style: solid;
|
|
border-color: #51829f transparent transparent transparent;
|
|
visibility: hidden;
|
|
top: -15px;
|
|
}
|
|
|
|
.bom .bom-checkbox:after {
|
|
content: "Double click to set/unset all";
|
|
position: absolute;
|
|
color: white;
|
|
top: -35px;
|
|
left: -26px;
|
|
background: #51829f;
|
|
padding: 5px 15px;
|
|
border-radius: 8px;
|
|
white-space: nowrap;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.bom .bom-checkbox:hover:before, .bom .bom-checkbox:hover:after {
|
|
visibility: visible;
|
|
transition: visibility 0.2s linear 1s;
|
|
}
|
|
|
|
.split {
|
|
-webkit-box-sizing: border-box;
|
|
-moz-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.split.split-horizontal, .gutter.gutter-horizontal {
|
|
height: 100%;
|
|
float: left;
|
|
}
|
|
|
|
.gutter {
|
|
background-color: #ddd;
|
|
background-repeat: no-repeat;
|
|
background-position: 50%;
|
|
transition: background-color 0.3s;
|
|
}
|
|
|
|
.dark .gutter {
|
|
background-color: #777;
|
|
}
|
|
|
|
.gutter.gutter-horizontal {
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
|
|
cursor: ew-resize;
|
|
width: 5px;
|
|
}
|
|
|
|
.gutter.gutter-vertical {
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
|
|
cursor: ns-resize;
|
|
height: 5px;
|
|
}
|
|
|
|
.searchbox {
|
|
float: left;
|
|
height: 40px;
|
|
margin: 10px 5px;
|
|
padding: 12px 32px;
|
|
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
|
|
font-size: 18px;
|
|
box-sizing: border-box;
|
|
border: 1px solid #888;
|
|
border-radius: 6px;
|
|
outline: none;
|
|
background-color: #eee;
|
|
transition: background-color 0.2s, border 0.2s;
|
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
|
|
background-position: 10px 10px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.dark .searchbox {
|
|
background-color: #111;
|
|
color: #eee;
|
|
}
|
|
|
|
.searchbox::placeholder {
|
|
color: #ccc;
|
|
}
|
|
|
|
.dark .searchbox::placeholder {
|
|
color: #666;
|
|
}
|
|
|
|
.filter {
|
|
width: calc(60% - 10px);
|
|
}
|
|
|
|
.reflookup {
|
|
width: calc(40% - 10px);
|
|
}
|
|
|
|
input[type=text]:focus {
|
|
background-color: white;
|
|
border: 1px solid #333;
|
|
}
|
|
|
|
.dark input[type=text]:focus {
|
|
background-color: #333;
|
|
border: 1px solid #ccc;
|
|
}
|
|
|
|
mark.highlight {
|
|
background-color: #5050ff;
|
|
color: #fff;
|
|
padding: 2px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.dark mark.highlight {
|
|
background-color: #76a6da;
|
|
color: #111;
|
|
}
|
|
|
|
.menubtn {
|
|
background-color: white;
|
|
font-size: 16px;
|
|
border: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.dark .menubtn {
|
|
filter: invert(1);
|
|
}
|
|
|
|
.menu {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
.menu-content {
|
|
display: none;
|
|
position: absolute;
|
|
background-color: white;
|
|
right: 0;
|
|
min-width: 300px;
|
|
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
|
z-index: 100;
|
|
padding: 8px;
|
|
}
|
|
|
|
.dark .menu-content {
|
|
background-color: #111;
|
|
}
|
|
|
|
.menu:hover .menu-content {
|
|
display: block;
|
|
}
|
|
|
|
.menu:hover .menubtn {
|
|
background-color: #eee;
|
|
}
|
|
|
|
.dark .menu:hover .menubtn {}
|
|
|
|
.menu-label {
|
|
display: inline-block;
|
|
padding: 8px;
|
|
border: 1px solid #ccc;
|
|
border-top: 0;
|
|
width: calc(100% - 18px);
|
|
}
|
|
|
|
.menu-label-top {
|
|
border-top: 1px solid #ccc;
|
|
}
|
|
|
|
.menu-textbox {
|
|
float: left;
|
|
height: 24px;
|
|
margin: 10px 5px;
|
|
padding: 5px 5px;
|
|
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
|
|
font-size: 14px;
|
|
box-sizing: border-box;
|
|
border: 1px solid #888;
|
|
border-radius: 4px;
|
|
outline: none;
|
|
background-color: #eee;
|
|
transition: background-color 0.2s, border 0.2s;
|
|
width: calc(100% - 10px);
|
|
}
|
|
|
|
.dark .menu-textbox {
|
|
background-color: #222;
|
|
color: #eee;
|
|
}
|
|
|
|
#topmostdiv {
|
|
transition: background-color 0.3s;
|
|
}
|
|
|
|
#top {
|
|
height: 78px;
|
|
border-bottom: 2px solid black;
|
|
}
|
|
|
|
.dark #top {
|
|
border-bottom: 2px solid #ccc;
|
|
}
|
|
|
|
#dbg {
|
|
display: block;
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: #aaa;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: #666;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: #555;
|
|
}
|
|
|
|
.slider {
|
|
-webkit-appearance: none;
|
|
width: 100%;
|
|
margin: 3px 0;
|
|
padding: 0;
|
|
outline: none;
|
|
opacity: 0.7;
|
|
-webkit-transition: .2s;
|
|
transition: opacity .2s;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.slider:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.slider:focus {
|
|
outline: none;
|
|
}
|
|
|
|
.slider::-webkit-slider-runnable-track {
|
|
-webkit-appearance: none;
|
|
width: 100%;
|
|
height: 8px;
|
|
background: #d3d3d3;
|
|
border-radius: 3px;
|
|
border: none;
|
|
}
|
|
|
|
.slider::-webkit-slider-thumb {
|
|
-webkit-appearance: none;
|
|
width: 15px;
|
|
height: 15px;
|
|
border-radius: 50%;
|
|
background: #0a0;
|
|
cursor: pointer;
|
|
margin-top: -4px;
|
|
}
|
|
|
|
.dark .slider::-webkit-slider-thumb {
|
|
background: #3d3;
|
|
}
|
|
|
|
.slider::-moz-range-thumb {
|
|
width: 15px;
|
|
height: 15px;
|
|
border-radius: 50%;
|
|
background: #0a0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.slider::-moz-range-track {
|
|
height: 8px;
|
|
background: #d3d3d3;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.dark .slider::-moz-range-thumb {
|
|
background: #3d3;
|
|
}
|
|
|
|
.slider::-ms-track {
|
|
width: 100%;
|
|
height: 8px;
|
|
border-width: 3px 0;
|
|
background: transparent;
|
|
border-color: transparent;
|
|
color: transparent;
|
|
transition: opacity .2s;
|
|
}
|
|
|
|
.slider::-ms-fill-lower {
|
|
background: #d3d3d3;
|
|
border: none;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.slider::-ms-fill-upper {
|
|
background: #d3d3d3;
|
|
border: none;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.slider::-ms-thumb {
|
|
width: 15px;
|
|
height: 15px;
|
|
border-radius: 50%;
|
|
background: #0a0;
|
|
cursor: pointer;
|
|
margin: 0;
|
|
}
|
|
|
|
</style>
|
|
<script type="text/javascript" >
|
|
///////////////////////////////////////////////
|
|
/*
|
|
Split.js - v1.3.5
|
|
MIT License
|
|
https://github.com/nathancahill/Split.js
|
|
*/
|
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////
|
|
var pcbdata = {"font_data": {" ": {"l": [], "w": 0.7619047619047619}, "/": {"l": [[[0.9523809523809523, -1.0952380952380951], [0.09523809523809518, 0.19047619047619047]]], "w": 1.0476190476190474}, ".": {"l": [[[0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.047619047619047616], [0.19047619047619047, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.23809523809523808, -0.047619047619047616]]], "w": 0.47619047619047616}, "1": {"l": [[[0.7619047619047619, -0.047619047619047616], [0.19047619047619047, -0.047619047619047616]], [[0.47619047619047616, -0.047619047619047616], [0.47619047619047616, -1.0476190476190474], [0.38095238095238093, -0.9047619047619047], [0.2857142857142857, -0.8095238095238095], [0.19047619047619047, -0.7619047619047619]]], "w": 0.9523809523809523}, "0": {"l": [[[0.42857142857142855, -1.0476190476190474], [0.5238095238095237, -1.0476190476190474], [0.6190476190476191, -1.0], [0.6666666666666666, -0.9523809523809523], [0.7142857142857142, -0.8571428571428571], [0.7619047619047619, -0.6666666666666666], [0.7619047619047619, -0.42857142857142855], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.42857142857142855, -0.047619047619047616], [0.3333333333333333, -0.09523809523809523], [0.2857142857142857, -0.14285714285714285], [0.23809523809523808, -0.23809523809523808], [0.19047619047619047, -0.42857142857142855], [0.19047619047619047, -0.6666666666666666], [0.23809523809523808, -0.8571428571428571], [0.2857142857142857, -0.9523809523809523], [0.3333333333333333, -1.0], [0.42857142857142855, -1.0476190476190474]]], "w": 0.9523809523809523}, "3": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.7619047619047619, -1.0476190476190474], [0.42857142857142855, -0.6666666666666666], [0.5714285714285714, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.23809523809523808], [0.7142857142857142, -0.14285714285714285], [0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.2857142857142857, -0.047619047619047616], [0.19047619047619047, -0.09523809523809523], [0.14285714285714285, -0.14285714285714285]]], "w": 0.9523809523809523}, "2": {"l": [[[0.19047619047619047, -0.9523809523809523], [0.23809523809523808, -1.0], [0.3333333333333333, -1.0476190476190474], [0.5714285714285714, -1.0476190476190474], [0.6666666666666666, -1.0], [0.7142857142857142, -0.9523809523809523], [0.7619047619047619, -0.8571428571428571], [0.7619047619047619, -0.7619047619047619], [0.7142857142857142, -0.6190476190476191], [0.14285714285714285, -0.047619047619047616], [0.7619047619047619, -0.047619047619047616]]], "w": 0.9523809523809523}, "5": {"l": [[[0.7142857142857142, -1.0476190476190474], [0.23809523809523808, -1.0476190476190474], [0.19047619047619047, -0.5714285714285714], [0.23809523809523808, -0.6190476190476191], [0.3333333333333333, -0.6666666666666666], [0.5714285714285714, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.23809523809523808], [0.7142857142857142, -0.14285714285714285], [0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.14285714285714285]]], "w": 0.9523809523809523}, "4": {"l": [[[0.6666666666666666, -0.7142857142857142], [0.6666666666666666, -0.047619047619047616]], [[0.42857142857142855, -1.0952380952380951], [0.19047619047619047, -0.38095238095238093], [0.8095238095238095, -0.38095238095238093]]], "w": 0.9523809523809523}, "7": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.8095238095238095, -1.0476190476190474], [0.38095238095238093, -0.047619047619047616]]], "w": 0.9523809523809523}, "6": {"l": [[[0.6666666666666666, -1.0476190476190474], [0.47619047619047616, -1.0476190476190474], [0.38095238095238093, -1.0], [0.3333333333333333, -0.9523809523809523], [0.23809523809523808, -0.8095238095238095], [0.19047619047619047, -0.6190476190476191], [0.19047619047619047, -0.23809523809523808], [0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.5714285714285714, -0.047619047619047616], [0.6666666666666666, -0.09523809523809523], [0.7142857142857142, -0.14285714285714285], [0.7619047619047619, -0.23809523809523808], [0.7619047619047619, -0.47619047619047616], [0.7142857142857142, -0.5714285714285714], [0.6666666666666666, -0.6190476190476191], [0.5714285714285714, -0.6666666666666666], [0.38095238095238093, -0.6666666666666666], [0.2857142857142857, -0.6190476190476191], [0.23809523809523808, -0.5714285714285714], [0.19047619047619047, -0.47619047619047616]]], "w": 0.9523809523809523}, "9": {"l": [[[0.2857142857142857, -0.047619047619047616], [0.47619047619047616, -0.047619047619047616], [0.5714285714285714, -0.09523809523809523], [0.6190476190476191, -0.14285714285714285], [0.7142857142857142, -0.2857142857142857], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.8571428571428571], [0.7142857142857142, -0.9523809523809523], [0.6666666666666666, -1.0], [0.5714285714285714, -1.0476190476190474], [0.38095238095238093, -1.0476190476190474], [0.2857142857142857, -1.0], [0.23809523809523808, -0.9523809523809523], [0.19047619047619047, -0.8571428571428571], [0.19047619047619047, -0.6190476190476191], [0.23809523809523808, -0.5238095238095237], [0.2857142857142857, -0.47619047619047616], [0.38095238095238093, -0.42857142857142855], [0.5714285714285714, -0.42857142857142855], [0.6666666666666666, -0.47619047619047616], [0.7142857142857142, -0.5238095238095237], [0.7619047619047619, -0.6190476190476191]]], "w": 0.9523809523809523}, "8": {"l": [[[0.38095238095238093, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.23809523809523808, -0.7142857142857142], [0.19047619047619047, -0.8095238095238095], [0.19047619047619047, -0.8571428571428571], [0.23809523809523808, -0.9523809523809523], [0.2857142857142857, -1.0], [0.38095238095238093, -1.0476190476190474], [0.5714285714285714, -1.0476190476190474], [0.6666666666666666, -1.0], [0.7142857142857142, -0.9523809523809523], [0.7619047619047619, -0.8571428571428571], [0.7619047619047619, -0.8095238095238095], [0.7142857142857142, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666], [0.5714285714285714, -0.6190476190476191], [0.38095238095238093, -0.6190476190476191], [0.2857142857142857, -0.5714285714285714], [0.23809523809523808, -0.5238095238095237], [0.19047619047619047, -0.42857142857142855], [0.19047619047619047, -0.23809523809523808], [0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.5714285714285714, -0.047619047619047616], [0.6666666666666666, -0.09523809523809523], [0.7142857142857142, -0.14285714285714285], [0.7619047619047619, -0.23809523809523808], [0.7619047619047619, -0.42857142857142855], [0.7142857142857142, -0.5238095238095237], [0.6666666666666666, -0.5714285714285714], [0.5714285714285714, -0.6190476190476191]]], "w": 0.9523809523809523}, "A": {"l": [[[0.19047619047619047, -0.3333333333333333], [0.6666666666666666, -0.3333333333333333]], [[0.09523809523809523, -0.047619047619047616], [0.42857142857142855, -1.0476190476190474], [0.7619047619047619, -0.047619047619047616]]], "w": 0.8571428571428571}, "C": {"l": [[[0.8095238095238095, -0.14285714285714285], [0.7619047619047619, -0.09523809523809523], [0.6190476190476191, -0.047619047619047616], [0.5238095238095237, -0.047619047619047616], [0.38095238095238093, -0.09523809523809523], [0.2857142857142857, -0.19047619047619047], [0.23809523809523808, -0.2857142857142857], [0.19047619047619047, -0.47619047619047616], [0.19047619047619047, -0.6190476190476191], [0.23809523809523808, -0.8095238095238095], [0.2857142857142857, -0.9047619047619047], [0.38095238095238093, -1.0], [0.5238095238095237, -1.0476190476190474], [0.6190476190476191, -1.0476190476190474], [0.7619047619047619, -1.0], [0.8095238095238095, -0.9523809523809523]]], "w": 1.0}, "E": {"l": [[[0.23809523809523808, -0.5714285714285714], [0.5714285714285714, -0.5714285714285714]], [[0.7142857142857142, -0.047619047619047616], [0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474], [0.7142857142857142, -1.0476190476190474]]], "w": 0.9047619047619047}, "D": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.4761904761904761, -1.0476190476190474], [0.619047619047619, -1.0], [0.7142857142857142, -0.9047619047619047], [0.7619047619047619, -0.8095238095238095], [0.8095238095238094, -0.6190476190476191], [0.8095238095238094, -0.47619047619047616], [0.7619047619047619, -0.2857142857142857], [0.7142857142857142, -0.19047619047619047], [0.619047619047619, -0.09523809523809523], [0.4761904761904761, -0.047619047619047616], [0.23809523809523803, -0.047619047619047616]]], "w": 1.0}, "F": {"l": [[[0.5714285714285714, -0.5714285714285714], [0.23809523809523808, -0.5714285714285714]], [[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474], [0.7142857142857142, -1.0476190476190474]]], "w": 0.8571428571428571}, "J": {"l": [[[0.5238095238095237, -1.0476190476190474], [0.5238095238095237, -0.3333333333333333], [0.47619047619047616, -0.19047619047619047], [0.38095238095238093, -0.09523809523809523], [0.23809523809523808, -0.047619047619047616], [0.14285714285714285, -0.047619047619047616]]], "w": 0.7619047619047619}, "L": {"l": [[[0.7142857142857142, -0.047619047619047616], [0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]]], "w": 0.8095238095238095}, "P": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.7619047619047619, -0.9523809523809523], [0.8095238095238094, -0.8571428571428571], [0.8095238095238094, -0.7142857142857142], [0.7619047619047619, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.619047619047619, -0.5238095238095237], [0.23809523809523803, -0.5238095238095237]]], "w": 1.0}, "R": {"l": [[[0.8095238095238094, -0.047619047619047616], [0.4761904761904761, -0.5238095238095237]], [[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.7619047619047619, -0.9523809523809523], [0.8095238095238094, -0.8571428571428571], [0.8095238095238094, -0.7142857142857142], [0.7619047619047619, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.619047619047619, -0.5238095238095237], [0.23809523809523803, -0.5238095238095237]]], "w": 1.0}, "U": {"l": [[[0.23809523809523803, -1.0476190476190474], [0.23809523809523803, -0.23809523809523808], [0.28571428571428564, -0.14285714285714285], [0.33333333333333326, -0.09523809523809523], [0.4285714285714285, -0.047619047619047616], [0.619047619047619, -0.047619047619047616], [0.7142857142857142, -0.09523809523809523], [0.7619047619047619, -0.14285714285714285], [0.8095238095238094, -0.23809523809523808], [0.8095238095238094, -1.0476190476190474]]], "w": 1.0476190476190474}, "Y": {"l": [[[0.42857142857142855, -0.5238095238095237], [0.42857142857142855, -0.047619047619047616]], [[0.09523809523809523, -1.0476190476190474], [0.42857142857142855, -0.5238095238095237], [0.7619047619047619, -1.0476190476190474]]], "w": 0.8571428571428571}, "a": {"l": [[[0.6666666666666666, -0.047619047619047616], [0.6666666666666666, -0.5714285714285714], [0.6190476190476191, -0.6666666666666666], [0.5238095238095237, -0.7142857142857142], [0.3333333333333333, -0.7142857142857142], [0.23809523809523808, -0.6666666666666666]], [[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.19047619047619047], [0.19047619047619047, -0.2857142857142857], [0.23809523809523808, -0.38095238095238093], [0.3333333333333333, -0.42857142857142855], [0.5714285714285714, -0.42857142857142855], [0.6666666666666666, -0.47619047619047616]]], "w": 0.9047619047619047}, "c": {"l": [[[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5714285714285714, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666]]], "w": 0.8571428571428571}, "b": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]], [[0.23809523809523808, -0.6666666666666666], [0.3333333333333333, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5238095238095237], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523]]], "w": 0.9047619047619047}, "e": {"l": [[[0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.19047619047619047], [0.19047619047619047, -0.5714285714285714], [0.23809523809523808, -0.6666666666666666], [0.3333333333333333, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.5714285714285714], [0.6666666666666666, -0.47619047619047616], [0.19047619047619047, -0.38095238095238093]]], "w": 0.8571428571428571}, "l": {"l": [[[0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.19047619047619047], [0.23809523809523808, -1.0476190476190474]]], "w": 0.5238095238095237}, "o": {"l": [[[0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5238095238095237], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616]]], "w": 0.9047619047619047}, "v": {"l": [[[0.14285714285714285, -0.7142857142857142], [0.38095238095238093, -0.047619047619047616], [0.6190476190476191, -0.7142857142857142]]], "w": 0.7619047619047619}, "x": {"l": [[[0.14285714285714285, -0.047619047619047616], [0.6666666666666666, -0.7142857142857142]], [[0.14285714285714285, -0.7142857142857142], [0.6666666666666666, -0.047619047619047616]]], "w": 0.8095238095238095}, "z": {"l": [[[0.14285714285714285, -0.7142857142857142], [0.6666666666666666, -0.7142857142857142], [0.14285714285714285, -0.047619047619047616], [0.6666666666666666, -0.047619047619047616]]], "w": 0.8095238095238095}}, "modules": {"U5": {"layer": "F", "center": [129.1336, 71.755], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [126.78156, 70.25386], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0007599999999999, 2.5019]}, {"layers": ["F"], "angle": -270.0, "pos": [126.78156, 71.755], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0007599999999999, 2.5019]}, {"layers": ["F"], "angle": -270.0, "pos": [126.78156, 73.25614], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0007599999999999, 2.5019]}, {"layers": ["F"], "angle": -270.0, "pos": [130.7338, 71.755], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.99898, 4.0005]}], "drawings": [], "ref": "U5", "bbox": {"pos": [125.53061, 69.429559], "size": [7.20344, 4.650882]}}, "U1": {"layer": "F", "center": [135.1026, 82.5754], "pads": [{"layers": ["F", "B"], "angle": -135.0, "pos": [135.1026, 82.5754], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [0.6, 0.6]}, {"layers": ["F", "B"], "angle": -135.0, "pos": [135.1026, 81.354085], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [0.6, 0.6]}, {"layers": ["F", "B"], "angle": -135.0, "pos": [136.323915, 82.5754], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [0.6, 0.6]}, {"layers": ["F", "B"], "angle": -135.0, "pos": [133.881285, 82.5754], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [0.6, 0.6]}, {"layers": ["F", "B"], "angle": -135.0, "pos": [135.1026, 83.79671499999999], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [0.6, 0.6]}, {"layers": ["B"], "angle": -135.0, "pos": [135.1026, 81.354085], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["B"], "angle": -135.0, "pos": [136.323915, 82.5754], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["B"], "angle": -135.0, "pos": [133.881285, 82.5754], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["B"], "angle": -135.0, "pos": [135.1026, 83.79671499999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["F"], "angle": -135.0, "pos": [135.1026, 83.795159], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["F"], "angle": -135.0, "pos": [136.322359, 82.5754], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["F"], "angle": -135.0, "pos": [133.88284099999998, 82.5754], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["F"], "angle": -135.0, "pos": [135.1026, 81.35564099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.7249999999999999, 1.7249999999999999]}, {"layers": ["F"], "angle": -225.0, "pos": [134.642981, 85.50989299999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [134.289427, 85.15634], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [133.93587399999998, 84.802786], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [133.58231999999998, 84.44923299999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [133.228767, 84.09568], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [132.875214, 83.742126], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [132.52166, 83.388573], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [132.168107, 83.03501899999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [132.168107, 82.115781], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [132.52166, 81.762227], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [132.875214, 81.40867399999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [133.228767, 81.05512], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [133.58231999999998, 80.701567], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [133.93587399999998, 80.34801399999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [134.289427, 79.99445999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [134.642981, 79.640907], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [135.562219, 79.640907], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [135.915773, 79.99445999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [136.269326, 80.34801399999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [136.62287999999998, 80.701567], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [136.976433, 81.05512], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [137.329986, 81.40867399999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [137.68354, 81.762227], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -225.0, "pos": [138.037093, 82.115781], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [138.037093, 83.03501899999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [137.68354, 83.388573], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [137.329986, 83.742126], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [136.976433, 84.09568], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [136.62287999999998, 84.44923299999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [136.269326, 84.802786], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [135.915773, 85.15634], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 0.25]}, {"layers": ["F"], "angle": -135.0, "pos": [135.562219, 85.50989299999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 0.25]}], "drawings": [], "ref": "U1", "bbox": {"pos": [130.834958, 78.30775799999999], "size": [8.535283999999999, 8.535283999999999]}}, "U3": {"layer": "F", "center": [144.2085, 92.9005], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [144.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [146.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [148.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [150.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [152.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [154.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [156.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [158.2085, 76.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [158.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [156.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [154.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [152.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [150.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [148.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [146.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 1.0]}, {"layers": ["F"], "angle": -90.0, "pos": [144.2085, 92.9005], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [2.0, 1.0]}], "drawings": [], "ref": "U3", "bbox": {"pos": [143.133499, 75.9005], "size": [16.150002, 18.0]}}, "U2": {"layer": "F", "center": [151.257, 79.43849999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [144.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [146.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [148.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [150.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [152.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [154.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [156.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [158.257, 69.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [158.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [156.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [154.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [152.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [150.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [148.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [146.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [3.1999999999999997, 1.5]}, {"layers": ["F"], "angle": -90.0, "pos": [144.257, 88.93849999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [3.1999999999999997, 1.5]}], "drawings": [], "ref": "U2", "bbox": {"pos": [142.577757, 68.3385], "size": [16.754244, 22.2]}}, "C12": {"layer": "F", "center": [139.5984, 89.2302], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [138.64839999999998, 89.2302], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -0.0, "pos": [140.5484, 89.2302], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C12", "bbox": {"pos": [137.723399, 88.455199], "size": [3.750002, 1.5500019999999999]}}, "C11": {"layer": "F", "center": [141.24939999999998, 87.22359999999999], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [140.2994, 87.22359999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -0.0, "pos": [142.1994, 87.22359999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C11", "bbox": {"pos": [139.37439899999998, 86.448599], "size": [3.750002, 1.5500019999999999]}}, "C10": {"layer": "F", "center": [130.40359999999998, 75.7936], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [131.83108, 75.7936], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.143, 1.651]}, {"layers": ["F"], "angle": -0.0, "pos": [128.97611999999998, 75.7936], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.143, 1.651]}], "drawings": [], "ref": "C10", "bbox": {"pos": [128.40462, 74.956599], "size": [3.99796, 1.674002]}}, "MOUNTING_HOLE1": {"layer": "F", "center": [163.394, 69.372], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [163.394, 69.372], "drillsize": [2.6, 2.6], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [5.8, 5.8]}], "drawings": [], "ref": "MOUNTING_HOLE1", "bbox": {"pos": [160.494, 66.472], "size": [5.8, 5.8]}}, "MOUNTING_HOLE2": {"layer": "F", "center": [163.394, 93.572], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [163.394, 93.572], "drillsize": [2.6, 2.6], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [5.8, 5.8]}], "drawings": [], "ref": "MOUNTING_HOLE2", "bbox": {"pos": [160.494, 90.672], "size": [5.8, 5.8]}}, "C9": {"layer": "F", "center": [143.891, 73.7235], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [142.46352, 73.7235], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.143, 1.651]}, {"layers": ["F"], "angle": -180.0, "pos": [145.31848, 73.7235], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.143, 1.651]}], "drawings": [], "ref": "C9", "bbox": {"pos": [141.89202, 72.886499], "size": [3.99796, 1.674002]}}, "C8": {"layer": "F", "center": [151.1935, 74.803], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [150.24349999999998, 74.803], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -0.0, "pos": [152.1435, 74.803], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C8", "bbox": {"pos": [149.318499, 74.027999], "size": [3.750002, 1.5500019999999999]}}, "C3": {"layer": "F", "center": [131.572, 84.8868], "pads": [{"layers": ["F"], "angle": -135.0, "pos": [132.243751, 85.558551], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -135.0, "pos": [130.900249, 84.215049], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C3", "bbox": {"pos": [129.708521, 83.023321], "size": [3.7269579999999998, 3.7269579999999998]}}, "C2": {"layer": "F", "center": [131.191, 86.5124], "pads": [{"layers": ["F"], "angle": -315.0, "pos": [130.519249, 85.840649], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -315.0, "pos": [131.862751, 87.184151], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C2", "bbox": {"pos": [129.327521, 84.648921], "size": [3.7269579999999998, 3.7269579999999998]}}, "C1": {"layer": "F", "center": [139.63649999999998, 79.81949999999999], "pads": [{"layers": ["F"], "angle": -225.0, "pos": [140.30825099999998, 79.14774899999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -225.0, "pos": [138.96474899999998, 80.49125099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C1", "bbox": {"pos": [137.773021, 77.95602099999999], "size": [3.7269579999999998, 3.7269579999999998]}}, "E1": {"layer": "F", "center": [163.7792, 80.69579999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [162.2542, 80.69579999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.05]}, {"layers": ["F"], "angle": -270.0, "pos": [163.7792, 82.1708], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.05, 2.1999999999999997]}, {"layers": ["F"], "angle": -270.0, "pos": [163.7792, 79.2208], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.05, 2.1999999999999997]}], "drawings": [], "ref": "E1", "bbox": {"pos": [161.7292, 78.69579999999999], "size": [3.425001, 4.0]}}, "C6": {"layer": "F", "center": [128.72719999999998, 68.1736], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [129.6772, 68.1736], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -180.0, "pos": [127.7772, 68.1736], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C6", "bbox": {"pos": [126.852199, 67.39859899999999], "size": [3.750002, 1.5500019999999999]}}, "C5": {"layer": "F", "center": [162.62349999999998, 87.884], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [162.62349999999998, 86.45652], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.143, 1.651]}, {"layers": ["F"], "angle": -90.0, "pos": [162.62349999999998, 89.31147999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.143, 1.651]}], "drawings": [], "ref": "C5", "bbox": {"pos": [161.786499, 85.88502], "size": [1.674002, 3.99796]}}, "C4": {"layer": "F", "center": [160.655, 88.011], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [160.655, 88.961], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -90.0, "pos": [160.655, 87.06099999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C4", "bbox": {"pos": [159.879999, 86.135999], "size": [1.5500019999999999, 3.750002]}}, "R4": {"layer": "F", "center": [121.98349999999999, 81.28], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [121.98349999999999, 80.17999999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [121.98349999999999, 82.38], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "R4", "bbox": {"pos": [121.15849899999999, 79.254999], "size": [1.650002, 4.050002]}}, "R5": {"layer": "F", "center": [123.63449999999999, 85.0265], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [123.63449999999999, 83.92649999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [123.63449999999999, 86.1265], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "R5", "bbox": {"pos": [122.80949899999999, 83.001499], "size": [1.650002, 4.050002]}}, "R6": {"layer": "F", "center": [130.6576, 89.408], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [129.5576, 89.408], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [131.7576, 89.408], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "R6", "bbox": {"pos": [128.632599, 88.582999], "size": [4.050002, 1.650002]}}, "P1": {"layer": "F", "center": [126.619, 78.74], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [126.619, 78.74], "drillsize": [1.0, 1.0], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [126.619, 81.28], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [126.619, 83.82], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [126.619, 86.36], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}], "drawings": [], "ref": "P1", "bbox": {"pos": [124.99399899999999, 77.114999], "size": [3.250002, 10.850002]}}, "R1": {"layer": "F", "center": [130.0734, 81.5848], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [130.0734, 80.48479999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [130.0734, 82.6848], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "R1", "bbox": {"pos": [129.248399, 79.559799], "size": [1.650002, 4.050002]}}, "R2": {"layer": "F", "center": [134.1755, 72.7075], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [134.1755, 71.6075], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [134.1755, 73.80749999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "R2", "bbox": {"pos": [133.35049899999999, 70.68249899999999], "size": [1.650002, 4.050002]}}, "REF**": {"layer": "F", "center": [129.159, 71.11999999999999], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [129.159, 71.11999999999999], "drillsize": [0.3, 0.3], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [0.6, 0.6]}], "drawings": [], "ref": "REF**", "bbox": {"pos": [128.85899999999998, 70.82], "size": [0.6, 0.6]}}, "PR1": {"layer": "F", "center": [133.54049999999998, 92.45599999999999], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [135.54049999999998, 93.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F"], "angle": -0.0, "pos": [135.54049999999998, 91.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F"], "angle": -0.0, "pos": [133.54049999999998, 91.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F"], "angle": -0.0, "pos": [133.54049999999998, 93.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F"], "angle": -0.0, "pos": [131.54049999999998, 93.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [137.1405, 93.45599999999999], "drillsize": [1.0, 1.0], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.0, 1.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [137.1405, 91.45599999999999], "drillsize": [1.0, 1.0], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.0, 1.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [130.04049999999998, 92.45599999999999], "drillsize": [1.0, 1.0], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.0, 1.0]}, {"layers": ["F"], "angle": -0.0, "pos": [131.54049999999998, 91.45599999999999], "shape": "circle", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}], "drawings": [], "ref": "PR1", "bbox": {"pos": [128.90175, 90.475999], "size": [9.269751, 3.960002]}}, "L1": {"layer": "F", "center": [140.71599999999998, 80.899], "pads": [{"layers": ["F"], "angle": -225.0, "pos": [141.493817, 80.121183], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.8999999999999999]}, {"layers": ["F"], "angle": -225.0, "pos": [139.93818299999998, 81.676817], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.8999999999999999]}], "drawings": [], "ref": "L1", "bbox": {"pos": [138.7111, 78.8941], "size": [4.0098, 4.0098]}}, "F1": {"layer": "F", "center": [123.317, 75.4888], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [122.217, 75.4888], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.5]}, {"layers": ["F"], "angle": -180.0, "pos": [124.41699999999999, 75.4888], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.5]}], "drawings": [], "ref": "F1", "bbox": {"pos": [121.441999, 74.463799], "size": [3.750002, 2.050002]}}, "C7": {"layer": "F", "center": [123.9266, 71.7042], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [123.9266, 72.6542], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 0.75]}, {"layers": ["F"], "angle": -90.0, "pos": [123.9266, 70.7542], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 0.75]}], "drawings": [], "ref": "C7", "bbox": {"pos": [123.15159899999999, 69.829199], "size": [1.5500019999999999, 3.750002]}}, "G***": {"layer": "F", "center": [137.0965, 72.3265], "pads": [], "drawings": [], "ref": "G***", "bbox": {"pos": [135.437108, 67.636391], "size": [3.449346, 9.287795]}}, "J1": {"layer": "F", "center": [116.744, 77.622], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [116.744, 93.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 92.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 91.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 90.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 90.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 89.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 88.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 87.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 86.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 86.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 85.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 84.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 83.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 82.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 82.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 81.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 80.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 79.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 92.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 92.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 91.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 90.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 89.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 88.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 88.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 87.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 86.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 85.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 84.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 84.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 83.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 82.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 81.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 80.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 80.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 75.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 74.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 74.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 73.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 72.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 71.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 70.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 79.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["B"], "angle": -0.0, "pos": [116.744, 70.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 75.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 74.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 73.672], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 72.872], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 72.072], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 71.27199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 70.472], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.3, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [116.744, 69.672], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [2.3, 0.6]}], "drawings": [], "ref": "J1", "bbox": {"pos": [115.594, 69.372], "size": [2.3, 24.2]}}, "Y1": {"layer": "F", "center": [137.7188, 86.76639999999999], "pads": [{"layers": ["F"], "angle": -225.0, "pos": [136.820774, 87.66442599999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.016, 1.778]}, {"layers": ["F"], "angle": -225.0, "pos": [138.61503, 85.87017], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.016, 1.778]}], "drawings": [], "ref": "Y1", "bbox": {"pos": [135.832946, 84.882342], "size": [3.7699119999999997, 3.7699119999999997]}}, "D1": {"layer": "F", "center": [134.1755, 68.961], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [134.1755, 69.761], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -90.0, "pos": [134.1755, 68.161], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "D1", "bbox": {"pos": [133.500499, 67.48599899999999], "size": [1.350002, 2.950002]}}}, "edges": [{"width": 0.09999999999999999, "endangle": 360.0, "start": [118.594, 77.622], "radius": 0.75, "startangle": 270.0, "type": "arc"}, {"width": 0.09999999999999999, "endangle": 90.0, "start": [118.594, 77.622], "radius": 0.75, "startangle": 0.0, "type": "arc"}, {"start": [115.344, 76.872], "end": [118.594, 76.872], "type": "segment", "width": 0.09999999999999999}, {"start": [115.344, 78.372], "end": [118.594, 78.372], "type": "segment", "width": 0.09999999999999999}, {"start": [115.344, 94.322], "end": [115.344, 78.372], "type": "segment", "width": 0.09999999999999999}, {"start": [115.344, 68.622], "end": [115.344, 76.872], "type": "segment", "width": 0.09999999999999999}, {"start": [117.744, 68.622], "end": [115.344, 68.622], "type": "segment", "width": 0.09999999999999999}, {"start": [117.744, 94.322], "end": [115.344, 94.322], "type": "segment", "width": 0.09999999999999999}, {"width": 0.09999999999999999, "endangle": 90.0, "start": [117.744, 67.822], "radius": 0.7999999999999999, "startangle": 0.0, "type": "arc"}, {"width": 0.09999999999999999, "endangle": 360.0, "start": [117.744, 95.122], "radius": 0.7999999999999999, "startangle": 270.0, "type": "arc"}, {"start": [118.544, 96.472], "end": [118.544, 95.122], "type": "segment", "width": 0.09999999999999999}, {"start": [118.544, 66.472], "end": [118.544, 67.822], "type": "segment", "width": 0.09999999999999999}, {"start": [166.29399999999998, 96.472], "end": [118.544, 96.472], "type": "segment", "width": 0.09999999999999999}, {"start": [166.29399999999998, 66.472], "end": [118.544, 66.472], "type": "segment", "width": 0.09999999999999999}, {"start": [166.29399999999998, 66.472], "end": [166.29399999999998, 96.472], "type": "segment", "width": 0.09999999999999999}], "bom": {"both": [[3, "47uF/6.3V", "CT-A", ["C5", "C9", "C10"]], [5, "1uF", "C_0603_HandSoldering", ["C1", "C2", "C3", "C6", "C7"]], [2, "100nF", "C_0603_HandSoldering", ["C4", "C8"]], [2, "15pF", "C_0603_HandSoldering", ["C11", "C12"]], [3, "10k", "R_0603_HandSoldering", ["R1", "R4", "R5"]], [1, "1k5", "R_0603_HandSoldering", ["R2"]], [1, "1k", "R_0603_HandSoldering", ["R6"]], [1, "BLM18PG471SN1", "R_0603_HandSoldering", ["L1"]], [1, "0603LED", "LED_0603", ["D1"]], [1, "ATSAMD21E", "QFN-32-1EP_5x5mm_Pitch0.5mm", ["U1"]], [1, "RFM69HW", "RFM69HW", ["U2"]], [1, "RFM95HW", "RFM92_95_96_98", ["U3"]], [1, "HT7833_SOT89", "SOT89-3_Housing_Handsoldering", ["U5"]], [1, "32.768kHz", "XT_FC-135", ["Y1"]], [1, "F_Small", "MF-PSMF020X", ["F1"]], [2, "CONN_1", "PIN_ARRAY_1", ["MOUNTING_HOLE1", "MOUNTING_HOLE2"]], [1, "ANT", "coaxial_u.fl-r-smt-1", ["E1"]], [1, "LOGO", "tolora", ["G***"]], [1, "PCIE-MINI", "miniPCIeConn", ["J1"]], [1, "CONN_01X04", "Pin_Header_Straight_1x04_Pitch2.54mm", ["P1"]]], "B": [], "F": [[3, "47uF/6.3V", "CT-A", ["C5", "C9", "C10"]], [5, "1uF", "C_0603_HandSoldering", ["C1", "C2", "C3", "C6", "C7"]], [2, "100nF", "C_0603_HandSoldering", ["C4", "C8"]], [2, "15pF", "C_0603_HandSoldering", ["C11", "C12"]], [3, "10k", "R_0603_HandSoldering", ["R1", "R4", "R5"]], [1, "1k5", "R_0603_HandSoldering", ["R2"]], [1, "1k", "R_0603_HandSoldering", ["R6"]], [1, "BLM18PG471SN1", "R_0603_HandSoldering", ["L1"]], [1, "0603LED", "LED_0603", ["D1"]], [1, "ATSAMD21E", "QFN-32-1EP_5x5mm_Pitch0.5mm", ["U1"]], [1, "RFM69HW", "RFM69HW", ["U2"]], [1, "RFM95HW", "RFM92_95_96_98", ["U3"]], [1, "HT7833_SOT89", "SOT89-3_Housing_Handsoldering", ["U5"]], [1, "32.768kHz", "XT_FC-135", ["Y1"]], [1, "F_Small", "MF-PSMF020X", ["F1"]], [2, "CONN_1", "PIN_ARRAY_1", ["MOUNTING_HOLE1", "MOUNTING_HOLE2"]], [1, "ANT", "coaxial_u.fl-r-smt-1", ["E1"]], [1, "LOGO", "tolora", ["G***"]], [1, "PCIE-MINI", "miniPCIeConn", ["J1"]], [1, "CONN_01X04", "Pin_Header_Straight_1x04_Pitch2.54mm", ["P1"]]]}, "silkscreen": {"B": [{"angle": [180.0], "type": "polygon", "pos": [162.1155, 78.1685], "polygons": [[[1.46304, -0.9144], [1.4605, -0.9524999999999999], [1.45542, -0.98044], [1.44272, -1.00838], [1.4223999999999999, -1.0439399999999999], [1.39192, -1.0871199999999999], [1.36398, -1.10998], [1.34874, -1.12014], [1.31826, -1.1252199999999999], [1.27762, -1.1277599999999999], [1.2623799999999998, -1.1277599999999999], [1.2623799999999998, -0.91694], [1.2522199999999999, -0.9067799999999999], [1.23698, -0.9067799999999999], [1.2319, -0.9093199999999999], [1.22682, -0.9270999999999999], [1.23444, -0.9398], [1.2446, -0.9448799999999999], [1.2572999999999999, -0.93726], [1.2598399999999998, -0.93218], [1.2623799999999998, -0.91694], [1.2623799999999998, -1.1277599999999999], [1.22936, -1.1302999999999999], [1.18618, -1.1277599999999999], [1.1557, -1.12268], [1.10998, -1.10236], [1.07442, -1.06426], [1.05156, -1.01092], [1.03886, -0.9448799999999999], [1.03632, -0.9144], [1.03886, -0.87376], [1.0413999999999999, -0.84582], [1.0541, -0.8204199999999999], [1.07188, -0.79248], [1.11252, -0.74422], [1.16078, -0.7162799999999999], [1.22174, -0.70104], [1.24968, -0.70104], [1.3055599999999998, -0.70612], [1.35128, -0.7239], [1.39192, -0.7543799999999999], [1.4223999999999999, -0.79248], [1.44526, -0.8229599999999999], [1.45796, -0.84836], [1.4605, -0.8763], [1.46304, -0.9144]]]}, {"angle": [180.0], "type": "polygon", "pos": [162.1155, 78.1685], "polygons": [[[3.5179, 4.91236], [3.51028, 4.9022], [3.48996, 4.87934], [3.45694, 4.8463199999999995], [3.4162999999999997, 4.80314], [3.3680399999999997, 4.752339999999999], [3.3146999999999998, 4.699], [3.29692, 4.68122], [3.23596, 4.617719999999999], [3.17246, 4.55168], [3.1089599999999997, 4.48818], [3.05054, 4.42722], [3.00228, 4.3764199999999995], [2.96418, 4.3383199999999995], [2.9311599999999998, 4.30276], [2.88544, 4.25704], [2.82956, 4.19862], [2.76606, 4.13512], [2.69748, 4.06654], [2.6289, 3.9954199999999997], [2.56032, 3.9242999999999997], [2.47904, 3.84048], [2.41046, 3.7719], [2.35712, 3.71602], [2.3114, 3.6702999999999997], [2.27838, 3.63474], [2.2504399999999998, 3.6068], [2.23266, 3.58648], [2.21996, 3.5737799999999997], [2.21488, 3.56616], [2.2098, 3.55854], [2.2123399999999998, 3.556], [2.22504, 3.5509199999999996], [2.25298, 3.54838], [2.26314, 3.5458399999999997], [2.3088599999999997, 3.5433], [2.3114, 3.17246], [2.31394, 2.8016199999999998], [2.0955, 2.8016199999999998], [2.0955, 2.99974], [2.0929599999999997, 3.17246], [2.09042, 3.34772], [2.0446999999999997, 3.35026], [2.02946, 3.3528], [2.02946, 3.69062], [2.02946, 3.6931599999999998], [2.01676, 3.70078], [1.9888199999999998, 3.7033199999999997], [1.9558, 3.70586], [1.92024, 3.70586], [1.8922999999999999, 3.70078], [1.88214, 3.6982399999999997], [1.87706, 3.68554], [1.87198, 3.6576], [1.8669, 3.62458], [1.86436, 3.59156], [1.8669, 3.56362], [1.8669, 3.55854], [1.87452, 3.54838], [1.8948399999999999, 3.556], [1.92532, 3.57632], [1.96342, 3.60934], [1.97104, 3.6169599999999997], [1.99898, 3.64744], [2.0193, 3.67284], [2.02946, 3.69062], [2.02946, 3.3528], [1.99644, 3.3528], [1.8796, 3.2334199999999997], [1.7627599999999999, 3.1140399999999997], [1.7627599999999999, 3.05562], [1.7627599999999999, 2.99974], [1.9304, 2.99974], [2.0955, 2.99974], [2.0955, 2.8016199999999998], [2.0574, 2.79908], [1.80086, 2.79654], [1.79324, 2.72796], [1.7907, 2.6923999999999997], [1.78562, 2.6390599999999997], [1.78054, 2.58064], [1.7754599999999998, 2.52222], [1.7754599999999998, 2.5145999999999997], [1.7703799999999998, 2.45872], [1.7652999999999999, 2.40284], [1.7627599999999999, 2.35458], [1.76022, 2.3241], [1.75768, 2.31902], [1.75514, 2.286], [1.7526, 2.2352], [1.74752, 2.1742399999999997], [1.74244, 2.11074], [1.73736, 2.0446999999999997], [1.7322799999999998, 1.9862799999999998], [1.7271999999999998, 1.9380199999999999], [1.7271999999999998, 1.9354799999999999], [1.7246599999999999, 1.9024599999999998], [1.7221199999999999, 1.8541999999999998], [1.71704, 1.79578], [1.7145, 1.73482], [1.71196, 1.7195799999999999], [1.70688, 1.6637], [1.70434, 1.61798], [1.7018, 1.58242], [1.69926, 1.57226], [1.69926, 4.0792399999999995], [1.69672, 4.099559999999999], [1.6840199999999999, 4.11988], [1.65608, 4.14528], [1.651, 4.15036], [1.61798, 4.1757599999999995], [1.58242, 4.19862], [1.5595599999999998, 4.21132], [1.52146, 4.22656], [1.48336, 4.24434], [1.47828, 4.24688], [1.3842999999999999, 4.28498], [1.28016, 4.318], [1.15824, 4.3484799999999995], [1.02108, 4.3764199999999995], [0.94234, 4.39166], [0.89662, 4.39928], [0.85598, 4.40436], [0.82804, 4.41198], [0.8178799999999999, 4.41198], [0.81026, 4.41198], [0.80518, 4.396739999999999], [0.8000999999999999, 4.36626], [0.8000999999999999, 4.3561], [0.7975599999999999, 4.29768], [0.60198, 4.29768], [0.60198, 4.55676], [0.28448, 4.55676], [-0.03048, 4.55676], [-0.03048, 4.521199999999999], [-0.03048, 4.48564], [0.28193999999999997, 4.48818], [0.59436, 4.49072], [0.59944, 4.52374], [0.60198, 4.55676], [0.60198, 4.29768], [0.27177999999999997, 4.3002199999999995], [-0.25145999999999996, 4.30276], [-0.25145999999999996, 4.37134], [-0.254, 4.43738], [-0.29464, 4.43738], [-0.33782, 4.4348399999999994], [-0.38608, 4.4323], [-0.43688, 4.42722], [-0.4826, 4.42214], [-0.5206999999999999, 4.4196], [-0.5461, 4.4145199999999996], [-0.55372, 4.41198], [-0.56896, 4.406899999999999], [-0.59944, 4.40182], [-0.6273799999999999, 4.396739999999999], [-0.66802, 4.39166], [-0.70612, 4.3865799999999995], [-0.7239, 4.38404], [-0.7569199999999999, 4.37896], [-0.7569199999999999, 4.2138599999999995], [-0.7569199999999999, 4.04876], [0.46736, 4.0512999999999995], [1.69672, 4.05384], [1.69926, 4.0792399999999995], [1.69926, 1.57226], [1.69672, 1.5595599999999998], [1.69672, 1.5570199999999998], [1.69418, 1.54432], [1.69164, 1.5163799999999998], [1.69164, 1.47828], [1.6890999999999998, 1.4655799999999999], [1.6890999999999998, 1.41732], [1.6865599999999998, 1.39954], [1.6865599999999998, 3.66268], [1.6840199999999999, 3.68808], [1.6789399999999999, 3.6982399999999997], [1.66624, 3.6982399999999997], [1.6357599999999999, 3.70078], [1.58496, 3.70078], [1.5189199999999998, 3.70078], [1.43764, 3.7033199999999997], [1.3436599999999999, 3.7033199999999997], [1.23698, 3.7033199999999997], [1.12014, 3.7033199999999997], [0.9931399999999999, 3.70586], [0.85598, 3.70586], [0.7137399999999999, 3.70586], [0.5664199999999999, 3.70586], [0.41656, 3.70586], [0.26161999999999996, 3.70586], [0.10668, 3.70586], [-0.04572, 3.70586], [-0.19812, 3.70586], [-0.34798, 3.70586], [-0.49276, 3.70586], [-0.63246, 3.7033199999999997], [-0.76454, 3.7033199999999997], [-0.8864599999999999, 3.7033199999999997], [-0.97536, 3.7033199999999997], [-0.97536, 4.35102], [-0.97536, 4.40182], [-0.9779, 4.4348399999999994], [-0.98044, 4.45516], [-0.98552, 4.4627799999999995], [-0.9905999999999999, 4.4627799999999995], [-0.99822, 4.46024], [-1.0032999999999999, 4.44754], [-1.0058399999999998, 4.4246799999999995], [-1.0058399999999998, 4.38404], [-1.0058399999999998, 4.35102], [-1.0058399999999998, 4.3053], [-1.0032999999999999, 4.2672], [-1.0007599999999999, 4.2418], [-1.0007599999999999, 4.23164], [-0.9905999999999999, 4.2291], [-0.98298, 4.23926], [-0.9779, 4.2672], [-0.97536, 4.31546], [-0.97536, 4.35102], [-0.97536, 3.7033199999999997], [-1.0007599999999999, 3.7033199999999997], [-1.10236, 3.70078], [-1.19126, 3.70078], [-1.22428, 3.70078], [-1.22428, 4.04876], [-1.22428, 4.14274], [-1.22428, 4.18338], [-1.22682, 4.2138599999999995], [-1.22936, 4.234179999999999], [-1.2319, 4.23672], [-1.2522199999999999, 4.2291], [-1.2827, 4.2138599999999995], [-1.3208, 4.191], [-1.3589, 4.1655999999999995], [-1.39192, 4.1402], [-1.39954, 4.13258], [-1.4325599999999998, 4.099559999999999], [-1.45034, 4.0767], [-1.45034, 4.061459999999999], [-1.4351, 4.05384], [-1.40208, 4.04876], [-1.34874, 4.04876], [-1.3385799999999999, 4.04876], [-1.22428, 4.04876], [-1.22428, 3.70078], [-1.26746, 3.70078], [-1.32588, 3.6982399999999997], [-1.36652, 3.6982399999999997], [-1.39192, 3.6957], [-1.39446, 3.6957], [-1.397, 3.683], [-1.397, 3.65252], [-1.39446, 3.6068], [-1.3893799999999998, 3.55346], [-1.3868399999999999, 3.5052], [-1.3817599999999999, 3.4417], [-1.37414, 3.38074], [-1.3716, 3.3274], [-1.36652, 3.2867599999999997], [-1.36652, 3.26898], [-1.3589, 3.2003999999999997], [-1.35382, 3.1470599999999997], [-1.34874, 3.1089599999999997], [-1.3436599999999999, 3.0810199999999996], [-1.33604, 3.0606999999999998], [-1.32842, 3.04546], [-1.31826, 3.0327599999999997], [-1.3030199999999998, 3.0175199999999998], [-1.27762, 2.9895799999999997], [-1.23952, 2.94894], [-1.19126, 2.8981399999999997], [-1.13538, 2.83972], [-1.07188, 2.77622], [-1.0058399999999998, 2.7051], [-0.93726, 2.6339799999999998], [-0.8661399999999999, 2.56032], [-0.79502, 2.48666], [-0.72644, 2.41554], [-0.6934199999999999, 2.38252], [-0.64516, 2.33172], [-0.59436, 2.28092], [-0.54864, 2.23266], [-0.51054, 2.19202], [-0.48513999999999996, 2.16662], [-0.43688, 2.11836], [-0.38354, 2.06248], [-0.32766, 2.00406], [-0.27177999999999997, 1.9456399999999998], [-0.21336, 1.88468], [-0.15747999999999998, 1.82626], [-0.10668, 1.7754599999999998], [-0.06096, 1.7271999999999998], [-0.0254, 1.6890999999999998], [0.0, 1.66116], [0.01524, 1.6459199999999998], [0.01778, 1.6433799999999998], [0.03048, 1.63068], [0.03302, 1.62814], [0.043179999999999996, 1.6357599999999999], [0.06096, 1.65608], [0.09144, 1.6840199999999999], [0.127, 1.7195799999999999], [0.14478, 1.7399], [0.18542, 1.78054], [0.23368, 1.83134], [0.29209999999999997, 1.8897599999999999], [0.35052, 1.95072], [0.41147999999999996, 2.01422], [0.45211999999999997, 2.05232], [0.5029199999999999, 2.10566], [0.55118, 2.15392], [0.59182, 2.1971], [0.6223, 2.23012], [0.64262, 2.25298], [0.6502399999999999, 2.26314], [0.64262, 2.2656799999999997], [0.61214, 2.26822], [0.5638799999999999, 2.26822], [0.5003799999999999, 2.27076], [0.4191, 2.2733], [0.32258, 2.2733], [0.21081999999999998, 2.27584], [0.18796, 2.27584], [-0.27432, 2.27838], [-0.27432, 2.49174], [-0.27432, 2.70256], [0.4064, 2.70764], [1.0871199999999999, 2.71018], [1.16332, 2.78384], [1.1938, 2.81432], [1.23698, 2.8575], [1.28524, 2.9082999999999997], [1.3385799999999999, 2.96164], [1.39192, 3.01498], [1.40208, 3.0276799999999997], [1.56718, 3.19278], [1.56718, 3.3655], [1.56718, 3.429], [1.56718, 3.47472], [1.56972, 3.5077399999999996], [1.57226, 3.5255199999999998], [1.5748, 3.53822], [1.58242, 3.5433], [1.59004, 3.5458399999999997], [1.6129, 3.54838], [1.62306, 3.54838], [1.651, 3.5458399999999997], [1.66878, 3.55346], [1.6764, 3.5737799999999997], [1.6840199999999999, 3.60934], [1.6840199999999999, 3.6195], [1.6865599999999998, 3.66268], [1.6865599999999998, 1.39954], [1.6840199999999999, 1.36652], [1.6814799999999999, 1.32842], [1.6814799999999999, 1.32588], [1.6764, 1.28778], [1.67132, 1.23952], [1.66624, 1.18872], [1.66116, 1.143], [1.65862, 1.1049], [1.65608, 1.07696], [1.65608, 1.07442], [1.65354, 1.04902], [1.64846, 1.01092], [1.6459199999999998, 0.9652], [1.6433799999999998, 0.93218], [1.6408399999999999, 0.8839199999999999], [1.6382999999999999, 0.8407399999999999], [1.6357599999999999, 0.80518], [1.63322, 0.79248], [1.63068, 0.76708], [1.62814, 0.72644], [1.6256, 0.6934199999999999], [1.62306, 0.66548], [1.61798, 0.61976], [1.61544, 0.56134], [1.60782, 0.49276], [1.60782, 0.46481999999999996], [1.60782, 2.7736799999999997], [1.6052799999999998, 2.78892], [1.6001999999999998, 2.79654], [1.5951199999999999, 2.8016199999999998], [1.5875, 2.8016199999999998], [1.5748, 2.80416], [1.56972, 2.8168599999999997], [1.56718, 2.84226], [1.56718, 2.8498799999999997], [1.56464, 2.87782], [1.5595599999999998, 2.8930599999999997], [1.5570199999999998, 2.8956], [1.54686, 2.8879799999999998], [1.524, 2.86766], [1.49352, 2.83718], [1.45288, 2.79654], [1.40716, 2.75082], [1.3589, 2.70002], [1.3081, 2.6492199999999997], [1.2572999999999999, 2.5958799999999997], [1.2115799999999999, 2.54508], [1.1683999999999999, 2.49936], [1.1328399999999998, 2.45872], [1.1049, 2.4282399999999997], [1.0896599999999999, 2.41046], [1.0845799999999999, 2.40538], [1.08204, 2.3799799999999998], [1.08204, 2.3469599999999997], [1.08204, 2.33934], [1.0845799999999999, 2.3114], [1.08204, 2.28854], [1.0795, 2.286], [1.0668, 2.27838], [1.03886, 2.2733], [1.0058399999999998, 2.27076], [0.93726, 2.26822], [0.85852, 2.1844], [0.85852, 2.48412], [0.85344, 2.48666], [0.8382, 2.4892], [0.81026, 2.49174], [0.77216, 2.49428], [0.71882, 2.49428], [0.6476999999999999, 2.49682], [0.56134, 2.49682], [0.4572, 2.49936], [0.39624, 2.49936], [0.30226, 2.49936], [0.21336, 2.49936], [0.13208, 2.49936], [0.06096, 2.49936], [0.0025399999999999997, 2.49936], [-0.038099999999999995, 2.49682], [-0.0635, 2.49682], [-0.06858, 2.49682], [-0.07873999999999999, 2.48666], [-0.07619999999999999, 2.4815799999999997], [-0.06604, 2.47904], [-0.03556, 2.4764999999999997], [0.00762, 2.47396], [0.06604, 2.4714199999999997], [0.13208, 2.4714199999999997], [0.20828, 2.46888], [0.29209999999999997, 2.46888], [0.37592, 2.46888], [0.45974, 2.46888], [0.5435599999999999, 2.4714199999999997], [0.6223, 2.4714199999999997], [0.6934199999999999, 2.47396], [0.7543799999999999, 2.47396], [0.8026399999999999, 2.4764999999999997], [0.8382, 2.47904], [0.85598, 2.4815799999999997], [0.85852, 2.48412], [0.85852, 2.1844], [0.5638799999999999, 1.88468], [0.49276, 1.8110199999999999], [0.42418, 1.7399], [0.36322, 1.6764], [0.30734, 1.61798], [0.26161999999999996, 1.56972], [0.22605999999999998, 1.52908], [0.20065999999999998, 1.50114], [0.18796, 1.4859], [0.19304, 1.4706599999999999], [0.21336, 1.44526], [0.2413, 1.41224], [0.27686, 1.3716], [0.28702, 1.36398], [0.32258, 1.32588], [0.36829999999999996, 1.28016], [0.42163999999999996, 1.22174], [0.48006, 1.16078], [0.54102, 1.09728], [0.60198, 1.03632], [0.65786, 0.97536], [0.7137399999999999, 0.91948], [0.76454, 0.8661399999999999], [0.81026, 0.8204199999999999], [0.84582, 0.78232], [0.86868, 0.7594599999999999], [0.87122, 0.7569199999999999], [0.89408, 0.7340599999999999], [0.9270999999999999, 0.6985], [0.9702799999999999, 0.65532], [1.02108, 0.60198], [1.07696, 0.5461], [1.13538, 0.48513999999999996], [1.15062, 0.46736], [1.2065, 0.41147999999999996], [1.2572999999999999, 0.35813999999999996], [1.3004799999999999, 0.31495999999999996], [1.3385799999999999, 0.27686], [1.36398, 0.25145999999999996], [1.37922, 0.23876], [1.37922, 0.23621999999999999], [1.3842999999999999, 0.24638], [1.3893799999999998, 0.27177999999999997], [1.39446, 0.29718], [1.39954, 0.35306], [1.40716, 0.42163999999999996], [1.41478, 0.49529999999999996], [1.4223999999999999, 0.5664199999999999], [1.4249399999999999, 0.6273799999999999], [1.4300199999999998, 0.6705599999999999], [1.4351, 0.72644], [1.44018, 0.78232], [1.44272, 0.80772], [1.4478, 0.8635999999999999], [1.45288, 0.91948], [1.45542, 0.9677399999999999], [1.45796, 0.98552], [1.4605, 1.01854], [1.4655799999999999, 1.0668], [1.4706599999999999, 1.1277599999999999], [1.4757399999999998, 1.19126], [1.47828, 1.22936], [1.48336, 1.29286], [1.48844, 1.35636], [1.49352, 1.41224], [1.4986, 1.45542], [1.4986, 1.4731999999999998], [1.50368, 1.5189199999999998], [1.50622, 1.5620999999999998], [1.5087599999999999, 1.5875], [1.5138399999999999, 1.61544], [1.5163799999999998, 1.65862], [1.52146, 1.71196], [1.52654, 1.7678399999999999], [1.52654, 1.7703799999999998], [1.53416, 1.86944], [1.54178, 1.9837399999999998], [1.5519399999999999, 2.10312], [1.5620999999999998, 2.2224999999999997], [1.57226, 2.3367999999999998], [1.58242, 2.44094], [1.5875, 2.5019], [1.5951199999999999, 2.58826], [1.6001999999999998, 2.65684], [1.6052799999999998, 2.70764], [1.6052799999999998, 2.74574], [1.60782, 2.7736799999999997], [1.60782, 0.46481999999999996], [1.6027399999999998, 0.41402], [1.5976599999999999, 0.33527999999999997], [1.5976599999999999, 0.33274], [1.5748, 0.040639999999999996], [1.60782, 0.0025399999999999997], [1.62306, -0.0127], [1.65354, -0.043179999999999996], [1.69164, -0.08381999999999999], [1.73736, -0.13208], [1.78816, -0.18542], [1.84404, -0.2413], [1.8465799999999999, -0.24384], [1.9024599999999998, -0.30226], [1.96088, -0.36322], [2.01422, -0.4191], [2.06248, -0.46736], [2.10312, -0.508], [2.1259799999999998, -0.53594], [2.15646, -0.5664199999999999], [2.1971, -0.6070599999999999], [2.24536, -0.65786], [2.30124, -0.7137399999999999], [2.35712, -0.77216], [2.39268, -0.80772], [2.44856, -0.8661399999999999], [2.5044399999999998, -0.9245599999999999], [2.56032, -0.98044], [2.6060399999999997, -1.03124], [2.6441399999999997, -1.07188], [2.66192, -1.0896599999999999], [2.6923999999999997, -1.12014], [2.73304, -1.16586], [2.78384, -1.2166599999999999], [2.83972, -1.27508], [2.8956, -1.33604], [2.9413199999999997, -1.3817599999999999], [3.0378399999999997, -1.48082], [3.1191199999999997, -1.56464], [3.1851599999999998, -1.6357599999999999], [3.2384999999999997, -1.69164], [3.27914, -1.73482], [3.30454, -1.7627599999999999], [3.31724, -1.778], [3.3197799999999997, -1.78054], [3.31216, -1.79324], [3.29692, -1.8135599999999998], [3.2715199999999998, -1.83896], [3.2435799999999997, -1.8669], [3.21564, -1.8922999999999999], [3.19278, -1.91008], [3.17754, -1.92024], [3.1673799999999996, -1.91262], [3.1470599999999997, -1.8948399999999999], [3.1191199999999997, -1.8669], [3.1038799999999998, -1.8491199999999999], [3.0759399999999997, -1.82118], [3.04038, -1.78308], [2.99212, -1.73482], [2.9413199999999997, -1.6814799999999999], [2.88544, -1.6256], [2.8498799999999997, -1.5875], [2.79146, -1.52908], [2.73304, -1.4681199999999999], [2.6797, -1.4097], [2.6289, -1.3589], [2.58826, -1.31572], [2.57048, -1.2979399999999999], [2.53746, -1.2623799999999998], [2.4892, -1.2141199999999999], [2.4333199999999997, -1.1557], [2.36982, -1.0871199999999999], [2.2986999999999997, -1.01346], [2.2224999999999997, -0.93472], [2.14376, -0.85344], [2.06502, -0.77216], [1.9862799999999998, -0.6908799999999999], [1.91262, -0.61468], [1.84404, -0.5435599999999999], [1.8186399999999998, -0.51816], [1.7703799999999998, -0.46736], [1.7246599999999999, -0.4191], [1.6814799999999999, -0.37592], [1.6459199999999998, -0.33782], [1.62306, -0.31242], [1.59004, -0.2794], [1.56464, -0.26161999999999996], [1.5519399999999999, -0.26161999999999996], [1.54686, -0.2794], [1.54686, -0.29209999999999997], [1.5519399999999999, -0.31495999999999996], [1.56718, -0.33274], [1.5925799999999999, -0.35052], [1.6027399999999998, -0.35813999999999996], [1.64846, -0.38861999999999997], [1.69672, -0.43179999999999996], [1.74498, -0.48006], [1.78816, -0.53086], [1.82118, -0.57658], [1.8288, -0.59182], [1.8592799999999998, -0.6527799999999999], [1.88214, -0.70104], [1.8948399999999999, -0.74422], [1.9049999999999998, -0.78994], [1.90754, -0.8407399999999999], [1.91008, -0.9042399999999999], [1.91008, -0.91186], [1.9049999999999998, -1.0058399999999998], [1.8948399999999999, -1.0845799999999999], [1.87706, -1.15062], [1.8516599999999999, -1.2065], [1.8465799999999999, -1.2141199999999999], [1.8288, -1.2446], [1.8186399999999998, -1.26746], [1.79832, -1.3004799999999999], [1.7652999999999999, -1.3385799999999999], [1.7221199999999999, -1.3817599999999999], [1.6764, -1.4249399999999999], [1.6256, -1.4655799999999999], [1.57988, -1.4986], [1.56718, -1.50622], [1.56718, -0.9270999999999999], [1.56464, -0.889], [1.5620999999999998, -0.85598], [1.5570199999999998, -0.8382], [1.54686, -0.80772], [1.54178, -0.7874], [1.53162, -0.76708], [1.5087599999999999, -0.7365999999999999], [1.47828, -0.70358], [1.44526, -0.6730999999999999], [1.41478, -0.6476999999999999], [1.39446, -0.635], [1.3716, -0.6273799999999999], [1.36906, -0.62484], [1.36906, -0.06604], [1.36906, -0.06096], [1.36652, -0.05334], [1.3589, -0.04572], [1.34874, -0.03302], [1.33604, -0.01524], [1.31572, 0.0050799999999999994], [1.28778, 0.03556], [1.2547599999999999, 0.07112], [1.2115799999999999, 0.11684], [1.16078, 0.17018], [1.09982, 0.23368], [1.02616, 0.30988], [0.94234, 0.39624], [0.84582, 0.49784], [0.7365999999999999, 0.61214], [0.66294, 0.6858], [0.5841999999999999, 0.76962], [0.5003799999999999, 0.85598], [0.4191, 0.9398], [0.3429, 1.01854], [0.27686, 1.0871199999999999], [0.26416, 1.10236], [0.20828, 1.15824], [0.15747999999999998, 1.20904], [0.1143, 1.2547599999999999], [0.07619999999999999, 1.29032], [0.0508, 1.31572], [0.03556, 1.32588], [0.03302, 1.32842], [0.0254, 1.3208], [0.0025399999999999997, 1.3004799999999999], [-0.02794, 1.26746], [-0.07112, 1.22428], [-0.11938, 1.17856], [-0.11938, 1.48336], [-0.12446, 1.49352], [-0.14478, 1.5189199999999998], [-0.17779999999999999, 1.5570199999999998], [-0.22097999999999998, 1.6027399999999998], [-0.27177999999999997, 1.65862], [-0.3302, 1.7195799999999999], [-0.37845999999999996, 1.7703799999999998], [-0.5029199999999999, 1.8999199999999998], [-0.61468, 2.01676], [-0.7137399999999999, 2.11836], [-0.8026399999999999, 2.2123399999999998], [-0.8839199999999999, 2.2936199999999998], [-0.95504, 2.36728], [-1.01854, 2.43586], [-1.05918, 2.47396], [-1.1252199999999999, 2.54508], [-1.17856, 2.6009599999999997], [-1.22174, 2.6441399999999997], [-1.2547599999999999, 2.6771599999999998], [-1.27762, 2.70002], [-1.29286, 2.71526], [-1.3030199999999998, 2.7254199999999997], [-1.3081, 2.72796], [-1.31064, 2.72796], [-1.31318, 2.7178], [-1.31064, 2.68986], [-1.3081, 2.6492199999999997], [-1.3055599999999998, 2.6009599999999997], [-1.2979399999999999, 2.49936], [-1.29286, 2.41808], [-1.28778, 2.3520399999999997], [-1.2827, 2.2986999999999997], [-1.28016, 2.2605999999999997], [-1.27762, 2.23012], [-1.27508, 2.20472], [-1.27254, 2.18694], [-1.27254, 2.1793199999999997], [-1.27, 2.15138], [-1.26492, 2.1082], [-1.2598399999999998, 2.0548599999999997], [-1.2572999999999999, 1.99898], [-1.2547599999999999, 1.99136], [-1.2522199999999999, 1.9329399999999999], [-1.24714, 1.87706], [-1.24206, 1.82626], [-1.23952, 1.7907], [-1.23444, 1.7145], [-1.22682, 1.6433799999999998], [-1.22174, 1.57734], [-1.2166599999999999, 1.5189199999999998], [-1.2115799999999999, 1.4757399999999998], [-1.20904, 1.4478], [-1.20904, 1.44526], [-1.2065, 1.4223999999999999], [-1.20142, 1.37922], [-1.19634, 1.32334], [-1.19126, 1.2598399999999998], [-1.18618, 1.18618], [-1.17856, 1.11252], [-1.1760199999999998, 1.07442], [-1.1734799999999999, 1.03124], [-1.1709399999999999, 0.9931399999999999], [-1.16586, 0.9702799999999999], [-1.16332, 0.9448799999999999], [-1.16078, 0.9067799999999999], [-1.1557, 0.8610599999999999], [-1.1557, 0.84582], [-1.15316, 0.79248], [-1.14808, 0.7365999999999999], [-1.14046, 0.68834], [-1.14046, 0.68072], [-1.13538, 0.63246], [-1.1328399999999998, 0.57658], [-1.1302999999999999, 0.54102], [-1.1302999999999999, 0.49784], [-1.1252199999999999, 0.4699], [-1.1176, 0.4572], [-1.10998, 0.45465999999999995], [-1.10236, 0.46227999999999997], [-1.0795, 0.4826], [-1.0464799999999999, 0.51562], [-1.0032999999999999, 0.5588], [-0.9524999999999999, 0.6095999999999999], [-0.89662, 0.66802], [-0.83312, 0.73152], [-0.8026399999999999, 0.76454], [-0.72898, 0.8407399999999999], [-0.6502399999999999, 0.92202], [-0.5715, 1.0032999999999999], [-0.49276, 1.08204], [-0.42163999999999996, 1.1557], [-0.35813999999999996, 1.2191999999999998], [-0.30988, 1.26746], [-0.25654, 1.32334], [-0.20828, 1.37414], [-0.17018, 1.41732], [-0.1397, 1.45034], [-0.12192, 1.4731999999999998], [-0.11938, 1.48336], [-0.11938, 1.17856], [-0.12446, 1.1734799999999999], [-0.18288, 1.11252], [-0.24638, 1.0464799999999999], [-0.29972, 0.9931399999999999], [-0.37592, 0.9144], [-0.4572, 0.83312], [-0.53594, 0.75184], [-0.61468, 0.6730999999999999], [-0.6858, 0.5969], [-0.7493, 0.5334], [-0.8026399999999999, 0.48006], [-0.81534, 0.46481999999999996], [-0.8864599999999999, 0.3937], [-0.9448799999999999, 0.33274], [-0.9905999999999999, 0.28448], [-1.02616, 0.24638], [-1.0541, 0.21844], [-1.07442, 0.19558], [-1.0845799999999999, 0.17779999999999999], [-1.0922, 0.16255999999999998], [-1.09474, 0.15239999999999998], [-1.09474, 0.1397], [-1.09474, 0.127], [-1.09474, 0.12446], [-1.0922, 0.09652], [-1.0871199999999999, 0.0508], [-1.0845799999999999, 0.0], [-1.0795, -0.05588], [-1.0795, -0.06096], [-1.06934, -0.18796], [-1.05664, -0.32004], [-1.0439399999999999, -0.46481999999999996], [-1.03632, -0.53848], [-1.03378, -0.59182], [-1.0287, -0.64516], [-1.02362, -0.6934199999999999], [-1.02362, -0.7111999999999999], [-1.01854, -0.7543799999999999], [-1.01346, -0.80772], [-1.01092, -0.8509], [-1.00838, -0.89154], [-1.0032999999999999, -0.9245599999999999], [-1.0007599999999999, -0.9448799999999999], [-1.0007599999999999, -0.9474199999999999], [-0.99822, -0.9499599999999999], [-0.9931399999999999, -0.9524999999999999], [-0.98552, -0.95504], [-0.9702799999999999, -0.95758], [-0.9499599999999999, -0.96012], [-0.92202, -0.96012], [-0.8839199999999999, -0.96266], [-0.83312, -0.96266], [-0.77216, -0.96266], [-0.69596, -0.96266], [-0.6070599999999999, -0.9652], [-0.5003799999999999, -0.9652], [-0.37592, -0.9652], [-0.23368, -0.9652], [-0.20573999999999998, -0.9652], [0.57912, -0.9652], [0.57912, -0.86868], [0.58166, -0.8255], [0.5841999999999999, -0.78994], [0.5867399999999999, -0.76708], [0.58928, -0.762], [0.5969, -0.74676], [0.6095999999999999, -0.71882], [0.6223, -0.6858], [0.64262, -0.635], [0.67564, -0.57912], [0.7111999999999999, -0.5232399999999999], [0.74676, -0.47752], [0.76962, -0.45211999999999997], [0.80518, -0.42418], [0.8432799999999999, -0.3937], [0.87884, -0.36576], [0.9067799999999999, -0.34543999999999997], [0.9270999999999999, -0.33274], [0.93218, -0.3302], [0.9499599999999999, -0.32766], [0.96266, -0.32258], [0.99568, -0.30734], [1.03886, -0.28956], [1.05156, -0.28448], [1.06934, -0.2794], [1.1049, -0.27686], [1.15062, -0.27177999999999997], [1.20142, -0.26924], [1.2065, -0.26924], [1.3411199999999999, -0.26416], [1.35636, -0.17526], [1.36144, -0.13208], [1.36652, -0.09398], [1.36906, -0.06858], [1.36906, -0.06604], [1.36906, -0.62484], [1.3335, -0.61722], [1.29032, -0.61214], [1.28778, -0.61214], [1.24206, -0.6095999999999999], [1.20396, -0.61214], [1.1683999999999999, -0.61976], [1.14554, -0.6273799999999999], [1.10744, -0.64262], [1.06934, -0.66294], [1.03378, -0.6858], [1.00838, -0.70866], [0.99568, -0.72644], [0.99568, -0.72898], [0.9880599999999999, -0.74422], [0.9728199999999999, -0.76454], [0.9677399999999999, -0.77216], [0.9474199999999999, -0.8000999999999999], [0.93218, -0.8382], [0.91948, -0.87884], [0.91186, -0.91694], [0.91186, -0.9499599999999999], [0.92202, -0.9677399999999999], [0.92202, -0.9702799999999999], [0.93218, -0.98552], [0.93218, -0.99568], [0.9398, -1.01346], [0.9524999999999999, -1.0413999999999999], [0.9728199999999999, -1.07696], [0.97536, -1.0845799999999999], [1.00838, -1.1277599999999999], [1.03886, -1.15824], [1.07442, -1.18364], [1.14046, -1.2141199999999999], [1.20142, -1.22936], [1.2623799999999998, -1.22936], [1.3335, -1.2166599999999999], [1.40716, -1.18618], [1.4706599999999999, -1.143], [1.5189199999999998, -1.0871199999999999], [1.5519399999999999, -1.02108], [1.56718, -0.9448799999999999], [1.56718, -0.9270999999999999], [1.56718, -1.50622], [1.54432, -1.5163799999999998], [1.4986, -1.53924], [1.4605, -1.5544799999999999], [1.4274799999999999, -1.56718], [1.39192, -1.57226], [1.34874, -1.5748], [1.29286, -1.57734], [1.2522199999999999, -1.57734], [1.18872, -1.57734], [1.143, -1.5748], [1.1049, -1.57226], [1.07188, -1.56718], [1.03632, -1.5544799999999999], [0.9931399999999999, -1.53924], [0.94234, -1.5189199999999998], [0.9067799999999999, -1.50114], [0.87122, -1.4757399999999998], [0.85598, -1.4605], [0.83058, -1.44018], [0.81026, -1.4249399999999999], [0.8000999999999999, -1.4223999999999999], [0.7874, -1.41478], [0.76962, -1.39446], [0.76454, -1.3893799999999998], [0.74422, -1.36144], [0.7162799999999999, -1.32842], [0.70866, -1.3208], [0.68326, -1.28524], [0.65786, -1.24714], [0.6527799999999999, -1.23698], [0.635, -1.2065], [0.61214, -1.18872], [0.6095999999999999, -1.18872], [0.59436, -1.18618], [0.56134, -1.18618], [0.51054, -1.18618], [0.4445, -1.18364], [0.36576, -1.18364], [0.27686, -1.18364], [0.17779999999999999, -1.18364], [0.07112, -1.18364], [-0.040639999999999996, -1.18618], [-0.66802, -1.18872], [-0.6730999999999999, -1.40716], [-0.67818, -1.62306], [-0.87122, -1.62306], [-0.87122, -1.2979399999999999], [-0.87122, -1.24968], [-0.8763, -1.2141199999999999], [-0.87884, -1.19634], [-0.8813799999999999, -1.1938], [-0.8864599999999999, -1.20396], [-0.889, -1.22936], [-0.89154, -1.27254], [-0.89154, -1.2979399999999999], [-0.89154, -1.3461999999999998], [-0.889, -1.37922], [-0.8839199999999999, -1.39954], [-0.8813799999999999, -1.39954], [-0.8763, -1.3893799999999998], [-0.87376, -1.36398], [-0.87122, -1.3208], [-0.87122, -1.2979399999999999], [-0.87122, -1.62306], [-0.8813799999999999, -1.62306], [-1.0845799999999999, -1.62306], [-1.0896599999999999, -1.40462], [-1.09474, -1.18618], [-1.13538, -1.15062], [-1.15824, -1.1277599999999999], [-1.1683999999999999, -1.10998], [-1.1709399999999999, -1.0871199999999999], [-1.1683999999999999, -1.0845799999999999], [-1.1683999999999999, -1.06426], [-1.1709399999999999, -1.0287], [-1.1734799999999999, -0.9779], [-1.1760199999999998, -0.9144], [-1.18364, -0.8432799999999999], [-1.18872, -0.76962], [-1.19634, -0.6908799999999999], [-1.20142, -0.61468], [-1.20904, -0.5461], [-1.2141199999999999, -0.508], [-1.2191999999999998, -0.4572], [-1.22428, -0.3937], [-1.22936, -0.32511999999999996], [-1.23444, -0.27432], [-1.24206, -0.18288], [-1.24714, -0.11176], [-1.2547599999999999, -0.05842], [-1.2572999999999999, -0.0254], [-1.2623799999999998, -0.010159999999999999], [-1.26746, -0.0127], [-1.2827, -0.0254], [-1.3055599999999998, -0.04826], [-1.3411199999999999, -0.08127999999999999], [-1.3868399999999999, -0.127], [-1.44272, -0.18288], [-1.5112999999999999, -0.254], [-1.5925799999999999, -0.33527999999999997], [-1.6865599999999998, -0.43179999999999996], [-1.78054, -0.52832], [-1.96596, -0.71882], [-2.13868, -0.89662], [-2.2986999999999997, -1.06172], [-2.44348, -1.2115799999999999], [-2.5781, -1.3461999999999998], [-2.69494, -1.4681199999999999], [-2.8016199999999998, -1.5748], [-2.8930599999999997, -1.66878], [-2.96926, -1.74752], [-3.0327599999999997, -1.8110199999999999], [-3.0810199999999996, -1.8592799999999998], [-3.11658, -1.8948399999999999], [-3.1369, -1.91516], [-3.14452, -1.92024], [-3.15468, -1.91262], [-3.175, -1.8948399999999999], [-3.2054799999999997, -1.86944], [-3.21564, -1.8592799999999998], [-3.24612, -1.83134], [-3.26898, -1.8034], [-3.27914, -1.78562], [-3.2816799999999997, -1.78308], [-3.27406, -1.7703799999999998], [-3.2512, -1.74498], [-3.21564, -1.70434], [-3.1673799999999996, -1.65354], [-3.1038799999999998, -1.5875], [-3.0276799999999997, -1.5087599999999999], [-2.9413199999999997, -1.41986], [-2.84226, -1.31826], [-2.7304999999999997, -1.2065], [-2.7051, -1.17856], [-2.667, -1.143], [-2.62382, -1.09474], [-2.57302, -1.0413999999999999], [-2.5196799999999997, -0.9880599999999999], [-2.48666, -0.9524999999999999], [-2.44348, -0.9093199999999999], [-2.3876, -0.8509], [-2.32156, -0.78232], [-2.24536, -0.70358], [-2.16408, -0.61976], [-2.07518, -0.53086], [-1.9862799999999998, -0.43688], [-1.8948399999999999, -0.34543999999999997], [-1.8059399999999999, -0.25145999999999996], [-1.7195799999999999, -0.16255999999999998], [-1.6357599999999999, -0.07873999999999999], [-1.5595599999999998, -0.0025399999999999997], [-1.49352, 0.0635], [-1.4706599999999999, 0.08635999999999999], [-1.28524, 0.27432], [-1.29032, 0.38354], [-1.2953999999999999, 0.44195999999999996], [-1.3004799999999999, 0.508], [-1.3055599999999998, 0.5664199999999999], [-1.3081, 0.5841999999999999], [-1.31064, 0.61722], [-1.31572, 0.66802], [-1.32334, 0.73152], [-1.32842, 0.80772], [-1.33604, 0.89154], [-1.3436599999999999, 0.98044], [-1.35128, 1.07188], [-1.3589, 1.16332], [-1.36652, 1.24968], [-1.37414, 1.33096], [-1.37922, 1.39954], [-1.3842999999999999, 1.45542], [-1.3868399999999999, 1.49352], [-1.3893799999999998, 1.5367], [-1.39192, 1.5748], [-1.397, 1.6027399999999998], [-1.39954, 1.62814], [-1.40462, 1.67132], [-1.4097, 1.7271999999999998], [-1.41478, 1.7907], [-1.4223999999999999, 1.8567399999999998], [-1.4274799999999999, 1.92786], [-1.4274799999999999, 1.9304], [-1.4300199999999998, 1.9761199999999999], [-1.4351, 2.0193], [-1.43764, 2.0497799999999997], [-1.44272, 2.0827999999999998], [-1.44526, 2.1259799999999998], [-1.4478, 2.16408], [-1.45034, 2.19964], [-1.45288, 2.24536], [-1.45796, 2.30124], [-1.4655799999999999, 2.36728], [-1.4731999999999998, 2.4511], [-1.48336, 2.55016], [-1.48336, 2.5679399999999997], [-1.48844, 2.62382], [-1.49606, 2.68986], [-1.50114, 2.75844], [-1.50622, 2.8016199999999998], [-1.5112999999999999, 2.85242], [-1.5163799999999998, 2.8956], [-1.5189199999999998, 2.92862], [-1.524, 2.94386], [-1.53416, 2.95656], [-1.5544799999999999, 2.9794199999999997], [-1.59004, 3.0175199999999998], [-1.63322, 3.06324], [-1.6865599999999998, 3.1191199999999997], [-1.74752, 3.18262], [-1.8135599999999998, 3.2512], [-1.88214, 3.3248599999999997], [-1.95326, 3.39852], [-2.02692, 3.47472], [-2.09042, 3.5407599999999997], [-2.14884, 3.59918], [-2.20472, 3.6576], [-2.2555199999999997, 3.7083999999999997], [-2.30124, 3.7566599999999997], [-2.33426, 3.79222], [-2.35966, 3.81762], [-2.3622, 3.82016], [-2.38252, 3.8430199999999997], [-2.41554, 3.8760399999999997], [-2.45872, 3.92176], [-2.5095199999999998, 3.9725599999999996], [-2.5628599999999997, 4.03098], [-2.62128, 4.0893999999999995], [-2.62636, 4.09448], [-2.6923999999999997, 4.16306], [-2.7635199999999998, 4.23672], [-2.83464, 4.310379999999999], [-2.9032199999999997, 4.3815], [-2.96418, 4.444999999999999], [-3.00228, 4.48564], [-3.05562, 4.54152], [-3.1115, 4.5973999999999995], [-3.1622999999999997, 4.65328], [-3.2105599999999996, 4.70154], [-3.2486599999999997, 4.7371], [-3.2537399999999996, 4.74472], [-3.29438, 4.78282], [-3.3299399999999997, 4.82346], [-3.3629599999999997, 4.8564799999999995], [-3.38074, 4.876799999999999], [-3.41884, 4.92252], [-3.35026, 4.98856], [-3.3197799999999997, 5.0190399999999995], [-3.29438, 5.0419], [-3.2765999999999997, 5.0546], [-3.2715199999999998, 5.0546], [-3.26136, 5.049519999999999], [-3.24104, 5.0291999999999994], [-3.20802, 4.99618], [-3.1673799999999996, 4.95554], [-3.12166, 4.90982], [-3.0810199999999996, 4.866639999999999], [-3.02006, 4.80314], [-2.9514799999999997, 4.7320199999999994], [-2.87528, 4.65328], [-2.8016199999999998, 4.57708], [-2.7304999999999997, 4.50342], [-2.69748, 4.4704], [-2.6416, 4.41198], [-2.58318, 4.35356], [-2.53238, 4.29768], [-2.48412, 4.24942], [-2.44602, 4.20878], [-2.4231599999999998, 4.18338], [-2.3952199999999997, 4.15544], [-2.35712, 4.1148], [-2.3088599999999997, 4.06654], [-2.2555199999999997, 4.01066], [-2.19964, 3.9522399999999998], [-2.14884, 3.8989], [-2.09042, 3.84048], [-2.03454, 3.78206], [-1.9837399999999998, 3.72872], [-1.9354799999999999, 3.6804599999999996], [-1.8999199999999998, 3.64236], [-1.87706, 3.6169599999999997], [-1.8110199999999999, 3.54838], [-1.7526, 3.48488], [-1.69672, 3.429], [-1.64846, 3.3781999999999996], [-1.60782, 3.33756], [-1.57734, 3.30962], [-1.5595599999999998, 3.29438], [-1.5544799999999999, 3.2893], [-1.5493999999999999, 3.29946], [-1.5493999999999999, 3.32232], [-1.5493999999999999, 3.3299399999999997], [-1.5519399999999999, 3.35534], [-1.5570199999999998, 3.3959799999999998], [-1.5595599999999998, 3.44678], [-1.5620999999999998, 3.4874199999999997], [-1.56718, 3.5356799999999997], [-1.56972, 3.57632], [-1.5748, 3.6068], [-1.57988, 3.6195], [-1.58496, 3.6372799999999996], [-1.58242, 3.64744], [-1.58242, 3.66776], [-1.5875, 3.68554], [-1.5925799999999999, 3.6931599999999998], [-1.6027399999999998, 3.6982399999999997], [-1.61798, 3.7033199999999997], [-1.6433799999999998, 3.70586], [-1.6814799999999999, 3.70586], [-1.73736, 3.70586], [-1.75006, 3.70586], [-1.8999199999999998, 3.70586], [-1.8999199999999998, 3.8760399999999997], [-1.8999199999999998, 4.04876], [-1.778, 4.0512999999999995], [-1.65608, 4.05384], [-1.64846, 4.099559999999999], [-1.6433799999999998, 4.13512], [-1.63322, 4.1655999999999995], [-1.63068, 4.17322], [-1.61036, 4.19862], [-1.58242, 4.23164], [-1.54432, 4.2672], [-1.50622, 4.3002199999999995], [-1.4681199999999999, 4.3307], [-1.4325599999999998, 4.3561], [-1.40716, 4.3688], [-1.39954, 4.37134], [-1.37922, 4.3764199999999995], [-1.36398, 4.39166], [-1.3436599999999999, 4.406899999999999], [-1.32588, 4.41198], [-1.3055599999999998, 4.41706], [-1.27508, 4.42722], [-1.26492, 4.4323], [-1.22428, 4.45262], [-1.22428, 4.55676], [-1.22428, 4.6609], [-0.9905999999999999, 4.6609], [-0.7569199999999999, 4.6609], [-0.7569199999999999, 4.617719999999999], [-0.7569199999999999, 4.57454], [-0.6908799999999999, 4.58216], [-0.6527799999999999, 4.5872399999999995], [-0.61468, 4.59486], [-0.5969, 4.5973999999999995], [-0.57404, 4.60248], [-0.53594, 4.607559999999999], [-0.48768, 4.61264], [-0.43434, 4.617719999999999], [-0.4191, 4.62026], [-0.36576, 4.62534], [-0.32004, 4.63042], [-0.28448, 4.63804], [-0.26416, 4.64312], [-0.26161999999999996, 4.64312], [-0.25145999999999996, 4.66344], [-0.24892, 4.70154], [-0.24892, 4.7116999999999996], [-0.254, 4.7701199999999995], [0.26924, 4.7701199999999995], [0.79248, 4.7701199999999995], [0.7975599999999999, 4.693919999999999], [0.8026399999999999, 4.617719999999999], [0.84836, 4.60248], [0.87884, 4.59486], [0.9245599999999999, 4.5872399999999995], [0.9728199999999999, 4.579619999999999], [0.98298, 4.579619999999999], [1.03632, 4.569459999999999], [1.09728, 4.5592999999999995], [1.16586, 4.54406], [1.23444, 4.52882], [1.3004799999999999, 4.5110399999999995], [1.36144, 4.4958], [1.4097, 4.48056], [1.44526, 4.46786], [1.45542, 4.4627799999999995], [1.47828, 4.45516], [1.48844, 4.45262], [1.5087599999999999, 4.45008], [1.5367, 4.43738], [1.5493999999999999, 4.4323], [1.57734, 4.4196], [1.6027399999999998, 4.41198], [1.60782, 4.41198], [1.62814, 4.40436], [1.6433799999999998, 4.39166], [1.66116, 4.3764199999999995], [1.67386, 4.37134], [1.6865599999999998, 4.36626], [1.70942, 4.35102], [1.7271999999999998, 4.3383199999999995], [1.7754599999999998, 4.30784], [1.84404, 4.34086], [1.92278, 4.37134], [1.9939, 4.3815], [2.06248, 4.37134], [2.09804, 4.358639999999999], [2.159, 4.32308], [2.20472, 4.28498], [2.24282, 4.23164], [2.2504399999999998, 4.2164], [2.2733, 4.16814], [2.28346, 4.12242], [2.27838, 4.07162], [2.2605999999999997, 4.013199999999999], [2.2504399999999998, 3.9878], [2.23266, 3.94462], [2.2174199999999997, 3.91668], [2.1971, 3.89636], [2.1717, 3.87858], [2.1717, 3.8760399999999997], [2.1361399999999997, 3.85064], [2.11836, 3.82524], [2.11836, 3.7973], [2.1209, 3.79222], [2.12852, 3.7896799999999997], [2.14122, 3.7998399999999997], [2.16662, 3.82016], [2.20218, 3.8531799999999996], [2.2479, 3.90398], [2.2504399999999998, 3.90398], [2.28346, 3.94208], [2.33172, 3.9903399999999998], [2.3901399999999997, 4.0512999999999995], [2.45364, 4.1148], [2.52222, 4.185919999999999], [2.59334, 4.25704], [2.66192, 4.32816], [2.73304, 4.39928], [2.80416, 4.4729399999999995], [2.87274, 4.54152], [2.9362399999999997, 4.607559999999999], [2.9946599999999997, 4.66852], [3.04292, 4.71678], [3.07848, 4.75488], [3.1521399999999997, 4.83362], [3.21818, 4.89966], [3.27406, 4.95808], [3.3197799999999997, 5.001259999999999], [3.3528, 5.03428], [3.37566, 5.05206], [3.38074, 5.0546], [3.39344, 5.049519999999999], [3.41376, 5.0291999999999994], [3.4417, 5.0038], [3.4671, 4.97586], [3.4924999999999997, 4.94792], [3.51028, 4.92506], [3.5179, 4.91236]]]}, {"angle": [180.0], "type": "polygon", "pos": [162.1155, 78.1685], "polygons": [[[3.0099, -4.9428399999999995], [0.0, -4.9428399999999995], [-3.0099, -4.9428399999999995], [-3.0099, -4.18846], [-3.0099, -3.43662], [0.0, -3.43662], [3.0099, -3.43662], [3.0099, -4.18846], [3.0099, -4.9428399999999995]]]}], "F": [{"width": 1.0, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "Rev.A 1/17", "thickness": 0.19999999999999998, "pos": [140.2715, 72.517], "height": 1.0}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C5", "thickness": 0.15, "pos": [164.338, 87.884], "height": 0.7999999999999999}, {"start": [163.38549999999998, 86.2965], "end": [163.38549999999998, 89.47149999999999], "type": "segment", "width": 0.15}, {"start": [161.8615, 86.2965], "end": [161.8615, 89.47149999999999], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 86.2965], "end": [161.8615, 86.2965], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 89.47149999999999], "end": [161.8615, 89.47149999999999], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 89.3445], "end": [161.8615, 89.3445], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 89.2175], "end": [161.8615, 89.2175], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 89.09049999999999], "end": [161.8615, 89.09049999999999], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 88.9635], "end": [161.8615, 88.9635], "type": "segment", "width": 0.15}, {"start": [163.38549999999998, 88.8365], "end": [161.8615, 88.8365], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C9", "thickness": 0.15, "pos": [144.14499999999998, 72.26299999999999], "height": 0.7999999999999999}, {"start": [142.30349999999999, 72.9615], "end": [145.4785, 72.9615], "type": "segment", "width": 0.15}, {"start": [142.30349999999999, 74.4855], "end": [145.4785, 74.4855], "type": "segment", "width": 0.15}, {"start": [142.30349999999999, 72.9615], "end": [142.30349999999999, 74.4855], "type": "segment", "width": 0.15}, {"start": [145.4785, 72.9615], "end": [145.4785, 74.4855], "type": "segment", "width": 0.15}, {"start": [145.3515, 72.9615], "end": [145.3515, 74.4855], "type": "segment", "width": 0.15}, {"start": [145.2245, 72.9615], "end": [145.2245, 74.4855], "type": "segment", "width": 0.15}, {"start": [145.0975, 72.9615], "end": [145.0975, 74.4855], "type": "segment", "width": 0.15}, {"start": [144.9705, 72.9615], "end": [144.9705, 74.4855], "type": "segment", "width": 0.15}, {"start": [144.8435, 72.9615], "end": [144.8435, 74.4855], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C10", "thickness": 0.15, "pos": [130.46456, 77.53349999999999], "height": 0.7999999999999999}, {"start": [131.9911, 76.5556], "end": [128.8161, 76.5556], "type": "segment", "width": 0.15}, {"start": [131.9911, 75.0316], "end": [128.8161, 75.0316], "type": "segment", "width": 0.15}, {"start": [131.9911, 76.5556], "end": [131.9911, 75.0316], "type": "segment", "width": 0.15}, {"start": [128.8161, 76.5556], "end": [128.8161, 75.0316], "type": "segment", "width": 0.15}, {"start": [128.9431, 76.5556], "end": [128.9431, 75.0316], "type": "segment", "width": 0.15}, {"start": [129.0701, 76.5556], "end": [129.0701, 75.0316], "type": "segment", "width": 0.15}, {"start": [129.1971, 76.5556], "end": [129.1971, 75.0316], "type": "segment", "width": 0.15}, {"start": [129.3241, 76.5556], "end": [129.3241, 75.0316], "type": "segment", "width": 0.15}, {"start": [129.4511, 76.5556], "end": [129.4511, 75.0316], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "F1", "thickness": 0.15, "pos": [123.317, 77.089], "height": 0.7999999999999999}, {"start": [123.717, 76.1638], "end": [122.91699999999999, 76.1638], "type": "segment", "width": 0.15}, {"start": [123.717, 74.8138], "end": [122.91699999999999, 74.8138], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 45.0, "attr": [], "horiz_justify": 0, "text": "Y1", "thickness": 0.15, "pos": [139.319, 84.455], "height": 0.7999999999999999}, {"width": 0.15, "endangle": 315.0, "start": [137.15311499999999, 88.463456], "radius": 0.3, "startangle": 225.0, "type": "arc"}, {"width": 0.15, "endangle": 405.0, "start": [136.02174399999998, 87.33208499999999], "radius": 0.3, "startangle": 315.0, "type": "arc"}, {"width": 0.15, "endangle": 135.0, "start": [138.284485, 85.069344], "radius": 0.3, "startangle": 45.0, "type": "arc"}, {"width": 0.15, "endangle": 225.0, "start": [139.415856, 86.200715], "radius": 0.3, "startangle": 135.0, "type": "arc"}, {"start": [136.940983, 88.251324], "end": [136.23387599999998, 87.54421699999999], "type": "segment", "width": 0.15}, {"start": [137.36524699999998, 88.251324], "end": [139.203724, 86.412847], "type": "segment", "width": 0.15}, {"start": [139.203724, 85.98858299999999], "end": [138.496617, 85.281476], "type": "segment", "width": 0.15}, {"start": [138.072353, 85.281476], "end": [136.23387599999998, 87.119953], "type": "segment", "width": 0.15}, {"start": [139.133014, 86.059293], "end": [138.425907, 85.352186], "type": "segment", "width": 0.15}, {"start": [137.01169299999998, 88.18061399999999], "end": [136.304586, 87.473507], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "PR1", "thickness": 0.15, "pos": [137.541, 95.12299999999999], "height": 0.7999999999999999}, {"width": 0.15, "endangle": 360.0, "start": [137.144, 91.5035], "radius": 0.9524999999999999, "startangle": 270.0, "type": "arc"}, {"width": 0.15, "endangle": 90.0, "start": [137.144, 93.40849999999999], "radius": 0.9524999999999999, "startangle": 0.0, "type": "arc"}, {"start": [138.0965, 91.5035], "end": [138.0965, 93.40849999999999], "type": "segment", "width": 0.15}, {"width": 0.15, "endangle": 225.0, "start": [130.0005, 92.45599999999999], "radius": 1.023749, "startangle": 135.0, "type": "arc"}, {"start": [129.2766, 91.7321], "end": [130.4577, 90.551], "type": "segment", "width": 0.15}, {"start": [129.2766, 93.17989999999999], "end": [130.4577, 94.36099999999999], "type": "segment", "width": 0.15}, {"start": [135.144, 90.551], "end": [130.4577, 90.551], "type": "segment", "width": 0.15}, {"start": [135.144, 94.36099999999999], "end": [130.4577, 94.36099999999999], "type": "segment", "width": 0.15}, {"start": [135.144, 94.36099999999999], "end": [137.13281999999998, 94.36099999999999], "type": "segment", "width": 0.15}, {"start": [135.144, 90.551], "end": [137.14552, 90.551], "type": "segment", "width": 0.15}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "xPablo.cz", "thickness": 0.19, "pos": [124.46, 94.996], "height": 1.0}, {"angle": [0.0], "type": "polygon", "pos": [124.46, 90.932], "polygons": [[[-0.156799, -2.586138], [0.168706, -2.569867], [0.424048, -2.538563], [0.624782, -2.4887989999999998], [0.786461, -2.4171519999999997], [0.924638, -2.320195], [1.007318, -2.2438819999999997], [1.169938, -2.034739], [1.270595, -1.7852999999999999], [1.316296, -1.474743], [1.3208, -1.312181], [1.280433, -0.9573269999999999], [1.1616689999999998, -0.658702], [0.9680129999999999, -0.42327699999999996], [0.820588, -0.31716099999999997], [0.7014319999999999, -0.25346599999999997], [0.5858789999999999, -0.21123499999999998], [0.44648, -0.184951], [0.255785, -0.169096], [0.038099999999999995, -0.159878], [-0.508, -0.14116099999999998], [-0.508, 0.031018999999999998], [-0.5042, 0.14637799999999998], [-0.494896, 0.202231], [-0.493342, 0.2032], [-0.443523, 0.182325], [-0.33511199999999997, 0.12971], [-0.279401, 0.1016], [-0.027825, 0.020631999999999998], [0.263953, -0.000552], [0.554071, 0.037924], [0.7427309999999999, 0.104568], [1.014588, 0.289624], [1.228662, 0.54231], [1.3782219999999998, 0.8424149999999999], [1.456537, 1.169726], [1.456874, 1.50403], [1.3725049999999999, 1.8251169999999999], [1.339554, 1.8966749999999999], [1.155595, 2.167706], [0.9143319999999999, 2.3838429999999997], [0.635367, 2.536037], [0.338302, 2.6152379999999997], [0.04274, 2.612399], [-0.119117, 2.570024], [-0.28057, 2.49254], [-0.421129, 2.396875], [-0.436617, 2.383075], [-0.5588, 2.2682889999999998], [-0.5588, 2.54], [-1.4223999999999999, 2.54], [-1.4223999999999999, 1.2935809999999999], [-0.564607, 1.2935809999999999], [-0.528443, 1.496039], [-0.428486, 1.6754179999999999], [-0.273546, 1.8089529999999998], [-0.072436, 1.873877], [-0.036469, 1.876379], [0.06969299999999999, 1.859518], [0.21051699999999998, 1.8139969999999999], [0.229714, 1.8062079999999998], [0.404713, 1.682016], [0.515185, 1.4968089999999998], [0.547314, 1.277609], [0.5383859999999999, 1.202513], [0.45531, 1.003237], [0.306332, 0.8579869999999999], [0.115882, 0.7742829999999999], [-0.091612, 0.759644], [-0.291721, 0.8215899999999999], [-0.410308, 0.910492], [-0.528166, 1.09081], [-0.564607, 1.2935809999999999], [-1.4223999999999999, 1.2935809999999999], [-1.4223999999999999, -1.8288], [-0.508, -1.8288], [-0.508, -0.9144], [-0.2413, -0.915149], [-0.060848, -0.927801], [0.096718, -0.9591059999999999], [0.15239999999999998, -0.979911], [0.26789199999999996, -1.089853], [0.33341099999999996, -1.257779], [0.33965799999999996, -1.448569], [0.307924, -1.567257], [0.19855199999999998, -1.710521], [0.010541, -1.7970819999999998], [-0.259897, -1.828606], [-0.286981, -1.8288], [-0.508, -1.8288], [-1.4223999999999999, -1.8288], [-1.4223999999999999, -2.5907999999999998], [-0.568021, -2.590801], [-0.156799, -2.586138]]]}, {"angle": [0.0], "type": "polygon", "pos": [124.46, 90.932], "polygons": [[[1.9304, -2.802155], [1.937676, -2.647455], [1.96887, -2.5604489999999998], [2.0380249999999998, -2.5077089999999997], [2.058148, -2.498103], [2.199515, -2.387648], [2.2641649999999998, -2.239014], [2.252099, -2.080637], [2.163315, -1.940948], [2.058148, -1.870698], [1.993393, -1.8342619999999998], [1.955244, -1.7818559999999999], [1.93671, -1.6889539999999998], [1.930802, -1.531027], [1.9304, -1.4223999999999999], [1.9326699999999999, -1.223632], [1.9441389999999998, -1.101913], [1.971798, -1.032716], [2.022634, -0.991514], [2.058148, -0.9741029999999999], [2.19958, -0.863626], [2.267567, -0.710677], [2.2494929999999997, -0.545203], [2.244102, -0.532652], [2.152469, -0.412792], [2.058148, -0.346698], [1.9891869999999998, -0.30661], [1.9508249999999998, -0.247717], [1.9342659999999998, -0.142897], [1.930715, 0.034976], [1.930721, 0.046253999999999997], [1.933952, 0.228158], [1.950178, 0.337669], [1.9898529999999999, 0.40395899999999996], [2.0634289999999997, 0.45620299999999997], [2.0812969999999997, 0.46648999999999996], [2.220999, 0.592754], [2.271016, 0.750485], [2.226085, 0.9200969999999999], [2.210226, 0.946278], [2.117899, 1.0496349999999999], [2.026826, 1.104233], [1.974569, 1.131847], [1.9452129999999999, 1.19593], [1.932593, 1.319936], [1.9304, 1.4709699999999999], [1.933557, 1.655284], [1.948731, 1.764822], [1.9844769999999998, 1.826349], [2.0493479999999997, 1.866633], [2.058148, 1.8706969999999998], [2.19958, 1.981174], [2.267567, 2.1341229999999998], [2.2494929999999997, 2.299597], [2.244102, 2.312148], [2.152469, 2.4320079999999997], [2.058148, 2.498102], [1.979485, 2.5479469999999997], [1.9416589999999998, 2.625213], [1.9306269999999999, 2.763325], [1.9304, 2.802154], [1.9304, 3.048], [-1.8796, 3.048], [-1.8796, 2.794], [-1.8901549999999998, 2.625978], [-1.923479, 2.5481219999999998], [-1.946945, 2.54], [-2.0428669999999998, 2.498281], [-2.142637, 2.397592], [-2.215899, 2.2746299999999997], [-2.229613, 2.215573], [-2.023361, 2.215573], [-1.9864529999999998, 2.30654], [-1.931995, 2.3367999999999998], [-1.8952099999999998, 2.292663], [-1.879605, 2.186317], [-1.8796, 2.1844], [-1.899686, 2.0714859999999997], [-1.946593, 2.03252], [-2.0002969999999998, 2.078887], [-2.01363, 2.1082], [-2.023361, 2.215573], [-2.229613, 2.215573], [-2.2352, 2.191516], [-2.201434, 2.086026], [-2.119931, 1.966673], [-2.020386, 1.869062], [-1.93271, 1.8288], [-1.903967, 1.781037], [-1.885424, 1.649333], [-1.8796, 1.4731999999999998], [-1.885427, 1.272541], [-1.904677, 1.1589], [-1.9400039999999998, 1.118264], [-1.946945, 1.1176], [-2.0428669999999998, 1.0758809999999999], [-2.142637, 0.975192], [-2.215899, 0.8522299999999999], [-2.229613, 0.793173], [-2.023361, 0.793173], [-1.9864529999999998, 0.8841399999999999], [-1.931995, 0.9144], [-1.8952099999999998, 0.870263], [-1.879605, 0.763917], [-1.8796, 0.762], [-1.899686, 0.6490859999999999], [-1.946593, 0.61012], [-2.0002969999999998, 0.6564869999999999], [-2.01363, 0.6858], [-2.023361, 0.793173], [-2.229613, 0.793173], [-2.2352, 0.7691159999999999], [-2.201434, 0.6636259999999999], [-2.119931, 0.544273], [-2.020386, 0.446662], [-1.93271, 0.4064], [-1.9038069999999998, 0.358744], [-1.8852259999999998, 0.227787], [-1.8796, 0.058954], [-1.882626, -0.127152], [-1.897257, -0.238173], [-1.931827, -0.300569], [-1.99467, -0.34080299999999997], [-2.007349, -0.346698], [-2.148716, -0.457153], [-2.2133659999999997, -0.605787], [-2.211581, -0.629227], [-2.023361, -0.629227], [-1.9864529999999998, -0.53826], [-1.931995, -0.508], [-1.8952099999999998, -0.552137], [-1.879605, -0.6584829999999999], [-1.8796, -0.6604], [-1.899686, -0.773314], [-1.946593, -0.81228], [-2.0002969999999998, -0.765913], [-2.01363, -0.7365999999999999], [-2.023361, -0.629227], [-2.211581, -0.629227], [-2.2013, -0.764164], [-2.112516, -0.9038529999999999], [-2.007349, -0.9741029999999999], [-1.942594, -1.0105389999999999], [-1.904445, -1.062945], [-1.885911, -1.1558469999999998], [-1.8800029999999999, -1.313774], [-1.8796, -1.4223999999999999], [-1.8818709999999998, -1.6211689999999999], [-1.89334, -1.742888], [-1.920999, -1.812085], [-1.971835, -1.853287], [-2.007349, -1.870698], [-2.148716, -1.981153], [-2.2133659999999997, -2.129787], [-2.208217, -2.1973819999999997], [-2.0254339999999997, -2.1973819999999997], [-2.01363, -2.1082], [-1.961573, -2.036302], [-1.9107919999999998, -2.052875], [-1.881311, -2.146535], [-1.8796, -2.1844], [-1.894774, -2.291398], [-1.931336, -2.336789], [-1.931995, -2.3367999999999998], [-1.99524, -2.2943189999999998], [-2.0254339999999997, -2.1973819999999997], [-2.208217, -2.1973819999999997], [-2.2013, -2.288164], [-2.112516, -2.427853], [-2.007349, -2.498103], [-1.928686, -2.547948], [-1.89086, -2.6252139999999997], [-1.8798279999999998, -2.7633259999999997], [-1.8796, -2.802155], [-1.8796, -2.8447999999999998], [-1.6764, -2.8447999999999998], [-1.6764, 2.8447999999999998], [1.7271999999999998, 2.8447999999999998], [1.7271999999999998, 2.1902269999999997], [1.9304, 2.1902269999999997], [1.954507, 2.299426], [2.0069369999999997, 2.323356], [2.057857, 2.260058], [2.072785, 2.199586], [2.0521089999999997, 2.101539], [2.0092849999999998, 2.06546], [1.952782, 2.067202], [1.931595, 2.144358], [1.9304, 2.1902269999999997], [1.7271999999999998, 2.1902269999999997], [1.7271999999999998, 0.7678269999999999], [1.9304, 0.7678269999999999], [1.954507, 0.877026], [2.0069369999999997, 0.900956], [2.057857, 0.837658], [2.072785, 0.7771859999999999], [2.0521089999999997, 0.6791389999999999], [2.0092849999999998, 0.64306], [1.952782, 0.644802], [1.931595, 0.721958], [1.9304, 0.7678269999999999], [1.7271999999999998, 0.7678269999999999], [1.7271999999999998, -0.6604], [1.9304, -0.6604], [1.9471729999999998, -0.543953], [1.9939, -0.5206999999999999], [2.0434859999999997, -0.581931], [2.0574, -0.6604], [2.033452, -0.760944], [1.9939, -0.8000999999999999], [1.9457259999999998, -0.773666], [1.9304, -0.6604], [1.7271999999999998, -0.6604], [1.7271999999999998, -2.1844], [1.9304, -2.1844], [1.9471729999999998, -2.0679529999999997], [1.9939, -2.0446999999999997], [2.0434859999999997, -2.105931], [2.0574, -2.1844], [2.033452, -2.284944], [1.9939, -2.3241], [1.9457259999999998, -2.297666], [1.9304, -2.1844], [1.7271999999999998, -2.1844], [1.7271999999999998, -2.8447999999999998], [1.02285, -2.8447999999999998], [0.7360979999999999, -2.8433669999999998], [0.532069, -2.837534], [0.39191, -2.8250029999999997], [0.296766, -2.803477], [0.22778199999999998, -2.770656], [0.18933799999999998, -2.7432], [0.074742, -2.664183], [-0.010794, -2.653974], [-0.112469, -2.712574], [-0.15239999999999998, -2.7432], [-0.214994, -2.7836749999999997], [-0.293864, -2.8116], [-0.40787199999999996, -2.829272], [-0.575877, -2.838986], [-0.816743, -2.843038], [-0.9779, -2.843671], [-1.6764, -2.8447999999999998], [-1.8796, -2.8447999999999998], [-1.8796, -3.048], [-1.0541, -3.046871], [-0.740331, -3.0452619999999997], [-0.511335, -3.040276], [-0.3503, -3.030194], [-0.240415, -3.013293], [-0.16486699999999999, -2.987853], [-0.106843, -2.952153], [-0.10343, -2.9495519999999997], [-0.012655999999999999, -2.8874999999999997], [0.054244999999999995, -2.885337], [0.148004, -2.943281], [0.158412, -2.950682], [0.22053, -2.987675], [0.297844, -3.0140219999999998], [0.407535, -3.031476], [0.566785, -3.041789], [0.792774, -3.046713], [1.102685, -3.048], [1.9304, -3.048], [1.9304, -2.802155]]]}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "U3", "thickness": 0.15, "pos": [142.367, 93.59899999999999], "height": 0.7999999999999999}, {"start": [143.2085, 76.9005], "end": [143.2085, 92.9005], "type": "segment", "width": 0.15}, {"start": [159.2085, 76.9005], "end": [143.2085, 76.9005], "type": "segment", "width": 0.15}, {"start": [159.2085, 92.9005], "end": [159.2085, 76.9005], "type": "segment", "width": 0.15}, {"start": [143.2085, 92.9005], "end": [159.2085, 92.9005], "type": "segment", "width": 0.15}, {"start": [143.5989, 92.9005], "end": [143.2179, 92.3163], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "U2", "thickness": 0.15, "pos": [142.367, 90.678], "height": 0.7999999999999999}, {"start": [159.257, 89.2885], "end": [143.257, 89.2885], "type": "segment", "width": 0.15}, {"start": [159.257, 69.5885], "end": [159.257, 89.2885], "type": "segment", "width": 0.15}, {"start": [143.257, 69.5885], "end": [159.257, 69.5885], "type": "segment", "width": 0.15}, {"start": [143.257, 89.2885], "end": [143.257, 69.5885], "type": "segment", "width": 0.15}, {"start": [142.84959999999998, 89.2683], "radius": 0.071842, "type": "circle", "width": 0.39999999999999997}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "E1", "thickness": 0.15, "pos": [163.703, 77.343], "height": 0.7999999999999999}, {"width": 0.15, "endangle": 360.0, "start": [164.7792, 79.69579999999999], "radius": 0.3, "startangle": 270.0, "type": "arc"}, {"width": 0.15, "endangle": 90.0, "start": [164.7792, 81.69579999999999], "radius": 0.3, "startangle": 0.0, "type": "arc"}, {"width": 0.15, "endangle": 180.0, "start": [162.7792, 81.69579999999999], "radius": 0.3, "startangle": 90.0, "type": "arc"}, {"width": 0.15, "endangle": 270.0, "start": [162.7792, 79.69579999999999], "radius": 0.3, "startangle": 180.0, "type": "arc"}, {"start": [165.0792, 79.69579999999999], "end": [165.0792, 81.69579999999999], "type": "segment", "width": 0.15}, {"start": [164.7792, 81.9958], "end": [162.7792, 81.9958], "type": "segment", "width": 0.15}, {"start": [162.4792, 81.69579999999999], "end": [162.4792, 79.69579999999999], "type": "segment", "width": 0.15}, {"start": [162.7792, 79.3958], "end": [164.7792, 79.3958], "type": "segment", "width": 0.15}, {"start": [163.7792, 80.69579999999999], "radius": 1.0, "type": "circle", "width": 0.15}, {"start": [163.7792, 80.69579999999999], "radius": 0.09999999999999999, "type": "circle", "width": 0.15}, {"start": [164.664, 68.102], "end": [164.664, 70.642], "type": "segment", "width": 0.15239999999999998}, {"start": [162.124, 70.642], "end": [162.124, 68.102], "type": "segment", "width": 0.15239999999999998}, {"start": [162.124, 68.102], "end": [164.664, 68.102], "type": "segment", "width": 0.15239999999999998}, {"start": [164.664, 70.642], "end": [162.124, 70.642], "type": "segment", "width": 0.15239999999999998}, {"start": [164.664, 92.30199999999999], "end": [164.664, 94.842], "type": "segment", "width": 0.15239999999999998}, {"start": [162.124, 94.842], "end": [162.124, 92.30199999999999], "type": "segment", "width": 0.15239999999999998}, {"start": [162.124, 92.30199999999999], "end": [164.664, 92.30199999999999], "type": "segment", "width": 0.15239999999999998}, {"start": [164.664, 94.842], "end": [162.124, 94.842], "type": "segment", "width": 0.15239999999999998}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "J1", "thickness": 0.15, "pos": [119.253, 76.2], "height": 0.7999999999999999}, {"width": 0.7999999999999999, "angle": 45.0, "attr": [], "horiz_justify": 0, "text": "U1", "thickness": 0.15, "pos": [134.9375, 87.37599999999999], "height": 0.7999999999999999}, {"start": [131.390289, 82.5754], "end": [131.76152, 82.946631], "type": "segment", "width": 0.15}, {"start": [135.1026, 78.863089], "end": [135.473831, 79.23432], "type": "segment", "width": 0.15}, {"start": [138.814911, 82.5754], "end": [138.44368, 82.204169], "type": "segment", "width": 0.15}, {"start": [135.1026, 78.863089], "end": [134.731369, 79.23432], "type": "segment", "width": 0.15}, {"start": [138.814911, 82.5754], "end": [138.44368, 82.946631], "type": "segment", "width": 0.15}, {"start": [131.390289, 82.5754], "end": [131.76152, 82.204169], "type": "segment", "width": 0.15}, {"start": [135.138521, 86.454871], "radius": 0.1016, "type": "circle", "width": 0.19999999999999998}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.202416, -0.47839299999999996], [-2.211442, -0.469367], [-2.220469, -0.47839299999999996], [-2.211442, -0.48741999999999996], [-2.202416, -0.47839299999999996]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.259667, -0.41030099999999997], [-2.268386, -0.392684], [-2.289689, -0.358024], [-2.326234, -0.301985], [-2.376886, -0.225898], [-2.408336, -0.180882], [-2.430126, -0.153523], [-2.4371, -0.149391], [-2.427856, -0.169655], [-2.403889, -0.210011], [-2.370841, -0.261945], [-2.334357, -0.316945], [-2.3000819999999997, -0.36649499999999996], [-2.273659, -0.40208299999999997], [-2.260875, -0.415209], [-2.259667, -0.41030099999999997]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.478869, -0.060549], [-2.482231, -0.054157], [-2.499241, -0.036917], [-2.502415, -0.036105], [-2.503646, -0.047765999999999996], [-2.5002839999999997, -0.054157], [-2.483275, -0.071398], [-2.480101, -0.07221], [-2.478869, -0.060549]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.5532939999999997, 0.067426], [-2.563468, 0.090263], [-2.582111, 0.11863399999999999], [-2.591817, 0.126368], [-2.591695, 0.113101], [-2.581521, 0.090263], [-2.562878, 0.061893], [-2.553171, 0.054158], [-2.5532939999999997, 0.067426]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.677801, 0.27680699999999997], [-2.6756409999999997, 0.29823099999999997], [-2.677801, 0.300877], [-2.688533, 0.29839899999999997], [-2.6898359999999997, 0.288842], [-2.6832309999999997, 0.273982], [-2.677801, 0.27680699999999997]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.786196, 0.916169], [-2.7838119999999997, 0.953129], [-2.786196, 0.961301], [-2.792785, 0.963569], [-2.795301, 0.938735], [-2.792464, 0.913107], [-2.786196, 0.916169]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.798152, 1.056077], [-2.807178, 1.065103], [-2.816204, 1.056077], [-2.807178, 1.047051], [-2.798152, 1.056077]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[3.9719019999999996, 0.42074599999999995], [4.041695, 0.43489], [4.1059339999999995, 0.45230899999999996], [4.177087, 0.477412], [4.222865, 0.502991], [4.253533, 0.535312], [4.261215, 0.5470849999999999], [4.285302, 0.588096], [4.293068, 0.615769], [4.283512, 0.6440929999999999], [4.255636, 0.687056], [4.250691, 0.694332], [4.22204, 0.745212], [4.21915, 0.777192], [4.223072999999999, 0.783801], [4.241184, 0.831305], [4.242414999999999, 0.9080849999999999], [4.226741, 1.0114889999999999], [4.225449, 1.017612], [4.214087, 1.110616], [4.217372, 1.203805], [4.233457, 1.289324], [4.260492999999999, 1.359319], [4.2966359999999995, 1.4059359999999999], [4.319779, 1.418782], [4.365966, 1.423565], [4.4334739999999995, 1.4193339999999999], [4.509176, 1.407875], [4.579941, 1.3909749999999999], [4.615679, 1.378506], [4.6578479999999995, 1.362733], [4.682922, 1.356839], [4.685108, 1.357413], [4.677697, 1.3728129999999998], [4.6525039999999995, 1.40523], [4.637352, 1.422693], [4.559302, 1.484321], [4.461609999999999, 1.5218669999999999], [4.3525529999999995, 1.534139], [4.240409, 1.519946], [4.1597, 1.491425], [4.067705, 1.4349729999999998], [4.0056069999999995, 1.3631069999999998], [3.9707709999999996, 1.278762], [3.9517949999999997, 1.2082929999999998], [3.8990449999999996, 1.245854], [3.860854, 1.275526], [3.8371359999999997, 1.298474], [3.835826, 1.300354], [3.8162249999999998, 1.317042], [3.773625, 1.346118], [3.7163359999999996, 1.381983], [3.701389, 1.390941], [3.598422, 1.443137], [3.5135609999999997, 1.465603], [3.4443289999999998, 1.4582709999999999], [3.388251, 1.421076], [3.35824, 1.3817629999999999], [3.3386639999999996, 1.3436709999999998], [3.328302, 1.301914], [3.3257109999999996, 1.251032], [3.542362, 1.251032], [3.5564199999999997, 1.2610949999999999], [3.5912539999999997, 1.2445439999999999], [3.621761, 1.223064], [3.6741099999999998, 1.181359], [3.739274, 1.125537], [3.812592, 1.060038], [3.8894029999999997, 0.989304], [3.965045, 0.917773], [4.034857, 0.849888], [4.094179, 0.7900889999999999], [4.138348, 0.7428159999999999], [4.162704, 0.712511], [4.165954, 0.704623], [4.1504319999999995, 0.679654], [4.114528, 0.67359], [4.054348, 0.686448], [3.999542, 0.705268], [3.911701, 0.751904], [3.819219, 0.824186], [3.7293719999999997, 0.9139419999999999], [3.6494389999999997, 1.013], [3.586697, 1.11319], [3.5484229999999997, 1.206339], [3.5464409999999997, 1.214037], [3.542362, 1.251032], [3.3257109999999996, 1.251032], [3.3254059999999996, 1.245058], [3.327356, 1.179603], [3.336797, 1.0685069999999999], [3.356426, 0.97312], [3.3904829999999997, 0.877224], [3.4276139999999997, 0.796098], [3.4888299999999997, 0.6964119999999999], [3.56885, 0.604097], [3.660716, 0.524534], [3.7574669999999997, 0.46310199999999996], [3.8521449999999997, 0.425181], [3.920025, 0.415386], [3.9719019999999996, 0.42074599999999995]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-0.5414019999999999, -1.5439669999999999], [-0.494841, -1.530807], [-0.481407, -1.52554], [-0.43046199999999996, -1.495711], [-0.406327, -1.456221], [-0.40379299999999996, -1.445794], [-0.379183, -1.39672], [-0.34981799999999996, -1.3742759999999998], [-0.306179, -1.3365259999999999], [-0.27686299999999997, -1.275901], [-0.26781699999999997, -1.209524], [-0.27615999999999996, -1.168974], [-0.296666, -1.111211], [-0.31701399999999996, -1.0654], [-0.339203, -1.0167819999999999], [-0.37140399999999996, -0.942005], [-0.41204599999999997, -0.8450259999999999], [-0.459555, -0.729803], [-0.512359, -0.600295], [-0.568885, -0.46045899999999995], [-0.62756, -0.314253], [-0.686812, -0.165636], [-0.745069, -0.018564999999999998], [-0.8007569999999999, 0.123002], [-0.8523029999999999, 0.255106], [-0.8981359999999999, 0.373789], [-0.9366819999999999, 0.47509399999999996], [-0.966368, 0.5550619999999999], [-0.9856229999999999, 0.609735], [-0.992873, 0.6351559999999999], [-0.992892, 0.635612], [-0.9996999999999999, 0.658652], [-1.018522, 0.7087439999999999], [-1.046956, 0.779836], [-1.0826, 0.865877], [-1.109227, 0.928661], [-1.150034, 1.0244], [-1.187108, 1.112094], [-1.217524, 1.184771], [-1.238357, 1.235461], [-1.245064, 1.2524819999999999], [-1.2645659999999999, 1.304466], [-1.169348, 1.2931059999999999], [-1.122304, 1.2891059999999999], [-1.046293, 1.284536], [-0.948442, 1.279741], [-0.835877, 1.2750629999999998], [-0.715725, 1.270845], [-0.6908099999999999, 1.270068], [-0.561886, 1.266359], [-0.462491, 1.264363], [-0.386074, 1.264451], [-0.32608499999999996, 1.266988], [-0.275972, 1.2723419999999999], [-0.229184, 1.2808819999999999], [-0.17917, 1.292976], [-0.151343, 1.300352], [-0.042696, 1.335057], [0.033003, 1.372277], [0.060583, 1.3932609999999999], [0.090987, 1.4241329999999999], [0.102242, 1.442232], [0.09986199999999999, 1.444208], [0.09929299999999999, 1.452812], [0.118405, 1.469938], [0.140481, 1.488886], [0.13500099999999998, 1.501205], [0.102716, 1.5150359999999998], [0.070181, 1.533151], [0.061727, 1.55013], [0.061973, 1.5505639999999998], [0.063426, 1.56219], [0.050719999999999994, 1.572195], [0.021421, 1.5807449999999998], [-0.026902, 1.58801], [-0.09668199999999999, 1.594156], [-0.190352, 1.5993519999999999], [-0.310345, 1.603766], [-0.459093, 1.6075659999999998], [-0.639029, 1.61092], [-0.852586, 1.613996], [-0.857498, 1.614059], [-1.047219, 1.6161189999999999], [-1.203886, 1.616916], [-1.330527, 1.616391], [-1.430173, 1.614487], [-1.5058529999999999, 1.611144], [-1.560598, 1.606307], [-1.597438, 1.599915], [-1.597654, 1.599861], [-1.684601, 1.573844], [-1.740886, 1.545814], [-1.771938, 1.512691], [-1.778508, 1.497334], [-1.774179, 1.455832], [-1.7381149999999999, 1.415724], [-1.674585, 1.381076], [-1.645446, 1.3706049999999999], [-1.598968, 1.3537089999999998], [-1.580841, 1.344919], [-1.227576, 1.344919], [-1.21855, 1.353945], [-1.209523, 1.344919], [-1.212532, 1.34191], [-1.149348, 1.34191], [-1.14687, 1.352642], [-1.137313, 1.353945], [-1.1224539999999998, 1.34734], [-1.125278, 1.34191], [-1.1467019999999999, 1.3397489999999999], [-1.149348, 1.34191], [-1.212532, 1.34191], [-1.21855, 1.3358919999999999], [-1.227576, 1.344919], [-1.580841, 1.344919], [-1.568304, 1.33884], [-1.5653469999999998, 1.336606], [-1.561766, 1.32788], [-1.025253, 1.32788], [-1.003555, 1.330871], [-0.9838659999999999, 1.33134], [-0.946712, 1.329887], [-0.9371229999999999, 1.325796], [-0.9430369999999999, 1.323489], [-0.986389, 1.320126], [-1.015248, 1.323124], [-1.025253, 1.32788], [-1.561766, 1.32788], [-1.556371, 1.3147339999999998], [-1.554393, 1.307599], [-0.744607, 1.307599], [-0.7300329999999999, 1.3099319999999999], [-0.6864319999999999, 1.3113029999999999], [-0.6498929999999999, 1.311532], [-0.5913109999999999, 1.310853], [-0.559736, 1.30903], [-0.558705, 1.306381], [-0.57317, 1.304621], [-0.645062, 1.3017809999999999], [-0.719024, 1.303999], [-0.726617, 1.304621], [-0.744607, 1.307599], [-1.554393, 1.307599], [-1.544298, 1.271204], [-1.514992, 1.271204], [-1.5116729999999998, 1.294618], [-1.5055109999999998, 1.2948979999999999], [-1.501201, 1.2707359999999999], [-1.504086, 1.260297], [-1.5121019999999998, 1.2534589999999999], [-1.514992, 1.271204], [-1.544298, 1.271204], [-1.542538, 1.264859], [-1.5257509999999999, 1.194446], [-1.525115, 1.1914719999999999], [-1.495515, 1.1914719999999999], [-1.492678, 1.2170999999999998], [-1.4864089999999999, 1.214037], [-1.484025, 1.177077], [-1.4864089999999999, 1.168906], [-1.4929979999999998, 1.1666379999999998], [-1.495515, 1.1914719999999999], [-1.525115, 1.1914719999999999], [-1.5083069999999998, 1.112902], [-1.507394, 1.10873], [-1.4788869999999998, 1.10873], [-1.475568, 1.132145], [-1.469406, 1.1324239999999999], [-1.465096, 1.108263], [-1.4679799999999998, 1.097824], [-1.4759959999999999, 1.090986], [-1.4788869999999998, 1.10873], [-1.507394, 1.10873], [-1.4944439999999999, 1.049574], [-1.461794, 1.049574], [-1.4569489999999998, 1.051755], [-1.4441309999999998, 1.023766], [-1.4248399999999999, 0.970279], [-1.400575, 0.895964], [-1.3728369999999999, 0.805492], [-1.343127, 0.703534], [-1.3129439999999999, 0.59476], [-1.299332, 0.54379], [-1.274931, 0.44919699999999996], [-1.25488, 0.367544], [-1.240581, 0.304878], [-1.233438, 0.267241], [-1.233231, 0.259117], [-1.2403849999999998, 0.272404], [-1.25427, 0.313851], [-1.272737, 0.376623], [-1.28932, 0.43743099999999996], [-1.3167659999999999, 0.53792], [-1.3499569999999999, 0.654555], [-1.3836519999999999, 0.7690859999999999], [-1.400299, 0.823917], [-1.4247839999999998, 0.905528], [-1.444618, 0.9757159999999999], [-1.457652, 1.026603], [-1.461794, 1.049574], [-1.4944439999999999, 1.049574], [-1.4877129999999998, 1.018831], [-1.465128, 0.927531], [-1.4435879999999999, 0.850706], [-1.429181, 0.807626], [-1.410031, 0.7506609999999999], [-1.386523, 0.670172], [-1.361963, 0.577921], [-1.344229, 0.505473], [-1.313785, 0.385847], [-1.2746579999999998, 0.24847999999999998], [-1.264893, 0.216631], [-1.2250379999999998, 0.216631], [-1.2204089999999999, 0.226684], [-1.209523, 0.20760499999999998], [-1.196621, 0.165491], [-1.1940089999999999, 0.144421], [-1.1986379999999999, 0.134368], [-1.209523, 0.153447], [-1.222426, 0.19556099999999998], [-1.2250379999999998, 0.216631], [-1.264893, 0.216631], [-1.22819, 0.096929], [-1.175719, -0.065248], [-1.118588, -0.23449199999999998], [-1.0581369999999999, -0.407248], [-0.995707, -0.579957], [-0.9691799999999999, -0.6510819999999999], [-0.576859, -0.6510819999999999], [-0.576854, -0.6510199999999999], [-0.569796, -0.659616], [-0.552043, -0.6938559999999999], [-0.527077, -0.746177], [-0.49838099999999996, -0.809018], [-0.46943599999999996, -0.8748159999999999], [-0.44372599999999995, -0.93601], [-0.431898, -0.9658129999999999], [-0.41065599999999997, -1.021289], [-0.400532, -1.050989], [-0.39994199999999996, -1.062934], [-0.40730299999999997, -1.065146], [-0.41231199999999996, -1.065103], [-0.429822, -1.0505069999999999], [-0.450607, -1.015458], [-0.46585299999999996, -0.97854], [-0.487201, -0.921646], [-0.511549, -0.8537349999999999], [-0.535791, -0.7837649999999999], [-0.5568259999999999, -0.720694], [-0.571549, -0.67348], [-0.576859, -0.6510819999999999], [-0.9691799999999999, -0.6510819999999999], [-0.9326369999999999, -0.749061], [-0.870269, -0.911003], [-0.809943, -1.062226], [-0.7530009999999999, -1.199172], [-0.700782, -1.3182829999999999], [-0.654627, -1.4160009999999998], [-0.615877, -1.48877], [-0.585872, -1.533031], [-0.57158, -1.544873], [-0.5414019999999999, -1.5439669999999999]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[2.8482879999999997, -1.6445839999999998], [2.8523099999999997, -1.630171], [2.845695, -1.5982379999999998], [2.8293679999999997, -1.5509009999999999], [2.825231, -1.5407119999999999], [2.804105, -1.4845579999999998], [2.799633, -1.45434], [2.8111319999999997, -1.4443249999999999], [2.813755, -1.444207], [2.829901, -1.459237], [2.8512459999999997, -1.496777], [2.858053, -1.511904], [2.886749, -1.579602], [2.875836, -1.489384], [2.87051, -1.4373479999999998], [2.872392, -1.41473], [2.8832929999999997, -1.415252], [2.894722, -1.423897], [2.919048, -1.4371909999999999], [2.924521, -1.4283649999999999], [2.9421299999999997, -1.416672], [2.993779, -1.40986], [3.059843, -1.408102], [3.175093, -1.399557], [3.28512, -1.3758679999999999], [3.380289, -1.339955], [3.450964, -1.294738], [3.459059, -1.287132], [3.4916129999999996, -1.260095], [3.51349, -1.251808], [3.515519, -1.252927], [3.511968, -1.270948], [3.491859, -1.292228], [3.477924, -1.3056759999999998], [3.493255, -1.30009], [3.5157659999999997, -1.288135], [3.557515, -1.258459], [3.583005, -1.227959], [3.5845309999999997, -1.224141], [3.6058239999999997, -1.18946], [3.6350409999999997, -1.16035], [3.673704, -1.1137519999999999], [3.7074339999999997, -1.045755], [3.730148, -0.971047], [3.7362979999999997, -0.915804], [3.722829, -0.8262579999999999], [3.683327, -0.722876], [3.616619, -0.603105], [3.540654, -0.49068199999999995], [3.489801, -0.421518], [3.44608, -0.36499499999999996], [3.41388, -0.32658], [3.3975899999999997, -0.311739], [3.397024, -0.311756], [3.3784959999999997, -0.303128], [3.338101, -0.276712], [3.282405, -0.236973], [3.2369939999999997, -0.202981], [3.1736359999999997, -0.155932], [3.1201309999999998, -0.118514], [3.0833649999999997, -0.09541], [3.071297, -0.090263], [3.044031, -0.07911499999999999], [3.029371, -0.067697], [2.9849609999999998, -0.032019], [2.9148579999999997, 0.017138999999999998], [2.8250889999999997, 0.076004], [2.7216769999999997, 0.14080299999999998], [2.610646, 0.207763], [2.4980219999999997, 0.27310999999999996], [2.3898289999999998, 0.333071], [2.387456, 0.334349], [2.327037, 0.36932899999999996], [2.28138, 0.400481], [2.258075, 0.422459], [2.2565749999999998, 0.42655899999999997], [2.250363, 0.463325], [2.247306, 0.47251499999999996], [2.2551959999999998, 0.494492], [2.283605, 0.537661], [2.32861, 0.596646], [2.386285, 0.666068], [2.400753, 0.6827449999999999], [2.4601949999999997, 0.752034], [2.5099039999999997, 0.812479], [2.545498, 0.858559], [2.5625929999999997, 0.8847539999999999], [2.563469, 0.8877149999999999], [2.5757049999999997, 0.905516], [2.609939, 0.9446939999999999], [2.662457, 1.00128], [2.729546, 1.071301], [2.807495, 1.150787], [2.839686, 1.183144], [2.9182759999999996, 1.262508], [2.9851129999999997, 1.331338], [3.0370779999999997, 1.386304], [3.07105, 1.42408], [3.083911, 1.441338], [3.0818499999999998, 1.441455], [3.048799, 1.4272369999999999], [3.043618, 1.434566], [3.0657769999999998, 1.4626949999999999], [3.114747, 1.5108759999999999], [3.160462, 1.552378], [3.2431859999999997, 1.6316709999999999], [3.294498, 1.694532], [3.3142679999999998, 1.740754], [3.302364, 1.770131], [3.2998119999999997, 1.771893], [3.273811, 1.7842049999999998], [3.2675199999999998, 1.784953], [3.2457879999999997, 1.7807169999999999], [3.201825, 1.772081], [3.181238, 1.768027], [3.119522, 1.7499749999999998], [3.064314, 1.724519], [3.0548699999999998, 1.71848], [3.0042359999999997, 1.68996], [2.9578499999999996, 1.67259], [2.900795, 1.6466239999999999], [2.827822, 1.594481], [2.748849, 1.525445], [2.8793889999999998, 1.525445], [2.913779, 1.566063], [2.9457869999999997, 1.600174], [2.9597279999999997, 1.605098], [2.960626, 1.600453], [2.948452, 1.58571], [2.920007, 1.559834], [2.8793889999999998, 1.525445], [2.748849, 1.525445], [2.742819, 1.520174], [2.649677, 1.427714], [2.623513, 1.399076], [2.8703629999999998, 1.399076], [2.8793889999999998, 1.4081029999999999], [2.8884149999999997, 1.399076], [2.8793889999999998, 1.39005], [2.8703629999999998, 1.399076], [2.623513, 1.399076], [2.552282, 1.321113], [2.454523, 1.2043819999999998], [2.360289, 1.081534], [2.294654, 0.988371], [2.243216, 0.914051], [2.198002, 0.851935], [2.163186, 0.8075249999999999], [2.142942, 0.7863209999999999], [2.1405559999999997, 0.785288], [2.129546, 0.80152], [2.109581, 0.846482], [2.082881, 0.91457], [2.051666, 1.000182], [2.026083, 1.07413], [1.973385, 1.2296799999999999], [1.930804, 1.3545559999999999], [1.8969239999999998, 1.452296], [1.870333, 1.52644], [1.8496169999999998, 1.580528], [1.833361, 1.618099], [1.820152, 1.642693], [1.808576, 1.657849], [1.797218, 1.667107], [1.786918, 1.6728619999999998], [1.736105, 1.68706], [1.698786, 1.6876449999999998], [1.6451719999999999, 1.6821549999999998], [1.611194, 1.680135], [1.5840049999999999, 1.673697], [1.572063, 1.6498169999999999], [1.569307, 1.611194], [1.5667689999999999, 1.571698], [1.56059, 1.5658729999999998], [1.554411, 1.578282], [1.5406849999999999, 1.6009499999999999], [1.5311299999999999, 1.593608], [1.526581, 1.5621969999999998], [1.527873, 1.5126579999999998], [1.5358399999999999, 1.450931], [1.5362179999999999, 1.448802], [1.5390279999999998, 1.435182], [1.606681, 1.435182], [1.615708, 1.444208], [1.624734, 1.435182], [1.615708, 1.4261549999999998], [1.606681, 1.435182], [1.5390279999999998, 1.435182], [1.551181, 1.3762809999999999], [1.555744, 1.35683], [1.6373529999999998, 1.35683], [1.6374199999999999, 1.366188], [1.6480979999999998, 1.342109], [1.669203, 1.284891], [1.70055, 1.194836], [1.707013, 1.1759039999999998], [1.735947, 1.088824], [1.7592519999999998, 1.014559], [1.775046, 0.9594429999999999], [1.781447, 0.9298099999999999], [1.781102, 0.9266129999999999], [1.771801, 0.938256], [1.754681, 0.978217], [1.73202, 1.0401529999999999], [1.706097, 1.117718], [1.6791909999999999, 1.204566], [1.669783, 1.236603], [1.6480789999999998, 1.3137349999999999], [1.6373529999999998, 1.35683], [1.555744, 1.35683], [1.5739459999999998, 1.27925], [1.601904, 1.16777], [1.632447, 1.051903], [1.6629639999999999, 0.9417099999999999], [1.679829, 0.884577], [1.787207, 0.884577], [1.793812, 0.8994369999999999], [1.799242, 0.896612], [1.8014029999999999, 0.875188], [1.799242, 0.8725419999999999], [1.7885099999999998, 0.8750199999999999], [1.787207, 0.884577], [1.679829, 0.884577], [1.690847, 0.847252], [1.691171, 0.8462179999999999], [1.80995, 0.8462179999999999], [1.823175, 0.8375659999999999], [1.8255519999999998, 0.8352339999999999], [1.839812, 0.811565], [1.837878, 0.802863], [1.82445, 0.8082809999999999], [1.8154469999999998, 0.825128], [1.80995, 0.8462179999999999], [1.691171, 0.8462179999999999], [1.698656, 0.8224009999999999], [1.7194429999999998, 0.7452259999999999], [1.7306059999999999, 0.6772469999999999], [1.731614, 0.625836], [1.721936, 0.598368], [1.7149969999999999, 0.5957359999999999], [1.6892939999999999, 0.6071489999999999], [1.664172, 0.627328], [1.5895489999999999, 0.681225], [1.4818769999999999, 0.730294], [1.427076, 0.749466], [1.3505829999999999, 0.7785299999999999], [1.289837, 0.8135979999999999], [1.2376399999999999, 0.861381], [1.186796, 0.9285869999999999], [1.130109, 1.0219289999999999], [1.1247289999999999, 1.031393], [1.038646, 1.164534], [0.940537, 1.2841749999999998], [0.8357239999999999, 1.385313], [0.7295309999999999, 1.4629459999999999], [0.627282, 1.512071], [0.606544, 1.5183689999999999], [0.511937, 1.5270219999999999], [0.42530799999999996, 1.503255], [0.352087, 1.4506649999999999], [0.297708, 1.372847], [0.27183999999999997, 1.296824], [0.259467, 1.2247059999999999], [0.254203, 1.1652989999999999], [0.434515, 1.1652989999999999], [0.439947, 1.242897], [0.45582, 1.3023609999999999], [0.480386, 1.3405129999999998], [0.511891, 1.354174], [0.5485869999999999, 1.340164], [0.588722, 1.295305], [0.6159009999999999, 1.247943], [0.643232, 1.187324], [0.6761579999999999, 1.105697], [0.70938, 1.016476], [0.724607, 0.972733], [0.784941, 0.794499], [0.710065, 0.719622], [0.6598539999999999, 0.6757329999999999], [0.6217579999999999, 0.655145], [0.6083649999999999, 0.6550389999999999], [0.583236, 0.6792159999999999], [0.552396, 0.730305], [0.519554, 0.800368], [0.488419, 0.8814609999999999], [0.462701, 0.965645], [0.461978, 0.96842], [0.441275, 1.072747], [0.434515, 1.1652989999999999], [0.254203, 1.1652989999999999], [0.253698, 1.159606], [0.25473599999999996, 1.1102349999999999], [0.270789, 1.1102349999999999], [0.279816, 1.1192609999999998], [0.288842, 1.1102349999999999], [0.279816, 1.1012089999999999], [0.270789, 1.1102349999999999], [0.25473599999999996, 1.1102349999999999], [0.254739, 1.110099], [0.262797, 1.084762], [0.266686, 1.083156], [0.27569, 1.0671979999999999], [0.28052099999999996, 1.0276319999999999], [0.280773, 1.015459], [0.281536, 1.010946], [0.288842, 1.010946], [0.29544699999999996, 1.0258049999999999], [0.300877, 1.022981], [0.303037, 1.001556], [0.300877, 0.998911], [0.290145, 1.0013889999999999], [0.288842, 1.010946], [0.281536, 1.010946], [0.290723, 0.9566549999999999], [0.318314, 0.8776919999999999], [0.34806, 0.812207], [0.378936, 0.7478699999999999], [0.402329, 0.695298], [0.41439699999999996, 0.6632699999999999], [0.41524, 0.65876], [0.425186, 0.636007], [0.445107, 0.603596], [0.733009, 0.603596], [0.734452, 0.609152], [0.765241, 0.664396], [0.80648, 0.68568], [0.813082, 0.6859989999999999], [0.8357009999999999, 0.675898], [0.853097, 0.6412209999999999], [0.8650289999999999, 0.594847], [0.879497, 0.5185109999999999], [0.882867, 0.46999199999999997], [0.879497, 0.458837], [0.9221079999999999, 0.458837], [0.925427, 0.48225199999999996], [0.931589, 0.482531], [0.9358989999999999, 0.45837], [0.9330149999999999, 0.44793], [0.9249989999999999, 0.441092], [0.9221079999999999, 0.458837], [0.879497, 0.458837], [0.8745839999999999, 0.442577], [0.8540989999999999, 0.429556], [0.851375, 0.428791], [0.822718, 0.437841], [0.78964, 0.470508], [0.7590549999999999, 0.5161319999999999], [0.7378739999999999, 0.564049], [0.733009, 0.603596], [0.445107, 0.603596], [0.451217, 0.593657], [0.48719999999999997, 0.541578], [0.532295, 0.478809], [0.5758329999999999, 0.417356], [0.602466, 0.37910499999999997], [0.6482789999999999, 0.32026499999999997], [0.706507, 0.261791], [0.7846569999999999, 0.196562], [0.837529, 0.156216], [0.909947, 0.110885], [0.9759329999999999, 0.09228], [1.044336, 0.100481], [1.124007, 0.13557], [1.164393, 0.15922799999999998], [1.246387, 0.217579], [1.2983559999999998, 0.277404], [1.325297, 0.348288], [1.3322079999999998, 0.43981299999999995], [1.330825, 0.478394], [1.326298, 0.545727], [1.321099, 0.600841], [1.316354, 0.6318199999999999], [1.3163479999999999, 0.631841], [1.3235759999999999, 0.655314], [1.3602379999999998, 0.663871], [1.422945, 0.6576369999999999], [1.508309, 0.6367389999999999], [1.5517839999999998, 0.623061], [1.6228049999999998, 0.60054], [1.684397, 0.583031], [1.725642, 0.5735819999999999], [1.73165, 0.572825], [1.7623879999999998, 0.557994], [1.7691549999999998, 0.529277], [1.7611809999999999, 0.49938099999999996], [1.745402, 0.497668], [1.713519, 0.496478], [1.6726729999999999, 0.48137399999999997], [1.6236979999999999, 0.45596499999999995], [1.6861169999999999, 0.40399599999999997], [1.735531, 0.363323], [1.780997, 0.326635], [1.790438, 0.319174], [1.816215, 0.29755699999999996], [1.813742, 0.293363], [1.796233, 0.298657], [1.740243, 0.316706], [1.7114099999999999, 0.322125], [1.703231, 0.315339], [1.7059199999999999, 0.30455699999999997], [1.725967, 0.283649], [1.7687, 0.253851], [1.817507, 0.225658], [1.863039, 0.200697], [1.895112, 0.178111], [1.9148889999999998, 0.15534499999999998], [2.527364, 0.15534499999999998], [2.534261, 0.161822], [2.559066, 0.154463], [2.6079429999999997, 0.13128], [2.618363, 0.125993], [2.6882479999999997, 0.08741399999999999], [2.767115, 0.039182], [2.849175, -0.01458], [2.9286429999999997, -0.069751], [2.9997309999999997, -0.122207], [3.056651, -0.167825], [3.0936179999999998, -0.202484], [3.105047, -0.220713], [3.091792, -0.218663], [3.0566199999999997, -0.198851], [3.006421, -0.16528199999999998], [2.992218, -0.155129], [2.927778, -0.110051], [2.845154, -0.054466], [2.7569269999999997, 0.0032389999999999997], [2.703376, 0.037382], [2.634009, 0.081643], [2.57752, 0.11878999999999999], [2.5399719999999997, 0.144763], [2.527364, 0.15534499999999998], [1.9148889999999998, 0.15534499999999998], [1.9194099999999998, 0.150142], [1.941619, 0.10903099999999999], [1.967422, 0.04702], [1.988788, -0.008100999999999999], [2.026627, -0.111579], [2.0362899999999997, -0.14410399999999998], [2.455555, -0.14410399999999998], [2.520781, -0.17135699999999998], [2.567496, -0.195244], [2.630506, -0.233099], [2.697184, -0.277281], [2.7007939999999997, -0.279815], [3.0508889999999997, -0.279815], [3.0599149999999997, -0.270789], [3.0689409999999997, -0.279815], [3.0599149999999997, -0.288841], [3.0508889999999997, -0.279815], [2.7007939999999997, -0.279815], [2.7056199999999997, -0.283201], [2.831884, -0.376531], [2.953538, -0.473998], [3.066022, -0.571377], [3.164776, -0.664445], [3.1911289999999997, -0.69213], [3.6164319999999996, -0.69213], [3.620285, -0.692241], [3.636602, -0.7120139999999999], [3.658309, -0.745582], [3.6646769999999997, -0.764668], [3.6611499999999997, -0.776038], [3.6488829999999997, -0.75959], [3.6300209999999997, -0.7221029999999999], [3.6164319999999996, -0.69213], [3.1911289999999997, -0.69213], [3.2452419999999997, -0.748975], [3.30286, -0.820743], [3.325415, -0.857579], [3.3578669999999997, -0.933487], [3.3668639999999996, -0.992003], [3.352878, -1.0427769999999998], [3.33582, -1.070535], [3.309408, -1.111146], [3.295337, -1.139712], [3.2946269999999998, -1.143505], [3.27814, -1.160102], [3.234429, -1.178956], [3.1720409999999997, -1.197404], [3.0995209999999997, -1.2127839999999999], [3.064432, -1.21786], [3.293046, -1.21786], [3.3115889999999997, -1.1999229999999999], [3.34618, -1.1794339999999999], [3.3657459999999997, -1.173992], [3.368362, -1.183135], [3.3498189999999997, -1.201071], [3.3152269999999997, -1.22156], [3.2956619999999996, -1.227002], [3.293046, -1.21786], [3.064432, -1.21786], [3.04847, -1.2201689999999998], [2.9868729999999997, -1.2250999999999999], [2.9483989999999998, -1.220788], [2.9207549999999998, -1.205004], [2.9100669999999997, -1.1950699999999999], [2.886586, -1.1661439999999998], [2.882398, -1.149348], [2.8776919999999997, -1.131872], [2.853815, -1.102712], [2.826511, -1.068309], [2.816205, -1.042492], [2.809603, -1.014921], [2.791531, -0.9608049999999999], [2.7645869999999997, -0.8868499999999999], [2.7313709999999998, -0.799762], [2.694482, -0.7062459999999999], [2.656519, -0.613008], [2.620081, -0.526754], [2.5903099999999997, -0.459702], [2.5548349999999997, -0.38112799999999997], [2.52058, -0.30300499999999997], [2.493927, -0.23992999999999998], [2.489912, -0.230012], [2.455555, -0.14410399999999998], [2.0362899999999997, -0.14410399999999998], [2.0489919999999997, -0.186857], [2.056639, -0.237986], [2.050327, -0.269019], [2.0396, -0.28002699999999997], [2.021757, -0.30146999999999996], [1.995288, -0.344648], [1.975314, -0.381957], [1.947882, -0.443478], [1.942616, -0.46915999999999997], [2.021891, -0.46915999999999997], [2.023565, -0.395742], [2.030455, -0.351918], [2.0453609999999998, -0.331256], [2.071082, -0.327326], [2.08305, -0.328698], [2.108394, -0.342902], [2.127641, -0.38139599999999996], [2.13918, -0.424236], [2.155809, -0.480821], [2.183293, -0.5574629999999999], [2.216987, -0.641613], [2.235238, -0.683765], [2.276268, -0.7798499999999999], [2.301635, -0.8486619999999999], [2.311009, -0.888948], [2.304062, -0.899458], [2.289069, -0.888187], [2.260868, -0.8682909999999999], [2.246514, -0.8715229999999999], [2.254445, -0.895323], [2.2563489999999997, -0.8981159999999999], [2.2573209999999997, -0.902841], [2.238328, -0.884628], [2.2044509999999997, -0.848472], [2.165038, -0.802616], [2.137934, -0.765976], [2.129753, -0.749182], [2.119285, -0.725239], [2.093277, -0.684624], [2.075546, -0.6602169999999999], [2.045546, -0.615795], [2.029311, -0.574002], [2.022809, -0.5204869999999999], [2.021891, -0.46915999999999997], [1.942616, -0.46915999999999997], [1.9373019999999999, -0.49507399999999996], [1.9400119999999998, -0.556601], [1.941601, -0.5699839999999999], [1.9752049999999999, -0.708561], [2.041193, -0.8409439999999999], [2.0796959999999998, -0.890388], [2.185461, -0.890388], [2.1898109999999997, -0.884578], [2.190013, -0.884577], [2.2043589999999997, -0.896663], [2.233888, -0.927117], [2.248684, -0.943248], [2.301706, -1.001919], [2.310732, -1.001919], [2.319759, -0.992892], [2.328785, -1.001919], [2.319759, -1.010945], [2.310732, -1.001919], [2.301706, -1.001919], [2.243035, -0.948897], [2.20202, -0.9103939999999999], [2.185461, -0.890388], [2.0796959999999998, -0.890388], [2.1406199999999997, -0.968622], [2.274543, -1.093083], [2.357033, -1.15621], [2.4513089999999997, -1.229695], [2.5174369999999997, -1.294579], [2.557681, -1.3506099999999999], [2.601004, -1.41753], [2.6524609999999997, -1.485604], [2.6710849999999997, -1.507391], [2.713679, -1.556314], [2.7497279999999997, -1.600318], [2.762553, -1.6173549999999999], [2.792846, -1.644741], [2.82545, -1.654391], [2.8482879999999997, -1.6445839999999998]]]}, {"angle": [90.0], "type": "polygon", "pos": [137.0965, 72.3265], "polygons": [[[-2.311584, -1.371008], [-2.2903469999999997, -1.359364], [-2.299244, -1.351167], [-2.332349, -1.351659], [-2.333297, -1.3518059999999998], [-2.348041, -1.347192], [-2.3393379999999997, -1.330568], [-2.312909, -1.311205], [-2.306219, -1.30792], [-2.276897, -1.286117], [-2.270113, -1.267534], [-2.26851, -1.2482339999999998], [-2.24886, -1.253148], [-2.208113, -1.283275], [-2.199124, -1.29076], [-2.157566, -1.320997], [-2.119049, -1.3332279999999999], [-2.071882, -1.3283209999999999], [-2.004375, -1.3071409999999999], [-1.99983, -1.305518], [-1.9492919999999998, -1.2851869999999999], [-1.926103, -1.267169], [-1.9227969999999999, -1.2442039999999999], [-1.925146, -1.232889], [-1.929597, -1.2044679999999999], [-1.916326, -1.199568], [-1.886032, -1.2097], [-1.848844, -1.2213209999999999], [-1.830266, -1.2224949999999999], [-1.834158, -1.204469], [-1.8512009999999999, -1.166528], [-1.8598839999999999, -1.14978], [-1.8787779999999998, -1.109146], [-1.884166, -1.085555], [-1.8817849999999998, -1.0831549999999999], [-1.864801, -1.068655], [-1.8499649999999999, -1.042537], [-1.8242749999999999, -1.012138], [-1.7995839999999999, -1.004587], [-1.7748439999999999, -0.9960439999999999], [-1.773766, -0.977509], [-1.768157, -0.947139], [-1.7469279999999998, -0.8987459999999999], [-1.721687, -0.854371], [-1.672466, -0.764753], [-1.637062, -0.671196], [-1.613208, -0.5647989999999999], [-1.598636, -0.43666], [-1.593672, -0.351774], [-1.5984889999999998, -0.12319799999999999], [-1.633397, 0.111373], [-1.699044, 0.35443199999999997], [-1.79608, 0.6084769999999999], [-1.9014149999999999, 0.8304199999999999], [-2.0171289999999997, 1.043174], [-2.1306439999999998, 1.225242], [-2.245371, 1.3816039999999998], [-2.364719, 1.517242], [-2.3874709999999997, 1.540355], [-2.513249, 1.65224], [-2.631325, 1.728993], [-2.7419219999999997, 1.770706], [-2.8452599999999997, 1.7774729999999999], [-2.913192, 1.761542], [-3.0230949999999996, 1.7022899999999999], [-3.1128039999999997, 1.614401], [-3.1635329999999997, 1.533687], [-3.199046, 1.451619], [-3.2242569999999997, 1.36392], [-3.240522, 1.26268], [-3.2490859999999997, 1.141521], [-2.833373, 1.141521], [-2.832712, 1.202232], [-2.8291619999999997, 1.245217], [-2.8223339999999997, 1.2765879999999998], [-2.811838, 1.302458], [-2.803642, 1.31784], [-2.765641, 1.366895], [-2.716129, 1.390194], [-2.70642, 1.3921869999999998], [-2.675953, 1.399772], [-2.675779, 1.4049749999999999], [-2.682314, 1.405726], [-2.7125809999999997, 1.418917], [-2.719924, 1.4359579999999998], [-2.7086319999999997, 1.455628], [-2.697073, 1.455045], [-2.667818, 1.448445], [-2.615177, 1.440246], [-2.563512, 1.433751], [-2.507794, 1.426396], [-2.466882, 1.4154959999999999], [-2.432697, 1.395464], [-2.397164, 1.360712], [-2.366419, 1.323059], [-2.310732, 1.323059], [-2.3071829999999998, 1.3357809999999999], [-2.3056229999999998, 1.334388], [-2.292141, 1.31558], [-2.274031, 1.290761], [-2.257052, 1.2662099999999998], [-2.263336, 1.267377], [-2.27914, 1.279432], [-2.304485, 1.306941], [-2.310732, 1.323059], [-2.366419, 1.323059], [-2.352205, 1.305653], [-2.3221339999999997, 1.266769], [-2.292475, 1.224408], [-2.233646, 1.224408], [-2.227605, 1.224943], [-2.225727, 1.223309], [-2.196268, 1.188698], [-2.162093, 1.137729], [-2.149, 1.115176], [-2.1237269999999997, 1.067493], [-2.117197, 1.050196], [-2.129495, 1.063359], [-2.160707, 1.10706], [-2.1933979999999997, 1.155184], [-2.221492, 1.19957], [-2.233646, 1.224408], [-2.292475, 1.224408], [-2.2152089999999998, 1.114052], [-2.163418, 1.027823], [-2.1077269999999997, 1.027823], [-2.105258, 1.0289979999999999], [-2.088783, 1.016289], [-2.085074, 1.010946], [-2.0804739999999997, 0.994068], [-2.0829429999999998, 0.9928929999999999], [-2.099418, 1.0056019999999999], [-2.1031269999999997, 1.010946], [-2.1077269999999997, 1.027823], [-2.163418, 1.027823], [-2.126174, 0.965814], [-2.076048, 0.965814], [-2.0670219999999997, 0.9748399999999999], [-2.057995, 0.965814], [-2.0670219999999997, 0.956788], [-2.076048, 0.965814], [-2.126174, 0.965814], [-2.109204, 0.93756], [-2.053569, 0.93756], [-2.0511, 0.938735], [-2.034625, 0.9260269999999999], [-2.030917, 0.9206829999999999], [-2.026316, 0.903805], [-2.0287859999999998, 0.9026299999999999], [-2.04526, 0.915339], [-2.048969, 0.9206829999999999], [-2.053569, 0.93756], [-2.109204, 0.93756], [-2.1085599999999998, 0.9364889999999999], [-2.076527, 0.875551], [-2.021337, 0.875551], [-2.013888, 0.87878], [-2.003838, 0.866525], [-1.988562, 0.833615], [-1.986338, 0.8213929999999999], [-1.993787, 0.818164], [-2.003838, 0.8304199999999999], [-2.019113, 0.8633299999999999], [-2.021337, 0.875551], [-2.076527, 0.875551], [-2.007862, 0.74493], [-1.91879, 0.55023], [-1.847022, 0.363239], [-1.842407, 0.34956299999999996], [-1.78734, 0.18462599999999998], [-1.806756, -0.144862], [-1.815496, -0.27771999999999997], [-1.824639, -0.380977], [-1.8350499999999998, -0.46113499999999996], [-1.847599, -0.5246959999999999], [-1.863152, -0.57816], [-1.865432, -0.584688], [-1.888595, -0.644749], [-1.9104249999999998, -0.684385], [-1.93391, -0.7020839999999999], [-1.962041, -0.696338], [-1.9978079999999998, -0.665636], [-2.0442, -0.608467], [-2.104208, -0.52332], [-2.164222, -0.43374799999999997], [-2.3667059999999998, -0.105941], [-2.534383, 0.21453], [-2.66763, 0.528431], [-2.7365139999999997, 0.73113], [-2.756412, 0.792474], [-2.7688889999999997, 0.8225709999999999], [-2.7732449999999997, 0.819958], [-2.7721169999999997, 0.8055829999999999], [-2.764135, 0.764675], [-2.748405, 0.701839], [-2.727232, 0.624742], [-2.702919, 0.541053], [-2.677768, 0.458443], [-2.654082, 0.384579], [-2.6341639999999997, 0.327131], [-2.6203179999999997, 0.293768], [-2.616943, 0.288842], [-2.603199, 0.267565], [-2.583803, 0.226772], [-2.5800739999999998, 0.21795499999999998], [-2.545406, 0.1421], [-2.4962649999999997, 0.044948999999999996], [-2.437661, -0.064398], [-2.374605, -0.176841], [-2.3121069999999997, -0.283279], [-2.255178, -0.374612], [-2.246778, -0.387432], [-2.229021, -0.419151], [-2.2318409999999997, -0.42777], [-2.23635, -0.42553799999999997], [-2.254298, -0.42074999999999996], [-2.252898, -0.435262], [-2.230355, -0.458538], [-2.2189639999999997, -0.461161], [-2.198771, -0.47417099999999995], [-2.19813, -0.484409], [-2.1895659999999997, -0.5077309999999999], [-2.162638, -0.550816], [-2.1223799999999997, -0.60593], [-2.103354, -0.630006], [-2.0583579999999997, -0.6889149999999999], [-2.023955, -0.7400829999999999], [-2.00553, -0.775243], [-2.003838, -0.782771], [-2.010599, -0.808813], [-2.030299, -0.801902], [-2.0620629999999998, -0.762443], [-2.068339, -0.752931], [-2.102035, -0.7017369999999999], [-2.1513169999999997, -0.628072], [-2.211259, -0.539183], [-2.276938, -0.442312], [-2.343431, -0.344707], [-2.4058129999999998, -0.253611], [-2.45916, -0.17626899999999998], [-2.4985489999999997, -0.11992699999999999], [-2.4985649999999997, -0.119904], [-2.548532, -0.046689], [-2.5900179999999997, 0.021667], [-2.628091, 0.094912], [-2.667817, 0.18279399999999998], [-2.714242, 0.29500899999999997], [-2.74099, 0.36541799999999997], [-2.755547, 0.412898], [-2.756842, 0.433529], [-2.751659, 0.432133], [-2.7381539999999998, 0.422381], [-2.7335949999999998, 0.425564], [-2.7393579999999997, 0.446715], [-2.7568159999999997, 0.49087], [-2.7873419999999998, 0.563062], [-2.787471, 0.563365], [-2.800163, 0.6064499999999999], [-2.810453, 0.672569], [-2.8187539999999998, 0.765606], [-2.825475, 0.889446], [-2.827593, 0.9424699999999999], [-2.831537, 1.0569709999999999], [-2.833373, 1.141521], [-3.2490859999999997, 1.141521], [-3.249195, 1.139992], [-3.251584, 1.0199719999999999], [-3.2465439999999997, 0.860883], [-3.229068, 0.701237], [-3.197816, 0.535256], [-3.151449, 0.357161], [-3.126657, 0.279816], [-2.825531, 0.279816], [-2.822896, 0.286151], [-2.807336, 0.264024], [-2.781363, 0.217609], [-2.7474909999999997, 0.151082], [-2.744913, 0.145829], [-2.709078, 0.06994299999999999], [-2.680951, 0.0051649999999999995], [-2.663494, -0.041309], [-2.6594249999999997, -0.061776], [-2.6691439999999997, -0.056048999999999995], [-2.6893029999999998, -0.024506], [-2.716284, 0.025415999999999998], [-2.7464709999999997, 0.08627699999999999], [-2.776245, 0.150638], [-2.80199, 0.211061], [-2.820087, 0.260105], [-2.825531, 0.279816], [-3.126657, 0.279816], [-3.088625, 0.16117199999999998], [-3.0080039999999997, -0.058488], [-2.9918649999999998, -0.100051], [-2.9141719999999998, -0.29053], [-2.839553, -0.454609], [-2.7632559999999997, -0.601138], [-2.75304, -0.6181599999999999], [-2.4339049999999998, -0.6181599999999999], [-2.418849, -0.628521], [-2.384503, -0.6659619999999999], [-2.3315349999999997, -0.730085], [-2.2746269999999997, -0.802356], [-2.217165, -0.8779429999999999], [-2.168682, -0.944515], [-2.133117, -0.996444], [-2.114408, -1.0281], [-2.112524, -1.034005], [-2.122657, -1.03548], [-2.1495059999999997, -1.013013], [-2.1885179999999997, -0.9718359999999999], [-2.2351389999999998, -0.9171809999999999], [-2.284815, -0.854281], [-2.332991, -0.788366], [-2.35668, -0.7535109999999999], [-2.4034869999999997, -0.6802579999999999], [-2.4290059999999998, -0.635273], [-2.4339049999999998, -0.6181599999999999], [-2.75304, -0.6181599999999999], [-2.680535, -0.738965], [-2.5866379999999998, -0.876938], [-2.542315, -0.937612], [-2.502697, -0.9919789999999999], [-2.473754, -1.033765], [-2.4603409999999997, -1.055891], [-2.460048, -1.0576189999999999], [-2.478579, -1.057175], [-2.522067, -1.052061], [-2.563468, -1.046061], [-2.6213379999999997, -1.037709], [-2.703693, -1.026588], [-2.799168, -1.014203], [-2.8884149999999997, -1.003036], [-3.041905, -0.984077], [-3.163363, -0.96864], [-3.2566129999999998, -0.956039], [-3.325481, -0.945587], [-3.373793, -0.936597], [-3.405375, -0.9283819999999999], [-3.424051, -0.9202539999999999], [-3.433649, -0.911527], [-3.4370779999999996, -0.904507], [-3.4558429999999998, -0.862618], [-3.4639119999999997, -0.848472], [-3.47755, -0.8215739999999999], [-3.501616, -0.7693139999999999], [-3.5325309999999996, -0.699611], [-3.5618269999999996, -0.631841], [-3.6015629999999996, -0.539161], [-3.642962, -0.443104], [-3.680001, -0.357626], [-3.698196, -0.31592], [-3.7380839999999997, -0.222328], [-3.7826969999999998, -0.11337799999999999], [-3.829831, 0.005095], [-3.87728, 0.12725799999999998], [-3.92284, 0.247279], [-3.964305, 0.359324], [-3.999472, 0.457559], [-4.026134, 0.536152], [-4.042088, 0.58927], [-4.044779999999999, 0.6010059999999999], [-4.060119, 0.658364], [-4.0799579999999995, 0.7034389999999999], [-4.089058, 0.715803], [-4.118156, 0.753007], [-4.141005, 0.791512], [-4.156861999999999, 0.8277709999999999], [-4.182081, 0.890975], [-4.214028, 0.9740139999999999], [-4.250069, 1.069778], [-4.287567999999999, 1.171158], [-4.32389, 1.271045], [-4.356401, 1.36233], [-4.382465, 1.437903], [-4.396297, 1.480313], [-4.427360999999999, 1.5717679999999998], [-4.456333, 1.6414069999999998], [-4.481039, 1.6845649999999999], [-4.497153, 1.696944], [-4.510916, 1.682099], [-4.513148, 1.666774], [-4.5246699999999995, 1.6297439999999999], [-4.541322, 1.6054709999999999], [-4.565251, 1.55911], [-4.582325, 1.485369], [-4.591737, 1.39246], [-4.5926849999999995, 1.288597], [-4.5843609999999995, 1.181995], [-4.583487, 1.175217], [-4.556438, 1.010805], [-4.516071999999999, 0.827529], [-4.461747, 0.6232909999999999], [-4.392824, 0.395995], [-4.308662, 0.143542], [-4.216404, -0.11440399999999999], [-4.150319, -0.11440399999999999], [-4.146561999999999, -0.10861499999999999], [-4.134215, -0.127669], [-4.116707, -0.167672], [-4.110298, -0.18503899999999998], [-4.090784, -0.23923999999999998], [-4.063813, -0.31293], [-4.034628, -0.39180299999999996], [-4.029269, -0.40618299999999996], [-3.995675, -0.496446], [-3.97157, -0.496446], [-3.962544, -0.48741999999999996], [-3.953518, -0.496446], [-3.962544, -0.505472], [-3.97157, -0.496446], [-3.995675, -0.496446], [-3.99565, -0.496513], [-3.9852809999999996, -0.5248389999999999], [-3.953449, -0.5248389999999999], [-3.9512769999999997, -0.519637], [-3.940012, -0.540042], [-3.921748, -0.58207], [-3.89858, -0.6417379999999999], [-3.892423, -0.658516], [-3.871254, -0.719846], [-3.8572189999999997, -0.766467], [-3.852947, -0.789512], [-3.8533079999999997, -0.790385], [-3.8621109999999996, -0.778395], [-3.87892, -0.7411679999999999], [-3.900191, -0.687674], [-3.922382, -0.626885], [-3.94195, -0.567771], [-3.944432, -0.55963], [-3.953449, -0.5248389999999999], [-3.9852809999999996, -0.5248389999999999], [-3.9733799999999997, -0.5573469999999999], [-3.961108, -0.592984], [-3.957483, -0.607727], [-3.961153, -0.6058749999999999], [-3.9707679999999996, -0.591729], [-3.971173, -0.5911], [-3.984625, -0.563275], [-4.007067999999999, -0.509919], [-4.035242, -0.43946399999999997], [-4.065888999999999, -0.36034099999999997], [-4.095749, -0.280984], [-4.121563, -0.20982399999999998], [-4.140074, -0.155293], [-4.142061, -0.14893399999999998], [-4.150319, -0.11440399999999999], [-4.216404, -0.11440399999999999], [-4.20862, -0.13616599999999998], [-4.092057, -0.445225], [-4.075754, -0.48741999999999996], [-4.0336739999999995, -0.596565], [-4.009876, -0.6589189999999999], [-3.953518, -0.6589189999999999], [-3.9444909999999997, -0.6498929999999999], [-3.9354649999999998, -0.6589189999999999], [-3.9444909999999997, -0.6679459999999999], [-3.953518, -0.6589189999999999], [-4.009876, -0.6589189999999999], [-3.996113, -0.694978], [-3.9650209999999997, -0.77747], [-3.9423459999999997, -0.838851], [-3.930037, -0.8739349999999999], [-3.928435, -0.8795409999999999], [-3.915402, -0.910003], [-3.911918, -0.914142], [-3.899758, -0.9354629999999999], [-3.916273, -0.9489139999999999], [-3.964108, -0.955579], [-4.015963999999999, -0.9567869999999999], [-4.146176, -0.9620879999999999], [-4.268408, -0.9769789999999999], [-4.374575, -0.999945], [-4.445084, -1.0253299999999999], [-3.1230979999999997, -1.0253299999999999], [-3.1205749999999997, -1.018631], [-3.0877559999999997, -1.016035], [-3.030175, -1.017182], [-2.953365, -1.02171], [-2.862859, -1.029259], [-2.764191, -1.039467], [-2.662892, -1.0519749999999999], [-2.617626, -1.0583], [-2.526431, -1.0729119999999999], [-2.4634139999999998, -1.08696], [-2.420766, -1.1028179999999999], [-2.390679, -1.122862], [-2.383469, -1.129522], [-2.37551, -1.137313], [-2.02189, -1.137313], [-2.0157309999999997, -1.11973], [-2.013929, -1.1192609999999998], [-1.9985169999999999, -1.131911], [-1.994811, -1.137313], [-1.996243, -1.153948], [-2.0027719999999998, -1.155366], [-2.021156, -1.142261], [-2.02189, -1.137313], [-2.37551, -1.137313], [-2.3388649999999997, -1.173184], [-2.392496, -1.157178], [-2.4484429999999997, -1.1389799999999999], [-2.49153, -1.1232499999999999], [-2.524886, -1.115022], [-2.586672, -1.104244], [-2.669405, -1.092058], [-2.765598, -1.0796059999999998], [-2.816477, -1.0736299999999999], [-2.914744, -1.06165], [-3.001505, -1.0495029999999999], [-3.069851, -1.038276], [-3.1128769999999997, -1.0290569999999999], [-3.1230979999999997, -1.0253299999999999], [-4.445084, -1.0253299999999999], [-4.456592, -1.0294729999999999], [-4.483248, -1.044352], [-4.524227, -1.073161], [-4.5384649999999995, -1.091144], [-4.530145, -1.10611], [-4.520416, -1.113753], [-4.48634, -1.133268], [-4.466087, -1.135378], [-4.468017, -1.1192609999999998], [-4.466305999999999, -1.1044969999999998], [-4.4431579999999995, -1.102971], [-4.410907, -1.115149], [-4.40789, -1.116989], [-4.401629, -1.129848], [-4.429015, -1.141008], [-4.441879999999999, -1.14382], [-4.499893, -1.155422], [-4.452853999999999, -1.192423], [-4.425224, -1.210087], [-4.389008, -1.2247299999999999], [-4.340638, -1.236704], [-4.276545, -1.2463629999999999], [-4.193161, -1.25406], [-4.0869159999999995, -1.260148], [-3.954243, -1.264982], [-3.7915729999999996, -1.2689139999999999], [-3.6556499999999996, -1.271356], [-3.4861649999999997, -1.274503], [-3.3451709999999997, -1.278246], [-3.225055, -1.283094], [-3.1530039999999997, -1.287448], [-2.4834, -1.287448], [-2.456902, -1.282359], [-2.445224, -1.2822829999999998], [-2.410994, -1.28425], [-2.409059, -1.291602], [-2.4253, -1.302206], [-2.460648, -1.3119939999999999], [-2.478555, -1.3016569999999998], [-2.4834, -1.287448], [-3.1530039999999997, -1.287448], [-3.1182019999999997, -1.289551], [-3.0169989999999998, -1.298125], [-2.913831, -1.3093219999999999], [-2.8010859999999997, -1.3236489999999999], [-2.73582, -1.3325479999999998], [-2.601347, -1.3501889999999999], [-2.4875149999999997, -1.363105], [-2.398238, -1.370939], [-2.3374319999999997, -1.3733389999999999], [-2.311584, -1.371008]]]}, {"width": 0.7999999999999999, "angle": 45.0, "attr": [], "horiz_justify": 0, "text": "L1", "thickness": 0.15, "pos": [141.732, 81.787999], "height": 0.7999999999999999}, {"start": [139.88514999999998, 80.775256], "end": [140.592256, 80.06815], "type": "segment", "width": 0.15}, {"start": [141.54685, 81.022744], "end": [140.839744, 81.72985], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C4", "thickness": 0.15, "pos": [160.655, 85.344], "height": 0.7999999999999999}, {"start": [160.055, 88.36099999999999], "end": [160.055, 87.661], "type": "segment", "width": 0.12}, {"start": [161.255, 87.661], "end": [161.255, 88.36099999999999], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R1", "thickness": 0.15, "pos": [128.778, 82.042], "height": 0.7999999999999999}, {"start": [129.39839999999998, 82.0848], "end": [129.39839999999998, 81.0848], "type": "segment", "width": 0.15}, {"start": [130.7484, 81.0848], "end": [130.7484, 82.0848], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R2", "thickness": 0.15, "pos": [134.239, 75.438], "height": 0.7999999999999999}, {"start": [133.5005, 73.2075], "end": [133.5005, 72.2075], "type": "segment", "width": 0.15}, {"start": [134.85049999999998, 72.2075], "end": [134.85049999999998, 73.2075], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R4", "thickness": 0.15, "pos": [120.6627, 81.30539999999999], "height": 0.7999999999999999}, {"start": [121.3085, 81.78], "end": [121.3085, 80.78], "type": "segment", "width": 0.15}, {"start": [122.65849999999999, 80.78], "end": [122.65849999999999, 81.78], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R5", "thickness": 0.15, "pos": [122.36449999999999, 86.42349999999999], "height": 0.7999999999999999}, {"start": [122.95949999999999, 85.5265], "end": [122.95949999999999, 84.5265], "type": "segment", "width": 0.15}, {"start": [124.3095, 84.5265], "end": [124.3095, 85.5265], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 45.0, "attr": [], "horiz_justify": 0, "text": "C1", "thickness": 0.15, "pos": [139.446, 78.232], "height": 0.7999999999999999}, {"start": [140.30825099999998, 79.99627699999999], "end": [139.813277, 80.49125099999999], "type": "segment", "width": 0.12}, {"start": [138.96474899999998, 79.64272299999999], "end": [139.459723, 79.14774899999999], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": -45.0, "attr": [], "horiz_justify": 0, "text": "C2", "thickness": 0.15, "pos": [129.159, 86.23299899999999], "height": 0.7999999999999999}, {"start": [131.367777, 85.840649], "end": [131.862751, 86.335623], "type": "segment", "width": 0.12}, {"start": [131.014223, 87.184151], "end": [130.519249, 86.689177], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": -45.0, "attr": [], "horiz_justify": 0, "text": "C3", "thickness": 0.15, "pos": [133.22299999999998, 86.741], "height": 0.7999999999999999}, {"start": [131.395223, 85.558551], "end": [130.900249, 85.063577], "type": "segment", "width": 0.12}, {"start": [131.748777, 84.215049], "end": [132.243751, 84.71002299999999], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C6", "thickness": 0.15, "pos": [131.31799999999998, 68.199], "height": 0.7999999999999999}, {"start": [129.0772, 68.7736], "end": [128.3772, 68.7736], "type": "segment", "width": 0.12}, {"start": [128.3772, 67.5736], "end": [129.0772, 67.5736], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C7", "thickness": 0.15, "pos": [122.55499999999999, 71.755], "height": 0.7999999999999999}, {"start": [123.3266, 72.0542], "end": [123.3266, 71.35419999999999], "type": "segment", "width": 0.12}, {"start": [124.52659999999999, 71.35419999999999], "end": [124.52659999999999, 72.0542], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "P1", "thickness": 0.15, "pos": [126.619, 76.35], "height": 0.7999999999999999}, {"start": [125.229, 80.00999999999999], "end": [125.229, 87.75], "type": "segment", "width": 0.12}, {"start": [125.229, 87.75], "end": [128.009, 87.75], "type": "segment", "width": 0.12}, {"start": [128.009, 87.75], "end": [128.009, 80.00999999999999], "type": "segment", "width": 0.12}, {"start": [128.009, 80.00999999999999], "end": [125.229, 80.00999999999999], "type": "segment", "width": 0.12}, {"start": [125.229, 78.74], "end": [125.229, 77.35], "type": "segment", "width": 0.12}, {"start": [125.229, 77.35], "end": [126.619, 77.35], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "U5", "thickness": 0.15, "pos": [131.69899999999998, 73.66], "height": 0.7999999999999999}, {"start": [128.93294, 69.85508], "end": [129.23265999999998, 70.104], "type": "segment", "width": 0.15}, {"start": [129.23265999999998, 70.104], "end": [129.38252, 70.20559999999999], "type": "segment", "width": 0.15}, {"start": [129.38252, 70.20559999999999], "end": [128.53415999999999, 70.20559999999999], "type": "segment", "width": 0.15}, {"start": [130.43408, 69.50456], "end": [128.63322, 69.50456], "type": "segment", "width": 0.15}, {"start": [130.43408, 69.50456], "end": [130.43408, 70.1548], "type": "segment", "width": 0.15}, {"start": [130.43408, 74.00544], "end": [128.63322, 74.00544], "type": "segment", "width": 0.15}, {"start": [130.43408, 74.00544], "end": [130.43408, 73.3552], "type": "segment", "width": 0.15}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C8", "thickness": 0.15, "pos": [149.987, 73.66], "height": 0.7999999999999999}, {"start": [150.8435, 74.203], "end": [151.5435, 74.203], "type": "segment", "width": 0.12}, {"start": [151.5435, 75.40299999999999], "end": [150.8435, 75.40299999999999], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C11", "thickness": 0.15, "pos": [141.224, 85.85199999999999], "height": 0.7999999999999999}, {"start": [140.89939999999999, 86.6236], "end": [141.5994, 86.6236], "type": "segment", "width": 0.12}, {"start": [141.5994, 87.8236], "end": [140.89939999999999, 87.8236], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C12", "thickness": 0.15, "pos": [139.7, 90.678], "height": 0.7999999999999999}, {"start": [139.2484, 88.6302], "end": [139.9484, 88.6302], "type": "segment", "width": 0.12}, {"start": [139.9484, 89.83019999999999], "end": [139.2484, 89.83019999999999], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "D1", "thickness": 0.15, "pos": [132.9563, 68.7324], "height": 0.7999999999999999}, {"start": [134.6755, 67.661], "end": [133.6755, 67.661], "type": "segment", "width": 0.12}, {"start": [133.6755, 67.661], "end": [133.6755, 69.761], "type": "segment", "width": 0.12}, {"start": [134.6755, 67.661], "end": [134.6755, 69.761], "type": "segment", "width": 0.12}, {"width": 0.7999999999999999, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R6", "thickness": 0.15, "pos": [130.048, 88.011], "height": 0.7999999999999999}, {"start": [131.1576, 90.083], "end": [130.1576, 90.083], "type": "segment", "width": 0.15}, {"start": [130.1576, 88.73299999999999], "end": [131.1576, 88.73299999999999], "type": "segment", "width": 0.15}]}, "edges_bbox": {"minx": 115.293999, "miny": 66.421999, "maxx": 166.344001, "maxy": 96.52200099999999}, "metadata": {"date": "2018-11-08 20:04:47", "company": "xPablo.cz", "revision": "A", "title": "PCIeLoRa"}}
|
|
///////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////
|
|
/* PCB rendering code */
|
|
|
|
var redrawOnDrag = true;
|
|
var boardRotation = 0;
|
|
|
|
function deg2rad(deg) {
|
|
return deg * Math.PI / 180;
|
|
}
|
|
|
|
function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
|
|
var point = [
|
|
linepoint[0] * text.width + offsetx,
|
|
linepoint[1] * text.height + offsety
|
|
];
|
|
// Adding half a line height here is technically a bug
|
|
// but pcbnew currently does the same, text is slightly shifted.
|
|
point[0] -= (point[1] + text.height * 0.5) * tilt;
|
|
return point;
|
|
}
|
|
|
|
function drawtext(ctx, text, color, flip) {
|
|
ctx.save();
|
|
ctx.translate(...text.pos);
|
|
var angle = -text.angle;
|
|
if (text.attr.includes("mirrored")) {
|
|
ctx.scale(-1, 1);
|
|
angle = -angle;
|
|
}
|
|
var tilt = 0;
|
|
if (text.attr.includes("italic")) {
|
|
tilt = 0.125;
|
|
}
|
|
var interline = (text.height * 1.5 + text.thickness) / 2;
|
|
var txt = text.text.split("\n");
|
|
ctx.rotate(deg2rad(angle));
|
|
ctx.fillStyle = color;
|
|
ctx.strokeStyle = color;
|
|
ctx.lineCap = "round";
|
|
ctx.lineWidth = text.thickness;
|
|
for (var i in txt) {
|
|
var offsety = (-(txt.length - 1) + i * 2) * interline + text.height / 2;
|
|
var lineWidth = 0;
|
|
for (var c of txt[i]) {
|
|
lineWidth += pcbdata.font_data[c].w * text.width;
|
|
}
|
|
var offsetx = 0;
|
|
switch (text.horiz_justify) {
|
|
case -1:
|
|
// Justify left, do nothing
|
|
break;
|
|
case 0:
|
|
// Justify center
|
|
offsetx -= lineWidth / 2;
|
|
break;
|
|
case 1:
|
|
// Justify right
|
|
offsetx -= lineWidth;
|
|
break;
|
|
}
|
|
for (var c of txt[i]) {
|
|
for (var line of pcbdata.font_data[c].l) {
|
|
// Drawing each segment separately instead of
|
|
// polyline because round line caps don't work in joints
|
|
for (var i = 0; i < line.length - 1; i++) {
|
|
ctx.beginPath();
|
|
ctx.moveTo(...calcFontPoint(line[i], text, offsetx, offsety, tilt));
|
|
ctx.lineTo(...calcFontPoint(line[i + 1], text, offsetx, offsety, tilt));
|
|
ctx.stroke();
|
|
}
|
|
}
|
|
offsetx += pcbdata.font_data[c].w * text.width;
|
|
}
|
|
}
|
|
ctx.restore();
|
|
}
|
|
|
|
function drawedge(ctx, scalefactor, edge, color) {
|
|
ctx.strokeStyle = color;
|
|
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
|
|
ctx.lineCap = "round";
|
|
if (edge.type == "segment") {
|
|
ctx.beginPath();
|
|
ctx.moveTo(...edge.start);
|
|
ctx.lineTo(...edge.end);
|
|
ctx.stroke();
|
|
}
|
|
if (edge.type == "arc") {
|
|
ctx.beginPath();
|
|
ctx.arc(
|
|
...edge.start,
|
|
edge.radius,
|
|
deg2rad(edge.startangle),
|
|
deg2rad(edge.endangle));
|
|
ctx.stroke();
|
|
}
|
|
if (edge.type == "circle") {
|
|
ctx.beginPath();
|
|
ctx.arc(
|
|
...edge.start,
|
|
edge.radius,
|
|
0, 2 * Math.PI);
|
|
ctx.closePath();
|
|
ctx.stroke();
|
|
}
|
|
}
|
|
|
|
function drawRoundRect(ctx, color, size, radius, ctxmethod) {
|
|
ctx.beginPath();
|
|
ctx.strokeStyle = color;
|
|
var x = size[0] * -0.5;
|
|
var y = size[1] * -0.5;
|
|
var width = size[0];
|
|
var height = size[1];
|
|
ctx.moveTo(x, 0);
|
|
ctx.arcTo(x, y + height, x + width, y + height, radius);
|
|
ctx.arcTo(x + width, y + height, x + width, y, radius);
|
|
ctx.arcTo(x + width, y, x, y, radius);
|
|
ctx.arcTo(x, y, x, y + height, radius);
|
|
ctx.closePath();
|
|
ctxmethod();
|
|
}
|
|
|
|
function drawOblong(ctx, color, size, ctxmethod) {
|
|
drawRoundRect(ctx, color, size, Math.min(size[0], size[1]) / 2, ctxmethod);
|
|
}
|
|
|
|
function drawPolygons(ctx, color, polygons, ctxmethod) {
|
|
ctx.fillStyle = color;
|
|
for (var polygon of polygons) {
|
|
ctx.beginPath();
|
|
for (var vertex of polygon) {
|
|
ctx.lineTo(...vertex)
|
|
}
|
|
ctx.closePath();
|
|
ctxmethod();
|
|
}
|
|
}
|
|
|
|
function drawPolygonShape(ctx, shape, color) {
|
|
ctx.save();
|
|
ctx.translate(...shape.pos);
|
|
ctx.rotate(deg2rad(-shape.angle));
|
|
drawPolygons(ctx, color, shape.polygons, ctx.fill.bind(ctx));
|
|
ctx.restore();
|
|
}
|
|
|
|
function drawDrawing(ctx, layer, scalefactor, drawing, color) {
|
|
if (["segment", "arc", "circle"].includes(drawing.type)) {
|
|
drawedge(ctx, scalefactor, drawing, color);
|
|
} else if (drawing.type == "polygon") {
|
|
drawPolygonShape(ctx, drawing, color);
|
|
} else {
|
|
drawtext(ctx, drawing, color, layer == "B");
|
|
}
|
|
}
|
|
|
|
function drawCircle(ctx, radius, ctxmethod) {
|
|
ctx.beginPath();
|
|
ctx.arc(0, 0, radius, 0, 2 * Math.PI);
|
|
ctx.closePath();
|
|
ctxmethod();
|
|
}
|
|
|
|
function drawPad(ctx, pad, color, outline) {
|
|
ctx.save();
|
|
ctx.translate(...pad.pos);
|
|
ctx.rotate(deg2rad(pad.angle));
|
|
if (pad.offset) {
|
|
ctx.translate(...pad.offset);
|
|
}
|
|
ctx.fillStyle = color;
|
|
ctx.strokeStyle = color;
|
|
var ctxmethod = outline ? ctx.stroke.bind(ctx) : ctx.fill.bind(ctx);
|
|
if (pad.shape == "rect") {
|
|
var rect = [...pad.size.map(c => -c * 0.5), ...pad.size];
|
|
if (outline) {
|
|
ctx.strokeRect(...rect);
|
|
} else {
|
|
ctx.fillRect(...rect);
|
|
}
|
|
} else if (pad.shape == "oval") {
|
|
drawOblong(ctx, color, pad.size, ctxmethod);
|
|
} else if (pad.shape == "circle") {
|
|
drawCircle(ctx, pad.size[0] / 2, ctxmethod);
|
|
} else if (pad.shape == "roundrect") {
|
|
drawRoundRect(ctx, color, pad.size, pad.radius, ctxmethod);
|
|
} else if (pad.shape == "custom") {
|
|
drawPolygons(ctx, color, pad.polygons, ctxmethod);
|
|
}
|
|
if (pad.type == "th" && !outline) {
|
|
ctx.fillStyle = "#CCCCCC";
|
|
if (pad.drillshape == "oblong") {
|
|
drawOblong(ctx, "#CCCCCC", pad.drillsize, ctxmethod);
|
|
} else {
|
|
drawCircle(ctx, pad.drillsize[0] / 2, ctxmethod);
|
|
}
|
|
}
|
|
ctx.restore();
|
|
}
|
|
|
|
function drawModule(ctx, layer, scalefactor, module, padcolor, outlinecolor, highlight) {
|
|
if (highlight) {
|
|
// draw bounding box
|
|
if (module.layer == layer) {
|
|
ctx.save();
|
|
ctx.globalAlpha = 0.2;
|
|
ctx.translate(...module.bbox.pos);
|
|
ctx.fillStyle = padcolor;
|
|
ctx.fillRect(
|
|
0, 0,
|
|
...module.bbox.size);
|
|
ctx.globalAlpha = 1;
|
|
ctx.strokeStyle = padcolor;
|
|
ctx.strokeRect(
|
|
0, 0,
|
|
...module.bbox.size);
|
|
ctx.restore();
|
|
}
|
|
}
|
|
// draw drawings
|
|
for (var drawing of module.drawings) {
|
|
if (drawing.layer == layer) {
|
|
drawDrawing(ctx, layer, scalefactor, drawing.drawing, padcolor);
|
|
}
|
|
}
|
|
// draw pads
|
|
for (var pad of module.pads) {
|
|
if (pad.layers.includes(layer)) {
|
|
drawPad(ctx, pad, padcolor, false);
|
|
if (pad.pin1 && highlightpin1) {
|
|
drawPad(ctx, pad, outlinecolor, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function drawEdges(canvas, scalefactor) {
|
|
var ctx = canvas.getContext("2d");
|
|
var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
|
|
for (var edge of pcbdata.edges) {
|
|
drawedge(ctx, scalefactor, edge, edgecolor);
|
|
}
|
|
}
|
|
|
|
function drawModules(canvas, layer, scalefactor, highlightedRefs) {
|
|
var ctx = canvas.getContext("2d");
|
|
ctx.lineWidth = 3 / scalefactor;
|
|
var style = getComputedStyle(topmostdiv);
|
|
var padcolor = style.getPropertyValue('--pad-color');
|
|
var outlinecolor = style.getPropertyValue('--pin1-outline-color');
|
|
if (highlightedRefs.length > 0) {
|
|
padcolor = style.getPropertyValue('--pad-color-highlight');
|
|
outlinecolor = style.getPropertyValue('--pin1-outline-color-highlight');
|
|
}
|
|
for (var i in pcbdata.modules) {
|
|
var mod = pcbdata.modules[i];
|
|
var highlight = highlightedRefs.includes(mod.ref);
|
|
if (highlightedRefs.length == 0 || highlight) {
|
|
drawModule(ctx, layer, scalefactor, mod, padcolor, outlinecolor, highlight);
|
|
}
|
|
}
|
|
}
|
|
|
|
function drawSilkscreen(canvas, layer, scalefactor) {
|
|
var ctx = canvas.getContext("2d");
|
|
for (var d of pcbdata.silkscreen[layer]) {
|
|
if (["segment", "arc", "circle"].includes(d.type)) {
|
|
drawedge(ctx, scalefactor, d, "#aa4");
|
|
} else if (d.type == "polygon") {
|
|
drawPolygonShape(ctx, d, "#4aa");
|
|
} else {
|
|
drawtext(ctx, d, "#4aa", layer == "B");
|
|
}
|
|
}
|
|
}
|
|
|
|
function clearCanvas(canvas) {
|
|
var ctx = canvas.getContext("2d");
|
|
ctx.save();
|
|
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
ctx.restore();
|
|
}
|
|
|
|
function drawHighlightsOnLayer(canvasdict) {
|
|
clearCanvas(canvasdict.highlight);
|
|
drawModules(canvasdict.highlight, canvasdict.layer,
|
|
canvasdict.transform.s, highlightedRefs);
|
|
}
|
|
|
|
function drawHighlights() {
|
|
drawHighlightsOnLayer(allcanvas.front);
|
|
drawHighlightsOnLayer(allcanvas.back);
|
|
}
|
|
|
|
function drawBackground(canvasdict) {
|
|
clearCanvas(canvasdict.bg);
|
|
clearCanvas(canvasdict.silk);
|
|
drawEdges(canvasdict.bg, canvasdict.transform.s);
|
|
drawModules(canvasdict.bg, canvasdict.layer, canvasdict.transform.s, []);
|
|
drawSilkscreen(canvasdict.silk, canvasdict.layer, canvasdict.transform.s);
|
|
}
|
|
|
|
function prepareCanvas(canvas, flip, transform) {
|
|
var ctx = canvas.getContext("2d");
|
|
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
var fontsize = 1.55;
|
|
ctx.scale(transform.zoom, transform.zoom);
|
|
ctx.translate(transform.panx, transform.pany);
|
|
if (flip) {
|
|
ctx.scale(-1, 1);
|
|
}
|
|
ctx.translate(transform.x, transform.y);
|
|
ctx.rotate(deg2rad(boardRotation));
|
|
ctx.scale(transform.s, transform.s);
|
|
}
|
|
|
|
function prepareLayer(canvasdict) {
|
|
var flip = (canvasdict.layer == "B");
|
|
for (var c of ["bg", "silk", "highlight"]) {
|
|
prepareCanvas(canvasdict[c], flip, canvasdict.transform);
|
|
}
|
|
}
|
|
|
|
function rotateVector(v, angle) {
|
|
angle = deg2rad(angle);
|
|
return [
|
|
v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
|
|
v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
|
|
];
|
|
}
|
|
|
|
function applyRotation(bbox) {
|
|
var corners = [
|
|
[bbox.minx, bbox.miny],
|
|
[bbox.minx, bbox.maxy],
|
|
[bbox.maxx, bbox.miny],
|
|
[bbox.maxx, bbox.maxy],
|
|
];
|
|
corners = corners.map((v) => rotateVector(v, boardRotation));
|
|
return {
|
|
minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
|
|
miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
|
|
maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
|
|
maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
|
|
}
|
|
}
|
|
|
|
function recalcLayerScale(canvasdict) {
|
|
var canvasdivid = {
|
|
"F": "frontcanvas",
|
|
"B": "backcanvas"
|
|
} [canvasdict.layer];
|
|
var width = document.getElementById(canvasdivid).clientWidth * 2;
|
|
var height = document.getElementById(canvasdivid).clientHeight * 2;
|
|
var bbox = applyRotation(pcbdata.edges_bbox);
|
|
var scalefactor = 0.98 * Math.min(
|
|
width / (bbox.maxx - bbox.minx),
|
|
height / (bbox.maxy - bbox.miny)
|
|
);
|
|
if (scalefactor < 0.1) {
|
|
scalefactor = 1;
|
|
}
|
|
canvasdict.transform.s = scalefactor;
|
|
var flip = (canvasdict.layer == "B");
|
|
if (flip) {
|
|
canvasdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
|
|
} else {
|
|
canvasdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
|
|
}
|
|
canvasdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
|
|
for (var c of ["bg", "silk", "highlight"]) {
|
|
canvas = canvasdict[c];
|
|
canvas.width = width;
|
|
canvas.height = height;
|
|
canvas.style.width = (width / 2) + "px";
|
|
canvas.style.height = (height / 2) + "px";
|
|
}
|
|
console.log("Scale factor " + canvasdivid + ": ", canvasdict.transform);
|
|
}
|
|
|
|
function redrawCanvas(layerdict) {
|
|
prepareLayer(layerdict);
|
|
drawBackground(layerdict);
|
|
drawHighlightsOnLayer(layerdict);
|
|
}
|
|
|
|
function resizeCanvas(layerdict) {
|
|
recalcLayerScale(layerdict);
|
|
redrawCanvas(layerdict);
|
|
}
|
|
|
|
function resizeAll() {
|
|
resizeCanvas(allcanvas.front);
|
|
resizeCanvas(allcanvas.back);
|
|
}
|
|
|
|
function bboxScan(layer, x, y) {
|
|
var result = [];
|
|
for (var i in pcbdata.modules) {
|
|
var module = pcbdata.modules[i];
|
|
if (module.layer == layer) {
|
|
var b = module.bbox;
|
|
if (b.pos[0] <= x && b.pos[0] + b.size[0] >= x &&
|
|
b.pos[1] <= y && b.pos[1] + b.size[1] >= y) {
|
|
result.push(module.ref);
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function handleMouseDown(e, layerdict) {
|
|
if (e.which != 1) {
|
|
return;
|
|
}
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
layerdict.transform.mousestartx = e.offsetX;
|
|
layerdict.transform.mousestarty = e.offsetY;
|
|
layerdict.transform.mousedownx = e.offsetX;
|
|
layerdict.transform.mousedowny = e.offsetY;
|
|
layerdict.transform.mousedown = true;
|
|
}
|
|
|
|
function handleMouseClick(e, layerdict) {
|
|
var x = e.offsetX;
|
|
var y = e.offsetY;
|
|
var t = layerdict.transform;
|
|
if (layerdict.layer == "B") {
|
|
x = (2 * x / t.zoom - t.panx + t.x) / -t.s;
|
|
} else {
|
|
x = (2 * x / t.zoom - t.panx - t.x) / t.s;
|
|
}
|
|
y = (2 * y / t.zoom - t.y - t.pany) / t.s;
|
|
var v = rotateVector([x, y], -boardRotation);
|
|
var reflist = bboxScan(layerdict.layer, v[0], v[1]);
|
|
if (reflist.length > 0) {
|
|
modulesClicked(reflist);
|
|
drawHighlights();
|
|
}
|
|
}
|
|
|
|
function handleMouseUp(e, layerdict) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
if (e.which == 1 &&
|
|
layerdict.transform.mousedown &&
|
|
layerdict.transform.mousedownx == e.offsetX &&
|
|
layerdict.transform.mousedowny == e.offsetY) {
|
|
// This is just a click
|
|
handleMouseClick(e, layerdict);
|
|
layerdict.transform.mousedown = false;
|
|
return;
|
|
}
|
|
if (e.which == 3) {
|
|
// Reset pan and zoom on right click.
|
|
layerdict.transform.panx = 0;
|
|
layerdict.transform.pany = 0;
|
|
layerdict.transform.zoom = 1;
|
|
redrawCanvas(layerdict);
|
|
} else if (!redrawOnDrag) {
|
|
redrawCanvas(layerdict);
|
|
}
|
|
layerdict.transform.mousedown = false;
|
|
}
|
|
|
|
function handleMouseMove(e, layerdict) {
|
|
if (!layerdict.transform.mousedown) {
|
|
return;
|
|
}
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
var dx = e.offsetX - layerdict.transform.mousestartx;
|
|
var dy = e.offsetY - layerdict.transform.mousestarty;
|
|
layerdict.transform.panx += 2 * dx / layerdict.transform.zoom;
|
|
layerdict.transform.pany += 2 * dy / layerdict.transform.zoom;
|
|
layerdict.transform.mousestartx = e.offsetX;
|
|
layerdict.transform.mousestarty = e.offsetY;
|
|
if (redrawOnDrag) {
|
|
redrawCanvas(layerdict);
|
|
}
|
|
}
|
|
|
|
function handleMouseWheel(e, layerdict) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
var t = layerdict.transform;
|
|
var wheeldelta = e.deltaY;
|
|
if (e.deltaMode == 1) {
|
|
// FF only, scroll by lines
|
|
wheeldelta *= 30;
|
|
} else if (e.deltaMode == 2) {
|
|
wheeldelta *= 300;
|
|
}
|
|
var m = Math.pow(1.1, -wheeldelta / 40);
|
|
// Limit amount of zoom per tick.
|
|
if (m > 2) {
|
|
m = 2;
|
|
} else if (m < 0.5) {
|
|
m = 0.5;
|
|
}
|
|
t.zoom *= m;
|
|
var zoomd = (1 - m) / t.zoom;
|
|
t.panx += 2 * e.offsetX * zoomd;
|
|
t.pany += 2 * e.offsetY * zoomd;
|
|
redrawCanvas(layerdict);
|
|
console.log(layerdict.transform.zoom);
|
|
}
|
|
|
|
function addMouseHandlers(div, layerdict) {
|
|
div.onmousedown = function(e) {
|
|
handleMouseDown(e, layerdict);
|
|
};
|
|
div.onmousemove = function(e) {
|
|
handleMouseMove(e, layerdict);
|
|
};
|
|
div.onmouseup = function(e) {
|
|
handleMouseUp(e, layerdict);
|
|
};
|
|
div.onmouseout = function(e) {
|
|
handleMouseUp(e, layerdict);
|
|
}
|
|
div.onwheel = function(e) {
|
|
handleMouseWheel(e, layerdict);
|
|
}
|
|
for (var element of [div, layerdict.bg, layerdict.silk, layerdict.highlight]) {
|
|
element.addEventListener("contextmenu", function(e) {
|
|
e.preventDefault();
|
|
}, false);
|
|
}
|
|
}
|
|
|
|
function setRedrawOnDrag(value) {
|
|
redrawOnDrag = value;
|
|
writeStorage("redrawOnDrag", value);
|
|
}
|
|
|
|
function setBoardRotation(value) {
|
|
boardRotation = value * 5;
|
|
writeStorage("boardRotation", boardRotation);
|
|
document.getElementById("rotationDegree").textContent = boardRotation;
|
|
resizeAll();
|
|
}
|
|
|
|
function initRender() {
|
|
allcanvas = {
|
|
front: {
|
|
transform: {
|
|
x: 0,
|
|
y: 0,
|
|
s: 1,
|
|
panx: 0,
|
|
pany: 0,
|
|
zoom: 1,
|
|
mousestartx: 0,
|
|
mousestarty: 0,
|
|
mousedown: false,
|
|
},
|
|
bg: document.getElementById("F_bg"),
|
|
silk: document.getElementById("F_slk"),
|
|
highlight: document.getElementById("F_hl"),
|
|
layer: "F",
|
|
},
|
|
back: {
|
|
transform: {
|
|
x: 0,
|
|
y: 0,
|
|
s: 1,
|
|
panx: 0,
|
|
pany: 0,
|
|
zoom: 1,
|
|
mousestartx: 0,
|
|
mousestarty: 0,
|
|
mousedown: false,
|
|
},
|
|
bg: document.getElementById("B_bg"),
|
|
silk: document.getElementById("B_slk"),
|
|
highlight: document.getElementById("B_hl"),
|
|
layer: "B",
|
|
}
|
|
};
|
|
addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
|
|
addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////
|
|
/* DOM manipulation and misc code */
|
|
|
|
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
|
|
pcbdata.metadata.revision + '__';
|
|
var bomsplit;
|
|
var canvassplit;
|
|
var canvaslayout = "default";
|
|
var bomlayout = "default";
|
|
var bomSortFunction = null;
|
|
var currentSortColumn = null;
|
|
var currentSortOrder = null;
|
|
var currentHighlightedRowId;
|
|
var highlightHandlers = [];
|
|
var highlightedRefs = [];
|
|
var checkboxes = [];
|
|
var bomCheckboxes = "";
|
|
var highlightpin1 = false;
|
|
var storage;
|
|
var lastClickedRef;
|
|
|
|
function initStorage(key) {
|
|
try {
|
|
window.localStorage.getItem("blank");
|
|
storage = window.localStorage;
|
|
} catch (e) {
|
|
// localStorage not available
|
|
}
|
|
if (!storage) {
|
|
try {
|
|
window.sessionStorage.getItem("blank");
|
|
storage = window.sessionStorage;
|
|
} catch (e) {
|
|
// sessionStorage also not available
|
|
}
|
|
}
|
|
}
|
|
|
|
function readStorage(key) {
|
|
if (storage) {
|
|
return storage.getItem(storagePrefix + '#' + key);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function writeStorage(key, value) {
|
|
if (storage) {
|
|
storage.setItem(storagePrefix + '#' + key, value);
|
|
}
|
|
}
|
|
|
|
function dbg(html) {
|
|
dbgdiv.innerHTML = html;
|
|
}
|
|
|
|
function setDarkMode(value) {
|
|
if (value) {
|
|
topmostdiv.classList.add("dark");
|
|
} else {
|
|
topmostdiv.classList.remove("dark");
|
|
}
|
|
writeStorage("darkmode", value);
|
|
redrawCanvas(allcanvas.front);
|
|
redrawCanvas(allcanvas.back);
|
|
}
|
|
|
|
function setHighlightPin1(value) {
|
|
writeStorage("highlightpin1", value);
|
|
highlightpin1 = value;
|
|
redrawCanvas(allcanvas.front);
|
|
redrawCanvas(allcanvas.back);
|
|
}
|
|
|
|
function getStoredCheckboxRefs(checkbox) {
|
|
var existingRefs = readStorage("checkbox_" + checkbox);
|
|
if (!existingRefs) {
|
|
return new Set();
|
|
} else {
|
|
return new Set(existingRefs.split(","));
|
|
}
|
|
}
|
|
|
|
function getCheckboxState(checkbox, references) {
|
|
var storedRefsSet = getStoredCheckboxRefs(checkbox);
|
|
var currentRefsSet = new Set(references);
|
|
// Get difference of current - stored
|
|
var difference = new Set(currentRefsSet);
|
|
for (ref of storedRefsSet) {
|
|
difference.delete(ref);
|
|
}
|
|
if (difference.size == 0) {
|
|
// All the current refs are stored
|
|
return "checked";
|
|
} else if (difference.size == currentRefsSet.size) {
|
|
// None of the current refs are stored
|
|
return "unchecked";
|
|
} else {
|
|
// Some of the refs are stored
|
|
return "indeterminate";
|
|
}
|
|
}
|
|
|
|
function setBomCheckboxState(checkbox, element, references) {
|
|
var state = getCheckboxState(checkbox, references);
|
|
element.checked = (state == "checked");
|
|
element.indeterminate = (state == "indeterminate");
|
|
}
|
|
|
|
function createCheckboxChangeHandler(checkbox, references) {
|
|
return function() {
|
|
refsSet = getStoredCheckboxRefs(checkbox);
|
|
if (this.checked) {
|
|
// checkbox ticked
|
|
for (var ref of references) {
|
|
refsSet.add(ref);
|
|
}
|
|
} else {
|
|
// checkbox unticked
|
|
for (var ref of references) {
|
|
refsSet.delete(ref);
|
|
}
|
|
}
|
|
writeStorage("checkbox_" + checkbox, [...refsSet].join(","));
|
|
}
|
|
}
|
|
|
|
function createRowHighlightHandler(rowid, refs) {
|
|
return function() {
|
|
if (currentHighlightedRowId) {
|
|
if (currentHighlightedRowId == rowid) {
|
|
return;
|
|
}
|
|
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
|
|
}
|
|
document.getElementById(rowid).classList.add("highlighted");
|
|
currentHighlightedRowId = rowid;
|
|
highlightedRefs = refs;
|
|
drawHighlights();
|
|
}
|
|
}
|
|
|
|
function entryMatches(entry) {
|
|
// check refs
|
|
for (var ref of entry[3]) {
|
|
if (ref.toLowerCase().indexOf(filter) >= 0) {
|
|
return true;
|
|
}
|
|
}
|
|
// check value
|
|
if (entry[1].toLowerCase().indexOf(filter) >= 0) {
|
|
return true;
|
|
}
|
|
// check footprint
|
|
if (entry[2].toLowerCase().indexOf(filter) >= 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function findRefInEntry(entry) {
|
|
for (var ref of entry[3]) {
|
|
if (ref.toLowerCase() == reflookup) {
|
|
return [ref];
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function highlightFilter(s) {
|
|
if (!filter) {
|
|
return s;
|
|
}
|
|
var parts = s.toLowerCase().split(filter);
|
|
if (parts.length == 1) {
|
|
return s;
|
|
}
|
|
var r = "";
|
|
var pos = 0;
|
|
for (var i in parts) {
|
|
if (i > 0) {
|
|
r += '<mark class="highlight">' +
|
|
s.substring(pos, pos + filter.length) +
|
|
'</mark>';
|
|
pos += filter.length;
|
|
}
|
|
r += s.substring(pos, pos + parts[i].length);
|
|
pos += parts[i].length;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
function checkboxSetUnsetAllHandler(checkboxname) {
|
|
return function() {
|
|
var checkboxnum = 0;
|
|
while (checkboxnum < checkboxes.length &&
|
|
checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
|
|
checkboxnum++;
|
|
}
|
|
if (checkboxnum >= checkboxes.length) {
|
|
return;
|
|
}
|
|
var allset = true;
|
|
var checkbox;
|
|
var row;
|
|
for (row of bombody.childNodes) {
|
|
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
|
|
if (!checkbox.checked || checkbox.indeterminate) {
|
|
allset = false;
|
|
break;
|
|
}
|
|
}
|
|
for (row of bombody.childNodes) {
|
|
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
|
|
checkbox.checked = !allset;
|
|
checkbox.indeterminate = false;
|
|
checkbox.onchange();
|
|
}
|
|
}
|
|
}
|
|
|
|
function createColumnHeader(name, cls, comparator) {
|
|
var th = document.createElement("TH");
|
|
th.innerHTML = name;
|
|
th.classList.add(cls);
|
|
th.style.cursor = "pointer";
|
|
var span = document.createElement("SPAN");
|
|
span.classList.add("sortmark");
|
|
span.classList.add("none");
|
|
th.appendChild(span);
|
|
th.onclick = function() {
|
|
if (currentSortColumn && this !== currentSortColumn) {
|
|
// Currently sorted by another column
|
|
currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
|
|
currentSortColumn.childNodes[1].classList.add("none");
|
|
currentSortColumn = null;
|
|
currentSortOrder = null;
|
|
}
|
|
if (currentSortColumn && this === currentSortColumn) {
|
|
// Already sorted by this column
|
|
if (currentSortOrder == "asc") {
|
|
// Sort by this column, descending order
|
|
bomSortFunction = function(a, b) {
|
|
return -comparator(a, b);
|
|
}
|
|
currentSortColumn.childNodes[1].classList.remove("asc");
|
|
currentSortColumn.childNodes[1].classList.add("desc");
|
|
currentSortOrder = "desc";
|
|
} else {
|
|
// Unsort
|
|
bomSortFunction = null;
|
|
currentSortColumn.childNodes[1].classList.remove("desc");
|
|
currentSortColumn.childNodes[1].classList.add("none");
|
|
currentSortColumn = null;
|
|
currentSortOrder = null;
|
|
}
|
|
} else {
|
|
// Sort by this column, ascending order
|
|
bomSortFunction = comparator;
|
|
currentSortColumn = this;
|
|
currentSortColumn.childNodes[1].classList.remove("none");
|
|
currentSortColumn.childNodes[1].classList.add("asc");
|
|
currentSortOrder = "asc";
|
|
}
|
|
populateBomBody();
|
|
}
|
|
return th;
|
|
}
|
|
|
|
function fancyDblClickHandler(el, onsingle, ondouble) {
|
|
return function() {
|
|
if (el.getAttribute("data-dblclick") == null) {
|
|
el.setAttribute("data-dblclick", 1);
|
|
setTimeout(function() {
|
|
if (el.getAttribute("data-dblclick") == 1) {
|
|
onsingle();
|
|
}
|
|
el.removeAttribute("data-dblclick");
|
|
}, 200);
|
|
} else {
|
|
el.removeAttribute("data-dblclick");
|
|
ondouble();
|
|
}
|
|
}
|
|
}
|
|
|
|
function populateBomHeader() {
|
|
while (bomhead.firstChild) {
|
|
bomhead.removeChild(bomhead.firstChild);
|
|
}
|
|
var tr = document.createElement("TR");
|
|
var th = document.createElement("TH");
|
|
th.classList.add("numCol");
|
|
tr.appendChild(th);
|
|
checkboxes = bomCheckboxes.split(",").filter((e) => e);
|
|
var checkboxCompareClosure = function(checkbox) {
|
|
return (a, b) => {
|
|
var stateA = getCheckboxState(checkbox, a[3]);
|
|
var stateB = getCheckboxState(checkbox, b[3]);
|
|
if (stateA > stateB) return -1;
|
|
if (stateA < stateB) return 1;
|
|
return 0;
|
|
}
|
|
}
|
|
for (var checkbox of checkboxes) {
|
|
th = createColumnHeader(
|
|
checkbox, "bom-checkbox", checkboxCompareClosure(checkbox));
|
|
th.onclick = fancyDblClickHandler(
|
|
th, th.onclick.bind(th), checkboxSetUnsetAllHandler(checkbox));
|
|
tr.appendChild(th);
|
|
}
|
|
tr.appendChild(createColumnHeader("References", "References", (a, b) => {
|
|
var i = 0;
|
|
while (i < a[3].length && i < b[3].length) {
|
|
if (a[3][i] != b[3][i]) return a[3][i] > b[3][i] ? 1 : -1;
|
|
i++;
|
|
}
|
|
return a[3].length - b[3].length;
|
|
}));
|
|
tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
|
|
if (a[1] != b[1]) return a[1] > b[1] ? 1 : -1;
|
|
else return 0;
|
|
}));
|
|
tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
|
|
if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
|
|
else return 0;
|
|
}));
|
|
tr.appendChild(createColumnHeader("Quantity", "Quantity", (a, b) => {
|
|
return a[3].length - b[3].length;
|
|
}));
|
|
bomhead.appendChild(tr);
|
|
}
|
|
|
|
function populateBomBody() {
|
|
while (bom.firstChild) {
|
|
bom.removeChild(bom.firstChild);
|
|
}
|
|
highlightHandlers = [];
|
|
currentHighlightedRowId = null;
|
|
var first = true;
|
|
switch (canvaslayout) {
|
|
case 'F':
|
|
bomtable = pcbdata.bom.F;
|
|
break;
|
|
case 'FB':
|
|
bomtable = pcbdata.bom.both;
|
|
break;
|
|
case 'B':
|
|
bomtable = pcbdata.bom.B;
|
|
break;
|
|
}
|
|
if (bomSortFunction) {
|
|
bomtable = bomtable.slice().sort(bomSortFunction);
|
|
}
|
|
for (var i in bomtable) {
|
|
var bomentry = bomtable[i];
|
|
if (filter && !entryMatches(bomentry)) {
|
|
continue;
|
|
}
|
|
var references = bomentry[3];
|
|
if (reflookup) {
|
|
references = findRefInEntry(bomentry);
|
|
if (!references) {
|
|
continue;
|
|
}
|
|
}
|
|
var tr = document.createElement("TR");
|
|
var td = document.createElement("TD");
|
|
var rownum = +i + 1;
|
|
tr.id = "bomrow" + rownum;
|
|
td.textContent = rownum;
|
|
tr.appendChild(td);
|
|
// Checkboxes
|
|
for (var checkbox of checkboxes) {
|
|
if (checkbox) {
|
|
td = document.createElement("TD");
|
|
var input = document.createElement("input");
|
|
input.type = "checkbox";
|
|
input.onchange = createCheckboxChangeHandler(checkbox, references);
|
|
setBomCheckboxState(checkbox, input, references);
|
|
td.appendChild(input);
|
|
tr.appendChild(td);
|
|
}
|
|
}
|
|
// References
|
|
td = document.createElement("TD");
|
|
td.innerHTML = highlightFilter(references.join(", "));
|
|
tr.appendChild(td);
|
|
// Value
|
|
td = document.createElement("TD");
|
|
td.innerHTML = highlightFilter(bomentry[1]);
|
|
tr.appendChild(td);
|
|
// Footprint
|
|
td = document.createElement("TD");
|
|
td.innerHTML = highlightFilter(bomentry[2]);
|
|
tr.appendChild(td);
|
|
// Quantity
|
|
td = document.createElement("TD");
|
|
td.textContent = bomentry[3].length;
|
|
tr.appendChild(td);
|
|
bom.appendChild(tr);
|
|
var handler = createRowHighlightHandler(tr.id, references);
|
|
tr.onmousemove = handler;
|
|
highlightHandlers.push({
|
|
id: tr.id,
|
|
handler: handler,
|
|
refs: references
|
|
});
|
|
if ((filter || reflookup) && first) {
|
|
handler();
|
|
first = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
function smoothScrollToRow(rowid) {
|
|
document.getElementById(rowid).scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "center",
|
|
inline: "nearest"
|
|
});
|
|
}
|
|
|
|
function highlightPreviousRow() {
|
|
if (!currentHighlightedRowId) {
|
|
highlightHandlers[highlightHandlers.length - 1].handler();
|
|
} else {
|
|
if (highlightHandlers.length > 1 &&
|
|
highlightHandlers[0].id == currentHighlightedRowId) {
|
|
highlightHandlers[highlightHandlers.length - 1].handler();
|
|
} else {
|
|
for (var i = 0; i < highlightHandlers.length - 1; i++) {
|
|
if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
|
|
highlightHandlers[i].handler();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
smoothScrollToRow(currentHighlightedRowId);
|
|
}
|
|
|
|
function highlightNextRow() {
|
|
if (!currentHighlightedRowId) {
|
|
highlightHandlers[0].handler();
|
|
} else {
|
|
if (highlightHandlers.length > 1 &&
|
|
highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
|
|
highlightHandlers[0].handler();
|
|
} else {
|
|
for (var i = 1; i < highlightHandlers.length; i++) {
|
|
if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
|
|
highlightHandlers[i].handler();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
smoothScrollToRow(currentHighlightedRowId);
|
|
}
|
|
|
|
function populateBomTable() {
|
|
populateBomHeader();
|
|
populateBomBody();
|
|
}
|
|
|
|
function modulesClicked(references) {
|
|
var lastClickedIndex = references.indexOf(lastClickedRef);
|
|
var ref = references[(lastClickedIndex + 1) % references.length];
|
|
for (var handler of highlightHandlers) {
|
|
if (handler.refs.indexOf(ref) >= 0) {
|
|
lastClickedRef = ref;
|
|
handler.handler();
|
|
smoothScrollToRow(currentHighlightedRowId);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
function updateFilter(input) {
|
|
filter = input.toLowerCase();
|
|
populateBomTable();
|
|
}
|
|
|
|
function updateRefLookup(input) {
|
|
reflookup = input.toLowerCase();
|
|
populateBomTable();
|
|
}
|
|
|
|
function silkscreenVisible(visible) {
|
|
if (visible) {
|
|
allcanvas.front.silk.style.display = "";
|
|
allcanvas.back.silk.style.display = "";
|
|
writeStorage("silkscreenVisible", true);
|
|
} else {
|
|
allcanvas.front.silk.style.display = "none";
|
|
allcanvas.back.silk.style.display = "none";
|
|
writeStorage("silkscreenVisible", false);
|
|
}
|
|
}
|
|
|
|
function changeCanvasLayout(layout) {
|
|
document.getElementById("fl-btn").classList.remove("depressed");
|
|
document.getElementById("fb-btn").classList.remove("depressed");
|
|
document.getElementById("bl-btn").classList.remove("depressed");
|
|
switch (layout) {
|
|
case 'F':
|
|
document.getElementById("fl-btn").classList.add("depressed");
|
|
if (bomlayout != "BOM") {
|
|
canvassplit.collapse(1);
|
|
}
|
|
break;
|
|
case 'B':
|
|
document.getElementById("bl-btn").classList.add("depressed");
|
|
if (bomlayout != "BOM") {
|
|
canvassplit.collapse(0);
|
|
}
|
|
break;
|
|
default:
|
|
document.getElementById("fb-btn").classList.add("depressed");
|
|
if (bomlayout != "BOM") {
|
|
canvassplit.setSizes([50, 50]);
|
|
}
|
|
}
|
|
canvaslayout = layout;
|
|
writeStorage("canvaslayout", layout);
|
|
resizeAll();
|
|
populateBomTable();
|
|
}
|
|
|
|
function populateMetadata() {
|
|
document.getElementById("title").innerHTML = pcbdata.metadata.title;
|
|
document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
|
|
document.getElementById("company").innerHTML = pcbdata.metadata.company;
|
|
document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
|
|
if (pcbdata.metadata.title != "") {
|
|
document.title = pcbdata.metadata.title + " BOM";
|
|
}
|
|
}
|
|
|
|
function changeBomLayout(layout) {
|
|
document.getElementById("bom-btn").classList.remove("depressed");
|
|
document.getElementById("lr-btn").classList.remove("depressed");
|
|
document.getElementById("tb-btn").classList.remove("depressed");
|
|
switch (layout) {
|
|
case 'BOM':
|
|
document.getElementById("bom-btn").classList.add("depressed");
|
|
if (bomsplit) {
|
|
bomsplit.destroy();
|
|
bomsplit = null;
|
|
canvassplit.destroy();
|
|
canvassplit = null;
|
|
}
|
|
document.getElementById("frontcanvas").style.display = "none";
|
|
document.getElementById("backcanvas").style.display = "none";
|
|
document.getElementById("bot").style.height = "";
|
|
break;
|
|
case 'TB':
|
|
document.getElementById("tb-btn").classList.add("depressed");
|
|
document.getElementById("frontcanvas").style.display = "";
|
|
document.getElementById("backcanvas").style.display = "";
|
|
document.getElementById("bot").style.height = "calc(100% - 80px)";
|
|
document.getElementById("bomdiv").classList.remove("split-horizontal");
|
|
document.getElementById("canvasdiv").classList.remove("split-horizontal");
|
|
document.getElementById("frontcanvas").classList.add("split-horizontal");
|
|
document.getElementById("backcanvas").classList.add("split-horizontal");
|
|
if (bomsplit) {
|
|
bomsplit.destroy();
|
|
bomsplit = null;
|
|
canvassplit.destroy();
|
|
canvassplit = null;
|
|
}
|
|
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
|
|
sizes: [50, 50],
|
|
onDragEnd: resizeAll,
|
|
direction: "vertical",
|
|
gutterSize: 5
|
|
});
|
|
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
|
|
sizes: [50, 50],
|
|
gutterSize: 5,
|
|
onDragEnd: resizeAll
|
|
});
|
|
break;
|
|
case 'LR':
|
|
document.getElementById("lr-btn").classList.add("depressed");
|
|
document.getElementById("frontcanvas").style.display = "";
|
|
document.getElementById("backcanvas").style.display = "";
|
|
document.getElementById("bot").style.height = "calc(100% - 80px)";
|
|
document.getElementById("bomdiv").classList.add("split-horizontal");
|
|
document.getElementById("canvasdiv").classList.add("split-horizontal");
|
|
document.getElementById("frontcanvas").classList.remove("split-horizontal");
|
|
document.getElementById("backcanvas").classList.remove("split-horizontal");
|
|
if (bomsplit) {
|
|
bomsplit.destroy();
|
|
bomsplit = null;
|
|
canvassplit.destroy();
|
|
canvassplit = null;
|
|
}
|
|
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
|
|
sizes: [50, 50],
|
|
onDragEnd: resizeAll,
|
|
gutterSize: 5
|
|
});
|
|
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
|
|
sizes: [50, 50],
|
|
gutterSize: 5,
|
|
direction: "vertical",
|
|
onDragEnd: resizeAll
|
|
});
|
|
}
|
|
bomlayout = layout;
|
|
writeStorage("bomlayout", layout);
|
|
changeCanvasLayout(canvaslayout);
|
|
}
|
|
|
|
function focusInputField(input) {
|
|
input.scrollIntoView(false);
|
|
input.focus();
|
|
input.select();
|
|
}
|
|
|
|
function focusFilterField() {
|
|
focusInputField(document.getElementById("filter"));
|
|
}
|
|
|
|
function focusRefLookupField() {
|
|
focusInputField(document.getElementById("reflookup"));
|
|
}
|
|
|
|
function toggleBomCheckbox(bomrowid, checkboxnum) {
|
|
if (!bomrowid || checkboxnum > checkboxes.length) {
|
|
return;
|
|
}
|
|
var bomrow = document.getElementById(bomrowid);
|
|
var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
|
|
checkbox.checked = !checkbox.checked;
|
|
checkbox.indeterminate = false;
|
|
checkbox.onchange();
|
|
}
|
|
|
|
function checkBomCheckbox(bomrowid, checkboxname) {
|
|
var checkboxnum = 0;
|
|
while (checkboxnum < checkboxes.length &&
|
|
checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
|
|
checkboxnum++;
|
|
}
|
|
if (!bomrowid || checkboxnum >= checkboxes.length) {
|
|
return;
|
|
}
|
|
var bomrow = document.getElementById(bomrowid);
|
|
var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
|
|
checkbox.checked = true;
|
|
checkbox.indeterminate = false;
|
|
checkbox.onchange();
|
|
}
|
|
|
|
|
|
function removeGutterNode(node) {
|
|
for (var i = 0; i < node.childNodes.length; i++) {
|
|
if (node.childNodes[i].classList &&
|
|
node.childNodes[i].classList.contains("gutter")) {
|
|
node.removeChild(node.childNodes[i]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
function cleanGutters() {
|
|
removeGutterNode(document.getElementById("bot"));
|
|
removeGutterNode(document.getElementById("canvasdiv"));
|
|
}
|
|
|
|
function setBomCheckboxes(value) {
|
|
bomCheckboxes = value;
|
|
writeStorage("bomCheckboxes", value);
|
|
populateBomTable();
|
|
}
|
|
|
|
document.onkeydown = function(e) {
|
|
switch (e.key) {
|
|
case "n":
|
|
if (document.activeElement.type == "text") {
|
|
return;
|
|
}
|
|
if (currentHighlightedRowId !== null) {
|
|
checkBomCheckbox(currentHighlightedRowId, "placed");
|
|
highlightNextRow();
|
|
e.preventDefault();
|
|
}
|
|
break;
|
|
case "ArrowUp":
|
|
highlightPreviousRow();
|
|
e.preventDefault();
|
|
break;
|
|
case "ArrowDown":
|
|
highlightNextRow();
|
|
e.preventDefault();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (e.altKey) {
|
|
switch (e.key) {
|
|
case "f":
|
|
focusFilterField();
|
|
e.preventDefault();
|
|
break;
|
|
case "r":
|
|
focusRefLookupField();
|
|
e.preventDefault();
|
|
break;
|
|
case "z":
|
|
changeBomLayout("BOM");
|
|
e.preventDefault();
|
|
break;
|
|
case "x":
|
|
changeBomLayout("LR");
|
|
e.preventDefault();
|
|
break;
|
|
case "c":
|
|
changeBomLayout("TB");
|
|
e.preventDefault();
|
|
break;
|
|
case "v":
|
|
changeCanvasLayout("F");
|
|
e.preventDefault();
|
|
break;
|
|
case "b":
|
|
changeCanvasLayout("FB");
|
|
e.preventDefault();
|
|
break;
|
|
case "n":
|
|
changeCanvasLayout("B");
|
|
e.preventDefault();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (e.key >= '1' && e.key <= '9') {
|
|
toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
|
|
}
|
|
}
|
|
}
|
|
|
|
window.onload = function(e) {
|
|
initStorage();
|
|
cleanGutters();
|
|
initRender();
|
|
dbgdiv = document.getElementById("dbg");
|
|
bom = document.getElementById("bombody");
|
|
bomhead = document.getElementById("bomhead");
|
|
bomlayout = readStorage("bomlayout");
|
|
if (!bomlayout) {
|
|
bomlayout = "LR";
|
|
}
|
|
canvaslayout = readStorage("canvaslayout");
|
|
if (!canvaslayout) {
|
|
canvaslayout = "FB";
|
|
}
|
|
filter = "";
|
|
reflookup = "";
|
|
populateMetadata();
|
|
bomCheckboxes = readStorage("bomCheckboxes");
|
|
if (bomCheckboxes === null) {
|
|
bomCheckboxes = "Sourced,Placed";
|
|
}
|
|
document.getElementById("bomCheckboxes").value = bomCheckboxes;
|
|
if (readStorage("silkscreenVisible") === "false") {
|
|
document.getElementById("silkscreenCheckbox").checked = false;
|
|
silkscreenVisible(false);
|
|
}
|
|
if (readStorage("redrawOnDrag") === "false") {
|
|
document.getElementById("dragCheckbox").checked = false;
|
|
setRedrawOnDrag(false);
|
|
}
|
|
if (readStorage("darkmode") === "true") {
|
|
document.getElementById("darkmodeCheckbox").checked = true;
|
|
setDarkMode(true);
|
|
}
|
|
if (readStorage("highlightpin1") === "true") {
|
|
document.getElementById("highlightpin1Checkbox").checked = true;
|
|
setHighlightPin1(true);
|
|
}
|
|
boardRotation = readStorage("boardRotation");
|
|
if (boardRotation === null) {
|
|
boardRotation = 0;
|
|
} else {
|
|
boardRotation = parseInt(boardRotation);
|
|
}
|
|
document.getElementById("boardRotation").value = boardRotation / 5;
|
|
document.getElementById("rotationDegree").textContent = boardRotation;
|
|
// Triggers render
|
|
changeBomLayout(bomlayout);
|
|
}
|
|
|
|
window.onresize = resizeAll;
|
|
window.matchMedia("print").addListener(resizeAll);
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="topmostdiv" style="width: 100%; height: 100%">
|
|
<div id="top">
|
|
<div style="float: right;">
|
|
<div class="hideonprint menu" style="float: right; margin: 10px; top: 8px;">
|
|
<button class="menubtn"></button>
|
|
<div class="menu-content">
|
|
<label class="menu-label menu-label-top">
|
|
<input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
|
|
Dark mode
|
|
</label>
|
|
<label class="menu-label">
|
|
<input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
|
|
Show silkscreen
|
|
</label>
|
|
<label class="menu-label">
|
|
<input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
|
|
Highlight first pin
|
|
</label>
|
|
<label class="menu-label">
|
|
<input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
|
|
Continuous redraw on drag
|
|
</label>
|
|
<label class="menu-label">
|
|
<span>Board rotation</span>
|
|
<span style="float: right"><span id="rotationDegree">0</span>°</span>
|
|
<input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
|
|
</label>
|
|
<label class="menu-label">
|
|
<div style="margin-left: 5px">Bom checkboxes</div>
|
|
<input id="bomCheckboxes" class="menu-textbox" type=text
|
|
oninput="setBomCheckboxes(this.value)">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="button-container hideonprint"
|
|
style="float: right; margin: 10px; position: relative; top: 8px">
|
|
<button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
|
|
title="Front only">F
|
|
</button>
|
|
<button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
|
|
title="Front and Back">FB
|
|
</button>
|
|
<button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
|
|
title="Back only">B
|
|
</button>
|
|
</div>
|
|
<div class="button-container hideonprint"
|
|
style="float: right; margin: 10px; position: relative; top: 8px">
|
|
<button id="bom-btn" class="left-most-button" onclick="changeBomLayout('BOM')"
|
|
title="BOM only"></button>
|
|
<button id="lr-btn" class="middle-button" onclick="changeBomLayout('LR')"
|
|
title="BOM left, drawings right"></button>
|
|
<button id="tb-btn" class="right-most-button" onclick="changeBomLayout('TB')"
|
|
title="BOM top, drawings bot"></button>
|
|
</div>
|
|
</div>
|
|
<div id="fileinfodiv" style="overflow: auto;">
|
|
<table class="fileinfo">
|
|
<tbody>
|
|
<tr>
|
|
<td id="title" class="title" style="width: 70%">
|
|
Title
|
|
</td>
|
|
<td id="revision" class="title" style="width: 30%">
|
|
Revision
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td id="company">
|
|
Kicad version
|
|
</td>
|
|
<td id="filedate">
|
|
Date
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div id="bot" class="split" style="height: calc(100% - 80px)">
|
|
<div id="bomdiv" class="split split-horizontal">
|
|
<div style="width: 100%">
|
|
<input id="reflookup" class="searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
|
|
oninput="updateRefLookup(this.value)">
|
|
<input id="filter" class="searchbox filter hideonprint" type="text" placeholder="Filter"
|
|
oninput="updateFilter(this.value)">
|
|
</div>
|
|
<div id="dbg"></div>
|
|
<table class="bom">
|
|
<thead id="bomhead">
|
|
</thead>
|
|
<tbody id="bombody">
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="canvasdiv" class="split split-horizontal">
|
|
<div id="frontcanvas" class="split" style="overflow: hidden">
|
|
<div style="position: relative; width: 100%; height: 100%;">
|
|
<canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
|
|
<canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
|
|
<canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
|
|
</div>
|
|
</div>
|
|
<div id="backcanvas" class="split" style="overflow: hidden">
|
|
<div style="position: relative; width: 100%; height: 100%;">
|
|
<canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
|
|
<canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
|
|
<canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|