rusefi_documentation/ibom-backup/micro_rusEFI_R0.5.2.html

3620 lines
295 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;
--silkscreen-edge-color: #aa4;
--silkscreen-polygon-color: #4aa;
--silkscreen-text-color: #4aa;
--fabrication-edge-color: #907651;
--fabrication-polygon-color: #907651;
--fabrication-text-color: #a27c24;
--track-color: #def5f1;
--track-color-highlight: #D04040;
--zone-color: #def5f1;
--zone-color-highlight: #d0404080;
}
html, body {
margin: 0px;
height: 100%;
font-family: Verdana, sans-serif;
}
.dark.topmostdiv {
--pcb-edge-color: #eee;
--pad-color: #808080;
--pin1-outline-color: #ffa800;
--pin1-outline-color-highlight: #ccff00;
--track-color: #42524f;
--zone-color: #42524f;
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/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#lr-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#bom-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-grouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-ungrouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-netlist-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}
button#copy {
background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
background-position: 6px 6px;
background-repeat: no-repeat;
background-size: 26px 26px;
border-radius: 6px;
height: 40px;
width: 40px;
margin: 10px 5px;
}
button#copy:active {
box-shadow: inset 0px 0px 5px #6c6c6c;
}
textarea.clipboard-temp {
position: fixed;
top: 0;
left: 0;
width: 2em;
height: 2em;
padding: 0;
border: None;
outline: None;
box-shadow: None;
background: transparent;
}
.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;
margin: 10px 10px 10px 0px;
}
.dark .button-container {
filter: invert(1);
}
.button-container button {
background-size: 32px 32px;
background-position: 5px 5px;
background-repeat: no-repeat;
}
@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.checked {
color: #aaa;
}
.dark .bom tr.checked {
color: #666;
}
.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;
background-color: inherit;
}
.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% - 64px);
}
.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;
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;
}
.statsbtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.iobtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.dark .statsbtn, .dark .savebtn, .dark .menubtn, .dark .iobtn {
filter: invert(1);
}
.flexbox {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.savebtn {
background-color: #d6d6d6;
width: auto;
height: 30px;
flex-grow: 1;
margin: 5px;
border-radius: 4px;
}
.savebtn:active {
background-color: #0a0;
color: white;
}
.dark .savebtn:active {
/* This will be inverted */
background-color: #b3b;
}
.stats {
border-collapse: collapse;
font-size: 12pt;
table-layout: fixed;
width: 100%;
min-width: 450px;
}
.dark .stats td {
border: 1px solid #bbb;
}
.stats td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
#checkbox-stats div {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
#checkbox-stats .bar {
background-color: rgba(28, 251, 0, 0.6);
}
.menu {
position: relative;
display: inline-block;
margin: 10px 10px 10px 0px;
}
.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, .menu:hover .iobtn, .menu:hover .statsbtn {
background-color: #eee;
}
.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);
}
.menu-textbox.invalid, .dark .menu-textbox.invalid {
color: red;
}
.dark .menu-textbox {
background-color: #222;
color: #eee;
}
.radio-container {
margin: 4px;
}
.topmostdiv {
width: 100%;
height: 100%;
background-color: white;
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;
}
.shameless-plug {
font-size: 0.8em;
text-align: center;
display: block;
}
a {
color: #0278a4;
}
.dark a {
color: #00b9fd;
}
#frontcanvas, #backcanvas {
touch-action: none;
}
</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}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"show_fabrication": false, "redraw_on_drag": true, "highlight_pin1": false, "extra_fields": [], "dark_mode": false, "bom_view": "left-right", "board_rotation": 0.0, "checkboxes": "Sourced,Placed", "show_silkscreen": true, "show_pads": true, "layer_view": "FB"}
///////////////////////////////////////////////
///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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hKzu6dYjtjUteWXQX0h9S+Rv8m9YGHGdzpFtGhqed42kbqukMed+4hednzpWZxaQgaaot+d7mvkhGWR+dMU1LtIjqdNXztBdIUJsIAuV0hSLtShELoUdEsjedReo+d+mtxNb1omSuLtRdEVtJlKfOid85qoscpEwNcELI1ory25hexhM3/LNN2Wgse/NAPtJNqhNHEHpdHLp0doYPpdJhqmdRAH5d9jLDSfLu5dorpWCKYNZdor120czoqdCzp6NMrpxUTtNwJn4OVdY2i3EOjo1dyBi086rtr4Arp1k4rqFyKrq1d/DpFdmrrsenZq+twLP8pRBor1z/BpdsRmh0jFNxU7I1StMcqtkQUItdHnByspYJ1duKiQyNrqChAbsP0nLuzMbLqnAwnWDdHxtDdedlLBPrqjd4TvmdlJpjBibqFZQrq5dJrrWwm0nld8Ls4dPRsTdskHDdRbudhwLpDdBrvj5frv4dAbozdz5vVc5Oq5tGikYNnyg71CesspRr0flvfKlWjSrstdYLvk8y175nq34dA7rsVTPW1dvJ140w7u2No7qndH5RjdTiuMtf1oJwgNpS1osNsJB9snteMJJ08gMjsHOp3d2bkFtdAIUdV0PX+WNg51p7sPd0slydC7vStN5gPce7qCto/2Ggj7vLdbNsbdcipsov6sLh5lrjAkQPX29nWYRwtrBBCsLdK78vYeCkGwg7EHahr+kOZirpnNH7uqBNlENFb5KRhZtueAHLqDZ9j2509/RXpIHuwpSg250y+MgFugvWCJsjg9+tqids0vi11QPAEEJvQ9RADpdOKkzJnkLENHxrvkQaN1d99nCh16npd27LiFWzp4h8GWbaJyhh26autNHHtldYnoTVSdtEdItvNNihic8FMOi2XKoU9o1ItMu2m49b7rNNknpxU/HtU93DvU9FD2U9WnrydkTuBNFLpo9tyugE9HqBt14CY9a2F8gDl3EttxpCdRno88QSmtt/DsM9InpzdOskpVJzvudHIF09a2EHyMartUbnt89/NDC9Mnu7tCLvUhIXt9dd+lU9iXs89AXoid41rrBPnqU9CfPC9wXt49VbuS99brN57Nv7VLVJsoVepFkaHrs9VJP89RNP6M3AP2c4dOYZBHoqF8zIY5pHtkA5Hv/l8HtgslvMNtnNs/dU0Hv1ogPsgkJo4p1k2aNB9ujKm5v8NrXrH+tTMg9NkC69OwIo9DhoNtw+pidFkPAIptpq9SyDgp/Hm5ATkIoF6hvyBuVn5t4ZF0hZ3olpspK+60tO096htIpN3t+Bl3qr513sGUL3uZNCrtTddUKe9gygDZr3sLNOsme9Iv0u9gnoKUwPugMu7hDxvxve9RBjLyX3vzdlTskhf3qIMUeVHN8kNR9G/2h9YPsC9IttXNiH2iiF3ox9GuplUH3tB9iPtk98XvB5uGwWZHniZhUSoPNtPrFNxPoUdBPrp958RgMCPr5Zi5QlpXPph9Znsy9sYHZ9YpoUMAvrh5zPqc8/Ptx9GXvl1zzn695mqs9BUOmw+kuq9J2v50RdHBejSum0W5rp1aeEicfLL19JdBbAbPsJp5PoewymrN9mvq8Jpvueq+vo+mfLJzZ8jIN9D3rk1Rvt3EFvoPNYWtVkHvsp9cXoLdCHsV1g3uqBP6Bz1DHs8A0hHGyCRrcy/fOa9m3Lgt5hsUt2nQ5hCfux9uaX6qkngUdR3reVjsKCO7hmT9txOz9J2KIM03x25U5rx9cCpv1jCpG4qHrG94fv0Z3WxqZ4hXaqeHsZh4igXaMAIVU8iBrtSsnb9GOr/OMBh665TqR9irupBAHI79esl2J9qxb9P0L79rx3s6o+WH9VPoLdY/rn984Cn9yEh79yIAeoEWwgt0/vTNKbszN80LX9esmkNGfBn92/1eAu/pcNHrkCe5ftl9ahsD9fFvfNUZBtJdfr29q5MW8GxTddP0ia9ItqO9xHoSKFMOIldZo2hZJECUsEC1xgvp2tsYCXpoPkgDaro2hvgWADUAdvd1ILgDDDJAD1rvJhabMc9YlvB9AAemhmAdQD5MPhBqsiO9sXoWJ3Rqf9VftaVzOC61VXvf9J2qVAh1I3NwHvB5tIKmNrq0qtKNNV6Xhg49EDTZ9fAa4D/fuwDd5uEDG/yFZjTqEDXfy8MUgcEDyms4Dkga3ECgegDj/r69pXoG9oJqbd/1pbdh1iYDwluA5mvvOmYdPx9jTiwQvvux5ndJd9agaId1RLF5lnUsDm9vmWTgdsDvjrIBPwGIs9vs99RxM8DPvvKaXdqoD+TtFUzlgsDNgbh55gfJ0fvqCD5npfN4grQNOgfE4q7pp1JOi4qr9PG0/NL7dIsI9Eo6WQMogbEDX/xXUNizyDXAJPdRQdyDpVtKDrFPKDr9NpBS/v99yPvmhOQYsD01R4DyIGaDfnrxtFfr7tF8qNttyvGwQ9pH0eFtH0HysCUeCq3deytlJ/wUqDiAa/++QK4BmvvyDOHPB9pyiWDkCtaDW/prQ8wfIDdQZPdSoHkZGwZE5bYKmDgSl2DD3poDlnr6DBUOBgwcoMDnes8ABsgKI0fuUKs3vSttUhWpokjXSWlo2h7wfMN2q2Edy/saDOxKOtMBhAW3wczoFMOutZM3+DxXufk+up0DfvFs9KWqxAaOLH8sonE6HrsGVjhuSpbGTRD8pzy9dCBxDAVq6uDttAmYFgUdxjtxyuuPRDvRksNRIepD5wEpaOgLcDpzucdhNOV0nZIxDlhvZD/tWysCOXJDrvrOdPIcqh+Ia5VhkGBylUMZDDgZ31pLsgZv1sX120D8lcVo/9aEhUgiuV6VIFxttoqixs9c1LotquksaJrQKIS0x1JSmks4Pp1DGgz1DoCNWBkmR+I2nVc01ofODGgcQ9/QcTotft/dJyqw94vMRVa6VeDagvFUoB1IFqep+B1p2GAm4LhdgIdH9NKoDDUyvDDqwMbssYdJcEYYaDUYe1DMYcRVjqnjD+6RxVSYdhDJ2i/1HWruwyQfuDC/u8GwwBTRz+Rc9ohK40zvt4hEXNlKtYfVyzTprD9vqbDrbJbDaCDvGqgbQDm3KwKjYYGBG0L7D5Yc083YdlDJXvhDciou4Yfo/92mrWDSpR9Eg13YDW5uteszJzcuO2OVm2nGyj8rXDSfR7D2oc3DVV2Ucv7mPRz6r5ZLF1mZlkgjSp4adD8vs0DivquDFkJaw37vTcv7odtXhJ3QAbJkBf/oxZ+wcJCl4dTpxwtC1M9J5W/4egOM0JZDQXvCswEfnAO4chdRWo8ttujN9u4bHDfYgV9CQcnD5KEj5Hof6hlklQJsfpFtjFglqH4dN2SgMGBNhOIw1NhLe6SUFD2ofIj2tu48qwP+V1lPojW4JQj3UQnD1QOmwlXv0DHoYnGz7Whtv1S5cfoZpVhpSXhFDxzcAxTkl9ZoYEvG2ydXy0oNWLtdcskeps74q7NJRXsyPNJUjZoe6D77oLD6BtVY8DLV9NOuj5zi0dJ9NNb9Quo5NUPI8KktoKDsaisjG/xbkR5sz9NEeFNY5OsjCZVsjOHKr57kccjiIgz9/Zof9KHKMt/dvfNXyAYDCTvD9uFiOG1kd8RYNqkVQutMQ91PVK+fpytQPtu6vDn6sZfuo14PpFNK1JSjXkcU5b3smtmUecjgUcP91Aao9Bsu0Dciq+QegedckJtNpF/jMjuBLY9eMKvU11t4cnkfVtcDtnU51tKjAUfv9FUeCDwps20+UZsjPUdx1Y0esjWUcTFeYc4N5Sq29VFi+Qgwfu0HocXKFQugBhjNKVJfNs5yUYmjBfvxde0ZmjZUaGj33qP92occ0HkaT9aUczoPolfQJ0cGjOUZ0jPrjvDb5tv1FaCRDxkaHMJbDlJAyu6iKzIcjw2m6jh0Yl151uG0s0ZcjEEa+dvkeBjN0cWZPkauGv0chj5UfOjlUYs9vQeD9tyq+Qv+qEt9weijF/iqh5karDbkYTAv0ZBjt0djUSUeRjp0eejQUfcDsahzZrtviI8MdAD8kKZjNMaej1rrYjC0ZhlI+uWjwbC+j+MaIUhMaB1rUbB5QuoOp5MdZjdkb6j11ohjtMe5jL0fUN00bJoLMdSjCMd5NqsYVjXMeWDysZCjmMZqjIfvFAxYYT1Pohijasb+j20cJUtUJxNx0ctjFMc1j8kPtjOseyjSsfpjrIaog90eZjB0cpjuCiujlsZRjZ0ZH9lHoxj1UYQVENFNjYlh5Gm0atj1QoljXBIFq10Y1jbMYYsScb8jQcbpjw0fLNrZqRjfkcdjqcdwU7j0ejbsb1jHscuVcQY4j2MbFYvNvD9fltjjcUYmDucYyjBUcmjxytfuJcbmjrkdjAZ5Iej+cZlj3kcwJIhs7jUMdvdBsfDjf1rRQ8ToajdcekIzUa2j8cZUFyBJYDyccKj15LhB/UacjuscU55oc2k40YLjssdS0e8ZHjqMZDj63qqjHNqNj2MdlQUccfVFsZajvbttjXsZsJq8bbjXZpfjGccVjZcezjQvoYsUptfjoMcGB/8c/j28evJPMdfN6EZD9frCFjZsZjjv0cbjqTsTj4MfVja8d6jqWnTjrsa7j0MeQJxcYdjA8aKjY5rzjmCdHj4CfiD9BvQN3rBgTXSrjqMojFjj8Yht2oY7jeCZTjh8azoTCeITp8cjDP3rTDk1rhjLCcHjd0eHjgca/jO8f1jF8cWjlLpssaKBG9QwchNjFkNk8CeJjbUeY1K8eYTqCdWBqiY4Twca4TF0efjRCZQTb8bxZx8eEToCYBDKYdDjlcb0jOgbRQuMY9DEUlFjcca/ZCceY1H8b4T6ieOVrieNhpiYUd+LL7jbicMTQCd4TXidLjoifLj31rhDVidqjfLCoTS1NdGDcaUTzibk1vwIATfsbcwySZATISbATysbk18rhSTTsYANecYGjmSbMTMQaFV48cvjCCu5YMSa+pNCdijCSaXj4PJotXUfwT68bvNTSa3jxSbZ97FryThcbcw3SYyTWCbHj4ib5jS0akTHLGqTaZnth8SfFjDSa3NIIdbjgCbvN8yf8jnSe7jTll+D/cf4TBCczow2jgqRScGTpCarjlmt5QEyZrMHLlFewPKg0TccSB2kP2jB8YET6ybJjAyZIT2ScSBRCn3jLSbQT2QPeTJ8e0T5ifPjYcYqTk8edYpyfXMHGtoTjieo1yiaSTyCd9j+SZRp6Sa0TWcbRjI0eF9uSbUTASbaT+iZWTBybETgKYkTSvtH1UaFvjNSYtjRMZmTO0a3NNFv8TiyZ2T1KeCTuKbCTGLP6TNKdST2QJZTDKZeTTKZ6DE8f4te6qwjbbqh0cScUTFKZtjDCaogQYnljBidpTNiqlTOKa5TP8ZgDjybgqrKfhTQeuxTmcfdjiqfUD+KZGTkiZHpp9FrjM4cFduALoT/0ayDjydu6qqd6T2QNuTnMdWT2CfB5PyYxTMqZRpzqaRTWqZRTsQYbdkSZD9XqAFTwwbvlwqctjCCcthGLPp20sa2TrSZ2TEaZMTDqb3DEqYBUPsfuT2yd5lGqZETWSe5T6sLITUBqz1TfCNTKWtNMDidDTJMZ7jQOsjT7ia7N5abjTjKe1TdgdmB2KZTT0aYYsvih9jmqe/jXqbKTwyc29+qdyMnKFWjJULkTObPnjkKetd0KZpV1aeaTUaa+TMck6jHSdrTnaaVTDab2TCybZTeChXT8qc4T/yfRjlief9t+qZQAabkTm2hHTJafHT2ocJpdyc+TqwIvTvyeRTZ8fMdNKpMNHyenTqwKfTt6c9T96bGN5SYJTD4eWj77ALTNOqSBCib8jp6cSTiQNjTU6crTcPIgz86YVTi6aVtiacKTq6bVT2QKTT76Y7Tn6e9TP1qXd/FswjAGfuDE5JPT9ScpTWmoquPSdYTU+hbjm6b+TpSaXTgihKjyGZtTa9nGj7adCTdaf8136b1ThKb/Tglo9Dx6YhToGdmTXBJvTLqbXTImY9TGGZ0TD6f3DQSbhTNqYUBfic5TW6dozOqd3TOGbCjMibWjgqaysqPxFT9CYxZZGdEzKGcozfzKUzNGYJVv8d4DsmabTXyeYz9qYXTmGa7TuqZ7T3GZss42E0zg6fD9TgtRFQrMyDT8eggIFiedYei4BJPtq9WOWEhGfTWTYWdmZqYM8hMjqytTzo499QZUz9aboQCWYizcWewd6WaL1DsPi57GZ4tzod9T/QYuB7oe0zupPtUxEbXN+EdehZnJspq3m3+tWehtpnSUBKwcazRTuazgEeOD6OoPcN1DPaxwpWD3WaazfWbOJ2/0Gzw0HyZN4fdpRycfDy+tKzgaeEV46mIjroUu1w3lehjHgPc4fRkBl/rzsPWevUyWYszdGZrQ62ehtkWeltDnhkGPolOzCaZFh52d2zV2Yop0Ug2z8JP6zeKamzQfqvjyvsXNRpiMj9wd8T5/2I1hblI117qhVvGvYNxytMUszMMUYOcdTK7LWBkOeSpxiTxZEOa8MFRn2z0WoQzPceRzHVNrSGduBz95mxz6UNez/dLvDkCddD08dG9v7qxA6OXHR+skYZS4bm9vojXRTsOOaGFU4ZkQIgauCqbU22LYz8GdSzf7ueqHOc1dLOc2DE3sPDvSVuAFpoP9vOYZjtXq3DP/glz3OebTzwEAtTOYVzrOcOTRWeuD/6bMtZWeI8OCBkGRitLS1yecdHKhDKVoYG8d/ptTHFPvAqCbogBIAtzM/vB91DrNzw4ZGyHOutzjZR6jduZ8yBtSGTt4ZdDn2efDgdV/dllJh0lBvt9W7X+jOvrNNxmumDcFNLBjwbFz58VlJP0nB9axsS2/vPjz/DsTzPmwXAhGnaJryfzBOef95+edLBsefkZpecmzxOYDzj4dK4c2chNoeYtqxvJHSK2bj9+YPLz/bK+T6eYRy/vOHTOjuLzRPr7z2eZhVuecXAr3LTzA+ZrKY+dkta4O3A0wafTeYfG88oZf9suHwz7btYM15UflzbIpywkfbztfCd5mDptT6ebnDJyjAduBInzpSjBdB+ZOxCecvzhsSGUVGo/TUmdRT9nrvz/vJ0tbQZfBMgwfzjGqrz44fezLVKDw04ZS1llLTBI/04y+BtQj8no7zC4B92n+e7zSeaJda/xvzUWcY9I+f95cBc2DCBdHzUogLzWabNNk+Y09uBbLzc+fkZxBb/zUBZrzcMLZ5OufmzNZlIecjMRVamiUZ9OYC1Gmh06SqjqDMUgZZGzjz5YYZ504VsLzEqfYLK10RVTBVaNw6GDEfBazV2eSRt26a/TiGndJABb+tzRGALNOq+kRwuii+MuT+fhhzJLLo7q0oZFDDYAJDgGCe0oGK0LfIOlDE7tP2YpppDJhaDMNhac8SQKHKzIeuzEXvwMnWDsLBnoPE7Bj5DTIdLN+BZ6NxDN8LooZILHhaNZLhd+Vi+btRtuoPFHWoaIahfuD9pJlEd1OzJBhBA9u7mKDXhaudimCwQpIf8LymYOzGOZCNuRc5DtIduJJHlKLxdtve0obkLKWZlz18kexeRdCLNbqaLY6HEUBRfMz6Ob5zQZgpczReMLqnqlEze2qLkRbds0Ret8y+dv18gjf9lObCpY6BNTu+YMg/Ok8LwDksNyxd+jv/yEL0EAxUJigv+FRZ2Llsc2LgRYuD1Ht/TUiYgoJKb9Jfc3mLOsgBzq2fEN2hryLqxYqLjxY2LaOZRtDRcUddvub4exe2NiRjeL4xbQj5CesTdee+zdwYT1U4HfD0XpIKmIYBjz4NxUelxtKoXrFtn+YphIaScuyJcPzT+fkLOcfj9Uwl7mr9IDDswcnAJEOoWw4XTpTLLvTz+awzlBc1zFkOBgQeZ+zCet3E1xdBzP3yhTpJjbzq/wc8HFoL53L0uhPJeYtgwFJuqBav+/Uctkg2T+dMsPFLCYBzMlAaKLwUcKze6eq1B6frzdcbvqSqlkerea+d9qmmhSanSo+gzZTSEB/GRLNtVBlg/yhRe6LnxZ9EPmPtz342ND8mZfq0KvNLDmepLTmbezkxer9d2rBLr4eVVO2VbUFaqjzgOdhzJhqKWBqCXAXKqn0Iox/ADnha54PqjLYZbWgRU1fTA3h6VhyuTLFBecarIs9LrSpn4Mxd1zSAv6MTvNrS2vpiLKzKIUjTvbZ+cNx1mqqrL/kyxdFZd6ZaeCIUk0uKj1C2bLOsneLydorjAkCULOZYr1tJESLZsbK8gylYMLWuqMehYrNL5UNiJSnqzsrPFG34NnLPiYeohjwVZtqrnLd0ZXL34LH0JafNDW5fvzbVuJL/samU25cPLgQYVLHGaVL6me3l20AijzAPBLvShY9JqsWLsYFwsrmhlAnLkGTbZfV5DQkNLXRY+LnsdfLEUiVVkFloaRpeArP5ftLhiY1zypdaVfUA8zeMYT1xjtdC5PqSyxubrB6VDXRysi+TODtrDmafyzkEbjAjYhOx5PqVzaWfzZE3D41opbpJj+a6upylbLyUMwr6nmwrFIeIra6KXL+xYU6zFY41gJbejpOcs16HHzLdBaB8qyCKW+LPTarBeYZtwFg6DnIPEPAGvF8WYYgwXJhJcxGOy0QYvLgFdOAyVMFmslYhaZpjpDKqmUrSYcBWeWelzBWf9zdJeWjpHCHLXykI084YVJn7JIlpgfUhCpODe0UVzselYUryUNcrYvwtMvibCtalZ0dtILxmTng8r/ltCzRAGCrvlYoe/ldUrplcczcvo9L15ft18WBsrMhmSp8tWtVjleojFkf0LvxCstdxnCr/roUaVlpUrJlcOJaeev6BVbkr+lf4dVVZ3QZVbEjLlszLS+eSrxBpgNPpYLLdpIFqG+szKh7iS6L5evADQ2C5hVfkrEVbaN7fyMrjqnKrTlbTzfJSMRw0FGrtVe2N81bH8sVZmrOVb9zSVdCjt+oiwaVaOCtVJfd+6Ua9nJfk9vbmirv3zCrY1dLB51eSR61aargVtFLdDIurzvyury1c4ZCNper9j3urgVZar2vn7L3+pPS+1eI8jwb5hfVYvyIgqusXJegg2kJkri1ZqrXlbkNsNamrAVfirbpcOzHFOH61Vc8r41cxrOleGgjVd+rMOYX5tAYr1viCDzyoZS11fLBrFD0EksJZUMTOvT9MluYtVEdYTfSn96u5totTGPPLVpc0r4slYMIFoW96IsRjHNYhqm/zwLBFfCTIQsuDWMdidd5YJBxqd8BMol8zvioZrNyelkgYjvsTtrvNvikXybtuwmARYIrlLMatgYnTtymqfuptd8BKDq3NJtY7tSn02DE5L1r1dsNrZlbbAGLNtr1Rf9tymo9rzhc4mdVspZFtfztmbsdrltei21ta01gdajtLds/zIdY7tDdrudxtY1rdtdXLTGZ9rWtZ5rAFbdrrwv4ro+u9La/IbzCqgeMq3NSmUAtchZ+KKpvmZHWJBZImFda7JKsnFdz4FrrGDT2GCbtaeslcnJSluOLnQtJr3+ry13wvG9XIDwDdxeOZ8YG6judGCrBoayz1GfFzIkO0jgRakrE0dzodesnrchtpBGad28R3uoQdRY0rPZZUZsFYr1nKHlrixkhNQYkPGvSo7ZMlVLriQMt1fuKlUq6qF6bKaDEgaxpZqDL2gTl0tLmdfx9tIK1RyqnbyD9eMz39aTUwVfJxH9e7LUtdGMPdaz1d7H7rdcfG06zXxzQgvlZTidEFKasSaE5o8a4Ic6BITrog7nTAKXFr3LJ5ZnLyJowbM+dFBhDe5ZuDfBWndclrWApczZxZHpMtmyZjUddV9SuIzn9KF1aVNF1Gnh4ASDF0hdPSl13Ddh2WLs4bENVdAyRS5VhhOtW1lTWwALmhK4xbtdcRfQN7nBgbH/o0L7no886GW+kmNOv5MYP5003whqr2gey5xqbUXKi8VxWK7LcnpcrxBjRyCgsacH/0/BCpLwqa81PS1Mwsb1Pp/5WgYQV43BUbIBdIpQowb1JAy1DWXpx5ewxOJWzRILQYxVkYTcvraebGj0pR514tXNh41fNN1mVZ1iTZazROb3rbVYPrgHCYb9fs3l0JZ6lxzKuhh5xgBnwbU0pDZrQO5EVs6/pfqrJRKTO9ZFtBqne+afrBDlTeabng2hD9TfkbVBakTmlB8bKQYiOWOIb11K03VmAvop+QMUt3hKTTfXIJhzNfWJVw2adkzavNYTa+Tm/0FrDxLhNbEYgbMtY+zudaPrRRhHtUojSJVWaCbGgLq68zbsJJ2JetSoCmbphPEu4etFLo9o2b0fI92WFIzMKzYWYT2glrrtfAbgItOLstdzr9UYVrKWrprZkCKb5rIuba80bUXofF51Fo+bnNZhb1zeadV4ofNphM/y7zYW2iLY2c0RdQNwJdqj+hlINXVYcJdRxoRqnkhrpeoAt09b/O3yg/tYFpszAtnAdvzchbrGcUysYNe52AKe0nya814+cybu/MNjJloprv7s2MNC21tGeRWzUDoFz7rlAsMlsVVorxA1UzeadseUXRJ1gVt7TuVb0RKA1+luJr0Av3rgNditr4YVUNundcUvTklOjd/ZGZmlbaraOJxWO1tuxWobzLfB5djatbutoiD1Mztbirb+r6RliVrmZHp5OePr4ftlQH7SwQPomPyx7pO9zmrbUlze4dcEZYNN3gEa3hJjbSrajba8x9E3Gmx5bBk5rabdT12zf+bvKbCjA6cprKQd3cyJdVrNRnQD2huU2XTa4tsNvFGGxnKbsrdFLO7uQZufqbU3TcL9Z9PV2Jfq+DPzYSrqmZ9Teragblxf1ZdbeYtR93QrZALnhM/1MQD3UxTegKnbb/weo4K1dLOJcszEgIaCQpdnbrqfXb5/XIBy7bgzfbcVLkVuybgNd29VNYOR2egPc8RD6WrhfNbe+eU6IbcWVXSy7zN5hh0slebrsPNyjtYA85T7frrvxu/bj7br6Lda9bCjbulOgYmgXbAGbv2ds5ymySBP7wjbj6dJcpjeSt93IPNTkZsbKHd5b89cQ7DxXmbe3IcVDLPQ7WbcacDitzb3rZ/TgLaosEHe4jjgKijuXuhtDoDObVMdzS1ZIEjdnK+TfSgQhj8tDbCZU/bWxcZjUKLY75Uw47IQGqkPHa/6vbfRr/baybuzYXVBkag7ZsZRdIbaA1/fPDtm0ncaENQUzgPrujqokMyBgMZ9bhdwU6nYJeyVon2n1rIjspT07w0CIUWAbhbIHemzVHdoYt8uYbouRlETIHpr5bbqhG2IJ1SQOHK7ozkJVfO87j8pyBuHck8bjZX9dUPZeRrL87PUfGrjagD0IXe+O4XPs7llZsswMANbxLed1SeXnOmjeiRQZeGMcmseD/BdZbtmaK7grLkz2JfqLfNfVT+0VpZJXcd9pSn4LNmZ6byhYVDk+AU7qDjwsHSOStamWbaErYxZJEIiwPUf072nacs8wuzKknhG76ld5rhFdPrQ3eO51ndCNcjMN9tuQm7z3KW7n1rI7oHdkV1QN8QBzeNM43rcdvdRfhyqhq+M/rvbSxfPJnNfogwendz8RCWaeoZwQKnSerF9eu7PKgR2axdJF8zZn5H3ZS7ANdG1beuc7gbdtASuVbU/HVLLBXcSBdNNB7mGxc+fLOh7YuzwbDrcPbnxckLZl17NJDb5ZsZdB7VZ3wbfLelrALb2bVHZ5teTY/95IJvtqDJ4bTHYw9X3ecbr9eCGn3blKb3dpBDPZe7tPb1DsEAF0jPbxmBjemV/VnC7lTvn1snb+tviA8zYmo/96BIH6MEeWWMUla1HhKlE69dWb8LYZbmzYabM3ZFtcphK7vRPqq7zZV7jah17W3d6bgVl8Qv+qLb9wapzoOR/82kOPS+XZHr0lc+broBVun+fjAJXYvJIv1NRT1ft7nNfqVznsUrrvc1d7NRa7g7Zj1viAy7wlfgjrYALo3Jln14zapTxlUFAMBn6smJWMz8INtQg/v0y0Ff47CKelkafZRcGyy/Ld5pseufeHxz7VAbljezr+Ld27s2dJ7J2u547Xghb4PMpI/Ax5pI/xu4NbcL7vJ2lD8jLFahQzL77ja018wWlDaeCKe7jVszg/azqV0MlmK7aq7u9dpL/3ZD7P3M6r4ffFkRQcldO+ckrdUPFUEdW06JykcyZFIeTK/Zim0pTC75Okp26uaz7KmimEjZR37w/eZGrOar5lJHkQiYvkZs3XP7XdePbO1eq1X2fzrgbcw2Y9nsZrsuHrBmfPeB5e457fZ2Tl4jf5TvIw+fHew7IQcP006jH006XAHTlgQHp8B3L3qVgHNDYr7uaZD7R+p/7M4bppXbbzz/DVbt0Isb7EBXkASA+wKifJ4LlA+gHmA8k7q7cOz2VkJyJA+QHtA6xTbA4wHrrcN7rXffN20ELbv7qvU/YhxMBzWp7SyBIh/kDFrrwEwb/NdzSKGUk8CfdkHTA5n7MMdTldUxGtGLdh1Cg//rtNeqCGLb4HwffA7ZyGP5J9dpByzUxLpnqvrIQc8VzZ3T7JmW3b2QLsHCfbz7Q+T77EXZCDdxhFWkIoz7Tg4dte81cH/keT7VJeYH0nf5bc5t9bGjPmYHXawNYoGIwKIDRyEg+yBQR1NmJynG0uxVszqQ9AHduQzGopan0hLQLZeek4HEA7FtTvNyHWA8dbHjboblHbS7HVYIHhaaZjFgYPtf1Iu7PcZvM3+YyH5ZRnTHQ4rzA9zyHOrbUF2hvZLhetOUxQ5nTww6bLJA4qHqg8abtDZzrVHdBLDQ5p1nodNmrmhXuEPbU7FudQTDofb+GieQgvfZND9uZl92A9hztINvaPUffL04H2Hp92f70Krnrpw9ejRveiHNHYpzmXcaL9mV7N0HQ37+YN8grDyUHLYlcbxVfvyvPbsbAvdTDdYL+HhVyJZa0CMbrRZBHoPfMbQfcgbIff6bNffUL+XN96FRKcbZrdj7MeZCb0Lahs3hcibaTaQ7OjriboTYqJ1g6JNCg6ibVI4E9+PZ2bArZF7EfNiHx1gSAnqWLrDfaF1yy16rHnhOVfMxKHsal5HUXuq5nRUqHKPeq7GNH0sZ1gFHz7fyNs7QskldeA7OrY2970eq1bofRH+MbvGNNc8MHdqvNtvZWZtQCjSThaQ8hmXpNgBQUyWhalEmrUz7cA+FNuimqkkhbBmjbfxdjo5lENo+3moMaMHJ7dG1hLeWH+MZqytpQlkUkGSHpfJ51co1dbD/fFGZkFqaePftHr5dgOfOvBbxvTkHyRpNKyY6pHgdWR7UnaPbZ1OMHCWpoLAY+ZL+u1B8T93UbinLaH6YH8ERIFBDPbcuhNY7gJbbfjHjw8mDk71rHDbbTHVTZNKRIGrbOY7CHeY7lDKI/A76oK1HEJZucPYFP9zektzHJZQbm3Kc9QQ7abHMIXHfwfbbgw4KdDAkXH9Y8L9zjwLodTZbHVQ5JrwvYVDKHrHHFDm0GVlpqyQUpKV7DYbZ/6W5eFEcdeGbc5cmnafHTzfvHeHZ8yfOufHCbeIjJsOS7qo+7rx44EHJBuLHsFNty/tSuh8WUgLAtPSt4ijublFdorqaffAgA/mbHvt/z6452J8E8+bV0LIrEfqsqaE55GyI+AnN5dMtYE+J0sPdeODjNaO1sbSt6AfEUEbQhqpylZy+7vmZN6gLZLE6z9DE5/hTvOHqrE9Fy7E5IHfE+InhPYXV/rcOb4ft2JK13kZtwC0es49gV8Je4nmg5IHuSn4navV8yB+aWhXE8dtyk9lJxHWXHAk40nC4DnjhOff7+Y+HHCWv27ZvYhLDIzCDeKk2HYIKO9WM10nDE8JdXyYADX4DXmAHMFqUuclHhFacnjE9rQu4g7WBk/UnXk5XUE6REnkQ/obGjOBbAbZnDpigarjOfDb5A7I5GEmkb8NdhbGtqA5tiq4budiynUznB9jpOXbFEYVJlTd4ctvU07ZU6inPrZinFmlVgZ7cAz046xxtKplkyQ94cgZTw7mqq2zn9uHqqCZ3Q3U4ybCY9MkTIELRyVq7KNrdWa9J3W7E059Hn/d3VjU4IzRrdtQ1lp0LVY7jb5/UIjJU+x5m0+TNe4zV7n9YxZKLmL97lrwbXY/TMrNcs6jFldO/Y7UHtDfVHjatN7wreh+FkilEuIaiLCHdEJvjNOn2083tfceuns7YOnYDdftt3S2nYM3KnjuSikN06Bn5feqHaXN7T9U6Fb7w88AQ1iSn/XfhLDOO9St0MW7bxFdR2KnrDbJXMKyVo6KnuSz99PgTbCRSGBe0Hnd5MOTE1M9Pgq3LYscZcZHebYBA8M6iH9U6VDv7txUUJfxZ6M7Sd/SkARu3NE7n2S5VR3oFmw1wGnf5Nq5mE7RtT2n8GKAuJn9JT1dG0JwQys+xnd3IVnHkG3r6vfunCw/OLXM+RnN4ENkmHNveJpbHTeI6VdHhQJ1ysjebn4Pt7Ns+54bzbTzXLeetBbJIAn/P4dDs63zC9M9nss57jDnn8mCDc17+7CW9wom69RgohHwvviIXAbDnbUIjnxEEF7QE9EnKhdAnN1JHtIsZBVq3U+nehPiBrmjI0R5bcwk0LvrIw8q7O9ZXtec940cHU/zs/2gwd6g6Co4cC9Fc6ws+c8tHszbrnnYFZ7EEebnpHCrnbk7Wblc7YFebtzH3tombS4Hrngs5rnXTInnQbuXt8ROnnnc4YrwDvHngUGTdrtZ7n6/3ogXc8mnvc5LnVQe7n8w8r7tyqvIhs+X7UEezSGzPDeDk4oHE+32y9vsumMda40IRXQHyVNnpoQ7unN85XeVA+lUEhafn0ZeMnaaRqnFHaJ7Bs6RnZ858UXYHkAhhONOn1vWnqWkTBaZacJh93M7hCebBCDYlku6027F/YgXt1p5phhMwXUkd5NIsbdnFRIIXjzcAnH/ZTn/FsAowNYbs3mq/JmnjLbkPZkz4WRBzdhNs72U67NjTk8pqStXSy3dFL+U4L12znubHC6mcFnc1abC74XWC7MnQ45InjCrsEQPY/95Kj1DMoGSHAfKERQU8zhrlrdAGi+8Dw84HHnxaW5ui8QnmbqMXt9YUZviKz9JhuMXFi8Ln1EBxu0HL305+ewX6i/MXgru0XWOWg57i6bb1i7cXRro7bOi78XqBKsXgS68X+ClRLZvpOUxDOcXMi5k7VC4EHYfZHt2kLwDhpNvH6VvyJxvo5bJTuHE5Kiw7rY/QD4qnJ0OvfJhvVCKXsw91n8JfMyOweDMhFSaGxhIbOsSzwDVo98nI86lHQSnYht/YaXFhXqXOuUaXlFdEXMM/776VqqX0HI0WkRzZT7S/8DizabbIy/X9dxmOaLbYP7LoFmXk/qB1Wftw24y6AD2FLsXhimaXk/u2XGdeBn8JY2XxdQSKLJZIDWKoZtCHJoeMS/yXoRKuXO2huXNc4eXcnJZFzYZpt3/oOXmwd2XRNvZdIvyAXXGbqnZPKenRs8Kp2tqY2yQ6DMVWZ3QiJsGNSGm7N5S8zrxzKhXNASxsxS+ShB3sNiCK/DrVs+hXWOtQ7KYLHLaRIJXc84rdeK66kR+mKr5K9pBeS/XnKzNtkxK6yX8kPvHhsS7VtK78nxzNK18OvRXULuWJNK8RX3Zc5XdfaOrC+1x15wBhXrowFXojr7pcS/zb28ovwQg+RnyoriaISlrrjNT5Hj1dSn7Ufu76OWIjErX4hiMfKmB/VwjQZxxXWZtWauq5qkO9wNXhCaNXVlu0hB6WTDM/c5XOq+NX1B17msdrtXxEeXSnbKNrKzNdX9q+tXsbcB1Fq+NX8RFNXCdZwTgBUtXMch8Owa7YT0a7DX7C19XdK91Nia6st7q5tXd0YyyMa9WQhi1vUZq7qhAa+9XBE3jXb5aNReq4jXB85wH9rprlrfDMHgbfU7B7hVtcFm5HwmaUr+0VwjVZsWBWYeNyca35HCA9bXha/PTHa6KpIQCtddnYPNIXRHhNZVW5E684X/tcIJo6+Ijy5RQXOyenX/a/PiaWk2tPa8jXVqu0NUdjHXKqmet16eXXVq72aw6+ELpXRnXflfHXJ6+U1G69VXUs4vXe663Nj6/crmvXvXU6+vXm66JdlkipaQ079X+67PX266/XSOZA3g6+kXQG90jBY84ji/YysiFYz02Wh67gfNOra2cMBesjPJiBaYArRqoVCwYJr2IDKD8K9QpN7oezVrIikJ7oQpvlpI3KU5+hTNrqp2G5J1XrYV9D04r1mOGHbO4gPtyVv5utG+/DjMOqd1G+GJP0IE3IVstkiNpPdkAYY3l0Mk3BG8adMoZcXIm9QkDnmk3z7qw3vFYc7bmZc4a+cV0dxnkrY/j6UgmRgn0eccN0hDSJf1JkdlJDM34I+4TBkEs3WOvM32Drs3VaranT1dM39m/dzbm+c3N7rI7LG/1nDDfEnnmaUXFWYWYR7tvbaG8ZhzelVtWxh2Hl0Mi34K+tbKwfZV4tui3lw8uhSW81bOttdHW1erzqXYNTfksQ3geiKD9YDRKzlfENtINwCIeoaC2rc4Z5W4DJJkqzuWW6dzbFcQhNhGzHOFea3Y/iDMDW4lHrS9n7+Ydg3tysMIQRA43sah5LHALws6VItT4skeDTo7f6lfN5N9XNm3DEF/XTG/9nAnbeIMonb6K2/AjV3pEhS26MGU+qxdM25lEc27i7i2823ouW233ANyj0Ok9SkhbSycXelUTo7vkWmSO3ulwskN5le3kpve3t8gnK12+wX0fLm6BgNdScXdu3Ync+3/2+Gn4sie3F24e3uOph3wO6+32Cd884AGgAcAEygKUHSgy0GhEBIk6A2O5tki5Us6bIk6ATEiV0N0pioy0Hx3vKq4q/owSK+IiwAy0EVpvoEsWBICBEt7nWAmUAgAn1CwA0IgUAyAFAATpHlpFJNQjOKEUcou/xKV0oUAy7mhEgu+O8uwCKUMPSLqpnSLqNGNqyau/V3tWR12S5Ql3MH3F3/Pk4KvcwN3Cu6+2Ru6V3hu7Iaxu/N3yu6g2FGI13du9oKuu+13aWV13cZWr+t5m487u/5u89U93ieQ93NIx9Zpu8D3vr1t39u/V3FWKD31u+D3pIr93bu9FOi6RtMJr193Xu7Ci4u+d3Yu6a2oe413WpUd3Oe9rWZu8t3xu9hKWu9z3Ou+cWtJQL3+e6y2Vu+r3Cu69xJe+d3k8A6Awu7LAnoFb3be/b3noCBEY7hl3kux93fe8we4ckz3Ye4/Spe9H3iu313iu4j3G6QT3se+r+tBRr3le5t3ediH3tWXwK6e/r3HpQG8k++33llRn3Me5j3jfln3+++gWIe5X3h++P3Se9jq/e9n3Ju533Vu8mSqe8f3Ge5X3RSxaqG++130+6T3X+7QGuKHvlae7H3tqHL3i+8n32GUT31+8TRTu6f3xDBRoze/mqHe/gPAwCBEq2n53IAFl30PicjF+/d3i+wD3d+4V3Jk2LoPpWAPke6QwlGSgP6e50qsN3/3VB8331B8gPfce0xe+8YPyeBgPbUKP3e++IAQImBMKB7QP6CUREmB4GU2B/H0Ee/N3+B8Lqwh7wPPnmMArB/4P4wCBErAB73NGyIP9++r8TB+v3+21wPSu40K6++0PrX3P3qh5Nep8IAPkB7jKZB9H3+BS/3ah5YPegqMPLu6BEzKm4PkuwsPYB8j6ryOv3Hu+BRTh7d3G8VMP/+8kP4IFp0Oh//3TfKEAsHgcPih7YPl+4cqFe6D36h8j3cR+93zh9n3eh88PCwooONh7F3Jh7oPJe4SPER9vMyR7cPJ+95USh4V3+R8SPqR5fq6R90PVh7LAgR8f3iB56gCh7l3Uyh8PL7zSPtB5d3xe9qP2u60PlR8V2v8CtKvR8APFR/aPGR8fSgx8ZRXR/TGw2xkP3HiMqWR50PsR4X3BjRqq+h7d3nR8qPD+/mPEu78PuoAKAKR5n3QIiCwYR6aP0R+33/xUmPheO7KuR4H3nxQuPtOL+37+5pKO5Bk2CB473WpQKPieSt8Sx8V3bSI0PBu6QiLR6Ox16leP7e4BPWx7SyYh7+PSLV6zpx+V3MAWuPrGUIyIJ7ePphVhP5u4YygJ4oPqx4P3g5TKPM+933dx76PH6WKPRdVXqlB5aPru5f3r+/b2Hx7yPBoRJPyx4nqDJ7DKCJ/KPfB+xP9RyZA7+4kmqdWZPe6UBPPJ8iKyJ7b3pR7YPg6KhP4uQMqcR+UPLVVpP/u+X3L+6L3xJ/EPpJ9hKdx5YCUh4NA+x8TyQIlDgxx/QPRR5VPszNuPlR/HKgx4123J8uPVpT5PuVWFPre+wy0p4L3tp7tPcZRdPIxTyt4J53haEW+PcJ9dKjp/z3YJ/f3QRXGPgZ66P8J5mPnJ++kaJ8Wxhp6hPLx7tPOR5kPDp59Pgh8tPuh/pPRp4rqwx4pP6x5GPu++1PdJ8/K0Z5V3qJ+ZPOx9gPyEDxPOp4AQjR4NPAp7L3TAirPhZ4lCrJ+gWzx+7SVJ5/36p+TP0Z7VPpp/jPwp6VPBURTPMZ4LP8p/NPvx/9P/x5SSgJ82P7+6+PxZ9yqmJ512xZ+NP2Z89PbyzzPEJ5UPhJ+4Y1R8bPCJ6BEtMH1PvB6nPPx+VK3Z/pPrZ/GqaZ7M6np+6Pfp5HPop+P3sdS3PXp+bSVJ+dPdp57PxR6/Pwp4HPyJ6XP95/s2Z599PbmKfPM5/vPwZ7fPm59nPl/mvPC55JPUR7LPa5TdPiZ9WPP5/EPPR5gvQ6U7P2F5zPV54jP29THP9ZXrPllRHPRdXLPex7lPhACBEFMBPPlGTQv9fgovAF5BP+F43P/R5wPZ5/+KBZ/s2ZF+DKEZ4b2tjQLPAl45P6eH3PlZ8PPQgDZgDF/l3zJ77PeZ7xWYl/OP/Z/j32p6MqaZ76PEl5IvQIiZgsl+BPCZ4vPql/PS4x4Uvph+mPYl5/3uF8/PiRRovz58YPg6OUvuZ9MPQF8ePzl62P4Z45PhGSbPBh+QvmZ8WPsJ/Qvnh8/3Hx40vu57jKEp9TP4V9Yvrx6Cvah+9Pi59LP/l8gvQZ/gvRF9DPRh+gvBF+HPiV/Av0Z5ivCB9cvXR/s2kV4mxbp9d3gl6Mq5V4CvRB6KvRh/s2Pl8RP96NAv4SMb2958FPf+5zP2l5ovQIgRg+l+ZPBJ5DPI+5gv7F433EV5avE2OUv8p7fP9B7kvyV5yvSF8v8mZ+NKE59TqQ144ScF+0xkV8QvKp/ePjV4Kv8B6HPAXlKvZl62PFl/Uvp15L3122WvR14wPXl72vCJ/cv2R5qq21/dS7V4bPDx+Kv9l8iPrpUavt+9AvWV44val9CvkJ+4vmF9wPoN++P7JSYvPpXWvQ3gov96L+vGV9oPdV9oP1qCb31F8avQIhhg+l9bPz6I9Pbl4zPEp7/PyJ++vnu9jqE18j2718sqgl/5P1N8nPKZ7Jvvl9sv+16JvAN+VKIV6rPXZ+Mvx14mvl150Ps5Rhv7Z4Wvu15Zvj15SvYZ5evLV+RvT+7aRTl4Svi14j8LF9QvLp5JvIJ/Bvjp9RvT+/s2eN6qvy57ZvPp+avEF7O2158RvCJ+NK/F95PmZ7pvaZ88v+x+8vpt6SvcZ4NvgV5UPJF85vER7CvcN8R5I59GvtR9dPMN5pPrN5FvGh78vzt42vUF7SvXl5lvdB8hvpx/YyCN9+v5t4OvKJ7yvxR41vNe61vdB/Rvmp5SRPV6EAo2H0vlt5cKnZ5Tv7e+DKpd4Ogquxovft4APnmxtPRl8UvMd8d3td+oP0nlzvkBhavQIguw+l9pvYd7PPzd/T3cV8SPGJ+Avrd7qPoB/Nv49+MPHt4v3Gl/dvLt9qvphWpvTN6avS14lPT150PgN7Gvm97MPAdWAvq97ZPtN5qvEe+z3dx9nvTB6svuJ6nvjd/Mvo98eP/N9H3Zp5mvt1448tJ4evSZ+qPHqhhE+l5Ovj5/yvCt9Fvw7SRvEt8yva15wvXOLEvE2N1vCJSgfdt4KPhGVWvTJ/mv8N9yvQd/FvjJU2v6553vhF45PXt4gfJt4jP3N6bvg5T5vt97OvZd9b3/xR2vod7FvSZ9AfKN6lvjN4Yfst5T3955of/p7Vvrx8ofl6Szvju5KvZD7Tv4h8PvGhx9v+V6/vZ+hAA5uH6vjt6EfuB4zvTp//v6d6rvMJ8Vv2D/9vIj+3q0V9wf9t8fvQR44fC+70f4u41P/h61PaZ6BEFOBkfRD+nvHR50fBR+Ifd9+GvLR6Mf2u9nKm1+FvqD7UfpLnPvLD9jvKx4LPsD+1PZV/1v6JSCf2940fvj5bv699AvBj4r3DlRXva5SwfGteDvAx7fPNj9GPdj7xP+D66vGN7n0QVlrPp55fvHN5Vvhl5NPJD6uPMh6Bqt54vv3+9fvA17PvlR80fct4Cfb19tv+98Jvn5Xpv4D+yvLZ6IvMAWWvJ95338T7TPNT593897sv198qf6T/TPmD7HvO5+9vzR8jvdBwmfoT/fvTt4HvkD5Ev3T6Bvsz4fv2z53vEj/IhjdF/vgj7Ef6d8yfYp6Nv4j9rgd190f8z4IfvT/uv5D6uvsT8r3Lj6mPVF4NAy144PJFAKfjz7ufbR56ftz4Qf7z75xEl/CvQIkxMVj7wf0z6JPhD5hfzz4FvnF/ZP+x6MqpV8CfHx4mx6L5Ufb96rPk1+0fqz7xfoL5UIhz/VPQImyQ0L9RfsL833jV5ayxL5cww6zgf9z6BfXYDEvfD/IPyL8EvVx2qfFz+P3RlWivhz6BEhhD+fepRvvZT8cfFT9WPllU7P9ZXCvwz58fhW0svw96SPvL4cv1L5MPq57JPml73PuT6R8gJ6BE4REpfIL+ZfOz/+fxr/FfFD9Ifvt+r8Mr6TWGx8RfT97tfeZ/Vfnz63AFF8OASuBFfUZ68f2r7jKtL8KPvr6afDr/0fEl9pvQIgLI+l81f9L/vvkt4tfLz8AftD8+KGL6JfiRRGfXOOJvzF+LPCJQzfLhUqvyb4iPE2LIvrz9N3yr5xPuz9jf6j7rv4e6hPLr47PL++9K6D/of8L6pfy97TfnT8tPol/Uvu97T3S8WVvzb/sfDT7zP1l5X37O1/3Qh5rfwb+Mfrr+WWpp6BEdWCNfWT9rf/b8Xfk79cf+b4v3+L4WfXL+jfpL9nfQgDfwXr66flb7bv676YP8jTHflN9LfM+4Uf+e/gfeJ8Iyu5/6fG9+BvVZ6ffMT5xfUb5NfOD4/PI79LKU1/rK/r6MqRb9afFx87foV+7fou97fWb9VfSe7mPbb862VJ9Hf1b7PP0b8SfSz5nf5T88fQD48fwl8xfg79MP2b/ZvSt+g/kJRzfJSMsvp76/3hb4SfId84fbt5WfpB6Wfx74nvyp4nfgL44vu78UvQImeQC77YP2T9NfwL5Xfcb6RfaH9Svwn8dfCb7o/Sb8ifQ97ofGF82feH6YfaJ8o/Pu4mxlN8HvEu/ZfEu5Avid7kfjp5jfYD+Afyd5g/nu7RfSN8Ff0eC9fxd8bf8n5/fK+6XfvN+tf7H+/fjF9Vv9H5Sfqj6Afc1/DvuoSSf/r8QfRT5LvVJ+Lf558IP1t54f7p5ysDz7OfWF6TvlT9Gfie7RfE18Gf8R/afX15M/zN6FPLp4g/D58L8gJ5y/HV5Ty0t4y/a99lPHn633RH5w/rL4uvq74+fon+KvqH4jvYn+eP3V6xvUKC9f276/fET5MvaT7i/Ur+RfgH4c/gn74/jX8Y/zX/JPlr9o/hj+KfTX4rfkl6bfjL7CfSn6UPKn8T3an77fvn6Y/n1/qvIX7AvMX/kf9X8M/or/i/JX7pffX88P2RF1f3976gXr8G/tX6tPw375fd77FPKX/N3qy28/Gz7s/me4bfyT4wf1p8zPQ3+2/jD+c/3X6w/ib5s/wV5k/mn/Wf3x9W/1fwmx/n7h/3Hm5f3Z84/5l6BENmn0v/79G/cB9KfGH7vvOL91vgP6J/935Jfur+iU+r6EAH2CLvn7/E/+j5ffnt8B/f97y/7D6h/255B/Vb4uKO76u/sZ6nPQInGgWP5IvOP/Hf3F8B/SD/x/FD9DfkV6BEp8kjfDd6M/J3/PS8v+Y/M95xf2P9J//m2V/0e/6/bP9aPEv5efUv67vQgBLwNP/kvGv6R/6MI5/J75xffd/N/7qVp/Kv46PrX6kvCgEygXr+Lojv4yfs37Afnv6qP5P8Wf7+6BEPO/0v5V8B/of6Ufwj8O/aN64fCB8nvUz8zfJJ+Hf9n4T/Kp6DfWX+/POL/D/yz/K/zP99/cL4Q/Nl6t/LH+Xflz/c/f365Pdx/lfjT5A/9r+7qz75L/L57A/XN6T/Q+7jvwB8PKpz5F/UN4i/pZQFf/v+pvQIjegIf8Dvv34W/+381vXX85/ir5q/Rf5nvi99PvZf7H/KL/NfH39h/Nf+dfUd/tvBX4+vNF6+2sj4Jv6X7O2N17tKbp4S/c+6g/if6tfvZ5T/Gh57/Mf/gPrr87vKZ6BEKUFu/+/4m/Ln8e/ar/N/OL/8/9/473Lf6Z7hf+qf6TPlK+wAG3/lH+2t7//qCeJT6Dnml+O36SftN+Cv46/lN+cT6b/gg+d/4w/qceBn7R/ov+tn7HXn9exP54XpP+J76nfgG+7t7aXuY+uIBevjNeWJ4L3pK+F35EAYX+ef40vu/+/77b/uReNH5tXm0+en417mn+uP7/nnW+ip43/v6ecf5gASIBC+44AVABJ/7ZfrABgF4R/gd+jJQj/gS+3AGV/ja+eb6G/s/+QgDOgALukuxZ/iwBAd5ufnT+U76Z/iP+7AFX/r+eJAHF/p1slV6A/vU+eAGQ/g3+3/7IPj5+Ff61/l/+l+4cAWbeiv5mvve+Wn5pZA1ex/7p/oIB0/4g3hIBFe43vkbu4AGiAXIBbF4yARn+/f5UAQoAUAA0ASP+6n6xAbFesDQMfgf+9V4gFFwB4/6Z3gdECF5OPhueE+4xPkIByf5Snj6eQb4eAeTeyL76AaP++AEFAYo+s/62PqEBXN52AUEBEP7xXk4BP14uAZ9+qgHuAcv+975eAed+4B78AUD+2t6vfoXu8QEhATYBSr7hAZXukQGwXIsBpu6YAcEBpN6UAXcebO7u/kL+qwGK7mMeI177AcruA35sASoBtQGZfiIiCr4A7Dm+VX4k/sYBa74lAWNe3P4d3okaxR5AiGIAb/59PlYBc/69AeTe0QGSAb/+sj76/iJ+7b5qAdJ+fwGXAfN+TQEVfobeM36+AaX+DwF1fpCBpX4Hnp/e/v4QvjmIXwFPPq0BXv4IgY3+P/43PgZecAG4gTM+rn6lPs0BAZ6QAdne0AEinqABjAHHAR6uDP5z3gCBEQHz/kM+swGk3mQBr57LnlsBlR5AiBsgvH4EgaSB+f4XAaV+IIGOvoT+xAFhflCe7JSYni6+mf7ygYyBFGRigWyetr6hvspeQIitQEKBzgEGARMB6n5Agd8BQ5wdPjcBRH4CAVyB7QGM/sqBhmyEAdaBUgE0gZyB6t4ZAYVeCgH6fs6Bh14/AU7+RIENAei+iAFoARsBToGEvrkerIFLAXdiNd52gRcU6p60gfaeAGy0nhQevoEyrLxeCoE8/jK+QIiy7roBNGz3AXqB7IGpftn+5f7DAYiBbgFDvtyBLwGmPnOKf15AiMZQuN62AZ6BeIFVAa7eeYFL/n/+WAHAHqMB2fjFAWCBQwG7/hMBtAHTAZoejoHcPsyBl94hgWsB9IHgHiOBBwHUgfw+0YHHXOaBcQHGgYf+YP5Sfsd+KAFLgUgBqoGRng0B7r5ygXM+jYEwgbv+xP41gSKBOr6vAQP+QgDFQDqBfQGefhABKIFsnoG+hoE4gTkBaN59gYyec4GDgZaBLIERgQwB44FfgWN+DX4DgbH+7oGp3pSBRu7rAXqBfIF5nkCISCipAUYB14ExAUoBbn71gUQe9QFmAfQBjn7X/seBFV4LAZhBL4FZno0BjgH4gbqBvP5r/p2BG/7tgele6/4uXmMBiR57/kaBT4FTATmBMp5vgYBBH4HDgb+BIEErAcR+l/4IQRSBxIGbAYkB2wGiiNiBAL5wQZIBJYEHRAM+D4EiQXxBgYEF/sIBXEEgAd+BNEETgScBU4HkHjOBhgG8Qb2BfoFvPtRBN+67fr3Mz34vnmBBxEHYAWpB2n5Xvp8eY4HKQbWBZIGn7q3+tkGigQWBwoHdASPeEEGmHkCIm4AZgU0e1n74QT0BpoFwgThBTwH+3kz+nf7mAeW+uQGtvtcB9EEOgeRB0d4WAbF+QX4v7ocBFJ5N/p7egAGh7mlBc94TAZq+Nt7ggSuBF35tgRxByhqEQVeBMkHvgXJByf4KQTeBqT6pQexBbwGJQcxBD/4agQWeQIhjiN5BBp7NgUFBt4GFHgaBRIFdQQVB4wGMQTMBC4EIAV9+QAEAQQ/+rH6i/vVBB4F2gRJetAFAiBIAMEG8QekBPEEkgeBB/UHv/mtBpUH/AVFB1f5H/mR+fkEj3kOBtT6OQZvuc0HdQX+BkUF7gQRBTUHAQaZBrYHuQVseQIhIgB1BvB7q/tVB8EG1QaUB80FbQUaBEoH0/j1BsdTAfodBZoHHQSq+rEFnQVdBnV6/QThBEl6lXkCIze7vQY3sq54qQUyB40H27j9+gb7WQTfu3gGrgaJB/oHZgQcsPAGEwUsBaP5nXkCI2UBWfg7+3r6KQfMBM/7EwddBuAFfQYCB/v7mnkCITEgowav+px7owSqB1X5hAfDB3oFKgazBbIFQwWM+nQEZvkWBBH7iQRuBceyfvkhBU+4SXhzBQgBU7tzBj0FB7mH+aQEsXji+24F8wb6kDQH3gf7+Yb5CAECQpv4A/vVBDQE7QTzBwB5awbBBH/4aPi1BtJ6OAFqBDZASAAYAEoigACoAogCewageGFB5QBKIjdBh4FnIOuhx4Lw44zA52NoaYOSAjja0LBYKAESSIIh6AAVAAJC3xPJY+eTpsifwsbgFgGlAVCivkmlAw5Dx0uEkHv57BAnBL5KZwY5AaUApQA1QCYi8iK/oqbiAgBSIRMS9Iv2kmzhfeEzIAcF4iGogaNAdAKHBv+IRwTWYSDJINtWa6ECVmnHBIAClwUnBjcHhJK2Y6cEI6OXB2cG5waGA+cG1QIXBBSTFwat4E8HzwRoAlcHVwSkBJsj1wcCIKcG9AI2iLcHjoBRA7cH5QJ3BoYDdwWqyfcFDaAiykrL8FpBMzUKbwVPBBSQzwTsoGcHmAFnB28GLwUIAy8GrwdYk+BQdAJvB38EVwVXBRUB7wTsCB8HJwU3BJ8ELeIrsAgDnwf7Bl8EGiF3BIcE+qBVAZMw7uIJ4guiuaJmSwqwvwS9AZcFvwYVsReS3FEIAW8GlaInOCgAAIU9ARcHAIdoBxCFJwWAh0UA9eh0kMCGkIcOst3RISISgyCFKAB3BaCHXwRghqchYIX6o8jgqBkmovzomKkwhicGwIeEk4wA0YilKVCEaQJHOIAB0IbGAnxIlwcwhKiFv6DQhHCHf8PIhBSQsws40fCGlABfBgcHoIT3BmCFJLPfBErJcmgQhMiHxwTohXCElIuQhyiGsIRkA7CEaIQwhOoggITohniHUIVpABiGhgEYhkJQ8ITr0bcEoIZYhwiHWIaIhtiGuAqYMUiExTE4h48EuIUfBBSSKIeHIHiE/wUEhLkA+IWvBjCHOIXIhgSGqIfohiAScIRkh4SHkYpEh/CGCIRGQsSFqsgkhEmrGFkmojiFjwa/BVSE2Ae4hlOi6IRR6BSFAIX4hsiFlwaUheiHBITQQnQDYwMSCFSGGIa4hOvRJNIDAdSGoIQ0hwcFxIdqIYcHiIXQu0ojJIdZUHSHpIXAhRIDC3mUAoyE5wWpQ/8EFwfQhhSFDIcUhIyG5IbQhECE1wfvBsyFdIVfs73jtAEshMSGrIbfB4cFDaB5SQ8GWdHCSuyFEIXIhXCH/FsnIKdAnIX/BtCEXIZohw4j9+KAhdyHqIQ8hUCEhIZQhXCGvIYDkr+LPsncqVwiY7mlAasFagkKQ+ihohO/cBuTXVGshAIDNIRIhUqyPwWggIQCEIQdoYSGeAG6AcgQ31KBoKO4Xwbq4oYBEklgAJgAJiBKIX3jewRAAvsEWIVfBFKGMiPFkzkiymLl8NCyjst2w1tyB9pQhoyFGUDVQRJLd0DqApHrQ8lOs6iEwob4hdAywAMsAPQBooV0hmM4Q5FEhAiHLIR9AF0DioTDIkqH9wZVImzJZ2hNk14aAgMqhbMjdABCImgAaoV/KB0Q8dLXgAyE/eEUh9aib4FMhg1L3goahoSFzIcFkZqGOAGuA04JL6qGAeKEEoYzI+Sgn1HJiFB7BZOSh1ih2oRE4BfJGrAYC8rSOHA3BXSH2KvaWtbT2lhyhKCFcoUwhvKGQKAKhFEBCoSKh0SFXwV8hSBiKFKNKp7LlsoAI/iEgoSahzQDX5BChiKGeoTqAAaFaIRvBASGIoRR6EyGhoS/ojkCVIanBszKQGFihHep3Kr7oSaHQiCmhxKHGjumhsJRSlBi2IpKymLJidZYZweihJOxIHNxkcmJkMGmBVaELAGogPKF8oVAA9aGlAI2hsIh+wRahnyG9cCIh6yGbITWKMSx0cnb8wKEkIX2hyeRYSLohw6FLwbqhVyHwoROhjkBToSGhjQIzIZGhfaGLoSnky6EPancqr+DroSgem6ESiLSUBGqwzJp46aE2obrosphGBqNw2gy+GEyhiYJloRehFaHXoRah1aHOIbWh/KGRkg2hPsGvoaKhQiHEYXHwGrKymJtomWR7VDFyT6S1WmBh7qFqoV6hoYCaoSJC2qGjoXChJGyAgBGhxqGpwdGhfzTmofUhVqFfoQCAPGFSofsK9pjZWldOLPamZA3QomGqoeBhVkA3Mr6hMmGQYYMhXxLwYdMh4aFGocWhymH9iACoaGF2go5gmGFY7huh00ipoS7kO6GJFPhhlOg/4uSCqSwHCvDWX1aeGCnQXCGloeehdCzsofRhs5C3odyhIgAPoU+h8IAvoR/ib6HqYY3Q3GH+TDphlUjTekjyDM6EaE5kfzyTrschQ6FiYWZheWhQegdE47D+odZhgaHXIfP8imFOYeEkHc553mphlqE5YbfBIWHYmJmSVeTOLLnYZ0yVgiZhHqHqoZJhPqFSVB1hOqErwZchNmF7BNOhCGEOYUhhC6H9iEwIbmHxoT+g1ehYYfCAOGEeAFHUMpyZDBqIl6HNQsFhvGF+mPShi6IeVrloh8FExBs4NGFI5N+MmowJYWOIQcFMYalhrGHPoexhmWGcYQ0h3GE/oSAC6wwHuITSSE5TOGNh4mHeoRZh02FySLJh68H7/K1hd2HtYethyEBdYTEhAOH5YZOAKLjS9It22LSfWhDh1WHXMrVhMOENYXNhsKHw4aKIdmFhofMSiOFMoWHkNTTvIXGhMEKOYC3gu2GgAPthVQCHYf5hEfg9dEhOxGGA4Uta0pQhWqDh1lJRYSWhwYiPYeKMz2Fq2K9hjGFpIcxhj6FfYelhP2GoAALuzaFcYd8hAuHniqS4QPK0+koYBOETYeZhxOHXrrDhjWFjoQjhjmFI4cYhKOHJ4B8hYqGa4ZjhKNImGkGKoDIeuPph1roG4RJhRuE2QCTh5yFk4Xqhi2FU4bOh6qi04XMhHWEbYbGh2KHVIANwbOGEob5hlzTXVEvEvOEEnEgYd8FZWM7hGPIg8mLh92ES4bFhUuG5TO3YsuFJYTWhn2EMKGxhwqEcYerhKyGfoblhPyEc8jrheRYmGlcAoYidIanBv+TGYaMh/SFm4XJh46ElIZOh7CGIYUphx8HXNL8AduFCIa2hYxgbIY7h8qg5WF32a2CBzj2hQGFt4TMEg6GwYd4h3eEU4TchLCH94Wohg+FtYVUAsTKqYWPh1eEwiLXhWuEY0DggnJpgChrywyGTwX2h7eGr4WwhaiFw4UGhCKFr4bvhdcHPIXAhI+Fo4S2hNeEO4fahsaiX4d2u3obyqvEYi+F34cvh8UiP4V4hz+Eb4a/hMGFP4eUhn+GrYcPhMaHmIVXhGmET4b3BdeHHWMARMsrMTteKreHhJA/hSqE74fohL+HNYW/hSBHBIXvhVuGxZOgR8IB/YVgR/+FtoWnhPwpn4oMo5wBvNsQRBSSkEa6h5BHBIZQR0GF94e/hyBFzoV/haBFH4RgR76F/4afhABG9KC7YxkpOwlvsaSG9oVARN1AwEXkhEGH+4VBh2iGiETQRLkB0EUyhh+GuYcfhLBHyEWwRuBEi8geIqJRgCiEA+7AeaFvhJhFaZuy8WhFlIUIR8BFUEYgRsBHiEQWA86HHwexCSRxvyEfC5hHvYZYRk+HsEQRodfQVGttEdKHqXOQKzhGgoa4R92juEWMh+SFeESIRtyFiEbQRKBFD4QfhyU5HIoUR5ShhEVYhChE4WCeskxrxEcuiThFqEUvhx8EB6G4RZBE5ERkRuhELYb3h2RGGEbXBEhGoEQURQRGKZCER5hilEY0hVhHn4Y2o4qyw6Bkic/K8EUcUbWQlbn0h6+FtEU1hWRHb4S0R3RH+EZIRfREHGIMRJREyEdlhZRGjEdPhEPoYNLERtXZrQEV00xH7IQ0RcxGgYZ3hixGAIcsR+hGdEb4RuRE9EfkR+OTbEcURgxjDEdgRmCFREQRKE5RVEcSyIHwt4VcRBRGNEakRzRFdEX7hDxHm4bfhCxEf4W8R++EfERqYOxHfEXsR3WEHEZER1hGFlu5UpxF3qFd42c5JEV0hUXZuvrcRghGtEbCRPeEQEQiRfhEaAAERWxGokV8Rmsg/EawR2JFjES9uQJEQkjURB2gzEdBsNxFpEV3hSxFwkc4RdxGIkRsRvREokX8SzJGOgKyRERE4EefhaEg8NIIKgKGOEbyRYJGzEVEi5JFrETCR82GPER0RqxHQkdAhmxFSkUUR/RGLIRiRH6HykX8ROJHeiHzkdhEqmucRIJE0kckREJHzEcqhhuHQocKR1JHwkWKRdJELAAyRppGi4jKRMwBykTfBhxGAEd0SchQbFBF4eRSFinyRpJFNEQIROpFekVSRm+F1EYaRLxFGEXkRyJFk5J8R5pG/4ePhbJEKkUcRYRLnoiYU31i3IvCRrpECkVCRWZE6EWmRCBEGEfWRTyGSkXmRTJEFkWGRmmGMiP8RlUi6bouiDhZVkcSRcCFukdqRRpGzYY2R3hHNkdoRrZHvEe2R0pGdkZaRchHhkeyRpZH9kRsUGhZDkRmRLhGjkYKR9xF6kSKR25F+ka8REpFzkWiROyIhkdpoXZFn4aWRFPSLorGR2tLRtNWRJJEpEe6RFJENkQeRPpGike+Rs5G5keeR0zSXkRVU15HlETzYd5EbkVbsCOgJka+RY5EtkamRn5HpkdQRsFGooX+RgFEAoahRkQDAURGRuaE5zBuRXLbpslBRu5F1kTORcFHk4U2RzxHEUchR9BHzkWaRCUCFkSfhK5ElkZGRKco4UcAaPlaQURqR/JFakXuRcBHekQhRPhEUUcYRyRHmkW8htFGYUauRTFEGKB+W95EdDo+R95zPkSORtZHJkeORwhFPEZmRAlE5kVRR/5EfNIuRTBGYEeERDFE2kefhFU7lkTS2EFEukS+RhFFKUUhRKlEGkbSRJ5H0kSaR1FHBkTpRauGyEUWR1pGiIb2RI06QWAOReFHsUeoR1xFcUURRHhGUkfBRZFFqUSFR6xEOUW2RWlEcKuhR6cBiUYxRXOhSURuRbFHmUQpRQVFWURRRNlE0kceR2ZFIkZpR8VFK5EVRdFEWEQZRnlG2kQlKBRoxkTJRbaTpUYFRZJHcURQRmRGqUXZR+VGnkShRwlGA5KJRS5HuUeVR6yFeUW6m1VHAGmZR8lENUUmRFWEpkRORYVFTkeRRkVG/kYVRXVGxUUBRvVH0Ud2RMMiDUUXOw1F6yIOR+FEcUYmRkJFZUfNRJFEB4bZReVFRUQGRjlHLUWhRLlFZYZiRIxHiUeeOLFE7UWlRY1HgkYpRk1HKUS1RZ1E/kcaRMVFFUSJRkYClUfpR61E6+JVRLyo+UTVRSlZ1UW9RmpGNUcFR6REfkaRRs1ERUYjRC1EuEUtRJVGJUYZRRxEBDiZRSYqjUcOR41GHUZ9R1lHfUblRv1GUURjR+ZE9UbpRblFrUTeRElF40b5RSlb+UfUR71GZUaTR2VHk0b6RlNGCUS+RmNG3UcwRINGM0Z120ZGsUR9Me1EBURzR8NFHUWjRJ1F6ET9RU1H80XAhgtG00a5R+xEPUUlRsSZrPBjCLjyNigRRH1FtUUjRp1EU0crRGlHU0R2R6tF3UVaR/VFaYZtR2QIU9OSK8Whs0ZARxNFvkVNROVG80ebRBVGW0QuR1tHC0ViR2tG1WE7RrFhbkYbRnNHG0bqRyNErEVHRf1FnkQDR3VFA0djRFVHn4ZIWutGbkVLR7NFw0RNRcdHTUTHRrVHnUejRQlE00cnRq1FlUaDRU+FM0R+W7ti1UQbR+1HQUU1RnhG8UeFRedEq0YERpdGhEeXRItEgURIhB+LnWOHRDdGWUVzRx1H50abR3tHjke3RjJH+0WXRdNGa0b8RqdG40TXRYdFZ0W7RMtG50UXRCtHtEWbRk9EW0SXRVtGz0RrR91EL0QNR4NFuYMvRezCS0a7RO5FG0ZvRY9GK0TvRSFFT0UGRNLJY0d3RQdE40RJReCi60Q+RMNFE0evRJNF50V7R35E+0R1Ri1Gd0UMR79Fa0Z/RYljN6AgMlZGr0TfRkdF30cAxR5F80XvRAtEQMbsRc9HH0cWRMDGmOHAxBFis0fVRADEe0V9RLdEo0W3RGDGq0Vgx6JE4MbbRldEO0d/R8DGvUf/ROdGAMSgxPNEgMbvRvtH70TPRXdH0McuRjDFn0TSCoFYXOvrR8ZFD0bfRlNGoMYhR6lG8MZgxB9ECMUfRDDGi0bcCYjED0YgxNZHIMTIxXDFoMaAx0VEJ0WrRh9E20UIxajEmmLpuRDE81NfR2jGy0SPR8tH30dvRE9FP0dQxHdFKMZAxgjF9UcIxipGWMYcKg9HS0ewxZDFk0RQxsdF30c/RTlGv0ULRelEf0YvRX9Gh0XrRcZHBAhHRdjFAMXoxcjGj0eEx11HBEW/RnjEM0b3RmNjxMQgxNjEWUdIxntFpMfxRGTGuMdPRNFEmMYHR0DGxMdQmGdF+USQxgTEwUdzRITGF0egxCjE0Me4x2DEqMWYx+THeiIUxrDHbkbYxG9G6MR0xStE8MWAxftE1McoxpjFeMeYxPEoaMb/R9dEBMZxRKTGcMZMxj9HyMTMxfDFzMR4x/TGLMYMxsaiCQvAxhNGjMSUxOjFlMdsxzjG7MYYxnVG0MSyRUDEn0fbRIjFIQP3Ru1HFMRlRmzETMZORoTFdMXsxijH8MYcxCzF5MVhRZaoaMZnR3zHu0W0xo9GyMRUxDjGZMYnRWTEJUS8xeDENMS/y/nriMYkxJ3SXMT8x4zE3Mf8xnTFTUUth9mHdMW4xILF9MWCxFdFLMZeo9HaaMTCxpDFwsQ4xCLHTkZUxFLHVMc5RAdHRMfUxp9FjEQyxXzEtMRsxhLHkMcSxUzEuMZyxL9EXkVEx9NG0sScx8g6k4pfRLtHCsQdRQTHtMeKxOzEcsUCxPTFUsXQxRzHgsY9RMhhoOEQxwYRMsc0E4hJ7BKkxtzHcMZKxOrGxqMsSgXgp0fyxRxHABm/ONLZLBOax9QSWsat41rGasXcx2rEPMVRRN8jEJJbAzrFvMefhsYIgOAI4/jHZ0ceMkYAaZAmxTdGhUQXRErH3MZdRbZEaLGGCBWRJseGxPZEiMVOAo6xPyrGxa9GdjAmxObFhgsmxJtEP0QGxSLFVMWWx2bFKZLmx6LEeUS6xElFK6N9MrgT0VigWbDEisRwxQ6GekY4x+pFasXWxUrERMTKxPLFysT3RELHckt/CzholKNG6yTGiscEx/rG2semxzoj/UcYx8zF1Ma8x+bHn4R2xgAZdXEYqDYLqkesxarEssUKRq7H6MdMxQbGzMdyxtTG8sbuxG1EiMYxYv1QbGug2qAZLsf2xjkCE4Wyxc1GjsfaxXLGRMZOx89EYsW2xQqaegIYqxDafsVIx1zEFgL+x5THssQBxt7H7Mfex27GPsWBxEbFHEYuAYCIIcurIuBJfseqxeEJe4VvRw7G1sRR6yLFbsaCxO7GYcXux2HGCQoLcL9YUYqqxjdEI0ZexM1EAsQYxGbFGMU8xspEtsXbRdHESUThxjHEoMnNuvhiEcRex+5GpsSOxFHH1seOxAFGysaBxrbFYcUJxDHGHsesGgBQsccPRYGGDsX+xqNGycWOxqLHFUYpxuDHKcYJxGehqcaCsC0KU6BJxVbHR0ePRa7GBsdxxjzG9MfqxNLHTsUax5Wa25OpximQogJ64tnFscVJxDnHXsXaxKHHAsQcx1LE0cWZxz7Hn4Q4yhkG8qiRMWnGlMfBxunGIcf+xBnGAcdKxCnEgcaZxAnExcdhxQ5im4naWftYBcXLR7HHSceRxA+FycUZxgNHocVOxMTHgcaPoLFyK5goKN+G9seexdnGkcYeR6THIcc5x4DGucc8xuTHysTOxwiplTt8EV0IJqElxcHEaAAhxNrEhceuxlYibsbxxoZH8cd4xBXGz4RYGaio2cbBxvzFEsRxxJLE3sX1xd7HAcQ+x9XF8sSpxGejNcVZxW3FTcbtxYrH7cWmxTnEbsTxxA3F8cUNxHnHB0cIqxxoQVL9uWEilcfYxs3FXsT1xGXFhcbqxEXFucVFxeXFg0bFx33Hr/KfWli6w0X2xRHGssWlx+nFVcYZxKLE5MQaxw3GecV9xqzQ/cT8WMmr/cX6xD3EycejxmXHycdpROXGqMQqx2/r48ev8RHq44ojxHXGBcTxRQPGIsSDxR3GocSdxdXFKcVDxVdEZ6LDx/AbXqLdxy7EasaTxlXHikaDxlLHg8YNx2PEfcfgxcEKOgpdOQoyz/A/CzPGscXLRgPES8Y5xvXHPcS5xerFy8e5xDXEXcelWqRCeDGrxMGT4sbCxnXFDsd1xHPHk8dLxQHETsadxfPFrcRJRllK9nPdSXQ6i8d+x93EVcbrxnPH68f1xhvFvcfLxJvHmcTIYuNgW8T7xGvHacVsx7PFIcUHxi3EvcaHxK3HvcRHx+XESUQE2MfGLenHxyXErsTrx83FPcSnxBvGy8WHxxvHncZHxSvG5pCrxGxgNmKCRZ7Ga8fYx5XHBccDxjvFc8eFxaHHUcRhx0XHQ8UcR9pIW8Q3xvvHI8a3xNbGB8R3xwfHHcS7xvPG5ce7xXyivAMKgcTIStCPxknFs8UXx7fFS8Z3xYPHd8ZFxvfH88Q7RZopD8SVkq/G28XpxVDEY8VRxe/FncU+x/fHZ8SSs15on8fnx03Hi8QHxxfF68aXxIfHl8enx4fFV8Vnx7dKg/Jq6UqxC2HyR4q5zimkR2vFv8Zvx/pFT8XMhTDh/mnmx//Hp4URkEtIUwmEMrOagCf2h4Ams8c1Rc3HQCfZR2/EkEZ8Rq4CICXfxXOjxEBiWXzaY8iAJO3Fi8cRxI6Go8RfxFPE1cUnRs/E08SNxfpiNiPAUUUiSnFuCxPEJ8RvxDvFb8bAJXfE88T3xN/G0cUgJPNhcCbiEWNiEFHwJtAl+8YXxUAlCCTAJn/HT8dlxrvFz8XSxDqE7KLIJ0OiurFiWjfFxsSzxZXFBcePx7/HJ8YGRlPFxUSZx7Am48ZwJegmpKru4GVQKCU3x8fEDsSRxdvFfkZYJk/HqCdzxM/FDEUzhGgDk8s1AXmHYYT5hxKEeAplkj+aPFGHMmWRBYXnScwoEsmKasZEcMkyh9nQllLoEQyg2gL6GReGS0MlhCuFpYV7BKuGwCu5h85CJoeEJe2GRCbhhV3j+RMRhVKFduAh40NpC2HThWAnnAJWhDGELAGjQJeF1oUrhJQkV4b9hvLHcYe+oVPIHKqSagZaMoR6RXgmoMX/8oeHIYZ8RSCFQMSMJipEdFv6WPpgMcjpxMwl6MWSx1OEh4ZbhbQleEgMRTkKR4SuhgOCVCfih3mFEobhhFIynYYqMlo5ZoX7YYwmnKooKXmzZ4Q6x+GHmzkkc1GHxYUIAnKHF4R9hfQll4d9hgwmq4ZXxt/HtocgJHrwlKGKqvbFMCJbkLLGnIXnBjAlhMdVxuTKSZMDRmfEqHkNoB9oKCsqqNAnrMfCJnWEI0UiJ1bFOMRPxwgn+CS+RXcS24atxGOFM0dloeIlOqojxRIkbYSSJUKHeCXxRSfF+CdYJykC1tJiJf/HYiTpmhQDPliyJyEAIiWkRpIn2cRYJ+AntUU7xbvj8iaQJkInweNCJtqqwidbxBSRKlGyJWvFVYYOxUmHr/JyJrdF30bsJweHyiZhEionBCe0o/Tax4RzhuDxxpInhh/R7oYDcqjKGSqqJ+InvCQfhpJY0YdUEl6FLCQoA/wkFCb0JLGHAicrhoIloAJXx9Intqmzc7rhSdBAJuoleCVJhmRSk4VexcwkHCXMh6+xX6AKJkYmQscc0BOq4WLGJCNEqoeNhCYlTYe/kyYlF8SaJQILzCanBGYn8NJthzOFFqhcJyaE1CQdhTAjc4YuUdwnBAgehDTgNgDGJ0lguESJU56FBwtLhg3F3UXLh96FAiYug5eFNoWdx3GGNCfso97qnwF1Id+hxiaZheomliUmJ0onkiS1haYnAYTUhvaDDEXOJ2CHlQqs0UA5Y6iuJhYnxiVDhxuGbiV1xPgmViSMS1YnTwfuJo+GWifggRuogADaJLYmc4W2JDomFVJ2JeLE66POJDFgalqDaznoDib1Ag0SujCOJb3FjiQCJ8uGl4VOJIIkziZrR2YkmmD7meYn1cuJInuHXiT7hZYlbiWRxj4m7iTWJL4lZiWqyipGA8qyuWEmricWJuEkiyB0UBEmHkQ+JO4ltkbWAe+SvidihQ6pNiVcJqaG/icdhcdQASZkC3Yl2kXhYjBYLMNRJCdGDiVBJslwF4bBJAYnhEROJwYlISaGJKEn3UUeJFElKCmBJ2EluoWuJJYnQ4fhJd4npkamJrEngWi3uo+HLCU0hx4noSRx4Wkk0SZDhk2H6SbeJhonNYcxJxklzkWxJZkn1iTeqnmGXCREJ1wmtiQcOf4kdid+MjYpASVZJOdgOorZJkkmQSSriIdRfCRhRfwk3oYGJgIlKSYdA04mV4bOJ5ElHESFyTHT5if2JOkm0SQ5JN4kMSYZJQaFuSbmRHkmZiYeJWUlf0UKycFR5SdpJlWG6SXRJUIAlSc5JtmGTIcthNOHESc+J7EleSYdq/KafiVUJ7OHfibP4OuRBSQJJIUmFisJJdBIzFOJJs9YeifBMMUkdNDBJ6fFwSclJCEmTiWlJyEkZSahJlkk+MTd43CLnieBJBUn2Sd7h9Emm4XNx5UlUUZVJdYnVSW2hwElwqv8heo7HSY1JP7FXiUVJeElOSagxrkkrYe5JpklVSW+JKMCs4cNJceHEoXxJFB6FaFNJXYk+qI9JZDa3LKyuuXqLSRBMy0kpInFJc+T5CQpJKWFbSYKhpQm/8WhJkcG18P3qfYlvSfBxH0nnSa1Jl0kpiX9JFUkAyXdJFkltoYqRlnI86hJJOonNSZ9JF0nliW/xv0ndSSZJtYkHiUDJP6rcSX5JvEmBSfxJUMlITg3QM0kNpmr0JMnIydtMNGHDibJJa0nySXeh2MmpSbjJYYn4yftJ2Um+8t4SSMmXiezJFMkjgG1Jswk0yTdJdMkHiQzJk+FwyVnQu7jr7MuJJ0lNSYVJxsnuQKbJOwlB4VWJPUnvwaRJpwnoYZjAlqhfif5JP4liyZDJDtSSyQ0J4UmY2AqoCAyOydhJyRFSSbFJq0lXkYlJXQkbSYpJiuEhiQMJqkno4TVJYlhneoJJoBEMUnZJhOH6ifVhjEk+CddJhwk24e8h1smhwYqRhGjfjIRqT2glyeuJ+knG5FTJFYmeyURJJknh4ajhfsnuYeUga6GgybaJOzRHYRQe2vx84SzYOdj4amv0cTKgYdFhueESZPnh8Un0MJjJaslFCf0J9ah4yRGJtPGO0Q0EYknjEepqWwkMCVdJ5sltCUw4HQn3SQ4JqkoQFAwuy/QQCalxZ8m8yf9Jl8mjpjpk18mfcQzK0ewLNg/JhYlPydTJL8m0yW/JtckZ8fPxWVg3mvfJx8nTCafJgCn7CSZJb8lxRvecn8mK8WmY46iD4itYefZzwTApZImESSxJr8kHGFfJdcmoKYOYXfxGang8j8nbCc/J8CkEKRqYC8bb2CgpmLHIinfJXmqjlJQpsClF8VXJcAmEKe/JApyMKY1xNSY/ybGCbCn/yVQpV7E8yTQpwCk8KYzhUeEiakNJvknVCcHJedSfCViUdc6PCWMYDtHZWA80MEYeiHPBi8mq8MrJv3xM2nRhqcmJYenJ6smZycpJ2cm7SWpJe8mNQqIuvRJ/yVrxACmcKefJ3Cl0Kc0AZEkcCeuYObKdqjuQ0CmeCRwpb/FcKffhPClIKYPA/Cmm8TASqzRQKdgpgSm4KYeRISlt4dIpXik3yVVR+aSOKQEpP7EuKcEpbimhKR4p4SlQwJEp1fFpmAfaDimLCiIpziliKa4pQCkWySApqSlfyeuYALiEhMIpWSkpcdUpuSm1KRfJYSkJQEUpxClMKaUpoRrkKZUpAPE5KcFxSSlECQUpvSkNKSQpT2oxKawpbSkzcWMpFgkSKZSAT4l8ESkpA8lbYfpIYQkKKSNJSik7NCopHczjzuopP+IiMUG2ZigOasfJ+imXoYH8xim/Cf6JSUlYyZvJWcnbyVrJu8mMybjRe/SmzKkqFrJpDq3JeknFSZ3JnSmSKRbJ/MnmSWApBMk1mPrseYl/KUoCOEkcyZTJXMnBcaspmoDrKchkvsmCyVjAwsmKKaLJ40niyeHJUXhSyUkJA8F11tuGcKnHChBJisnQSYYpK1GPKWnJzymISdtJKkk2KbnJD0lRyeuY/ghQLjl4xCgIqa7J8u7AqeMpeSkkSX1JxSm2oRyp8EYCNGZAoY6GyS7JNWFfSe7Jc3GoqQph3skYqaKpWKkx4SPJo0mfVLzhYcmFyZnKYUlp0S109OqwmPLJXfzUqTJJq8kWkfSpZimMqTjJ6UlDCZlJnylM0UKyJWoUqWcSfKnyqZzJFclGScKpvUmeSWKpQonMKRg0r2qS0fCpp0mlyRuJiqniKd3J+Cm0yeCp/Un4IGWwuynNiQcpsp7tiZNJEcnTyaQpItShqfFo8KkJyajJSslWqZ0JtqkbyUypmsk5yfbh7Klp0Q1q5+oyqWzJcqlE4QqpgqkWCRMpPsmiqf0p6yG2yQEO/tQhjteSnqnNqd6ppUkuSbGp7alqqQGpgslc2CmpPEngyaHJQRSEqaFJsMkSqRDR/WoVEg2phVGJyStJtKlqgOvJhQkVqQ6pYIl1MVCpPin4lnmpD0yHEoOpiYnRqTUpoKltCQmpganKiZMmMhrnqf8psqlnSV6pSKk+qUGhyqllAOipx16YqZxJ0DZByXipuqkLqfqpT5EuiZNqm46vqQWpL5FbqWjJycl0qetJdqkayYep4YnHqTrJTNERWNm4PKkAqS1JJsmtqduJ46kAaZ2pkKlYaTiJHEC4aaap76mRqY5JN6ncyWOpfqkdqZOpQGk+SampoGkZqRLJRKmRyWnRU2rrqQOphakWqejJdDEoaeWp9qk7SY6pe0nOqe3SUC7uqXISV6lRqURpeCkkabdJVsnkaTJp+1K5pLBplKkRqW3JQKnIqSspTGldKemJgGkroUdqM6kiyXOp+Kl6qdDJgEkkqXMpoZQ6aR6pQmlDiTSpJal7qUGJlinMqdYpUmm2KTWpuNG7uPpcctp4abRp+mktqYZpxGnMaROpVUldqVphtsnhwSnU/am8qXppgKkRad+po6mdSeSxd6mmaeqpnEl3aiBp1mlgaanUi6nTScupadGqePWpgmnwaUWp7mkYyaYpb2HiaWhpkmlHqcMJe8mrMvMsfSiGFIrkLLFFiR+pQ6naqOXJI6n6of+p9OESiY+pDtEdaVQakFgl1opp7clDae1JgeFZaXsJaymqqcOsNcmJqQpgGrDyKRxpW6EJ4fxJk8kp4Rop7zGCBMk6crzIyQ9heeHSjDupcSyeaSlJ3mmVqayp1ak2ySup+3qkuFAuNzitCalpBGl1YTNhZskmachhG2mPqbbJfSiO8kguvDZzacbhHcmRaXgpv6kGoWtpY2mdYVspzOFvsJkohWm4YSUUGamHaWdh5WlHERSuN4ymEhDpi8lH1MvJ12mryWDAd2mbSc1pLKl+aWypL2lMyei0D1YvSSAa8ZC6ac7J/WnXqcppiSnRaaRpAalxaRKhr2ncqiVkfXbCQmkUNaphaWlpw6mLaat4cOmjaZbJHEkroW+wuKFaqWmpEMngaXZpQkm46V/RHXIdIg+YK8KGFmapCGnFqfVpNqmNafupEmk06a1pTqmT4WnRhGgarkmKi/GkyTNx5MmfqYRpMOnc6QDpIql86RppNum40Rm6A5GO6fhpiKlu6RlpHUkzoV7JfMlmaehhvSDDyXspYMm1CfOpJWkQaXJRUGnrmK8qpsz1gEqy0UnCaUhpu6kNaeOJFinFCW8pVaka4QFpDImhGlvq0UjFVEHp/KkGSdLpFuGR6WRp2sll6Z12t3SYiKtcjYqQ6elpw2lLaeHpPcn/SQ+pQMkO6pZpuKlFaVxppWkwyanIPalNrpXpHemFilSpbmmWqSbpYmnm6dTpvmlW6dJpNsmzGueOqqJq8kXq/eSMUApp32nB6W7JXOmVyTzpamkQqc3pW+kXYXMpd6SrGMRCJpSmdB3h7Ol0aQZpoem96V1JOWl7iXlpium3qujpAUk2aerpWalIGDmhWmnDdI/p+Fh6KTVpOek3aWixpukF6S8pVinF6U9ppek36YFp8lBZFFmYhmHf7DXprumn6e7p5+me6f6psWk+6aHBYBk5MhigD+k5ZpzUQbpd6VLpP0nGad/pXumAyVHhsGoAGSHJQBlJ6RrpnIpASdvpyAkxZrcA7EILyTAZi+kiaaOJqsmr6Q9p6GnX6fXJusnotMoirwCVpHgZA2kh6T3pBxzw6Y3p3umyGZghDOktbJ9IShk76vQZX6nqGRD4TBmraVoZrBmK6dtpHBljScVp/4k8GQapDmktprUyBhlKCvHJohnSSeIZcklPKU1p0hktaRhpbWmaaSaYTnrTNrXwoYjGGWoZ9ekR6QPpvsn86TDIipHDwnmJe7oRGcfptenfSR7Jy2mmiWipCOny6ZtpnKCaqXHpo8npqRNJ3GlLqdGyOdjiqLqOOG69EghUhum1aUvpommSGV5pRekZYRvp/mn06V8pPOhZmH3q4amv6eFpDBl6MappeRnA6YLpkhYyIMJC7ups6e9JRsn4GQKphBnpkbLpuRmD6VHhgPY7abOpCelcGQ4ZIBljGD2polafSL0ZlKmuaV4ZuekJSQgZ8EkZya0ZO8mYaS3pwonOTDQigekS6T9p8xkf6RoZcukPqfEZNvhjGTuCugSe8biykRkEGa8ZZhlZGTEZ8alR6YPJWm62GTqp4+nJ6d9Chqm40R90CWR/GR4ZcCFG6XVpTRm+GVIZVxnvKTcZvulM0RMaTzqx5NXpTxkn6S8ZphmgmWCpcRlkGboZCJnRiRwARJlBOgCZZJnRGfBI5hk5GZYZd0lD6bNmUJklGQSpsJnEqRUZ9BZYCe3p+HLz6ccZSclwGdapK+ktGVvJbRmBGdbp5BmC6YxYu8526Ki6TJl16f9pzBkkGfTJ1JnxIUqZLQLUadmUKhmc6QsZP6lsmSqpHJkCyVHhxZI8mWrp3Bk7GfCZX9GeKmZARpnZ6WIZpxnwGdKZ92nYmSXp/2EUaaY4jYjr/IYSblbkLgDxLumqGYCZ5Jn96WCZTekfKZ0ZtUlJ1kguIZkATmGZsxkRmcyZjBkgmdGZlJm/6dHppg4KALaZienbGTxp2aFKmc6ZSZkRYQuuC+knGZKZpalm6TKZrylymToZepm1qRXpverqnH0ZMxlNqSaZQJkUmfepVJnNmd2pYxkfxm7qYOGpGf0ZkukmGSyZwaFZmXGpOZmsaYrpMQ6FmVsZwUkOmVrpnXacZJMZY5n1GbAZHmn56RcZhemymdcZQRl4mRPqH0ypKteC+OFpGXMZGplDGRfpIxmfGU+pNZjt7ObCF5neQleZE5nPGbeZSqnmmX+pyxngmVthMBrLmfYZq5klmanpGurKTsGZlZng4eKZ26l7mecZ5ilIGT5pKBm06c9pchlM0bhszEYVEq6Zjakc6UppppnNYcMZHxm6md+hS9EpIS6ZapnXmemZ35kxqbOZRFkAWSjpbPLAWTCZjhmQabdKEiFZFKyussLQGaiZDRneGSrJmJkNmcgZTZlxmehZtepigIga6LRO6QsAfWlv6d3p05n0WbGZuJliWafqn8GwqVJZxpn4Wb2ZrJl0WfeZKxmK6YwYzFmlGRPp9mmCmUMxvoivmaGpU2JumTWZ8FlemVTp/hmW6fKZm+mhwaMJfpiOghnpLTieuOqZGRnUKRYZsRlKWSeZrllGUR5ZG5EouHEpXZl4WfRpZ+mLGb+ZmhkBWQuZ0eku8EZZfJmsWSnp4jikYUMKG5EAuIjm1ZkSmXZZzRnemUeZYYlAyS2QMfA8madpf4mVWfuhzhnbOqUkTKR9JCYRuXyPYc1ZDykoaT0JRVmNmceZCpmYIW5ZdpL5IsMaMqjSWfQJCSn3iXFZ/6k+dG+UMymiIX1Z14ADWQCaYGTDWVqCHSlCqcQZHIApEWGxj5mzWfl6q8IJGkNZ7CmjWb6pa1mndJBU01nrIdtZkcgxTIUai1kHWdpZc5lMoZNZ4KGPqRdZgGCsGE3mN/r7WaIpQSmrWVqZ61kQkZtZJFlaYS9ZjebXWRlUt1lRmfdZNylTWc9ZkbGmKPEaH1mddODZClk86Y9Zzx4w2QPxcNmg2TFIJ8mHWWVJKNkbWWdZQNljEQ5ipxFoEr4oiNlfWbjZhFn42f9ZhNmMiC9ZDeoGTNFEhig3WZTZd1kkaajZTrFAybwaI+n7KamhYeh7oTSUM7bJ6cRhwNlvWfoaCfL/GaChL1C+idzAcYgemXWZiBkHqQEZpVkVkMrpRRnaqcI8zOQ3fDd4xby8aa6xxxzkfB3cVFFLtufMAnh3AFCUitndCViZxVm+mRphOgnCjvEOYpqqmgHibNkQ2RzZw4ho2Y+Zk2knrCARcRF2molMlGE4KezZ+NnF0F7ZgNklKQCRRtQyyi7Zl3o42SHZx1lJeGHZTrHe2e8xL25+2SQKyJqB2c1C8dnu2aHZ0Nmp2WMRhGg0LAg2sdnjmdkpK1ltqfnZT1mF2XjpxdkZ2W50k7xS8rnZyNmJ2Rku4dmDmVEpNhGT9EqohSjl2e0p31lV2W3Zntkp2RHZUgnd2T2aE5rZ2VMJ8SkJ2b9ZgvQF2WPZZAnGipXMApqu2VUpg9lRacPZydkA2Z3ZkdkiSavZU9kaLkjZmZl96ZDZ4uE72Ztp4JoFmSrpqaFmFsnp0qQnKbRWxGGTafXZxkqaNlbquZG7uE3J5dD3KavJVtmIWcrZTlm/8RCJsXHc1MxaJaaYCfwRLfHmCduJsolEeL+ZvImSyEfh3NluhjyZj8zc4bIAgtn84dhx4Dlc1iWmVGEseB6ZWcRP5G1Z8kkdWQ5ZPpmoGYaxKlk82HcY+G4XMsKxeoLQETgJzdGJ8elx7CG/qUg5P+HI6YioO2G32XtpEhR/iVg5RGHZqX2RJoobFIw5c5GL3MQ526S+iQA5MIhCWchZIlnKWTYhYxnnAPFgUvosBrgS6pnQ6XPZ/lm0yX3JtIlL2WIhXRlGrF4Y2jlB2Z+ZpJkm4QRZYelf6QY5FslGOTIpi5lo6QI5GOn7aRPJyeE46VPpYxkaEnKYBDnE6ajJT2FwGRTp+5mAORbp6+nOWR0ZjSnTEnsSU4BGrDP6ujkLaZqZjjnVyQzhdNnj2X6YQrKmGKKivWnhmWXJf2mZGWfZwxnOOfkZgcnuOQdhmOkTSdjpB2hnKUZROTn80H+ac5GXaaTpkEkvYeE5qGmOWVE5e9lZOeI5cUYLenjM+TlpmYU5MVl42YnZiOkR4bXZElFiDqwGXfzeWVRZozl2OZ/p2WlpOWHhQOlD6ThaN9ka2Wmp1TkHad45dTk+qA7RsznTttwAF2lLyV/CZOkdOQhZXTlUOahZaBmxOQJIMc5p+lCUwzndmaWJejl52RM5K85I6dM55AlYCdIa++hvOVFZUOkpOcU5Djnsmf9JZTm8Od7IkHboOZ45SeGwmS/ZIjEiWvD65zkk6Zc57Tky4Z05fhl3Oe0ZdOmPOe0GNRLw1sC5clmbiAaJqTmQuShRm870khNpIjGlWnqulASpme857cnLOTLp41lrafRitQQuOdHpoNI8mT5kmDm8qKI5qeH0uQU2hEYubrmRnio0YRfkJik3Obi5ttnUOR9A/PGYghIhkjrXWC/pkVlkuYNpRTl+WVS5TjlA6d3Ryrm36T4CTPjeTBaYTgrO9PgYmlnzaTq5tFklOfeZ0LmbOerZu2keOY2kNTkHOZAKGILGubgotnKF5EmCNRnrSiKslLToucE5K8nXOe1ZNtldWTiZelFGufIZkjqkuQMZ2rljOdTZ3znQuYa5ldEquVshGGRc8h543mYktEYZizkfOWC5P5m6Wam5GzlR4aIw6xlWaa6548mIuWlZxCheudlJHbItpKRktGru1E0MrQlBOZLhVznYuTc5FDmXGQq59znIwLG5TpmPEua5lurzgta5oLm2ubepazmA6Rk5YREjudQma6ie4utK6yxWuSSZtemfOdOZSxm9yeW5iuklZvC5brn7OUi5RwLeuS8C/DQtuaMC5jjBuS05FzlvIVi5heGdOf25h5lRuXbZffHqstlJlshsglO5eEnbuZS5FplQuQa573FLueoxdgxmuUeGTgq4dMFAwQLJOTO5jGmlufPZ62kLuUPpq+ZHubW59fgeuYsyjbkJmfmUZbTiUjzUdBlduVdpj7lYZJjJL7lIWY9pQ7n22XnJ2JipEmTQIHT64YW5+kkhmHdZu7kJ0ev8dNqPqQ05xLlr2P6UzLkguXhJrHlfOUh5XLnhyJk5QamymPR5khZ1SL+5m4jCea3ZonnPulx5j5k8eZVCkGhMedY5tekKeQB5f5n/UZx5bYjceWuRvHniKJ3sizLqmTp5d5mJ2WJ5KnkmOWp57RZJhlY5mrmJualIybkjaZy5ynmGeap5xnmW2h+0TnlkySM5pYmWebq5gHnUucnkJAneeTM50nnhhv55zumBeSx5bnnyYXp5HHnheRJ5T5niOZVCEUhmedRqFnmJeW8ZHnkGeRF5dnk+eRoQjnk52cx5xuHBeXApc7lwIYV5aXn2eYcW2Xke4RV5Qnl5eQ3pKXk0YvV5JXmWxh785XlaeTeZVXmzuXq5LhF1eUZ5UXm8eb4oTXk4crl5bLnteWF5nXljefhaE3lleTPZznmTma55s3l9mckRo3mReUt5lUJgMi1aM3n6OcN523mpeYt5dHm8ec7hh3ktefJ5bXlbeS+RO3nFeeN5CfYpVNd5/XnUWYN5IKk1ecfBj3m9OZJ52TnEubw4vXmreQF5LLmVeXd52ZkjeWd5u3kXeQn24tRveWt5X5mfeT9Z33kFEb95olk0mc95gZLA+ZAKR3kieaj5U3jo+ao5oiENeY2yU3mKcnj5inkE+WnC0PlPeXt5HVI4+eZ5N3lkSBD559m1ebT5f3npeXE5Cfac8gj5oPmCebd5m3mQ+ad5C3kw+XQ5gPkeOLF5MlkFOUF5rPkkaTZ5Xnl0+bD5cTIFIFL50QAy+Ql5Qvls+T95HPkY+ST5pZHPOYJId6RyeSz5WvnDGYs0oCmc+UZRhJgQOfx5lPm6efFZtMkW+V15MznaGrb5mnmI+TY5yPlD2Uh5SRCM5Jb5evmkWTM5wW5G+Xb5zPkbecd5oXkWyc7553k82DeY7vkm+RH5+PkneX2hMfli+R+ScSih+R75/PlauUn5VPkp+anBaflK+YtyYAlZ+Yn5eGJm+feZRflW+a6xv2hl+Zu5A3ly+VX5/vku+aksCQAJ+Q35H3lN+d851fmB+Vph5+EJOR35uFm5+RX5kfnJeU75Lfmx+R+SpS74OWH573lSYd75W9m++cSqPOit+cToGS71+cP5Lnmj+cn5UfltCb35xPlB+akshS6z+dn5cXlg+a15lfk9+ZP56fm6UsOIm/kCeSP5a9RX+cv5B/lBWZj54E5eGJbIc/me+dp53fmv+Tf5xfkfkv1CD/n2+VZ5AAXrBAH5h/n9+QbZALnf+Wf50vnxeeD5L/nU+X75kAVr+YtyaxKgBeH5O/n5+Xv5cyFv+T1Z+vkSUcp6Q/mP+dv5z/lj+Y750fmABTX5JAUKkmQFYAUheeP5NAXoBVP5hoyG+fAF5fmUBbv5LAX7+bQFffmMiAP5Nvmn+dwF1txUBXLphAUuWR/5xOhu+aIFnfkL+f/5qAUr+TrA7AXOdCH5XAUKBbL5KAUF+QohAgXQBUIFrrHx+fIFW/nrebgFDvmSBfoF7/nEBZdxvCmKZMDK5PkDqTgFPAV4BXwFIvnieWoF3lp2BfdSkvl9eb/5jfk6BfgFD3m6+QYFCRm4Od4FUxqq+X4FOfkUBeIFvAXUBVD5ovlABTKSAtQz/CgifPnn+QL5pvkSBQV5IQXWBUf5TXERBRv8IHQZBYgFF/mC+TkF+nl5BUQFBQW6kqkFb/xQ2KUF6vlIBZf5lQUdeR4Ft/k7iPUFMALw+Wr5wgAa+cgFbQXzeR0FyQVdBUUFQPmOBSlp8/naBUMFhVFE+fkFMAVCcd0Fp/qveX0FslmxBYv5Kmk86Qr5RXl0BbYFAzmu4Yz5OXnOBXEFrgUJBe4Ftnl7BYUFBwXpmFEFIPmZBU/5pwUWBbkFSQVXBXUFRQVBtkcFzXnTBZr5swWJBSMFbwXCKssFuLhBtncFuPknBZsFHulKefMFNQWLBfsFXTjDaF8F03kQhUoFugVo+dUF0gU2BdcFCIWN2E0F/QUtBRUF8QX/qTsFGAVAhR8FKlZrBQMFrQVEhS8FAIWCBWEFSwXkhX550QUPBRsFqIVBBez5rwX0hf95YwU3BTF5LIVlBVkFefnPBVUFXIWhBTyFXgV8hcyF9wWChY8FkIVEGdCFGIUxOTIF7wU3BdIQkwViBfKFR1mKhWKFCwWGBYyFaoXSheCFPwWDBTSFooV0heKFXPlKyMCF5zIaeZqF7IVuBcEFuoWwhfqF8IVFKpzyCAXNBeUF2QVmhe0FlwXchVaFyIA2hSYUfHmehfiF3oXCheAF1PkkhZ4F1oUfBYx59oWBBY6FnIUWhXqFDIWpLMYFzhY/+TEFZgUuBSKF/0lSBcqFWIWLcsFuWYVhhesFuYVPBVGFaIWZpFYFLoXphbIFWAllhYmFfwUEBXWFmIW1BR+SIgXNhVoFvwW+hRP5bAWdBZOAzzk9haYFSPkOhecFqfnthUWFnYUcBcOIo4XkBZWFWoXjORAF9GKkhYaMD1ARFtmFrIVLhROFlgWDhaMFJJbzhfyY5YVUhYSFZwX7h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eal9jVjVbVYKFwN2aYY0NUoNaY1iZX3VbLVdlXy1WeZ+JTKEe2sOjX61WnVgTUM1UtVONWJIWE1CDaxCgLVS9V9hSw17lUa1TfVoTVi5Ek1StWRNWlVBtUi1SnJu1UYWc0eyhGjeI7VKdVUNdE1n1WxNd9VvVlp0V415TXJVS4196V2lfTVz6Vy1Q01uNFNNUk1rNX5NarV+DUxNZ01wTXdNaU1iTW/KvPhLTWT1TU1HTWnpXE1GjXZNd41/ND41QM1zDVDNbU1IzURlbwljTVlNUk1OCApNZA1A9WzNYbVjVUcNT01ezWTNb66vjV4NfNVGVVBNds19lUXNRM1CKq+uubVv9VpNRs1czVY1YzVIjXjNTk1VzXABoc1fjW2NQE1mzXzNfU1G6XPNQC1rzVXVcC1tzX8Na7VDzWV0S9ZUZYwtZvqB1XwtWfVfDXKNQtVdTVdNVC1/zXLNWtVWLUfNdxFXzWnNWDVWTUJNei12Kh7lTc12LVKNc/VxVWZNZg1SzXKEQC4pLWUNbvV6TXDNRC1BLXLVey1STXHTpU1rdXn1cy1wtWstec1RLXKERI6azXVNby14LU/NQs1JtUytQg2u2hctUw1CrUUtUU1dKml1Wq1VzXkqO813LVQNYq13zVG1eo1qrVCtYa1OtXytTy1OrVStcI1qLW9NTa10zWpNeS1dzXbVW7VTrW7NS81GLXIFqK1j9XitVHVd1VKtRa1vzWoteXVpFa/VK01tRXrle41JTU4Idg1ts6MNSrV6zWetaIJC5SwNT612UkJ1fb694B2taa1+DXSNQ41DabJtU7OqbV61QU10DX6NaW1iGpGNSm1hbXHNek1JbUeNaqlWjWNtbG1WxXxtbW1bbV0Lg21FbVNtX/VxbXmNXW1S8odtYO1XbUrhW41vbWJtY+qA7XIQJW1TtVRNS21o7V9td6ItwBgNZ21MzWrtQm1+rViWKqIIPoFtVO1J1UztZ3VY7WvsVu1k7U7tSO1e7Uj1WMJC7XHtTe1GbUCNVm1ajURtYkZE7WLtUO1nzUvtUXVgjUWNeZZj7Uxtc+1iLUANekV2bWWtSQ1X9Gb1dG1S7VVNfa1f7XgdRnVkHUftdlJ4WxHtSB17rVyRUh1rDUQde+1KrXQdTil5bXftSe17nkd1V04RDVQdX813dVXtaR1oHW4tRoJbDWAdSBJX7VPtdh1hkW4dQQ11OKodYR1NHUnicB18HVitTi1ErUqNQB1Y7VIQCR17HVHNcO1XHWttXO1x1h5tZRW0nUgta41PbXnteu17LhsdVh1MnW/tWB1eHUodQR1kLWCtRPyZDXbtRx1QNVQlfd5r7W11ZtpO3oulWmp1CV/iU51npVDig+1YDVAtXHZTCVsJbFhzCU/lUrZkTnUFV7lvzWaKRr6lFY2ZYulcbV2lUcJNSEi2Gl5mim+BFdCEXXHld210XU8KXF1dLlp0ZmS3fbxMuBVNpWqVWIVMXUN5MnRI+XeNvC5dHSZ5Ucpj0L1ObjRYXUj/GTlOeHVJYwihJWWVSGVslWklevV1FwfBhAUCzmMtaMljHXrOQu5mnUBxfE5+SI3ZWS1f7nFufGV8eVgtRMliumx6TeVedQYeTzh8yUZWa3c3XUCFSZV97mA5KR50OQyVZNlQXWc+bbJY+h2DIEo7Ly+5nl1CHkFdWl1HikZda6l2HElYTIMifaNpF8VoLWhtUV1Psr8taM1LZnrcad1PjUXWCuVtmVtNbN16XWiUfCVWlUthPeVXfj6VaWZsXFCstf6gHoA9a/l4uFNdcx4LXXP2Pt1gXUqOVkVDtFoCfhu2fqvdXmlp5XvdaD1WzXgKYtyOCCBKC3J1pUhtXLpH3WjCmc1wjW49YHFynqE9cD1JPW3dWD1TpUdldMl2lUNpMiVVXX8wjV1XcXyAAiW5zmo9QsQ6PWqle7lNFVyVU1VadEvbgzxljkrlcJ1tjkqVQmV73XAeXRVq6kdYQE5zBUdJVN1onX6uSh53PULdbz1NdS6VfX44cmJCeLlbmDK9af69vW4+RJVZlXdUf51B5ntdRqVOPUouTLZp/Zs9SeV13Ug9Zz1ZPXh5drhSpRJdX71qXWB9ZR1fxVk1V71IVmNEo4uuXX0lfp1w6yk9aERxCUHFWblfPUVdZPlgvX4UsL1yVEJ9QhyskDi9ZUlo2XSVTL11lX/ldwljzUhNYUFkpbteL11yFXq9TN1zeWNZcyVCnVkhQ311zW9aUD1UXWJle31QkCbaUkGDnWpoRPlEpXdZUUlGJXd9UvSIhlExPiVzXVjlXwplfX8ZdX14ZUotTDxw4ipBr31kXWxWcT1/6mD9V7YY7Vj6MXQUNU79Sl107WD5UyVQ/Up5TzaYpVQ9Wd4MPULJQUqW/UZBjGltxVo9Uv1xTiY9Wvph3UBhbj1SUa6WhrWciVfmf11+XUa9XT1WvX/9QWxgA3f+h+WM47IhX11hvW09eMl+7n+yTYZhxVc4e65q3UF9cTosA1lNs9UDXXXgNt1ITnk6Q8VVBXY9U1VmiklIrMyynom9O0VKA0mSaGUJFb8+Bg0N/V/OXEOVWQQBtLI0bqbFWaZ+/W5GcwNa6JSVERle3VAybrCPPXBZSHJyOCMbgGMV3jIuWnRNA3cDdRkrOZtCXBkh2IDoT/13mlH0QF1NcEoHhh4fcG2wnYhXA0MMioNzULfEv7EIg0sDbWUNL6BVGui/6K2DaINbySAWCkcQg0cYoHcS3ixoXL10rWGVWbYxkQhsteOP7U3idXVK0x75Cx1zwCnMv4NERyBDVtlq7VaiSb6Y7UTeu2oRrIOqOLpFnXo5XJ14okt7uENAhrEcAyGwNRpDbp1wQ1T1fENIKX7tbOCouRCIp4WDGr2/EUNX0khDRBMoOXlDc14SUb+DTUNSFUmtYmJDQ2SZGENiQ2RDb55HaQdDVq1N5l+JUb1A4lNDfe14Xj7Bm0NZhhDDWm1sOUt9YUV0dWlDXZ13JmYDfjl7Kw59aLZ+7GwQKC0ZRZgVTcVEvVq6G71ETm/9ZQN79UaSXMa0Kq5ZoeVnQ1FufB5jZUCDXu5Q3VKRQmu9TZcmvuQ+851DeS5yA2SNZANJvXmaWh5mA17OV45OA3MZVFoaoal2baqNw05ecR5bTkbJeQNlZV/9X0V4ln2Olc19ECZhjT1jw0B9Rz10pF+idr1kaq/DHfWmI295R9VH3WyAMP1aDmYDbcJaVmJooFhBlXqMVGknYAkjcGx8tlwGUekVFVtdQd15w3CNUZRaxUyTiOGC6UX9ZlpOI0TWWiqvVArFfnA/I0/ltXOgPW79Zf1CqWLZgt4PLnuYUWGo/XEobhVf4na6snpApk25Si50o0LgKMGZFWfleehLroK2VoNeLnBdXx1Pantjj1pEq6MjBH1/A2ijR5561RXEGSlfjk9jnaNRTqFaJ6lJqXCjeR1CdGujbXw7o27NV4i24Y3mI/Yjo2nteuVQY0kEFwVJrlwvCFuV/a+jTJZffWR9VI1WTpujfGNPrkzMg+604C7hpd1fw0ujcz4cY33dV/Rx04Xhh2JKY0jpau1sY0qjfGhU4bqjR45E+ydZc5k9bkKFUGmJg3ejXwA5zlNLKXlltyr5YiNsvUddfJVvyHQRk1qEY0Fjcn103VLDRmNdY2Sjc4O4427clWNUY0BjW/FJY3QVRcNuNGUVRwu9o2RjViN/jVzjRuNC42SphwMR1YOjQeNb3UWJfONdEWnjZ2qk43VjfulKFXa+bbFx423jYIEf4YrjZeNanVmNTeN8JWm5Yt1QqKCuW2NU8ngWRDRK7wMdj2Nd7l9jYwiA43llVyNWPW7JdR1n7UeTFLI8xSrjSs5s43XjW+N/EX7KqhN3o0/SIWNh43YTXvkm428jUfVCYCPjnPMGE35efdFOE2vDfiy+GQg5mhIyIKkjXvVN424TYxNFnTAZkhA6E3fjez1JE0t7mRNyE2kNUxNCDbmxoRN041jDaAlb40j5Xhm8LktjQRhIE1Haf2V8ib/TiyKiGXi4TBNzHhwTa11iaWr9bRVAYXkpTJGSgwsTdqUNE3Amc6NdE2kTSGNHyUmTTU604D26VWZUk2MDYGN9E1HdQcl9k1oTeZN/E399UeNNk3ZjTPhm6RM6XERvE0+TWxNtY3uTUZNguk5uGf07lY9Vt4laY0KjdHVHE2gpTFNhNJxTbOu/6ROTeDhLk1FjdZNQk3D9e12Ck0P9aGl7Y2w9XjpJhohZA5N1pQKRtBNZfVEyRX1VlUGTd4NObXZ8WHogZL1YSMlvw1GaU8NQHkvDc0NyQl/MoJC3w7pDb9pQtWGOWgNg8nyduh5WOlYedRq/jhDTXUmI5U54Ri5D7kIjRaNyaVWjcZ18TXHWLVInU0mJTVVYA1XdRANqA0DTZMNQErIOemYOWQgDTY5x035Tf1N42lD6U52Vbmj6TW5c01gjcTll6j7TSBmzBVwjesloTlDjVX1hk2ddVp191KEgON1dw02uaz5yBWDdeNpw3Uz4cNNE5RN9VDN07kTTcb1T01R4fKwTY1dlct1J2HlTc/1YM3LTZRh/03rTYDNm0105dtNArW7TTnYCjgHTZDNww3UWfdNvU1WTY9Nvzmd9ZjYdM1vRaNN3w1JuQ0NvSW24c9NQWVvTbjNH00EzWt13ohczQ/GjCUX2aG5Pbn/FQhNZw1ITWh17U0soT8WXU1HTT1NR+VsVXDN7M2DTfSxas2BajzNcHnozek5mM2K6Z9G15Xm9WPJYs2gTRLN9kaGzWamyPWrTXLNu3UPpBTNNlVUzd91JnV7TVdNvvIMzfMNN5nMzdrNfU2TTedNoM2hyldNHwIozYzNSzlkjVNNW2GloDjNfPXHuaCN4s2LTd9NV01OzU71ss3duW7NsmQezWv1tlW19WM1j5aGzf7Nt01buVrNRPWszWHN8M0czfsoRCileTdN3U0PDcRNZ03mzUlZAE3WzVgNJ7npzTBlhZZ75YE5uc0keRtNK/XTlSDN1LVq0n7NPyiVzUHN1c2sVaHNGM16zRdNrHUpFsjNc81MzQvNfk3/DZ3N002SDSLNKc14zXzS/c1fTZLNWc3eBSG5ec1jzc1NE82tTdR18DU6WPTNm81xzUgVOs3zufXN+s0iSUjNLc2azW3NV40dzUjpz03OuT3NII11uXbNGc3fzcTNMs0uzdfN5M3jzR71VZVstapZQ5Wzza3NMM3vzWth4c1TzZUZV00jTTHNgc1bzf/NP42zdQnNKOk1xrNN2A2nzVRCuC3TJiTNI83wjfAtt82ILciNOC0eKmrNRHqHTWNNvuFvzUvNZs0rzRHNqWhubtdNxs0G9cQtAk2ALRHhQ+nCsMnNS3W2zSpNA82c0hwtPpUU+aTNO3U3zYrN3TmsLcgtJpgRSM/N6C0iJZgtyOHYLTotM8l4LRvNBi3xzQCN0ek3xrItNs1ULRAtii1/xsg50s3OzcQNa03qLUwtmi2WjV/NacblzWgtf80YLXwtus1TOQ3Nfi1/MtHNL833DabNIS39ydItmfWATb3Nac2OLWfN4S16ZjAt7i2uzRot+k13zSONpi0FMTPNGs3cLWr1vC21zcvNoS2+LbgoK6jNzaItSA3iLTvNki1xLVHhlCZWzVINci0OLQotqS1VLRfNw82wLaPNXi05LSwtPI0PzZ/VfzIVzZYtpS2nTc8Nn82rzY9ohs2RLRMtirVzdTYtrWWJLWAtcyXULV6V7C1DzX9NDC0AzWQNhc2TzfktwFiFLVwtvM0GgMHNNc1TLWzNFS2zLWQ2682/zcUtly0SLdMtQC3NLSDJWfXtLX3NKS00LXhqPS27LX0tjC0HLQgt3I3KzXx1qLXCrpwtAc1VtaAN28179WUt/C23LYIt+8k/zbUtE3U/DfUt6Y27zW8tiunRJq0th81fLcktnS2/LWCmyi2XzXe5Hi2kDeG5gy2grbOVbU2ddgcFUK1RLdDNhi3BLR/NAi1sLWnpHwX4LcytaM38zT85Ui3NLQfNZCXvTR0tPjkkrWN24wUqLdVpgK37LdStxmUtTXktPg1ZWPgNp/oQzbytk3WYrU6N1y11zRytxy02KlCWIi0ELTCtd01wrclNmvXWLYPJ4yb4rSKtos1irYc5XS1QRlCWri05zbKtZM3ArcwttK0AVSsJuNEHUjP86q2LLSIV0JWkLSYtyq21WH6tkjk8rYGtXHUCzfWNKOknJjatWBWEreAtxK1bLU0pUq3krVt1lK1hub253i1bTZUtaSb+LUUt5y3jTaytCK2xLcY5Ba0orTUtxq3LtZWFzy0NLa8tgq1/6Tjlay2zJSt1my1udUKZOy0rTZktcC0erXmtlM1VrfXaCIXjLYEtZa06reUtfSVhLRDRNwULLeOtVi17zVthxKZ2LUktKa3irWmtkq03BdnN5nlqLVStua00rYhNdK0jLbjRqq0ghWOtTy1mrSKNk62IrdOtw61nrecy862XrVqt0Y3RdWQtdgKDSZQt3y2prV2t65gPrSGFO62wjXst7q3yrcrlSI3DLSrN5443BRetJa08LXVlbK1YLTMtyK0XKQiFT62wbSUtSy3vrd7IhqZfrUStG62/rVVR262ZraslJA05rQrNh61KzcetkG1xDmMtAS3PrUEt5a3srUitnK0a6hEtFi0LrTU1yy2Dyf6mr022rUfN8i34bUuK1KHpLW4t61nZrfLNZHkgrUet3q1qsvA1ObK7FsWtJs0Tra312K3MbfqtuCjybUHFjy3obQ2tWK2NLYLNqxmrLaAt7a34zT8tm60abY7NxG0PWaRtEm17dVJtlG0ybTs1ojXgzXRtOm1XrfY5Km36bcJN1G1Spaitta0IdUQtMS1MbU0t1hnCzXxtya0bLWZtBG0WbftGvS19rf0tA60UbVotEG3grYqRREK80optYi0MbTetFa3ebaltubXmLdptSm2LrTit0emqlrht660OrRKtOY10LRktYm1ZLQMtCq25LZ716m3n0RwtAa0cbfBtjG2IbXqtYa3CbdzN/m2q9bpt5q2qbSFt0en/phVtkW0/rUJtz5lkrXFt9W39raBtWhXDjS1tfW2kqagtmW11Ldltnm1NrXetdy2pajKIUa2dbRs1XG1bYfJNwI0mbSfNUW0zbZypLi3SrZpNbq2eLYltTW1DLWCtO02LNd+4py3QrXWtsK0vrR5tWE1ebTkNdslRzext9G38radtKOmOcLxtSa32Ld+tgm3WSoZKAmYArfFtQK1Lbb+VwM33zT5taZg/AAptZy3FbZMtO203LXttyG047VptaK2ozZqtQW09bc2t0elGbW0tsO14bVVt5m30Zkjtva0LbQltaO26Dcltb23UzfvZpwAybkGYC2warRit220A7bttla3QDTsNz7qWUtWcx20xrQKtY22qjYGlF23PaDflVvWnFQCADtEcUopCvmbouV/19jyXiCcNtzn5rZLt2HH5AvaNmjnQ5W5tf22YTcGtFq1IbXH1Zu3EuZZIWdzC7XzNJW007Urt3c307fM0lvXnVBrtBAAO0asGlWZMudZtFlUulIbtmhXo7Yqtq21M9fS5gyUsTW2GYO2LDXbto20S7ZaFQe0J7ZCYXPZy7Sn1sa3D9WsNny07NNUlthS36AHtNsjx7c7t60x67SWVke01JZ6t0m019YBVojVm5MLxvrFZbcptYu1E7entWRVgpfnmDPETZsntnG1YbQCwi5pHuSXtTtRUaQRVMgBKmQbIUxq+sc71gfx17cGVSW0+LdFNUu1DaZCGATI+FQFtr81dbTltwW097U1VtskKwjlkSWy05mYNO+1Dbe5t/yVp7XGtAzjWiSrtE+2NIlPtrnUz7fuxm0imDdvtrq3uLfrtzQyu9VHtXO1r7SiNoVJmGLsOKkBu7RctN+3suQhtxi0O7fL1RxFQeUukP5YQHdGtee0K7QZt5mkTbSrtx821OZ654I0cUsoUUCL25qgdFK0Nbc9tYG0rbUgtW40e8aSCps7DZlftQbVaoaLtqe25GSphZhG4TVGxkoz6Ml8Nujl+oR9V7B2EbiKV3u0ErWk0lCW7ofIVQlXOFaQW/6G8HYvJEvUMjEbtjxVFzV7NJc3YRXaSdB0dljCN3wXordqo/B0E7V3ttMmCHb0Vo40yGK+2CQ5EKLwdHSX6HYq1xh3D9XXm5XXiHcqUMZRv7SRhZZIKqEnkWh1yHSj1lSWKHYAd7vVerU3tY8VfSLukBbIXddYdVmH8lQftzmFw5AuNUbEdYQ4ykB2WYVTtNhUuYUIdI+VAjUXtUfhOHZ8ULh029WcV3BX75uWyF3XyHb4dqRz+HacN3O1UbXx1kbGaHf0uSR3MHZ3trB0mSXYdTRXmHfb6g21MHdJhKR2aiWkdCunoYUAWq60+5IK5QvTT7W4dhR3WjB0dc/XEDQod5R317YOtns0eTa2Z7hAKCvLOIU1OBX11Nh1BrdZ1qR2xHYFNqWq1ZKsdTqJjwXwdkR0DdX2hrR3wlR8tba1ZFBNJHpX5HZSh3xlBTL0qax0nHfIdoblBlUDNMe3UHfSt0WUSQJ4W0Q2FDR9lcQ0TDcitaxqfDCkNjZTTGRTtd2UjtSsNY7UhHbgi1RapDdCdsc0bid0NWQ1WJQjNL4JN2ACdBQ2onYQtXQ0lDaCdLG2z5ridHdqDDbENcJ0kna1tgGAhAEidDtqUnTVVow2uTShR8J3YneCd0XhR1kydxS0snQ9NbJ00nWttfgoxTLt4jJ0pnFSdVnXC+fBpWOVAZYe56w389ZsNhSWEzRyAHLohFgMW7/VHDVTlFR3G7UOt+204Ot2MyJ1Qne0ljLV8ne3N/1HsnTOtRABz4pCdMQ3MnRidFp1VrTeANnjvsQENQJ1A5cSdvQ0cnXfIB6KGnbadvJ32nYKdvx1wQt6d3wRinbUNwJ3UnZ6dlp0TVs6dThbtDRKdKfU9DdkNCJ3Wndyd4p12nR6dyZ3YnfqdoZ3xnRmdBh3NHZJJMp0roQkWq60bDf18Sp32zdM6+CjOGtkWc5EU5eehxw3ancodRy3v1VrtLMU/FrNpeU1mnbQp0fV5be9tfTmnADSudW5Btl2dfJXnHckpUynNsSY5Wu1z7Z2d5/XPjcMZ9SmZdYgdJEJwSKOdC50fVYgp0ykrnQpVTYW0ahZNOx3gFX2d8XUiMZjW650Hnb5Nem0IKT0p052c+Vrtw50OQsNo4R3jndJN7BVX1YUpp51S7XvlL53N9QWdR50FRJspQ+nTFomtQuUd1LCZ76z0jdYoD525MoiF0x1/WX/tQox/2SvtL22BHev1IfVfFhCmv51epf+dUp2TnSedu50S+Oq5v0bYXX6Ni533mdudd52m7R7xtYBros+dm501NZRdlbGEXV/4kEWXnRFNGzXLnRwNNfFBEb/FY51/nYq1TF2TuSxdcEKH4Rudh514XZMpBF3cXdEkxF3znRJdL42AXVOdzF0yXQykkEUZTQpdS51AXbIpdO2iHVHUefV/nLrcUF0iuZGxLci/RjBZ4uEGKS71yF1fHc1tPx0iTSQF1QSaQpCWIyVbHZKdil2vFH0dC41XVVOsLl1HTW5d6B2XHdaZwq0w7Wmhdx3GXbQl1FwS1Z25KPUfHZyNq+0m7Rnt9Lk3OP9mrl1nHeANhO1GHV5dIl0LZnsSIlrfbbvtHzkBXROdux185eZpyjbldcfN9x0KDdhxKV1c1kr88F1ghOjyeeGfHYctmO35bdnxZ9I/lknt1u0sHQBdyHnwHUKdpzG9iY6qpF2EndEt4O0j7X9A1x3GbanNlW34HY6tGNBdXY6qzVx1bYL05B2c7QEdje3oXZGVOY3/znaaOCS3pc+NsM30xVFNIB3wePtdzAzDFURNAC0FTVmNnE2iSImWIXSbCd2dt11uTQFNuE11WP6Wz11CjeRd1nmZjcGNt40sXP6WPcxzDTWNI7WpTQSNqGbDKOsVFHw3XSQt/k2FTSnlBWkXbYpNluXKTfDtig2LZLDd1RWLydpNCxC6TRj19m1VHY5tdBU75YFkOQkKXSddw8VJ5ewNaU3Z1ctClN1XnSNtLo3X9Uf1QMl5lqBdmtl3jIK5vSyuHSDpT5aGjWJaTKGAGtK5Z6HzHQldup2WhWClrW5UDh1y9ZWvnSdNmV3NlcmVJh3H7Z5NYuQdlmuaml086aflqYDNZYOWZZ0tzrSNvdzl7fewFE1C1ELd2t1zkZAGHplcePFdqF3bXcXN5PXREQVOVw5jXSatVc027TAd3W1wHb1tce0OVW7d3V2dHbw1GG0nbVNdt5YQ9Qzt813Yebnlgd3XNpKqbkoe4XutZG2SbQ3tDm1BHbJt+7GLglhWQaQ63YKVxdDKbokNOd3MVq64+d32ZSPZ/Z287Va1X/hBTmXdzN2vrQP1ld1A7S72jbGLgB7dT40p7f1dp+UbEs1l8FZR3SShUPV3yHxVplnVbXQgJd1j+BmAyO3vgCaNugQZBuaNxN3AHY7te51FTFZa0hAjJU0d/V1iebJiX52IHTK6ga54RhvdU9U0uSQYzWWBYAPdArmdZSBkYx3tnQa6pVa5dVwhUrnnoTK5zZ0UDTzt3s1d2WWSxdnBcuvdR02b3ZJd6IXcubvdHvHf3Qfdoe0dJRidJ9337ZTq+ZnQ7TIV5kC83ZQlNV0gPXX0991EDeLIE5Ri3avkr93gbe/dah0CKd0YKeSVmQe4v91PLf/dHl3b3bS5ql12kg54QBqaRqSCMgK6OZA9IeXQPY6gqVarrZfdBGHX3a4dh/G0PcQ9SU7oPc0ER+zP3bycSh1v3dUdA53L2aJdA2ULVvImR924XRQ9z7o73TldBVIyPWtWDD0/JWidrLnH3Sw9+Rl/YBfdCD1X3Ug90F0iMUc6lZloPcjJT926BC/dEt2O3RndO13eKSEaRXR3VqQ9Om3kPfL5Sj1UPTOdZ53Y4ZWZ8gAxyIfdf906PUA9Z917Vhw9hj1cPcY9Jl2IHb49d1aWyJY9mD0iPdg9tj2UHRjtSq0B3audyEA/3Sk6ZD1d3QA9hPm6PSo9QPgGyMziVq6BPbk9e9VQPXo9mR2JLZw9luXcPQ8dge1nnSU9RlaCPfUEwj3WPaI9OD1UHdot2WH88fA15BKGxCea+vVzxUrdhh1gqZoNLJVObZo1eEYdUpt1IxU1NSBhm2m6wiId4W1I1FD1epSfTWPdQumzPVca093xTJUlYJQemVKZ5DnbJToN1tleadCIGHg2wu8SsDHhLlL6pMW+GBYN2LxgCfINg5RfRNhk9QleYvUJuPheDek9Dl23GD11X/lCbvjt++3K3betR+00HYbyre1ClmgdJV3W4Zat8aHk1gPd6y0drddt4x0OzfdSpiBXzRztB612PSTdmd23GZ41/SgOeSecDd1rjXSlfqXeePsdlGZ5FjaOj42rlW9dKFHOpbyl9N0XNfLUhqWO5eS9t+0eeSy9VqVsvaU1HL3Rpdy9tE1G5VS9GEA0vWoqnZKypSK9c3mUvSSlLqUCvWeZHL25NAy9SU2N3RmNfL3wpWWNyr15FmylgOWK3fyd8r01HuKlZQ3r7bV1bhj8AgG072WvXQjdoqXivWx4NL30oYKlar3yjRq99r0Kvay9Sx0WvViOsogyvRxdmQ1avdS9Or1ZWM696qX2pYa9PZ3MvQ69jKUhvdgqvr13yEal5d3mpUG9Er1xvYMpvr30vcm965WpvY696b3QaZm9HOyuvf6Ntu1b3RalcKXUvcQlZvU+7cGlBOVlTfzdYxlqzp2SGqVDZUGVcgQDjShdqT3fHb09GT0wdWKAEFpSggwNRr1tCW4NjGKjvb25950vsTEcphhwNL0hDZUszdEd4STjvUPiy71keeIN88pc3arpVkhbNA5C+fjIPWJY071NOTPS9C2pweoNV9WgKQsd0Tlc7Vc9/niGDbc9pjiHvbsS/WhPPV50NMRWDfYNp4qN+HYN6ngODX6+bA3uDTUArg3/vYxiZdCeDa2d5E3Z8Typl86qHHGVb501iZoNQMmRkCFdxRncEYVFrpS3KQyNx1hQfQAuMH0oUZBJy8n4fZ29y21pPbHt1HWH8aHVf4bYUl+lzVZD7WC94z0QvVXdH9187dId7zxFUo3JYMWgveHdiL2MWWFtoV2ovaZt021aQrDZt7x/hmM4JqAkbeJt+c2WFG1d/z2/NSftJWH9iCjVrnRwvRld9H25bbZNK92W7S6USn35SVttk13cfR+thRltrXNdU23w7Sftn+0rNaYMKJko7XKteL1dvXZdPb1kfecpG+ZJqPS9FkWKNcNt163gvep9RT2SrdSV5XYglO59jwWefRS9DH35GdOpm71X5bgd803WurgNgimGYqgybmTvlRJ9G112fcR93b0pbZI9AvHMpakQ6uyN2de6STkd7Xk9Hl357b59Fm03bCDm5HwGWA0dYd3y7RDtdgLAaTgdAm1M7U09DOkVfaXZyJpGFVmtqX3kbfi9S93q3WMREYKv0sdOGdkqfWM9hZ26rWpt79Ug6W5834KpBohMKvVdHSF9PL3i7aw9rKC6XWs9a62mfS197+146WV4i+TzfaN9ZB2LbWl90e0OfZl91d2wVZ3lroyzMi42jWSUhUt90B2WTYu9CL2DXcI1FmUJiv8Ed33Hdowdod3LfaK9k32K7VthFV1NffatC13aiK5l38KAjvd9a11J2T19ad2XveB9AL1R8SE6XGQBNpElj33e3c993n2H7Yx9+D1whQuV4bxQLpPiY33DvT59Q+lldaD9cO07fRi9s+biVAYSJP3Hfbi9vX32fa9tEj2Xfdl9bxUdWkQYNpg1ff992P1qfbj9wD0Z6Bo5nTbwDYV9en0e7UD9KOmilVT9jO3g/Zrtornc/S85trJh7fD9dm3p3QS9Dj1k3TzYA2H9iK4YUwW6HVAdWP395b7dr33+3dR1CWnQ6Fp9CRQG/aT9Ub1TrZgdvLmtrbNd0X1bPY8dIUVYCXb9TP2o7ad9QB2JXaYdoFFXDEGZvkD2/SHNZv2QlFAN510bijou+v2h/bnt8L2R/QZ9lOrVvXpd/H1XbYJ9m6WOEtHyC+3AbU9tm12VHf19UL314WiA1Gl8/U99pv0vfUn9b33I/dIJsf1l/WH9dr2A7aE9CS2u/c19Cv1zKDH9JqmNXXD9J30s/el95314Pbhl9eE3TV5qGP1/fRX9qFVV/QNdFv2/NTx5Q2mxguP9Hn2T/SV9GB1rfbMgG318fZdteB2x3bb17JhFBYv9OL2+/f39Z31s/aTdhLnOSuzUMYnk7Vo9fK3FfaU5Uf3L3R2hV/3ZOqUVNr2S/cPtyf1sPas9W/0mfWi9gn3HOSvMqSqEmEf9tn0n/f79Ut1P/QIZySWOwCHdy/0m/VP9OP3U7cTtUAPRKauGnLVJ3Thujf0vLd3t6/0oepNt//3w7Zop5FVitqADIG1+/Vtd9j3O3WPF6ZhwdLtmYbbv/Ub9pa33/Q65j/0IHTM5qQX0AwbWYxYJ/XB9ft2e7VthLv0+7en9O/0LTeCNFU4ecjDs7KU+/WADCP2S3Ysd+22/+KYYCbQS/UwDcG3bHfk9M/1TfUGdH5KxeDz9OuTYA42tuAP5Gbx9YF1//QJ98O18JXoDKv1tPWsl5APgA5QDWv3UA1ndt5FyqiJahgPwrdP9pX3YnSeakSpwA8F9K/0P/V/9rKAovdv9MX04cpAtpkgOeMxaMOhJOSndtm3uzYvdAf20nX8aInGZaENyHH1FfQo9QQM1/Vjtl6gXttx2VH2KzEENlO36fUutjFmhA+YDGf2WA3BVe3SXtrJWrhRkA/n9FAOF/ckDxf3weJs0IOFEOR+ZagO1fVEdSAP8AygD7AN2IaaUXQN44XJKnH11fRHdcLly/THdYgN7/f8ykox4KOMDoZlq/X39cgN9fW0DOgOZzVJ0Eq4r1B4D2q0DA+b92gMnrY/ls9ZSyHEiBJ2e3fPNCAOr/fV9h2qVuQQDFgM0/QzZWEkMdoRN8QNSfbdpSQOQAwN9ok1jHPKhDrQHA159gv3IA5C9731lmUJImAN/rhDSJQMi7WUDpW3uYRvAQgNp/WED7v2EVQdJbxAGAkCDMgP2AxsDrP1oXc4D0z29KFfo/AIqgHO9H/10fRN9jv14/Rv1eOmkg/KhL5RReEv9AQO3AzkDiINIvS9NTwPVAy8DcFVKDM4WvnRHGXn9+60OA60DvwNtnecpFSUCmpttvQP8/f1d3gPePXxpFFb0QEVtWQNUg/KDa/2bael2lQNu/Z2tFe1Kg4vktLLzbetd6wMa/Yj97V1ZfT2ppub+PbCDwIP/bdSDYX00vWSQ0yjWsteKkwPoHfcDSalGfW39YP27/RD9w5n21K8croMRGZ8D2S2bA+KDEIP7sRy40Crl8v1iqgMwne7t2QOsA6GtkYOZPX3krc5ndot9E/1sg8mD5QOL2OdtWR0iA+EDinJRZc14lnKufXGDsP12A80DooM6nQoDSV2tma0AMPYFfVmD8AN9XZoDCoOTvY2Dt3RVfWyUdoMrfcYDzWW+IK39wgNog3qDQn3bjT28hhUcfaGDjW0Eg07dqh3D/S0NCYC3fZT2qfStg6yD7YN3A2wD7QMhgjlYMYP8Fuk0G4OxBXKDHYOag0ODd/WzA9t9Hf0gQpXSq3aHg+uDom0mg8z9+IMD/Wf9hL2nmSP9Kpn7kP2DPt1eA+eDuE04mENp3v20fVx9eYOHasrthYNjg+i9Wf0HBSBDKX2mg4kDmv1F/amD7bEKfWMGAua/gwL9DoM+ffm9QPieKm5OovXaQpfW7oOJ/VoD0v35gzNdo4NVA6IDsX3rmYHoFn1OwuNkTQMig6+Dp/2Eg4uDGF33brsoZ/rCoFhDlf1HA9X9s/18dZop3p22oPZ047CG/QmDxv09HUJDAgMNiVDt3IO0QxEDcd20mZH2RBirqG8dwoOp3WaD8gMqHcOtbnjsGAtCooz8Q4gDoIODA+CDpwPrOCx4RkMzNB3dhV0srVL9Tv1Ig4Xtxn26g+i9EK02Q6oqMKosQzpDSEPmg7J91o0xTb1QkPTk6NXkDL3X7TmDZbkpg5b9MU2NiNJ8xvrhQ6ZDM5kR/eRDzkNIvT9ySkPFg9eSpYNd8l2ApNk5dUlDuIM1g2xDEAP1g6Sd9GZoja81pyi0QPGDt/2lAywD0UO5Ax1dQ2j55IguKIA4lOX9UUPL+Z6DD8Aog5t9RYPogzdtqA6B3CDmR7I8WTZ9eIO6Q+GD5UO0nfduPLyY6jVDBeTHg/WtK/3U3RZDtIM+rfiZHrjq7AKNnUPJQ+yD8kOL2DaZV4OEA7yDakMLQ0eG40O+QwkDBc0/A7ND030xTXbaGbxiDsFptw31Q/CDjUM9QzuDqEOAvaF0DxqtbtmlpEN8A8cDFEOHajxtWUNDQ+bdqs0PtOf8Hs4nvZNDJUPTQ/ODVAOcQy4DLqktzjysEkNmXMlD60Ogw5ZDeQNcraRwPKy8QzoWwMOsnTSDWoOwPZDD44Oota6pnboJFDAYmkNVgzZtXwNryfdD+kP7bc4WTE4dshSDsoNrQ0Yt+MObQ+jDdiG6TrsNzdlqg2BDHIMNiUuZp0PPAzeDCO2zbbpOtGq5WbODFB1vgxxDVa0KAn0sxZYdmogN/MPdQ8oFabnRndrDLga8w7jDgsNyQ2DD+CBAWXLDPIMKw/A1P7iJHarD2kO3Q9J9HMNI/XJ9+pnGsrnmJSjaHfrD0kPMA0mDTUPCQ5aDkIP3PNcNVh2Ug1LDR0Pgw8h9rpXQQ4J9Mt2UDgTqfsPeHY9trEPIwxrDC4NQ3SAaHGRduiPBMP2/fW2D7j25g6HDHP2RsW46IpTffd2G5MNk/UL9Q4Oy/VBDNEPZQw254I1QrgqYNcMIw+ztx/2lQ44DKEO1/XIKqP3cqb48FsOwHULDC424mjmYZkAzLLwDFMOOg4LJj+3Nw+5Dmf0D8a+2yGruPDFdGcN+Q3dDyENbA1ZDFRFEZLKO7H3wJdcDgW2lwyHDJwOEw47ZaexRSAysVwM/baathsOFdRHdrI40wx5DYxF7OrKOYn0TQz3DsgNZw+xDOcPUXSSDe2YXbm90XUNbg4dDQwMSg3yD4GSkvfWWc8P1w2CDa31GwCODqIMtw1DDk2nzVE6Orsq1w2rDBf11g5zDDYN7fcsSVAz+AyeDAsPjw1bDBMMiQ2nZyxKE2gVdkUOyQ2lDKCMIlXbDykMlg6pD2fEZLiGOPf3Vg5nD/kN6Q57DtCNgOTd9UPrADWPDqUOdg8AjhQVO5MoDfywrQ79tzCOlfYvDVEPoIyvDRAP0uaWOaPqq/fgjLQOEI8IjWX249WuSQQ68/ZIj/4PGw12DJMUMQHuO38V1Q+NdjkOf/eBD+CDqgu/DAAMFsSYjOiO2A6zDYYMow04DaMNOFdrhdAMSrmDdj8Ne3ZAjZcNXwzUdpZGcAyEjB0ORI9bDn0Dxw7s5icOY3aWReVohts0SxUMCI7vDAUOkfV7DA/mqiNCDvnESjYgjC72CQywjGn1fxXk5t/YQIwiDscMuIyAt1EMaIzT9tslHeugOpSPdfYhDuSNCIxaDHP1tIyraCpgOMugUiiNPwxEjl8PQI79D6/n4lidMwyMIDRT5ksNTA8EDRsDeg80j7f1+gx79iSVWSESAcyNxA67DbMObJXkj9l0FI7AFJlToDrJOnkJ1w+Uj5kMTw/sdFJYZNEJy8lCXI4sjHoMR3f1Dv/0tIwrDbSNKgOGUdHLk5HwjPiNzg9nDqMPevV3FZyP5tU5UZSPh/RYjP0OxQ5lFMyPXLjou5COrQ8/Db63LI6n9A0OpI60jguntI78jynWQo10jL4MAI2VDRCOB/WAqstwEbnUjX0NGw7Cjc/0xI2iqMXLxIxMj6UMNiWgjmKMYI+OD8fU1I5SjN0MHI7Zd74Pa/bQ5YCrerF0Dy2bmIxUj0iPR/X6YkWLyApQ4epUvI2RDKiOcSaYDCcMcozBD6SNw9MLheOZW7WsDRKOCIzNDpKNUDecptnKOWsijSiMXw99DMUMhdcajcqrDYUyjlqPOIyjAOoPrI/MDeo0VabajuBbeWXojtYMtnX0jTH2DnUOyBwXeUmajYyMWozSjVqMiI/SjQaNkkPaj4aOOo9wgQx1YowrDgANFBdZaxs3eo33DYoMPQ0z16JXOdGCU7bnCzkxYz71GWOKjNyPUI8LDbBG5oy9KHOxXuYt2oPx0GQqjIMPlo1qDP/1mA58jGyOB7VWjySpYCbSqvKO+I8Cj/iOc+Zm5znTaVi2kp0J1o4R5p8NhIzcD4yMOo+XD/qM/BBSVFAaTo1LOhFTFo1LavV31I4kjRsDOo76DrqNszkujSoDcbn2jQKOAIyCj5r39FVQ45Q7/jt+lAl0aA6v9XF1KvdFlV6PkYVWM2b12lUJdboL7HTLtQyMkQjejOh04XYJdt50qXU+jcEJh6EMjoHJ8w4BjnF2bKXhDDYg3FAfm/6MBw2RdW53AY8JdcGM+QAhj0w5IYwsjkb1MvXUpsGOgY7EY8zLnI4iIUGMoY4xdaGNfoxhjHw4QY+hI5GOpjW69oX3uKQRdwF1NI+gjBl3YrE5MZt0WZc6DJC4ogPpk5zlWXXcpbI0pPQOjA8N0o7fVXKhT6nEyQXJDvdcjOENjpepVzWU2UMkjV+Uj3b+MOlWT9WBNF7nSY8HOuBaQCFmtiF2VxOHt0vV7wxGDg8PQacLx01UsVf710/163SmV6GE2UGoj7KMaY9BMWmOCVTpjtqYAuXfINe2SVZ/lek0Go4YjFcOlkQqo+G60sgLMv13UNVGdUN1n+uFjtJr9zu+jaDUxY+UVrvkSOS/Wi4IMXbu1KWNSo95F6WMoMoTSzyN4Y039m7E5Y2SjfphhY0cia0B9rHKNJb0A/YtRZWPDA/1h+WPTNFnZ9kPqvcxjAtGNY7uDFWMtYyM07nQlHLK9Zb2BnZZjeWNzhqD23PAf/PDdOAOdUd1jEH1SSmO6N4xJYxmNI2OSYwtjYuyDYwG9iZ3tCQkNn12NOHeo4tRZY7e1c2OjY05Y+2OHKjVjO+0dYwODs2NZna8Nzlj4IY9my2OQVSdja2PICV99EJKX0kNjmgPnlVid92PnY+KaiWPfY4o9q2PRI0zRAOMRYz99xoV3o+5dHj3Fnehh4BDsY5t9um7c4bcAlZ39laPagI49/ciaUVSxYUc93T0kfccjQUNGqbvll85unEdN6V3zw6AlEaNhw62ZnKjQcgr2LIMng5Tj2I3T/WCUjqMnzqEDPRR7o3RDvjkK9YJ2AC7k41t1uOO9w8Sj/cP7w9aj2dWT1KGpjFTPY7kZj6NWI1/RYaRnidHysuPA41pdyl3oY4qDdk3WTDLjsdhHXahjHikVo2kpkNhigEuJb05To4y9JWO9nR+dO53UPcNd0uPYjvrj02NGA1IpRuPC/caKLkxO45bj12P1YygV0fWfnWV9qWjK41xZzIxy4zedmuPUY9rjiKVLgEuJs3RU3ZbDQ3jaXYrpSgito6qjnGNJHEZdZt1MMR+WJC7QLhs6KZnWbcJj16Q2XTJ9+SORo1/REUgH9Pgut2Eu49edNuPF1cbjF/0xyPXQrK6BzsnVvuNyvf7jtuNUXcQjmjWmlKYSCYQG45Rj7uNB40LpKqxILkPjdeMs3RHjAeN249HjYlhV4/qSPN2aPYxjdWNd4yxj570e47I1E+OlaqIuHeNMYzdjBGOR433UY+Mt41UKFph745Vs4eMN44I18+OK43c9A+MVEva8xp0w4/0DZaNJ46PjwF1p4ykjzTT1uZBd2eMvsYlacFi8Lht2EwM3KSWVpeMew36j+P3zlYty2XUgciJCCeNUI/GxjbEUjXRFroDBEB2WoSNW4zNjzZVrmkKM6BO4TbKScKJCTsW9f11IeWeWBOoREuYRY8Vj6D/cQt38dDfjRmPOpKVRdBMGIgkOc8a1w7a9eBNh7WJ0bBO7XXTxDBN6Tv7DGx1v42RDzjysE7QTghNilvBAHZZME+rjodn8E81lCi5wPZrZEuYP2SOExxWYfcCVQkjmLsca8snndeyNG/z3FWXjROO0402ljhK/EgrdsoMNDY71mWgSjXcjkdh7lfM9TD3Uo7BF9hOY6o4TgslqY8ShhGiBYe6E2hMVTTM5tybkBhembO3mgD8J2QmmE9ATgUMWE5B9as2WlTr20+Mgg4pjRMSn5fddRGPuHXsS1fLJEzwTruOsjYEoRhL7HVJC0NrWrMwTKt0fXVkT+yiQmFLI5ROKEwXdVROgozoyas0gankTxWO8E6ehxcGljdUTDzqtEwfa7RPiE02jSZVNExejLRPeEnbpDGPg3Vx1GROA3TRjgGBKjX0o9RNbY2RDsxM9E80TZvFLiQMTUxOd3WnVaxNN42o5kbGLE4DCOxO4EwUT7FWjE9LdteVoqkhAyxPD4+k1+xNVI5sTZRODE9BjMxNyYesTYxPPE0dWdxMpE51j6RMfE1XdHeUe8eFZeY2tpBUT4w1RIma9zBHAk7ZWnZYSruCTDRNKeSQKouQCE0S9hBUqYT6IXUUrE8MTSZ0zNGiTOv2EQvnCZRMYtn8TR+OQk26+0JOYEbCTihXwk9k6lK5Ik+alKJPcMNIT6JNlkqCT2toMkziTVOPSnVCTBJOKmZGxpFLJJXu4EJMJyXMRVJNysTSTcEIck/NJIpOMk+uVzJMSk+phUpMYk/r9dOqnE53jZb2Kk/yThxNrw8STWOoDDvcTkZ2Uk3Z1LmOhXSRCGeP5FD8jItnBE0YYORNhY70hoKER/MYTCqiIXfyjmsOpYwe9LHh0vGeSkpzkE1PVub2xvQxNi9w+k7GW3yVH6R0T5xNOpTG9JpWcTSGTxq5PaMRiqwP5E/Xj0b2evfy9UN1mOHGk1Va3OCclKZMz42K96ZPavcGT3pPGrrIOONSiky+RgZOxkyWThrz33Yo4eZORk6mTxr0OlcG9tZPZk1LOJYyK5gfj6+NlvdWTLlp0RQZuHZNWrl2TiaiVk+clRZNtk1DdQ5M+kxFIVa5Gk4G9MZMDk7hNM5Nlk70EjZNDEzyTE5MmvbqlK5MqVmuTuZP+k3vV/ZOBWoOT+5Nr3TEpiuZHY4uTk5Npva8Nq5NWWmGT3ZPjk8PhS5Onk3uTSYbGro/2FZPA43jDxKU7k1ilxCXLaoiV9x17hCBNjT23gz2JXMIEPO+285N4lTscjZ2NTWJjZ6ODo56TsSYeVNtuRVLt9DgTmpM/Y+W9xpXLk/djqFJvpO5WPJY4U4fjfuPRk7eTeb1EU6iAJFOzrvBOcFg9kxQTKb1vk1cln13EU5hT77YZ2blNTZMFk2mTAFNevWhTIdF0U1xT8Na/EC+TGKXUU0GTUN1o9iTkT64EbrPD3JNII6+T0lM1k7JTnFMKU9aq1135k+69vL1sUxKlnE3VOiz8Us7xaJJT/5Otk3eTmZPGU52uY5LkU72TeFMnk+xTDE02U7XWElPyk2Y1TlOGUy5TNaOdri2uPQNvE9tjXlNKk/NjOX21DEVSjFOr49MTQVMGUyFTp2MxbSTkWFN4WPZTLFM5vbFTC42mmIlTdVLEcMgTqUPcpWpTA5MBpSqj4+WdlnW94FM6E7NtHSxN1jxTPf2xpYhTHb3uk0AjuWOnAB1y7tg0QDpToz0qU+/BCH3YodgIA92/LBBd9fiWk23De/2GQMjkAoLeDFvDgRGIXcZxM1ONU+ejzVNxhcqYftr9zjZjsDnW4/GpPVMrobGQ/VNdZUhOS8TDUxVTYwXLU57Wq1NmqVL12lFzU2YTjn1vY4ty4tR25qHqEJV7cVuT08FbU+hhiZC7UyiVg1QDU5yj+2UP4PwWRZznUzNTbyFXU7ET5ePDuUuDZIWJtBZIYWNCImvxUsUvU91T4AnNZUrQq60/U/tTQ1NQw6Ij0NPjTtPZJaNGMcDTgOSg0+vluD3s/bHFxg2I2h3aU2Pzvfhj96lvU+5hqtBo03tTmtwR+IdTUh1tbXJuyta/FotRhNN7Osc9FeWk0wKh2KEtkL4TeOXUzOBUNJTFwrkMEFOKw8DacSbf+vkCbT3Q6MUgxAoWBGlkykJqlT09F30Lo5z9wioJ7RRuHlNgtUaVpr3b43rTzu1KgLlT/4PG07qlck2rI6iD6uThXYATsXEJ7ZakepWLyQGV5aEE4xl9Q/0YXacoFEZibvKjfFN6UyZJ1tOKvQ/jo+hcbu5a/m24UylDVtMFU6eTck2i0zMlDtP8SdVdJj2xcZHT3BL+lYc9CFPIUySjwWM607fd8yPO/OzWltMSo/aVFb1WUzIjzXibMnVuXm4GvZuTXVOMlPHTVyVyTWaTYF0p0xmhEV1xfXrmdBQOQgaSAKMe09K0Dt1+IxJjLUMR08S5HUY3/Q4jd/1OI/OjsBM13bqS5u1JjVCU8HSlo2kTG0Phfe8jbaMuo7zj2z3B7UmNYqPZIzvD7sPmY9mjB8M107kygu09XVcjtNO4Q9GdCsKVbrLtoEOw4wkjLKMfrUjjHyO70ypDi12P08VuAKOSff2jKFNj01l9DNmsGHduUZTwdTHTHj3J2QcThLWAvUDuU1oHbowDgVNkQ7rFnikSdeAzS24MtMxT7hO/jW8hV9nDbuE9S2Qi5d3TTi3yDogzF9L+vO9lj91IUyN4i2RyYkR9wDOsYR0AtUBDENXAn1BtuNCIaNCZYbxai8HEglkqAdg3ll0IlwhJKkGFKQTSGjBOU25EuYvkgkgMHWym5KiyM976hy6wznjCa/zMWvIzKGaKM8C9mjPvznMOjMKAIGO2Xw3Slj9Sdum3LoeOkwaRckYzdi7qM/VdXw0wVoIzldgV6hpQcU5aZqqFFjkm+ogmYgpCAPwzsEKOM444o2oiM37Q1SpSeX1jIYVZsR7qQmbCqpT1RrIlbpy2SGhJAqZOdy4PWhxFcTNYqjEz1RYlbkVOm4XVFplmQ1qW1lkz2C44ApbWeTMktkaySTMWM5xm94aVOIvqcdAhMwD542PJWkERtlrB8lcqvjOK4Dh5WsLvmrGwAaaEyQ6RowJJZO7UEwaxiIUpZ7mXuKcClmqU0FCyi8oKAh5U66PCLoG5k6MWGIUp4aYtznERHFI5qHh0p64mzuv83mYs/JQsKPKuhC8KW5orGMRwAI7rSgXkYErQZmsz6rQPUKg0qeYnOkczQkohlpxyOGOMOqHsOe1odgeIZzPAdAqSMQk6zgBWTzOS7u2uOzMBAhQUF6kRLHiyHQ5L9Fc1IUrf7JNKcypAs6Lo7TNjM8qC3TM2YL0zfy39M0xSbbaNavzCyiYjM70pqLNdM7fqlbmFGOtUUqVzMxm8TgpaTOK0yYLjmCszwG4x9Lcz0Wh2EbjmoLMCgmsyTnzdOkizwG6T9PcYwHTQ6DEJx2SmqlaY4QDvAqyzWzM8swlAwLPMaizGMLOvNRa58LMc6igSCNQIRBKzbBhzGsmCiLMys+KyHLOBufszhYqDAvKzbzMCgnxUnzPcWryz2aY+M9QofjPachqyMMITMxZCPTNLmnPV9xpxdCPYEOpDM14zhLPlsZYCDrNauFhCo+olZuSzMzOJvbWjE3pLMzCYjLOw5tzw+VQSszxkUrNdmiV4zdS/M1uI3rSolTqzDDhqCtxOkdobM/8zjEZgEwmz9zODLvgSVrNDKuG85/ROClgZS84MWLmzKdT5s6uoALPJ2uWzzGops29addCYehCzrMx4suOoBTwTU8qzhzO6s9IqKLP+s+MzLVIus7QWYwktbF6GddDBZoR5wzOIaKMzY7Nos7fqq+ahswe1KqgRsyU97tQA5jGzXBIkQvGzowLoZMGE0sKYEnTSbMISgiz8pbMggq2zagrbsj8zGLXUOgWzbdqEYesz7H2ns49CWbOJMmoKBFoZ5DJC8LN5uKaqD7MCs0+zHKgvsyyGd7M0qhezmkJOCrlkM6Z/s1WzDq5HlEBzQ7PhSqjoo7MZ6kIzjCp00LYm0WVVZRg6BjpeMzGClshjFI2Cfw4WNF7O/QDvPPpSYXJOrhpWUHNF5nnYgLzAdBRzwYbJQvD1NHOfEHGIElRocz+zqxqcc/LUj9O5DPGullK1/EJzlJAv0nxzpwokc8xzTk110JJz8dbbGqRzLHPmuQYOQQyZs48zw7MfGoJzI3hsc6JzxFbV0mpzDQiUc5Bz2nMEFnJznDyxZa8gxjYCHq46JnM5tlpz2bOrGuOo5YL+COG6ObInsV4T7nPSc9yKMYKuc0TCMkUzupAuXYJBc5az5nM9Gp5zu0Ohc/x5DjY6LtFz6YJhc9+zMnMucyFzK0Jhc3FzfsyPyqPW/HnJcztK3aY62PlCj4YDpnXooBblgurii7NtM7azHTO7NthzrSq4c2Izr1lz5ZiIiazEc0calnONgvKzZA1Uc+JzJFJxiAvsmzpOc/xzTHPqrlZzuWW7EKYc2xq6c9E41GQmakNzKXP5gtNzbIrmQJfkcK69cwyC4QAcgnlzp8o9Gipz8nMbcwNzsILJQntzY3PK2K2A9HO81oxzdYJLc1B5E3Oolfq69WFngl1zk3Phc85zI3Nkc2mzwaTdc9saxsKEdONzgM3Ss29z/bppc5jWTg1sWZlzXnOQeaSWg2Wvc8NzwPOU7KMCIaRBOp+CAXMXOkjzjYrbc2GKZppRcwTqJHjo80az3lbxc7jz0PNBOpjzxUrjGiDzrrgw8xDzCXN482Dz6Vlk819K3jPvZnVzbG4IVrPlVWXgBjDzBLO8KphzIJqs8zXKDXP1MyS4HWF0koXlqEpgZjia8hC+nJjqmIjRbBwygXY5WAcUPNJ0knh58paXcxFz2Ro3bKvJhJnnvArzvJo83Yc8qvNjVL5zO3MBmoRhRvM+5IddivOorIIKxvOHXYzz1srtRvfKyvMrWCXa+vO8riqMPnFqiu7z03aAs5rzkXa5fTrzd0Jq8xaO2vN289x0xRr5Zldzr5bS88Hz9Jl683F2cfOCCjtCDxS2rLDzC3PBNnn8wkJqTBE2/YiGQGS9ZnNA88Q6okj9iLIYufO/GnmuiWZTCBdz/vPF830T2fPLc4XzAkKHSdE4zfOO89nKQupV8znzWa4N8/nzlh218y2zEXNVM28KAvOFhnhzmQqN82LzVKWTbq0zu6Z887VzTjOC8/xwjXNlc2XEyVK6MzR9paav5qNzKMoPIvOoa3OmlDQiyaRh1oDzcPPEOidze/N3yexz1ppLc3SSEWynEfouVXYx89eAd/OrZJIaeLH2ztRz8tSYiC2kftYd80CyQUKX8zWUv/M+FKJzwAtfWNtMOWSm81jzPRpv89fzBnOzzalC+/OOcx7GL/OrFR1zIAsoC6Jzv3Pg9PXly8CD8z3a6AuXWQjz/TppM9aaOPPZcyNN1m6xiMQLCxOU8xOUHOogGntUN4AG5DAL5PO6NkTzj8qsC+QL14CUCzzSO0KFM2gLAfP5gqjzeVhsC/w6/AsrWAgONAuIaK2zVTOFc7DCmm6r831l0TgSC2GmI7PVc1gyY/Mx6jZQjXP1Qn8yUgbiiiRmzPNYc0vzHWoX5cLzAnbo9q7hL+WLxiYLfDNaCyuzJLM4cyvzVgtKyPzVgLhkKB8VlbFtc8P8LGw+FG3zyzSX1rlavoj+KCuk0Pq4dNp06vN18+fzXgV36IELTfPBC7huuTTQ2FmYYaQFnGfzmfMiwqkLwiiV6dXCNM7HBrWA4QsXOsEM3738wgALrgolWjG8YIWWdGdzjlQNjh8uAegkeFtock5sWZULxzNqM3ZDAnQYwgJhYi5FC0JIWZy4uJiIYGTdLF+z83N+c/NCAQvr7AXzyQuNC9HZXGQhSoMAc/IdC88z27rshsrsFzrP6I5sj0LSlm5kHwB4OlncMQtD8/Xz2Nr9KJsLGMLbC+hs+FKhCyQM5wygSp7k//MTC2bzx/rRaCekesjihrEgsQmNC/sLimTUOkcL7AtM82P6nw3w6NHYMRzrZPGuspImYE2I0ThTvN8LWQv5c85m7M6wOIAW/o5QQiL90WhlVN4Ly3PuNDHUlXPz804L5QIBsyOCTrNUum4LmLNjBepM/7PrSpv0GeQTtljhAxUE6StCPozQXIX6vvI83F2CqtRoLhULzwuwC+gG97qGyJ6zIkIPvNouN2xAzDizIcwPDmZWdAupBq18LbQ7+kcMrRriKtbsXwCLKsri2rO8ixwLkNpxJvuw3mQNmKfskIt5zoC43mSEcvlEGfOTCzsSFCW7Qt5kpJbSjNELHMKEmNl0iBYMgtrkJiz4UqsLsrP8i4yLi+Qu9jDgtQ2hC7YAf7wPAmXAN7OPgjKLY5LZgJI6EjyIFmLOgkIIVLMyyFYiFM2zRAsiC2jaEYvAZtrt8Yuoc2yLxhbxGADCkC6JpICLTvNtjtg2xSAmiyoGeYuf8xtCcYs81CPYvBZNOgiLLwuWi7mLm/Mzc+JkPgbb/GK0Xgvli/aAlYuZAh6LZSqdSMSL21hFc3DCuTYIbqkspFJgNcY6TlzDFTzzVXOy7jVzhsY6CzoGw2CdAI6QaUBQAHiSfWmqUk9A67hiAEYRE4s5fcLxgmYOC7zzhIv+M704OgZS0IgI7gviMzjTI5N40xujZ6ar/KM0MNN8qnghcc4vmAnOwSG0C8PzR/ysFZeLDLjVAqjT09Lr5O8FD4soEk+Lu67qOAQTiUDIsxeLi/MBMzHqN4soCI1zOQKU02TQk2Nfhs4mcoKAS0hLV4tyKozTYEvLIBIhnNNU07kKcEv6QML6SRCYS27aWEhSYbXgf8pqIX+LBNhv4q+hjguLi2qyyIu1DoFYcLCNcwxSsizjo1gSSPKimZtW84tmWNxLw4sczt9yd2hCmLBleaGCYY9dTmQA5ivaNjwgOO+LZVQI1Mr2x2wH9P8yKFRrzpKOdAurUnmUGClXTm5ybFitGgkSrlyaS2dMfvMnC3ELeRLXqMnuqNKHKBfjq26+BpjySPK7chZLWFyNi3yLZFryUGbS+ksGoFQCHHouS+cs3SJI6kWLnfNOKgvz8S7CMyFQJQipUFFQMVC0EUeLNSqdoUMoOkIvi2QCYWT9iGPoxazBqtdahUvpsgOL9FLBPE7yRUvtOpVL5bLVS+aLTYt6ErVL3bHxrnWV0HLqyIQL8prGS8OV7UshOq1LPUt4cS2DLtZGS6mLeUtBkoNLXBgX+liq+Ut9DvVL5UtAeBpugVjxsvAyHSJE7oehWUvrsie4CEtcS/wOiUu+0ClL5QjpS+iL2JhkYdQOLVoSS/3Si0u5GPlQ8uirS0kcOTJ/oeRhAGG0Tmbyr9rCE8clvuaiclAYVE5IGi1a80t3jmRjdHLk3N8uTkacE1ZSsgsiaN1LBUUqcsDLRwZ6AqDLQMvZVpJmBi7ao41LY0tyYgzjHrgtWhxyGMvicrDLHg63s6NL3lHfSwhyv0s1ziUU/7Jkyy0uKMvyC+eLO0tEi0fOBUKTsxlLspgtlvq0UUjB6Kn0+ItYisSzijbWJnBwULLSks50YWHdcsRYuQor2v4yxdRJTps4gvz40/pq9nQOgB5UHMvxXKzWyYtdS0TLAkjkVYB8/j1lTl9iVAKSy/K8IXKcqFa6EMtESDKLsgDbZEsDdwKiSwF2WKpay3SUplMGoFBY/0vpWhpNSsvuWmUY9OPRS4X6FsugWBRG1suN9GjWNMv/iwuLjQKdM3zLcirMy8dLPNjW/Zs0/j2eKjGcPAMaC3JYy7MMy7gO/MuaZhSzsphXYSFapzIFuPuzwqrC2Q2MmU5QVJy60hqJpO7LRXKZth5A9kspi6cLVujTgMUcu3Jzk4/YXKp01hxkWI75TqXLMUuAC+1yHdSMUGsYDQN+uZm6s/yRnIHLlM4ty5G0PctVCw2yalrWLBzL1cu2y3oCrhoDy7tylqQtpE/zDHMhywSL9MsWTtUCUcvlMhiLQuHzgEkC3jy4jlEzvrONsfP2/MsSylnLZpVa+qhIIuGwLtUYBcvAi/IEIVrouJU2qQaetAoCsSDTy50LljPvy4/LHZmdZrNaQCuYbp/L/8trC3e60mHEztuZD3Kyy5huk3n96lArnoubcii4P8uQKwEu4zhwKygr/kvk85xLYcvzThXqB8uKKueOjCDQGKtisJYegiJoqcu+juga8G6dGHfLcymtdNZGWeHRs70pR04FRetFrLORljeYLuHXTVcm+CtAixa2I2Q8K6i4fLL8K7rhvCuoK6/aYis3FjLAbcuxpNIrEivCK8WLcmpSK54WgkJCK+q25kAPGIIrhmMNS7ALhCsCM8QrNcovYEkY2nCus38toOTj2m8JfgtexlxoUyrkVQxyIYa2K/ERP+QqM+rL9cv7Ku4rcJKeK5sGTXJnif4r7ktlzhrzPitBKzOWEJIBK3DLiEqjNmuWLiteK2WzGstHxtlsUSuJK4ErTivQ/aEryMvP8ykr71jjCS42GDDHKmsJ49qTCQTLYYv5K8qK0xWKCuUrKGa9xmGWtSubKrIrVqqlK73gMyqxK0Z2rBSILpo2dSt6M+ErjktCLYUrTSuuK+ezspRTKpmSlYYuyzmz4yvj2sUrXZrVBPEruZqKCvMrRitai9qGiyvBKysrlYYbxi8JoOEMctMr0HPDK5MrpqptK4ChUyuai0zzI/N+bkNCrjMlQnPVeyuq/NzLP1rxS9FOvEsaMkEzLgh3i4uNqokK9tQrc/MDtnvLg25ojizLOakKCsW6/yvipj3GQrOYAoiqawwplgeVrzUz8vCraiuxS8xqMKuVfdCNJhYsasCqcKvpetHz+StHUnXdfB5Zhi+8i4ADKC0rLqoiiTIWY+TBqmSrefbHC3XLgytZ0LiJTBZgctgCGixsq4yr3ivMqzHI9Kskq8cqrKs0qyqqBKvoc5QoiEsJS4wqvUAiIFOzPYkZvFeo6yy8brhLwhLPDvVOIKYkS70oy10NSRYY2xJexnfU7rhHDFNGrBQGq/JuwgsRK/qrCzBTJqsCFqsExmrLySs+K8aWS4lWq8cqNqvOq0XzzKuOqyarrRqeq5arcSaUq3FLEqtvKyAufEuf0N8rNpbNONHy4RTny2eLlhKqqxKYH4nks6RLnM2sFPqSBsnqOLqrr5Zn0qmrKSXWq0z0aRJ/gP6rKsZ5q76r1CBGq4xSXUgFq6irvctcEv5i+pKwQNZI0kblq/WrdquEy+arxasVqw2rmBK1q4hAzauFqyYrdrOSq60q0qtqILKrIknjqtuGraavmc8rFy3bdvzGaXYrrRqrxorjq3gurMl+GBmrtdoHyZhJNCY2hpur24bMJS2rlSsRK410h8luq3iyx6tbq4arVaszywiau6t4Lqerhdq3q5loBm6mq6KrvKs9zIfJ+6s7q3/z24anqy7L/atLi0GrLVLDq41zlkjb4lQJUauhmRdL2qizq6MmxvZBQHJLSasBSh1KUUnpq+HaaiqpKnTqrRpmOBGsHasHq3uYdAtoSEYcXWmdq3dG6Gv5q9ZIhyuMJoLOPasxTFhrZGslqxRrlyvqK0Oa1GsGkyRrG6tEa72rV6sAK/+rcauo2KGrFIuzSZ2qk6tKqxfLKqu7S9Vqg0mJq5uzc0naqzCY66sQqiWMXqtMEkpr80mXq+6r2QvOLaprz6tYa6fytuifq9xr0Cu/s1hYtuj3q/OW2mu/q0xraKvGa9prBmvvxiZrNGsNixpriIs7y0Qrg6sV6sBrYau7DcTJ4GttC5FhPrPia9fLCWp+6smY4EtmLQjJlappq2urWw7aoD5ruGu45rFriMk5q4ZraCu0RnoMrK5ca/ZriWuRa8lrzmtoy84t2WvRRMRrWGtvWXFrmWtrKyIr2oYGCXFrmGsJa2JLl+Pla3+rdMtua4Brf1qea4JrMsnAaiJrYW5ia7GrEmu7qs+GYWvRyQJOcsnya+Hac6j6a9urgqvAnsprKWtLrq3ujms76s7aM2tqay+r0otVK5M2pmt+q+DmK2s6a4WrKaoLa6trWGuba4treGusS9HKESYgAK8rtU7vK0y4AmvWK96IMcm/KSx43ZIBa31rQWu7drBq0msEMRoxcck6q+NrgBQYa7lrULOA6+RrZ2tyC1UrhDE0a6WrO2u60fFrc2tWqjj60OvsazLJscmNa1Zr1avMakjrbGtYa9jrxWt9q81rpivuazXKaGAga7PJhGoC2aKm4NqTKHQrci4/athqG7OPqq85zcmeKRwrCbFsqt5Cc8lzMkX1nStkNuY5j+YJ9tD2SSutq7yrbmVc6xuSWYat7Szr8z2Ua17GYDr4YacajYiS62opj5r4Bhjr16v3s7KUCusWmCQSxMaBJvzr5zMS6wjr1rMKANdrwC5Aa+QAZGCjq2mm3kvoLrop9ItWZgjUXmq8c8pq+ebkKS7reWsBS/AOZCknEoGyhC47Jqr07utzc2arzKvyaragBv2k2f0LAes+6w8SfuuhmbLrwvpu687rIWpLJiwpseuR66bLAkC0y1xYfGszGACYt8tySPVq4oy31q4YjmqlcttLLWtApovqD5DoS2jjrmp/5A7rUEYZKYsKHututjzsyeudS/aroetkavXrcespmUBGzeuxgq3rCetnY0MpvusZ63yyPevj6/u4+2uJAh4aQevxrumY7evp6zPrxuul2Lnr+cg7KWBLhetnJlZI9etl69BYFetE661r1ev3a9brVmaTktuGa9bxRliGnRIb67C42KlQsohrI0OX63gu8mmHEuOYCmv0Zhli5KktBKRGd5pKtKx2VAmfs2cSI+uO67wVqAr4LuQ8hxIMspCYEBtKlGkq0BuzVurrACsXmjouQBtQG2+pB5pwGxgbZFOAbutrPisbmPAb02kgG0vLaaY/63gueBsvZiHrbMqua8frN2vBqw7YZ+ugq7dt4cy1GWtOyqvva0Cr1wZ91t9rLSFsGwJpN+usYhiyn67gtsDCdA7LlGIboYv4a/krhGYGEgA8tmaiGxUS1Jxr62wWjMrotuIb4gbqG0guXyKqGzCmkhvKG5ob667aG6rywMJNa6HL9Btlem1rzBvRy0Xruan4rnCaUGszq/frharJqYurzCn2Gzn93bNb85/rlLJ1Sebjf+ugKwUmZtmIG1gbFWvMa14OvKhLiVQbI2Z3mv4boamkGxVWKBtGa1D2URuD40gbm1YMsvEbk+MZG1vzYBt29WkbwBu5G5qucPKNiJ60mBv4GyNLYqvjMGbrnjbWG0ww3yudRctCjaiVGNOrrGIuG0tqBzZDa0TDzRuhaahrP4ZHqlIbK3ZHfIYb0hvna5prZuojG6YbY/aDG6Mbs+uRG1MbChvw9rMb0xvzGxKmryoRjk+lwxvNG0sbqhu8a/1rHms2G4fLob0waQ4bQhs0KyUSHRuHatA2fBuDKVpMzmljNnaYX+veY6QToRv/6zsm7AK26EsElRutLnQLwMbpajEbZBvO6q8b3xvUG6+rExtQRq8bgJswG3eaFAm26NCbyBs0GxaLEqafGwkbxRs7bkBGUJvJUz8bwcvVGzazu8t064cbDRsda+qm5/QtGxwbvWuXGwcbg6rLarcb0Glkm30b0WsDdnhYQxve1iybcxt6G9fW7JurG67r3Jsc9GMbEOuEG8BKGhuldtybuxue6+srEqbCmxybB5rSmzybEptXK4TrA6sn6++a7WsPa6PrTmlnG20bdQnUm6NqjDaha8/rTuGTwg8bH+vVGM8b6ZhI8mibYRsMsgC4AehvG2CbBBuh66JIdpsIm5kbd5rOmyQb6JuQ7uCbyJvC+rab2bium1vzDLIem+kbYRv5G98m30iem9abOtaRm6GbOJt5K3ibpuuBqwwbFuvEm+qbRpshXAs2rRtva1SbH2vfqnnWTCuGm9rhmZvJaf9rXCtQDDKbk04VmxLIKhsKmxEbEqYGgvCbdBSSK9LI5+q1m+Eb1msWttWb4ptutt2bzZucm6IS7extm0Yb3lF9m7obdZtoq/sbA24FQvxL3ysZakGZBFq88poqREi068yO/FrWrHJLi8pTaSDq+cucKyXyYeidabsNcXYHm9NpMYETm5jrKPpQonmJR5u46ieb0OsmmskbqWukxvnDv+tnm7pCLrpTDl1pD5tIm/lrirGdaXWpuOofm+pZb5vmG3Qbypspm39aT7Bzm4VWi+SNqJNKThvhyESzupvoGlTq0zOAvfgYAZv9AMsze5tC6hez1GktcojGiovbhvzVaxuvlnhbphIyalXy5FvrqdyrXesQmxD6RFuUG7e88O7lCphbMmrhm6Dp08x4LiRb326MW0+rXGgE6xYb4FtWG4vqWSAgazrpIul5WHVUkKuTKAaJ3Bu51tX2Bpt3Pb12CDYs6QbpY2sc65P0kluyGAXkhQ3La1pbqluZwupb55sa6xOm3zPaW+Ko5hZAm5GqBltXNTpbVltJGz+bXutexkQSuuk58w5bTlbGs+ZbhlsGFoUN4Zuqs25b7Zm6W0EbDaa2W6815fMeW5tWoFsDtrUb1TOMGxZoYluNG+npG5EgWC0zy5tbEjBrCM76cgmrSltZWMlbwBqPGf0b4PLf3Slb55krdsB9wwtSDuDrkMuyGyVbBVsMQBIWdVs7UVVbpFuSrRVbCRQdutwWqevtWxWR0lbVW2bLshuV1qVbGXSKBnX0G5F9W4JbYFsAaxBboluTMLXr+6Qj2MQyvioXGxlbVxuG6qtG3RuSrS9lIpnEmUVbcfa/NHgYb0OZAlkbxrKV6UfspPOPmwMbB1sPIrtbpRunWwnz51sY85dbHAb3W/gLt1sMsuqFTzo3WxdbTluSm8L6m4K6849bBPM7JgDb3eVHW5yK0VsvK8mbjIg8S/FbxuiJWySb2QI+egHollKrrNeU2pvPupPhsNsIKiFrhZvnjhAZIyC8qPxCvhsYspy1NpTYGROUlOwtmxw8ExSP6bV8EeQdmxebbyboSI3oO1HgYzPknLpBtpM0GPSgFoFUm8sDK/Rb6Zgt6NvMj+nVfZzbvijGnIKM9YBZvAL0jNumWyEGx6agah1bWuXIFMHWmRbbzGXE4HMSdJNbMVvQ2zDI2Nt/Wgjb6Zv5wB+WLWxPOjggZigl1ghbOptY29JLQK46GL0gEkqbW0abghmMi9GrFyjmm2cxWaQU26TsgozjVo6SLWQU294M28ytW0abeHRpVKjbtLSy28GbPlETGUXqvtugG89bZHIYlCLbhNuaFJzbJHa75Li6UduGS78bhKvkfkUsoeZ5pAzbonIp22SUaxrp2zrbUNsEm8TrHWpG2+friGrZYJ9ICpLHbBjbcluEm9/q22l0m49rrhmZ6coZGlvAbr08j+mEtMdruJifSGfm/VtZ65DrY9v1gDEMWGu2m6iKE9uh25GqQ9tF6nPbp66r2x26jeoDm17GDhGL22Lao9ub25u1a2tVGxdr/W6xWzcrrUpDsGGrVRmWWaQut2HW25jb8lvLRu123dsTKhZZbC4pGWWbrSs8DZ/bANSFszxu6C5jSsvbBSuAO1c1+vYdi2MrYDuvNTC2Pgb+WzY8d9sQO+NW4rmIO4clIDtnktA7GLWwO8g7CDt/22YMVduXaxfbjMsWQvXbLBsjQ/K0kUJvozmbq1vIW9Ymaxlv21ZmFDvtmVMZM6pmmwHWfB7CQmn8IVuFrdb07ZlcO4nbv1uVaxKmCjwHGUTJ7xsjQ7w7shj8O0HLCZuh6zF0EWaUlkGbWhuSOwO6eCsmW6gbiQLyO3w7ijslG3QOKjtiOw6bp9u0G7rbNdsqm9vKpDu2G0KZnU5eOKhulJs0O3mblmpabgw7ha3WO/vpohpsOyIbB4hImRNbD65eOw8ZDVsgO7KIA3LD211b0evBO2vbghaCO/Wbwvr2skiZLVvm1n47ITuT22RIshuxO/47cxRY9ok7aduROz6bO3NTm8/bNlgWO8cbIlNPOoHabduZWzJLDtuKW3jbsSa683PpEvNPG5SyIbFvW8jzHfaF3d9bT1tRO52btg7qFXla71tYpu07EBS3W+GbkhaF3X07rTt0pr07mD0/W7k7zlsxO+oVHTvA2/BGYzvTO507szsEK0qb01siW++aR7Aga+WZjaig7O7b1Ot8GO3btdvoGvgONTshGctaqplGbgQSP9u5Sauk8a7VcpsbNpToO/CCsY5SlmMrDzvj6J3rIuv0W887HztPO+879I6/O4ervKta2tiOnzs6dhAUgLsEO+fbettxWy1Suzthq/s7bnwyWyc7FTv223nrsD3OOwUrZ6xQWUOuA9uw5sC7dhKeUiqzELuku4S76jspGxsrMLtILo1s/ut1s3S7lLtQbo6b/zsUu9zwZLv7DrlJnLtUu3LbGjtpazy76Eh8uxZ2QrsMu/HrSdsBq6Y7M1vvmkU7ZCt5WwtblDtrypwbuZsFOyPSMQ64u27aIpSjmWo7TJuNJq9bPnS6uydbB1uGu/GbW8uEG59bCjtGu1imJrvflWa7Atu+m5KttrvwXOI7ZurOuzo7O24jO6Db2jvWuyDbBrsGOwI76zuKm0JbWzt1G4vqyLuI29zDklnYYsnL8VinO2Y79ur1Dpc7EiGQWZeZRzvQa8AObmSmEuK7/et3mmvU3hK8u6y7RjuOuw3KEln3Nly7ymonrAW7OtpFu3nbhBv5u+W7IrsAG2W7SC7QondakrsBag279LsVu18zWbutuz27/LvQK/k7HdsdahG7xtspDtYMbeO6JPCad+u0OwS2t8tFmxO7nFmVqtxZ39vLhqHsoeP8lspqh3Kbu386IzsgaEdJEsivO5W7G7sru6EaoLsyG/W7p7tFa487Z4bXuzWUR7t7ux27cmo7u2e7W7tfMweUoePHu9S7srPDu2c7iQbX24jbZ5IoQGwurwD40eVhj9vxuzK7u1ZVis7bF7kge+guOCAaih47P9uYO3S1VAmbYscquDuIe8hAyTupSFUrEYKIO9TyWGuEe2wubjp4e7A0ESvYe+A7xHv7Dmh7CzMmRuaK8Du/2zh7mHtdmtR7MDu0e3sbmztXS1fbIGCI2/6YWJbuyjlZfmbpW9BrvHv6cq4zcHuSUVlZwBoie2u7AMut/HJ7ifTY8kp7O1F59pnrKTs+K8Dye2LDC5mSiOaicmp7ensqezvbAnI9jmFZJnu6K4LM2VmWe4O7T5tme0Z7HVsae9jy1nvAGs573HshuxJ7fxhdCBMIvQgFSP0IDVBNUC1Qh4uWOyS4Ocw/UpLZaVv0rhAU11ngEZXzMXt7GgEUIDstC05oC3qtpGPBMjpjRrF7UfNsuyW76Y79ApsaSXv8OsVirxpFez+7r8oZmKV7TxrOBFcM+hosxqkh4Zspe9l73qtFPM17IDu/8+9ZthpleymCJXs/UuYdFHvt7D4rHXv6Gv17NjpzGn17Ixrle6g643uQitUajFbWZYl7OXvFu7+bLGVNOAtZcXsrVpV7P1IUjEt7dbvMq8N723uAmvw6r8KHe9capntjOgt7HVJne38Wl3u8aoXkA3uoy3M7Q1akuFV7MxooIiN7k3t2e+pC73sTe/saKPMGUr97bhrhm+XzlxqD+nN7EnoA+4V7u3u4m/t7P3uRBRt7KYJw+8UFR3tTex8aSPvoEuD7V4KQ+8j713tfe0FCW/b6Gjt7MxoE++t70PuyO/RbllKEVIt7MxoIUh97bxrPuwJzTFiA+9V7gGBgOnT7QPsM+0xz/xqzeyz7FdtVEV17ZPvmu/t7tPuk+zT7TPtXexz7XTtM24tz4vs4+5j7GAvc+3L7gvsOuyt7rPvjK6d78vtoFor7LNkI+8D7nnOve8Y2fRo8+w97dAtfSEb7afp/e8lCXfrs+8r7sQsU+9b7zPszGg77UPsm+/krZvv8+0UGvPv6+xr7tvsOSxT73vsS+7z7zvtK+677Q3vB+xj7QftIaqL7IDuuGHPcUvqVtiz7sfsnGjrro3vne88a6xpS+qn7+LozNKTZQQ70+1L78tvCmjn777Fg+4n7xfvx+9XMofseq6K+Jfue+96rNftS+kT7MfsN+8zZTfu/GuX7rfso+3j7PI43FCX7bfvZ+737Dz30Y1X7xjvYZiO7YJoT87EY4tkRe5xSUXuaC9K75usi9j573VDrCHNAmwjfK3EYP8Xj2p/ZM7sFc8Q7VFjX2eO7SxMl2eiNigo7+7lLDmhLCs7Z7nREkWi6V/sUNiUUtcs8q/RbjagD9Nf7BiJxdhqIGdmPgB/7MfsC1N/7M9qQO/JC//vv+89UT/t0W3l7GNBf+87ZiX3PSchOSyAgB1yaZJBwB/hWuXuq+64Yi0IwBwmKn/v3+0iysAdS8hxbiAd4B8gHHprAByL8AAekmmXiafuX9sfkMdk3+3Py0Y60B1268ZpwO5z7wpqcuxQH5Hy3+4wHV+GOkb/71AdiqMMonAcsB3F2HAegB7f7HFtN9hnZrmgkB5/mhhKimkgHbbbC62C7L/tSBzHZ0ypUB/i6agcFw7IH1Mvk+5AH8gfPIsQHSgebBoYHnAcaB7dhHFtKGUia/Af4utYHjZqsBwX7Arukxja0dAe2B2DGqJQYmu4HHFtzk9IHgAeg7pWabgdgBzH79gf8FuD2pge+B+oHugfDS3t7L/uhB5QHt2E6Dp4HYQcoBwKbNVsOq5EHOgcmB7zrDFsAbmAK2Acx+6YoKZpcBwwHRC5FGg4H4Ad/OwYHupY2B8EHvxpFB7UHEgdsB5mrwYjFmkAHw13RVF4HdQeo++1GDQecFtkHRpY1B/0H4QcxBzD7L/t9B2vZiQdlBxfUwwepBzH7QwcpB6QHHQf7VS7ZlgfNB6x1rvxdB9wHXatd/G0HlQcqB5AHaEjLpFsHpQd3Ro5ojQcrC+sHpuPHB/4HO6s3Bxi8TQdOBzS7equ7B7MHSwfXB+Qi5XYjBxUrl7u8q+cHvdnj6Mg7/weLB8oHvwf/O3s6NJrRB2umEIcAh5oH3fv4juvckwfIO/4I5gcFBwIHsYKIh4/a7Qez5piHqwf7B2CHhwfqRtf7j/skFriHIgfoOyiH1/v8mMg7RIcP+08jFIfyUKiHgIex2mv0VIf0hx57U1trW5RwjRv+OZN0GNurmwm79OviTswraaY8Ep4TFs52mK/L4GYAufH92BuPe+h7o9qBO6X5xNLbuzKH/yVC+4LbZGSwq9zrkZbKh0JuIztahyDmiocJO8tmI1pwuxhzCLusbjXKpCsdKiP9ovXNObG7e5gCh1XrYUZO24vKQEMDvdhb7OtUtqL1Q1jwtqL1HQkCB+Vapbb+hyGHQYe3hTGVL1oRh4WxIDv6ApGHSFqBKIGHPQemC7FbVod12w2wAktIeDED/IdIW9Obo+pbOSWSIofdEoyt0Oheh2GC8RIgBfEQSFrF0J4SxMbhm54SaXvVh42H4YduA1ES3y6vAM2HyYceEiAFbYc5Bw2HygYy6x27f7tyrowqt6ACSxaTaLnUOwUAzoeL+/xakHaM6zzYhvm7uGWH84Lzznlde0Y7LpHTgLmxh6ETb/wbh1PO64c86z8H4xuQB7XOh1KmKO3Oh1L7h3oHGoenh1uHF4d1Os6tD4fJh8OHLofbymoI3ytiNheTR9OOh2sK58ojh8Qarw7xAhiLEVPyhwQCn0rROwyL2NZMueTCJqPHhpp7+Hs+K0l1XThhVj1OEIZwR6hH9rt2+5AHyEe+Wp0jP0LBhRaVhVYyAuGbW3Lerk+6QaP4R5DbhDsIu5fbxuhLknAQWTJkO3FFALnaQrLbF/tPOU2FiTaXQmAJ25q5c1cHRLk0AtmGPEcAuep2f0sCR/jCcgbZRTam5AI//NEV8IeFy6JH0kesJrJHyKWyeUGHOTMTkrFzWKojhdxHHIeAq+P7CIa8ZtMjgYgMJS9Lt+s8e7luuRis8IIQ+GSNczu6GToOK7AGib2+WhrlmTqNM0Ml4m4CB+nSHkcdRl5H8svaGieqOTq0bqRHgUcNOv5HWQKugPIC5mQgO1FHT2YDhhCGSBrxRwhHlHvMq0d6mkJlOu5H+G5KkQizQ4eIaLt4eYdUWADan4clJZjaFhjwS/P7leuzh6qbVuvMR3TxoBy6laJrJgtj+v1CSEBfJlCLUshpBwNbSEfHNkmN7Ue9Rx1GIDsdR0MlmtrLEs+HCkctR2NHxTpf/K1HJhpwu/dt/+2FR1ImJPaha4vKspItJWBHWANs6+WHlUeWG2G775rbECXwezs3NNQTnAJSMwCrY/v/u3IqJtoouydHwXbCvY6HmuukE3yG3AP1K0IZvnnu2jeHM3bh2qib1RbLlLjmz0fcTqCHe9pRrt3Cf0d+1oEmz0eLlBe7IMdprmDH+tba1tmuNNxGsv9Hr64LKigJVNOvR/Jm60wfR1jHYStIrkfrwluArrdrxuji8JLwRhAmEGYQFhACe46L8GUT2lOHl2v0KwiGJXO5oUm8vSuOG5Lzuc6rQocqrnt9h0hIymLTKhFM1a5kcn9zqppCx0cSY3HSg0y2HK5rhwekUsdrNpLHR9nDCmjHVTrBiPl9vMdspt4YymJZ2bp7/5aCrqiqosc6x8rHuiuGxwo4usf9KwTHu0dEx4i7S/tJS84I+W54ZczlYwTxgF90jetxgLZyVDoOrtTz2Doex21T5kAw82nmCQA8Ol7HEzshGl8sAHMBx9guyzrBx/7HocfVnWy6TgpV5DM7FjPMMr7HnLNCe+lZHjoJx5sCkcexLozHhkc8GqOOdUeX6Fplzsf7Y6bM6Lsm61drtEf7+2l2nysOxzIYkuUEZXg0xgtiphkWi2T2c4YUVzrhx5o6UaQ6OkHHncfuOj7HHccPAl3H1FYDx/pSfcfHezUWo8eVgk7mace9x0PH1poTx4vHudsoy31uvMY2x7Uzp47FxyJlUuVdgq6CLMp2O9XbVUfEx3DbOhg2R+zw9kcqFSFabTrb8wJIU6p7A7WzD8cMCOFH3m4SR+XLQUec0xzC8vRvxyFHEkdTgAgbFNq0biUuWQ2ZR95Hv8fHhglH1aN2NIdlXQZPB/Z7MCf9zsRG0CcvxyKUOUcpR4N7Z9v7kF9qta7xFgFuSipgCWVHMJgVR1XHRDvpywlq9cer803HbGX7K27HJHg9x+3p+zrDx4wnbQr9xzPHCfMU/PpqDCe4hEwn/NuHTqg6bLq/88wny8ccJ3wnFIYLx8InmbrRxw+YbCeZlpvHdEe28uzzjcelx0ykSEL64whbFocL+2fHC6pUJ3ObRlshQlrlXL2PR4HzdyyU+1C7N8M67T87WLrVNjC6MuLt+4Rh9YDfu4Z2CAf48fuI9icD+2YnB9okugDuOlVOJxYnEeVuJ5fRHifZbpdHAEfOM0HmpXP8YfbloApgasfHNEfaJ1vH75pH8CqQG/tKFae6bsdrGi+V/VVfi/1uzEv6ISeHeTt7+xQntHpv8KvzxFVwFSYn+YIxyRAbonq8qHYuQZhO+JK6m/O5K7eHqvuNJxo6yi7GMxiuH3imuvAnQbuQR5hjTSeauqgnwrozaVF6s/XtezUnEydv9ea64yf+8vLu5jPLe8YrlkcOOxZCKScn8OUnRBU4qIRHOHIcR2gW2SfKFUeHizKdes5I+Se/i4KbZ9sKJ7XHgVhSFYjbWSe7lUcn8z37J6YWvSfIlvY2VvvzJ9FEU4BHFgMn3Tt1gtMnSnq9DK3WxCw5enP8wPuAp98nNhBMC2rO9LrQp+17sKdVugZ7PSfDJ9CWvydoBysnnntzu0h620BL9CoLbtuaCk0ircfHO1XHarvXS3crpXMXFanDVxX6ZlbHobs1DufHMxhQ4DDglACWcN8r9XXQ2r7mLyfKKhKun0vVi7kySED9Jxinf1sMi1Au2OFPulFuQqfLJyKncYWSpxe69xJoSL7m4ZtQTryn+7qiSKqnQ0cRHAx2IWYiR1ayllNRWxJH67q02pXTbptgK0Gjbo0CB0ant8cmp0o7YCsilG1HOqeWp1qnfUeOp9LaP+gOpyRHhqfupyYarqc/Qvdt2qeepwgnr0L+py6naEcgAnBD0S5YR377LmsGR2ubL/rKNg3bngBhR0U6JW6aJ+KriSeKJyvyeEqhe8JVCuTIlgj7aae3sjcnuRhpld8roHp5pzf6QHq/h6snZKfDyvgKtoeX0yJVvGomBoWnXIftlY1z5af8g0FpVOsJRlK7p8dJJ9vKGyff8ImnDyeyumm8iKsSh81HrnqHJ3j14noReocnu2hH4l2HqXMzp2Fqc6f5egun0PIMjkGn+PvbJwwyONTEjo8ns6e0W1UH7SevzlJ6IkLrp0J6jyeLp9unfyfS+9dzz3ymugencK6K2DioGCt3p8KnQjvEOgQhPLo9NKp6v6fvp5enJ6cHB+0nFg5/py+ncydvp5q6kGfLpzL70GdtVUunKYKAZ431SGfA+9IQGjok6MuVOQddbphntUjO8F9H2EftJ+cmQGfYZ2ymuGeGumRnesdMq/b7v6KmulRnR+YkZ+14DGf4x9Gn7ScYZ3+nLGdLLly6BPyWugRnowf6B0UnzmaZpw/yz1BbJzOnRgSVx32ne0cDpzhzX/DiZ0en3eqIUi8nshgSZ6EaVhYjunun0JaCIu17nwZwp+pnyX00jjOnDqIgZwSH7Sd6Z4V6rOk4Z+enlmcaZ3BnWfNHpyZnPHrGZx1KpmeFJ0970h0IZ0d6gtSGZ58nXmf66W5nlycU++BnCFUGZ1gWIWdTNTpn6IcoZ5Z9PmfhZ0+neAZxZwJnbSceZ2Mn/meuZ6+nR6cBZ1MndGdTNcpkrda8Z766+WfohxxnjBU0OABnuWdHJ8Vn9mfEOqVnfnrVZ9K6Osj0ulqWgWfpB/t7TGdFZ6RVrRYrXFW6DWfUR/1utafG6DZ69yfEVYhVbRtaJ/2nIme4Sv+KDae9002n+hK8Nq2n2Ke3KhV6Hae1lSZs7QoquyY7k2fFp3Wna2cMVWn6JZbmphdH+cdXR0h6mlVlp7WVLPZLm4TH9KdphzHqh5LA8MeSz+Asx7U78WiYBoc1S2dLR4FY9nVAe75AHnWwQJ9nnMevll7V5PrQ1cVGDbUVNfiH7mcyp13qZnX9NbjqoOcdHYc1+7tyNSK141YFDnR10NUcW+yqfPro53e7TjX45wIHBpJbtVDnNZZo55LV+kcnxzJn92c6Bn1wNcaJp9lYTlXEp72nAWob5lEGK3bDhB76gTvsht4GnOfm+jznz7pXQhjnvOewFvUnwMdBZ5AHo50WBuaMdi7S53znAgdBtp3S35KjW95D0OeS50JnkkvLZ8r63jbkszvrp6kdI/Eymoq3Z157Mxg2h9ZCeA0jXQoYbDYkp/FYM4c6J5PGXRuLym66aPo259OHOFvbuhGHXPop+lgJmQmxR5oC3ueF+l7ny4feR5oCfueF+gHnIec1Z1TMiYfJxaQGuTLh5y+HNacFx9UC9OdAR24zwirw9U91IQBI9fYLbcctmKbno0g1+nrndej6Mgj1S2LndqqY6G4JaGd135UXulf6T3WBisXTXUdT20hHjHgyDFP6B5SXQh0WawZ7+l3nlqcN57XnqvD158xztecf5Jgnm0f/JyLCPefz+phsfKdf/DPnnfpmLBPndAsZgNf6Z/pRIN3nJpS95+A1m+dU5wkn/ae053IqWeA54MQAkpjzcNfHVhO3ABjbmLskxzoYr/rb60oqLPXX53mYjk7KM+v6Kofyy71HFAaxR786fnrIpxCGf+cvVbFH7+f7LkJuOAYxTP/nK+f5K0vSr9KwQKFOXgbAF6HngBTkBp/nkUfxQ+QG8Bf75/C7Gae7Z8boyXBlYOhL4oeWdJ4SLOdYhm76jhLGh9+uj/EaGSlnsOfVrdzrG5bwRs0zcTJrx4JnqWf7ySwX3Ouc21UZ2oe8EornvBdGh2gXJ1s/UmgXXruUF8IXcRsSF+qHKvuYpyubuYeDZ/fnDOurR2ONjK3EF5WOL8se5ymHlodTZ6yI6fBzEFnw9acW5+GtRQX1dTfnXIf58HJL+ufeUVCWZhev572yszLC5y2bBwVOF0GHq6SdLt0nsarjcYPtE0ehEj71xvr+2+4XYuctJzzm0qffp/YGdk5MF2HbAueK5404aufOFzEXSedYp99nB5Lki+O7Uwab9CMnonuDiwyngBb0O8XH8325BpMnTkfpgFO2r9JuOgKWTGLDfURkQ0dlF/X2F7qVlEUX97qap1UXiWcXunUXsWfQF0hHjRflF6jhD3JpBvUXQ0eOZVPyjsKhEyvWXgUqQKrTk1X95K48QxcRQFMXV1WCzJCLwxcLF2OWObkWx2xnHBe5Lnhsqy6NEuMXHgukeKcRmrpLIiP7OEfynHwADDJTdIaL0Ek+cZcXSxdzF5MXMIt/LicXjQvBzHAXhlZlS4anKxdPF0xDhsi4bsOJtxe05lcX5ofpp4fnuhd0CmkXiadDKHzoq/kMxwNnZiuFhitHOadKyCf5xRdVJ6v8zzneZxe6mJfNF5anOJc1F6xSHZ0HukNHRJcVF6xSmJdkl9Hnvfq+55SXs/q+57iXVJf1R2vk6QZ7F7huJELMly4T0VS8NENH7JcofIsXEZQqbtdUugS4qARq93qMl0dm/uxFF2MXbJc73ASUvxfhTb4Xw/xmjYc8/JfpsttmZ5zvF8CXlqe8l8KX0pcqbgRqKpe3bgKX2pcNCHyXepesUuVuJEx3F8aXSRech1ZHFmhWMCOrBRe5ul4jbsekBWn6qDQcwmF19wq2sqRH3pdgmJy69SrKA0srrGc0Z5AHQZcxlSViOQful4EKIZetJ7IX9Bcxl/ki2MtIBgC5AZfzR94Fi0dMxwlqXdsqF5bnzq2tJWQXiFvehzBuqYfglwsADyBPQPZQB4sxICBrz2q0Dd/5eMcaFwzYhCrJF9mXlir5EMOSZadxi7yGLRbVpyJoBUftl7cqiIaI25mLvZfqnSQn1Ev0VfBkRyUmlHZnnDI8lsSG9jySFkIQrWfdR8yr4Sq8hh0W85cyOgc1/g3bl8l9jXu2m7yGUoYDWNyG30hbl3OXh5cSR8Y6Z2QkjM4WnRb4zi8WF5eShjUWZ5cCB7eX8WT3l0SWYoaLl44iD5e1FiCXNRs1xyUntyoqIE6XyJfoJhFA6oau5lJnFZp3Mj+WABcbB780JSh/Uv5bZhXQqg5uSMeReFcOaFcSR5ZIOFeYVyqzIUPVw/bmiOb+WyRXuw5IV8eWCFe8quRXeUfCZ3gXfxjrs8XHqoaroqf7nw09pxZHbZcp57cqFivvYCBrY5ZTKi3b50die6dngodsbpqOrFdCV8OGLI0vJ4xNgYa/1jfzzi32fBiNqAv3p4X70KvWZfwWIeSBK+p2UyrqhTDHGuccFwpXBlfyUE877JeJhrpXyWcJl+EXXStEjWpXFlfaV3fWUIqKl3omDldKV087+lf8FvuN4pcnKopXhlerKgFXZtiY0v5bQxrMjcpX9lfBVyyN/lu/hpirWHKIx0y73ItIq8qo7KECB3yrGby0stE0gStxV1CNCVcS521n/zstDmZXaVdVpvdoiYbZVzZXRGcmV7lXp/t/Dk87xVedgKVXCkevh9VHg6cdEDJw52ACS2G6YSVC3RIU42cQJkxXMxhqjTTHCg4dlv1XJRdOS0GMP5bBZGFLY1cALmct9YcI5mQWR2XtOqGWK1eLVx/H61czV8/HKcrTV7yqs1dBh9tXB1e7VwYox1eykptXO6f7smsVIaIFsnn8HvMOEql8gygztgB0sYc3V7t4Qyg87Lw299pPV8bygtRjwfWHitMKLHdXlPT+23+jUmJ1S6DXb1eylHmUO2g2dvFi7TpA1w8Yn1eI9GuXrefMq3TWI6SDKCEAUNetsmA6sNfvKkMpvDb1h+9X2NeHSQ9XnEeEWsjX8NfE1wxXdpdrJ1S6G3DQkJP7s21djW+WUE39l1rnKRetStrmoWvWF/AaXYCVjQJJtzuUsiuGeY1vpC6h1zMx1E9m/HTZ6KcXqvvWsnLm6QMMjGBGS2t5u9EMS2bV7FbtqOfhlOLXz+jcO9Ddutfgrr5XblftDp6NE6sc7LuGDLJi18bXyEb4VweGXo3U2FrXScsg62GNeC6WHXbXV1fSZ9bH5ZfdYEzXzeDzWxBN42Yi/KrXN2cF5/aXxuhPhlYXdegO2kHX5sYc14fr+ruqlBtHfICL6wxqwmuW10ZXhVdS58XZu43ZOjeMadcNCBnXBdeBO7+GKdcJ1x9bGYJFUirXcteBO7nXIEY1164WldfJ15rXqtfy1xwX8moQVDBGHteL6/XXqEiN19rXdNfbZzJnvtd14P7XLNdKLQvsK66/+ltn2aiF5/So42BdG/zXQytT1wRNQhvnAMvGOfZSyK6k+w4WmvRG4uphV5RN+9czptKoPOqFYy3nWnu8qxGCUW471yUrW9cirgfX+Fd0Rg/XJ9f31+JYj9de1y4mR9dyRuLqFnb4Te/XF9eIR1cnoJcj10NXD/Lj1/oLVU2yRgqrWEyQa7PX34sR1/fnr9t811HyUDemTdlNdU3l61aqokZjcyxNfktdmpxiykYxxu3X9BfGltVNEq5/F7mr4HwWSMQ36Ds4N/FNNFxYa/Q3D7sXplKLYReDJ0sgSkZKDDm4CpeDAsw3l+OsNyQ3dlecN15NIq68N1rGojc8N2w3sQcxp9Tn1sdH59UCs5uI27hYRSwurcg2U6c4mt+5vNJlrl7nFI3E57o3x3p2B02FgkIhB8Y3njP4ulo3100x+5Y3JjffbjwSeje2lwJA9ue5F5PG8nYLh0tNv01cV8WXO0dkJzoXYDf0qEo3R/uwmtAt5keR6Oau4ivk5zWHDjem1wJ2UTeGN7tukEW2N+KXBpIKK+TnWivmNzE3kc3pN2dubgPRN/1nC0dCjNzXkntO550yd23EbQyzWhetVw7np+tMR5BXWdAUYiE3eee250Wr9jfxN1XycgU4eoUHALnRN+03Zjfq59nX6AdyBVY36ppoqsM3yTeNOKk3IzetN1nX65ej+waAzjcKN9XGUntbm03NnjellgXLVTcuNzU3IGuMXI036jf557DmSEiBkk87mfl5N/hXpzdtNzsHiTcZN+hX84VJN3iyRzdvRXQ3p0X3N3w3uTfxN/k3mZeFN0OXlmoysGhbJ4m1baE3BTfMACbniDczGLqwc5v86OfSgG2Tpwc37UaWN5mSt5v0JR83Ekc+ErsWOjdNhRyopjeBiFi3djfNzdY3oze4txY3ozeIt9gXwLfz16yIXyCZy1ubHU0hpm7n8zeVN8nncafbyhC3yjfBN3S3XjfSMxjQyS4/FmWuDAW8tzH7/LdK55E3+LfE50K3RLe7bp4WErc456dFErfFRr/FMzfo13M33jd1bkU3DttJzWBLW5s/TeSm6zeMtzxXzLeMKqy347uY2tC35TfA58Nd+cWXN/JCQzekt8k3NrdWt1p1OLc3N6i3QzdytxI359LSt6i3EzdabUarlreKt5fXyrfkt2C3+ciCxpq3Zc09rbq3JZfe13dno9dGt4mnhGumt6eLcLcVmgq3uavqXSi3n9dqCipFtrcPN/OFnreZtyJGebcZN283UrfOtwW3l0ayt8W3Owept2S3Xzf2QD83o+omxv83082s7ZG3PjfRtxS38MjkALU3xTu4Lao3921ux6Brxzd3B8O36VfnlZ03xyrnlWM3mTdQV4GIrzeoLpM3flcoxfO3SMfTNxmXCzej118gsHszM0/NazdBlhs3TLfhJzXKgTfxt9UEPBIDt5NXumOjt+x79/lnN+W3jiu3tw633S3XN/03szeHB7hFK7fv29k36DvRA083WHvvN/63QDeBt3W3nbfeyAzneZdP6mU3SbeniAe3+rdHtx1qJ7esV6RzezfyTsm3xmtrt3fX2BIZtxpXzgc9xh2dE7cLK303bztEdx4mozf3N4fX59Kft10rGHeON+7nfrNqt3nrMi1htwGZc230tyq3UBSgtwx3BordtyBr1vYod7C3zTea6xE3r7NxN4B3qUf/O1gFPTfzli+36DtrEtO3gSbft+lXpiCLt3iyynfaN+u3ChcIlxQmJTd3xvx3eyeaF1G32heJJ4s3BUJxt6xXe+gibU03rOe5xn63I7cCt2O3yLdPO1O3+bc4d88HPcbOd1W3q7eit0u3hLeedxurtne1txu3/jeUt9AmzHeEChG3+7d6t/TXDbdBUj4APbfyu1c7Syo6t8dnUKtft+i3ADvpd+lXuEU5tyGGkEUud1+nHDf7Knl3fnfdLaW3r7dKt++3lbc4O6dFObefN0F3oFfHJhtbYbP/LV43wLecdzF3Nlhmd3U34laJt2x3XLfcEpl3hHemR9h3BXdT50y7w3dAu5i3Zbeud4gncy1Ot8g7NNI+t+lXi3eBanwSg3ctV0uzmncGtz9qyaCbm+JZEXdAt3W37XdadzoGXXe9t3QuSXcwt/p3UTNCd+t3+uvrd/5bcnc5d9J33nczt+O1xXfIO2p3q3dKd1V3uOY1t7R3DLf0dx13I9IJoM23Zi2tt5F3hnebNyZ3FkKId3U39drnt2a3N3epGzR3cPLCxXe3M3cYsuj3T7eFrXO303ejdw+n8zt49xjnR6N/t+KX2ViUdyV3BRuo93V3W3fwdxQmg2uLys6OenfNlxmosHfRdyd3cipw9+d3f62LZCz315IvJ2+G17dw8iAFGPcE95pXkq2idyt2MneK5/1C8ndSF4p35Pcdh2T3IvcAdxp3QPec91AmbocMrYdSF7fqOOz3w9fyN6PX3PcJd3Zqedj89+cb/maPJqj3mJvC9yM7OTMEd3DymkfkdxJHQYjE9w12lPfldwG3UudhdfL3Oybel2L37DeTm5t3GvfbdwfW1q2Fh0z3/60D+nr3fhgG93I3MbfBd1238XezZzWYHscW927Ho53C9zabj7did1gngtsiBY73Ofcy9+T33YVUd1tRivdvd1n3Kvc598J3APfsdySMXHe4ggmtkfdQbbr3SPds91F3hveJ9w13FkJnd6b3DMpFLMl3oTdctxT3d3cd9hN3gTtZRYvryEX5d0H3hPfMF693zdevdyM7pPffdweaa/e1d0PXdHdXy8D3fabqq633sSYHd1Z3gPftt0Z3YJdJ9wsA/fep97z3l3cd92h3iQLK98K3o1vpt3n3k+cL9xDRr/fS9yv3rvdy9263frtld4E7T/f/95Kt/3cbd7QrdPdvh/bqC6uH9zUmRG3Qdzv3q4d0p6B3dqBxd+hLZnKWd/s3gnfq1gF3XvqOd3XX+A+8m/N3BA/ED2ybHrf49/P3EvdZdkv3sJsktyN3lA88ayH3u/ea99jGUmsQd8+phq1Xd6z3Fyjx9wfnNOext2gPjRvp9xy3tKdbmoTS4/c7Jt2FW/f3t36b84XPd5IPRbde90B3UufdhSAPQ1GAD4rn4g9LdweaWg/P9/X3QbdN95S3hqbuN7vr8A9sd213yA/Bt/So1/fGF9jt5vciDyl3wA64D9czk/eK57xH8g8QWT/3Mg+eD9oPEvq+d0oP4ndS5xoS6/d+D84PtPeh9/T3IJZNd3Yhx/dYD4gPHHeWD4YPGgA2D48q8HhD91wPAvfmtw2mzg9eW64PflcjhR4PFm2kD/kPU3fIO4lOvg/+W+UPIQ/La2EP2/en96q3e/ex0vmmJg85irEPqHcwd133CfcoDx/QKfe2D00J/bf399gPI64291xqWHdv9wRrhvlSd3dGI4Uu994PRQ8qdzUPKneVD2R3VPdC6TT3dQ8N99ekSQ/eyLSb7A90LrFt5g9Hd4kPjQ9iuDx3jRvKqhn3l7fA7XX3IOtS9+lXIflTDz4CJfdvd9rDCw+YEnBH07f+Wx8P5ffXD3b3Gw8GDycPDtuqli0PPgKAtyf3mw/JgMd3YffHt2cPkbvFupcP6JfC+v45jw8C12MPSofdNzj3E7vu924PJHdM+isPAQ/590EP+I93u+sPn9eXyw0PLA+OO8KHTPf7kAiPcfedD3wPRveX99+w6EsOeIj3CA/kF4kCg9bqdyaHfw9zD/Rmdw9yh88PBod3N6sP2mpLD6733I9+9yNDNw/hD8wP0I95pjp3LSFgj3EP9Q8JD743xncCD5QAvQ+pDxIhd/ccj2E3iHZgD4Cqcg/0DzI3CtelhYUPJIofd+g7pYVqDySKGg9+Vx8P9o+/D/Z3+g8gd1YPlLdQ7SCPNW2YD+0P8Q8l1FCPkQ9yKikPd2VoKXz3Dg8j91b3VmbGj1obX/eK56fleg9w8omPc/fmjx3XKY9ij1KPqY9jB1LnWY+ZjzV3Zo85j5rnTjeQD21X0A97d8KJEPeHd7wPOBcX9733VFgEFzNnfQ/4QyS9Reqpp1kPo5JFHTLtvqcyOhyo5tvBjR+XfY9eOO7mAdOIQvsGyXujj51u448VFhoEa6KC7V0XG5ezj2OPc/yKVrINporBZoGnmPdlbvbULW7PZrEbchpDjzlmvqdyjxSPCo8x6u5mFY/Lg1Yn7Y+ShwyPtY/8D8yPSuDecIQX7Kf+EyHtOEvI98P8IgUYO7Fuw4hY2Ey5yqffj24CrrvIgBo9qEiuYXiX9z2YbhBP0tq4ia5HhG6QT2ua9o1pbmO5JhQ/j4hPKEc+Fw1mf48+FyePDkLbDwCwIbN7D5xuVe2oT+JLBndn99D3o9eNj41zu4jKbJeG2ReMwjhGm2YgTxKX0civuuKXv0ISrqUz1JeoEhKu38eWp4yJ8E8CT9LavUd4N+/H/I+i2pkjwUdN18cGYk8sT4Y7aY/0F8NHLu09j8cGzE97jzI7dBfBu/IXEQ9QD3QG1TsrmEWHyIBZ7STRFTdQ94e30HuMKjRPXmvtbQCSVw9cTXwXjz2BKz9NZsJ1h/hXrk/OTzkHAT3EEs4SJQ+7PYYolTY+TxQSh+joO2BPnfufd+/3zUahTz93pofI+5FPcU9uT0snSk86TyWPek/bO9vKzODUj4vjHC0+F+ZPlE+WTxlP1k/Pj02Puo/heIxD1QTHlPQnKubk+MrTEMdT1rnQdU/jD/kr8YCNT1d88a7a7QwyWDjNTz4rnU+05t1PlhrSEkl6iXGDj1fn74IdTzVP8ubjT8l7k08nBHuCE0/oUfAG7U/q9/KPElc1yoFwYPflT8g5W+1Nl5kPt48WT3B3Vk+tKt0wHafUkpM6Pob954iPQ52ujN7m2Szu5mHohBNkV+xXx4fGV/QXrU+PTwLUzeefdr9U6nh9AI6kjuY3l4uC6uwcqiL8X08VFkDPv088MjigC4/0W1B5NJJS4lDPfFSWGg9Pt0/QzytPp49rTwD22U+gHUQdJIx9AKQd+vd3jxNnoDf1jzZYxuCm4DTw9yceHdMG2L1XD2pqceYElz9zMN1ejSQTMM+QB2b73dIt9kqYxjaTHQtXbM/tJ4rTDM8l1nFzvM8dQ/zPHBeVZZ4d5GGnV/TPe0Piz/QXss90cjLPMBaszxmXt+eMp0XnSbtGT0LL+hUyHU9LXw3G58cPvFcFQrlwquBeMuO750pSzyUoYdcfGirPuNiG+5zPmWhDKPRXkk8cz9Aq8jL2z5ILes/Ql/YzEkeSz9MGlWPwFoLP8jIMl293/s8hz4zPLfOiz6HPwPsqz6HPNI6iz57P7o/qz4AWSw5MKzrP0h2Jz5pPqo9zikGPR08V6jZPVM9FHdCXfXfRjzxC3+aFKA0nim5E+pXPBVdvtwLP2c8UPGPoBFNd5olaVUvyz8I3dJ3Fzy66PM9VluNj7Xttz+Wy/c/eesXP2wZ1zxV35mejz2EzrCYaQn0OLc9qz1yHmXBySxnPYyedDgwIO5h5z0VPrSqu4O7gnuBWKyOn1M8bV6XPqXez5qLPh+ieF3wLzM9b5ufPyU9FjxLPSMruz7f2w89Mz2fPfRfil+HPt/ZR65fPos+0PQPP3s+/zyPPP8+oYeiHKs8AL9saKs83z+PP3vfFj3PX2ue15lJ7K89cukAvnypV50bPZ2e3KqbPLHCsj88dw4Yospn3UoiqfDIWn4ASFgQvAsd1STk74ve4dwUmuGS9KuQvEhaD5GQvw7JCN4V3sog0L/wWIYj0LzgvRC9g2QmPXC+kCjwvG/d8LzyoxC8Lz3Av1Ba3y4gv4xmEL/RAqWRjwYbPGo91j3gnMeqO8C2S+gv+YmqdXIZwlzgn3Q+qFhv7qp2eFn2XfhikJ2aaryqinQeXWBbZaI+XHngrl+md78/lqr4W5i84Z6YvnhaOLy9PAzcSz/YveJ2jFt7L4C81Fi4vV5eEZ5sXCs+WL4YWERZWL1tHvi+dFF4v4S8eS+hntuShL1hLQUuDFvEvthanl64W/WfEz0yPpM+BWCovXZf3Jy0Cu0/7RHWdnNcCQIOXlI/bet6Pu8duArWdhi/jmMYvPRotyHtADnn8hiLmGCu5BjYvtQ1xL2e0dL0BLzhnjS+hna4v1GfP++zPZRvtL2kvVu0PcwYbfhbzl417bS95FuMvLteTL2Mvb5fpLzeXcy+/cbYvwTpa7GEvgFfYF5kvPfdKLzoGNetlp7UTPXmMTyuy4mUXneLnIubjaI2xjUK+z5JPly90XQC4Hm5RT54WAxO3z+wXb0+3LyOdLy+WGhGCzy9dOuKXcHN3Lx8vzvY/L0+dfy+1tynPk8YgXYWHy9dxgDXFTvobz2gvwY+KN5brHafat8ivWi9YCQzX5xaZywivmIh5FtivWDcfGrTd95dgr1gW5K/XpFzbHc+Fd6rzdy9Qr9wns2WAr7lHjy8sr+p4tK/nl7xdz+UPL1uPFy8cr2iGlK84Z9SvLpT3L58v2k/Fi5s3xvfji3U3PM54Bh/83KfVBJFneuuqznKqQSj+5+qvgCAcwmp3Gq/eR7qv2q+F+rqvXk9uL/XPHBcUwqD4Jq8oZhQGKq8Sr7ZXUq9TmFyH5SBO24gv8q/Qlh52Mq6MjwcvEcvVAt0wYSBGF2VPYwVKM9uA8Fsdj2KWUkcNXZUXGxjeDmyv/K9qMz+aygaRr9UGysWK07GvlC9ud6UXKa8hrxe6M/mz/EmvnE+5r6mvOa9KR/mv4A9c14CP9JgJp6FriC90T2O2FrPyLx23no/JDz4AZTDGt1rkid2V55+Po0bDKN1dpZw5B7cTZGK7Dkr8AM+STwOvgxX25sOvpge7uIOv0KpKFHSvY3fiyNOv46931KdXbUdTKiuv868f9yI31VSzlhaz0kY7rxOvfa+mrxPPchdpT6tP+k9k1sCPxE/DXZlXaolHrznPFg8KLyTPhy9yKvXgjeDM1+hLfpY/gEKyYlXcD803b5jdD/3g0dcjA4mWpxwNr1jrMN29mvVYPPq3vOsJ30gHK673NWRwb3kHOQcPl8hvPFO2j5BvE5rQbxuGWG/hluCYgTtIb7kVBG+4bygcxG+015JPCZbob6MrpQ6XXWRTQFf4mztn2S+5GN3wfxCAkPoLgt0ndQNXRafMbxZonN1BN0WWjqrLW2XPS13RSNgTHOpIQMZENUObr1QPkg7XqOJvgFvyb+WyLs9xr0WrUm8aXd9ulCoab+M3Ym/KbxJvHKjpDuCnGw/7L1yHC/BL8CBr7VLkYQaPK1thJ/nPNcqG3UB7lm85CcfPyBJvWduWtnI7q2r0Y0Mebw53Xm/qtT5vBDeFssbyBI9RT1QvNFdpVDhxuatZ22PoaNfQLyZXPWLlDp5vfAyGtdmPXy+dz5aVyW/VQy6PudjTliXmFA8pT4V3OW+Zbxp62W/s24lvy3dBb9MOTBLRb7MPqm/GazVvqw9Fb+5v+odP15VvqwY3DhFvqW+Sr8H3h09lj60qpTAQVzz3Ds0Mwyqad6/FI5b3J89yb/Tz/tnrlnuvC27nWruvaa8MDxmvkc3XWotvEm/VpiSq968bF2GX6Aebb4ev42+Kb9NvtXYHbyOvdW+/ere8LyKnbxEHl29RKxuv6M/4TxWvnzjKF0wrW5sgWMuvi2SHb9tHSA9Pr1kvL6/xKh0QhRTR8KvzqM7kYc8n8Defdf+Hdm/xFh5m9CB3gzyvYO+HD71K/hp1BndXry+d0j3PH5eo73VLTAtEifRWMm9hb/mVQueY79wnQxaXzkqnfs9476J2N1ZZDTLaBO8rb0TvndKAGjTvYfXM73svIDd/bz6vYFdoQB2nSDKtPfQnfD0Xk+U9NW6q/ELvAE83l2ro2T3C74pWXmyBroA3gQ+q+x4CpT2mmAZWppRy78l7gu9SzjhWmu/uWsLvnzcvOOUvVlayr3XYvg2r3QI9L8qorxevMI/p5/crZZJKgBDX4laZJ9Cn/D267zBHx3NZPWLvm4/pr7N3aBawvFFI0u/u737vVq7y74SP7SctPervVHPF7Nx2ObLte87vMsoq75HvdD3pA0JPUae7b6evUMr6ylbvWerWVjaScJMYNBY9EEc9bxz3Z49HLzzvG/tCKPzvdM+esp7vrE8RulLv4u+uz/vd/u9u79aaTe/B7wind91a7zx6IaQR7+/P1e9d75pnPe/N717vy2+/uw1Kme99bwfW7D2GRl8ofD3x7/E9he+Y61RPj4+eYN2XQwqyPQvvV08S5XGIfj3D77XviYIu74xYeu9+zwfv8e8p7wbXTp1J75jqCe/vz6fv0e85PT17O+93VjHv6IcaiLvv7e/Fe0/vJIxH7w3vqm9/h2MKT2+4gvo9ue/tkmo9rgSO74vv16vL77xvpw8272EqPLiV71vvAhqy73vvF+8RHOY9qB+Bu97vFXtS3GtW5+/7j5pluB/gHy/v78/oH7I9JB8fVqLvA+/Ar8A4wXIUHzI6tB8174pPd88bO884nopbN2FGYT0z71/4zj3f75vvWcpL74VP1Teqm2Xvo5dSBogf98edj/nvmB/WW3GAonbv7z/vI+8Fbwuv491f79ekih+sT9WzV+99VhQfjXvyH8/vD++9j6g91B9vdxxS0h8f79wnoD0yH45bf+/j71Dvk+/6tsHKiujh7+bvkB+MD71v+0fvh0cbA/eB0hwtBCGctyJvKGoLehi3vJa7lqi3jTlG+aqvmPpQT6caVBNVV0Evnc8HKMQScR/gVjEfOuvjaAS3AU8ZH78aER/ZH/X31ycwH38YRE91N8uJsL1wlyZvYi82WIdHF1hEFzd42IPE2xDvBR//b8OX+3Yx10294b2iV8ybQowvR4lXENHdH+nWgS/Srl0fuALQx5PrOsjNL4UvIe+92luavVAjH4zKYx/dH6MfKsdyarMfmMe9H/RmXGQXMk8L5cZ+G+MfUdafR6hvqx/7H5MfOK5P+mWXj4+VlxgA1ZdgALWXYath5BBa8zMPr8GWja94r4FYqEtnIco32H0ogA1kbsfJadB9hiuMSz+L5WjuL6wfgAL4S+gvBUJIfQhrLRNMfDh9hivjmFRLm8/CH14fOo9hj2WSLQ6ifQ7lnR/euvvloEcuVK3WHWR4n7ADOWeEn3fDxJ9zJ6SfBG4npJe2JJ9rBCFyKFSMu9IdDKBsfZrqNJ/RZ7if0ssMn6GZn4K+8pR9qzTifRkvg1eFH3nrBZtDbyx9dJ8/w9xvjG/Pr1zvM5u1R3U3HgKRZ8c09CdDT+0jyn0VFqqf8gbMLyof/Oa1BioGrRqgenBIbrrqn8Cvs0+xJFqf/y+LT3gGNnjan1uvA5UI72qf+xedj70XNp8Mb5UfBqZwHzpu208W27Y7MavF72ivtyqk640b+wZANhJZyX2C9zYQCX0EL/6L3VvGLpwqQuQED7X826XRn5GWJWG31llXoQCDH8MvqvvyanGfqDKGIg7WkZ+hnwWf8R9p7/QX9doJfWB7144rdgB0uegJn+zvOabNH5ZqEX3juw7a/n0RY5mfUY9iV/ePnO9gdlz3/GCCV6iAeX3Tg7Pzk2/jtTUs1KcolDelXltnor2ahYJZnxAHCtdnejg2U5+f5gE9ZJRVfWDF/lvLnxtjYMUKd/A2mgqH6Fuf+Fcztglzm5+ZuviyE5/MB6ufC5+np+nv4ldZ70o2FKf5ybl9lX2dfWDFX2fkJ02fsPewj0f7+30YQ5ukcFeSQlwJxpWvlfBAEjYgXzBXGnhRFLFvyg/oB5BfwrXecRI2/ggHfWpxsF8K7xwXNZv8dO14MF/5Gp5kgShm+hRv5284mihfBF/ADBBfOyigXy4TJG/5HxrCm7f6myUf/5+N9Qt9XZ9In7JnQ6u/nyOnGQ56hkaNdM+EmODb58QuNv4Mrdb3FBQ2V3j07z7vXLqiX0iyTpFMC+FVhyp9ouiH8l/LKopfynM+KjHBeFeuz8pfQl9YV7rP0l+mlhZLbp+vH32mVa91N886THRdw44Plu9bzxXqY4cb++vDJqlpFJknsja5+70SNBpzJ0Vk77ESEifbyh92n98onl+VqhtGYq7WNgz9U2vJN0kQmhoPEuprd/vEvG5fPl8sH4kfEV/Iao68Tvs3eK5fCzbuX7RfPG/fny/bxkfSkx3UyGqM/SUvXQ9NrwsAY7uJp2D4zlw2A27Hyi5L8R6XtrK3C3VfPpdsF91vdp+5Lk1f6ZcPcrU0udDJl1AvcF9bF45oYv0ScpsGtV9DX1GXx69xb8pPuwB1X7GXKZdgK9ak8lrjK0ZfgB+Ut8bvPh8gAhVarpflHxzv9Kej14Cw47uouYsKQbovJ4C5JxIvWuUPr/uxhxdfDocn2lAuN18k1wKnN1/32sT9rOvil7zYZ19UAhdfSYdlr7GnmM8oWwQn/znZuD+D21/AV7gXwp9F54B7B18DR5tIRZdct0lP0RLiKHNXcEO+Y0GHVq86lSjf7TqtRxjfb3eUamLqTYdUCbafsm8nMssSiN/thkUFJkbLX8bP+zYCSwNHsoe7+x4f7F9sbpDfiaea9tm7sN8ib/DfMEZaEmTfcEN+h6jf5N9835jfyxKC3zjfrUci39gCYt8P7/WHkt9rNmjff5xSQpTfEJ9AtjTf2f34R5+fIFc5X96SpGAq33BDyqpux4Yo5Clty3fIXmq0F/avOp8G3ybfSFpktjIX1Vf0FziY1t9RF/nASgYYh7GHzt8Bb3ayxLku3w2fTq9oi2KfO7ZdOIf9IN/Sn72fO3bc76ifQipp9xzswAN7BCdfDOKpKnBPrE8PUrHJCd/MH2lvhXdJ3/HfZE+2pxrKBYxyRrGHZ3jR30or2LF530GHcd/0Rqp7yd9Z3yUbgp+Nn7KfClsCS0ADpANB30mbmo8r75xfxceghQYSIANXD7cFwpMt795RQZkp31gfo+9vS33fYadxtkGZhNKxhzqbObjU20FH6F+h7x3XbnLl38pqy9+yk7/v2B88po+f1iY7x/D3JAPZOqku/69CH4zfNcp2XwJ7GSMSrtZUTUcP9wrbdqInZvVPOyYwdgYSe0bGJ1X3T99SyB5Mid9JpkJikm+THyFvUMsaczBGL99f3z4q1qf4pUGH399gPw/fo+u9nPffPU/AN9lfdd/LRgDfJ0vIzdDaDANW7erfrd/g3wE37d91N9oz9baEDW6Xm2iXQ3+cs18RLh64AYfDX6Wf2Z/mr136VD/jX9av9D88/b6XACfMP/VfgZckP8QOzV+xR1w/e4dLXwEu5eRwDdQ/E1/9X6Cfv1/b31Em9kfWAwoYtrJYP4ovSD/ekng/ft/E30jLJBexy52vGjd6Er1HIlo8zdgCct8kF/EQPM1LV+MFRj+jJwYoBj9JHDiYYzyxh5Y/9gXsWuY/rN/KBjY/QYc6Pw4/NzaUF2Y/El85FzD3L9uZh24DGj9WX79v3q99n+iv4d/5KjfDnbHpA5KfVw8SErA/VJ9cn7m71ppqcSG2p/I+cYVOfs8pP5yf6T9MC1k/7lr4nyAv3nEhtomT4n028/E/r7Hkn+FfWQrFP/yfZa5mxx5yaT9sn1lf3Q8IoHObBQOaRjE/xV9er1yHhcCDb+tfAtentEayZ8twN12vZte4ZAYCf8u4b+M/i3YsO1pPZt92n7/LSwPIK6xPqNLXC9fvyz+p361fRN+rP1hZ66bwK18z4mSnR28L6I+HP9x2WCtcLkFMEz+GDsZvdF+PjxB2eV8SIYM/uOFg4ecvLx8rX123MqvFx9XyCAwSTRNv/q78NDQ3pXQcdqYgso6nFFMfdAt46qC/QL+KbxrUFwMPM6OvIL/OCX9u5OeAdHC/4L/5K7hYqL9JjWlkKL9Qv6hM3t+lX/ggZLNfP28Da9dSny3fTG+a3yGrnz/dd8FWoqM+BvJXJEIEU+Nu704TL9J3zL8GAkwUsndc5kc/XL9318ms8qF8v35XZGjjbkK/eLIiv06yS5exL/hXEr/yoay/iy/sv1MO2sNSv05rP1+2bzZfg6puN9JXe27Yg9eK8j8Pjzg/rIhqm4mnpWpzH39ccSdaP7HzTahkg26UwV/usYXqeAK2v8TnTkaZjo6/iNaX+/a/L0kKAlGk/98Yvy6/Rz8+vxaO0XJPGNeKhAfWv4yDTr+eJzKI3KK+v4mbBE9bQC9NJr8MgwKDKr82z28/hu9KP2mbjOeHszpXLm9b3w4fepsPP9BphoN9Knm/Ntavx6Sa1t2ymxW/KoOBO9pCrmh2VnLntGrSg+5PlG/1v52AGOftv5W/rb/EX1KbNb/KqJ2/KeQdv0ZfX5+KP9S/fT8396APRwzAK4WLPd/e+iy/Kr9q1x8bJoqiv6G/rvfzv5y/7r+f94Vom7+xv6HryAfzhh7HGOcHvwu/g6yE34Tv7KZ0FKe/ICep62Uo17+rL2SPxSdUvxoyyDfw97OPQYO2g83f1cdg38+/d2tZv8XH3mYJfXmuiOYvJwU4Gi525m541FfIH+B/Hb9sZMl7vigwf3fWZcAjj2AHsH8qb5vfFy+RAhWDyH+DT6h/MhYtZN4/4hpYf2IWcH/Pl9BLv3wz8gR/it9/X+B2eGaJp4B/FYOZg6xf1l/In1Kr3h+Tv47r02+PgIkYo59Y9zouzYPzn6hvBzUCf5DzoZe0P+Wfwn9zn6J/3GfZWINku5/8JwkfLC+Sfxi8ZuSZO4U08n9T9/x/Gn++O+p/E5qCf6I/GF/iP+q/rH+NqvkX8Pcg9iOf5L/fv5S/Y78O2E0w9H/lg8MALQ6hr6M//O14f2LHWNS4fwloOleef6NP3n/ldmvi55fkf878RoO+fzQfJpSDrA9TVkinV2B/kX/Sg2F/ph8If3F/lb8Jf0Yf/n8ef0tvvl9QH0+/tn+Izq9nZYP3g+V2R4PMf8E/PT80vyo/evUBEsW6+t/G3ws2Zcu1f7H7tj+T099fEt/Z/d9f0t9tf69fRxJKBpdfLYcGEk9fly6T0/dfNz+IP6E/36rND8XHlX/REsDfXT89n7tfbd//vwqfjENV43P7mH9WE9boBp+qnwNhHvbAr1t/XYrO9mafDVnbf31fhn+dz4afTObHfyLmh3+9JBt/M09Wn38uLcIan+t/c5fUf9DvC/YT19dPprrMQ1+/5x+Gv123i38qP7KIv6RBDszDJX9aapJzafaF1qHSldfXVAn2UP/nvwzvi42w/+PV0P8DO7soiPWh0qv3ppe2IwSMmTvgfP91mP+u9xD/OP9XM3o7PEPw/69/Bb8L9kW/pK3qQ2n6oP/gjzZv3T+Evx/QAP/9P30mchgT9jus+C/RaEP2YueRWxRmnPK1Frf2Av/xl7bfnc8yeemM6rXcdDRvkqlS/661Qark90L/xkpQTiYWdyXy/3JykWIL36FviP/q/3z/qv+Rlm9O+v8y/yd/i99Gfw+fVP+0fw3HIlPUVOTogTY/fxrfuX+wH+V/7P+CB8Io9QPIGKZLQT+LulTfxPaenzhYrnMFQ2FDYMy/H3KMhzwB8hJS/a/EVuH/8Qlv9r2/iY6wbzLnXlz39gbzif9FLpH/Bn9m/4kf0f9J/5ioKf+8rqDkuf8Z/0Mvi5+YXzn/6f/79vAHF+H7TEX/lf+oByPfLH8cH14fLv8cf7j3ECpx8rxO2J8zH6GGym+L6y7kZ4k1Q/A/gtv9//fm/Oh9/x5a9+Z06oRvE//+8lP/CTv2fB1DQ/+5jz3/i/98su5z7s5L/zAvFv8mf2TW3/bw921DY0MGEw7/2D+/v2K49n8d3+AGVA5H/0gfSP/YWIP/eP93/2P/mn9b9L3/D/9UDnP/Sv8xTO//bhjLG/t4Ss+b/x3XDFQ3/9UXQw/0f/lZISn+O/9B1QXO0B/sPdBLm10Nj/42fzG/gVCR0u+gsbCTDhBPNClKF5OSR90AE3mkqbNgA+jUWjZMj6iFmUDEnsHI+NKICAGkAOSbi0CdABrBgCOy8mmoAfV6V34pjdkCiMALoAdEfCForACpVzif1SnsZ/E++o2oeNomvzQAQQA+GG3v9z+4Gv1P/joYFABjRt2AT2DjAZH5rPaelr9JVoKzAJ/iQvBtIJP9Cf6Ub2oNM2cDH+qgCdXgo/wR/pJfWT+WBMcGqo/z9dsoAkwBBgDmUz48Th/sGYUwBSgDjAE6AIgAU3/L/syicakzEwwIGgz/HOeTP85v7dD2Nfh3fDNKYR1fOiZ9wZxEFOet+UH8J3al9h9nCnkdD+Df8TmaAFDWHAWyRRoMG9IgEt9kgDDEArL+F784Ow9RlAIvQTIIBqoc6Ry5APSAQlfFheIQDiyx5AK+ZgUAsIBhH9SU4Zv2N7Bq7Du+CBpAgEgf0aPjtfXwB5/94e5mxyrLN/sV5+pgt3n7gw0iTjghHWGxR1ygGSH2B2v4MMoB4QDrWRmw2iAdUA9tcpQx1WppAJVZhZLCYBswDmNSuky8SokAkYB+lsocb+tUWAZhvcYB5bIkgE7a3mAYa1KoBI79Hf5IANh7lkwQc+hRQbZx9WEHbuxaECsul8ulaT2T+nqsA+reNJpuaj7DmUiG8A4juPwCyK4qsykiKhXd4BRyt/gHcEWq3jSacEBBL9jL71TjTnio/Z52ra5I4YBH27PhUfGEBpw8W/7Nj3gxp8OCc0lF4q96VewUvs8AkgWncMR4LCX3RDn2zZxWehNiqwvox0viCA34cpSgKQGkgO2NFzSODeql8w57MgIJAUwLckBHICnAGj11xTqvzEjG2Stuwz6vx9rm3fDEBga8IvT0/UHxspnMNe/l8Z2Y3u2Spq3WAK+8oCf4o5ZyVAQ+7bkwEjYkr4mqRVAc6/EK+A2pvq68mi1AWZAGi+b3dcTSRXwwXAaA600Ll8vL5cgCIvhh/H3+St8qOwgqzMvg5fGeGi2cWgGg3wUfpcAqiwfgCSj5wG2/hlifX4+cMwLJCNP0ZPq4nOqogBV6T45Pz/9vdoHKaB7hQwHcn1DNLGAyMBJT8AAGkN3ZeHGAsk+pT8kwEg1FenLU/GMBuYCswFlrmDAdk/Jp+ar9t/7OAMbVKyOE1+X8MlRyBgIQAeIAp3+/Gs2f6t/xfBKWkD0cf2Uwf7qGijKM9uQTwN78yA5n1l+3I7PF2uYb9BwGJL2HAT4vXSELqwcEbDKFpAUX7D6YM4C4ih2vzgRmTQN7Uc4DXyw9gI7AUuA/9s8ZQwEaNOksAfm/SABfo5nz6E/UvSB2Ay7GjP8Ts4+AJZ/r6AlR+BzsR4Yuf0UAeLIVoko8xWJ52El6JKITT12qLdqloLNk/AfNueSEP4DS+TrgNG3Mg5ICB+RomzaaX3j/n0TCCBEm8XwGNzwNTo+/ZzMvj80uy+31d/qryaVSPQDoD4SAKZTux/TEBS1oeajiI0UMDVfS8QHY4BH7S2mCeKRAz0ulqcKIHiIyogeRAkX4vY5er63n1AzlsXGiBwZc5r5eBVPyE2ORh+O29uAGFdyuhFxA9iBn+YBIENZBYfi1feZ+2X8kIG8gKLHPg/bRG1V8GwEh3znViGrFsBeEDllxllC2vjf/dOksskOH6ZOkC6GJA2KO3PB1ySdX3lloZA2xGPECxP6l/0TLqZAoSBmwYtIFiKiYgTQ/SyBnc87IFmQLjLlX/FyB+kDoQF9AJcRgMAkyORkCiH4KQPm/n9/KwUYoC0T41ikuqMHXdiOYa9aAYecgiZgbXGKB0k8DwFbmnfvueNE9kgD9oJ4ITzevpA/cCemUClOTpQN25HFA4e+GQDEf7c6HygZTOQqBsh8EoHvj1T3nxAoveEj8NX5+jhp/t5RCKBhGsrP6jv29AYU7LxgE79VIH4TnQHCesN0ujTlW+w+5wSHIMSU3+Ov9JL4u5zFzvM9cmEJ/kR/iDh0knhSWW/s00Dslwv9jV1gtA2aB4t8wAx7EiGgV5A33+KEDrf4fklJ7iP8TCBx99je64QPFAf+FfOwo5ZbAE9APQDK6pHZGpuZ585UzAMIGTXDmowECRuovQILZG9AzJ0kbQJ+w8uAp3utA1ZolZkvoEu9B3HEDAifsj0D3oHU2l+gQhySGBw0C8UZIDlBgc0/d0+GjIyJxyrx+RjsjBUkIyMuwHSrzbvu0AlR+uKMdkYLjlugXiWT6BT0tDxjwwJ2RpuCCpmsQDPc4TVGugQGYfd0GmhgYHkYUZgQZA8GB4nI2YFgwJhgY8jVTgUMDP/Q8wLk5EKyCmBQed6YH/oRFgcjAtEBfxgUH4U9W2RtdA/5GbUCLgGh3xnNuQAfGBrv9CYFOVShOCTAnYk90DyfTvPH3dLrAy+cO4B+YFuugRgbaAcx+FJZ+9g7aHNgSbA5mBE/YbYE/QKtgXJyJ+ctsCOYGPLhE+gbAsWBlFZ9YE8gLufq0fcCcV0CIUYoL3iTteAqWBOEC1YGtgK6jLvOU0w7N8xz4Wmxt+mhPA2QLZtYgaoSDXOhJPKCBRpsU4GYbjTgf2A+B00cCc4EPvwzgWhyKrc8YCop5WSx7mGe6JOBED8S4FJTlszM6bNyctcDfYHBQPwQCeAnJk3KNGUaBQJ6fudAsKB3lF+lQQK252D1rJ8BxZsclZJHCwJC2bBXoIVpwp5zP3F/iwve90LU4p4Ewmz0BOy8MB6Sh9igHm32XgVLOAPeS8C6+hNM3zvjvAutG48CR4G3cjSirtAx0BaXZ8v6ZWT7get2H8O9N9/T6SP2qBIwgUKBEd901rUfQtKp6jbWBDZtU0b2KjcnFZLMy6wdc0QDqhmnvo4SbykCcDwI66K0A7CNMTZ+EkCL36ZRlkrJAggg+YdsUI5kkFAQXkbV3ujTgkEFSFjXpqvfL+Bwf1AEGnwIDPjwbdCWGEd34GKwJP/k2A/WwYTBuoEXQND6vHLUrowcCh4HOSmjkN/AvBB7ToXqCOWhQQdK/SSeIqp/4EcINVfrqqOBBvCDvTb2gOFVGwg+Gs8CDZD4HsgEQW5OPd+9FtJEFiIMEQf7bX7QICCf4FOAOQgcb2D7+gaMUI4kIM7gc4LchBo0gcEBPwIifprLHscTBRm5Y6LkUMLx/DGcfUtK5YtDkyKPGuXYkvRhYNircjMKAp/Ms+zkD2ijw6EDXFS0Oko9YZDLgOy1xwolMCdOC65SI5SVCR5P49QmkgSC1jAvWkEhARMTuWA2EYrjiQJngebfGJBdiCUOylYUDLr3kBJBnZNYkFpgJ4ARWAg22CoZfIEl+R7Rt3fWb+qIDw5YdQOUgYYgzUE74Vo+jYgO1ht38Cwoab84JwRXH8QcsDSJBST8hYpCSFSQTjOdJB7MC2tjFyzu5H0giPOIn0bEH3aDsQZqvd54YyCf0iZVFFgbdMPTYziCwkGxRzqkp4gqWc3iCRE6TgF8gC4g5K0cpR9pxyy3LAfCXVOQBSCQJz2R1J7r2jHRBYcCDRTynxUfrMaWJYOQCkGTZpS+zt5AlpA+ggN/Z8YxtnN4OYTeY59PeJDI2NhJU2XosvyCyMYd70isEUOYWsPScQUEALgVZo5Au8+wS9+jDoDivFNmlL/mGGRyd44Y3r/sVAyS+PyD4UHdVHgLKHqdAcfyDzgE/vz0QfSoPQWN9tp7gyYy5rHXkOCuCgtHx6qYws3mSg4OcJDR4T4egODvkFA7CBo0gSUGRu0N8vQ5ZEBORdR67OY3QlpMPDJuwoDWUFEoN0kP4QWgAgRBgiAG8BVvmHZNsAQK9RgGZRhkDiuPaaWSj1lVBFAOdXKPfXjQz89Jpybzj6VBPnLOsV9okNC98m1QaJyTecWgo+V6prkNQS5hNVBL1pROxaoItQTLHXtkuqDpx6I1yNQTag04+OX9KkG5GERxjKgrHGpCDEAHKwIshEuQFcgGLNWz5M2nsZIvcVb+DoCaP5ES04EI0bcNBZONiQijALXsNVINikomUZP5KmHsZGyPHb+Vfd5egADjQdGv/XD29vpUvjMQLMzoAAo+Gl85CLSFoJBqJWgpNBWP8krSUVhLQUJ/CtBAC4q0HQgN+/myg3B+1yC0IFdMmiNtKlZ+Wrn9F15m43BbPrjB9W4+wz3YVDB03l7jaPkCrgjVbToK5UgyHcdBRWsuBKZumNLNMMGdB+uMKK7m8VDxpOgs9W26DK1QroKbgZ2gyluqeMQNa54zzEmV4XaG/qDGwFeoLu1t2g1sBjFgn8Z6QgHQQwgxia1eMk7jIO2xwkxTMyAJYxuX6741fnAlPd9BJmtMN6t40rVABg3HM/6C3DAyIMODl+g0PGv6Cpn5HwP2iIYSfNIR6DRUF2AhoXGGrYAmki4wCYjPz9Pt33LkOpFByKCmCHMEFrPV3+4BYRt4cKjtLF3/NRmWXlzFwL4XJLgtbRPqnxdJJ6nKE4yExgyEWjdg/FxPuxYwZxgsJcASc6eJsYIQ5OFZHkujGDEUYqzi/+LRgsJcDNtlU6SYKEwTd4ESOSZ85MHSYK9TtRzKTBmbplFw2LgIXi0XRTB1sCpXSdi1UwWJg1xBtUC2r6EgDowXpgrrMomD3YEjchUwQcUYtBPE8XQDW6DMwRFsX/OEX8mMH2YPsXMF/SBUdg4XMGeYN84t5gh7kOmC5OT+YM4nnliaDkvF95ZaOYLCwePoE2BkWCEOThYMijrFgnbQkQsfME2LmSwQFg1LBbc58EFvfx0DKoTKEuvQx9CbO8guQYoXHCB/UAhoAjQADXj3AziOUJYfI5Wf2Kwc9vASWu4d1/ThE1EHtu6F1Y4VRB5bIGDFnG1gg0cJhQbnril12JABkTTQmvoS0y0zmvUOFUJKqYR8FoGy52/9Nyg1EskWJUC7TzzF/op/HU+hbF8Nyt9gvnuxFEIuvnFoHhjQJlFtNg4vq1y9oy77YMn9LNg0tBMOd3EGHYMdhNloDbBKcoPI7pRwdQeigxyc82DE+pbYNlvotgyBUO2CzsGvT07ngbfNbBn2C+w4uR0+XO9gtFBa8C7T5nhzCJscnajUpHoQ2KGCgKTt9gh1eDN8+UHz4EXwFIyIuemxsuSa3wPqgZ4fRhUF+BV+YuFVyJl8g9SEwW5CNY8rgi9NHIDnoXACnIH0r2C3IDuUnBZJ0ciRE7Aldq7PIe+D7tT67V1issgb2P2eLODL8YIUlFwl7PclcbOD0Q7c4JirBTg4xseK4ScGU4JhQZ3PAsE3q46cFEAGFwQOufEsHe9/ghdSE/SGuuS+e1K4T2i1u1BwUTfeceISM5cGvJxVwbzg7XBad8dT4N6jzGpmAdnBR1ZLcHE538LqrgxnBnSDAk5C1xtwe/PBXBW65dsj/IP2DPrgyXBLECFZ404ONwWGAjGgduCA8FM4KLgVAHId+1uCDcG4Gl2zC7gg5B5SC9oE5L2L4DUfOc25FVQMF+VmaUj+TMpBtz9m4H/Wl2HiUfVPBI8Cm6zzkywAYlaUMmJWRe+Z9RmjKG6ucvBb/cDUHarlr4D6Ta70FeCQ1xV4MfJjXgy9cPcYlJiN4PbwbD6BvBSa59Vy14IrtLm0avBA+DY7TD4IPuvOTUlcksY+8EZrh7wcmzLR0I+DJ8FNzjYvqPXao+exBzh4JgBMpot2ElEX786sH0qHrXJG7R3IW+CEQEvoJvvi5bMUUna4XtxNuzujMQyY/BkG523Y7H3m1oJkI9ctLUN0b6W2fwXVSV/BMEtF1wUDh43FpTfIENVNT1wweRfwYAQ5Y+mjtf7ZaU3vwYmA4w2f+D3KwAEL5dlPgrgkt+DO1xQEMdwYWtWAhs65UCH7IMQIWIAkUBOeD3j6vkno/q1TC50yugqUEASwvAFyHPqmT+s7ISFAD9jpNTCwwiJ8Hiy0EImpjhvG8yTEtYPTsIXOwQjgu+BDUCUJbICA+PukXPDkuAJ0NaRMwYQQJAtKoOQIzqa16XYIVNRLghdUDYJA6kj3wayIHam1BDCgonU0kIWC6BghWCgV8GPjwIIfZHe6mTn9fATUYKX+OCfGNBIEtSBDQnwonMyMAGmOFk/DCMEMu5AYQgL6thDAT6rek4IfDg+QhzP9437Mpws4FoyRG2C0J26y+pxeTokOKKQLc9xqzBEII3FKnR7BTE8GUaQBkqLrzOWIhlqcb46pwNhLmdmSHBb8CbU7V30NTkkQzDcBc5WJ7hEOVFMePQ1OxyVfLTgBi3zme6Uohgk9ndoVENEnubTHcehcDhEGr+iqIevPQku8ECDMKRz2VTsUQ3OWkc9t/hk7xJcvzAqEWza5uiFyTyaIQDAsPB60dZKyEgNFtLXWbX+2eseCFHgJj1N4Q2HAvhD0i6OchKIblAoIhPLdlRQoT3vulaVTiemxDG355EJSPhPLKu+X4CWMFHEMTgScQ/8B6YBziHpEKSgTRg1NGpN9YJ4eo1ygcqnfDOaxDHb7QknhXDGjRCecCCUJ4URjELoanTOm3xCniEtzwmIUNHN4hXRCL3QuujBISaXK1kL+cniH+yxtvstgtq+QJCuv7b/FRIZl/HXB7h85iGVgI81uZwJYhvO8tMy4WBvHgwg8TKXAIoFyzJ1J3n3TEkYb5YNd4Cp0pIZwyWum/dMSd6mH3EUDGJd3MCa98xL8wLJIXXTFkhu5dQIEMkMa9kyQmkhfJDsHTCkOvSH0oSCBDRCznRskN9VjF/TkhLJDGvbsIjXRMf7S0++v1i7J0kLk3PqSauesh9jHRakJo1kILMPBwnMTWxqTzkNMqQ9TwIppCiGPLwyZqqQzis+v0dSE2H2EQVhAtDBVgp70E9QPbukuJULcmD8Id4AjwTwSZfbGeS9NJ6ZekJdrvlPH7eajMRAqDR1YpBGQuaOGE9ybTTR3TABGQ8aOrxDLiGdRz+IbYSJMhhqdoyGGH2ODG7gpI4bUcCUFegMDQT6At0h1CD+czTqDE5idAiAe6U95iHWJkf1mF3XumlW4SSE8Dy0LgvWFCsEFhwgHkgjgkN2PVeBpuC7T5clUbYvOPZGeby92yHckJtHHVubshmh8xyEOQkHIVjvYchR49x76M7wHIRuPGqBVOCPCGhwOeQdgQDsQ87hTACEyGygOQQZ9whMhwkDisAqwc/AgTslDM8ORXbii9ijuVYA2AAudzYAGhEHeQgsAa6RyACXeGhIBdQIQA9ZBlgDewRJ3BoASTCYAASSTVuAvAo6gUCQqeh0ZDaiDZEH+INKAAEhYACzQA3wCAAF2CQAAAA"))
///////////////////////////////////////////////
///////////////////////////////////////////////
/* Utility functions */
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
pcbdata.metadata.revision + '__#';
var storage;
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 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 smoothScrollToRow(rowid) {
document.getElementById(rowid).scrollIntoView({
behavior: "smooth",
block: "center",
inline: "nearest"
});
}
function focusInputField(input) {
input.scrollIntoView(false);
input.focus();
input.select();
}
function copyToClipboard() {
var text = '';
for (var node of bomhead.childNodes[0].childNodes) {
if (node.firstChild) {
text = text + node.firstChild.nodeValue;
}
if (node != bomhead.childNodes[0].lastChild) {
text += '\t';
}
}
text += '\n';
for (var row of bombody.childNodes) {
for (var cell of row.childNodes) {
for (var node of cell.childNodes) {
if (node.nodeName == "INPUT") {
if (node.checked) {
text = text + '✓';
}
} else if (node.nodeName == "MARK") {
text = text + node.firstChild.nodeValue;
} else {
text = text + node.nodeValue;
}
}
if (cell != row.lastChild) {
text += '\t';
}
}
text += '\n';
}
var textArea = document.createElement("textarea");
textArea.classList.add('clipboard-temp');
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
if (document.execCommand('copy')) {
console.log('Bom copied to clipboard.');
}
} catch (err) {
console.log('Can not copy to clipboard.');
}
document.body.removeChild(textArea);
}
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"));
}
var units = {
prefixes: {
giga: ["G", "g", "giga", "Giga", "GIGA"],
mega: ["M", "mega", "Mega", "MEGA"],
kilo: ["K", "k", "kilo", "Kilo", "KILO"],
milli: ["m", "milli", "Milli", "MILLI"],
micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
nano: ["N", "n", "nano", "Nano", "NANO"],
pico: ["P", "p", "pico", "Pico", "PICO"],
},
unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
unitsLong: [
"OHM", "Ohm", "ohm", "ohms",
"FARAD", "Farad", "farad",
"HENRY", "Henry", "henry"
],
getMultiplier: function(s) {
if (this.prefixes.giga.includes(s)) return 1e9;
if (this.prefixes.mega.includes(s)) return 1e6;
if (this.prefixes.kilo.includes(s)) return 1e3;
if (this.prefixes.milli.includes(s)) return 1e-3;
if (this.prefixes.micro.includes(s)) return 1e-6;
if (this.prefixes.nano.includes(s)) return 1e-9;
if (this.prefixes.pico.includes(s)) return 1e-12;
return 1;
},
valueRegex: null,
}
function initUtils() {
var allPrefixes = units.prefixes.giga
.concat(units.prefixes.mega)
.concat(units.prefixes.kilo)
.concat(units.prefixes.milli)
.concat(units.prefixes.micro)
.concat(units.prefixes.nano)
.concat(units.prefixes.pico);
var allUnits = units.unitsShort.concat(units.unitsLong);
units.valueRegex = new RegExp("^([0-9\.]+)" +
"\\s*(" + allPrefixes.join("|") + ")?" +
"(" + allUnits.join("|") + ")?" +
"(\\b.*)?$", "");
units.valueAltRegex = new RegExp("^([0-9]*)" +
"(" + units.unitsShort.join("|") + ")?" +
"([GgMmKkUuNnPp])?" +
"([0-9]*)" +
"(\\b.*)?$", "");
for (var bom_type of ["both", "F", "B"]) {
for (var row of pcbdata.bom[bom_type]) {
row.push(parseValue(row[1], row[3][0][0]));
}
}
}
function parseValue(val, ref) {
var inferUnit = (unit, ref) => {
if (unit) {
unit = unit.toLowerCase();
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
unit = 'r';
}
unit = unit[0];
} else {
ref = /^([a-z]+)\d+$/i.exec(ref);
if (ref) {
ref = ref[1].toLowerCase();
if (ref == "c") unit = 'f';
else if (ref == "l") unit = 'h';
else if (ref == "r" || ref == "rv") unit = 'r';
else unit = null;
}
}
return unit;
};
val = val.replace(/,/g, "");
var match = units.valueRegex.exec(val);
var unit;
if (match) {
val = parseFloat(match[1]);
if (match[2]) {
val = val * units.getMultiplier(match[2]);
}
unit = inferUnit(match[3], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[4],
}
}
match = units.valueAltRegex.exec(val);
if (match && (match[1] || match[4])) {
val = parseFloat(match[1] + "." + match[4]);
if (match[3]) {
val = val * units.getMultiplier(match[3]);
}
unit = inferUnit(match[2], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[5],
}
}
return null;
}
function valueCompare(a, b, stra, strb) {
if (a === null && b === null) {
// Failed to parse both values, compare them as strings.
if (stra != strb) return stra > strb ? 1 : -1;
else return 0;
} else if (a === null) {
return 1;
} else if (b === null) {
return -1;
} else {
if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
else if (a.val != b.val) return a.val > b.val ? 1 : -1;
else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
else return 0;
}
}
function validateSaveImgDimension(element) {
var valid = false;
var intValue = 0;
if (/^[1-9]\d*$/.test(element.value)) {
intValue = parseInt(element.value);
if (intValue <= 16000) {
valid = true;
}
}
if (valid) {
element.classList.remove("invalid");
} else {
element.classList.add("invalid");
}
return intValue;
}
function saveImage(layer) {
var width = validateSaveImgDimension(document.getElementById("render-save-width"));
var height = validateSaveImgDimension(document.getElementById("render-save-height"));
var bgcolor = null;
if (!document.getElementById("render-save-transparent").checked) {
var style = getComputedStyle(topmostdiv);
bgcolor = style.getPropertyValue("background-color");
}
if (!width || !height) return;
// Prepare image
var canvas = document.createElement("canvas");
var layerdict = {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
bg: canvas,
fab: canvas,
silk: canvas,
highlight: canvas,
layer: layer,
}
// Do the rendering
recalcLayerScale(layerdict, width, height);
prepareLayer(layerdict);
clearCanvas(canvas, bgcolor);
drawBackground(layerdict, false);
drawHighlightsOnLayer(layerdict, false);
// Save image
var imgdata = canvas.toDataURL("image/png");
var filename = pcbdata.metadata.title;
if (pcbdata.metadata.revision) {
filename += `.${pcbdata.metadata.revision}`;
}
filename += `.${layer}.png`;
saveFile(filename, dataURLtoBlob(imgdata));
}
function saveSettings() {
var data = {
type: "InteractiveHtmlBom settings",
version: 1,
pcbmetadata: pcbdata.metadata,
settings: settings,
}
var blob = new Blob([JSON.stringify(data, null, 4)], {type: "application/json"});
saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}
function loadSettings() {
var input = document.createElement("input");
input.type = "file";
input.accept = ".settings.json";
input.onchange = function(e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = readerEvent => {
var content = readerEvent.target.result;
var newSettings;
try {
newSettings = JSON.parse(content);
} catch(e) {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
if (newSettings.type != "InteractiveHtmlBom settings") {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
if (metadataMatches) {
for (var k in pcbdata.metadata) {
if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
metadataMatches = false;
}
}
}
if (!metadataMatches) {
var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
if (!confirm(
`Settins file metadata does not match current metadata.\n\n` +
`Page metadata:\n${currentMetadata}\n\n` +
`Settings file metadata:\n${fileMetadata}\n\n` +
`Press OK if you would like to import settings anyway.`)) {
return;
}
}
overwriteSettings(newSettings.settings);
}
reader.readAsText(file, 'UTF-8');
}
input.click();
}
function overwriteSettings(newSettings) {
initDone = false;
Object.assign(settings, newSettings);
writeStorage("bomlayout", settings.bomlayout);
writeStorage("bommode", settings.bommode);
writeStorage("canvaslayout", settings.canvaslayout);
writeStorage("bomCheckboxes", settings.checkboxes.join(","));
document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
for (var checkbox of settings.checkboxes) {
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
}
writeStorage("darkenWhenChecked", settings.darkenWhenChecked);
padsVisible(settings.renderPads);
document.getElementById("padsCheckbox").checked = settings.renderPads;
fabricationVisible(settings.renderFabrication);
document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
silkscreenVisible(settings.renderSilkscreen);
document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
referencesVisible(settings.renderReferences);
document.getElementById("referencesCheckbox").checked = settings.renderReferences;
valuesVisible(settings.renderValues);
document.getElementById("valuesCheckbox").checked = settings.renderValues;
tracksVisible(settings.renderTracks);
document.getElementById("tracksCheckbox").checked = settings.renderTracks;
zonesVisible(settings.renderZones);
document.getElementById("zonesCheckbox").checked = settings.renderZones;
dnpOutline(settings.renderDnpOutline);
document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
setRedrawOnDrag(settings.redrawOnDrag);
document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
setDarkMode(settings.darkMode);
document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
setHighlightPin1(settings.highlightpin1);
document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
initDone = true;
prepCheckboxes();
changeBomLayout(settings.bomlayout);
}
function saveFile(filename, blob) {
var link = document.createElement("a");
var objurl = URL.createObjectURL(blob);
link.download = filename;
link.href = objurl;
link.click();
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
var settings = {
canvaslayout: "default",
bomlayout: "default",
bommode: "grouped",
checkboxes: [],
checkboxStoredRefs: {},
darkMode: false,
highlightpin1: false,
redrawOnDrag: true,
boardRotation: 0,
renderPads: true,
renderReferences: true,
renderValues: true,
renderSilkscreen: true,
renderFabrication: true,
renderDnpOutline: false,
renderTracks: true,
renderZones: true,
}
function initDefaults() {
settings.bomlayout = readStorage("bomlayout");
if (settings.bomlayout === null) {
settings.bomlayout = config.bom_view;
}
if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
settings.bomlayout = config.bom_view;
}
settings.bommode = readStorage("bommode");
if (settings.bommode === null) {
settings.bommode = "grouped";
}
if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
settings.bommode = "grouped";
}
settings.canvaslayout = readStorage("canvaslayout");
if (settings.canvaslayout === null) {
settings.canvaslayout = config.layer_view;
}
var bomCheckboxes = readStorage("bomCheckboxes");
if (bomCheckboxes === null) {
bomCheckboxes = config.checkboxes;
}
settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
document.getElementById("bomCheckboxes").value = bomCheckboxes;
settings.darkenWhenChecked = readStorage("darkenWhenChecked") || "";
populateDarkenWhenCheckedOptions();
function initBooleanSetting(storageString, def, elementId, func) {
var b = readStorage(storageString);
if (b === null) {
b = def;
} else {
b = (b == "true");
}
document.getElementById(elementId).checked = b;
func(b);
}
initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
if ("tracks" in pcbdata) {
initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
} else {
document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
tracksVisible(false);
zonesVisible(false);
}
initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);
settings.boardRotation = readStorage("boardRotation");
if (settings.boardRotation === null) {
settings.boardRotation = config.board_rotation * 5;
} else {
settings.boardRotation = parseInt(settings.boardRotation);
}
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
}
// Helper classes for user js callbacks.
const IBOM_EVENT_TYPES = {
ALL: "all",
HIGHLIGHT_EVENT: "highlightEvent",
CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}
const EventHandler = {
callbacks: {},
init: function() {
for (eventType of Object.values(IBOM_EVENT_TYPES))
this.callbacks[eventType] = [];
},
registerCallback: function(eventType, callback) {
this.callbacks[eventType].push(callback);
},
emitEvent: function(eventType, eventArgs) {
event = {
eventType: eventType,
args: eventArgs,
}
var callback;
for(callback of this.callbacks[eventType])
callback(event);
for(callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
callback(event);
}
}
EventHandler.init();
///////////////////////////////////////////////
///////////////////////////////////////////////
/* PCB rendering code */
var emptyContext2d = document.createElement("canvas").getContext("2d");
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
];
// This approximates pcbnew behavior with how text tilts depending on horizontal justification
point[0] -= (linepoint[1] + 0.5 * (1 + text.horiz_justify)) * text.height * tilt;
return point;
}
function drawtext(ctx, text, color, flip) {
if ("ref" in text && !settings.renderReferences) return;
if ("val" in text && !settings.renderValues) return;
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.lineWidth = text.thickness;
if (text.svgpath) {
ctx.stroke(new Path2D(text.svgpath));
ctx.restore();
return;
}
ctx.translate(...text.pos);
ctx.translate(text.thickness * 0.5, 0);
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");
// KiCad ignores last empty line.
if (txt[txt.length - 1] == '') txt.pop();
ctx.rotate(deg2rad(angle));
for (var i in txt) {
var offsety = (-(txt.length - 1) + i * 2) * interline + text.height / 2;
var lineWidth = text.thickness + interline * tilt;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
lineWidth += fourSpaces - lineWidth % fourSpaces;
} else {
if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
}
lineWidth += pcbdata.font_data[txt[i][j]].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;
}
var inOverbar = false;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
offsetx += fourSpaces - offsetx % fourSpaces;
continue;
} else if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
if (txt[i][j] != '~') {
inOverbar = !inOverbar;
}
}
var glyph = pcbdata.font_data[txt[i][j]];
if (inOverbar) {
var overbarStart = [offsetx, -text.height * 1.4 + offsety];
var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];
if (!lastHadOverbar) {
overbarStart[0] += text.height * 1.4 * tilt;
lastHadOverbar = true;
}
ctx.beginPath();
ctx.moveTo(...overbarStart);
ctx.lineTo(...overbarEnd);
ctx.stroke();
} else {
lastHadOverbar = false;
}
for (var line of glyph.l) {
ctx.beginPath();
ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
for (var k = 1; k < line.length; k++) {
ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
}
ctx.stroke();
}
offsetx += glyph.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.svgpath) {
ctx.stroke(new Path2D(edge.svgpath));
} else {
ctx.beginPath();
if (edge.type == "segment") {
ctx.moveTo(...edge.start);
ctx.lineTo(...edge.end);
}
if (edge.type == "arc") {
ctx.arc(
...edge.start,
edge.radius,
deg2rad(edge.startangle),
deg2rad(edge.endangle));
}
if (edge.type == "circle") {
ctx.arc(
...edge.start,
edge.radius,
0, 2 * Math.PI);
ctx.closePath();
}
if (edge.type == "curve") {
ctx.moveTo(...edge.start);
ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
}
ctx.stroke();
}
}
function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
// chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
var path = new Path2D();
var width = size[0];
var height = size[1];
var x = width * -0.5;
var y = height * -0.5;
var chamfOffset = Math.min(width, height) * chamfratio;
path.moveTo(x, 0);
if (chamfpos & 4) {
path.lineTo(x, y + height - chamfOffset);
path.lineTo(x + chamfOffset, y + height);
path.lineTo(0, y + height);
} else {
path.arcTo(x, y + height, x + width, y + height, radius);
}
if (chamfpos & 8) {
path.lineTo(x + width - chamfOffset, y + height);
path.lineTo(x + width, y + height - chamfOffset);
path.lineTo(x + width, 0);
} else {
path.arcTo(x + width, y + height, x + width, y, radius);
}
if (chamfpos & 2) {
path.lineTo(x + width, y + chamfOffset);
path.lineTo(x + width - chamfOffset, y);
path.lineTo(0, y);
} else {
path.arcTo(x + width, y, x, y, radius);
}
if (chamfpos & 1) {
path.lineTo(x + chamfOffset, y);
path.lineTo(x, y + chamfOffset);
path.lineTo(x, 0);
} else {
path.arcTo(x, y, x, y + height, radius);
}
path.closePath();
return path;
}
function getOblongPath(size) {
return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}
function getPolygonsPath(shape) {
if (shape.path2d) {
return shape.path2d;
}
if (shape.svgpath) {
shape.path2d = new Path2D(shape.svgpath);
} else {
var path = new Path2D();
for (var polygon of shape.polygons) {
path.moveTo(...polygon[0]);
for (var i = 1; i < polygon.length; i++) {
path.lineTo(...polygon[i]);
}
path.closePath();
}
shape.path2d = path;
}
return shape.path2d;
}
function drawPolygonShape(ctx, shape, color) {
ctx.save();
ctx.fillStyle = color;
if (!shape.svgpath) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
ctx.fill(getPolygonsPath(shape));
ctx.restore();
}
function drawDrawing(ctx, layer, scalefactor, drawing, color) {
if (["segment", "arc", "circle", "curve"].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 getCirclePath(radius) {
var path = new Path2D();
path.arc(0, 0, radius, 0, 2 * Math.PI);
path.closePath();
return path;
}
function getCachedPadPath(pad) {
if (!pad.path2d) {
// if path2d is not set, build one and cache it on pad object
if (pad.shape == "rect") {
pad.path2d = new Path2D();
pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
} else if (pad.shape == "oval") {
pad.path2d = getOblongPath(pad.size);
} else if (pad.shape == "circle") {
pad.path2d = getCirclePath(pad.size[0] / 2);
} else if (pad.shape == "roundrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
} else if (pad.shape == "chamfrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
} else if (pad.shape == "custom") {
pad.path2d = getPolygonsPath(pad);
}
}
return pad.path2d;
}
function drawPad(ctx, pad, color, outline, hole) {
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 path = getCachedPadPath(pad);
if (outline) {
ctx.stroke(path);
} else {
ctx.fill(path);
}
if (pad.type == "th" && hole) {
if (pad.offset) {
ctx.translate(-pad.offset[0], -pad.offset[1]);
}
ctx.fillStyle = "#CCCCCC";
if (pad.drillshape == "oblong") {
ctx.fill(getOblongPath(pad.drillsize));
} else {
ctx.fill(getCirclePath(pad.drillsize[0] / 2));
}
}
ctx.restore();
}
function drawModule(ctx, layer, scalefactor, module, padcolor, outlinecolor, highlight, outline) {
if (highlight) {
// draw bounding box
if (module.layer == layer) {
ctx.save();
ctx.globalAlpha = 0.2;
ctx.translate(...module.bbox.pos);
ctx.rotate(deg2rad(-module.bbox.angle));
ctx.translate(...module.bbox.relpos);
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
if (settings.renderPads) {
for (var pad of module.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padcolor, outline, true);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, outlinecolor, true, false);
}
}
}
}
}
function drawEdgeCuts(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, highlight) {
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 (highlight) {
padcolor = style.getPropertyValue('--pad-color-highlight');
outlinecolor = style.getPropertyValue('--pin1-outline-color-highlight');
}
for (var i = 0; i < pcbdata.modules.length; i++) {
var mod = pcbdata.modules[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
if (!highlight || highlightedModules.includes(i)) {
drawModule(ctx, layer, scalefactor, mod, padcolor, outlinecolor, highlight, outline);
}
}
}
function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
var ctx = canvas.getContext("2d");
for (var d of pcbdata[layername][layer]) {
if (["segment", "arc", "circle", "curve"].includes(d.type)) {
drawedge(ctx, scalefactor, d, edgeColor);
} else if (d.type == "polygon") {
drawPolygonShape(ctx, d, polygonColor);
} else {
drawtext(ctx, d, textColor, layer == "B");
}
}
}
function drawTracks(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.lineCap = "round";
for(var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
ctx.lineWidth = track.width;
ctx.beginPath();
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
ctx.stroke();
}
}
function drawZones(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineJoin = "round";
for(var zone of pcbdata.zones[layer]) {
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
if (highlight && highlightedNet != zone.net) continue;
ctx.lineWidth = zone.width ? zone.width : 0;
ctx.fill(zone.path2d);
ctx.stroke(zone.path2d);
}
}
function clearCanvas(canvas, color = null) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
if (color) {
ctx.fillStyle = color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
} else {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
ctx.restore();
}
function drawNets(canvas, layer, highlight) {
var style = getComputedStyle(topmostdiv);
if (settings.renderTracks) {
var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
drawTracks(canvas, layer, trackColor, highlight);
}
if (settings.renderZones) {
var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
drawZones(canvas, layer, zoneColor, highlight);
}
if (highlight && settings.renderPads) {
var padColor = style.getPropertyValue('--pad-color-highlight');
var ctx = canvas.getContext("2d");
for (var mod of pcbdata.modules) {
// draw pads
for (var pad of mod.pads) {
if (highlightedNet != pad.net) continue;
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, false, true);
}
}
}
}
}
function drawHighlightsOnLayer(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.highlight);
}
if (highlightedModules.length > 0) {
drawModules(canvasdict.highlight, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, true);
}
if (highlightedNet !== null) {
drawNets(canvasdict.highlight, canvasdict.layer, true);
}
}
function drawHighlights() {
drawHighlightsOnLayer(allcanvas.front);
drawHighlightsOnLayer(allcanvas.back);
}
function drawBackground(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.bg);
clearCanvas(canvasdict.fab);
clearCanvas(canvasdict.silk);
}
drawNets(canvasdict.bg, canvasdict.layer, false);
drawModules(canvasdict.bg, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, false);
drawEdgeCuts(canvasdict.bg, canvasdict.transform.s);
var style = getComputedStyle(topmostdiv);
var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
var textColor = style.getPropertyValue('--silkscreen-text-color');
if (settings.renderSilkscreen) {
drawBgLayer(
"silkscreen", canvasdict.silk, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
edgeColor = style.getPropertyValue('--fabrication-edge-color');
polygonColor = style.getPropertyValue('--fabrication-polygon-color');
textColor = style.getPropertyValue('--fabrication-text-color');
if (settings.renderFabrication) {
drawBgLayer(
"fabrication", canvasdict.fab, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
}
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(settings.boardRotation));
ctx.scale(transform.s, transform.s);
}
function prepareLayer(canvasdict) {
var flip = (canvasdict.layer == "B");
for (var c of ["bg", "fab", "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, settings.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(layerdict, width, height) {
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;
}
layerdict.transform.s = scalefactor;
var flip = (layerdict.layer == "B");
if (flip) {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
} else {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
}
layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
for (var c of ["bg", "fab", "silk", "highlight"]) {
canvas = layerdict[c];
canvas.width = width;
canvas.height = height;
canvas.style.width = (width / devicePixelRatio) + "px";
canvas.style.height = (height / devicePixelRatio) + "px";
}
}
function redrawCanvas(layerdict) {
prepareLayer(layerdict);
drawBackground(layerdict);
drawHighlightsOnLayer(layerdict);
}
function resizeCanvas(layerdict) {
var canvasdivid = {
"F": "frontcanvas",
"B": "backcanvas"
} [layerdict.layer];
var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
recalcLayerScale(layerdict, width, height);
redrawCanvas(layerdict);
}
function resizeAll() {
resizeCanvas(allcanvas.front);
resizeCanvas(allcanvas.back);
}
function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
var A = x - x1;
var B = y - y1;
var C = x2 - x1;
var D = y2 - y1;
var dot = A * C + B * D;
var len_sq = C * C + D * D;
var dx, dy;
if (len_sq == 0) {
// start and end of the segment coincide
dx = x - x1;
dy = y - y1;
} else {
var param = dot / len_sq;
var xx, yy;
if (param < 0) {
xx = x1;
yy = y1;
} else if (param > 1) {
xx = x2;
yy = y2;
} else {
xx = x1 + param * C;
yy = y1 + param * D;
}
dx = x - xx;
dy = y - yy;
}
return dx * dx + dy * dy <= d * d;
}
function pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for(var track of pcbdata.tracks[layer]) {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
// Check pads
if (settings.renderPads) {
for (var mod of pcbdata.modules) {
for(var pad of mod.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinModuleBbox(x, y, bbox) {
var v = [x - bbox.pos[0], y - bbox.pos[1]];
v = rotateVector(v, bbox.angle);
return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}
function bboxHitScan(layer, x, y) {
var result = [];
for (var i = 0; i < pcbdata.modules.length; i++) {
var module = pcbdata.modules[i];
if (module.layer == layer) {
if (pointWithinModuleBbox(x, y, module.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
layerdict.pointerStates[e.pointerId] = {
distanceTravelled: 0,
lastX: e.offsetX,
lastY: e.offsetY,
downTime: Date.now(),
};
}
function handleMouseClick(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var x = e.offsetX;
var y = e.offsetY;
var t = layerdict.transform;
if (layerdict.layer == "B") {
x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
} else {
x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
}
y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
var v = rotateVector([x, y], -settings.boardRotation);
if ("nets" in pcbdata) {
var net = netHitScan(layerdict.layer, ...v);
if (net !== highlightedNet) {
netClicked(net);
}
}
if (highlightedNet === null) {
var modules = bboxHitScan(layerdict.layer, ...v);
if (modules.length > 0) {
modulesClicked(modules);
}
}
}
function handlePointerLeave(e, layerdict) {
e.preventDefault();
e.stopPropagation();
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
delete layerdict.pointerStates[e.pointerId];
}
function resetTransform(layerdict) {
layerdict.transform.panx = 0;
layerdict.transform.pany = 0;
layerdict.transform.zoom = 1;
redrawCanvas(layerdict);
}
function handlePointerUp(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
e.preventDefault();
e.stopPropagation();
if (e.button == 2) {
// Reset pan and zoom on right click.
resetTransform(layerdict);
layerdict.anotherPointerTapped = false;
return;
}
// We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
var ptr = layerdict.pointerStates[e.pointerId];
ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
if (Object.keys(layerdict.pointerStates).length == 1) {
if (layerdict.anotherPointerTapped) {
// This is the second pointer coming off of a two-finger tap
resetTransform(layerdict);
} else {
// This is just a regular tap
handleMouseClick(e, layerdict);
}
layerdict.anotherPointerTapped = false;
} else {
// This is the first finger coming off of what could become a two-finger tap
layerdict.anotherPointerTapped = true;
}
} else {
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
layerdict.anotherPointerTapped = false;
}
delete layerdict.pointerStates[e.pointerId];
}
function handlePointerMove(e, layerdict) {
if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var thisPtr = layerdict.pointerStates[e.pointerId];
var dx = e.offsetX - thisPtr.lastX;
var dy = e.offsetY - thisPtr.lastY;
// If this number is low on pointer up, we count the action as a click
thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
if (Object.keys(layerdict.pointerStates).length == 1) {
// This is a simple drag
layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
} else if (Object.keys(layerdict.pointerStates).length == 2) {
var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
var scaleFactor = newDist/oldDist;
if (scaleFactor != NaN) {
layerdict.transform.zoom *= scaleFactor;
var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
}
}
thisPtr.lastX = e.offsetX;
thisPtr.lastY = e.offsetY;
if (settings.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 += devicePixelRatio * e.offsetX * zoomd;
t.pany += devicePixelRatio * e.offsetY * zoomd;
redrawCanvas(layerdict);
}
function addMouseHandlers(div, layerdict) {
div.addEventListener("pointerdown", function(e) {
handlePointerDown(e, layerdict);
});
div.addEventListener("pointermove", function(e) {
handlePointerMove(e, layerdict);
});
div.addEventListener("pointerup", function(e) {
handlePointerUp(e, layerdict);
});
var pointerleave = function(e) {
handlePointerLeave(e, layerdict);
}
div.addEventListener("pointercancel", pointerleave);
div.addEventListener("pointerleave", pointerleave);
div.addEventListener("pointerout", pointerleave);
div.onwheel = function(e) {
handleMouseWheel(e, layerdict);
}
for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
element.addEventListener("contextmenu", function(e) {
e.preventDefault();
}, false);
}
}
function setRedrawOnDrag(value) {
settings.redrawOnDrag = value;
writeStorage("redrawOnDrag", value);
}
function setBoardRotation(value) {
settings.boardRotation = value * 5;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("rotationDegree").textContent = settings.boardRotation;
resizeAll();
}
function initRender() {
allcanvas = {
front: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("F_bg"),
fab: document.getElementById("F_fab"),
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,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("B_bg"),
fab: document.getElementById("B_fab"),
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 bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var moduleIndexToHandler = {};
var netsToHandler = {};
var highlightedModules = [];
var highlightedNet = null;
var lastClicked;
function dbg(html) {
dbgdiv.innerHTML = html;
}
function redrawIfInitDone() {
if (initDone) {
redrawCanvas(allcanvas.front);
redrawCanvas(allcanvas.back);
}
}
function padsVisible(value) {
writeStorage("padsVisible", value);
settings.renderPads = value;
redrawIfInitDone();
}
function referencesVisible(value) {
writeStorage("referencesVisible", value);
settings.renderReferences = value;
redrawIfInitDone();
}
function valuesVisible(value) {
writeStorage("valuesVisible", value);
settings.renderValues = value;
redrawIfInitDone();
}
function tracksVisible(value) {
writeStorage("tracksVisible", value);
settings.renderTracks = value;
redrawIfInitDone();
}
function zonesVisible(value) {
writeStorage("zonesVisible", value);
settings.renderZones = value;
redrawIfInitDone();
}
function dnpOutline(value) {
writeStorage("dnpOutline", value);
settings.renderDnpOutline = value;
redrawIfInitDone();
}
function setDarkMode(value) {
if (value) {
topmostdiv.classList.add("dark");
} else {
topmostdiv.classList.remove("dark");
}
writeStorage("darkmode", value);
settings.darkMode = value;
redrawIfInitDone();
}
function setFullscreen(value) {
if (value) {
document.documentElement.requestFullscreen();
} else {
document.exitFullscreen();
}
}
function fabricationVisible(value) {
writeStorage("fabricationVisible", value);
settings.renderFabrication = value;
redrawIfInitDone();
}
function silkscreenVisible(value) {
writeStorage("silkscreenVisible", value);
settings.renderSilkscreen = value;
redrawIfInitDone();
}
function setHighlightPin1(value) {
writeStorage("highlightpin1", value);
settings.highlightpin1 = value;
redrawIfInitDone();
}
function getStoredCheckboxRefs(checkbox) {
function convert(ref) {
var intref = parseInt(ref);
if (isNaN(intref)) {
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.modules[i].ref == ref) {
return i;
}
}
return -1;
} else {
return intref;
}
}
if (!(checkbox in settings.checkboxStoredRefs)) {
var val = readStorage("checkbox_" + checkbox);
settings.checkboxStoredRefs[checkbox] = val ? val : "";
}
if (!settings.checkboxStoredRefs[checkbox]) {
return new Set();
} else {
return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
}
}
function getCheckboxState(checkbox, references) {
var storedRefsSet = getStoredCheckboxRefs(checkbox);
var currentRefsSet = new Set(references.map(r => r[1]));
// 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(evt) {
refsSet = getStoredCheckboxRefs(checkbox);
var darkenWhenChecked = settings.darkenWhenChecked == checkbox;
eventArgs = {
checkbox: checkbox,
refs: references,
}
if (this.checked) {
// checkbox ticked
for (var ref of references) {
refsSet.add(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.add("checked");
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.remove("checked");
}
eventArgs.state = 'unchecked';
}
settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
updateCheckboxStats(checkbox);
EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
}
}
function clearHighlightedModules() {
if (currentHighlightedRowId) {
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
currentHighlightedRowId = null;
highlightedModules = [];
highlightedNet = null;
}
}
function createRowHighlightHandler(rowid, refs, net) {
return function() {
if (currentHighlightedRowId) {
if (currentHighlightedRowId == rowid) {
return;
}
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
}
document.getElementById(rowid).classList.add("highlighted");
currentHighlightedRowId = rowid;
highlightedModules = refs ? refs.map(r => r[1]) : [];
highlightedNet = net;
drawHighlights();
EventHandler.emitEvent(
IBOM_EVENT_TYPES.HIGHLIGHT_EVENT,
{
rowid: rowid,
refs: refs,
net: net
});
}
}
function entryMatches(entry) {
if (settings.bommode == "netlist") {
// entry is just a net name
return entry.toLowerCase().indexOf(filter) >= 0;
}
// check refs
for (var ref of entry[3]) {
if (ref[0].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
// check extra fields
for (var i in config.extra_fields) {
if (entry[4][i].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) {
return entry[3].filter(r => r[0].toLowerCase() == reflookup);
}
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 < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (checkboxnum >= settings.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 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);
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;
}
}
if (settings.bommode == "netlist") {
th = createColumnHeader("Net name", "bom-netname", (a, b) => {
if (a > b) return -1;
if (a < b) return 1;
return 0;
});
tr.appendChild(th);
} else {
for (var checkbox of settings.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;
}));
// Extra fields
if (config.extra_fields.length > 0) {
var extraFieldCompareClosure = function(fieldIndex) {
return (a, b) => {
var fa = a[4][fieldIndex];
var fb = b[4][fieldIndex];
if (fa != fb) return fa > fb ? 1 : -1;
else return 0;
}
}
for (var i in config.extra_fields) {
tr.appendChild(createColumnHeader(
config.extra_fields[i], "extra", extraFieldCompareClosure(i)));
}
}
tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
return valueCompare(a[5], b[5], a[1], b[1]);
}));
tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
else return 0;
}));
if (settings.bommode == "grouped") {
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 = [];
moduleIndexToHandler = {};
netsToHandler = {};
currentHighlightedRowId = null;
var first = true;
if (settings.bommode == "netlist") {
bomtable = pcbdata.nets.slice();
} else {
switch (settings.canvaslayout) {
case 'F':
bomtable = pcbdata.bom.F.slice();
break;
case 'FB':
bomtable = pcbdata.bom.both.slice();
break;
case 'B':
bomtable = pcbdata.bom.B.slice();
break;
}
if (settings.bommode == "ungrouped") {
// expand bom table
expandedTable = []
for (var bomentry of bomtable) {
for (var ref of bomentry[3]) {
expandedTable.push([1, bomentry[1], bomentry[2], [ref], bomentry[4], bomentry[5]]);
}
}
bomtable = expandedTable;
}
}
if (bomSortFunction) {
bomtable = bomtable.sort(bomSortFunction);
}
for (var i in bomtable) {
var bomentry = bomtable[i];
if (filter && !entryMatches(bomentry)) {
continue;
}
var references = null;
var netname = null;
var tr = document.createElement("TR");
var td = document.createElement("TD");
var rownum = +i + 1;
tr.id = "bomrow" + rownum;
td.textContent = rownum;
tr.appendChild(td);
if (settings.bommode == "netlist") {
netname = bomentry;
td = document.createElement("TD");
td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
tr.appendChild(td);
} else {
if (reflookup) {
references = findRefInEntry(bomentry);
if (references.length == 0) {
continue;
}
} else {
references = bomentry[3];
}
// Checkboxes
for (var checkbox of settings.checkboxes) {
if (checkbox) {
td = document.createElement("TD");
var input = document.createElement("input");
input.type = "checkbox";
input.onchange = createCheckboxChangeHandler(checkbox, references);
setBomCheckboxState(checkbox, input, references);
if (input.checked && settings.darkenWhenChecked == checkbox) {
tr.classList.add("checked");
}
td.appendChild(input);
tr.appendChild(td);
}
}
// References
td = document.createElement("TD");
td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
tr.appendChild(td);
// Extra fields
for (var i in config.extra_fields) {
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[4][i]);
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);
if (settings.bommode == "grouped") {
// Quantity
td = document.createElement("TD");
td.textContent = bomentry[3].length;
tr.appendChild(td);
}
}
bom.appendChild(tr);
var handler = createRowHighlightHandler(tr.id, references, netname);
tr.onmousemove = handler;
highlightHandlers.push({
id: tr.id,
handler: handler,
});
if (references !== null) {
for (var refIndex of references.map(r => r[1])) {
moduleIndexToHandler[refIndex] = handler;
}
}
if (netname !== null) {
netsToHandler[netname] = handler;
}
if ((filter || reflookup) && first) {
handler();
first = false;
}
}
EventHandler.emitEvent(
IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT,
{
filter: filter,
reflookup: reflookup,
checkboxes: settings.checkboxes,
bommode: settings.bommode,
});
}
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(moduleIndexes) {
var lastClickedIndex = moduleIndexes.indexOf(lastClicked);
for (var i = 1; i <= moduleIndexes.length; i++) {
var refIndex = moduleIndexes[(lastClickedIndex + i) % moduleIndexes.length];
if (refIndex in moduleIndexToHandler) {
lastClicked = refIndex;
moduleIndexToHandler[refIndex]();
smoothScrollToRow(currentHighlightedRowId);
break;
}
}
}
function netClicked(net) {
if (net in netsToHandler) {
netsToHandler[net]();
smoothScrollToRow(currentHighlightedRowId);
} else {
clearHighlightedModules();
highlightedNet = net;
drawHighlights();
}
}
function updateFilter(input) {
filter = input.toLowerCase();
populateBomTable();
}
function updateRefLookup(input) {
reflookup = input.toLowerCase();
populateBomTable();
}
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 (settings.bomlayout != "bom-only") {
canvassplit.collapse(1);
}
break;
case 'B':
document.getElementById("bl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(0);
}
break;
default:
document.getElementById("fb-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.setSizes([50, 50]);
}
}
settings.canvaslayout = layout;
writeStorage("canvaslayout", layout);
resizeAll();
changeBomMode(settings.bommode);
}
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";
}
// Calculate board stats
var fp_f = 0, fp_b = 0, pads_f = 0, pads_b = 0, pads_th = 0;
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.bom.skipped.includes(i)) continue;
var mod = pcbdata.modules[i];
if (mod.layer == "F") {
fp_f++;
} else {
fp_b++;
}
for (var pad of mod.pads) {
if (pad.type == "th") {
pads_th++;
} else {
if (pad.layers.includes("F")) {
pads_f++;
}
if (pad.layers.includes("B")) {
pads_b++;
}
}
}
}
document.getElementById("stats-components-front").innerHTML = fp_f;
document.getElementById("stats-components-back").innerHTML = fp_b;
document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
document.getElementById("stats-th-pads").innerHTML = pads_th;
// Update version string
document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
/^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}
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-only':
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 'top-bottom':
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 'left-right':
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
});
}
settings.bomlayout = layout;
writeStorage("bomlayout", layout);
changeCanvasLayout(settings.canvaslayout);
}
function changeBomMode(mode) {
document.getElementById("bom-grouped-btn").classList.remove("depressed");
document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
document.getElementById("bom-netlist-btn").classList.remove("depressed");
switch (mode) {
case 'grouped':
document.getElementById("bom-grouped-btn").classList.add("depressed");
break;
case 'ungrouped':
document.getElementById("bom-ungrouped-btn").classList.add("depressed");
break;
case 'netlist':
document.getElementById("bom-netlist-btn").classList.add("depressed");
}
writeStorage("bommode", mode);
if (mode != settings.bommode) {
settings.bommode = mode;
bomSortFunction = null;
currentSortColumn = null;
currentSortOrder = null;
clearHighlightedModules();
}
populateBomTable();
}
function focusFilterField() {
focusInputField(document.getElementById("filter"));
}
function focusRefLookupField() {
focusInputField(document.getElementById("reflookup"));
}
function toggleBomCheckbox(bomrowid, checkboxnum) {
if (!bomrowid || checkboxnum > settings.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 < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (!bomrowid || checkboxnum >= settings.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 setBomCheckboxes(value) {
writeStorage("bomCheckboxes", value);
settings.checkboxes = value.split(",").filter((e) => e);
prepCheckboxes();
populateBomTable();
populateDarkenWhenCheckedOptions();
}
function setDarkenWhenChecked(value) {
writeStorage("darkenWhenChecked", value);
settings.darkenWhenChecked = value;
populateBomTable();
}
function prepCheckboxes() {
var table = document.getElementById("checkbox-stats");
while (table.childElementCount > 1) {
table.removeChild(table.lastChild);
}
if (settings.checkboxes.length) {
table.style.display = "";
} else {
table.style.display = "none";
}
for (var checkbox of settings.checkboxes) {
var tr = document.createElement("TR");
var td = document.createElement("TD");
td.innerHTML = checkbox;
tr.appendChild(td);
td = document.createElement("TD");
td.id = "checkbox-stats-" + checkbox;
var progressbar = document.createElement("div");
progressbar.classList.add("bar");
td.appendChild(progressbar);
var text = document.createElement("div");
text.classList.add("text");
td.appendChild(text);
tr.appendChild(td);
table.appendChild(tr);
updateCheckboxStats(checkbox);
}
}
function populateDarkenWhenCheckedOptions() {
var container = document.getElementById("darkenWhenCheckedContainer");
if (settings.checkboxes.length == 0) {
container.parentElement.style.display = "none";
return;
}
container.innerHTML = '';
container.parentElement.style.display = "inline-block";
function createOption(name, displayName) {
var id = "darkenWhenChecked-" + name;
var div = document.createElement("div");
div.classList.add("radio-container");
var input = document.createElement("input");
input.type = "radio";
input.name = "darkenWhenChecked";
input.value = name;
input.id = id;
input.onchange = () => setDarkenWhenChecked(name);
div.appendChild(input);
// Preserve the selected element when the checkboxes change
if (name == settings.darkenWhenChecked) {
input.checked = true;
}
var label = document.createElement("label");
label.innerHTML = displayName;
label.htmlFor = id;
div.appendChild(label);
container.appendChild(div);
}
createOption("", "None");
for (var checkbox of settings.checkboxes) {
createOption(checkbox, checkbox);
}
}
function updateCheckboxStats(checkbox) {
var checked = getStoredCheckboxRefs(checkbox).size;
var total = pcbdata.modules.length - pcbdata.bom.skipped.length;
var percent = checked * 100.0 / total;
var td = document.getElementById("checkbox-stats-" + checkbox);
td.firstChild.style.width = percent + "%";
td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}
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-only");
e.preventDefault();
break;
case "x":
changeBomLayout("left-right");
e.preventDefault();
break;
case "c":
changeBomLayout("top-bottom");
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));
}
}
}
function hideNetlistButton() {
document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
document.getElementById("bom-netlist-btn").style.display = "none";
}
window.onload = function(e) {
initUtils();
initRender();
initStorage();
initDefaults();
cleanGutters();
populateMetadata();
dbgdiv = document.getElementById("dbg");
bom = document.getElementById("bombody");
bomhead = document.getElementById("bomhead");
filter = "";
reflookup = "";
if (!("nets" in pcbdata)) {
hideNetlistButton();
}
initDone = true;
prepCheckboxes();
// Triggers render
changeBomLayout(settings.bomlayout);
// Users may leave fullscreen without touching the checkbox. Uncheck.
document.addEventListener('fullscreenchange', () => {
if (!document.fullscreenElement)
document.getElementById('fullscreenCheckbox').checked = false;
});
}
window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
</script>
</head>
<body>
<div id="topmostdiv" class="topmostdiv">
<div id="top">
<div style="float: right; height: 100%;">
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="menubtn"></button>
<div class="menu-content">
<label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
<input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
Dark mode
</label><!-- This comment eats space! All of it!
--><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
<input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
Full Screen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
Fab layer
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
Silkscreen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
References
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
Values
</label>
<div id="tracksAndZonesCheckboxes">
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
Tracks
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
Zones
</label>
</div>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
Pads
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
DNP outlined
</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>&#176;</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>
<label class="menu-label">
<div style="margin-left: 5px">Darken when checked</div>
<div id="darkenWhenCheckedContainer"></div>
</label>
<label class="menu-label">
<span class="shameless-plug">
<span>Created using</span>
<a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
</span>
</label>
</div>
</div>
<div class="button-container hideonprint"
style="float: right; 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; position: relative; top: 8px">
<button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
title="BOM only"></button>
<button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
title="BOM left, drawings right"></button>
<button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
title="BOM top, drawings bot"></button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
title="Grouped BOM"></button>
<button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
title="Ungrouped BOM"></button>
<button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
title="Netlist"></button>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="statsbtn"></button>
<div class="menu-content">
<table class="stats">
<tbody>
<tr>
<td width="40%">Board stats</td>
<td>Front</td>
<td>Back</td>
<td>Total</td>
</tr>
<tr>
<td>Components</td>
<td id="stats-components-front">~</td>
<td id="stats-components-back">~</td>
<td id="stats-components-total">~</td>
</tr>
<tr>
<td>Groups</td>
<td id="stats-groups-front">~</td>
<td id="stats-groups-back">~</td>
<td id="stats-groups-total">~</td>
</tr>
<tr>
<td>SMD pads</td>
<td id="stats-smd-pads-front">~</td>
<td id="stats-smd-pads-back">~</td>
<td id="stats-smd-pads-total">~</td>
</tr>
<tr>
<td>TH pads</td>
<td colspan=3 id="stats-th-pads">~</td>
</tr>
</tbody>
</table>
<table class="stats">
<col width="40%"/><col />
<tbody id="checkbox-stats">
<tr>
<td colspan=2 style="border-top: 0">Checkboxes</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="iobtn"></button>
<div class="menu-content">
<div class="menu-label menu-label-top">
<div style="margin-left: 5px;">Save board image</div>
<div class="flexbox">
<input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
<span>X</span>
<input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
</div>
<label>
<input id="render-save-transparent" type="checkbox">
Transparent background
</label>
<div class="flexbox">
<button class="savebtn" onclick="saveImage('F')">Front</button>
<button class="savebtn" onclick="saveImage('B')">Back</button>
</div>
</div>
<div class="menu-label">
<span style="margin-left: 5px;">Config and checkbox state</span>
<div class="flexbox">
<button class="savebtn" onclick="saveSettings()">Export</button>
<button class="savebtn" onclick="loadSettings()">Import</button>
</div>
</div>
</div>
</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">
Company
</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="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
oninput="updateRefLookup(this.value)">
<input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
oninput="updateFilter(this.value)">
<div class="button-container hideonprint" style="float: left; margin: 0;">
<button id="copy" title="Copy bom table to clipboard"
onclick="copyToClipboard()"></button>
</div>
</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" touch-action="none" 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_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
<div id="backcanvas" class="split" touch-action="none" 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_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
</div>
</div>
</div>
</body>
</html>